diff --git a/app/src/main/java/com/gh/common/constant/Constants.java b/app/src/main/java/com/gh/common/constant/Constants.java index eb4fe155e3..37581a95e7 100644 --- a/app/src/main/java/com/gh/common/constant/Constants.java +++ b/app/src/main/java/com/gh/common/constant/Constants.java @@ -163,6 +163,8 @@ public class Constants { public static final String SP_SHOULD_SHOW_GAMEDETAIL_USE_BROWSER_TO_INSTALL_HINT = "should_show_gamedetail_use_browser_to_install_hint"; // 第一次普通安装推荐使用浏览器安装提示 public static final String SP_SHOULD_SHOW_USE_BROWSER_TO_INSTALL_HINT = "should_show_use_browser_to_install_hint"; + // 游戏详情切换安装方式显示开关 + public static final String SP_SWITCH_INSTALL_VISIBLE = "sp_switch_install_visible"; //模拟器管理引导 public static final String SP_SIMULATOR_GUIDE = "simulator_guide"; diff --git a/app/src/main/java/com/gh/download/server/BrowserInstallHelper.kt b/app/src/main/java/com/gh/download/server/BrowserInstallHelper.kt index 661df11f89..ffddb4963d 100644 --- a/app/src/main/java/com/gh/download/server/BrowserInstallHelper.kt +++ b/app/src/main/java/com/gh/download/server/BrowserInstallHelper.kt @@ -29,7 +29,9 @@ object BrowserInstallHelper { private val mContext by lazy { HaloApp.getInstance().application } private val mAllInstalledPackageList: ArrayList by lazy { - PackageUtils.getAllPackageNameIncludeSystemApps(HaloApp.getInstance().applicationContext) + PackageUtils.getAllPackageNameIncludeSystemApps(HaloApp.getInstance().applicationContext).apply { + add(HaloApp.getInstance().applicationContext.packageName) + } } private fun getServer(): DownloadServer { diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt index d5b9ea12de..af58bb4297 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt @@ -76,6 +76,7 @@ import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack import com.shuyu.gsyvideoplayer.utils.OrientationUtils import com.shuyu.gsyvideoplayer.video.base.GSYVideoView import io.reactivex.disposables.Disposable +import kotlinx.android.synthetic.main.dialog_download.view.* import kotlinx.android.synthetic.main.piece_game_detail_video.* import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe @@ -172,11 +173,17 @@ class GameDetailFragment : NormalFragment() { @BindView(R.id.recommendAgeIv) lateinit var recommendAgeIv: ImageView - @BindView(R.id.concern_btn) - lateinit var mConcernBtn: TextView + @BindView(R.id.tv_concern) + lateinit var mConcernTv: TextView - @BindView(R.id.reserve_btn) - lateinit var mReserveBtn: TextView + @BindView(R.id.iv_concern) + lateinit var mConcernIv: ImageView + + @BindView(R.id.tv_reserve) + lateinit var mReserveTv: TextView + + @BindView(R.id.iv_reserve) + lateinit var mReserveIv: ImageView @BindView(R.id.reserve_guide_container) lateinit var mReserveGuideContainer: View @@ -184,8 +191,11 @@ class GameDetailFragment : NormalFragment() { @BindView(R.id.closeIv) lateinit var mReserveGuideClose: View - @BindView(R.id.switch_btn) - lateinit var mSwitchBtn: TextView + @BindView(R.id.tv_switch) + lateinit var mSwitchTv: TextView + + @BindView(R.id.iv_switch) + lateinit var mSwitchIv: ImageView @BindView(R.id.browser_install_hint_container) lateinit var mBrowserInstallContainer: View @@ -524,7 +534,8 @@ class GameDetailFragment : NormalFragment() { } mToolbar.setNavigationOnClickListener { requireActivity().finish() } - mConcernBtn.visibility = View.VISIBLE + mConcernIv.visibility = View.VISIBLE + mConcernTv.visibility = View.VISIBLE } @Subscribe(threadMode = ThreadMode.MAIN) @@ -822,7 +833,8 @@ class GameDetailFragment : NormalFragment() { mLoading.visibility = View.GONE mNoConnection.visibility = View.GONE mNoneDataView.visibility = View.VISIBLE - mConcernBtn.visibility = View.GONE + mConcernIv.visibility = View.GONE + mConcernTv.visibility = View.GONE toast("内容可能已被删除") } else { mLoading.visibility = View.GONE @@ -1154,9 +1166,12 @@ class GameDetailFragment : NormalFragment() { @OnClick( R.id.reuse_no_connection, R.id.gamedetail_kaifu_hint, - R.id.concern_btn, - R.id.reserve_btn, - R.id.switch_btn, + R.id.iv_concern, + R.id.tv_concern, + R.id.iv_reserve, + R.id.tv_reserve, + R.id.iv_switch, + R.id.tv_switch, R.id.closeIv, R.id.recommendCloseIv ) @@ -1173,7 +1188,7 @@ class GameDetailFragment : NormalFragment() { mAppBarLayout.setExpanded(false, true) mIsScrollToKaiFu = true } - R.id.concern_btn -> { + R.id.iv_concern, R.id.tv_concern -> { ifLogin("游戏详情-[关注]") { if (mNewGameDetailEntity != null && mNewGameDetailEntity!!.me.isGameConcerned) { DialogUtils.showCancelDialog( @@ -1186,7 +1201,7 @@ class GameDetailFragment : NormalFragment() { } } } - R.id.reserve_btn -> { + R.id.iv_reserve, R.id.tv_reserve -> { if (mGameEntity != null && SimulatorGameManager.isSimulatorGame(mGameEntity!!)) { startActivity(SimulatorGameActivity.getIntent(requireContext())) return @@ -1244,7 +1259,7 @@ class GameDetailFragment : NormalFragment() { } } } - R.id.switch_btn -> { + R.id.iv_switch, R.id.tv_switch -> { val intent = ShellActivity.getIntent( requireContext(), ShellActivity.Type.SWITCH_INSTALL_METHOD, @@ -1263,21 +1278,11 @@ class GameDetailFragment : NormalFragment() { private fun updateConcernMenuIcon(isConcerned: Boolean) { if (isConcerned) { - mConcernBtn.text = "已关注" - mConcernBtn.setCompoundDrawablesWithIntrinsicBounds( - null, - ContextCompat.getDrawable(requireContext(), R.drawable.ic_gamedetail_concerned), - null, - null - ) + mConcernTv.text = "已关注" + mConcernIv.background = R.drawable.ic_gamedetail_concerned.toDrawable() } else { - mConcernBtn.text = "关注" - mConcernBtn.setCompoundDrawablesWithIntrinsicBounds( - null, - ContextCompat.getDrawable(requireContext(), R.drawable.ic_gamedetail_concern), - null, - null - ) + mConcernTv.text = "关注" + mConcernIv.background = R.drawable.ic_gamedetail_concern.toDrawable() } } @@ -1320,41 +1325,26 @@ class GameDetailFragment : NormalFragment() { private fun showReserveBtn(isShow: Boolean = false) { if (mGameEntity != null && SimulatorGameManager.isSimulatorGame(mGameEntity!!)) { - mReserveBtn.visibility = View.VISIBLE - mReserveBtn.text = "管理" - mReserveBtn.setCompoundDrawablesWithIntrinsicBounds( - null, - ContextCompat.getDrawable( - requireContext(), - R.drawable.ic_gamedetail_simulator_manage - ), - null, - null - ) + mReserveIv.visibility = View.VISIBLE + mReserveTv.visibility = View.VISIBLE + mReserveTv.text = "管理" + mReserveIv.background = R.drawable.ic_gamedetail_simulator_manage.toDrawable() return } if (isShow) { - mReserveBtn.visibility = View.VISIBLE + mReserveIv.visibility = View.VISIBLE + mReserveTv.visibility = View.VISIBLE if (ReservationRepository.thisGameHasBeenReserved(mGameEntity?.id ?: "")) { - mReserveBtn.text = "已预约" - mReserveBtn.setCompoundDrawablesWithIntrinsicBounds( - null, - ContextCompat.getDrawable(requireContext(), R.drawable.ic_gamedetail_reserved), - null, - null - ) + mReserveTv.text = "已预约" + mReserveIv.background = R.drawable.ic_gamedetail_reserved.toDrawable() } else { - mReserveBtn.text = "预约" - mReserveBtn.setCompoundDrawablesWithIntrinsicBounds( - null, - ContextCompat.getDrawable(requireContext(), R.drawable.ic_gamedetail_reserve), - null, - null - ) + mReserveTv.text = "预约" + mReserveIv.background = R.drawable.ic_gamedetail_reserve.toDrawable() } } else { - mReserveBtn.visibility = View.GONE + mReserveIv.visibility = View.GONE + mReserveTv.visibility = View.GONE } } @@ -1457,7 +1447,9 @@ class GameDetailFragment : NormalFragment() { "取消", { mBrowserInstallContainer.visibility = View.GONE - mSwitchBtn.visibility = View.VISIBLE + SPUtils.setBoolean(Constants.SP_SWITCH_INSTALL_VISIBLE, true) + mSwitchIv.visibility = View.VISIBLE + mSwitchTv.visibility = View.VISIBLE BrowserInstallHelper.hideGameDetailUseBrowserToInstallHint() BrowserInstallHelper.logOrdinaryBrowserEvent(BrowserInstallHelper.Type.SWITCH_INSTALL_GUIDE_QUIT) } @@ -1465,7 +1457,13 @@ class GameDetailFragment : NormalFragment() { } } else { mBrowserInstallContainer.visibility = View.GONE - mSwitchBtn.visibility = View.GONE + } + if (SPUtils.getBoolean(Constants.SP_SWITCH_INSTALL_VISIBLE, false)) { + mSwitchIv.visibility = View.VISIBLE + mSwitchTv.visibility = View.VISIBLE + } else { + mSwitchIv.visibility = View.GONE + mSwitchTv.visibility = View.GONE } } diff --git a/app/src/main/res/drawable-xxxhdpi/ic_install_method_hint.png b/app/src/main/res/drawable-xxxhdpi/ic_install_method_hint.png new file mode 100644 index 0000000000..2f50ce093d Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_install_method_hint.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_install_method_hint.webp b/app/src/main/res/drawable-xxxhdpi/ic_install_method_hint.webp deleted file mode 100644 index 14046b7456..0000000000 Binary files a/app/src/main/res/drawable-xxxhdpi/ic_install_method_hint.webp and /dev/null differ diff --git a/app/src/main/res/layout/detail_download_item.xml b/app/src/main/res/layout/detail_download_item.xml index a6c0a7641d..a143a5f716 100644 --- a/app/src/main/res/layout/detail_download_item.xml +++ b/app/src/main/res/layout/detail_download_item.xml @@ -81,7 +81,7 @@ android:layout_height="40dp" android:background="@drawable/bg_install_hint" android:visibility="gone" - tools:visibility="visible"> + tools:visibility="gone"> - + android:paddingTop="10dp" + android:paddingEnd="20dp" + android:paddingBottom="10dp"> - - - + + + + + + + + - + android:layout_marginStart="24dp" + android:layout_marginLeft="24dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/iv_switch" + app:layout_constraintTop_toTopOf="parent" /> +