feat: 关于插件说明的优化—客户端 https://jira.shanqu.cc/browse/GHZSCY-7903
This commit is contained in:
@ -684,7 +684,7 @@ class GameDetailFragment : LazyFragment(), IScrollable {
|
||||
null,
|
||||
gameStatus = gameStatus
|
||||
)
|
||||
GameFunctionDialogFragment.show(requireContext(), gameDetailInfoTag.infoTags)
|
||||
GameFunctionDialogFragment.show(requireContext(), gameEntity, gameDetailInfoTag.infoTags, gameDetailInfoTag.link)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,19 +9,29 @@ import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentActivity
|
||||
import androidx.recyclerview.widget.DefaultItemAnimator
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.gh.common.util.DirectUtils
|
||||
import com.gh.gamecenter.BuildConfig
|
||||
import com.gh.gamecenter.common.base.fragment.BaseBottomDialogFragment
|
||||
import com.gh.gamecenter.common.constant.EntranceConsts
|
||||
import com.gh.gamecenter.common.entity.LinkEntity
|
||||
import com.gh.gamecenter.common.utils.SensorsBridge
|
||||
import com.gh.gamecenter.common.utils.goneIf
|
||||
import com.gh.gamecenter.databinding.DialogGameDetailRecyclerViewBinding
|
||||
import com.gh.gamecenter.feature.entity.GameEntity
|
||||
import com.gh.gamecenter.gamedetail.entity.GameDetailInfoTag
|
||||
import com.lightgame.utils.AppManager
|
||||
|
||||
class GameFunctionDialogFragment: BaseBottomDialogFragment<DialogGameDetailRecyclerViewBinding>() {
|
||||
private var infoTags: List<GameDetailInfoTag.InfoTag> = arrayListOf()
|
||||
private var linkEntity: LinkEntity? = null
|
||||
private var gameEntity: GameEntity? = null
|
||||
private val adapter by lazy { GameFunctionAdapter(requireContext(), infoTags) }
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
gameEntity = arguments?.getParcelable(EntranceConsts.KEY_GAME_ENTITY)
|
||||
infoTags = arguments?.getParcelableArrayList(KEY_INFO_TAG) ?: arrayListOf()
|
||||
linkEntity = arguments?.getParcelable(EntranceConsts.KEY_LINK)
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
@ -30,6 +40,28 @@ class GameFunctionDialogFragment: BaseBottomDialogFragment<DialogGameDetailRecyc
|
||||
mBinding.closeIv.setOnClickListener {
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
mBinding.subtitleTv.goneIf(linkEntity == null) {
|
||||
mBinding.subtitleTv.text = linkEntity?.text
|
||||
mBinding.subtitleTv.setOnClickListener { _ ->
|
||||
linkEntity?.let {
|
||||
DirectUtils.directToLinkPage(requireContext(), it, "游戏详情-功能说明", "")
|
||||
SensorsBridge.trackGameDetailModuleClick(
|
||||
gameEntity?.id,
|
||||
gameEntity?.name,
|
||||
gameEntity?.categoryChinese,
|
||||
"组件内容",
|
||||
"功能标签",
|
||||
"功能标签",
|
||||
null,
|
||||
subModuleName = "跳转入口",
|
||||
linkType = it.type,
|
||||
linkId = it.link,
|
||||
linkText = it.text,
|
||||
gameStatus = null
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
mBinding.recyclerView.run {
|
||||
layoutManager = LinearLayoutManager(requireContext())
|
||||
adapter = this@GameFunctionDialogFragment.adapter
|
||||
@ -46,7 +78,7 @@ class GameFunctionDialogFragment: BaseBottomDialogFragment<DialogGameDetailRecyc
|
||||
const val KEY_INFO_TAG = "info_tag"
|
||||
|
||||
@JvmStatic
|
||||
fun show(context: Context?, infoTags: List<GameDetailInfoTag.InfoTag>) {
|
||||
fun show(context: Context?, gameEntity: GameEntity?, infoTags: List<GameDetailInfoTag.InfoTag>, linkEntity: LinkEntity?) {
|
||||
val fragmentActivity: FragmentActivity = if (context is FragmentActivity) {
|
||||
context
|
||||
} else if (BuildConfig.DEBUG) {
|
||||
@ -65,7 +97,9 @@ class GameFunctionDialogFragment: BaseBottomDialogFragment<DialogGameDetailRecyc
|
||||
|
||||
val dialogFragment = GameFunctionDialogFragment()
|
||||
dialogFragment.arguments = bundleOf(
|
||||
KEY_INFO_TAG to infoTags
|
||||
EntranceConsts.KEY_GAME_ENTITY to gameEntity,
|
||||
KEY_INFO_TAG to infoTags,
|
||||
EntranceConsts.KEY_LINK to linkEntity
|
||||
)
|
||||
dialogFragment.show(fragmentActivity.supportFragmentManager, GameFunctionDialogFragment::class.java.name)
|
||||
}
|
||||
|
||||
@ -219,7 +219,9 @@ data class GameDetailInfoTag(
|
||||
@SerializedName("info_tags")
|
||||
val infoTags: List<InfoTag> = listOf(), // 功能标签
|
||||
@SerializedName("request_speed_status")
|
||||
val requestSpeedStatus: String = "" // 求加速状态, on/off
|
||||
val requestSpeedStatus: String = "", // 求加速状态, on/off
|
||||
@SerializedName("plugin_tutorial_link")
|
||||
val link: LinkEntity? = null, // 插件教程链接
|
||||
) {
|
||||
@Parcelize
|
||||
data class InfoTag(
|
||||
|
||||
Reference in New Issue
Block a user