Merge branch 'dev-4.8.0' of git.ghzs.com:halo/assistant-android into dev-4.8.0
This commit is contained in:
@ -306,7 +306,7 @@ public class Config {
|
||||
@Override
|
||||
public void onSuccess(NewSettingsEntity data) {
|
||||
mNewSettingsEntity = data;
|
||||
SPUtils.setString(Constants.SP_NEW_SETTINGS, data.toString());
|
||||
SPUtils.setString(Constants.SP_NEW_SETTINGS, GsonUtils.toJson(data));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -1271,7 +1271,7 @@ object DirectUtils {
|
||||
} else {
|
||||
Constants.INVITE_FRIENDS_ADDRESS
|
||||
}
|
||||
directToFullScreenWebPage(context, url, false)
|
||||
directToFullScreenWebPage(context, url, true)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -75,7 +75,7 @@ object BrowserInstallHelper {
|
||||
if (SPUtils.getBoolean(Constants.SP_USE_BROWSER_TO_INSTALL)) {
|
||||
false
|
||||
} else {
|
||||
!SPUtils.getBoolean(Constants.SP_SHOULD_SHOW_USE_BROWSER_TO_INSTALL_HINT)
|
||||
SPUtils.getBoolean(Constants.SP_SHOULD_SHOW_USE_BROWSER_TO_INSTALL_HINT, true)
|
||||
}
|
||||
} else {
|
||||
false
|
||||
|
||||
@ -18,11 +18,13 @@ import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.gh.base.OnListClickListener
|
||||
import com.gh.common.constant.Constants
|
||||
import com.gh.common.exposure.ExposureEvent
|
||||
import com.gh.common.exposure.ExposureManager
|
||||
import com.gh.common.exposure.ExposureSource
|
||||
import com.gh.common.util.*
|
||||
import com.gh.common.view.ExpandTextView
|
||||
import com.gh.common.view.GridSpacingItemColorDecoration
|
||||
import com.gh.common.view.divider.HorizontalDividerItemDecoration
|
||||
import com.gh.common.view.divider.VerticalDividerItemDecoration
|
||||
import com.gh.gamecenter.GameNewsActivity
|
||||
import com.gh.gamecenter.R
|
||||
import com.gh.gamecenter.SuggestionActivity
|
||||
@ -39,7 +41,6 @@ import com.gh.gamecenter.gamedetail.entity.DetailEntity
|
||||
import com.gh.gamecenter.gamedetail.entity.NewGameDetailEntity
|
||||
import com.gh.gamecenter.gamedetail.fuli.kaifu.ServersCalendarActivity
|
||||
import com.gh.gamecenter.gamedetail.history.HistoryApkListActivity
|
||||
import com.gh.gamecenter.home.amway.LeftPagerSnapHelper
|
||||
import com.gh.gamecenter.suggest.SuggestType
|
||||
import com.lightgame.adapter.BaseRecyclerAdapter
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
@ -259,10 +260,23 @@ class DescAdapter(context: Context,
|
||||
if (subjectEntity != null) {
|
||||
var subjectAdapter = viewHolder.binding.galleryRv.adapter
|
||||
if (subjectAdapter == null) {
|
||||
|
||||
val exposureEventList = arrayListOf<ExposureEvent>()
|
||||
for ((index, game) in subjectEntity.data!!.take(4).withIndex()) {
|
||||
game.sequence = index
|
||||
val event = ExposureEvent.createEvent(gameEntity = game, source = listOf(
|
||||
ExposureSource("游戏详情", gameName ?: ""),
|
||||
ExposureSource("大家都在玩")
|
||||
))
|
||||
exposureEventList.add(event)
|
||||
ExposureManager.log(event)
|
||||
}
|
||||
|
||||
viewHolder.binding.galleryRv.layoutManager = GridLayoutManager(mContext, 4)
|
||||
subjectAdapter = GameHorizontalAdapter(mContext, subjectEntity, true)
|
||||
subjectAdapter.gameName = gameName ?: ""
|
||||
subjectAdapter.entrance = mEntrance
|
||||
subjectAdapter.exposureEventList = exposureEventList
|
||||
(viewHolder.binding.galleryRv.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false
|
||||
|
||||
val dividerWidth = (DisplayUtils.getScreenWidth() - 20F.dip2px() * 2 - 64F.dip2px() * 4) / 3
|
||||
@ -327,6 +341,20 @@ class DescAdapter(context: Context,
|
||||
.size(DisplayUtils.dip2px(16f))
|
||||
.color(ContextCompat.getColor(mContext, R.color.white)).build()
|
||||
addItemDecoration(itemDecoration)
|
||||
|
||||
// 曝光相关
|
||||
relatedVersionAdapter.exposureEventList.clear()
|
||||
|
||||
for ((index, simpleGame) in relatedVersion.withIndex()) {
|
||||
val game = simpleGame.game?.toGameEntity()
|
||||
game?.sequence = index
|
||||
val event = ExposureEvent.createEvent(gameEntity = game, source = listOf(
|
||||
ExposureSource("游戏详情", gameName ?: ""),
|
||||
ExposureSource("相关游戏")
|
||||
))
|
||||
relatedVersionAdapter.exposureEventList.add(event)
|
||||
ExposureManager.log(event)
|
||||
}
|
||||
}
|
||||
}
|
||||
viewHolder.binding.titleTv.text = "相关游戏"
|
||||
|
||||
@ -6,7 +6,11 @@ import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.databinding.DataBindingUtil
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.gh.common.util.*
|
||||
import com.gh.common.exposure.ExposureEvent
|
||||
import com.gh.common.util.GameViewUtils
|
||||
import com.gh.common.util.MtaHelper
|
||||
import com.gh.common.util.StringUtils
|
||||
import com.gh.common.util.safelyGetInRelease
|
||||
import com.gh.gamecenter.GameDetailActivity
|
||||
import com.gh.gamecenter.R
|
||||
import com.gh.gamecenter.databinding.ItemGameDetailRelatedVersionBinding
|
||||
@ -15,6 +19,9 @@ import com.gh.gamecenter.entity.GameDetailEntity
|
||||
class GameRelatedVersionAdapter(val context: Context, val gameName: String, val datas: ArrayList<GameDetailEntity.RelatedVersion>, val mEntrance: String) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
|
||||
var isExpand = false
|
||||
private val mShowItemCount: Int = 3
|
||||
|
||||
var exposureEventList: ArrayList<ExposureEvent> = arrayListOf()
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
|
||||
|
||||
return if (viewType == RELATED_VERSION_ITEM) {
|
||||
@ -48,7 +55,7 @@ class GameRelatedVersionAdapter(val context: Context, val gameName: String, val
|
||||
holder.itemView.setOnClickListener {
|
||||
MtaHelper.onEvent("游戏详情_新", "相关游戏版本", "${gameName}+${relatedVersion.gameName}")
|
||||
GameDetailActivity.startGameDetailActivity(context, relatedVersion.gameId,
|
||||
StringUtils.buildString(mEntrance, "+(", "游戏详情", "[", relatedVersion.gameName, "]:相关游戏[", (position + 1).toString(), "])"))
|
||||
StringUtils.buildString(mEntrance, "+(", "游戏详情", "[", relatedVersion.gameName, "]:相关游戏[", (position + 1).toString(), "])"), exposureEventList.safelyGetInRelease(position))
|
||||
}
|
||||
}
|
||||
is MoreViewHolder -> {
|
||||
|
||||
@ -1,12 +1,19 @@
|
||||
package com.gh.gamecenter.mygame
|
||||
|
||||
import android.content.Context
|
||||
import android.util.SparseArray
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.gh.common.constant.ItemViewType
|
||||
import com.gh.common.util.*
|
||||
import com.gh.common.exposure.ExposureEvent
|
||||
import com.gh.common.exposure.ExposureSource
|
||||
import com.gh.common.exposure.IExposable
|
||||
import com.gh.common.util.DialogUtils
|
||||
import com.gh.common.util.MtaHelper
|
||||
import com.gh.common.util.addSelectableItemBackground
|
||||
import com.gh.common.util.removeSelectableItemBackground
|
||||
import com.gh.common.view.DrawableView
|
||||
import com.gh.gamecenter.GameDetailActivity
|
||||
import com.gh.gamecenter.R
|
||||
@ -17,9 +24,11 @@ import com.gh.gamecenter.databinding.ItemFollowedGameBinding
|
||||
import com.gh.gamecenter.entity.GameEntity
|
||||
import com.gh.gamecenter.gamedetail.GameDetailFragment
|
||||
|
||||
class MyFollowedGameAdapter(context: Context, var mViewModel: MyFollowedGameViewModel) : ListAdapter<GameEntity>(context) {
|
||||
class MyFollowedGameAdapter(context: Context, var mViewModel: MyFollowedGameViewModel)
|
||||
: ListAdapter<GameEntity>(context), IExposable {
|
||||
|
||||
private val mEntrance = "(我的关注)"
|
||||
private val mExposureEventSparseArray: SparseArray<ExposureEvent> = SparseArray()
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
|
||||
return when (viewType) {
|
||||
@ -61,11 +70,16 @@ class MyFollowedGameAdapter(context: Context, var mViewModel: MyFollowedGameView
|
||||
executePendingBindings()
|
||||
}
|
||||
|
||||
val exposureEvent = ExposureEvent.createEvent(
|
||||
gameEntity,
|
||||
listOf(ExposureSource("我的游戏", "关注")))
|
||||
mExposureEventSparseArray.append(position, exposureEvent)
|
||||
|
||||
itemView.setOnClickListener {
|
||||
MtaHelper.onEvent("我的光环", path, "点击其他位置")
|
||||
MtaHelper.onEvent("我的光环", newPath, "点击其他位置")
|
||||
MtaHelper.onEvent("我的光环_新", path, "点击其他位置")
|
||||
GameDetailActivity.startGameDetailActivity(mContext, gameEntity.id, mEntrance)
|
||||
GameDetailActivity.startGameDetailActivity(mContext, gameEntity.id, mEntrance, exposureEvent)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -86,6 +100,10 @@ class MyFollowedGameAdapter(context: Context, var mViewModel: MyFollowedGameView
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun getEventByPosition(pos: Int): ExposureEvent = mExposureEventSparseArray.get(pos)
|
||||
|
||||
override fun getEventListByPosition(pos: Int) = null
|
||||
}
|
||||
|
||||
class MyFollowedGameViewHolder(var binding: ItemFollowedGameBinding) : RecyclerView.ViewHolder(binding.root) {
|
||||
|
||||
@ -10,6 +10,7 @@ import androidx.recyclerview.widget.RecyclerView
|
||||
import butterknife.BindView
|
||||
import butterknife.OnClick
|
||||
import com.gh.base.OnRequestCallBackListener
|
||||
import com.gh.common.exposure.ExposureListener
|
||||
import com.gh.common.util.goneIf
|
||||
import com.gh.common.util.ifLogin
|
||||
import com.gh.common.util.viewModelProvider
|
||||
@ -45,6 +46,7 @@ class MyFollowedGameFragment : ListFragment<GameEntity, MyFollowedGameViewModel>
|
||||
private lateinit var mViewModel: MyFollowedGameViewModel
|
||||
|
||||
private var mRecommendAdapter: MyConcernRecommendAdapter? = null
|
||||
private var mExposureListener: ExposureListener? = null
|
||||
|
||||
@BindView(R.id.reuse_tv_none_data)
|
||||
lateinit var noDataTv: TextView
|
||||
@ -69,6 +71,7 @@ class MyFollowedGameFragment : ListFragment<GameEntity, MyFollowedGameViewModel>
|
||||
|
||||
// 不需要分页
|
||||
mListRv.clearOnScrollListeners()
|
||||
mListRv.addOnScrollListener(mExposureListener!!)
|
||||
|
||||
recommendRecyclerView.setHasFixedSize(true)
|
||||
recommendRecyclerView.layoutManager = GridLayoutManager(context, 4)
|
||||
@ -134,8 +137,10 @@ class MyFollowedGameFragment : ListFragment<GameEntity, MyFollowedGameViewModel>
|
||||
}
|
||||
|
||||
override fun provideListAdapter(): ListAdapter<GameEntity> {
|
||||
return mAdapter
|
||||
?: MyFollowedGameAdapter(requireContext(), mViewModel).apply { mAdapter = this }
|
||||
return mAdapter ?: MyFollowedGameAdapter(requireContext(), mViewModel).apply {
|
||||
mAdapter = this
|
||||
mExposureListener = ExposureListener(this@MyFollowedGameFragment, this)
|
||||
}
|
||||
}
|
||||
|
||||
@OnClick(R.id.reuse_tv_none_data, R.id.concern_rl_title, R.id.concernManageRl)
|
||||
|
||||
@ -5,6 +5,7 @@ import android.os.Build
|
||||
import android.os.Bundle
|
||||
import com.gh.base.BaseActivity_TabLayout
|
||||
import com.gh.common.constant.Constants
|
||||
import com.gh.common.exposure.ExposureListener
|
||||
import com.gh.common.runOnIoThread
|
||||
import com.gh.common.util.SPUtils
|
||||
import com.gh.common.util.UsageStatsHelper
|
||||
@ -35,7 +36,10 @@ class MyPlayedGameFragment : PlayedGameFragment() {
|
||||
|
||||
override fun provideListAdapter(): ListAdapter<GameEntity> {
|
||||
return mAdapter
|
||||
?: PlayedGameAdapter(requireContext(), mViewModel, true).apply { mAdapter = this }
|
||||
?: PlayedGameAdapter(requireContext(), mViewModel, true).apply {
|
||||
mAdapter = this
|
||||
mExposureListener = ExposureListener(this@MyPlayedGameFragment, this)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onChanged(ts: MutableList<GameEntity>?) {
|
||||
|
||||
@ -1,12 +1,14 @@
|
||||
package com.gh.gamecenter.mygame
|
||||
|
||||
import android.content.Context
|
||||
import android.view.Gravity
|
||||
import android.view.View
|
||||
import android.util.SparseArray
|
||||
import android.view.ViewGroup
|
||||
import android.widget.LinearLayout
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.gh.common.constant.ItemViewType
|
||||
import com.gh.common.exposure.ExposureEvent
|
||||
import com.gh.common.exposure.ExposureSource
|
||||
import com.gh.common.exposure.IExposable
|
||||
import com.gh.common.util.*
|
||||
import com.gh.gamecenter.GameDetailActivity
|
||||
import com.gh.gamecenter.R
|
||||
@ -18,11 +20,13 @@ import com.gh.gamecenter.databinding.ItemFollowedGameBinding
|
||||
import com.gh.gamecenter.entity.GameEntity
|
||||
import com.gh.gamecenter.eventbus.EBDownloadStatus
|
||||
import com.gh.gamecenter.game.GameAndPosition
|
||||
import java.util.ArrayList
|
||||
import java.util.*
|
||||
|
||||
class MyReservationAdapter(context: Context, var mViewModel: MyReservationViewModel) : ListAdapter<GameEntity>(context) {
|
||||
class MyReservationAdapter(context: Context, var mViewModel: MyReservationViewModel)
|
||||
: ListAdapter<GameEntity>(context), IExposable {
|
||||
|
||||
private val mEntrance = "(我的预约)"
|
||||
private val mExposureEventSparseArray: SparseArray<ExposureEvent> = SparseArray()
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
|
||||
return when (viewType) {
|
||||
@ -59,13 +63,18 @@ class MyReservationAdapter(context: Context, var mViewModel: MyReservationViewMo
|
||||
holder.initShortcut(gameEntity, mEntrance, path, newPath)
|
||||
holder.binding.executePendingBindings()
|
||||
|
||||
val exposureEvent = ExposureEvent.createEvent(
|
||||
gameEntity,
|
||||
listOf(ExposureSource("我的游戏", "预约")))
|
||||
mExposureEventSparseArray.append(position, exposureEvent)
|
||||
|
||||
DownloadItemUtils.updateItemWithReserveStatus(GameViewHolder(holder.binding.gameItemIncluded), gameEntity)
|
||||
|
||||
holder.itemView.setOnClickListener {
|
||||
MtaHelper.onEvent("我的光环", path, "点击其他位置")
|
||||
MtaHelper.onEvent("我的光环", newPath, "点击其他位置")
|
||||
MtaHelper.onEvent("我的光环_新", path, "点击其他位置")
|
||||
GameDetailActivity.startGameDetailActivity(mContext, gameEntity.id, mEntrance)
|
||||
GameDetailActivity.startGameDetailActivity(mContext, gameEntity.id, mEntrance, exposureEvent)
|
||||
}
|
||||
|
||||
if ("appointment" == gameEntity.reserveStatus) {
|
||||
@ -145,4 +154,8 @@ class MyReservationAdapter(context: Context, var mViewModel: MyReservationViewMo
|
||||
})
|
||||
}
|
||||
|
||||
override fun getEventByPosition(pos: Int): ExposureEvent = mExposureEventSparseArray.get(pos)
|
||||
|
||||
override fun getEventListByPosition(pos: Int) = null
|
||||
|
||||
}
|
||||
@ -1,11 +1,13 @@
|
||||
package com.gh.gamecenter.mygame
|
||||
|
||||
import android.os.Bundle
|
||||
import android.text.TextUtils
|
||||
import android.view.View
|
||||
import android.widget.TextView
|
||||
import androidx.core.content.ContextCompat
|
||||
import butterknife.BindView
|
||||
import butterknife.OnClick
|
||||
import com.gh.common.exposure.ExposureListener
|
||||
import com.gh.common.util.ifLogin
|
||||
import com.gh.common.util.viewModelProvider
|
||||
import com.gh.download.DownloadManager
|
||||
@ -16,26 +18,25 @@ import com.gh.gamecenter.entity.GameEntity
|
||||
import com.gh.gamecenter.eventbus.EBDownloadStatus
|
||||
import com.gh.gamecenter.eventbus.EBPackage
|
||||
import com.gh.gamecenter.eventbus.EBReuse
|
||||
import com.gh.gamecenter.game.GameAndPosition
|
||||
import com.gh.gamecenter.manager.UserManager
|
||||
import com.gh.gamecenter.personal.PersonalFragment
|
||||
import com.lightgame.download.DataWatcher
|
||||
import com.lightgame.download.DownloadEntity
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
import java.util.ArrayList
|
||||
|
||||
class MyReservationFragment : ListFragment<GameEntity, MyReservationViewModel>() {
|
||||
|
||||
private var mAdapter: MyReservationAdapter? = null
|
||||
private lateinit var mViewModel: MyReservationViewModel
|
||||
private var mExposureListener: ExposureListener? = null
|
||||
|
||||
@BindView(R.id.reuse_tv_none_data)
|
||||
lateinit var noDataTv: TextView
|
||||
|
||||
private val dataWatcher = object : DataWatcher() {
|
||||
override fun onDataChanged(downloadEntity: DownloadEntity) {
|
||||
val data = mAdapter?.getGameEntityByPackage(downloadEntity.packageName)?: arrayListOf()
|
||||
val data = mAdapter?.getGameEntityByPackage(downloadEntity.packageName) ?: arrayListOf()
|
||||
for (gameAndPosition in data) {
|
||||
if (gameAndPosition.entity != null && gameAndPosition.entity.name == downloadEntity.name) {
|
||||
val entryMap = gameAndPosition.entity.getEntryMap()
|
||||
@ -46,6 +47,12 @@ class MyReservationFragment : ListFragment<GameEntity, MyReservationViewModel>()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
mListRv.addOnScrollListener(mExposureListener!!)
|
||||
}
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
if (TextUtils.isEmpty(UserManager.getInstance().userId)) {
|
||||
@ -68,8 +75,10 @@ class MyReservationFragment : ListFragment<GameEntity, MyReservationViewModel>()
|
||||
}
|
||||
|
||||
override fun provideListAdapter(): ListAdapter<GameEntity> {
|
||||
return mAdapter
|
||||
?: MyReservationAdapter(requireContext(), mViewModel).apply { mAdapter = this }
|
||||
return mAdapter ?: MyReservationAdapter(requireContext(), mViewModel).apply {
|
||||
mAdapter = this
|
||||
mExposureListener = ExposureListener(this@MyReservationFragment, this)
|
||||
}
|
||||
}
|
||||
|
||||
override fun provideListViewModel(): MyReservationViewModel {
|
||||
@ -107,7 +116,7 @@ class MyReservationFragment : ListFragment<GameEntity, MyReservationViewModel>()
|
||||
//下载被删除事件
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onEventMainThread(status: EBDownloadStatus) {
|
||||
if ( "delete" == status.status) {
|
||||
if ("delete" == status.status) {
|
||||
mAdapter?.notifyItemAndRemoveDownload(status)
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,6 +7,7 @@ import android.text.Spanned
|
||||
import android.text.TextPaint
|
||||
import android.text.method.LinkMovementMethod
|
||||
import android.text.style.ClickableSpan
|
||||
import android.util.SparseArray
|
||||
import android.util.TypedValue
|
||||
import android.view.Gravity
|
||||
import android.view.LayoutInflater
|
||||
@ -17,6 +18,9 @@ import android.widget.TextView
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.gh.common.constant.ItemViewType
|
||||
import com.gh.common.exposure.ExposureEvent
|
||||
import com.gh.common.exposure.ExposureSource
|
||||
import com.gh.common.exposure.IExposable
|
||||
import com.gh.common.util.*
|
||||
import com.gh.common.view.BugFixedPopupWindow
|
||||
import com.gh.common.view.DrawableView
|
||||
@ -35,10 +39,11 @@ import com.lightgame.download.DownloadEntity
|
||||
open class PlayedGameAdapter(context: Context,
|
||||
private val mViewModel: PlayedGameViewModel,
|
||||
private val mIsMyPlayedGame: Boolean)
|
||||
: ListAdapter<GameEntity>(context) {
|
||||
: ListAdapter<GameEntity>(context), IExposable {
|
||||
|
||||
private val mPositionAndPackageMap = HashMap<String, Int>()
|
||||
private val mEntrance = if (mIsMyPlayedGame) "我的玩过" else "玩过的游戏"
|
||||
private val mExposureEventSparseArray: SparseArray<ExposureEvent> = SparseArray()
|
||||
|
||||
override fun setListData(updateData: MutableList<GameEntity>?) {
|
||||
if (!updateData.isNullOrEmpty()) {
|
||||
@ -110,13 +115,20 @@ open class PlayedGameAdapter(context: Context,
|
||||
|
||||
holder.binding.gameItemIncluded.labelList.addView(runTimeView)
|
||||
|
||||
val exposureSourceKey = if (mIsMyPlayedGame) "我的游戏" else "玩过的游戏"
|
||||
val exposureSourceValue = if (mIsMyPlayedGame) "玩过" else ""
|
||||
val exposureEvent = ExposureEvent.createEvent(
|
||||
gameEntity,
|
||||
listOf(ExposureSource(exposureSourceKey, exposureSourceValue)))
|
||||
mExposureEventSparseArray.append(position, exposureEvent)
|
||||
|
||||
DownloadItemUtils.setOnClickListener(mContext,
|
||||
holder.binding.gameItemIncluded.downloadBtn,
|
||||
gameEntity,
|
||||
position,
|
||||
this,
|
||||
"(${mEntrance})",
|
||||
StringUtils.buildString(mEntrance, ":", gameEntity.name))
|
||||
StringUtils.buildString(mEntrance, ":", gameEntity.name), exposureEvent)
|
||||
DownloadItemUtils.updateItem(mContext, gameEntity, GameViewHolder(holder.binding.gameItemIncluded), true, true)
|
||||
|
||||
holder.binding.optionsContainer.goneIf(!mIsMyPlayedGame)
|
||||
@ -125,7 +137,7 @@ open class PlayedGameAdapter(context: Context,
|
||||
}
|
||||
|
||||
holder.itemView.setOnClickListener {
|
||||
GameDetailActivity.startGameDetailActivity(mContext, gameEntity.id, "(${mEntrance})")
|
||||
GameDetailActivity.startGameDetailActivity(mContext, gameEntity.id, "(${mEntrance})", exposureEvent)
|
||||
}
|
||||
|
||||
val downloadBtnText = holder.binding.gameItemIncluded.downloadBtn.text
|
||||
@ -283,4 +295,8 @@ open class PlayedGameAdapter(context: Context,
|
||||
mPositionAndPackageMap.clear()
|
||||
}
|
||||
|
||||
override fun getEventByPosition(pos: Int): ExposureEvent = mExposureEventSparseArray.get(pos)
|
||||
|
||||
override fun getEventListByPosition(pos: Int) = null
|
||||
|
||||
}
|
||||
@ -1,7 +1,10 @@
|
||||
package com.gh.gamecenter.mygame
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.widget.TextView
|
||||
import butterknife.BindView
|
||||
import com.gh.common.exposure.ExposureListener
|
||||
import com.gh.common.util.EntranceUtils
|
||||
import com.gh.common.util.viewModelProvider
|
||||
import com.gh.download.DownloadManager
|
||||
@ -25,6 +28,8 @@ open class PlayedGameFragment : ListFragment<GameEntity, PlayedGameViewModel>()
|
||||
protected var mAdapter: PlayedGameAdapter? = null
|
||||
protected lateinit var mViewModel: PlayedGameViewModel
|
||||
|
||||
protected var mExposureListener: ExposureListener? = null
|
||||
|
||||
@BindView(R.id.reuse_tv_none_data)
|
||||
lateinit var noDataTv: TextView
|
||||
|
||||
@ -34,6 +39,12 @@ open class PlayedGameFragment : ListFragment<GameEntity, PlayedGameViewModel>()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
mListRv.addOnScrollListener(mExposureListener!!)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
if (isEverPause && mAdapter != null) mAdapter?.notifyDataSetChanged()
|
||||
super.onResume()
|
||||
@ -46,14 +57,17 @@ open class PlayedGameFragment : ListFragment<GameEntity, PlayedGameViewModel>()
|
||||
}
|
||||
|
||||
override fun provideListViewModel(): PlayedGameViewModel {
|
||||
val userId = arguments?.getString(EntranceUtils.KEY_USER_ID) ?: UserManager.getInstance().userId
|
||||
val userId = arguments?.getString(EntranceUtils.KEY_USER_ID)
|
||||
?: UserManager.getInstance().userId
|
||||
mViewModel = viewModelProvider(PlayedGameViewModel.Factory(HaloApp.getInstance().application, userId))
|
||||
return mViewModel
|
||||
}
|
||||
|
||||
override fun provideListAdapter(): ListAdapter<GameEntity> {
|
||||
return mAdapter
|
||||
?: PlayedGameAdapter(requireContext(), mViewModel, false).apply { mAdapter = this }
|
||||
return mAdapter ?: PlayedGameAdapter(requireContext(), mViewModel, false).apply {
|
||||
mAdapter = this
|
||||
mExposureListener = ExposureListener(this@PlayedGameFragment, this)
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
|
||||
Reference in New Issue
Block a user