修复版块轮播图的曝光统计缺失问题
This commit is contained in:
@ -35,21 +35,18 @@ import androidx.annotation.NonNull;
|
||||
* @author <a href="http://www.trinea.cn" target="_blank">Trinea</a> 2014-2-23
|
||||
*/
|
||||
public class ImagePagerAdapter extends RecyclingPagerAdapter {
|
||||
|
||||
|
||||
private Context mContext;
|
||||
// private List<Integer> imageIdList;
|
||||
private List<LinkEntity> mSlideEntityList;
|
||||
|
||||
|
||||
private int mSize;
|
||||
private boolean mIsInfiniteLoop;
|
||||
|
||||
|
||||
private String mSource;
|
||||
|
||||
private GameItemData mItemData;
|
||||
private ArrayList<ExposureSource> 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<LinkEntity> 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<LinkEntity> 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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user