diff --git a/app/src/main/java/com/gh/common/util/DirectUtils.kt b/app/src/main/java/com/gh/common/util/DirectUtils.kt index 0a488f4029..5151857b6b 100644 --- a/app/src/main/java/com/gh/common/util/DirectUtils.kt +++ b/app/src/main/java/com/gh/common/util/DirectUtils.kt @@ -206,11 +206,12 @@ object DirectUtils { "libao" -> directToGiftDetail(context, linkEntity.link ?: "", entrance) - "feedback" -> directToFeedback(context, "", entrance) + "feedback" -> directToFeedback(context, linkEntity.name, linkEntity.text, entrance) "qa" -> directToQa(context, linkEntity.text ?: "", linkEntity.link ?: "") - "qa_collection" -> directToQaCollection(context, linkEntity.text ?: "", linkEntity.link ?: "") + "qa_collection" -> directToQaCollection(context, linkEntity.text ?: "", linkEntity.link + ?: "") "anliwall" -> directToAmway(context, fixedTopAmwayCommentId = null, entrance = entrance, path = path) @@ -342,12 +343,21 @@ object DirectUtils { // 反馈 @JvmStatic fun directToFeedback(context: Context, content: String? = null, entrance: String? = null) { + directToFeedback(context, content, null, entrance) + } + + @JvmStatic + fun directToFeedback(context: Context, content: String? = null, hintType: String? = null, entrance: String? = null) { val bundle = Bundle() bundle.putString(KEY_ENTRANCE, entrance ?: ENTRANCE_BROWSER) bundle.putString(KEY_TO, SuggestionActivity::class.java.simpleName) bundle.putString(KEY_CONTENT, content) - bundle.putString(KEY_SUGGEST_HINT_TYPE, KEY_PLUGIN) - bundle.putSerializable(EntranceUtils.KEY_SUGGESTTYPE, SuggestType.gameQuestion) + if (TextUtils.isEmpty(hintType)) { + bundle.putString(KEY_SUGGEST_HINT_TYPE, KEY_PLUGIN) + } else { + bundle.putString(KEY_SUGGEST_HINT_TYPE, hintType) + } + bundle.putSerializable(KEY_SUGGESTTYPE, SuggestType.gameQuestion) jumpActivity(context, bundle) } 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 7d4e800430..c2ec1b90e9 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailViewModel.kt @@ -331,6 +331,12 @@ class GameDetailViewModel(application: Application, override fun onResponse(response: List?) { super.onResponse(response) response?.let { + for (event in it) { + if (event.link?.type == "feedback") { + event.link?.name = game?.name + event.link?.text = game?.getGameCategory().toString() + } + } bigEventLiveData.postValue(it) } } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescAdapter.kt index ce56297763..ae84a9a5a6 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescAdapter.kt @@ -29,7 +29,10 @@ import com.gh.gamecenter.entity.* import com.gh.gamecenter.eventbus.EBReuse import com.gh.gamecenter.game.horizontal.GameHorizontalAdapter import com.gh.gamecenter.gamedetail.GameDetailFragment -import com.gh.gamecenter.gamedetail.entity.* +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.gamedetail.entity.UpdateContent import com.gh.gamecenter.gamedetail.fuli.kaifu.ServersCalendarActivity import com.gh.gamecenter.gamedetail.history.HistoryApkListActivity import com.gh.gamecenter.home.amway.LeftPagerSnapHelper @@ -157,7 +160,7 @@ class DescAdapter(context: Context, is GameLatestServiceViewHolder -> bindLatestServiceViewHolder(holder, descItemList[position].server) - is GameDetailInfoViewHolder -> bindGameDetailInfoViewHolder(holder, descItemList[position].info) + is GameDetailInfoViewHolder -> bindGameDetailInfoViewHolder(holder, descItemList[position]) is GameLibaoGalleryViewHolder -> bindLibaoViewHolder(holder, descItemList[position].libao) @@ -501,7 +504,9 @@ class DescAdapter(context: Context, } //绑定游戏信息 - private fun bindGameDetailInfoViewHolder(viewHolder: GameDetailInfoViewHolder, info: GameInfo?) { + private fun bindGameDetailInfoViewHolder(viewHolder: GameDetailInfoViewHolder, itemData: DetailEntity) { + val info = itemData.info + if (!info!!.topTags.isNullOrEmpty()) { viewHolder.binding.labelsLl.visibility = View.VISIBLE viewHolder.binding.labelsLl.removeAllViews() @@ -511,6 +516,8 @@ class DescAdapter(context: Context, } } viewHolder.binding.gameInfoRv.isNestedScrollingEnabled = false + viewHolder.binding.shouldBoundToNextItem = itemData.shouldBoundTogetherWithNextItem + updateBoundableContainerBackground(viewHolder.binding.container, false, itemData.shouldBoundTogetherWithNextItem) if (viewHolder.binding.gameInfoRv.adapter == null) { viewHolder.binding.gameInfoRv.apply { val infoAdapter = GameDetailInfoItemAdapter(mContext, info, mViewModel, gameName @@ -606,6 +613,8 @@ class DescAdapter(context: Context, if (customColumn.nameLink?.type == "top_game_comment" || customColumn.nameLink?.type == "server" || customColumn.nameLink?.type == "feedback") { + customColumn.nameLink?.name = gameName + customColumn.nameLink?.text = mViewModel.game?.category.toString() DirectUtils.directToLinkPage(mContext, customColumn.nameLink!!, StringUtils.buildString(mEntrance, "游戏详情[", gameName, "]:自定义栏目"), "") } else if (!customColumn.nameLink?.link.isNullOrEmpty()) { DirectUtils.directToLinkPage(mContext, customColumn.nameLink!!, StringUtils.buildString(mEntrance, "游戏详情[", gameName, "]:自定义栏目"), "") diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescViewModel.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescViewModel.kt index 731237f15a..1e1f2eb7a5 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescViewModel.kt @@ -199,14 +199,14 @@ class DescViewModel(application: Application, // 装饰列表数据 fun decorateList(detailEntityList: ArrayList): ArrayList { - // A 把低权重的自定义栏目转化为新的低权重自定义栏目 item - for (rawItem in detailEntityList) { - if (rawItem.type == DetailEntity.Type.CUSTOM_COLUMN.value) { - if (rawItem.customColumn?.order ?: -1 <= 0) { - rawItem.type = DetailEntity.Type.INFERIOR_CUSTOM_COLUMN.value - } - } - } +// // A 把低权重的自定义栏目转化为新的低权重自定义栏目 item // DEPRECATED +// for (rawItem in detailEntityList) { +// if (rawItem.type == DetailEntity.Type.CUSTOM_COLUMN.value) { +// if (rawItem.customColumn?.order ?: -1 <= 0) { +// rawItem.type = DetailEntity.Type.INFERIOR_CUSTOM_COLUMN.value +// } +// } +// } // B 将游戏介绍转为简单的自定义栏目 for (rawItem in detailEntityList) { @@ -222,11 +222,15 @@ class DescViewModel(application: Application, } } - // C 标记"公告"、"自定义栏目"的UI样式是否合并在一起 + // C 标记"公告"、"自定义栏目"、"详细信息" 的UI样式是否合并在一起 for ((index, rawItem) in detailEntityList.withIndex()) { - if (rawItem.type == DetailEntity.Type.NOTICE.value || rawItem.type == DetailEntity.Type.CUSTOM_COLUMN.value) { + if (rawItem.type == DetailEntity.Type.NOTICE.value + || rawItem.type == DetailEntity.Type.CUSTOM_COLUMN.value + || rawItem.type == DetailEntity.Type.GAME_INFO.value) { if (index + 1 != detailEntityList.size - && (detailEntityList[index + 1].type == DetailEntity.Type.CUSTOM_COLUMN.value || detailEntityList[index + 1].type == DetailEntity.Type.NOTICE.value)) { + && (detailEntityList[index + 1].type == DetailEntity.Type.CUSTOM_COLUMN.value + || detailEntityList[index + 1].type == DetailEntity.Type.NOTICE.value + || rawItem.type == DetailEntity.Type.GAME_INFO.value)) { rawItem.shouldBoundTogetherWithNextItem = true detailEntityList[index + 1].shouldBoundTogetherWithPreviousItem = true } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameBigEventAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameBigEventAdapter.kt index 2aadc1bca9..08fcf49287 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameBigEventAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameBigEventAdapter.kt @@ -12,7 +12,9 @@ import android.view.ViewGroup import androidx.core.content.ContextCompat import androidx.databinding.DataBindingUtil import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.* +import com.gh.common.util.DirectUtils +import com.gh.common.util.MtaHelper +import com.gh.common.util.TimeUtils import com.gh.gamecenter.R import com.gh.gamecenter.databinding.ItemGameDetailBigEventBinding import com.gh.gamecenter.gamedetail.entity.BigEvent diff --git a/app/src/main/res/layout/game_detail_info.xml b/app/src/main/res/layout/game_detail_info.xml index 697c4e2c3d..ac283a7b40 100644 --- a/app/src/main/res/layout/game_detail_info.xml +++ b/app/src/main/res/layout/game_detail_info.xml @@ -2,6 +2,16 @@ + + + + + + + + - + android:paddingBottom="@{shouldBoundToNextItem ? 0 : DisplayUtils.dip2px(11)}"> + android:weightSum="4" /> + android:visibility="gone" /> + android:layout_height="wrap_content" /> \ No newline at end of file diff --git a/app/src/main/res/layout/gamedetail_item_custom_column.xml b/app/src/main/res/layout/gamedetail_item_custom_column.xml index 57b26d1412..5bace8c757 100644 --- a/app/src/main/res/layout/gamedetail_item_custom_column.xml +++ b/app/src/main/res/layout/gamedetail_item_custom_column.xml @@ -30,7 +30,8 @@ android:orientation="vertical" android:paddingLeft="20dp" android:paddingTop="12dp" - android:paddingRight="20dp"> + android:paddingRight="20dp" + android:paddingBottom="@{shouldBoundToNextItem ? 0 : DisplayUtils.dip2px(12)}"> + android:paddingBottom="11dp">