From 619b5a3cc396ff4b83a1ad250e9dfbb0fdf6e2d9 Mon Sep 17 00:00:00 2001 From: kehaoyuan Date: Thu, 2 Jan 2020 17:23:08 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E4=BC=98=E5=8C=96=EF=BC=9A?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E5=85=A5=E5=8F=A3=E3=80=81=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E5=8C=96=E5=8C=BA=E5=9F=9F=E3=80=81=E5=AF=BC=E8=88=AA=E6=A0=8F?= =?UTF-8?q?=E6=8C=89=E9=92=AE(14)https://gitlab.ghzs.com/pm/halo-app-issue?= =?UTF-8?q?s/issues/730?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/common/util/GameUtils.java | 4 +++- app/src/main/java/com/gh/common/util/PackageUtils.java | 10 ++++++---- .../main/java/com/gh/gamecenter/entity/ApkEntity.kt | 6 +++--- .../main/java/com/gh/gamecenter/entity/GameEntity.kt | 2 +- .../java/com/gh/gamecenter/entity/GameUpdateEntity.kt | 8 +++++++- .../main/java/com/gh/gamecenter/home/HomeViewModel.kt | 2 +- .../assistant/fragment/game/GamePluginAdapter.java | 2 +- 7 files changed, 22 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/GameUtils.java b/app/src/main/java/com/gh/common/util/GameUtils.java index cba4363ae5..89539bca2f 100644 --- a/app/src/main/java/com/gh/common/util/GameUtils.java +++ b/app/src/main/java/com/gh/common/util/GameUtils.java @@ -2,10 +2,11 @@ package com.gh.common.util; import android.content.Context; import android.graphics.Color; -import androidx.core.content.ContextCompat; import android.text.TextUtils; import android.widget.TextView; +import androidx.core.content.ContextCompat; + import com.gh.common.constant.Config; import com.gh.download.DownloadManager; import com.gh.gamecenter.R; @@ -148,6 +149,7 @@ public class GameUtils { gameUpdateEntity.setBrief(gameEntity.getBrief()); gameUpdateEntity.setPlugin(apkEntity.getPlugin()); gameUpdateEntity.setDownload(gameEntity.getDownload()); + gameUpdateEntity.setIndexPlugin(gameEntity.getIndexPlugin()); return gameUpdateEntity; } diff --git a/app/src/main/java/com/gh/common/util/PackageUtils.java b/app/src/main/java/com/gh/common/util/PackageUtils.java index 1f7d012cbc..c6bdd8b338 100644 --- a/app/src/main/java/com/gh/common/util/PackageUtils.java +++ b/app/src/main/java/com/gh/common/util/PackageUtils.java @@ -13,6 +13,8 @@ import android.os.Build; import android.os.Bundle; import android.text.TextUtils; +import androidx.core.content.FileProvider; + import com.g00fy2.versioncompare.Version; import com.gh.gamecenter.BuildConfig; import com.gh.gamecenter.entity.ApkEntity; @@ -33,8 +35,6 @@ import java.security.cert.X509Certificate; import java.util.ArrayList; import java.util.List; -import androidx.core.content.FileProvider; - public class PackageUtils { public static final String publicKey = "OpenSSLRSAPublicKey{modulus=a8c4bb5748fec8d5c35db1a7a182d41ba4721a91131a417330af79ef4ddb43f9fa0ff4907b0a613bfe152de0ed8fc1b2e6f94a908aa98a5f7adc1ce814ba7ec919d75d9910bdfd8649b4789da6a90ffb61f0d23ac4f828a78fcd0d6f6120c1c43c1f87f7498a89eb40ca8e32dfc2f9d5c10d612b95192870223674e241e53305abf320d7eed76ded398778576e4db7b17b3bc6a792f13de5e43a6a5fae4276c73e6990ce97f68dff0ec16fc9594f175c8d49cd0d7877340d9de60942ca0efc737e50b6c295dfe0713e4532b4e810e1ea11b702b4a27753e41559cbceb247e7f044ec4e3ab2e8bccd8b9fd71286e63307550bcde86deee95adb8133076269135b,publicExponent=10001}"; @@ -73,6 +73,7 @@ public class PackageUtils { updateEntity.setTag(gameEntity.getTag()); updateEntity.setTagStyle(gameEntity.getTagStyle()); updateEntity.setDownload(gameEntity.getDownload()); + updateEntity.setIndexPlugin(gameEntity.getIndexPlugin()); updateList.add(updateEntity); } } @@ -108,6 +109,7 @@ public class PackageUtils { updateEntity.setBrief(gameEntity.getBrief()); updateEntity.setTag(gameEntity.getTag()); updateEntity.setTagStyle(gameEntity.getTagStyle()); + updateEntity.setIndexPlugin(gameEntity.getIndexPlugin()); updateList.add(updateEntity); } } @@ -239,7 +241,7 @@ public class PackageUtils { public static Intent getInstallIntent(Context context, String path) { return getInstallIntent(context, path, false); } - + public static Intent getInstallIntent(Context context, String path, boolean isInAppUpdate) { Uri uri = Uri.fromFile(new File(path)); Intent installIntent = new Intent(Intent.ACTION_VIEW); @@ -262,7 +264,7 @@ public class PackageUtils { InstallUtils.getInstance(context).addInstall(getPackageNameByPath(context, path)); return installIntent; } - + /* * 根据包名,获取卸载游戏的意图 */ diff --git a/app/src/main/java/com/gh/gamecenter/entity/ApkEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/ApkEntity.kt index 41b81c5c4d..6ef16c0ad6 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/ApkEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/ApkEntity.kt @@ -35,9 +35,9 @@ data class ApkEntity(@SerializedName("package") } fun isShowPlugin(location: PluginLocation): Boolean { - if (plugin.isNullOrEmpty() || "open" == plugin || plugin == location.name) { - return true - } + if (location == PluginLocation.force_close) return false + if (location == PluginLocation.force_open) return true + if (plugin.isNullOrEmpty() || "open" == plugin || plugin == location.name) return true return false } } 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 474e52f9fd..1a722b4633 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt @@ -142,7 +142,7 @@ data class GameEntity( val homeSetting: HomeSetting = HomeSetting(), var linkType: String = "", @SerializedName("index_plugin") - val indexPlugin: String = "open", + var indexPlugin: String = "open", // 游戏评分 val star: Float = 10F, diff --git a/app/src/main/java/com/gh/gamecenter/entity/GameUpdateEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/GameUpdateEntity.kt index f9290b903f..8a1fa11882 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/GameUpdateEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/GameUpdateEntity.kt @@ -22,8 +22,11 @@ data class GameUpdateEntity( var brief: String? = null, var tag: ArrayList? = null, var tagStyle: ArrayList = ArrayList(), - //控制是否显示插件化 默认:open,取值有:open/only_index/only_game/close + // 控制是否显示插件化 默认:open,取值有:open/only_index/only_game/close var plugin: String? = "", + // 只控制首页是否显示插件化 open/close(此开关优先级最高) + @SerializedName("index_plugin") + var indexPlugin: String = "open", var exposureEvent: ExposureEvent? = null, var download: Int = 0/*7天下载量*/) { @@ -44,6 +47,7 @@ data class GameUpdateEntity( gameEntity.brief = brief gameEntity.download = download gameEntity.isPluggable = true + gameEntity.indexPlugin = indexPlugin val apkEntity = ApkEntity() apkEntity.url = url @@ -65,6 +69,8 @@ data class GameUpdateEntity( enum class PluginLocation { only_index, only_game, + force_open, // 无视后台判断强制打开 + force_close, // 无视后台判断强制关闭 } 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 7726e4f6b2..881bd5c747 100644 --- a/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt @@ -91,7 +91,7 @@ class HomeViewModel(application: Application) : AndroidViewModel(application) { val list = ArrayList() for (update in updateList) { - if (update.isPluggable && update.isShowPlugin(PluginLocation.only_index)) { + if (update.isPluggable && update.indexPlugin == "open") { list.add(update.transformGameEntity()) } } diff --git a/app/src/main/java/com/halo/assistant/fragment/game/GamePluginAdapter.java b/app/src/main/java/com/halo/assistant/fragment/game/GamePluginAdapter.java index 1730b6801c..90903386fe 100644 --- a/app/src/main/java/com/halo/assistant/fragment/game/GamePluginAdapter.java +++ b/app/src/main/java/com/halo/assistant/fragment/game/GamePluginAdapter.java @@ -85,7 +85,7 @@ public class GamePluginAdapter extends BaseRecyclerAdapter { StringUtils.buildString("(游戏-专题:", "插件化", "-列表[", String.valueOf(1), "])"), StringUtils.buildString("游戏-专题-", "插件化", ":", gameEntity.getName()), null, () -> MtaHelper.onEvent("首页_新", "点击", "插件化" + (position + 1) + "_" + gameEntity.getName() + "_" + binding.downloadBtn.getText().toString())); - DownloadItemUtils.updateItem(mContext, gameEntity, new GameViewHolder(binding), !gameEntity.isPluggable(), PluginLocation.only_index); + DownloadItemUtils.updateItem(mContext, gameEntity, new GameViewHolder(binding), !gameEntity.isPluggable(), PluginLocation.force_open); } @Override