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 054c461e58..9b60dae37e 100644 --- a/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java +++ b/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java @@ -4,6 +4,7 @@ import android.text.TextUtils; import android.view.View; import com.gh.common.constant.Config; +import com.gh.common.constant.Constants; import com.gh.common.repository.ReservationRepository; import com.gh.common.simulator.SimulatorGameManager; import com.gh.common.view.DownloadProgressBar; @@ -133,7 +134,11 @@ public class DetailDownloadUtils { case downloading: case pause: case overflow: - viewHolder.mDownloadPb.setText(R.string.downloading); + if (SPUtils.getBoolean(Constants.SP_USE_BROWSER_TO_INSTALL)) { + viewHolder.mDownloadPb.setText(R.string.browser_install_downloading); + } else { + viewHolder.mDownloadPb.setText(R.string.downloading); + } if (downloadEntity.isPluggable() && PackagesManager.INSTANCE.isInstalled(downloadEntity.getPackageName())) { viewHolder.mDownloadPb.setDownloadType(DownloadProgressBar.DownloadType.DOWNLOADING_PLUGIN); } else { @@ -152,17 +157,25 @@ public class DetailDownloadUtils { } break; case done: - if (SimulatorGameManager.isSimulatorGame(viewHolder.gameEntity)){ + if (SimulatorGameManager.isSimulatorGame(viewHolder.gameEntity)) { boolean isInstalled = PackageUtils.isInstalledFromAllPackage(viewHolder.context, viewHolder.gameEntity.getSimulator().getApk().getPackageName()); - if (isInstalled){ + if (isInstalled) { viewHolder.mDownloadPb.setText(R.string.launch); viewHolder.mDownloadPb.setDownloadType(DownloadProgressBar.DownloadType.LAUNCH_OR_OPEN); - }else{ - viewHolder.mDownloadPb.setText(R.string.install); + } else { + if (SPUtils.getBoolean(Constants.SP_USE_BROWSER_TO_INSTALL)) { + viewHolder.mDownloadPb.setText(R.string.browser_install_install); + } else { + viewHolder.mDownloadPb.setText(R.string.install); + } viewHolder.mDownloadPb.setDownloadType(DownloadProgressBar.DownloadType.INSTALL_NORMAL); } - }else{ - viewHolder.mDownloadPb.setText(R.string.install); + } else { + if (SPUtils.getBoolean(Constants.SP_USE_BROWSER_TO_INSTALL)) { + viewHolder.mDownloadPb.setText(R.string.browser_install_install); + } else { + viewHolder.mDownloadPb.setText(R.string.install); + } if (downloadEntity.isPluggable() && PackagesManager.isInstalled(downloadEntity.getPackageName())) { viewHolder.mDownloadPb.setDownloadType(DownloadProgressBar.DownloadType.INSTALL_PLUGIN); 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 010955bf3f..db3d49a4b9 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt @@ -183,6 +183,9 @@ class GameDetailFragment : NormalFragment() { @BindView(R.id.closeIv) lateinit var mReserveGuideClose: View + @BindView(R.id.switch_btn) + lateinit var mSwitchBtn: TextView + @BindView(R.id.browser_install_hint_container) lateinit var mBrowserInstallContainer: View @@ -972,7 +975,7 @@ class GameDetailFragment : NormalFragment() { } } - @OnClick(R.id.reuse_no_connection, R.id.gamedetail_kaifu_hint, R.id.concern_btn, R.id.reserve_btn, R.id.closeIv, R.id.recommendCloseIv) + @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.closeIv, R.id.recommendCloseIv) override fun onClick(v: View) { when (v.id) { R.id.reuse_no_connection -> { @@ -1037,6 +1040,14 @@ class GameDetailFragment : NormalFragment() { } } } + R.id.switch_btn -> { + val intent = ShellActivity.getIntent( + requireContext(), + ShellActivity.Type.SWITCH_INSTALL_METHOD, + null + ) + requireActivity().startActivity(intent) + } R.id.closeIv -> { showReserveGuide(false) } @@ -1186,30 +1197,32 @@ class GameDetailFragment : NormalFragment() { var closeHintText = "" if (manufacturer == "OPPO" || manufacturer == "VIVO") { - hintText = "${manufacturer}手机如何解决安装需要密码" - closeHintText = "关闭后将不再显示免密安装引导,您可以前往“ 我的光环-设置-切换安装方式”进行设置,或在“ 我的光环-帮助与反馈”查看相关问题" + hintText = if (SPUtils.getBoolean(Constants.SP_USE_BROWSER_TO_INSTALL)) "当前安装方式为[浏览器安装],点击切换安装方式" else "${manufacturer}手机如何解决安装需要密码" + closeHintText = "关闭后“切换安装方式”入口将显示在左下角,您也可以前往“我的光环-设置-切换安装方式”进行设置,或在“ 我的光环-帮助与反馈”查看相关问题" } else { - hintText = "手机如何解决无法安装问题" - closeHintText = "关闭后将不再显示切换安装方式引导,您可以前往“ 我的光环-设置-切换安装方式”进行设置" + hintText = if (SPUtils.getBoolean(Constants.SP_USE_BROWSER_TO_INSTALL)) "当前安装方式为[浏览器安装],点击切换安装方式" else "手机如何解决无法安装问题" + closeHintText = "关闭后“切换安装方式”入口将显示在左下角,您也可以前往“我的光环-设置-切换安装方式”进行设置" } mBrowserInstallHintTv.text = hintText mBrowserInstallCloseIv.setOnClickListener { DialogHelper.showDialog( - requireContext(), - "温馨提示", - closeHintText, - "确定", - "取消", - { - mBrowserInstallContainer.visibility = View.GONE - BrowserInstallHelper.hideGameDetailUseBrowserToInstallHint() - BrowserInstallHelper.logOrdinaryBrowserEvent(BrowserInstallHelper.Type.SWITCH_INSTALL_GUIDE_QUIT) - } + requireContext(), + "温馨提示", + closeHintText, + "确定", + "取消", + { + mBrowserInstallContainer.visibility = View.GONE + mSwitchBtn.visibility = View.VISIBLE + BrowserInstallHelper.hideGameDetailUseBrowserToInstallHint() + BrowserInstallHelper.logOrdinaryBrowserEvent(BrowserInstallHelper.Type.SWITCH_INSTALL_GUIDE_QUIT) + } ) } } else { mBrowserInstallContainer.visibility = View.GONE + mSwitchBtn.visibility = View.VISIBLE } } diff --git a/app/src/main/java/com/halo/assistant/fragment/SwitchInstallMethodFragment.kt b/app/src/main/java/com/halo/assistant/fragment/SwitchInstallMethodFragment.kt index a48639d98e..7e7b191c7a 100644 --- a/app/src/main/java/com/halo/assistant/fragment/SwitchInstallMethodFragment.kt +++ b/app/src/main/java/com/halo/assistant/fragment/SwitchInstallMethodFragment.kt @@ -1,7 +1,9 @@ package com.halo.assistant.fragment +import android.content.Intent import android.os.Build import android.os.Bundle +import android.provider.Settings import android.view.View import com.gh.common.constant.Constants import com.gh.common.util.SPUtils @@ -37,24 +39,31 @@ class SwitchInstallMethodFragment : NormalFragment() { val manufacturer = Build.MANUFACTURER.toUpperCase(Locale.CHINA) - val defaultHintText: String + var defaultHintText: CharSequence var browserHintText: CharSequence = "1.光环助手下载应用后,通过跳转默认浏览器安装已下载的应用(不会重复消耗流量),即可完成免密码安装\n2.内存较大的游戏在浏览器解压时间较长,需要等待片刻,您也可以通过浏览器的“下载记录”查看解压进度" if (manufacturer == "OPPO" || manufacturer == "VIVO") { - defaultHintText = "直接使用光环助手下载应用,但${manufacturer}手机自身安全性检测,下载后需要进行验证账户密码、指纹等解锁后安装" + val clickText : CharSequence = "前往手机设置-指纹、面部与密码>" + val endText = if (manufacturer == "OPPO") " 设置锁屏密码,再点击[添加指纹]录入指纹,将指纹用于[安装验证];或者点击[添加面部]录入面部,将面部用于[安装验证],即可实现快速安装" else "开启锁屏密码,再点击[添加指纹]录入指纹,将指纹用于[解锁],即可实现快速安装" + defaultHintText = "1.直接使用光环助手下载应用,但${manufacturer}手机自身安全性检测,下载后需要进行验证账户密码、指纹等解锁后安装\n2.您可以 $clickText$endText" + defaultHintText = SpanBuilder(defaultHintText) + .click(defaultHintText.length - clickText.length - endText.length, defaultHintText.length - endText.length, R.color.theme_font, true) { + requireContext().startActivity(Intent(Settings.ACTION_SETTINGS)) + } + .build() val clickableText: CharSequence = "可查看使用教程>" - browserHintText = "$browserHintText\n以上未能解决安装需要密码的,$clickableText" + browserHintText = "$browserHintText\n\n以上未能解决安装需要密码的,$clickableText" browserHintText = SpanBuilder(browserHintText) - .click(browserHintText.length - clickableText.length, browserHintText.length, R.color.theme_font, true) { - val url = if (manufacturer == "OPPO") { - "https://static-web.ghzs.com/ghzs_help/help.html?content=5fa90fe143d91a022e0d33ff" - } else { - "https://static-web.ghzs.com/ghzs_help/help.html?content=5fc05a0033b5f008e04cdc4b" - } - requireContext().startActivity(WebActivity.getIntent(requireContext(), url, "安装问题", false, 1)) + .click(browserHintText.length - clickableText.length, browserHintText.length, R.color.theme_font, true) { + val url = if (manufacturer == "OPPO") { + "https://static-web.ghzs.com/ghzs_help/help.html?content=5fa90fe143d91a022e0d33ff" + } else { + "https://static-web.ghzs.com/ghzs_help/help.html?content=5fc05a0033b5f008e04cdc4b" } - .build() + requireContext().startActivity(WebActivity.getIntent(requireContext(), url, "安装问题", false, 1)) + } + .build() } else { defaultHintText = "直接使用光环助手下载应用,但部分手机可能存在无法安装的问题" } @@ -62,6 +71,7 @@ class SwitchInstallMethodFragment : NormalFragment() { mBinding?.defaultHintTv?.text = defaultHintText mBinding?.browserHintTv?.text = browserHintText mBinding?.browserHintTv?.movementMethod = CustomLinkMovementMethod.getInstance() + mBinding?.defaultHintTv?.movementMethod = CustomLinkMovementMethod.getInstance() } private fun changeSwitch(useBrowserToInstall: Boolean) { diff --git a/app/src/main/res/drawable-xxhdpi/ic_gamedetail_reserve.webp b/app/src/main/res/drawable-xxhdpi/ic_gamedetail_reserve.webp index 66467b64eb..2ed31eefde 100644 Binary files a/app/src/main/res/drawable-xxhdpi/ic_gamedetail_reserve.webp and b/app/src/main/res/drawable-xxhdpi/ic_gamedetail_reserve.webp differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_gamedetail_reserved.webp b/app/src/main/res/drawable-xxhdpi/ic_gamedetail_reserved.webp index 7057100674..03fe4ab86a 100644 Binary files a/app/src/main/res/drawable-xxhdpi/ic_gamedetail_reserved.webp and b/app/src/main/res/drawable-xxhdpi/ic_gamedetail_reserved.webp differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_gamedetail_switch_install.webp b/app/src/main/res/drawable-xxxhdpi/ic_gamedetail_switch_install.webp new file mode 100644 index 0000000000..5bf37120b3 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_gamedetail_switch_install.webp differ diff --git a/app/src/main/res/drawable/bg_browser_install_hint.xml b/app/src/main/res/drawable/bg_browser_install_hint.xml new file mode 100644 index 0000000000..991a3e85f0 --- /dev/null +++ b/app/src/main/res/drawable/bg_browser_install_hint.xml @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/detail_download_item.xml b/app/src/main/res/layout/detail_download_item.xml index 7e3da5b63e..1d8c7af8df 100644 --- a/app/src/main/res/layout/detail_download_item.xml +++ b/app/src/main/res/layout/detail_download_item.xml @@ -24,14 +24,14 @@ android:id="@+id/browser_install_hint_container" android:layout_width="match_parent" android:layout_height="40dp" - android:background="@color/bg_FFF6E6" + android:background="@drawable/bg_browser_install_hint" android:visibility="gone" tools:visibility="visible"> @@ -44,6 +44,8 @@ android:layout_marginLeft="8dp" android:layout_toRightOf="@id/browser_install_hint_iv" android:textColor="@color/text_F9A755" + android:textSize="12sp" + app:lineHeight="12dp" tools:text="VIVO手机如何解决安装需要密码" /> + + 试玩 展开 > 解压中 + 下载后前往浏览器解压安装 + 浏览器解压安装 已淘号:%1$s]]> 已领取:%1$s]]>