From d51587aa66e44e7ea896dc146b50e56c83e41d4a Mon Sep 17 00:00:00 2001 From: juntao Date: Sun, 26 Sep 2021 10:34:13 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=85=89=E7=8E=AF=E5=8A=A9=E6=89=8BV5?= =?UTF-8?q?.3.0=E3=80=91=E9=80=9A=E7=94=A8=E9=93=BE=E6=8E=A5=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E5=90=88=E9=9B=86-=E6=95=B0=E6=8D=AE=E5=9F=8B?= =?UTF-8?q?=E7=82=B9=20(0924=E6=B5=8B=E8=AF=95=202)=20https://git.ghzs.com?= =?UTF-8?q?/pm/halo-app-issues/-/issues/1474?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/gamecenter/entity/LinkEntity.kt | 6 +++++- .../com/gh/gamecenter/entity/SubjectEntity.kt | 5 ++++- .../gh/gamecenter/game/GameFragmentAdapter.kt | 16 ++++++++++++---- .../java/com/gh/gamecenter/game/GameViewModel.kt | 1 + .../gamecenter/gamedetail/GameDetailViewModel.kt | 1 + .../java/com/gh/gamecenter/home/HomeViewModel.kt | 1 + .../home/LegacyHomeFragmentAdapterAssistant.kt | 4 ++-- .../home/LegacyHomeSubjectTransformer.kt | 1 + 8 files changed, 27 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/entity/LinkEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/LinkEntity.kt index 397cfadfa1..04f10a7ea2 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/LinkEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/LinkEntity.kt @@ -1,6 +1,7 @@ package com.gh.gamecenter.entity import android.os.Parcelable +import com.gh.common.exposure.ExposureEvent import com.google.gson.annotations.SerializedName import kotlinx.android.parcel.Parcelize @@ -33,5 +34,8 @@ open class LinkEntity( @SerializedName("added_content_1") var addedContent1: String = "", @SerializedName("added_content_2") - var addedContent2: String = "" + var addedContent2: String = "", + + // 本地字段 (关联的曝光) + var exposureEvent: ExposureEvent? = null ) : Parcelable \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/entity/SubjectEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/SubjectEntity.kt index 95a9f4ed7e..bd01592ee5 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/SubjectEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/SubjectEntity.kt @@ -51,7 +51,10 @@ data class SubjectEntity( // 专题合集,用于首页专题合集-排行榜样式 var columns: MutableList = mutableListOf(), // 专题背景,用于首页专题合集-排行榜样式 - var background: String = "" + var background: String = "", + + // 本地字段,用来标记在外部页面中的序号,仅用于曝光记录,具体细节可见 https://git.ghzs.com/pm/halo-app-issues/-/issues/1087 + var outerSequence: Int = -1 ) : Parcelable { fun getFilterName(): String { diff --git a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt index f20f3f195a..dc6febd7ee 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt @@ -279,8 +279,15 @@ class GameFragmentAdapter( private fun bindCommonCollection(holder: CommonCollectionViewHolder, position: Int) { val commonLinkCollection = mItemDataList[position].commonLinkCollection!! val blockData = mViewModel.blockData + mItemDataList[position].exposureEventList = arrayListOf() + val clickClosure: (position: Int, linkEntity: LinkEntity) -> Unit = { sequence, linkEntity -> - DirectUtils.directToLinkPage(mContext, linkEntity, "(首页游戏)", "通用链接合集") + DirectUtils.directToLinkPage( + mContext, + linkEntity, + "(首页游戏)", + "通用链接合集", + linkEntity.exposureEvent) NewLogUtils.logCommonCollectionClick( commonLinkCollection.id ?: "", commonLinkCollection.name ?: "", @@ -302,7 +309,8 @@ class GameFragmentAdapter( "板块内容列表", blockData?.link ?: "", blockData?.name ?: "", - clickClosure) { subPosition, linkEntity -> + clickClosure + ) { subPosition, linkEntity -> mItemDataList[position].exposureEventList?.add( ExposureEvent.createEventWithSourceConcat( GameEntity( @@ -310,11 +318,11 @@ class GameFragmentAdapter( name = linkEntity.name ).also { it.sequence = subPosition - it.outerSequence = position + it.outerSequence = commonLinkCollection.outerSequence }, mBasicExposureSource, listOf(ExposureSource("内容合集", commonLinkCollection.name ?: "")) - ) + ).also { linkEntity.exposureEvent = it } ) } } diff --git a/app/src/main/java/com/gh/gamecenter/game/GameViewModel.kt b/app/src/main/java/com/gh/gamecenter/game/GameViewModel.kt index ff9bba367c..78e755cc16 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/game/GameViewModel.kt @@ -681,6 +681,7 @@ class GameViewModel(application: Application, var blockData: SubjectRecommendEnt } private fun appendAdditionalInfoToSubjectGame(subject: SubjectEntity, outerPosition: Int) { + subject.outerSequence = outerPosition subject.data?.let { for ((index, game) in it.withIndex()) { // 开测表不是专题不需要补充专题 id diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailViewModel.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailViewModel.kt index a765a9890c..fc822f0e74 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailViewModel.kt @@ -182,6 +182,7 @@ class GameDetailViewModel(application: Application, continue } + // 处理游戏信息区域 if (item.type == DetailEntity.Type.GAME_INFO.value) { item.info?.manufacturer = data.mirrorData?.manufacturer ?: "" item.info?.privacyPolicyUrl = data.mirrorData?.privacyPolicyUrl ?: "" 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 8fea3d6d83..14cbace191 100644 --- a/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt @@ -399,6 +399,7 @@ class HomeViewModel(application: Application) : AndroidViewModel(application) { mSnapshotItemList.add(LegacyHomeSubjectTransformer.getBlankSpacingItem(HomeItemData()) as HomeItemData) mSnapshotItemList.add(head) commonCollectionItem.commonCollection = subjectEntity + commonCollectionItem.blockPosition = i mSnapshotItemList.add(commonCollectionItem) } else { val unknown = HomeItemData() diff --git a/app/src/main/java/com/gh/gamecenter/home/LegacyHomeFragmentAdapterAssistant.kt b/app/src/main/java/com/gh/gamecenter/home/LegacyHomeFragmentAdapterAssistant.kt index 4248ba0b07..f45536ce56 100644 --- a/app/src/main/java/com/gh/gamecenter/home/LegacyHomeFragmentAdapterAssistant.kt +++ b/app/src/main/java/com/gh/gamecenter/home/LegacyHomeFragmentAdapterAssistant.kt @@ -720,7 +720,7 @@ class LegacyHomeFragmentAdapterAssistant( private fun bindCommonCollection(holder: CommonCollectionViewHolder, item: LegacyHomeItemData) { val commonCollection = item.commonCollection val clickClosure: (position: Int, linkEntity: LinkEntity) -> Unit = { sequence, linkEntity -> - DirectUtils.directToLinkPage(mContext, linkEntity, "(首页游戏)", "通用链接合集") + DirectUtils.directToLinkPage(mContext, linkEntity, "(首页游戏)", "通用链接合集", linkEntity.exposureEvent) NewLogUtils.logCommonCollectionClick( commonCollection?.id ?: "", commonCollection?.name ?: "", @@ -755,7 +755,7 @@ class LegacyHomeFragmentAdapterAssistant( }, mBasicExposureSources, listOf(ExposureSource("内容合集", commonCollection.name ?: "")) - ) + ).also { linkEntity.exposureEvent = it } ) } } diff --git a/app/src/main/java/com/gh/gamecenter/home/LegacyHomeSubjectTransformer.kt b/app/src/main/java/com/gh/gamecenter/home/LegacyHomeSubjectTransformer.kt index 93f22b63d1..9fdb453a6c 100644 --- a/app/src/main/java/com/gh/gamecenter/home/LegacyHomeSubjectTransformer.kt +++ b/app/src/main/java/com/gh/gamecenter/home/LegacyHomeSubjectTransformer.kt @@ -189,6 +189,7 @@ object LegacyHomeSubjectTransformer { } private fun appendAdditionalInfoToSubjectGame(subject: SubjectEntity, outerPosition: Int) { + subject.outerSequence = outerPosition subject.data?.let { for ((index, game) in it.withIndex()) { if (subject.tag != "test") {