XiaodongLin 11 месяцев назад
Родитель
Сommit
0e7de6830b
26 измененных файлов с 201 добавлено и 26 удалено
  1. 7 0
      app/src/main/java/com/adealink/weparty/module/task/CommonTaskRewardDialog.kt
  2. 15 0
      app/src/main/java/com/adealink/weparty/module/task/CompleteProfileDialog.kt
  3. 0 5
      app/src/main/java/com/adealink/weparty/module/task/HomeIncomeFloatView.kt
  4. 7 0
      app/src/main/java/com/adealink/weparty/module/task/HomeIncomeViewComp.kt
  5. 23 0
      app/src/main/java/com/adealink/weparty/module/task/UserTaskStatEvent.kt
  6. 19 0
      app/src/main/java/com/adealink/weparty/module/task/WelcomeRewardDialog.kt
  7. 0 10
      app/src/main/java/com/adealink/weparty/stat/CommonStatEvent.kt
  8. 8 1
      app/src/main/java/com/adealink/weparty/stat/constant/Page.kt
  9. 4 0
      module/account/src/main/java/com/adealink/weparty/account/login/phone/PhoneInputActivity.kt
  10. 6 3
      module/account/src/main/java/com/adealink/weparty/account/register/GenderSelectFragment.kt
  11. 5 5
      module/account/src/main/java/com/adealink/weparty/account/register/RegisterProfileActivity.kt
  12. 10 1
      module/account/src/main/java/com/adealink/weparty/account/stat/AccountGenderSelectStatEvent.kt
  13. 3 0
      module/account/src/main/java/com/adealink/weparty/account/stat/AccountLoginStatEvent.kt
  14. 6 0
      module/moment/src/main/java/com/adealink/weparty/moment/adapter/MomentItemViewBinder.kt
  15. 1 1
      module/moment/src/main/java/com/adealink/weparty/moment/stat/MomentStatEvent.kt
  16. 9 0
      module/moment/src/main/java/com/adealink/weparty/moment/usermoment/square/MomentListFragment.kt
  17. 7 0
      module/profile/src/main/java/com/adealink/weparty/profile/certification/CertificationActivity.kt
  18. 7 0
      module/profile/src/main/java/com/adealink/weparty/profile/edit/EditProfileActivity.kt
  19. 7 0
      module/profile/src/main/java/com/adealink/weparty/profile/me/data/TopEntranceViewComp.kt
  20. 5 0
      module/profile/src/main/java/com/adealink/weparty/profile/stat/ProfileStatEvent.kt
  21. 17 0
      module/profile/src/main/java/com/adealink/weparty/profile/userprofile/NewUserProfileActivity.kt
  22. 6 0
      module/profile/src/main/java/com/adealink/weparty/profile/userprofile/component/ProfileBottomOperationViewComp.kt
  23. 7 0
      module/profile/src/main/java/com/adealink/weparty/profile/userprofile/view/ProfilePrivacyAlbumViewBinder.kt
  24. 8 0
      module/room/src/main/java/com/adealink/weparty/room/usertask/RoomUserTaskView.kt
  25. 7 0
      module/wallet/src/main/java/com/adealink/weparty/wallet/RechargeActivity.kt
  26. 7 0
      module/wallet/src/main/java/com/adealink/weparty/wallet/coin/CoinHistoryListActivity.kt

+ 7 - 0
app/src/main/java/com/adealink/weparty/module/task/CommonTaskRewardDialog.kt

@@ -21,6 +21,8 @@ import com.adealink.weparty.commonui.recycleview.itemdecoration.HorizontalItemDe
 import com.adealink.weparty.databinding.ItemTaskRewardDialogBinding
 import com.adealink.weparty.databinding.LayoutTaskRewardDialogBinding
 import com.adealink.weparty.module.operation.data.RewardDetailData
