diff --git a/app/src/main/java/com/gh/common/util/LogUtils.java b/app/src/main/java/com/gh/common/util/LogUtils.java index a182cba4c6..399bd09cb0 100644 --- a/app/src/main/java/com/gh/common/util/LogUtils.java +++ b/app/src/main/java/com/gh/common/util/LogUtils.java @@ -568,16 +568,19 @@ public class LogUtils { } public static void uploadSearchGame(String event, String location, String key, String searchType) { - uploadSearchClick(event, location, key, searchType, "", "", false, false); + uploadSearchClick(event, location, key, searchType, "", "", 0, false); } + /** + * @param mirrorDataPosition 镜像的归类,不是镜像是为 -1 ,使用镜像 1 时为 1,使用镜像 2 时为 2 + */ public static void uploadSearchClick(String event, String location, String key, String searchType, String gameId, String gameName, - Boolean isMirrorData, + int mirrorDataPosition, Boolean isAdData) { JSONObject object = new JSONObject(); JSONObject payload = new JSONObject(); @@ -591,7 +594,13 @@ public class LogUtils { payload.put("search_type", searchType); //搜索类型, 有四种取值 默认搜索/历史搜索/自动搜索/主动搜索 payload.put(KEY_GAME_ID, gameId); //event为search_click才取值 payload.put(KEY_GAME_NAME, gameName); //event为search_click才取值 - payload.put("is_mirror_data", isMirrorData); + + // 是否使用镜像 + if (mirrorDataPosition == 1) { + payload.put("is_mirror_data", true); + } else if (mirrorDataPosition == 2) { + payload.put("is_mirror2_data", true); + } payload.put("is_ad_data", isAdData); object.put(KEY_PAY_LOAD, payload); } catch (JSONException e) { diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameIndexAdapter.kt b/app/src/main/java/com/gh/gamecenter/search/SearchGameIndexAdapter.kt index 441f2ee143..ded4d38c98 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameIndexAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameIndexAdapter.kt @@ -373,7 +373,7 @@ class SearchGameIndexAdapter( SearchType.fromString(type).toChinese(), gameEntity.id, gameEntity.name, - gameEntity.shouldUseMirrorInfo(), + gameEntity.getMirrorPosition(), gameEntity.adIconActive ) } @@ -428,7 +428,7 @@ class SearchGameIndexAdapter( SearchType.fromString(type).toChinese(), gameEntity.id, gameEntity.name, - gameEntity.shouldUseMirrorInfo(), + gameEntity.getMirrorPosition(), gameEntity.adIconActive ) } @@ -476,7 +476,7 @@ class SearchGameIndexAdapter( SearchType.fromString(type).toChinese(), gameEntity.id, gameEntity.name, - gameEntity.shouldUseMirrorInfo(), + gameEntity.getMirrorPosition(), gameEntity.adIconActive ) } diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameResultAdapter.kt b/app/src/main/java/com/gh/gamecenter/search/SearchGameResultAdapter.kt index ef6dcf14c5..d92b197eda 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameResultAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameResultAdapter.kt @@ -438,7 +438,7 @@ class SearchGameResultAdapter( SearchType.fromString(type).toChinese(), gameEntity.id, gameEntity.name, - gameEntity.shouldUseMirrorInfo(), + gameEntity.getMirrorPosition(), gameEntity.adIconActive ) @@ -491,7 +491,7 @@ class SearchGameResultAdapter( SearchType.fromString(type).toChinese(), gameEntity.id, gameEntity.name, - gameEntity.shouldUseMirrorInfo(), + gameEntity.getMirrorPosition(), gameEntity.adIconActive ) diff --git a/module_common/src/main/java/com/gh/gamecenter/common/entity/ExposureEntity.kt b/module_common/src/main/java/com/gh/gamecenter/common/entity/ExposureEntity.kt index ee31c44379..fedee4b892 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/entity/ExposureEntity.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/entity/ExposureEntity.kt @@ -20,6 +20,8 @@ class ExposureEntity( val outerSequence: Int? = 0, val platform: String? = null, var isMirrorData: Boolean = false, + @SerializedName("is_mirror2_data") + var isMirrorData2: Boolean = false, @SerializedName("is_web_download") var isWebDownload: Boolean = false, val downloadType: String? = null, diff --git a/module_core_feature/src/main/java/com/gh/gamecenter/feature/entity/GameEntity.kt b/module_core_feature/src/main/java/com/gh/gamecenter/feature/entity/GameEntity.kt index 3ac76c1754..35e1c1e74e 100644 --- a/module_core_feature/src/main/java/com/gh/gamecenter/feature/entity/GameEntity.kt +++ b/module_core_feature/src/main/java/com/gh/gamecenter/feature/entity/GameEntity.kt @@ -402,6 +402,7 @@ data class GameEntity( else -> null } } + @IgnoredOnParcel var h5Link: LinkEntity? get() = if (shouldUseMirrorInfo()) { @@ -730,12 +731,24 @@ data class GameEntity( } else { val provider = ARouter.getInstance().build(RouteConsts.provider.regionSettingHelper) .navigation() as? IRegionSettingHelperProvider - useMirrorInfo = (mirrorStatus == "on" || mirrorStatus2 == "on") && provider?.shouldThisGameDisplayMirrorInfo(id) == true + useMirrorInfo = + (mirrorStatus == "on" || mirrorStatus2 == "on") && provider?.shouldThisGameDisplayMirrorInfo(id) == true } return useMirrorInfo } + /** + * 获取镜像的序号 + * @return -1 代表没有使用镜像, 1 代表使用镜像 1,2 代表使用镜像 2 + */ + fun getMirrorPosition(): Int { + val provider = ARouter.getInstance().build(RouteConsts.provider.regionSettingHelper) + .navigation() as? IRegionSettingHelperProvider + + return provider?.getMirrorPosition(id) ?: -1 + } + /** * 是否是畅玩游戏 (当且仅当畅玩开关打开,且游戏类型为畅玩才会返回 true) */ diff --git a/module_core_feature/src/main/java/com/gh/gamecenter/feature/exposure/ExposureEvent.kt b/module_core_feature/src/main/java/com/gh/gamecenter/feature/exposure/ExposureEvent.kt index 80cb5beef7..6f28bc695e 100644 --- a/module_core_feature/src/main/java/com/gh/gamecenter/feature/exposure/ExposureEvent.kt +++ b/module_core_feature/src/main/java/com/gh/gamecenter/feature/exposure/ExposureEvent.kt @@ -67,7 +67,8 @@ data class ExposureEvent( }, gameVersion = firstTracePayload?.gameVersion ?: gameEntity?.gameVersion, subjectId = firstTracePayload?.subjectId ?: gameEntity?.subjectId ?: gameEntity?.subjectData?.id, - isMirrorData = firstTracePayload?.isMirrorData ?: gameEntity?.shouldUseMirrorInfo() ?: false, + isMirrorData = firstTracePayload?.isMirrorData ?: (gameEntity?.getMirrorPosition() == 1), + isMirrorData2 = firstTracePayload?.isMirrorData2 ?: (gameEntity?.getMirrorPosition() == 2), isWebDownload = (browserInstallHelper?.isUseBrowserToInstallEnabled() ?: false) && browserInstallHelper?.shouldUseBrowserToInstall() ?: false, // 实时的值,不用从 eTrace 里取 sequence = firstTracePayload?.sequence ?: gameEntity?.sequence,