From e1e7d2d3d6ad3f779d06398cf5f9576a2bfd39c8 Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Mon, 15 Jun 2020 18:18:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=89=88=E5=9D=97=E8=BD=AE?= =?UTF-8?q?=E6=92=AD=E5=9B=BE=E7=9A=84=E6=9B=9D=E5=85=89=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E7=BC=BA=E5=A4=B1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gamecenter/adapter/ImagePagerAdapter.java | 88 ++++++++----------- .../gh/gamecenter/game/GameFragmentAdapter.kt | 3 +- 2 files changed, 39 insertions(+), 52 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ImagePagerAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ImagePagerAdapter.java index 3ab9b5c13b..9acc5411b9 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ImagePagerAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ImagePagerAdapter.java @@ -35,21 +35,18 @@ import androidx.annotation.NonNull; * @author Trinea 2014-2-23 */ public class ImagePagerAdapter extends RecyclingPagerAdapter { - + private Context mContext; - // private List imageIdList; private List mSlideEntityList; - + private int mSize; private boolean mIsInfiniteLoop; - + private String mSource; private GameItemData mItemData; private ArrayList mExposureSourceList; - - // private ImageIndicator indicator; - + public ImagePagerAdapter(Context context, GameItemData itemData, boolean isInfiniteLoop, ExposureSource exposureSource, String source) { mContext = context; mSlideEntityList = itemData.getSlideList(); @@ -62,30 +59,29 @@ public class ImagePagerAdapter extends RecyclingPagerAdapter { mExposureSourceList.add(exposureSource); mExposureSourceList.add(new ExposureSource("轮播图", "")); } - + public int getSize(List sourceList) { return sourceList == null ? 0 : sourceList.size(); } - + @Override public int getCount() { // Infinite loop return mIsInfiniteLoop ? Integer.MAX_VALUE : getSize(mSlideEntityList); } - + @Override public View getView(final int position, View view, ViewGroup container) { if (view == null) { view = new SimpleDraweeView(mContext); } - + int index = getPosition(position); if (index >= mSlideEntityList.size()) return view; - + final LinkEntity slideEntity = mSlideEntityList.get(index); - - ImageUtils.display(mContext.getResources(), (SimpleDraweeView) view, - slideEntity.getImage(), R.drawable.preload); + + ImageUtils.display(mContext.getResources(), (SimpleDraweeView) view, slideEntity.getImage(), R.drawable.preload); ExposureEvent exposureEvent = null; if ("game".equals(slideEntity.getType())) { @@ -95,69 +91,60 @@ public class ImagePagerAdapter extends RecyclingPagerAdapter { exposureEvent = ExposureEvent.createEvent(fakeGameEntity, mExposureSourceList, null, ExposureType.EXPOSURE); } - -// indicator.setPosition(mSlideEntityList.mSize(), getPosition(position)); - + ExposureEvent finalExposureEvent = exposureEvent; view.setOnClickListener(v -> { - int size = mSlideEntityList.size(); - + if (size == 0) return; - + // 轮播图数据统计 if (mContext instanceof MainActivity) { - DataLogUtils.uploadLunbotuLog(mContext, slideEntity.getType(), - slideEntity.getText(), String.valueOf(getPosition(position) % size + 1), "游戏库"); + DataLogUtils.uploadLunbotuLog(mContext, slideEntity.getType(), slideEntity.getText(), String + .valueOf(getPosition(position) % size + 1), "游戏库"); } else { DataLogUtils.uploadLunbotuLog(mContext, slideEntity.getType(), slideEntity.getText(), String .valueOf(getPosition(position) % size + 1), mSource); } - + String indexName = String.valueOf(getPosition(position) % size + 1); - String entrance = StringUtils.buildString("(", mSource, "-轮播图[", slideEntity.getText(), "=", slideEntity.getType(), "=", indexName, "])"); - + String entrance = StringUtils.buildString("(", mSource, "-轮播图[", slideEntity.getText(), "=", slideEntity + .getType(), "=", indexName, "])"); + MtaHelper.onEvent("轮播图", mSource, indexName); - - DirectUtils.INSTANCE.directToLinkPage( - mContext, - slideEntity, - entrance, - "轮播图[" + slideEntity.getText() + "=" + slideEntity.getType() + "=" + indexName + "]", finalExposureEvent); - + + DirectUtils.INSTANCE.directToLinkPage(mContext, slideEntity, entrance, "轮播图[" + slideEntity + .getText() + "=" + slideEntity.getType() + "=" + indexName + "]", finalExposureEvent); }); mItemData.getExposureEventList().add(finalExposureEvent); - + return view; } - + /** - * get really position - * - * @param position - * @return + * get real position */ private int getPosition(int position) { return mIsInfiniteLoop ? position % mSize : position; } - + public int getDataSize() { return mSlideEntityList == null ? 0 : mSlideEntityList.size(); } - + @Override public int getItemPosition(@NonNull Object object) { return POSITION_NONE; } - + /** * @return the mIsInfiniteLoop */ public boolean isInfiniteLoop() { return mIsInfiniteLoop; } - + /** * @param isInfiniteLoop the mIsInfiniteLoop to set */ @@ -165,18 +152,19 @@ public class ImagePagerAdapter extends RecyclingPagerAdapter { this.mIsInfiniteLoop = isInfiniteLoop; return this; } - - public void checkResetData(List list) { - if (mSlideEntityList != list) { - mSlideEntityList = list; - mSize = getSize(list); + + public void checkResetData(GameItemData itemData) { + if (mSlideEntityList != itemData.getSlideList()) { + mSlideEntityList = itemData.getSlideList(); + mSize = getSize(itemData.getSlideList()); } if (mItemData.getExposureEventList() != null) { mItemData.getExposureEventList().clear(); + mItemData = itemData; + mItemData.setExposureEventList(new ArrayList<>()); } - + notifyDataSetChanged(); } - } 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 90d3237d86..530439c23a 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt @@ -440,7 +440,7 @@ class GameFragmentAdapter(context: Context, false } } else if (slideList != null && slideList.isNotEmpty() && pagerAdapter != null) { - (pagerAdapter as ImagePagerAdapter).checkResetData(slideList) + (pagerAdapter as ImagePagerAdapter).checkResetData(itemData) } else if (slideList == null || slideList.isEmpty()) { binding.viewPager.adapter = null } @@ -451,7 +451,6 @@ class GameFragmentAdapter(context: Context, } else { binding.viewPager.stopAutoScroll() } - } private fun bindGameItemView(holder: GameItemViewHolder, position: Int) {