+import com.adealink.weparty.stat.constant.Page
+import com.adealink.weparty.stat.reportEnterPage
 
 /**
  * 任务奖励弹窗
@@ -61,6 +63,11 @@ class CommonTaskRewardDialog : BaseDialogActivity() {
 //        }
     }
 
+    override fun onResume() {
+        super.onResume()
+        reportEnterPage(Page.TASK_REWARD_DIALOG)
+    }
+
     override fun loadData() {
         super.loadData()
 

+ 15 - 0
app/src/main/java/com/adealink/weparty/module/task/CompleteProfileDialog.kt

@@ -7,12 +7,16 @@ import com.adealink.frame.aab.util.getCompatDrawable
 import com.adealink.frame.aab.util.getCompatString
 import com.adealink.frame.mvvm.view.viewBinding
 import com.adealink.frame.router.Router
+import com.adealink.frame.statistics.CommonEventKey
+import com.adealink.frame.statistics.CommonEventValue
 import com.adealink.frame.util.onClick
 import com.adealink.weparty.R
 import com.adealink.weparty.databinding.DialogCompleteProfileBinding
 import com.adealink.weparty.module.profile.Profile
 import com.adealink.weparty.module.profile.ProfileModule
 import com.adealink.weparty.module.profile.data.Gender
+import com.adealink.weparty.stat.constant.Page
+import com.adealink.weparty.stat.reportEnterPage
 
 /**
  * Created by XiaoDongLin.
@@ -27,6 +31,11 @@ class CompleteProfileDialog : BaseDialogActivity() {
         setContentView(binding.root)
     }
 
+    override fun onResume() {
+        super.onResume()
+        reportEnterPage(Page.COMPLETE_PROFILE_TASK_DIALOG)
+    }
+
     override fun initViews() {
         super.initViews()
 
@@ -69,6 +78,12 @@ class CompleteProfileDialog : BaseDialogActivity() {
             Router.build(this, Profile.EditProfile.PATH)
                 .start()
             finish()
+
+            UserTaskStatEvent(CommonEventValue.Action.BTN_CLICK)
+                .apply {
+                    btn to UserTaskStatEvent.Btn.CLICK_IN_COMPLETE_PROFILE_DIALOG
+                }
+                .send()
         }
     }
 

+ 0 - 5
app/src/main/java/com/adealink/weparty/module/task/HomeIncomeFloatView.kt

@@ -40,7 +40,6 @@ class HomeIncomeFloatData : IBaseFloatData {
 class HomeIncomeFloatView(baseFloatData: IBaseFloatData) : BaseDragFloatView(baseFloatData) {
 
     private val binding: LayoutHomeIncomeFloatViewBinding = LayoutHomeIncomeFloatViewBinding.inflate(LayoutInflater.from(context))
-    private var closeClick: (() -> Unit)? = null
     private val walletViewModel by fastLazy { WalletModule.getWalletViewModel(this) }
 
 
@@ -97,10 +96,6 @@ class HomeIncomeFloatView(baseFloatData: IBaseFloatData) : BaseDragFloatView(bas
         return true
     }
 
-    fun setOnCloseClick(click: (() -> Unit)?) {
-        this.closeClick = click
-    }
-
     fun setDiamondCount(diamond: Long) {
         binding?.tvCount?.text = getCompatString(R.string.common_count, diamond)
     }

+ 7 - 0
app/src/main/java/com/adealink/weparty/module/task/HomeIncomeViewComp.kt

@@ -5,6 +5,7 @@ import com.adealink.frame.base.fastLazy
 import com.adealink.frame.log.Log
 import com.adealink.frame.mvvm.view.ViewComponent
 import com.adealink.frame.router.Router
+import com.adealink.frame.statistics.CommonEventValue
 import com.adealink.frame.util.runOnUiThread
 import com.adealink.weparty.commonui.widget.floatview.WindowManagerProxy
 import com.adealink.weparty.module.wallet.Wallet
@@ -62,6 +63,12 @@ class HomeIncomeViewComp(lifecycleOwner: LifecycleOwner) : ViewComponent(lifecyc
 
             floatView?.setOnClickListener {
                 Router.build(requireActivity(), Wallet.Diamond.PATH).start()
+
+                UserTaskStatEvent(CommonEventValue.Action.BTN_CLICK)
+                    .apply {
+                        btn to UserTaskStatEvent.Btn.CLICK_HOME_INCOME_ENTRANCE
+                    }
+                    .send()
             }
 
             floatView?.show()

+ 23 - 0
app/src/main/java/com/adealink/weparty/module/task/UserTaskStatEvent.kt

@@ -0,0 +1,23 @@
+package com.adealink.weparty.module.task
+
+import com.adealink.frame.statistics.BaseStatEvent
+import com.adealink.frame.statistics.CommonEventKey
+import com.adealink.frame.statistics.IEventValue
+
+/**
+ * 用户任务统计事件
+ * Created by XiaoDongLin.
+ * Date: 2025/5/6
+ */
+class UserTaskStatEvent(override val action: IEventValue) : BaseStatEvent("user_task") {
+
+    enum class Btn(override val value: String, override val desc: String) : IEventValue {
+        CLICK_IN_COMPLETE_PROFILE_DIALOG("1", "点击完善资料弹窗"),
+        CLICK_IN_WELCOME_TASK_DIALOG("2", "点击欢迎任务弹窗"),
+        CLICK_ME_TOP_GUIDE_LAYOUT("3", "点击我的顶部引导"),
+        CLICK_IN_ROOM_TASK_DIALOG("4", "点击房间任务弹窗"),
+        CLICK_HOME_INCOME_ENTRANCE("5", "点击首页收益入口"),
+    }
+
+    val btn = Param(CommonEventKey.BTN)
+}

