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 628116ff39..f5af93b590 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailViewModel.kt @@ -18,6 +18,7 @@ import com.gh.gamecenter.entity.LibaoEntity import com.gh.gamecenter.entity.LibaoStatusEntity import com.gh.gamecenter.entity.UnifiedUserTrendEntity import com.gh.gamecenter.gamedetail.entity.BigEvent +import com.gh.gamecenter.gamedetail.entity.CustomColumn import com.gh.gamecenter.gamedetail.entity.DetailEntity import com.gh.gamecenter.gamedetail.entity.NewGameDetailEntity import com.gh.gamecenter.manager.UserManager @@ -147,9 +148,19 @@ class GameDetailViewModel(application: Application, && (game?.useMirrorInfo == true || RegionSettingHelper.shouldThisGameDisplayMirrorInfo(game?.id ?: ""))) { val finalItemList: ArrayList = arrayListOf() + val mirrorCustomColumnList = data.mirrorData?.customColumnList ?: arrayListOf() for (item in data.detailEntity) { - // 去掉所有自定义栏目 + // 去掉所有自定义栏目并把镜像相应权重的自定义栏目放到相应的位置 if (item.type == DetailEntity.Type.CUSTOM_COLUMN.value) { + val usedMirrorCustomColumnList = arrayListOf() + for (mirrorCustomColumn in mirrorCustomColumnList) { + if ((mirrorCustomColumn.order!! > 0 && item.customColumn?.order!! > 0) + || (mirrorCustomColumn.order == item.customColumn?.order)) { + finalItemList.add(DetailEntity(type = DetailEntity.Type.CUSTOM_COLUMN.value, customColumn = mirrorCustomColumn)) + usedMirrorCustomColumnList.add(mirrorCustomColumn) + } + } + mirrorCustomColumnList.removeAll(usedMirrorCustomColumnList) continue } @@ -166,11 +177,6 @@ class GameDetailViewModel(application: Application, if (item.type == DetailEntity.Type.GAME_INFO.value) { finalItemList.add(item) - // 添加隐藏的自定义栏目 (将其放置于详细信息后) - data.mirrorData?.customColumn?.let { - data.mirrorData?.type = DetailEntity.Type.CUSTOM_COLUMN.value - finalItemList.add(data.mirrorData!!) - } continue } @@ -182,6 +188,21 @@ class GameDetailViewModel(application: Application, finalItemList.add(item) } + // 有多余的镜像自定义栏目没找到位置放,统一按权重为0放到详细信息后,连权重为0也没有就放到列表最后! + if (!mirrorCustomColumnList.isNullOrEmpty()) { + var gameInfoPosition = finalItemList.size - 1 + for ((index, item) in finalItemList.withIndex()) { + if (item.type == DetailEntity.Type.GAME_INFO.value) { + gameInfoPosition = index + 1 + break + } + } + + for ((index, remainingMirrorCustomColumn) in mirrorCustomColumnList.withIndex()) { + finalItemList.add(gameInfoPosition + index, DetailEntity(type = DetailEntity.Type.CUSTOM_COLUMN.value, customColumn = remainingMirrorCustomColumn)) + } + } + // 不显示评论 tab data.showComment = false @@ -230,7 +251,6 @@ class GameDetailViewModel(application: Application, } } - val requestMap = hashMapOf>() requestMap["game"] = arrayListOf(game?.id ?: "game id is not supposed to be empty") requestMap["toolkit"] = toolkitIdList diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/entity/DetailEntity.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/entity/DetailEntity.kt index 88c854dd4b..b9fb16433f 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/entity/DetailEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/entity/DetailEntity.kt @@ -35,6 +35,9 @@ data class DetailEntity( var tagStyle: ArrayList = ArrayList(), // 仅用于镜像 var apk: ArrayList? = ArrayList(), + // 仅用于镜像 + @SerializedName("custom_columns") + var customColumnList: ArrayList? = null, // 是否与前一个 item 连成整体,是否与后一个 item 连成整体 var shouldBoundTogetherWithPreviousItem: Boolean = false,