From 8f002fc804668e9fd0e04cc10596ff1e3230b512 Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Thu, 21 May 2020 18:02:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=96=B0=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E8=BD=AE=E6=92=AD=E5=9B=BE=E6=9B=9D=E5=85=89=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=20https://gitlab.ghzs.com/pm/halo-app-issues/-/issues/877?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gh/gamecenter/amway/AmwayAdapter.kt | 2 -- .../home/slide/HomeSlideListAdapter.kt | 28 ++++++++++--------- .../home/slide/HomeSlideListViewHolder.kt | 18 ++---------- 3 files changed, 17 insertions(+), 31 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/amway/AmwayAdapter.kt b/app/src/main/java/com/gh/gamecenter/amway/AmwayAdapter.kt index d55045b2b5..fda33349aa 100644 --- a/app/src/main/java/com/gh/gamecenter/amway/AmwayAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/amway/AmwayAdapter.kt @@ -26,7 +26,6 @@ import com.gh.gamecenter.gamedetail.rating.RatingFragment import com.gh.gamecenter.gamedetail.rating.RatingReplyActivity import com.gh.gamecenter.gamedetail.rating.edit.RatingEditActivity import com.gh.gamecenter.home.LegacyHomeFragmentAdapterAssistant -import com.gh.gamecenter.home.slide.HomeSlideListAdapter import com.halo.assistant.fragment.game.GamePluginAdapter import com.lightgame.download.DownloadEntity import com.lightgame.view.CheckableImageView @@ -163,7 +162,6 @@ class AmwayAdapter(context: Context, private var mViewModel: AmwayViewModel, pri when (val adapter = recyclerView?.adapter) { is GameVerticalAdapter -> adapter.notifyItemByDownload(download) is GamePluginAdapter -> adapter.notifyItemByDownload(download) - is HomeSlideListAdapter -> adapter.notifyItemByDownload(download) } } else { notifyItemChanged(gameAndPosition.position) diff --git a/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListAdapter.kt b/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListAdapter.kt index ba448a3da9..684b3d7e13 100644 --- a/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListAdapter.kt @@ -9,6 +9,7 @@ import androidx.recyclerview.widget.PagerSnapHelper import androidx.recyclerview.widget.RecyclerView import com.gh.common.databind.BindingAdapters import com.gh.common.exposure.ExposureEvent +import com.gh.common.exposure.ExposureSource import com.gh.common.util.DataLogUtils import com.gh.common.util.DirectUtils import com.gh.common.util.MtaHelper @@ -27,7 +28,8 @@ class HomeSlideListAdapter(context: Context, var itemData: HomeItemData, val layoutManager: LinearLayoutManager, val snapHelper: PagerSnapHelper, - val recyclerView: RecyclerView) : BaseRecyclerAdapter(context) { + val recyclerView: RecyclerView, + val basicExposureSource: ExposureSource) : BaseRecyclerAdapter(context) { private var mSlideList: List = itemData.slides ?: arrayListOf() private val mLooperHandle = LooperHandle(this) @@ -57,19 +59,28 @@ class HomeSlideListAdapter(context: Context, } val homeSlide = mSlideList[actualPosition] + + var exposureEvent: ExposureEvent? = null + if (homeSlide.linkType == "game") { + exposureEvent = ExposureEvent.createEvent( + gameEntity = homeSlide.linkGame, + source = listOf(basicExposureSource, ExposureSource("轮播图", ""))) + itemData.exposureEventList?.add(exposureEvent) + } + holder.bindSlideListItem(homeSlide) holder.binding.root.setOnClickListener { val actualPositionString = (actualPosition + 1).toString() if (homeSlide.linkType == "video") { MtaHelper.onEvent("首页_新", "轮播_点击", actualPositionString + "_视频详情") - } else { + } else if (homeSlide.linkType == "game") { MtaHelper.onEvent("首页_新", "轮播_点击", actualPositionString + "_游戏详情") } DataLogUtils.uploadLunbotuLog(mContext, homeSlide.linkType, homeSlide.linkText, actualPositionString, "新首页") DirectUtils.directToLinkPage(mContext, homeSlide.transformLinkEntity(), "", "新首页-轮播图[${homeSlide.linkText}=${homeSlide.linkType}=$actualPositionString]", - findExposureEvent(homeSlide.linkId), + exposureEvent, unknownCallback = { mContext.startActivity(AboutActivity.getIntent(mContext, true)) }) @@ -80,22 +91,13 @@ class HomeSlideListAdapter(context: Context, val linkGame = homeSlide.linkGame DataLogUtils.uploadLunbotuLog(mContext, homeSlide.linkType, homeSlide.linkText, actualPositionString, "新首页") if (linkGame != null) { - GameDetailActivity.startGameDetailActivity(mContext, linkGame.id, "(新首页-轮播图[${homeSlide.linkText}=${homeSlide.linkType}=$actualPositionString])", findExposureEvent(homeSlide.linkId)) + GameDetailActivity.startGameDetailActivity(mContext, linkGame.id, "(新首页-轮播图[${homeSlide.linkText}=${homeSlide.linkType}=$actualPositionString])", exposureEvent) } } BindingAdapters.setGameTags(holder.binding.includeGame.gameTags, homeSlide.linkGame?.tagStyle, 3) holder.binding.unknownBackground.goneIf(DirectUtils.directLinkTypes.contains(homeSlide.linkType)) } - private fun findExposureEvent(gameId: String): ExposureEvent? { - for (ev in itemData.exposureEventList ?: arrayListOf()) { - if (ev.payload.gameId == gameId) { - return ev - } - } - return null - } - fun getActualPosition(position: Int): Int { var actualPosition = position if (mSlideList.size in 1..position) { diff --git a/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListViewHolder.kt b/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListViewHolder.kt index 962e94478d..49424aecb7 100644 --- a/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListViewHolder.kt @@ -6,7 +6,6 @@ import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.PagerSnapHelper import androidx.recyclerview.widget.RecyclerView import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureSource import com.gh.common.util.MtaHelper import com.gh.common.view.FixLinearLayoutManager @@ -21,7 +20,7 @@ class HomeSlideListViewHolder(val binding: HomeSlideListBinding) : BaseRecyclerV val context = binding.recyclerView.context var adapter = binding.recyclerView.adapter - generateExposure(itemData, basicExposureSource) + itemData.exposureEventList = arrayListOf() if (adapter is HomeSlideListAdapter) { adapter.checkResetData(slideList) @@ -33,7 +32,7 @@ class HomeSlideListViewHolder(val binding: HomeSlideListBinding) : BaseRecyclerV val snapHelper = PagerSnapHelper() val layoutManager = FixLinearLayoutManager(context, RecyclerView.HORIZONTAL, false) - adapter = HomeSlideListAdapter(context, itemData, layoutManager, snapHelper, binding.recyclerView) + adapter = HomeSlideListAdapter(context, itemData, layoutManager, snapHelper, binding.recyclerView, basicExposureSource) (binding.recyclerView.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false binding.recyclerView.layoutManager = layoutManager binding.recyclerView.adapter = adapter @@ -76,19 +75,6 @@ class HomeSlideListViewHolder(val binding: HomeSlideListBinding) : BaseRecyclerV }) } - private fun generateExposure(itemData: HomeItemData, basicExposureSource: ExposureSource) { - val exposureList = arrayListOf() - for (slide in itemData.slides!!) { - if (slide.linkType == "game") { - val event = ExposureEvent.createEvent( - gameEntity = slide.linkGame, - source = listOf(basicExposureSource, ExposureSource("轮播图", ""))) - exposureList.add(event) - } - } - itemData.exposureEventList = exposureList - } - // 缩放控制 fun updateZoomAnimation() { val childCount = binding.recyclerView.childCount