+ 19 - 0
app/src/main/java/com/adealink/weparty/module/task/WelcomeRewardDialog.kt

@@ -11,6 +11,7 @@ import com.adealink.frame.mvvm.view.viewBinding
 import com.adealink.frame.router.Router
 import com.adealink.frame.router.annotation.BindExtra
 import com.adealink.frame.router.annotation.RouterUri
+import com.adealink.frame.statistics.CommonEventValue
 import com.adealink.frame.util.DisplayUtil
 import com.adealink.frame.util.onClick
 import com.adealink.weparty.R
@@ -20,6 +21,8 @@ import com.adealink.weparty.commonui.ext.dp
 import com.adealink.weparty.databinding.DialogWelcomeRewardBinding
 import com.adealink.weparty.module.profile.ProfileModule
 import com.adealink.weparty.module.profile.data.Gender
+import com.adealink.weparty.stat.constant.Page
+import com.adealink.weparty.stat.reportEnterPage
 
 /**
  * 男性、女性新用户,注册≤3天内,每天首次进入 有主动弹窗/展示气泡,每天弹1次
@@ -62,6 +65,11 @@ class WelcomeRewardDialog : BaseDialogFragment(R.layout.dialog_welcome_reward) {
         window.attributes = attr
     }
 
+    override fun onResume() {
+        super.onResume()
+        reportEnterPage(Page.WELCOME_TASK_DIALOG)
+    }
+
     override fun initViews() {
         super.initViews()
 
@@ -89,9 +97,20 @@ class WelcomeRewardDialog : BaseDialogFragment(R.layout.dialog_welcome_reward) {
         }
         binding.btnMoreTask.onClick {
             gotoUserTaskCenter(requireContext())
+            UserTaskStatEvent(CommonEventValue.Action.BTN_CLICK)
+                .apply {
+                    btn to UserTaskStatEvent.Btn.CLICK_IN_WELCOME_TASK_DIALOG
+                }
+                .send()
         }
         binding.btnGo.onClick {
             gotoUserTaskCenter(requireContext())
+
+            UserTaskStatEvent(CommonEventValue.Action.BTN_CLICK)
+                .apply {
+                    btn to UserTaskStatEvent.Btn.CLICK_IN_WELCOME_TASK_DIALOG
+                }
+                .send()
         }
         binding.btnClose.onClick {
             //播放动画逻辑

+ 0 - 10
app/src/main/java/com/adealink/weparty/stat/CommonStatEvent.kt

@@ -192,13 +192,3 @@ class HomeListClickStatEvent() : EmptyActionStatEvent("home_list_click_filter")
     val tab = Param(CommonEventKey.TAB)
 }
 
-/**
- * SayHi
- */
-class SayHiStatEvent() : EmptyActionStatEvent("say_hi") {
-    val page = Param(CommonEventKey.PAGE)
-    val opUid = Param(CommonEventKey.OP_UID)
-
-    override val reportTypeList: List<ReportType>
-        get() = listOf(ReportType.WENEXT, ReportType.FIREBASE, ReportType.APPFLY)
-}

+ 8 - 1
app/src/main/java/com/adealink/weparty/stat/constant/Page.kt

@@ -29,8 +29,15 @@ enum class Page(override val value: String, override val desc: String) : IEventV
     STORE("store", "商城"),
 
     LOGIN("login", "登录页"),
-    REGISTER_PROFILE("register_profile", "填写注册资料页面"),
 
     DAILY_RECHARGE("daily_recharge", "每日充值"),
+    RECHARGE("recharge", "金币充值页面"),
+    COIN_HISTORY_LIST("coin_history_list", "金币流水"),
+
+    EDIT_PROFILE("edit_profile", "编辑资料"),
+
+    TASK_REWARD_DIALOG("task_reward_notify", "任务奖励通知"),
+    COMPLETE_PROFILE_TASK_DIALOG("complete_profile_task_notify", "完善资料任务弹窗"),
+    WELCOME_TASK_DIALOG("welcome_task_notify", "欢迎任务弹窗"),
 
 }

+ 4 - 0
module/account/src/main/java/com/adealink/weparty/account/login/phone/PhoneInputActivity.kt

