diff --git a/app/src/main/java/com/gh/common/dialog/BaseTrackableDialogFragment.kt b/app/src/main/java/com/gh/common/dialog/BaseTrackableDialogFragment.kt index 1f5bf3d73c..2e896edf8c 100644 --- a/app/src/main/java/com/gh/common/dialog/BaseTrackableDialogFragment.kt +++ b/app/src/main/java/com/gh/common/dialog/BaseTrackableDialogFragment.kt @@ -15,6 +15,7 @@ abstract class BaseTrackableDialogFragment : BaseDialogFragment() { abstract fun getEvent(): String abstract fun getKey(): String + open fun getValue(): String = "" // 区分此 dialog 是点击 dialog 外部取消的还是点击返回取消的 private val mIsCanceledByClickOutsideOfDialog = AtomicBoolean(true) @@ -47,6 +48,9 @@ abstract class BaseTrackableDialogFragment : BaseDialogFragment() { MtaHelper.onEventWithBasicDeviceInfo(getEvent(), getKey(), value) } else { MtaHelper.onEvent(getEvent(), getKey(), value) + if (getValue().isNotEmpty()) { + MtaHelper.onEvent(getEvent(), value, getValue()) + } } } diff --git a/app/src/main/java/com/gh/common/dialog/TrackableDialog.kt b/app/src/main/java/com/gh/common/dialog/TrackableDialog.kt index ea20c1ee31..bb98c4d929 100644 --- a/app/src/main/java/com/gh/common/dialog/TrackableDialog.kt +++ b/app/src/main/java/com/gh/common/dialog/TrackableDialog.kt @@ -8,12 +8,13 @@ import com.gh.common.util.MtaHelper import java.util.concurrent.atomic.AtomicBoolean open class TrackableDialog(context: Context, - themeResId: Int, - private var mEvent: String, - private var mKey: String, - private var mCancelValue: String? = null, - private var mKeyBackValue: String? = null, - private var mLogShowEvent: Boolean = true) + themeResId: Int, + private var mEvent: String, + private var mKey: String, + private var mValue: String? = null, + private var mCancelValue: String? = null, + private var mKeyBackValue: String? = null, + private var mLogShowEvent: Boolean = true) : Dialog(context, themeResId) { // 区分此 dialog 是点击 dialog 外部取消的还是点击返回取消的 @@ -25,6 +26,9 @@ open class TrackableDialog(context: Context, setOnCancelListener { if (mIsCanceledByClickOutsideOfDialog.get()) { MtaHelper.onEvent(mEvent, mKey, mCancelValue ?: "点击空白") + if (!mValue.isNullOrEmpty()) { + MtaHelper.onEvent(mEvent, "点击空白", mValue) + } } } @@ -32,6 +36,9 @@ open class TrackableDialog(context: Context, if (keyCode == KeyEvent.KEYCODE_BACK && event.action == KeyEvent.ACTION_UP) { mIsCanceledByClickOutsideOfDialog.set(false) MtaHelper.onEvent(mEvent, mKey, mKeyBackValue ?: "点击返回") + if (mValue != null) { + MtaHelper.onEvent(mEvent, "点击返回", mValue) + } } false } @@ -41,6 +48,9 @@ open class TrackableDialog(context: Context, super.show() if (mLogShowEvent) { MtaHelper.onEvent(mEvent, mKey, "出现弹窗") + if (!mValue.isNullOrEmpty()) { + MtaHelper.onEvent(mEvent, "出现弹窗", mValue) + } } } diff --git a/app/src/main/java/com/gh/common/util/DialogUtils.java b/app/src/main/java/com/gh/common/util/DialogUtils.java index ac40123d82..800adab138 100644 --- a/app/src/main/java/com/gh/common/util/DialogUtils.java +++ b/app/src/main/java/com/gh/common/util/DialogUtils.java @@ -8,6 +8,7 @@ import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; +import android.os.Build; import android.os.CountDownTimer; import android.preference.PreferenceManager; import android.text.Html; @@ -36,6 +37,7 @@ import com.gh.common.dialog.TrackableDialog; import com.gh.common.view.DrawableView; import com.gh.common.view.FixLinearLayoutManager; import com.gh.common.view.LimitHeightLinearLayout; +import com.gh.common.view.MaxHeightNestedScrollView; import com.gh.gamecenter.AboutActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.WebActivity; @@ -58,6 +60,7 @@ import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; import androidx.annotation.NonNull; +import androidx.annotation.RequiresApi; import androidx.appcompat.app.AlertDialog; import androidx.core.content.ContextCompat; import androidx.databinding.DataBindingUtil; @@ -1104,6 +1107,7 @@ public class DialogUtils { R.style.GhAlertDialog, trackableEntity.getEvent(), trackableEntity.getKey(), + trackableEntity.getValue(), trackableEntity.getCancelValue(), trackableEntity.getKeyBackValue(), trackableEntity.getLogShowEvent()); @@ -1309,17 +1313,25 @@ public class DialogUtils { content.addView(view); } - public static void showKaifuRemindDialog(Context context, String content) { + public static void showKaifuRemindDialog(Context context, String content, String gameName) { context = checkDialogContext(context); - final Dialog dialog = new Dialog(context, R.style.GhAlertDialog); + final Dialog dialog = new TrackableDialog(context, R.style.GhAlertDialog, "开服说明弹窗", "弹窗", gameName, null, null, true); View contentView = LayoutInflater.from(context).inflate(R.layout.dialog_kaifu_remind, null); TextView contentTv = contentView.findViewById(R.id.contentTv); + MaxHeightNestedScrollView scrollView = contentView.findViewById(R.id.scrollView); contentTv.setText(Html.fromHtml(content)); TextView ok = contentView.findViewById(R.id.dialog_ok); - ok.setOnClickListener(v -> dialog.dismiss()); + scrollView.setScrollChangedListener((l, t, oldl, oldt) -> { + MtaHelper.onEvent("开服说明弹窗", "滑动内容", gameName); + }); + ok.setOnClickListener(v -> { + MtaHelper.onEvent("开服说明弹窗", "弹窗", "点击我知道了"); + MtaHelper.onEvent("开服说明弹窗", "点击我知道了", gameName); + dialog.dismiss(); + }); Window window = dialog.getWindow(); if (window != null) { diff --git a/app/src/main/java/com/gh/common/view/MaxHeightNestedScrollView.kt b/app/src/main/java/com/gh/common/view/MaxHeightNestedScrollView.kt index 39148051a0..0942f8b87c 100644 --- a/app/src/main/java/com/gh/common/view/MaxHeightNestedScrollView.kt +++ b/app/src/main/java/com/gh/common/view/MaxHeightNestedScrollView.kt @@ -9,6 +9,7 @@ import com.gh.gamecenter.R class MaxHeightNestedScrollView(context: Context, attrs: AttributeSet? = null) : NestedScrollView(context, attrs) { var maxHeight = 0F + var scrollChangedListener: ScrollScrollChangedListener? = null init { val typedArray = context.obtainStyledAttributes(attrs, R.styleable.MaxHeightNestedScrollView) @@ -26,4 +27,13 @@ class MaxHeightNestedScrollView(context: Context, attrs: AttributeSet? = null) : //重新计算控件高、宽 super.onMeasure(widthMeasureSpec, newHeightMeasureSpec) } + + override fun onScrollChanged(l: Int, t: Int, oldl: Int, oldt: Int) { + super.onScrollChanged(l, t, oldl, oldt) + scrollChangedListener?.onScrollChanged(l, t, oldl, oldt) + } + + interface ScrollScrollChangedListener { + fun onScrollChanged(l: Int, t: Int, oldl: Int, oldt: Int) + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java index 374362bd36..db8898d93a 100644 --- a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java @@ -86,6 +86,7 @@ import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; + import butterknife.BindView; import butterknife.OnClick; import io.reactivex.android.schedulers.AndroidSchedulers; @@ -707,6 +708,7 @@ public class SuggestionActivity extends ToolBarActivity implements OnRequestCall R.style.GhAlertDialog, "意见反馈", "意见反馈-游戏收录弹窗", + null, "点击空白", "点击手机返回键", false); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); diff --git a/app/src/main/java/com/gh/gamecenter/entity/TrackableEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/TrackableEntity.kt index 8db8be294b..a8c8208304 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/TrackableEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/TrackableEntity.kt @@ -2,6 +2,7 @@ package com.gh.gamecenter.entity data class TrackableEntity(val event: String = "", val key: String = "", + val value: String? = null, val cancelValue: String? = null, val keyBackValue: String? = null, val logShowEvent: Boolean = false) \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java index 8872e9e05a..6abfc50ebf 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java @@ -67,6 +67,7 @@ import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProviders; + import butterknife.BindView; import static com.gh.gamecenter.MainActivity.EB_SKIP_MAIN; diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt index a255562512..7d6efa4733 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt @@ -628,7 +628,7 @@ class GameDetailFragment : NormalFragment() { mGameTagView.onClickListener = object : FlexLinearLayout.OnItemClickListener { override fun onMoreClickListener() { if (!isVisible) return - GameTagsDialog.showGameTagsDialog(requireActivity(), mGameEntity?.tagStyle!!) + GameTagsDialog.showGameTagsDialog(requireActivity(), mGameEntity?.tagStyle!!,mGameEntity?.name?:"") } override fun onItemClickListener(tag: TagStyleEntity) { @@ -666,7 +666,7 @@ class GameDetailFragment : NormalFragment() { ImageUtils.display(mGameIcon, mGameEntity!!.icon) ImageUtils.display(mGameIconSmall, mGameEntity!!.icon) gameBigEvent.setOnClickListener { - GameBigEventDialog.showGameBigEventDialog(requireContext()) + GameBigEventDialog.showGameBigEventDialog(requireContext(),mGameEntity?.name?:"") } } @@ -735,7 +735,7 @@ class GameDetailFragment : NormalFragment() { GdtHelper.logAction(ActionType.SHARE, GdtHelper.CONTENT_TYPE, "GAME", GdtHelper.CONTENT_ID, mGameEntity!!.id) - val url = "http://www.ghzs666.com/game/" + it.shareCode!! + val url = "http://www.ghzs666.com/game/" + it.shareCode if (activity is BaseActivity) { var shareType: ShareUtils.ShareType = ShareUtils.ShareType.game 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 12c6b88250..1efde84620 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 @@ -397,6 +397,7 @@ class DescAdapter(context: Context, private fun bindUpdateContentViewHolder(holder: GameUpdateContentViewHolder, updateContent: UpdateContent?) { holder.binding.contentTv.text = updateContent?.updateDes ?: "" holder.binding.historyVersionTv.setOnClickListener { + MtaHelper.onEvent("历史版本", "进入", gameName) val intent = HistoryApkListActivity.getIntent(mContext, mViewModel.game ?: GameEntity(), mEntrance, "更新内容") mContext.startActivity(intent) @@ -425,6 +426,7 @@ class DescAdapter(context: Context, viewHolder.binding.tipsTv.visibleIf(server.total > 0) } viewHolder.binding.moreTv.setOnClickListener { + MtaHelper.onEvent("开服日历表", "进入", gameName) val intent = ServersCalendarActivity.getIntent( mContext, mViewModel.game!!, @@ -434,7 +436,7 @@ class DescAdapter(context: Context, if (server.showDes && server.des.isNotEmpty()) { viewHolder.binding.tipsIv.visibility = View.VISIBLE viewHolder.binding.tipsIv.setOnClickListener { - DialogUtils.showKaifuRemindDialog(mContext, server.des) + DialogUtils.showKaifuRemindDialog(mContext, server.des, gameName) } } @@ -487,7 +489,8 @@ class DescAdapter(context: Context, viewHolder.binding.gameInfoRv.isNestedScrollingEnabled = false if (viewHolder.binding.gameInfoRv.adapter == null) { viewHolder.binding.gameInfoRv.apply { - val infoAdapter = GameDetailInfoItemAdapter(mContext, info, mViewModel) + val infoAdapter = GameDetailInfoItemAdapter(mContext, info, mViewModel, gameName + ?: "") adapter = infoAdapter val gridLayoutManager = GridLayoutManager(mContext, 2) gridLayoutManager.spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() { diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameDetailInfoItemAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameDetailInfoItemAdapter.kt index 1dea2ed0ad..27dd1ffb1b 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameDetailInfoItemAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameDetailInfoItemAdapter.kt @@ -9,10 +9,11 @@ import androidx.recyclerview.widget.RecyclerView import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.databinding.ItemGameInfoBinding +import com.gh.gamecenter.entity.TrackableEntity import com.gh.gamecenter.gamedetail.entity.GameInfo import com.gh.gamecenter.gamedetail.entity.GameInfoItemData -class GameDetailInfoItemAdapter(val context: Context, gameInfo: GameInfo, private val mViewModel: DescViewModel) : RecyclerView.Adapter() { +class GameDetailInfoItemAdapter(val context: Context, gameInfo: GameInfo, private val mViewModel: DescViewModel, val gameName: String) : RecyclerView.Adapter() { var datas = ArrayList() init { @@ -52,10 +53,15 @@ class GameDetailInfoItemAdapter(val context: Context, gameInfo: GameInfo, privat holder.binding.actionTv.setOnClickListener { when (gameInfoItemData.title) { "当前版本" -> { - DialogUtils.showAlertDialog(context, "版本求更新", "如果游戏上线了新版本,您可以提交申请,让小助手尽快更新版本喔!", + DialogUtils.showTrackableDialog(context, "版本求更新", "如果游戏上线了新版本,您可以提交申请,让小助手尽快更新版本喔!", "提交申请", "取消退出", { mViewModel.sendSuggestion() - }, null) + MtaHelper.onEvent("版本求更新", "弹窗", "点击提交申请") + MtaHelper.onEvent("版本求更新", "提交申请", gameName) + }, { + MtaHelper.onEvent("版本求更新", "弹窗", "点击取消退出") + MtaHelper.onEvent("版本求更新", "取消退出", gameName) + }, TrackableEntity(event = "版本求更新", key = "弹窗", value = gameName, logShowEvent = true)) } "QQ" -> { if (ShareUtils.isQQClientAvailable(context)) { 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 358b052366..680af6b1f2 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 @@ -8,7 +8,7 @@ import androidx.recyclerview.widget.RecyclerView import com.gh.gamecenter.R import com.gh.gamecenter.databinding.ItemGameDetailBigEventBinding -class GameBigEventAdapter(val context: Context, val datas: ArrayList) : RecyclerView.Adapter() { +class GameBigEventAdapter(val context: Context, val datas: ArrayList,val gameName:String) : RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { return GameBigEventViewHolder(DataBindingUtil.inflate(LayoutInflater.from(context), R.layout.item_game_detail_big_event, parent, false)) } @@ -16,7 +16,7 @@ class GameBigEventAdapter(val context: Context, val datas: ArrayList) : override fun getItemCount(): Int = datas.size override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { - + //Todo: MtaHelper.onEvent("游戏大事件", "点击链接", ${游戏名字}+${链接文案}) } class GameBigEventViewHolder(var binding: ItemGameDetailBigEventBinding) : RecyclerView.ViewHolder(binding.root) } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameBigEventDialog.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameBigEventDialog.kt index aa57c61179..466eb22f0d 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameBigEventDialog.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameBigEventDialog.kt @@ -1,6 +1,5 @@ package com.gh.gamecenter.gamedetail.dialog -import android.app.Dialog import android.content.Context import android.graphics.Color import android.graphics.drawable.ColorDrawable @@ -10,10 +9,13 @@ import android.view.Window import android.widget.TextView import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView +import com.gh.common.dialog.TrackableDialog +import com.gh.common.util.MtaHelper import com.gh.common.view.VerticalItemDecoration import com.gh.gamecenter.R -class GameBigEventDialog(context: Context) : Dialog(context, R.style.GhAlertDialog) { +class GameBigEventDialog(context: Context, val gameName: String, mEvent: String, mKey: String, mValue: String) : + TrackableDialog(context, R.style.GhAlertDialog, mEvent, mKey, mValue) { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -27,19 +29,21 @@ class GameBigEventDialog(context: Context) : Dialog(context, R.style.GhAlertDial val bigEventRv = contentView.findViewById(R.id.bigEventRv) val datas = arrayListOf("0", "1", "2", "3", "4", "5", "6") - bigEventRv.adapter = GameBigEventAdapter(context, datas) + bigEventRv.adapter = GameBigEventAdapter(context, datas, gameName) bigEventRv.layoutManager = LinearLayoutManager(context) bigEventRv.addItemDecoration(VerticalItemDecoration(context, 24F, false, R.color.white)) val closeTv = contentView.findViewById(R.id.dialog_close) closeTv.setOnClickListener { + MtaHelper.onEvent("游戏大事件", "弹窗", "点击关闭") + MtaHelper.onEvent("游戏大事件", "点击关闭", gameName) dismiss() } } companion object { - fun showGameBigEventDialog(context: Context) { - val dialog = GameBigEventDialog(context) + fun showGameBigEventDialog(context: Context, gameName: String) { + val dialog = GameBigEventDialog(context, gameName, "游戏大事件", "弹窗", gameName) dialog.show() } } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameTagsDialog.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameTagsDialog.kt index 2177dd72f5..eab5c90556 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameTagsDialog.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameTagsDialog.kt @@ -1,16 +1,16 @@ package com.gh.gamecenter.gamedetail.dialog import android.app.Dialog +import android.content.DialogInterface import android.os.Bundle -import android.view.Gravity -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup +import android.view.* import androidx.core.content.ContextCompat import androidx.fragment.app.FragmentActivity import androidx.recyclerview.widget.LinearLayoutManager import com.gh.base.fragment.BaseDialogFragment +import com.gh.common.dialog.BaseTrackableDialogFragment import com.gh.common.util.DisplayUtils +import com.gh.common.util.MtaHelper import com.gh.common.view.divider.HorizontalDividerItemDecoration import com.gh.download.dialog.DownloadDialog import com.gh.gamecenter.R @@ -18,10 +18,13 @@ import com.gh.gamecenter.entity.TagStyleEntity import com.gh.gamecenter.tag.TagsActivity import com.halo.assistant.HaloApp import kotlinx.android.synthetic.main.dialog_game_tags.view.* +import java.util.concurrent.atomic.AtomicBoolean + +class GameTagsDialog : BaseTrackableDialogFragment() { -class GameTagsDialog : BaseDialogFragment() { lateinit var containerView: View lateinit var mTagStyles: ArrayList + lateinit var mGameName: String override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { val createDialog = super.onCreateDialog(savedInstanceState) @@ -59,15 +62,22 @@ class GameTagsDialog : BaseDialogFragment() { gameTagsAdapter.onClickListener = { requireContext().startActivity(TagsActivity.getIntent(requireContext(), it.name, it.name, "", "游戏介绍")) + MtaHelper.onEvent("游戏标签弹窗", "进入标签", "${mGameName}+${it.name}") } } } + override fun getEvent(): String = "游戏标签弹窗" + + override fun getKey(): String = "弹窗" + + override fun getValue(): String = mGameName companion object { - fun showGameTagsDialog(context: FragmentActivity, tagStyles: ArrayList) { + fun showGameTagsDialog(context: FragmentActivity, tagStyles: ArrayList, gameName: String) { val dialog = GameTagsDialog().apply { mTagStyles = tagStyles + mGameName = gameName } dialog.show(context.supportFragmentManager, DownloadDialog::class.java.name) } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersCalendarActivity.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersCalendarActivity.kt index c0cde34a6a..21e738fd06 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersCalendarActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersCalendarActivity.kt @@ -27,6 +27,7 @@ import com.gh.gamecenter.servers.add.AddKaiFuActivity import com.gh.gamecenter.suggest.SuggestType import com.halo.assistant.HaloApp import com.lightgame.adapter.BaseRecyclerAdapter +import kotlinx.android.synthetic.main.layout_video_detail_surface.* import java.text.SimpleDateFormat import java.util.* @@ -108,6 +109,7 @@ class ServersCalendarActivity : ToolBarActivity() { override fun onMenuItemClick(item: MenuItem?): Boolean { if (item?.itemId == R.id.menu_post) { + MtaHelper.onEvent("开服日历表", "反馈", mViewModel.game.name) SuggestionActivity.startSuggestionActivity(this, SuggestType.normal, "service", diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersCalendarAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersCalendarAdapter.kt index d5b15889e4..03a3eb38ec 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersCalendarAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersCalendarAdapter.kt @@ -9,6 +9,7 @@ import android.view.ViewGroup import android.widget.TextView import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView +import com.gh.common.util.MtaHelper import com.gh.common.util.dip2px import com.gh.common.util.toColor import com.gh.common.view.DrawableView @@ -106,6 +107,7 @@ class ServersCalendarAdapter(context: Context, FuLiFragment.GAME_DETAIL_ADD_KAIFU_REQUEST) } } else { + MtaHelper.onEvent("开服日历表", "详情", "${viewModel.game.name}+${holder.calendarKaifu.text}") viewModel.serversDetailLiveData.postValue(entity) } } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/history/HistoryApkListAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/history/HistoryApkListAdapter.kt index 196b9b95cf..de153ac525 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/history/HistoryApkListAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/history/HistoryApkListAdapter.kt @@ -47,6 +47,9 @@ class HistoryApkListAdapter(context: Context, private var mViewModel: HistoryApk holder.binding.apk = apkEntity holder.binding.releaseDateTv.text = TimeUtils.getFormatTime(apkEntity.updateTime * 1000, "yyyy.MM.dd") + holder.binding.updateDescTv.setExpandCallback { + MtaHelper.onEvent("历史版本", "展开", "${mViewModel.game.name}+${apkEntity.version}") + } holder.binding.downloadBtn.run { DownloadItemUtils.setOnClickListener( holder.binding.root.context, @@ -100,6 +103,12 @@ class HistoryApkListAdapter(context: Context, private var mViewModel: HistoryApk } private fun showDowngradeToastIfNeed(apkEntity: ApkEntity, btnText: CharSequence) { + when (btnText) { + "下载" -> MtaHelper.onEvent("历史版本", "下载", mViewModel.game.name) + "下载中" -> MtaHelper.onEvent("历史版本", "下载中", mViewModel.game.name) + "安装" -> MtaHelper.onEvent("历史版本", "安装", mViewModel.game.name) + "启动" -> MtaHelper.onEvent("历史版本", "启动", mViewModel.game.name) + } if (btnText == "安装" || btnText == "下载") { if (PackageUtils.isInstalled(mContext, apkEntity.packageName)) { val installedVersion = PackageUtils.getVersionByPackage(apkEntity.packageName) diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingAdapter.kt index a0f3f462fa..323269a743 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingAdapter.kt @@ -102,7 +102,7 @@ class RatingAdapter(context: Context, skipRatingEdit(0.0F, "游戏详情-评论-[我来评论]") } ratingAmwayBtn.setOnClickListener { - MtaHelper.onEvent("游戏详情_新", "评论Tab_点击我要安利", mListViewModel.game.name) + MtaHelper.onEvent("发表评论", "我要安利", mListViewModel.game.name) skipRatingEdit(0.0F, "游戏详情-评论-[我要安利]", fromAmway = true, isSkipSuccessPage = false) } if (ratingData?.serviceComment != null) { diff --git a/app/src/main/java/com/gh/gamecenter/qa/CommunityFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/CommunityFragment.kt index 954b4e465a..b22530cb33 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/CommunityFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/CommunityFragment.kt @@ -392,6 +392,7 @@ class CommunityFragment : BaseLazyTabFragment() { R.style.DialogWindowTransparent, "问答页面", UserManager.getInstance().community.name, + null, "发布-空白", "发布-返回", false) diff --git a/app/src/main/res/layout/dialog_kaifu_remind.xml b/app/src/main/res/layout/dialog_kaifu_remind.xml index 9f19a2409e..66c636b349 100644 --- a/app/src/main/res/layout/dialog_kaifu_remind.xml +++ b/app/src/main/res/layout/dialog_kaifu_remind.xml @@ -23,6 +23,7 @@ android:textStyle="bold" />