diff --git a/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java b/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java index da62befa1e..7338f07690 100644 --- a/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java +++ b/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java @@ -30,6 +30,8 @@ public class DetailDownloadUtils { public static void detailInitDownload(DetailViewHolder viewHolder, boolean isCheck) { String downloadAddWord = viewHolder.gameEntity.getDownloadAddWord(); + viewHolder.overlayTv.setVisibility(View.GONE); + if (viewHolder.gameEntity != null && Config.isShowDownload(viewHolder.gameEntity.getId()) && !"光环助手".equals(viewHolder.gameEntity.getName())) { @@ -103,7 +105,8 @@ public class DetailDownloadUtils { downloadText = "升级" + (TextUtils.isEmpty(downloadAddWord) ? "" : "至" + downloadAddWord) + getDownloadSizeText(viewHolder); } else if (viewHolder.context.getString(R.string.launch).equals(status)) { if (viewHolder.gameEntity.isVGame()) { - downloadText = viewHolder.context.getString(R.string.smooth_launch); + downloadText = ""; + viewHolder.overlayTv.setVisibility(View.VISIBLE); } else { downloadText = status + (TextUtils.isEmpty(downloadAddWord) ? "" : "-" + downloadAddWord); } @@ -149,6 +152,7 @@ public class DetailDownloadUtils { } viewHolder.mDownloadPb.setProgress((int) (viewHolder.downloadEntity.getPercent() * 10)); + viewHolder.overlayTv.setVisibility(View.GONE); switch (downloadEntity.getStatus()) { case downloading: case pause: @@ -191,12 +195,13 @@ public class DetailDownloadUtils { } } else if (viewHolder.gameEntity.isVGame()) { if (VHelper.isInstalled(downloadEntity.getPackageName())) { - viewHolder.mDownloadPb.setText(R.string.smooth_launch); viewHolder.mDownloadPb.setDownloadType(DownloadProgressBar.DownloadType.LAUNCH_OR_OPEN); } else { - viewHolder.mDownloadPb.setText(R.string.smooth_launch); viewHolder.mDownloadPb.setDownloadType(DownloadProgressBar.DownloadType.INSTALL_NORMAL); } + + viewHolder.mDownloadPb.setText(""); + viewHolder.overlayTv.setVisibility(View.VISIBLE); } else { if (SPUtils.getBoolean(Constants.SP_USE_BROWSER_TO_INSTALL)) { viewHolder.mDownloadPb.setText(R.string.browser_install_install); diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java index 302c6879d7..3fce0dca45 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java @@ -4,6 +4,7 @@ import android.content.Context; import android.content.Intent; import android.text.TextUtils; import android.view.View; +import android.widget.TextView; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; @@ -77,12 +78,14 @@ public class DetailViewHolder { public View downloadBottom; public DownloadProgressBar mDownloadPb; + public TextView overlayTv; // 额外的文字 (用于一些含图片的情况) // 注意View的命名 public DetailViewHolder(View view, GameEntity gameEntity, DownloadEntity downloadEntity, boolean isNewsDetail, String entrance, String name, String title, @Nullable ExposureEvent traceEvent) { downloadBottom = view.findViewById(R.id.detail_ll_bottom); mDownloadPb = view.findViewById(R.id.detail_progressbar); + overlayTv = view.findViewById(R.id.overlayTv); this.gameEntity = gameEntity; this.downloadEntity = downloadEntity; diff --git a/app/src/main/java/com/gh/vspace/VDownloadManagerFragment.kt b/app/src/main/java/com/gh/vspace/VDownloadManagerFragment.kt index 90bb4ad953..5a5395283d 100644 --- a/app/src/main/java/com/gh/vspace/VDownloadManagerFragment.kt +++ b/app/src/main/java/com/gh/vspace/VDownloadManagerFragment.kt @@ -79,8 +79,10 @@ class VDownloadManagerFragment : val status = mBinding.switchIv.isChecked val anime = if (status) "lottie/switch_turnoff.json" else "lottie/switch_turnon.json" mBinding.switchLottie.setAnimation(anime) + mBinding.switchLottie.doOnAnimationEnd { + mBinding.switchIv.isChecked = !status + } mBinding.switchLottie.playAnimation() - mBinding.switchIv.isChecked = !status SPUtils.setBoolean(Constants.SP_HOME_VGAME_AREA_ENABLED, !status) DownloadManager.getInstance().notifyDownloadLiveDataChanged() diff --git a/app/src/main/res/drawable-xxxhdpi/ic_smooth_game_button_hint.png b/app/src/main/res/drawable-xxxhdpi/ic_smooth_game_button_hint.png new file mode 100644 index 0000000000..1ebef1cc35 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_smooth_game_button_hint.png differ diff --git a/app/src/main/res/layout/detail_download_item.xml b/app/src/main/res/layout/detail_download_item.xml index a602061fe1..528ac5bd39 100644 --- a/app/src/main/res/layout/detail_download_item.xml +++ b/app/src/main/res/layout/detail_download_item.xml @@ -7,8 +7,8 @@ android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_marginTop="-7dp" - android:orientation="vertical" android:background="@color/transparent" + android:orientation="vertical" android:visibility="gone" tools:visibility="visible"> @@ -279,6 +279,21 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/iv_switch" app:layout_constraintTop_toTopOf="parent" /> + +