From 1753224cc4faf14429baffd54610a2cbcab6d282 Mon Sep 17 00:00:00 2001 From: juntao Date: Tue, 30 Aug 2022 17:17:40 +0800 Subject: [PATCH 01/26] =?UTF-8?q?build:=20=E6=AD=A3=E5=BC=8F=E5=8C=85?= =?UTF-8?q?=E7=95=85=E7=8E=A9=E5=BC=80=E5=85=B3=E9=BB=98=E8=AE=A4=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E5=BC=80=E5=90=AF=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/build_with_simple_backup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build_with_simple_backup.sh b/scripts/build_with_simple_backup.sh index 2ac6f67e4e..6b72e33d26 100755 --- a/scripts/build_with_simple_backup.sh +++ b/scripts/build_with_simple_backup.sh @@ -31,7 +31,7 @@ rm -r module_common/src/main/res/drawable-night-xxxhdpi rm -r module_common/src/main/res/drawable-night-nodpi rm -r module_common/src/main/res/drawable-night sed -i 's/buildConfigField "boolean", "IS_NIGHT_MODE_ON", "true"/buildConfigField "boolean", "IS_NIGHT_MODE_ON", "false"/g' module_common/build.gradle -sed -i 's/buildConfigField "boolean", "IS_VGAME_ON", "true"/buildConfigField "boolean", "IS_VGAME_ON", "false"/g' module_common/build.gradle +sed -i 's/buildConfigField "boolean", "IS_VGAME_ON", "true"/buildConfigField "boolean", "IS_VGAME_ON", "true"/g' module_common/build.gradle ./gradlew --stop ./gradlew clean From fa2c86c3f154e594dec7ee593f2f7a506f912a08 Mon Sep 17 00:00:00 2001 From: juntao Date: Tue, 30 Aug 2022 17:55:35 +0800 Subject: [PATCH 02/26] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=95=85?= =?UTF-8?q?=E7=8E=A9=E9=85=8D=E7=BD=AE=E5=8A=A0=E8=BD=BD=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E8=A7=A6=E5=8F=91=E7=9A=84=E9=97=AA=E9=80=80=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/vspace/VHelper.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/gh/vspace/VHelper.kt b/app/src/main/java/com/gh/vspace/VHelper.kt index 7469fad256..da24481ffd 100644 --- a/app/src/main/java/com/gh/vspace/VHelper.kt +++ b/app/src/main/java/com/gh/vspace/VHelper.kt @@ -644,10 +644,11 @@ object VHelper { if (vaConfig == null) { ToastUtils.toast("畅玩空间暂未上线") + return true } // TODO 检测 32 位 - if (!PackageUtils.isInstalled(context, vaConfig!!.arch64?.packageName)) { + if (!PackageUtils.isInstalled(context, vaConfig.arch64?.packageName)) { VSpaceDialogFragment.showDownloadDialog(context, getVSpaceDownloadEntity(false)) Utils.log(LOG_TAG, "显示下载畅玩空间弹窗") return true From 5dd0734aad97b5b92fe9398d81ffd581e82467ad Mon Sep 17 00:00:00 2001 From: juntao Date: Tue, 30 Aug 2022 18:13:59 +0800 Subject: [PATCH 03/26] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=AD=A3?= =?UTF-8?q?=E5=BC=8F=E5=8C=85=E7=95=85=E7=8E=A9=E9=93=BE=E6=8E=A5=E4=B8=8D?= =?UTF-8?q?=E6=AD=A3=E7=A1=AE=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 9f24fe436b..b482fa465a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -165,7 +165,7 @@ android { buildConfigField "String", "DEV_API_HOST", "\"${API_HOST}\"" buildConfigField "String", "NEW_DEV_API_HOST", "\"${NEW_API_HOST}\"" - buildConfigField "String", "DEV_VAPI_HOST", "\"${API_HOST}\"" + buildConfigField "String", "DEV_VAPI_HOST", "\"${VAPI_HOST}\"" } tea { @@ -173,7 +173,7 @@ android { buildConfigField "String", "DEV_API_HOST", "\"${API_HOST}\"" buildConfigField "String", "NEW_DEV_API_HOST", "\"${NEW_API_HOST}\"" - buildConfigField "String", "DEV_VAPI_HOST", "\"${API_HOST}\"" + buildConfigField "String", "DEV_VAPI_HOST", "\"${VAPI_HOST}\"" manifestPlaceholders.put("APPLOG_SCHEME", "rangersapplog.byAx6uYt".toLowerCase()) } From 31d8a442a3ab63cf6448d7d3e154ca308500f039 Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Thu, 1 Sep 2022 13:58:43 +0800 Subject: [PATCH 04/26] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E5=AE=9E=E4=BE=8B=E5=BF=AB=E7=85=A7=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E4=B8=BA=E7=A9=BA=E6=97=B6=E7=9A=84=E9=97=AA=E9=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/download/DownloadManager.java | 2 +- libraries/LGLibrary | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/gh/download/DownloadManager.java b/app/src/main/java/com/gh/download/DownloadManager.java index 880653dded..01df0b840d 100644 --- a/app/src/main/java/com/gh/download/DownloadManager.java +++ b/app/src/main/java/com/gh/download/DownloadManager.java @@ -649,7 +649,7 @@ public class DownloadManager implements DownloadStatusListener { public void initGameMap() { gameMap.clear(); List list = getAllDownloadEntitySnapshots(); - if (list != null && list.size() != 0) { + if (list.size() != 0) { String name; for (DownloadEntity downloadEntity : list) { name = downloadEntity.getName(); diff --git a/libraries/LGLibrary b/libraries/LGLibrary index fbc7818022..0e6ff1678f 160000 --- a/libraries/LGLibrary +++ b/libraries/LGLibrary @@ -1 +1 @@ -Subproject commit fbc7818022c42b7823b54ece34d6c9a094d9896f +Subproject commit 0e6ff1678f7b5f070bcfa19c557fa5201af6de37 From 8e068684e0c46faa487c400a8f6490cf97f7050c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=8E=89=E4=B9=85?= Date: Thu, 1 Sep 2022 14:45:13 +0800 Subject: [PATCH 05/26] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E9=A6=96?= =?UTF-8?q?=E9=A1=B5=E5=8F=AF=E8=83=BD=E5=87=BA=E7=8E=B0=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E7=BB=84=E8=B6=8A=E7=95=8C=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/gamecenter/home/HomeFragment.kt | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/home/HomeFragment.kt b/app/src/main/java/com/gh/gamecenter/home/HomeFragment.kt index b7efd9ebed..22d2b22161 100644 --- a/app/src/main/java/com/gh/gamecenter/home/HomeFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/home/HomeFragment.kt @@ -70,9 +70,6 @@ class HomeFragment : LazyFragment() { mViewModel = viewModelProvider() mHomeSearchViewModel = viewModelProviderFromParent() mViewModel.homeOnlyWithoutOtherTab = arguments?.getInt(EntranceConsts.KEY_TAB_COUNT) == 1 - val homeDataEntity = mHomeSearchViewModel.homeDataLiveData.value - mViewModel.initData(homeDataEntity) - super.onFragmentFirstVisible() mViewModel.itemDataList.observeNonNull(this, callback = { From ce16ad471bd436abb42ded44cb45dbcd73dd95f8 Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Thu, 1 Sep 2022 15:11:41 +0800 Subject: [PATCH 06/26] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E6=B8=B8=E6=88=8F=E6=97=B6=E8=8E=B7=E5=8F=96=E4=B8=8D?= =?UTF-8?q?=E5=88=B0=E7=89=88=E6=9C=AC=E7=9A=84=E9=97=AA=E9=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/gamecenter/eventbus/EBPackage.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/gh/gamecenter/eventbus/EBPackage.kt b/app/src/main/java/com/gh/gamecenter/eventbus/EBPackage.kt index 0505633b0e..b5806fbbd0 100644 --- a/app/src/main/java/com/gh/gamecenter/eventbus/EBPackage.kt +++ b/app/src/main/java/com/gh/gamecenter/eventbus/EBPackage.kt @@ -1,6 +1,6 @@ package com.gh.gamecenter.eventbus -class EBPackage(var type: String, var packageName: String, var versionName: String) { +class EBPackage(var type: String, var packageName: String, var versionName: String?) { var gameId: String? = null } From 15a3624e557409790367e10c3f6cca82f4e4368f Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Thu, 1 Sep 2022 15:12:09 +0800 Subject: [PATCH 07/26] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E5=AE=8C=E6=88=90=E6=B8=B8=E6=88=8F=E6=97=B6=E5=A4=9A?= =?UTF-8?q?=E7=BA=BF=E7=A8=8B=E6=93=8D=E4=BD=9C=E6=97=A5=E5=BF=97=E9=80=A0?= =?UTF-8?q?=E6=88=90=E7=9A=84=E9=97=AA=E9=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/gamecenter/manager/DataCollectionManager.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/gh/gamecenter/manager/DataCollectionManager.java b/app/src/main/java/com/gh/gamecenter/manager/DataCollectionManager.java index 613262c8b8..3ebbd5f993 100644 --- a/app/src/main/java/com/gh/gamecenter/manager/DataCollectionManager.java +++ b/app/src/main/java/com/gh/gamecenter/manager/DataCollectionManager.java @@ -68,7 +68,9 @@ public class DataCollectionManager { paramsWrapper.put("content", new JSONObject(map).toString()); paramsWrapper.put("time", Utils.getTime(HaloApp.getInstance().getApplication())); - LoghubUtils.log(new JSONObject(paramsWrapper), "collection", true); + AppExecutor.getUiExecutor().execute(() -> { + LoghubUtils.log(new JSONObject(paramsWrapper), "collection", true); + }); } public static DataCollectionManager getInstance() { From 08ac765e9c61bc102b17a4ba91cc2961e895eb3c Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Thu, 1 Sep 2022 15:12:34 +0800 Subject: [PATCH 08/26] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=A4=9A?= =?UTF-8?q?=E7=BA=BF=E7=A8=8B=E6=93=8D=E4=BD=9C=E4=B8=8B=E8=BD=BD=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BC=95=E8=B5=B7=E7=9A=84=E9=97=AA=E9=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/download/DownloadManager.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/gh/download/DownloadManager.java b/app/src/main/java/com/gh/download/DownloadManager.java index 01df0b840d..5435c8a09d 100644 --- a/app/src/main/java/com/gh/download/DownloadManager.java +++ b/app/src/main/java/com/gh/download/DownloadManager.java @@ -69,7 +69,9 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.LinkedBlockingQueue; public class DownloadManager implements DownloadStatusListener { @@ -83,7 +85,7 @@ public class DownloadManager implements DownloadStatusListener { private final ArrayMap lastTimeMap; private final ArrayMap> platformMap; - private final ArrayMap> gameMap; + private final Map> gameMap; private final ArrayMap statusMap; private final ArrayMap downloadingMap; @@ -173,7 +175,7 @@ public class DownloadManager implements DownloadStatusListener { lastTimeMap = new ArrayMap<>(); platformMap = new ArrayMap<>(); - gameMap = new ArrayMap<>(); + gameMap = new ConcurrentHashMap<>(); statusMap = new ArrayMap<>(); downloadingMap = new ArrayMap<>(); // mDownloadSnapshotList = new ArrayList<>(); From 43c840cd945f72147992c43a5ea17867864baad8 Mon Sep 17 00:00:00 2001 From: juntao Date: Thu, 1 Sep 2022 15:19:21 +0800 Subject: [PATCH 09/26] =?UTF-8?q?chore:=20=E7=89=88=E6=9C=AC=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E8=87=B3=205.12.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dependencies.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index 6ca1a5d343..3c1e4dbb72 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -7,8 +7,8 @@ ext { targetSdkVersion = 28 // application info (每个大版本之间的 versionCode 增加 20) - versionCode = 590 - versionName = "5.12.0" + versionCode = 591 + versionName = "5.12.1" applicationId = "com.gh.gamecenter" // AndroidX From e21d8a5ac5385c2ff4c907eb771641597b13b38a Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Thu, 1 Sep 2022 16:27:30 +0800 Subject: [PATCH 10/26] =?UTF-8?q?fix:=20=E5=B0=9D=E8=AF=95=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=90=AF=E5=8A=A8=E4=B8=8B=E8=BD=BD=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E6=97=B6=E7=9A=84=E9=97=AA=E9=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libraries/LGLibrary | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/LGLibrary b/libraries/LGLibrary index 0e6ff1678f..9aa0589b2f 160000 --- a/libraries/LGLibrary +++ b/libraries/LGLibrary @@ -1 +1 @@ -Subproject commit 0e6ff1678f7b5f070bcfa19c557fa5201af6de37 +Subproject commit 9aa0589b2fe51792ca356a83796d2bf46e1608ef From 946bd39fb6fbe4ad097c11c7ff0a73b76e7c1618 Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Fri, 2 Sep 2022 10:06:57 +0800 Subject: [PATCH 11/26] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=A6=96?= =?UTF-8?q?=E9=A1=B5=E5=88=97=E8=A1=A8=E6=9B=B4=E6=96=B0=E6=95=B0=E7=BB=84?= =?UTF-8?q?=E8=B6=8A=E7=95=8C=E9=97=AA=E9=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gh/gamecenter/baselist/DiffUtilAdapter.kt | 58 +++++++++++-------- 1 file changed, 34 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/baselist/DiffUtilAdapter.kt b/app/src/main/java/com/gh/gamecenter/baselist/DiffUtilAdapter.kt index bda46c9035..788fe2f025 100644 --- a/app/src/main/java/com/gh/gamecenter/baselist/DiffUtilAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/baselist/DiffUtilAdapter.kt @@ -5,6 +5,8 @@ import android.content.Context import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.RecyclerView import com.gh.gamecenter.common.utils.safelyGetInRelease +import com.gh.gamecenter.common.utils.testChannelOnly +import com.gh.gamecenter.core.utils.ToastUtils import com.lightgame.adapter.BaseRecyclerAdapter abstract class DiffUtilAdapter(context: Context) : @@ -24,35 +26,43 @@ abstract class DiffUtilAdapter(context: Context) : // 这里用新的数组包裹原数据 val updateDataCopy = ArrayList(updateData) - ListExecutor.workerExecutor.execute { - val diffResult = DiffUtil.calculateDiff(object : DiffUtil.Callback() { - override fun getOldListSize(): Int { - return mDataList.size - } + try { + ListExecutor.workerExecutor.execute { + val diffResult = DiffUtil.calculateDiff(object : DiffUtil.Callback() { + override fun getOldListSize(): Int { + return mDataList.size + } - override fun getNewListSize(): Int { - return updateDataCopy.size - } + override fun getNewListSize(): Int { + return updateDataCopy.size + } - override fun areItemsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean { - val oldItem = mDataList.safelyGetInRelease(oldItemPosition) - val newItem = updateDataCopy.safelyGetInRelease(newItemPosition) - return areItemsTheSame(oldItem, newItem) - } + override fun areItemsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean { + val oldItem = mDataList.safelyGetInRelease(oldItemPosition) + val newItem = updateDataCopy.safelyGetInRelease(newItemPosition) + return areItemsTheSame(oldItem, newItem) + } - override fun areContentsTheSame( - oldItemPosition: Int, - newItemPosition: Int - ): Boolean { - val oldItem = mDataList.safelyGetInRelease(oldItemPosition) - val newItem = updateDataCopy.safelyGetInRelease(newItemPosition) - return areContentsTheSame(oldItem, newItem) + override fun areContentsTheSame( + oldItemPosition: Int, + newItemPosition: Int + ): Boolean { + val oldItem = mDataList.safelyGetInRelease(oldItemPosition) + val newItem = updateDataCopy.safelyGetInRelease(newItemPosition) + return areContentsTheSame(oldItem, newItem) + } + }) + ListExecutor.uiExecutor.execute { + mDataList = updateDataCopy + diffResult.dispatchUpdatesTo(this@DiffUtilAdapter) } - }) - ListExecutor.uiExecutor.execute { - mDataList = ArrayList(updateData) - diffResult.dispatchUpdatesTo(this@DiffUtilAdapter) } + } catch (e: IndexOutOfBoundsException) { + testChannelOnly { + ToastUtils.toast("DiffUtilAdapter 遇到数组越界异常,请检查") + } + mDataList = updateDataCopy + notifyDataSetChanged() } } From dc4e345ea8f7072a28519b4721e1abcebc705d85 Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Fri, 2 Sep 2022 11:12:58 +0800 Subject: [PATCH 12/26] =?UTF-8?q?fix:=20=E5=A4=9A=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E4=B8=8A=E6=8A=A5=E6=97=A5=E5=BF=97=E5=AF=BC=E8=87=B4=E7=9A=84?= =?UTF-8?q?=E9=97=AA=E9=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/FixedRateJobHelper.kt | 13 +++--- .../manager/DataCollectionManager.java | 4 +- .../gamecenter/common/loghub/LoghubUtils.kt | 41 +++++++++++-------- .../gh/gamecenter/common/utils/Extensions.kt | 7 +++- .../com/gh/gamecenter/core/AppExecutor.kt | 6 ++- 5 files changed, 42 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/com/gh/common/FixedRateJobHelper.kt b/app/src/main/java/com/gh/common/FixedRateJobHelper.kt index 6835758b5c..6896535c4a 100644 --- a/app/src/main/java/com/gh/common/FixedRateJobHelper.kt +++ b/app/src/main/java/com/gh/common/FixedRateJobHelper.kt @@ -2,13 +2,14 @@ package com.gh.common import com.gh.common.exposure.ExposureManager import com.gh.common.filter.RegionSettingHelper -import com.gh.gamecenter.common.loghub.LoghubUtils -import com.gh.gamecenter.common.utils.doOnMainProcessOnly -import com.gh.gamecenter.common.utils.tryCatchInRelease import com.gh.common.videolog.VideoRecordUtils import com.gh.download.DownloadDataHelper -import com.gh.gamecenter.entity.TimeEntity +import com.gh.gamecenter.common.loghub.LoghubUtils import com.gh.gamecenter.common.retrofit.Response +import com.gh.gamecenter.common.utils.doOnMainProcessOnly +import com.gh.gamecenter.common.utils.tryCatchInRelease +import com.gh.gamecenter.core.runOnUiThread +import com.gh.gamecenter.entity.TimeEntity import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import io.reactivex.schedulers.Schedulers @@ -60,7 +61,9 @@ object FixedRateJobHelper { // 提交普通 loghub 数据 if ((mExecuteCount * CHECKER_PERIOD) % LOGHUB_PERIOD == 0L) { - LoghubUtils.commitSavedLoghubEvents(true) + runOnUiThread { + LoghubUtils.commitSavedLoghubEvents(true) + } } // 更新游戏屏蔽信息 diff --git a/app/src/main/java/com/gh/gamecenter/manager/DataCollectionManager.java b/app/src/main/java/com/gh/gamecenter/manager/DataCollectionManager.java index 3ebbd5f993..613262c8b8 100644 --- a/app/src/main/java/com/gh/gamecenter/manager/DataCollectionManager.java +++ b/app/src/main/java/com/gh/gamecenter/manager/DataCollectionManager.java @@ -68,9 +68,7 @@ public class DataCollectionManager { paramsWrapper.put("content", new JSONObject(map).toString()); paramsWrapper.put("time", Utils.getTime(HaloApp.getInstance().getApplication())); - AppExecutor.getUiExecutor().execute(() -> { - LoghubUtils.log(new JSONObject(paramsWrapper), "collection", true); - }); + LoghubUtils.log(new JSONObject(paramsWrapper), "collection", true); } public static DataCollectionManager getInstance() { diff --git a/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubUtils.kt b/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubUtils.kt index fa0a16a945..8150b4e782 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubUtils.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubUtils.kt @@ -4,6 +4,7 @@ import androidx.annotation.Keep import com.aliyun.sls.android.producer.Log import com.gh.gamecenter.common.entity.ExposureEntity import com.gh.gamecenter.common.exposure.meta.Meta +import com.gh.gamecenter.core.runOnUiThread import org.json.JSONObject object LoghubUtils { @@ -15,32 +16,36 @@ object LoghubUtils { @JvmStatic @JvmOverloads fun log(logJson: JSONObject, logStore: String, forcedUpload: Boolean, isFlat: Boolean = false) { - val event = LoghubEvent( - time = (System.currentTimeMillis() / 1000L).toString(), - content = logJson.toString(), - logStore = logStore, - isFlat = isFlat - ) - loghubEventSet.add(event) + runOnUiThread { + val event = LoghubEvent( + time = (System.currentTimeMillis() / 1000L).toString(), + content = logJson.toString(), + logStore = logStore, + isFlat = isFlat + ) + loghubEventSet.add(event) - if (forcedUpload || loghubEventSet.size >= STORE_SIZE) { - commitSavedLoghubEvents(forcedUpload) + if (forcedUpload || loghubEventSet.size >= STORE_SIZE) { + commitSavedLoghubEvents(forcedUpload) + } } } @JvmStatic @JvmOverloads fun log(jsonString: String, logStore: String, forcedUpload: Boolean, isFlat: Boolean = false) { - val event = LoghubEvent( - time = (System.currentTimeMillis() / 1000L).toString(), - content = jsonString, - logStore = logStore, - isFlat = isFlat - ) - loghubEventSet.add(event) + runOnUiThread { + val event = LoghubEvent( + time = (System.currentTimeMillis() / 1000L).toString(), + content = jsonString, + logStore = logStore, + isFlat = isFlat + ) + loghubEventSet.add(event) - if (forcedUpload || loghubEventSet.size >= STORE_SIZE) { - commitSavedLoghubEvents(forcedUpload) + if (forcedUpload || loghubEventSet.size >= STORE_SIZE) { + commitSavedLoghubEvents(forcedUpload) + } } } diff --git a/module_common/src/main/java/com/gh/gamecenter/common/utils/Extensions.kt b/module_common/src/main/java/com/gh/gamecenter/common/utils/Extensions.kt index 6e78e1e60a..95f18c3c2c 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/utils/Extensions.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/Extensions.kt @@ -12,6 +12,7 @@ import android.graphics.Rect import android.graphics.drawable.Drawable import android.graphics.drawable.GradientDrawable import android.os.Build +import android.os.Looper import android.text.* import android.text.format.Formatter import android.text.style.ClickableSpan @@ -44,14 +45,16 @@ import com.alibaba.android.arouter.launcher.ARouter import com.facebook.drawee.view.SimpleDraweeView import com.gh.gamecenter.common.BuildConfig import com.gh.gamecenter.common.R -import com.gh.gamecenter.common.constant.Constants -import com.gh.gamecenter.common.constant.RouteConsts import com.gh.gamecenter.common.callback.SimpleCallback import com.gh.gamecenter.common.constant.Config +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.constant.RouteConsts import com.gh.gamecenter.common.view.CustomLinkMovementMethod import com.gh.gamecenter.common.view.ExpandTextView +import com.gh.gamecenter.core.AppExecutor import com.gh.gamecenter.core.HaloApp import com.gh.gamecenter.core.provider.* +import com.gh.gamecenter.core.runOnUiThread import com.gh.gamecenter.core.utils.* import com.google.gson.reflect.TypeToken import com.lightgame.download.DownloadEntity diff --git a/module_core/src/main/java/com/gh/gamecenter/core/AppExecutor.kt b/module_core/src/main/java/com/gh/gamecenter/core/AppExecutor.kt index 66f0cb3cf9..7cbec3dc4e 100644 --- a/module_core/src/main/java/com/gh/gamecenter/core/AppExecutor.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/AppExecutor.kt @@ -72,5 +72,9 @@ fun runOnIoThread( } fun runOnUiThread(f: () -> Unit) { - uiExecutor.execute(f) + if (Thread.currentThread() == Looper.getMainLooper().thread) { + f.invoke() + } else { + uiExecutor.execute(f) + } } \ No newline at end of file From bcba6c4230f707b2c0d02efea18192b3fd213591 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=8E=89=E4=B9=85?= Date: Mon, 5 Sep 2022 10:10:50 +0800 Subject: [PATCH 13/26] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=A6=96?= =?UTF-8?q?=E9=A1=B5=E5=88=97=E8=A1=A8=E6=95=B0=E6=8D=AE=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E6=92=AD=E6=94=BE=E8=A7=86=E9=A2=91=E6=95=B0?= =?UTF-8?q?=E7=BB=84=E8=B6=8A=E7=95=8C=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt b/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt index 5833ba6f28..55d163ca53 100644 --- a/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt @@ -570,7 +570,7 @@ class HomeViewModel(application: Application) : AndroidViewModel(application) { shouldShowDivider = false } } - itemDataList.postValue(mSnapshotItemList) + itemDataList.postValue(ArrayList(mSnapshotItemList)) } } From 125701534d75d4938da270063eb8e9aaf2e60e84 Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Mon, 5 Sep 2022 10:19:29 +0800 Subject: [PATCH 14/26] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=A6=96?= =?UTF-8?q?=E9=A1=B5=E4=B8=8B=E8=BD=BD=E6=9B=B4=E6=96=B0=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E5=81=B6=E5=8F=91=E7=9A=84=E5=A4=9A=E7=BA=BF=E7=A8=8B=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E9=97=AA=E9=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/gamecenter/home/HomeFragmentAdapter.kt | 2 +- app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.kt b/app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.kt index e81c92248d..b0a546a3d0 100644 --- a/app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.kt @@ -462,7 +462,7 @@ class HomeFragmentAdapter( fun getGameEntityByPackage(packageName: String): List { val positionList = ArrayList() - val positionMap = viewModel.positionAndPackageMap + val positionMap = viewModel.positionAndPackageMap.value ?: return positionList for (key in positionMap.keys) { if (key.contains(packageName)) { val position = positionMap[key]!! diff --git a/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt b/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt index 55d163ca53..12c17cd528 100644 --- a/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt @@ -62,7 +62,8 @@ class HomeViewModel(application: Application) : AndroidViewModel(application) { var homeOnlyWithoutOtherTab = false var itemDataList: MediatorLiveData> = MediatorLiveData() - var positionAndPackageMap = HashMap() // key: packageName + position, value: position + private var mPositionAndPackageMap = HashMap() // key: packageName + position, value: position + var positionAndPackageMap = MutableLiveData>() val loadStatus = MutableLiveData() @@ -408,7 +409,7 @@ class HomeViewModel(application: Application) : AndroidViewModel(application) { for (entity in mVGameList!!) { val packageName = entity.downloadEntity.packageName - positionAndPackageMap[packageName + (mSnapshotItemList.size - 1)] = mSnapshotItemList.size - 1 + mPositionAndPackageMap[packageName + (mSnapshotItemList.size - 1)] = mSnapshotItemList.size - 1 } } @@ -570,6 +571,7 @@ class HomeViewModel(application: Application) : AndroidViewModel(application) { shouldShowDivider = false } } + positionAndPackageMap.postValue(HashMap(mPositionAndPackageMap)) itemDataList.postValue(ArrayList(mSnapshotItemList)) } } @@ -579,7 +581,7 @@ class HomeViewModel(application: Application) : AndroidViewModel(application) { for (apkEntity in game.getApk()) { packages += apkEntity.packageName } - positionAndPackageMap[packages + (mSnapshotItemList.size - 1)] = mSnapshotItemList.size - 1 + mPositionAndPackageMap[packages + (mSnapshotItemList.size - 1)] = mSnapshotItemList.size - 1 game.gameLocation = GameEntity.GameLocation.INDEX game.setEntryMap(DownloadManager.getInstance().getEntryMap(game.name)) } From a3ddf54afcd5b74b150ce88d9927d43bdb67d68f Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Mon, 5 Sep 2022 10:37:12 +0800 Subject: [PATCH 15/26] =?UTF-8?q?chore:=20=E7=89=88=E6=9C=AC=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E8=87=B3=205.12.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dependencies.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index 3c1e4dbb72..777faa7ef4 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -7,8 +7,8 @@ ext { targetSdkVersion = 28 // application info (每个大版本之间的 versionCode 增加 20) - versionCode = 591 - versionName = "5.12.1" + versionCode = 592 + versionName = "5.12.2" applicationId = "com.gh.gamecenter" // AndroidX From aec874b3e06b0f45e5107e40a04e125f661681f5 Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Tue, 6 Sep 2022 16:30:17 +0800 Subject: [PATCH 16/26] =?UTF-8?q?fix:=20=E5=B0=9D=E8=AF=95=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=90=AF=E5=8A=A8=E4=B8=8B=E8=BD=BD=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=20https://sentry.shanqu.cc/organizations/lig?= =?UTF-8?q?htgame/issues/203713/=3Fproject=3D22&query=3Ddist%3A592&sort=3D?= =?UTF-8?q?freq&statsPeriod=3D14d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libraries/LGLibrary | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/LGLibrary b/libraries/LGLibrary index 9aa0589b2f..768dcec118 160000 --- a/libraries/LGLibrary +++ b/libraries/LGLibrary @@ -1 +1 @@ -Subproject commit 9aa0589b2fe51792ca356a83796d2bf46e1608ef +Subproject commit 768dcec118e957f9ae3c64c88f2a3a282c0cc53f From aaa2c6330ec29c9bc41519b2b2d4f1fb6107a7af Mon Sep 17 00:00:00 2001 From: juntao Date: Tue, 6 Sep 2022 17:03:31 +0800 Subject: [PATCH 17/26] =?UTF-8?q?chore:=20=E7=89=88=E6=9C=AC=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E8=87=B3=205.12.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dependencies.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index 777faa7ef4..f7f37b8290 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -7,8 +7,8 @@ ext { targetSdkVersion = 28 // application info (每个大版本之间的 versionCode 增加 20) - versionCode = 592 - versionName = "5.12.2" + versionCode = 593 + versionName = "5.12.3" applicationId = "com.gh.gamecenter" // AndroidX From ac72abe10543b9ab6c33c86d75680df79c27043d Mon Sep 17 00:00:00 2001 From: liuyirong Date: Tue, 6 Sep 2022 17:29:32 +0800 Subject: [PATCH 18/26] =?UTF-8?q?feat:=E3=80=90=E5=85=89=E7=8E=AF=E5=8A=A9?= =?UTF-8?q?=E6=89=8B=E3=80=91=E5=9B=BD=E9=99=85=E6=9C=8D=E6=B8=B8=E6=88=8F?= =?UTF-8?q?=E5=90=88=E8=A7=84=E8=B0=83=E6=95=B4=E6=96=B9=E6=A1=88=20https:?= =?UTF-8?q?//git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2047?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gh/common/filter/RegionSetting.kt | 34 +++++++++++++------ .../gh/common/filter/RegionSettingHelper.kt | 10 ++++++ .../gh/common/util/DetailDownloadUtils.java | 6 ++++ .../com/gh/common/util/DownloadItemUtils.kt | 20 +++++++++-- .../gh/common/view/DownloadProgressBar.java | 2 ++ .../adapter/viewholder/DetailViewHolder.java | 17 ++++++++++ .../com/gh/gamecenter/entity/GameEntity.kt | 2 ++ .../detail/ForumArticleAskListViewModel.kt | 9 ++++- .../retrofit/service/ApiService.java | 2 +- .../common/constant/EntranceConsts.java | 1 + 10 files changed, 89 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/gh/common/filter/RegionSetting.kt b/app/src/main/java/com/gh/common/filter/RegionSetting.kt index 098ec74df9..b538e9972f 100644 --- a/app/src/main/java/com/gh/common/filter/RegionSetting.kt +++ b/app/src/main/java/com/gh/common/filter/RegionSetting.kt @@ -5,17 +5,31 @@ import com.google.gson.annotations.SerializedName @Keep data class RegionSetting( - @SerializedName("game_mirror") - var mirrorGameIdSet: HashSet, - @SerializedName("game_block") - var filterGameIdSet: HashSet, - @SerializedName("channel_control") - var channelControl: ChannelControl) { + @SerializedName("game_mirror") + var mirrorGameIdSet: HashSet, + @SerializedName("game_block") + var filterGameIdSet: HashSet, + @SerializedName("channel_control") + var channelControl: ChannelControl, + @SerializedName("game_special_download") + var gameSpecialDownload: List +) { @Keep data class ChannelControl( - @SerializedName("game_category") - var gameCategory: String, - @SerializedName("effect") - var effect: Boolean) + @SerializedName("game_category") + var gameCategory: String, + @SerializedName("effect") + var effect: Boolean + ) + + @Keep + data class GameSpecialDownload( + @SerializedName("game_id") + var gameId: String, + @SerializedName("bbs_id") + var bbsId: String, + @SerializedName("top_id") + var topId: String + ) } \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/filter/RegionSettingHelper.kt b/app/src/main/java/com/gh/common/filter/RegionSettingHelper.kt index b5eae07f58..d85618fb66 100644 --- a/app/src/main/java/com/gh/common/filter/RegionSettingHelper.kt +++ b/app/src/main/java/com/gh/common/filter/RegionSettingHelper.kt @@ -19,6 +19,7 @@ object RegionSettingHelper { private var mChannelControl: RegionSetting.ChannelControl? = null private var mFilterGameIdSet: HashSet? = hashSetOf() private var mDisplayMirrorIfoGameIdSet: HashSet? = hashSetOf() + private var mGameSpecialDownloadList: List? = listOf() private const val SP_SETTING = "region_setting" @@ -31,6 +32,14 @@ object RegionSettingHelper { return mFilterGameIdSet?.contains(gameId) ?: false } + fun shouldThisGameShowSpecialDownload(gameId: String) = mGameSpecialDownloadList?.any { it.gameId == gameId } ?: false + + @JvmStatic + fun getGameSpecialDownloadBbsId(gameId: String) = mGameSpecialDownloadList?.find { it.gameId == gameId }?.bbsId ?: "" + + @JvmStatic + fun getGameSpecialDownloadTopId(gameId: String) = mGameSpecialDownloadList?.find { it.gameId == gameId }?.topId ?: "" + @JvmStatic fun filterGame(list: List?): ArrayList { if (list == null) return arrayListOf() @@ -86,6 +95,7 @@ object RegionSettingHelper { mFilterGameIdSet = data.filterGameIdSet mDisplayMirrorIfoGameIdSet = data.mirrorGameIdSet mChannelControl = data.channelControl + mGameSpecialDownloadList = data.gameSpecialDownload } /** 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 d7c7078d82..0daf6f33ff 100644 --- a/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java +++ b/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java @@ -48,6 +48,12 @@ public class DetailDownloadUtils { return; } + if (viewHolder.gameEntity.isSpecialDownload()) { + viewHolder.mDownloadPb.setText("前往论坛讨论"); + viewHolder.mDownloadPb.setDownloadType(DownloadProgressBar.DownloadType.SPECIAL_DOWNLOAD); + return; + } + if (viewHolder.gameEntity.isReservable()) { if (!ReservationRepository.thisGameHasBeenReserved(viewHolder.gameEntity.getId())) { if (TextUtils.isEmpty(downloadAddWord)) { diff --git a/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt b/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt index a2c97ed398..af64b340be 100644 --- a/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt +++ b/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt @@ -15,6 +15,7 @@ import com.gh.common.dialog.CertificationDialog import com.gh.common.dialog.DeviceRemindDialog import com.gh.common.dialog.PackageCheckDialogFragment import com.gh.common.exposure.ExposureEvent +import com.gh.common.filter.RegionSettingHelper import com.gh.common.history.HistoryHelper import com.gh.common.repository.ReservationRepository import com.gh.common.simulator.SimulatorDownloadManager @@ -29,6 +30,7 @@ import com.gh.gamecenter.R import com.gh.gamecenter.WebActivity import com.gh.gamecenter.adapter.viewholder.GameViewHolder import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.common.utils.* import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.entity.GameEntity @@ -176,8 +178,8 @@ object DownloadItemUtils { downloadBtn.background = R.drawable.download_button_normal_style.toDrawable(context) // 控制是否显示下载按钮 downloadBtn.goneIf(!Config.isShowDownload(gameEntity.id) || context.getString(R.string.app_name) == gameEntity.name) - // 青少年模式显示查看 - if (SPUtils.getBoolean(Constants.SP_TEENAGER_MODE)) { + // 青少年模式或者需要特殊处理显示查看 + if (SPUtils.getBoolean(Constants.SP_TEENAGER_MODE) || gameEntity.isSpecialDownload()) { downloadBtn.text = "查看" return } @@ -545,6 +547,20 @@ object DownloadItemUtils { } return } + if (gameEntity.isSpecialDownload()) { + val bbsId = RegionSettingHelper.getGameSpecialDownloadBbsId(gameEntity.id) + val topId = RegionSettingHelper.getGameSpecialDownloadTopId(gameEntity.id) + downloadBtn.setOnClickListener { + if (bbsId.isNotBlank()) { + if (topId.isNotBlank()) { + val data = hashMapOf(EntranceConsts.KEY_TOP_ID to topId) + PageSwitchDataHelper.pushCurrentPageData(data) + } + DirectUtils.directForumDetail(context, bbsId, entrance) + } + } + return + } if (gameEntity.isReservable) { if (!ReservationRepository.thisGameHasBeenReserved(gameEntity.id)) { downloadBtn.setOnClickListener { diff --git a/app/src/main/java/com/gh/common/view/DownloadProgressBar.java b/app/src/main/java/com/gh/common/view/DownloadProgressBar.java index 4acc1a178f..e9481040b0 100644 --- a/app/src/main/java/com/gh/common/view/DownloadProgressBar.java +++ b/app/src/main/java/com/gh/common/view/DownloadProgressBar.java @@ -41,6 +41,7 @@ public class DownloadProgressBar extends ProgressBar { H5_GAME, UPDATING, TEENAGER_MODEL, + SPECIAL_DOWNLOAD, XAPK_UNZIPPING, XAPK_SUCCESS, @@ -231,6 +232,7 @@ public class DownloadProgressBar extends ProgressBar { mDefaultColor = ContextCompat.getColor(getContext(), R.color.white); break; case TEENAGER_MODEL: + case SPECIAL_DOWNLOAD: setProgressDrawable(getResources().getDrawable(R.drawable.download_button_normal_style)); mDefaultColor = ContextCompat.getColor(getContext(), R.color.white); break; 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 fb940b161f..342ffa2817 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 @@ -11,6 +11,8 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.FragmentActivity; +import com.gh.common.filter.RegionSettingHelper; +import com.gh.common.util.DirectUtils; import com.gh.gamecenter.common.constant.Constants; import com.gh.common.dialog.CertificationDialog; import com.gh.common.dialog.DeviceRemindDialog; @@ -21,6 +23,7 @@ import com.gh.common.history.HistoryHelper; import com.gh.common.simulator.SimulatorDownloadManager; import com.gh.common.simulator.SimulatorGameManager; import com.gh.common.util.CheckLoginUtils; +import com.gh.gamecenter.common.constant.EntranceConsts; import com.gh.gamecenter.common.utils.DataLogUtils; import com.gh.common.util.DetailDownloadUtils; import com.gh.gamecenter.common.utils.DialogHelper; @@ -33,6 +36,7 @@ import com.gh.common.util.PackageInstaller; import com.gh.common.util.PackageUtils; import com.gh.gamecenter.common.utils.PermissionHelper; import com.gh.common.util.ReservationHelper; +import com.gh.gamecenter.core.utils.PageSwitchDataHelper; import com.gh.gamecenter.core.utils.StringUtils; import com.gh.common.view.DownloadProgressBar; import com.gh.download.DownloadManager; @@ -59,6 +63,7 @@ import com.lightgame.utils.Utils; import org.greenrobot.eventbus.EventBus; import java.io.File; +import java.util.HashMap; /** * Created by khy on 27/06/17. @@ -351,6 +356,18 @@ public class DetailViewHolder { } ); break; + case SPECIAL_DOWNLOAD: + String bbsId = RegionSettingHelper.getGameSpecialDownloadBbsId(mGameEntity.getId()); + String topId = RegionSettingHelper.getGameSpecialDownloadTopId(mGameEntity.getId()); + if (!TextUtils.isEmpty(bbsId)) { + if (!TextUtils.isEmpty(topId)) { + HashMap map = new HashMap<>(); + map.put(EntranceConsts.KEY_TOP_ID, topId); + PageSwitchDataHelper.pushCurrentPageData(map); + } + DirectUtils.directForumDetail(mViewHolder.context, bbsId, mEntrance); + } + break; default: if (mGameEntity.isVGame()) { mViewHolder.context.startActivity(VDownloadManagerActivity.getIntent(mViewHolder.context, true)); diff --git a/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt index 50487a0be9..f46300e47e 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt @@ -600,6 +600,8 @@ data class GameEntity( } } + fun isSpecialDownload() = RegionSettingHelper.shouldThisGameShowSpecialDownload(id) + fun toSimpleGame(): SimpleGame { val simpleGame = SimpleGame() simpleGame.id = id diff --git a/app/src/main/java/com/gh/gamecenter/forum/detail/ForumArticleAskListViewModel.kt b/app/src/main/java/com/gh/gamecenter/forum/detail/ForumArticleAskListViewModel.kt index c9defe8f2c..83064d3d73 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/detail/ForumArticleAskListViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/detail/ForumArticleAskListViewModel.kt @@ -5,6 +5,8 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import com.gh.gamecenter.core.utils.UrlFilterUtils import com.gh.gamecenter.baselist.ListViewModel +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.PageSwitchDataHelper import com.gh.gamecenter.entity.ForumVideoEntity import com.gh.gamecenter.qa.entity.AnswerEntity import com.gh.gamecenter.retrofit.RetrofitManager @@ -20,7 +22,12 @@ class ForumArticleAskListViewModel(application: Application, val bbsId: String = override fun provideDataObservable(page: Int): Observable> { return when (mPath) { "全部" -> { - RetrofitManager.getInstance().api.getAllForumList(bbsId, UrlFilterUtils.getFilterQuery(sort, "-1"), page) + val data = PageSwitchDataHelper.popLastPageData() + val map = hashMapOf() + if (data != null && data.containsKey(EntranceConsts.KEY_TOP_ID)) { + map["top_id"] = data[EntranceConsts.KEY_TOP_ID] + } + RetrofitManager.getInstance().api.getAllForumList(bbsId, UrlFilterUtils.getFilterQuery(sort, "-1"), page, map) } "精华" -> { RetrofitManager.getInstance().api.getEssenceForumList(bbsId, page) diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java b/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java index 7f2c419d3e..5d97c564eb 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java +++ b/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java @@ -2654,7 +2654,7 @@ public interface ApiService { * 获取论坛全部Tab内容(社区文章+问题) */ @GET("bbses/{bbs_id}/contents") - Observable> getAllForumList(@Path("bbs_id") String bbsId, @Query("sort") String sort, @Query("page") int page); + Observable> getAllForumList(@Path("bbs_id") String bbsId, @Query("sort") String sort, @Query("page") int page, @QueryMap Map params); /** * 获取论坛精华Tab内容(社区文章) diff --git a/module_common/src/main/java/com/gh/gamecenter/common/constant/EntranceConsts.java b/module_common/src/main/java/com/gh/gamecenter/common/constant/EntranceConsts.java index 6802e3a18e..bf5b7dc823 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/constant/EntranceConsts.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/constant/EntranceConsts.java @@ -253,4 +253,5 @@ public class EntranceConsts { public static final String KEY_FORMAT = "format"; public static final String KEY_VERSION_CODE = "version_code"; public static final String KEY_PLATFORM_REQUESTS_ID = "platform_requests_id"; + public static final String KEY_TOP_ID = "top_id"; } From fa740bacb36cdf250437ec0ddfa60ecf0778dc24 Mon Sep 17 00:00:00 2001 From: juntao Date: Wed, 7 Sep 2022 15:44:27 +0800 Subject: [PATCH 19/26] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E7=9A=84=E7=95=85=E7=8E=A9=20toast=20=E6=8F=90?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/vspace/VHelper.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/gh/vspace/VHelper.kt b/app/src/main/java/com/gh/vspace/VHelper.kt index da24481ffd..1157de9359 100644 --- a/app/src/main/java/com/gh/vspace/VHelper.kt +++ b/app/src/main/java/com/gh/vspace/VHelper.kt @@ -145,7 +145,7 @@ object VHelper { override fun onServiceConnectionFailed(failCode: Int) { if (failCode == BinderPool.CONNECT_STATE_NOT_INSTALLED) { - ToastUtils.toast("请先安装畅玩助手") + Utils.log(LOG_TAG, "未安装畅玩助手") } Utils.log(LOG_TAG, "V 服务连接失败") } From 37a2c5171d9b3117558571131bf7d6b82574810f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=8E=89=E4=B9=85?= Date: Wed, 7 Sep 2022 17:30:06 +0800 Subject: [PATCH 20/26] =?UTF-8?q?fix:=20=E3=80=90=E5=85=89=E7=8E=AF?= =?UTF-8?q?=E5=8A=A9=E6=89=8BV=5F5.11.0=E3=80=91=E5=9B=BD=E9=99=85?= =?UTF-8?q?=E6=9C=8D=E6=B8=B8=E6=88=8F=E4=B8=8B=E8=BD=BD=E5=BC=B9=E7=AA=97?= =?UTF-8?q?=E4=BC=98=E5=8C=96(20220907=E9=9C=80=E6=B1=82=E8=A1=A5=E5=85=85?= =?UTF-8?q?)=20https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1933?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gh/common/databind/BindingAdapters.java | 73 +++++++++-------- .../com/gh/common/filter/RegionSetting.kt | 36 ++++++--- .../gh/common/filter/RegionSettingHelper.kt | 34 +++++--- .../gh/common/util/DetailDownloadUtils.java | 11 ++- .../java/com/gh/common/util/DialogUtils.java | 80 +++++++++---------- .../com/gh/common/util/DownloadItemUtils.kt | 17 ++++ .../adapter/viewholder/DetailViewHolder.java | 26 +++--- 7 files changed, 170 insertions(+), 107 deletions(-) diff --git a/app/src/main/java/com/gh/common/databind/BindingAdapters.java b/app/src/main/java/com/gh/common/databind/BindingAdapters.java index a306ceecd8..bc66ad23de 100644 --- a/app/src/main/java/com/gh/common/databind/BindingAdapters.java +++ b/app/src/main/java/com/gh/common/databind/BindingAdapters.java @@ -23,6 +23,8 @@ import com.gh.common.constant.Config; import com.gh.common.dialog.CertificationDialog; import com.gh.common.dialog.PackageCheckDialogFragment; import com.gh.common.exposure.ExposureEvent; +import com.gh.common.filter.RegionSetting; +import com.gh.common.filter.RegionSettingHelper; import com.gh.common.history.HistoryHelper; import com.gh.common.repository.ReservationRepository; import com.gh.common.simulator.SimulatorDownloadManager; @@ -366,27 +368,32 @@ public class BindingAdapters { break; case NORMAL: case PLUGIN: - if (gameEntity.getApk().size() == 1) { - ApkEntity apk = gameEntity.getApk().get(0); - DownloadEntity downloadEntity = SimulatorGameManager.findDownloadEntityByUrl(apk.getUrl()); - if (gameEntity.getSimulator() != null) { - boolean isInstalled = PackageUtils.isInstalledFromAllPackage(v.getContext(), gameEntity.getSimulator().getApk().getPackageName()); - if (downloadEntity != null && SimulatorGameManager.isSimulatorGame(gameEntity) && !isInstalled) { - SimulatorDownloadManager.getInstance().showDownloadDialog(v.getContext(), gameEntity.getSimulator(), - SimulatorDownloadManager.SimulatorLocation.LAUNCH, gameEntity.getId(), gameEntity.getName(), null); - return; + final RegionSetting.GameH5Download gameH5Download = RegionSettingHelper.getGameH5DownloadByGameId(gameEntity.getId()); + if (gameH5Download != null) { + DialogUtils.showGameH5DownloadDialog(v.getContext(), gameEntity, gameH5Download); + } else { + if (gameEntity.getApk().size() == 1) { + ApkEntity apk = gameEntity.getApk().get(0); + DownloadEntity downloadEntity = SimulatorGameManager.findDownloadEntityByUrl(apk.getUrl()); + if (gameEntity.getSimulator() != null) { + boolean isInstalled = PackageUtils.isInstalledFromAllPackage(v.getContext(), gameEntity.getSimulator().getApk().getPackageName()); + if (downloadEntity != null && SimulatorGameManager.isSimulatorGame(gameEntity) && !isInstalled) { + SimulatorDownloadManager.getInstance().showDownloadDialog(v.getContext(), gameEntity.getSimulator(), + SimulatorDownloadManager.SimulatorLocation.LAUNCH, gameEntity.getId(), gameEntity.getName(), null); + return; + } } - } - RealNameHelper.checkIfAuth(v.getContext(), gameEntity, () -> { - GamePermissionDialogFragment.show((AppCompatActivity) v.getContext(), gameEntity, gameEntity.getInfo(), () -> { - BrowserInstallHelper.showBrowserInstallHintDialog(v.getContext(), () -> { - PackageCheckDialogFragment.show((AppCompatActivity) v.getContext(), gameEntity, () -> { - DownloadDialogHelper.findAvailableDialogAndShow(v.getContext(), gameEntity, apk, () -> { - CertificationDialog.showCertificationDialog(v.getContext(), gameEntity, () -> { - DialogUtils.showVersionNumberDialog(v.getContext(), gameEntity, () -> { - DialogUtils.showOverseaDownloadDialog(v.getContext(), gameEntity, () -> { - DialogUtils.checkDownload(v.getContext(), apk.getSize(), - isSubscribe -> download(progressBar, gameEntity, traceEvent, isSubscribe, entrance, location)); + RealNameHelper.checkIfAuth(v.getContext(), gameEntity, () -> { + GamePermissionDialogFragment.show((AppCompatActivity) v.getContext(), gameEntity, gameEntity.getInfo(), () -> { + BrowserInstallHelper.showBrowserInstallHintDialog(v.getContext(), () -> { + PackageCheckDialogFragment.show((AppCompatActivity) v.getContext(), gameEntity, () -> { + DownloadDialogHelper.findAvailableDialogAndShow(v.getContext(), gameEntity, apk, () -> { + CertificationDialog.showCertificationDialog(v.getContext(), gameEntity, () -> { + DialogUtils.showVersionNumberDialog(v.getContext(), gameEntity, () -> { + DialogUtils.showOverseaDownloadDialog(v.getContext(), gameEntity, () -> { + DialogUtils.checkDownload(v.getContext(), apk.getSize(), + isSubscribe -> download(progressBar, gameEntity, traceEvent, isSubscribe, entrance, location)); + }); }); }); }); @@ -394,22 +401,22 @@ public class BindingAdapters { }); }); }); - }); - } else { - RealNameHelper.checkIfAuth(v.getContext(), gameEntity, () -> { - GamePermissionDialogFragment.show((AppCompatActivity) v.getContext(), gameEntity, gameEntity.getInfo(), () -> { - CertificationDialog.showCertificationDialog(v.getContext(), gameEntity, () -> { - DialogUtils.showVersionNumberDialog(v.getContext(), gameEntity, () -> { - DownloadDialog.showDownloadDialog( - v.getContext(), - gameEntity, - traceEvent, - entrance, - location + ":" + gameEntity.getName()); + } else { + RealNameHelper.checkIfAuth(v.getContext(), gameEntity, () -> { + GamePermissionDialogFragment.show((AppCompatActivity) v.getContext(), gameEntity, gameEntity.getInfo(), () -> { + CertificationDialog.showCertificationDialog(v.getContext(), gameEntity, () -> { + DialogUtils.showVersionNumberDialog(v.getContext(), gameEntity, () -> { + DownloadDialog.showDownloadDialog( + v.getContext(), + gameEntity, + traceEvent, + entrance, + location + ":" + gameEntity.getName()); + }); }); }); }); - }); + } } break; case LAUNCH_OR_OPEN: diff --git a/app/src/main/java/com/gh/common/filter/RegionSetting.kt b/app/src/main/java/com/gh/common/filter/RegionSetting.kt index 098ec74df9..b699a530d7 100644 --- a/app/src/main/java/com/gh/common/filter/RegionSetting.kt +++ b/app/src/main/java/com/gh/common/filter/RegionSetting.kt @@ -5,17 +5,33 @@ import com.google.gson.annotations.SerializedName @Keep data class RegionSetting( - @SerializedName("game_mirror") - var mirrorGameIdSet: HashSet, - @SerializedName("game_block") - var filterGameIdSet: HashSet, - @SerializedName("channel_control") - var channelControl: ChannelControl) { + @SerializedName("game_mirror") + var mirrorGameIdSet: HashSet, + @SerializedName("game_block") + var filterGameIdSet: HashSet, + @SerializedName("channel_control") + var channelControl: ChannelControl, + @SerializedName("game_h5_download") + var gameH5DownloadList: List +) { @Keep data class ChannelControl( - @SerializedName("game_category") - var gameCategory: String, - @SerializedName("effect") - var effect: Boolean) + @SerializedName("game_category") + var gameCategory: String, + @SerializedName("effect") + var effect: Boolean + ) + + @Keep + data class GameH5Download( + @SerializedName("game_id") + var gameId: String,// 游戏id + @SerializedName("h5_link") + var h5Link: String,// 网页链接 + @SerializedName("download_link") + var downloadLink: String,// 下载链接 + @SerializedName("button_text") + var buttonText: String,// 按钮文案 + ) } \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/filter/RegionSettingHelper.kt b/app/src/main/java/com/gh/common/filter/RegionSettingHelper.kt index b5eae07f58..be4ae2fb75 100644 --- a/app/src/main/java/com/gh/common/filter/RegionSettingHelper.kt +++ b/app/src/main/java/com/gh/common/filter/RegionSettingHelper.kt @@ -19,6 +19,7 @@ object RegionSettingHelper { private var mChannelControl: RegionSetting.ChannelControl? = null private var mFilterGameIdSet: HashSet? = hashSetOf() private var mDisplayMirrorIfoGameIdSet: HashSet? = hashSetOf() + private var mGameH5DownloadList: List? = listOf() private const val SP_SETTING = "region_setting" @@ -58,27 +59,33 @@ object RegionSettingHelper { } } + @JvmStatic + fun getGameH5DownloadByGameId(gameId: String): RegionSetting.GameH5Download? { + if (mGameH5DownloadList.isNullOrEmpty()) return null + return mGameH5DownloadList!!.find { it.gameId == gameId } + } + @SuppressLint("CheckResult") @JvmStatic fun getRegionSetting() { debounceActionWithInterval(R.string.app_name, 5000) { // 使用默认的 Schdulers.io() 可能会触发 OOM RetrofitManager.getInstance() - .api - .getRegionSetting(HaloApp.getInstance().channel) - .subscribeOn(Schedulers.io()) - .subscribe(object : BiResponse() { - override fun onSuccess(data: RegionSetting) { - updateSettingsInMemory(data) - SPUtils.setString(SP_SETTING, data.toJson()) - } + .api + .getRegionSetting(HaloApp.getInstance().channel) + .subscribeOn(Schedulers.io()) + .subscribe(object : BiResponse() { + override fun onSuccess(data: RegionSetting) { + updateSettingsInMemory(data) + SPUtils.setString(SP_SETTING, data.toJson()) + } - override fun onFailure(exception: Exception) { - SPUtils.getString(SP_SETTING)?.toObject()?.let { - updateSettingsInMemory(it) - } + override fun onFailure(exception: Exception) { + SPUtils.getString(SP_SETTING)?.toObject()?.let { + updateSettingsInMemory(it) } - }) + } + }) } } @@ -86,6 +93,7 @@ object RegionSettingHelper { mFilterGameIdSet = data.filterGameIdSet mDisplayMirrorIfoGameIdSet = data.mirrorGameIdSet mChannelControl = data.channelControl + mGameH5DownloadList = data.gameH5DownloadList } /** 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 dd1d3586dd..94e1e1a775 100644 --- a/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java +++ b/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java @@ -4,7 +4,8 @@ import android.text.TextUtils; import android.view.View; import com.gh.common.constant.Config; -import com.gh.gamecenter.common.constant.Constants; +import com.gh.common.filter.RegionSetting; +import com.gh.common.filter.RegionSettingHelper; import com.gh.common.repository.ReservationRepository; import com.gh.common.simulator.SimulatorGameManager; import com.gh.common.view.DownloadProgressBar; @@ -13,6 +14,7 @@ import com.gh.common.xapk.XapkUnzipStatus; import com.gh.download.DownloadManager; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.DetailViewHolder; +import com.gh.gamecenter.common.constant.Constants; import com.gh.gamecenter.core.utils.SPUtils; import com.gh.gamecenter.entity.LinkEntity; import com.gh.gamecenter.entity.PluginLocation; @@ -59,7 +61,12 @@ public class DetailDownloadUtils { } return; } - + final RegionSetting.GameH5Download gameH5Download = RegionSettingHelper.getGameH5DownloadByGameId(viewHolder.gameEntity.getId()); + if (gameH5Download != null) { + viewHolder.mDownloadPb.setText(TextUtils.isEmpty(viewHolder.gameEntity.getDownloadOffText()) ? "查看详情" : viewHolder.gameEntity.getDownloadOffText()); + viewHolder.mDownloadPb.setDownloadType(DownloadProgressBar.DownloadType.NORMAL); + return; + } if (viewHolder.gameEntity.getApk().isEmpty() || viewHolder.gameEntity.getDownloadOffStatus() != null) { LinkEntity h5LinkEntity = viewHolder.gameEntity.getH5Link(); diff --git a/app/src/main/java/com/gh/common/util/DialogUtils.java b/app/src/main/java/com/gh/common/util/DialogUtils.java index 6db2ab145a..076d6b014e 100644 --- a/app/src/main/java/com/gh/common/util/DialogUtils.java +++ b/app/src/main/java/com/gh/common/util/DialogUtils.java @@ -41,9 +41,7 @@ import android.widget.RelativeLayout; import android.widget.TextView; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; -import androidx.appcompat.app.AppCompatActivity; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.LinearLayoutManager; @@ -52,6 +50,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.facebook.drawee.generic.GenericDraweeHierarchy; import com.facebook.drawee.view.SimpleDraweeView; import com.gh.common.constant.Config; +import com.gh.common.filter.RegionSetting; import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; import com.gh.gamecenter.adapter.ReportReasonAdapter; @@ -61,11 +60,9 @@ import com.gh.gamecenter.common.callback.CancelListener; import com.gh.gamecenter.common.callback.ConfirmListener; import com.gh.gamecenter.common.callback.SimpleCallback; import com.gh.gamecenter.common.databinding.DialogAlertDefaultBinding; -import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.common.utils.ExtensionsKt; import com.gh.gamecenter.common.utils.ImageUtils; import com.gh.gamecenter.common.utils.NetworkUtils; -import com.gh.gamecenter.common.utils.PermissionHelper; import com.gh.gamecenter.common.view.CustomLinkMovementMethod; import com.gh.gamecenter.common.view.DrawableView; import com.gh.gamecenter.common.view.FixLinearLayoutManager; @@ -98,10 +95,8 @@ import com.gh.gamecenter.entity.PrivacyPolicyEntity; import com.gh.gamecenter.entity.SettingsEntity; import com.gh.gamecenter.entity.SimpleGameEntity; import com.gh.gamecenter.entity.TrackableEntity; -import com.gh.gamecenter.retrofit.RetrofitManager; import com.gh.gamecenter.setting.GameDownloadSettingFragment; import com.gh.gamecenter.suggest.SuggestType; -import com.google.gson.JsonObject; import com.halo.assistant.HaloApp; import com.lightgame.adapter.BaseRecyclerAdapter; import com.lightgame.download.DownloadEntity; @@ -118,7 +113,6 @@ import java.util.concurrent.atomic.AtomicBoolean; import kotlin.Unit; import kotlin.jvm.functions.Function0; -import retrofit2.HttpException; public class DialogUtils { @@ -1316,39 +1310,15 @@ public class DialogUtils { binding.gameNameTv.setText(context.getString(R.string.dialog_oversea_hint, gameEntity.getName())); binding.closeIv.setOnClickListener(v -> dialog.dismiss()); - Context finalContext = context; - RetrofitManager.getInstance().getApi().getThirdPartyAddress(gameEntity.getId()) - .compose(ExtensionsKt.observableToMain()) - .subscribe(new Response() { - @Override - public void onResponse(@Nullable JsonObject response) { - super.onResponse(response); - if (response == null) return; - String h5Link = response.get("h5_link").getAsString(); - String downloadLink = response.get("download_link").getAsString(); - String buttonText = response.get("button_text").getAsString(); - binding.urlTv.setText(downloadLink); - binding.downloadBtn.setText(buttonText); - binding.downloadBtn.setOnClickListener(v -> { - DirectUtils.directToExternalBrowser(finalContext, h5Link); - dialog.dismiss(); - }); - } - - @Override - public void onFailure(@Nullable HttpException e) { - super.onFailure(e); - if ("show&download".equals(gameEntity.getOverseasAddressDialog().getStatus())) { - gameEntity.getApk().get(0).setUrl(gameEntity.getOverseasAddressDialog().getLink()); - } - binding.urlTv.setText(gameEntity.getOverseasAddressDialog().getLink()); - binding.downloadBtn.setText("下载(" + gameEntity.getApk().get(0).getSize() + ")"); - binding.downloadBtn.setOnClickListener(v -> { - listener.onConfirm(); - dialog.dismiss(); - }); - } - }); + if ("show&download".equals(gameEntity.getOverseasAddressDialog().getStatus())) { + gameEntity.getApk().get(0).setUrl(gameEntity.getOverseasAddressDialog().getLink()); + } + binding.urlTv.setText(gameEntity.getOverseasAddressDialog().getLink()); + binding.downloadBtn.setText("下载(" + gameEntity.getApk().get(0).getSize() + ")"); + binding.downloadBtn.setOnClickListener(v -> { + listener.onConfirm(); + dialog.dismiss(); + }); Window window = dialog.getWindow(); if (window != null) { @@ -1360,6 +1330,36 @@ public class DialogUtils { dialog.show(); } } + public static void showGameH5DownloadDialog(Context context, GameEntity gameEntity, RegionSetting.GameH5Download gameH5Download) { + context = checkDialogContext(context); + + final Dialog dialog = new Dialog(context, R.style.GhAlertDialog); + + DialogOverseaConfirmationBinding binding = DialogOverseaConfirmationBinding.inflate(LayoutInflater.from(context), null, false); + + View contentView = binding.getRoot(); + + binding.gameIcon.displayGameIcon(gameEntity); + binding.gameNameTv.setText(context.getString(R.string.dialog_oversea_hint, gameEntity.getName())); + binding.closeIv.setOnClickListener(v -> dialog.dismiss()); + + Context finalContext = context; + binding.urlTv.setText(gameH5Download.getDownloadLink()); + binding.downloadBtn.setText(gameH5Download.getButtonText()); + binding.downloadBtn.setOnClickListener(v -> { + DirectUtils.directToExternalBrowser(finalContext, gameH5Download.getH5Link()); + dialog.dismiss(); + }); + + Window window = dialog.getWindow(); + if (window != null) { + window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + } + + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.setContentView(contentView); + dialog.show(); + } public static void showImprintDialog(Context context, GameEntity gameEntity, String titleName) { context = checkDialogContext(context); diff --git a/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt b/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt index 6887402e1a..05b1559e7c 100644 --- a/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt +++ b/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt @@ -16,6 +16,7 @@ import com.gh.common.dialog.CertificationDialog import com.gh.common.dialog.DeviceRemindDialog import com.gh.common.dialog.PackageCheckDialogFragment import com.gh.common.exposure.ExposureEvent +import com.gh.common.filter.RegionSettingHelper import com.gh.common.history.HistoryHelper import com.gh.common.repository.ReservationRepository import com.gh.common.simulator.SimulatorDownloadManager @@ -191,6 +192,15 @@ object DownloadItemUtils { } return } + if (RegionSettingHelper.getGameH5DownloadByGameId(gameEntity.id) != null) { + downloadBtn.apply { + isClickable = true + text = context.getString(R.string.check) + setBackgroundResource(R.drawable.download_button_normal_style) + setTextColor(R.color.white.toColor(context)) + } + return + } if (gameEntity.getApk().isEmpty() || gameEntity.downloadOffStatus != null) { val h5LinkEntity = gameEntity.h5Link val offStatus = gameEntity.downloadOffStatus @@ -578,6 +588,13 @@ object DownloadItemUtils { } return } + val gameH5Download = RegionSettingHelper.getGameH5DownloadByGameId(gameEntity.id) + if (gameH5Download != null) { + downloadBtn.setOnClickListener { + DialogUtils.showGameH5DownloadDialog(context, gameEntity, gameH5Download) + } + return + } if (gameEntity.getApk().size == 0 && gameEntity.h5Link != null) { downloadBtn.setOnClickListener { allStateClickCallback?.onCallback() 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 3eca397f7b..44bd6e17d4 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 @@ -10,30 +10,26 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.FragmentActivity; -import com.gh.gamecenter.common.constant.Constants; import com.gh.common.dialog.CertificationDialog; import com.gh.common.dialog.DeviceRemindDialog; import com.gh.common.dialog.GameOffServiceDialogFragment; import com.gh.common.dialog.PackageCheckDialogFragment; import com.gh.common.exposure.ExposureEvent; +import com.gh.common.filter.RegionSetting; +import com.gh.common.filter.RegionSettingHelper; import com.gh.common.history.HistoryHelper; import com.gh.common.simulator.SimulatorDownloadManager; import com.gh.common.simulator.SimulatorGameManager; import com.gh.common.util.CheckLoginUtils; -import com.gh.gamecenter.common.utils.DataLogUtils; import com.gh.common.util.DetailDownloadUtils; -import com.gh.gamecenter.common.utils.DialogHelper; import com.gh.common.util.DialogUtils; import com.gh.common.util.DownloadDialogHelper; import com.gh.common.util.EnergyTaskHelper; import com.gh.common.util.LogUtils; -import com.gh.gamecenter.core.utils.MtaHelper; import com.gh.common.util.PackageInstaller; import com.gh.common.util.PackageUtils; -import com.gh.gamecenter.common.utils.PermissionHelper; import com.gh.common.util.RealNameHelper; import com.gh.common.util.ReservationHelper; -import com.gh.gamecenter.core.utils.StringUtils; import com.gh.common.view.DownloadProgressBar; import com.gh.download.DownloadManager; import com.gh.download.dialog.DownloadDialog; @@ -41,6 +37,12 @@ import com.gh.download.server.BrowserInstallHelper; import com.gh.gamecenter.DownloadManagerActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.WebActivity; +import com.gh.gamecenter.common.constant.Constants; +import com.gh.gamecenter.common.utils.DataLogUtils; +import com.gh.gamecenter.common.utils.DialogHelper; +import com.gh.gamecenter.common.utils.PermissionHelper; +import com.gh.gamecenter.core.utils.MtaHelper; +import com.gh.gamecenter.core.utils.StringUtils; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.LinkEntity; @@ -184,7 +186,13 @@ public class DetailViewHolder { } break; case NORMAL: - DataLogUtils.uploadGameLog(mViewHolder.context, mGameEntity.getId(), mGameEntity.getName(), mEntrance); + final RegionSetting.GameH5Download gameH5Download = RegionSettingHelper.getGameH5DownloadByGameId(mGameEntity.getId()); + if (gameH5Download != null) { + DialogUtils.showGameH5DownloadDialog(mViewHolder.context, mGameEntity, gameH5Download); + break; + } else { + DataLogUtils.uploadGameLog(mViewHolder.context, mGameEntity.getId(), mGameEntity.getName(), mEntrance); + } case PLUGIN: RealNameHelper.checkIfAuth(v.getContext(), mGameEntity, () -> { GamePermissionDialogFragment.show((AppCompatActivity) mViewHolder.context, mGameEntity, mGameEntity.getInfo(), () -> { @@ -361,12 +369,12 @@ public class DetailViewHolder { } else { method = mViewHolder.context.getString(R.string.download); } - + if (mGameEntity.getApk().size() == 0) { Utils.toast(mViewHolder.context, "暂时无法下载,请稍后再试"); return; } - + ApkEntity apkEntity = mGameEntity.getApk().get(0); String msg = FileUtils.isCanDownload(mViewHolder.context, apkEntity.getSize()); if (TextUtils.isEmpty(msg)) { From 82fc7d01fcde4903cb8cb082c03ceb91ddc10be2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=8E=89=E4=B9=85?= Date: Wed, 7 Sep 2022 17:30:58 +0800 Subject: [PATCH 21/26] =?UTF-8?q?chore:=20=E7=89=88=E6=9C=AC=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E8=87=B3=205.11.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dependencies.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index e821e3ea2e..2f31b5b79f 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -7,8 +7,8 @@ ext { targetSdkVersion = 28 // application info (每个大版本之间的 versionCode 增加 20) - versionCode = 573 - versionName = "5.11.3" + versionCode = 574 + versionName = "5.11.4" applicationId = "com.gh.gamecenter" // AndroidX From ce840cf33e5a0bdaddae9efc63d5985dca4e916f Mon Sep 17 00:00:00 2001 From: liuyirong Date: Wed, 7 Sep 2022 17:41:00 +0800 Subject: [PATCH 22/26] =?UTF-8?q?feat:=E3=80=90=E5=85=89=E7=8E=AF=E5=8A=A9?= =?UTF-8?q?=E6=89=8B=E3=80=91=E5=9B=BD=E9=99=85=E6=9C=8D=E6=B8=B8=E6=88=8F?= =?UTF-8?q?=E5=90=88=E8=A7=84=E8=B0=83=E6=95=B4=E6=96=B9=E6=A1=88(?= =?UTF-8?q?=E9=9C=80=E6=B1=82=E5=8F=98=E5=8A=A8)=20https://git.shanqu.cc/p?= =?UTF-8?q?m/halo/halo-app-issues/-/issues/2047#note=5F169012?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gh/common/filter/RegionSetting.kt | 12 ++++--- .../gh/common/filter/RegionSettingHelper.kt | 11 +++---- .../gh/common/util/DetailDownloadUtils.java | 2 +- .../com/gh/common/util/DownloadItemUtils.kt | 31 +++++++++++++------ .../adapter/viewholder/DetailViewHolder.java | 18 ++++++----- 5 files changed, 44 insertions(+), 30 deletions(-) diff --git a/app/src/main/java/com/gh/common/filter/RegionSetting.kt b/app/src/main/java/com/gh/common/filter/RegionSetting.kt index b538e9972f..e59bef8148 100644 --- a/app/src/main/java/com/gh/common/filter/RegionSetting.kt +++ b/app/src/main/java/com/gh/common/filter/RegionSetting.kt @@ -12,7 +12,7 @@ data class RegionSetting( @SerializedName("channel_control") var channelControl: ChannelControl, @SerializedName("game_special_download") - var gameSpecialDownload: List + var gameSpecialDownloadInfoList: List ) { @Keep @@ -24,12 +24,14 @@ data class RegionSetting( ) @Keep - data class GameSpecialDownload( + data class GameSpecialDownloadInfo( @SerializedName("game_id") - var gameId: String, + var gameId: String = "", @SerializedName("bbs_id") - var bbsId: String, + var bbsId: String = "", @SerializedName("top_id") - var topId: String + var topId: String = "", + @SerializedName("hint_text") + var hintText: String = "" ) } \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/filter/RegionSettingHelper.kt b/app/src/main/java/com/gh/common/filter/RegionSettingHelper.kt index d85618fb66..2080cc8639 100644 --- a/app/src/main/java/com/gh/common/filter/RegionSettingHelper.kt +++ b/app/src/main/java/com/gh/common/filter/RegionSettingHelper.kt @@ -19,7 +19,7 @@ object RegionSettingHelper { private var mChannelControl: RegionSetting.ChannelControl? = null private var mFilterGameIdSet: HashSet? = hashSetOf() private var mDisplayMirrorIfoGameIdSet: HashSet? = hashSetOf() - private var mGameSpecialDownloadList: List? = listOf() + private var mGameSpecialDownloadInfoList: List? = listOf() private const val SP_SETTING = "region_setting" @@ -32,13 +32,10 @@ object RegionSettingHelper { return mFilterGameIdSet?.contains(gameId) ?: false } - fun shouldThisGameShowSpecialDownload(gameId: String) = mGameSpecialDownloadList?.any { it.gameId == gameId } ?: false + fun shouldThisGameShowSpecialDownload(gameId: String) = mGameSpecialDownloadInfoList?.any { it.gameId == gameId } ?: false @JvmStatic - fun getGameSpecialDownloadBbsId(gameId: String) = mGameSpecialDownloadList?.find { it.gameId == gameId }?.bbsId ?: "" - - @JvmStatic - fun getGameSpecialDownloadTopId(gameId: String) = mGameSpecialDownloadList?.find { it.gameId == gameId }?.topId ?: "" + fun getGameSpecialDownloadInfo(gameId: String) = mGameSpecialDownloadInfoList?.find { it.gameId == gameId } @JvmStatic fun filterGame(list: List?): ArrayList { @@ -95,7 +92,7 @@ object RegionSettingHelper { mFilterGameIdSet = data.filterGameIdSet mDisplayMirrorIfoGameIdSet = data.mirrorGameIdSet mChannelControl = data.channelControl - mGameSpecialDownloadList = data.gameSpecialDownload + mGameSpecialDownloadInfoList = data.gameSpecialDownloadInfoList } /** 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 0daf6f33ff..ceec3a579d 100644 --- a/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java +++ b/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java @@ -49,7 +49,7 @@ public class DetailDownloadUtils { } if (viewHolder.gameEntity.isSpecialDownload()) { - viewHolder.mDownloadPb.setText("前往论坛讨论"); + viewHolder.mDownloadPb.setText("查看下载资源"); viewHolder.mDownloadPb.setDownloadType(DownloadProgressBar.DownloadType.SPECIAL_DOWNLOAD); return; } diff --git a/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt b/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt index af64b340be..b6a9f1c569 100644 --- a/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt +++ b/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt @@ -548,16 +548,29 @@ object DownloadItemUtils { return } if (gameEntity.isSpecialDownload()) { - val bbsId = RegionSettingHelper.getGameSpecialDownloadBbsId(gameEntity.id) - val topId = RegionSettingHelper.getGameSpecialDownloadTopId(gameEntity.id) + val info = RegionSettingHelper.getGameSpecialDownloadInfo(gameEntity.id) ?: return downloadBtn.setOnClickListener { - if (bbsId.isNotBlank()) { - if (topId.isNotBlank()) { - val data = hashMapOf(EntranceConsts.KEY_TOP_ID to topId) - PageSwitchDataHelper.pushCurrentPageData(data) - } - DirectUtils.directForumDetail(context, bbsId, entrance) - } + DialogHelper.showDialog( + context, + "提示", + info.hintText, + "前往论坛", + "", + { + if (info.bbsId.isNotBlank()) { + if (info.topId.isNotBlank()) { + val data = hashMapOf(EntranceConsts.KEY_TOP_ID to info.topId) + PageSwitchDataHelper.pushCurrentPageData(data) + } + DirectUtils.directForumDetail(context, info.bbsId, entrance) + } + }, + {}, + DialogHelper.Config( + centerTitle = true, + centerContent = true + ) + ) } return } 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 342ffa2817..e7e4dd0746 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 @@ -11,6 +11,7 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.FragmentActivity; +import com.gh.common.filter.RegionSetting; import com.gh.common.filter.RegionSettingHelper; import com.gh.common.util.DirectUtils; import com.gh.gamecenter.common.constant.Constants; @@ -357,15 +358,16 @@ public class DetailViewHolder { ); break; case SPECIAL_DOWNLOAD: - String bbsId = RegionSettingHelper.getGameSpecialDownloadBbsId(mGameEntity.getId()); - String topId = RegionSettingHelper.getGameSpecialDownloadTopId(mGameEntity.getId()); - if (!TextUtils.isEmpty(bbsId)) { - if (!TextUtils.isEmpty(topId)) { - HashMap map = new HashMap<>(); - map.put(EntranceConsts.KEY_TOP_ID, topId); - PageSwitchDataHelper.pushCurrentPageData(map); + RegionSetting.GameSpecialDownloadInfo info = RegionSettingHelper.getGameSpecialDownloadInfo(mGameEntity.getId()); + if (info != null) { + if (!TextUtils.isEmpty(info.getBbsId())) { + if (!TextUtils.isEmpty(info.getTopId())) { + HashMap map = new HashMap<>(); + map.put(EntranceConsts.KEY_TOP_ID, info.getTopId()); + PageSwitchDataHelper.pushCurrentPageData(map); + } + DirectUtils.directForumDetail(mViewHolder.context, info.getBbsId(), mEntrance); } - DirectUtils.directForumDetail(mViewHolder.context, bbsId, mEntrance); } break; default: From 7679c750cfe7acc6a1487727d4042414ca493f58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B6=E5=AD=90=E7=BB=B4?= Date: Wed, 7 Sep 2022 18:04:00 +0800 Subject: [PATCH 23/26] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=B8=B8?= =?UTF-8?q?=E6=88=8F=E4=B8=8B=E8=BD=BD=E6=97=B6=E5=A4=9A=E6=AC=A1=E8=B0=83?= =?UTF-8?q?=E7=94=A8=E6=98=BE=E7=A4=BA=E5=AE=89=E8=A3=85=E5=BC=95=E5=AF=BC?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gh/gamecenter/gamedetail/GameDetailFragment.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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 0e3564da3b..a9a4279595 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt @@ -153,7 +153,9 @@ class GameDetailFragment : ToolbarFragment(), IScrollable { || downloadEntity.status == DownloadStatus.pause || downloadEntity.status == DownloadStatus.redirected) { showInstallHint() - SPUtils.setBoolean(Constants.SP_SHOULD_SHOW_GAME_DETAIL_INSTALL_GUIDE, true) + if (!SPUtils.getBoolean(Constants.SP_SHOULD_SHOW_GAME_DETAIL_INSTALL_GUIDE, false)) { + SPUtils.setBoolean(Constants.SP_SHOULD_SHOW_GAME_DETAIL_INSTALL_GUIDE, true) + } } if (mGameEntity?.getApk()?.size == 1) { @@ -1629,8 +1631,9 @@ class GameDetailFragment : ToolbarFragment(), IScrollable { } private fun showInstallHint() { + if (mDownloadBinding.installHintContainer.visibility == View.VISIBLE) return val gameGuidePopupEntity = Config.getGameGuidePopupEntity() - if (SPUtils.getBoolean(Constants.SP_GAME_DETAIL_INSTALL_GUIDE, true) && gameGuidePopupEntity != null) { + if (gameGuidePopupEntity != null && SPUtils.getBoolean(Constants.SP_GAME_DETAIL_INSTALL_GUIDE, true)) { mDownloadBinding.installHintTv.text = gameGuidePopupEntity.content mDownloadBinding.installHintContainer.visibility = View.VISIBLE NewLogUtils.logGuidePopShow(gameGuidePopupEntity.id) From 23006956076b79e87e8567b9207be3ede132958a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B6=E5=AD=90=E7=BB=B4?= Date: Mon, 5 Sep 2022 14:58:53 +0800 Subject: [PATCH 24/26] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=B8=B8?= =?UTF-8?q?=E6=88=8F=E5=8D=95=E5=B9=BF=E5=9C=BA=E9=AA=A8=E6=9E=B6=E5=B1=8F?= =?UTF-8?q?=E4=B8=8D=E8=83=BD=E6=B2=89=E6=B5=B8=E7=8A=B6=E6=80=81=E6=A0=8F?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../square/GameCollectionSquareFragment.kt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionSquareFragment.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionSquareFragment.kt index 88349a4eed..f62588da87 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionSquareFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionSquareFragment.kt @@ -313,7 +313,7 @@ class GameCollectionSquareFragment : LazyListFragment(R.id.skeletonPlaceholder)?.fitsSystemWindows = true + } + + override fun showSkeleton(showSkeleton: Boolean) { + super.showSkeleton(showSkeleton) + if (mSkeletonScreen != null && showSkeleton) { + requireView().findViewById(R.id.skeletonPlaceholder)?.fitsSystemWindows = true + } } private fun refresh() { From db03b5585078fd394db4bbe451b25e1ae26d18ca Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Thu, 8 Sep 2022 17:33:36 +0800 Subject: [PATCH 25/26] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E7=95=85=E7=8E=A9=E5=8A=9F=E8=83=BD=E7=9A=84=E6=B8=B8?= =?UTF-8?q?=E6=88=8F=E8=AF=A6=E6=83=85=E4=BB=8D=E7=84=B6=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E7=95=85=E7=8E=A9=E6=B8=B8=E6=88=8F=E8=B7=B3=E8=BD=AC=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 a9a4279595..36b3cbcc58 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt @@ -77,6 +77,7 @@ import com.gh.gamecenter.simulatorgame.SimulatorGameActivity import com.gh.gamecenter.tag.TagsActivity import com.gh.gamecenter.user.UserViewModel import com.gh.gamecenter.video.detail.CustomManager +import com.gh.vspace.VHelper import com.google.android.material.appbar.AppBarLayout import com.halo.assistant.HaloApp import com.halo.assistant.fragment.WebFragment @@ -1833,7 +1834,7 @@ class GameDetailFragment : ToolbarFragment(), IScrollable { } private fun showVModeIconAtBottomBarIfNeeded(simpleGame: SimpleGame?, gameEntity: GameEntity) { - mDownloadBinding.groupVmode.goneIf(simpleGame == null) + mDownloadBinding.groupVmode.goneIf(simpleGame == null || !VHelper.isVGameOn()) simpleGame?.let { mDownloadBinding.ivVmode.displayGameIcon(simpleGame.getIcon(), simpleGame.iconSubscript) if (gameEntity.isVGame()) { From 1e96f3e11bfddd5c5890e0167e38972688f61964 Mon Sep 17 00:00:00 2001 From: juntao Date: Fri, 9 Sep 2022 11:30:10 +0800 Subject: [PATCH 26/26] =?UTF-8?q?fix:=20=E7=89=88=E6=9C=AC=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E8=87=B3=205.12.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dependencies.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index f7f37b8290..c27f8f847c 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -7,8 +7,8 @@ ext { targetSdkVersion = 28 // application info (每个大版本之间的 versionCode 增加 20) - versionCode = 593 - versionName = "5.12.3" + versionCode = 594 + versionName = "5.12.4" applicationId = "com.gh.gamecenter" // AndroidX