@@ -158,6 +158,10 @@ class PhoneInputActivity : BaseLoginActivity() {
     override fun onResume() {
         super.onResume()
         showSoftKeyboard(binding.phoneEdit)
+        AccountLoginStatEvent(CommonEventValue.Action.SHOW).apply {
+            page to AccountLoginStatEvent.Page.PHONE_LOGIN
+            reason to getVerifyCodeReason
+        }.send()
     }
 
     override fun onPause() {

+ 6 - 3
module/account/src/main/java/com/adealink/weparty/account/register/GenderSelectFragment.kt

@@ -17,6 +17,7 @@ import com.adealink.weparty.account.countryselect.SelectSmsCountryContract
 import com.adealink.weparty.account.countryselect.SelectSmsCountryRequest
 import com.adealink.weparty.account.databinding.FragmentGenderSelectBinding
 import com.adealink.weparty.account.stat.AccountGenderSelectStatEvent
+import com.adealink.weparty.account.stat.AccountLoginStatEvent
 import com.adealink.weparty.account.viewModel.AccountViewModelFactory
 import com.adealink.weparty.account.viewModel.RegisterProfileViewModel
 import com.adealink.weparty.commonui.BaseFragment
@@ -50,6 +51,7 @@ class GenderSelectFragment : BaseFragment(R.layout.fragment_gender_select) {
             selectCountry ?: return@register
             newUserInfo?.country = selectCountry.countryCode
             updateCountryCode(selectCountry.countryCode, selectCountry.flag)
+            AccountGenderSelectStatEvent(AccountGenderSelectStatEvent.Action.REGISTER_PROFILE_CHANGE_COUNTRY).send()
         }
     }
 
@@ -71,6 +73,7 @@ class GenderSelectFragment : BaseFragment(R.layout.fragment_gender_select) {
                 }
                 avatarPath = path
                 updateAvatar(uri)
+                AccountGenderSelectStatEvent(AccountGenderSelectStatEvent.Action.REGISTER_PROFILE_CHANGE_AVATAR).send()
             }
 
         }
@@ -148,6 +151,8 @@ class GenderSelectFragment : BaseFragment(R.layout.fragment_gender_select) {
             WheelBirthdayPickerDialogFragment.ISelectBirthDayCallback { birthdayTimestamp, birthdayYYHHDDStr ->
                 newUserInfo?.birthday = birthdayTimestamp
                 binding.tvUserBirthday.text = birthdayYYHHDDStr
+
+                AccountGenderSelectStatEvent(AccountGenderSelectStatEvent.Action.REGISTER_PROFILE_CHANGE_BIRTHDAY).send()
             }
         birthDayWheelDialog.show(childFragmentManager, "WheelBirthdayPicker")
     }
@@ -285,11 +290,9 @@ class GenderSelectFragment : BaseFragment(R.layout.fragment_gender_select) {
                 if (isFemaleChecked) {
                     genderType = AccountGenderSelectStatEvent.Type.FEMALE
                 }
-                AccountGenderSelectStatEvent(CommonEventValue.Action.BTN_CLICK).apply {
-                    btn to AccountGenderSelectStatEvent.Btn.NEXT
+                AccountGenderSelectStatEvent(AccountGenderSelectStatEvent.Action.REGISTER_PROFILE_GOTO_APP).apply {
                     type to genderType
                 }.send()
-
             }.build().show(childFragmentManager)
     }
 

+ 5 - 5
module/account/src/main/java/com/adealink/weparty/account/register/RegisterProfileActivity.kt

@@ -8,12 +8,13 @@ import com.adealink.frame.mvvm.view.viewBinding
 import com.adealink.frame.router.Router
 import com.adealink.frame.router.annotation.BindExtra
 import com.adealink.frame.router.annotation.RouterUri
-import com.adealink.frame.util.AppUtil
+import com.adealink.frame.statistics.CommonEventValue
 import com.adealink.weparty.AppModule
 import com.adealink.weparty.account.R
 import com.adealink.weparty.account.constant.TAG_GENDER_SELECT_FRAGMENT
 import com.adealink.weparty.account.databinding.ActivityRegisterProfileBinding
 import com.adealink.weparty.account.login.manager.loginManager
+import com.adealink.weparty.account.stat.AccountLoginStatEvent
 import com.adealink.weparty.account.viewModel.AccountViewModelFactory
 import com.adealink.weparty.account.viewModel.RegisterProfileViewModel
 import com.adealink.weparty.commonui.BaseActivity
@@ -21,9 +22,6 @@ import com.adealink.weparty.module.account.Account
 import com.adealink.weparty.module.account.AccountModule
 import com.adealink.weparty.module.follow.FollowModule
 import com.adealink.weparty.module.follow.viewmodel.IFollowViewModel
-import com.adealink.weparty.stat.constant.Page
-import com.adealink.weparty.stat.reportEnterPage
-import com.adealink.weparty.storage.AppPref
 
 @RouterUri(path = [Account.Register.PATH], desc = "注册页面")
 class RegisterProfileActivity : BaseActivity() {
@@ -50,7 +48,9 @@ class RegisterProfileActivity : BaseActivity() {
 
     override fun onResume() {
         super.onResume()
-        reportEnterPage(Page.REGISTER_PROFILE)
+        AccountLoginStatEvent(CommonEventValue.Action.SHOW).apply {
+            page to AccountLoginStatEvent.Page.REGISTER_PROFILE
+        }.send()
     }
 
     override fun initViews() {

+ 10 - 1
module/account/src/main/java/com/adealink/weparty/account/stat/AccountGenderSelectStatEvent.kt

@@ -4,12 +4,21 @@ import com.adealink.frame.statistics.BaseStatEvent
 import com.adealink.frame.statistics.CommonEventKey
 import com.adealink.frame.statistics.IEventValue
 
-class AccountGenderSelectStatEvent(override val action: IEventValue) : BaseStatEvent("account_gender_selection") {
+class AccountGenderSelectStatEvent(override val action: IEventValue) :
+    BaseStatEvent("account_gender_selection") {
 
     enum class Page(override val value: String, override val desc: String) : IEventValue {
         GENDER_SELECT("1", "性别选择页")
     }
 
+    enum class Action(override val value: String, override val desc: String) : IEventValue {
+        REGISTER_PROFILE_CHANGE_AVATAR("register_profile_change_avatar", "注册资料修改头像"),
+        REGISTER_PROFILE_CHANGE_NICKNAME("register_profile_change_nickname", "注册资料修改昵称"),
+        REGISTER_PROFILE_CHANGE_COUNTRY("register_profile_change_country", "注册资料修改国家"),
+        REGISTER_PROFILE_CHANGE_BIRTHDAY("register_profile_change_birthday", "注册资料修改生日"),
+        REGISTER_PROFILE_GOTO_APP("register_profile_goto_app", "注册资料跳转到app"),
+    }
+
     enum class Type(override val value: String, override val desc: String) : IEventValue {
         MALE("1", "男"),
         FEMALE("2", "女")

+ 3 - 0
module/account/src/main/java/com/adealink/weparty/account/stat/AccountLoginStatEvent.kt

@@ -54,7 +54,10 @@ class AccountLoginStatEvent(override val action: IEventValue) : BaseStatEvent("a
 
     enum class Page(override val value: String, override val desc: String) : IEventValue {
         SIGN_UP_LOG_IN("0", "注册/登录页"),
+        PHONE_LOGIN("1", "手机号登录页"),
         VERIFY_CODE("1", "手机验证码页"),
+
+        REGISTER_PROFILE("register_profile", "填写注册资料页面"),
     }
 
     val type = Param(CommonEventKey.TYPE)

+ 6 - 0
module/moment/src/main/java/com/adealink/weparty/moment/adapter/MomentItemViewBinder.kt

@@ -192,6 +192,12 @@ class MomentItemViewBinder(
                 item.content.topicId,
                 !item.isLike()
             )
+            MomentStatEvent(CommonEventValue.Action.BTN_CLICK)
+                .apply {
+                    btn to MomentStatEvent.Btn.CLICK_LIKE
+                    opUid to item.content.uid
+                }
+                .send()
         }
 
         updateLikeList(holder, item)

+ 1 - 1
module/moment/src/main/java/com/adealink/weparty/moment/stat/MomentStatEvent.kt

@@ -16,7 +16,7 @@ class MomentStatEvent(override val action: IEventValue) : BaseStatEvent("moment"
         SAY_HI("3", "打招呼"),
         GO_TO_MESSAGE("4", "去私信"),
         CLICK_LIKE("5", "点击点赞"),
-        CLICK_FOLLOW("6", "点击关注"),
+        CLICK_COMMENT("6", "发布评论"),
         GO_TO_PUBLISH("7", "去发布页"),
         PUBLISH_SUCCESS("8", "发布成功"),
     }

+ 9 - 0
module/moment/src/main/java/com/adealink/weparty/moment/usermoment/square/MomentListFragment.kt

@@ -19,6 +19,7 @@ import com.adealink.frame.ext.isViewBindingValid
 import com.adealink.frame.mvvm.view.viewBinding
 import com.adealink.frame.router.Router
 import com.adealink.frame.router.annotation.RouterUri
+import com.adealink.frame.statistics.CommonEventValue
 import com.adealink.frame.util.DisplayUtil
 import com.adealink.weparty.commonui.BaseFragment
 import com.adealink.weparty.commonui.dialogfragment.BaseDialogFragment
@@ -77,6 +78,7 @@ import com.adealink.weparty.moment.listener.IMomentListener
 import com.adealink.weparty.moment.listener.MomentOperationListener
 import com.adealink.weparty.moment.listener.ReplyOperationListener
 import com.adealink.weparty.moment.manager.momentManager
+import com.adealink.weparty.moment.stat.MomentStatEvent
 import com.adealink.weparty.moment.usermoment.MomentFragment
 import com.adealink.weparty.moment.util.getDeleteAdminRole
 import com.adealink.weparty.moment.viewmodel.MomentListViewModel
@@ -742,6 +744,13 @@ class MomentListFragment : BaseFragment(R.layout.fragment_moment_list), ReplyOpe
         topicDetailItem.replyCount += 1
         momentListData[topicIndex] = topicDetailItem
         momentAdapter.notifyItemChanged(topicIndex)
+
+        MomentStatEvent(CommonEventValue.Action.BTN_CLICK)
+            .apply {
+                btn to MomentStatEvent.Btn.CLICK_COMMENT
+                opUid to replyUid
+            }
+            .send()
     }
 
     override fun onGiftCallback(

+ 7 - 0
module/profile/src/main/java/com/adealink/weparty/profile/certification/CertificationActivity.kt

@@ -9,6 +9,8 @@ import com.adealink.weparty.commonui.BaseActivity
 import com.adealink.weparty.module.profile.Profile
 import com.adealink.weparty.profile.R
 import com.adealink.weparty.profile.databinding.ActivityCertificationCenterBinding
+import com.adealink.weparty.stat.constant.Page
+import com.adealink.weparty.stat.reportEnterPage
 import com.qmuiteam.qmui.widget.util.QMUIStatusBarHelper
 
 /**
@@ -34,4 +36,9 @@ class CertificationActivity : BaseActivity() {
             .replace(R.id.fragment_container, CertificationTaskFragment.newInstance(action))
             .commitAllowingStateLoss()
     }
+
+    override fun onResume() {
+        super.onResume()
+        reportEnterPage(Page.CERTIFICATE_CENTER)
+    }
 }

+ 7 - 0
module/profile/src/main/java/com/adealink/weparty/profile/edit/EditProfileActivity.kt

@@ -19,6 +19,8 @@ import com.adealink.weparty.profile.edit.viewcomp.MoreInformationViewComponent
 import com.adealink.weparty.profile.edit.viewcomp.PersonalProfileViewComponent
 import com.adealink.weparty.profile.viewmodel.ProfileViewModel
 import com.adealink.weparty.profile.viewmodel.ProfileViewModelFactory
+import com.adealink.weparty.stat.constant.Page
+import com.adealink.weparty.stat.reportEnterPage
 import com.qmuiteam.qmui.widget.util.QMUIStatusBarHelper
 
 @RouterUri(path = [Profile.EditProfile.PATH], desc = "编辑资料页")
@@ -74,5 +76,10 @@ class EditProfileActivity : BaseActivity() {
         }
     }
 
+    override fun onResume() {
+        super.onResume()
+        reportEnterPage(Page.EDIT_PROFILE)
+    }
+
 
 }

+ 7 - 0
module/profile/src/main/java/com/adealink/weparty/profile/me/data/TopEntranceViewComp.kt

@@ -11,6 +11,7 @@ import com.adealink.frame.dot.NumDot
 import com.adealink.frame.mvvm.view.ViewComponent
 import com.adealink.frame.mvvm.viewmodel.viewModels
 import com.adealink.frame.router.Router
+import com.adealink.frame.statistics.CommonEventValue
 import com.adealink.frame.util.onClick
 import com.adealink.weparty.commonui.ext.gone
 import com.adealink.weparty.commonui.ext.onSuccess
@@ -22,6 +23,7 @@ import com.adealink.weparty.module.profile.data.UserInfo
 import com.adealink.weparty.module.profile.decorate.data.DecorType
 import com.adealink.weparty.module.profile.decorate.data.VisitorRecordEnableDecor
 import com.adealink.weparty.module.profile.dot.meTaskEntranceDot
+import com.adealink.weparty.module.task.UserTaskStatEvent
 import com.adealink.weparty.module.task.gotoUserTaskCenter
 import com.adealink.weparty.module.visitors.Visitors
 import com.adealink.weparty.module.visitors.VisitorsModule
@@ -143,6 +145,11 @@ class TopEntranceViewComp(
         ) {
             //跳转到任务中心
             gotoUserTaskCenter(context=requireActivity())
+            UserTaskStatEvent(CommonEventValue.Action.BTN_CLICK)
+                .apply {
+                    btn to UserTaskStatEvent.Btn.CLICK_ME_TOP_GUIDE_LAYOUT
+                }
+                .send()
         }
 
         // 邀请

+ 5 - 0
module/profile/src/main/java/com/adealink/weparty/profile/stat/ProfileStatEvent.kt

@@ -21,9 +21,14 @@ class ProfileStatEvent(override val action: IEventValue) : BaseStatEvent("user_p
         MENU("7", "菜单"),
 
         SAY_HI("8", "打招呼"),
+        VOICE_CALL("9", "语音通话"),
+        PRIVATE_PHOTO("10", "隐私相册"),
+        MOMENT_TAB("11", "动态"),
+        RELATION_TAB("12", "关系"),
     }
 
     val page = Param(CommonEventKey.PAGE)
     val btn = Param(CommonEventKey.BTN)
     val opUid = Param(CommonEventKey.OP_UID)
+    val tab = Param(CommonEventKey.TAB)
 }

+ 17 - 0
module/profile/src/main/java/com/adealink/weparty/profile/userprofile/NewUserProfileActivity.kt

@@ -3,6 +3,7 @@ package com.adealink.weparty.profile.userprofile
 import android.os.Bundle
 import androidx.activity.viewModels
 import androidx.fragment.app.Fragment
+import androidx.viewpager2.widget.ViewPager2
 import com.adealink.frame.aab.util.getCompatString
 import com.adealink.frame.base.fastLazy
 import com.adealink.frame.mvvm.view.viewBinding
@@ -90,6 +91,21 @@ class NewUserProfileActivity : BaseActivity() {
         )
         switchTab(tabIndex)
 
+        binding.profileVp.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
+            override fun onPageSelected(position: Int) {
+                super.onPageSelected(position)
+                ProfileStatEvent(CommonEventValue.Action.SHOW).apply {
+                    opUid to userUid
+                    page to when (isSelf) {
+                        true -> ProfileStatEvent.Page.MASTER
+                        else -> ProfileStatEvent.Page.GUEST
+                    }
+                    tab to profileTabList.getOrNull(position)?.type?.toString()
+                }.send()
+
+            }
+        })
+
     }
 
     override fun initComponents() {
@@ -180,6 +196,7 @@ class NewUserProfileActivity : BaseActivity() {
         }
 
         ProfileStatEvent(CommonEventValue.Action.SHOW).apply {
+            opUid to userUid
             page to when (isSelf) {
                 true -> ProfileStatEvent.Page.MASTER
                 else -> ProfileStatEvent.Page.GUEST

+ 6 - 0
module/profile/src/main/java/com/adealink/weparty/profile/userprofile/component/ProfileBottomOperationViewComp.kt

@@ -64,6 +64,7 @@ class ProfileBottomOperationViewComp(
                         }
                 }
                 ProfileStatEvent(CommonEventValue.Action.BTN_CLICK).apply {
+                    opUid to userUid
                     btn to when (isFollow) {
                         true -> ProfileStatEvent.Btn.UN_FOLLOW
                         else -> ProfileStatEvent.Btn.FOLLOW
@@ -110,6 +111,11 @@ class ProfileBottomOperationViewComp(
             )
             .putExtra(Message.Common.EXTRA_FROM, EnterConversationFrom.ProfileBottom.name)
             .start()
+
+        ProfileStatEvent(CommonEventValue.Action.BTN_CLICK).apply {
+            opUid to userUid
+            btn to ProfileStatEvent.Btn.VOICE_CALL
+        }.send()
     }
 
     override fun onResume() {

+ 7 - 0
module/profile/src/main/java/com/adealink/weparty/profile/userprofile/view/ProfilePrivacyAlbumViewBinder.kt

@@ -8,6 +8,7 @@ import com.adealink.frame.aab.util.getCompatString
 import com.adealink.frame.base.fastLazy
 import com.adealink.frame.locale.language.languageManager
 import com.adealink.frame.router.Router
+import com.adealink.frame.statistics.CommonEventValue
 import com.adealink.weparty.commonui.ext.gone
 import com.adealink.weparty.commonui.ext.show
 import com.adealink.weparty.commonui.recycleview.adapter.BindingViewHolder
@@ -23,6 +24,7 @@ import com.adealink.weparty.profile.databinding.ItemPrivateAlbumPictureItemBindi
 import com.adealink.weparty.profile.databinding.ItemProfilePrivacyAblumListBinding
 import com.adealink.weparty.profile.privacyalbum.PrivacyPhotoItemData
 import com.adealink.weparty.profile.privacyalbum.view.PrivacyAlbumInterceptor
+import com.adealink.weparty.profile.stat.ProfileStatEvent
 import com.adealink.weparty.profile.userprofile.data.ProfileEmptyType
 import com.adealink.weparty.profile.userprofile.data.ProfilePrivacyAlbumData
 import com.adealink.weparty.profile.userprofile.data.ProfileSectionEmptyData
@@ -85,6 +87,11 @@ class ProfilePrivacyAlbumViewBinder(
                 .putExtra(Profile.PrivacyAlbum.EXTRA_UID, userUid)
                 .putExtra(Profile.PrivacyAlbum.EXTRA_PRIVILEGE_STATE, state.ordinal)
                 .start()
+
+            ProfileStatEvent(CommonEventValue.Action.BTN_CLICK).apply {
+                opUid to userUid
+                btn to ProfileStatEvent.Btn.PRIVATE_PHOTO
+            }.send()
         }
 
         @SuppressLint("SetTextI18n", "NotifyDataSetChanged")

+ 8 - 0
module/room/src/main/java/com/adealink/weparty/room/usertask/RoomUserTaskView.kt

@@ -9,6 +9,7 @@ import androidx.fragment.app.FragmentManager
 import androidx.lifecycle.LifecycleOwner
 import com.adealink.frame.log.Log
 import com.adealink.frame.router.Router
+import com.adealink.frame.statistics.CommonEventValue
 import com.adealink.frame.util.onClick
 import com.adealink.frame.util.timeToMS
 import com.adealink.weparty.commonui.dialogfragment.BaseDialogFragment
@@ -18,6 +19,7 @@ import com.adealink.weparty.module.room.Room
 import com.adealink.weparty.module.room.RoomModule
 import com.adealink.weparty.module.task.RoomTaskMonitor
 import com.adealink.weparty.module.task.UserTaskManager
+import com.adealink.weparty.module.task.UserTaskStatEvent
 import com.adealink.weparty.room.databinding.LayoutRoomUserTaskBinding
 import com.adealink.weparty.room.micseat.viewmodel.RoomSeatViewModel
 
@@ -137,6 +139,12 @@ class RoomUserTaskView @JvmOverloads constructor(
                     fragment?.show(fragmentManager)
                 }
             }
+
+            UserTaskStatEvent(CommonEventValue.Action.BTN_CLICK)
+                .apply {
+                    btn to UserTaskStatEvent.Btn.CLICK_IN_ROOM_TASK_DIALOG
+                }
+                .send()
         }
     }
 }

+ 7 - 0
module/wallet/src/main/java/com/adealink/weparty/wallet/RechargeActivity.kt

@@ -7,6 +7,8 @@ import com.adealink.frame.router.annotation.BindExtra
 import com.adealink.frame.router.annotation.RouterUri
 import com.adealink.weparty.commonui.BaseActivity
 import com.adealink.weparty.module.wallet.Wallet
+import com.adealink.weparty.stat.constant.Page
+import com.adealink.weparty.stat.reportEnterPage
 import com.adealink.weparty.wallet.coin.CoinFragment
 import com.adealink.weparty.wallet.databinding.ActivityRechargeBinding
 import com.adealink.weparty.wallet.gamecoins.GameCoinsFragment
@@ -48,4 +50,9 @@ class RechargeActivity : BaseActivity() {
         supportFragmentManager.beginTransaction()
             .replace(R.id.fl_container, fragment).commitAllowingStateLoss()
     }
+
+    override fun onResume() {
+        super.onResume()
+        reportEnterPage(Page.RECHARGE)
+    }
 }

+ 7 - 0
module/wallet/src/main/java/com/adealink/weparty/wallet/coin/CoinHistoryListActivity.kt

@@ -18,6 +18,8 @@ import com.adealink.weparty.commonui.recycleview.commonviewholder.CommonListEmpt
 import com.adealink.weparty.commonui.recycleview.commonviewholder.CommonListErrorEmptyType
 import com.adealink.weparty.commonui.recycleview.diffutil.BaseListDiffUtil
 import com.adealink.weparty.module.wallet.Wallet
+import com.adealink.weparty.stat.constant.Page
+import com.adealink.weparty.stat.reportEnterPage
 import com.adealink.weparty.wallet.data.CurrencyCategory
 import com.adealink.weparty.wallet.data.CurrencyHistoryListItemData
 import com.adealink.weparty.wallet.data.CurrencySource
@@ -196,4 +198,9 @@ class CoinHistoryListActivity: BaseActivity() {
         }
         dialog.show(supportFragmentManager)
     }
+
+    override fun onResume() {
+        super.onResume()
+        reportEnterPage(Page.COIN_HISTORY_LIST)
+    }
 }