Procházet zdrojové kódy

[feat]键盘插件,修改埋点事件上报API

hezihao před 1 rokem
rodič
revize
6c01e76ca1
14 změnil soubory, kde provedl 40 přidání a 88 odebrání
  1. 1 2
      plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/component/child/impl/AiKeyboardCommonPanelComponent.kt
  2. 2 2
      plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/component/child/impl/AiKeyboardProloguePanelComponent.kt
  3. 2 3
      plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/component/child/impl/KeyboardGuideComponent.kt
  4. 7 8
      plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/component/child/impl/KeyboardSelectComponent.kt
  5. 4 3
      plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/component/child/impl/QuickSwitchComponent.kt
  6. 3 6
      plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/component/child/impl/SettingComponent.kt
  7. 2 4
      plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/component/child/impl/ToolBarComponent.kt
  8. 3 5
      plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/component/page/impl/LoginPageComponent.kt
  9. 3 5
      plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/component/page/impl/VipPageComponent.kt
  10. 2 3
      plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/floating/FloatingButtonService.kt
  11. 0 15
      plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/mvvm/repository/KeyboardRepository.kt
  12. 0 23
      plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/mvvm/viewmodel/KeyboardViewModel.kt
  13. 5 4
      plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/util/bridge/FlutterBridgeManager.kt
  14. 6 5
      plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/util/bridge/api/EventReportApi.kt

+ 1 - 2
plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/component/child/impl/AiKeyboardCommonPanelComponent.kt

@@ -226,8 +226,7 @@ class AiKeyboardCommonPanelComponent @JvmOverloads constructor(
         // 发送
         vSendBtn.click {
             // 埋点事件上报
-            KeyboardHolder.getKeyboardService()?.getKeyboardViewModel()
-                ?.reportEvent(StatisticsPoint.EVENT_05016)
+            FlutterBridgeManager.reportEvent(StatisticsPoint.EVENT_05016)
             KeyboardHolder.getKeyboardService()?.asInputMethodService()?.let {
                 InputMethodUtil.clickSendBtn(it)
             }

+ 2 - 2
plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/component/child/impl/AiKeyboardProloguePanelComponent.kt

@@ -25,6 +25,7 @@ import com.atmob.keyboard_android.util.KeyboardHolder
 import com.atmob.keyboard_android.util.LogUtil
 import com.atmob.keyboard_android.util.ToastUtil
 import com.atmob.keyboard_android.util.UserInfoHelper
+import com.atmob.keyboard_android.util.bridge.FlutterBridgeManager
 import com.atmob.keyboard_android.util.recyclerview.GridDivider
 import com.atmob.keyboard_android.widget.LongTouchContainer
 import com.atmob.keyboard_android.widget.indicator.TabPagerTitleView
@@ -276,8 +277,7 @@ class AiKeyboardProloguePanelComponent @JvmOverloads constructor(
         // 发送
         vSendBtn.click {
             // 埋点事件上报
-            KeyboardHolder.getKeyboardService()?.getKeyboardViewModel()
-                ?.reportEvent(StatisticsPoint.EVENT_05016)
+            FlutterBridgeManager.reportEvent(StatisticsPoint.EVENT_05016)
             KeyboardHolder.getKeyboardService()?.asInputMethodService()?.let {
                 InputMethodUtil.clickSendBtn(it)
             }

+ 2 - 3
plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/component/child/impl/KeyboardGuideComponent.kt

@@ -11,8 +11,8 @@ import com.atmob.keyboard_android.enums.StatisticsPoint
 import com.atmob.keyboard_android.ext.click
 import com.atmob.keyboard_android.ext.measureView
 import com.atmob.keyboard_android.model.AiKeyboardKeyModel
-import com.atmob.keyboard_android.util.KeyboardHolder
 import com.atmob.keyboard_android.util.ViewLocationUtil
+import com.atmob.keyboard_android.util.bridge.FlutterBridgeManager
 import com.blankj.utilcode.util.ConvertUtils
 
 /**
@@ -59,8 +59,7 @@ class KeyboardGuideComponent @JvmOverloads constructor(
     override fun onComponentShow() {
         super.onComponentShow()
         // 埋点事件上报
-        KeyboardHolder.getKeyboardService()?.getKeyboardViewModel()
-            ?.reportEvent(StatisticsPoint.EVENT_03006)
+        FlutterBridgeManager.reportEvent(StatisticsPoint.EVENT_03006)
     }
 
     override fun getComponentInterfaceClazz(): Class<IKeyboardGuideComponent> {

+ 7 - 8
plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/component/child/impl/KeyboardSelectComponent.kt

@@ -20,6 +20,7 @@ import com.atmob.keyboard_android.ext.click
 import com.atmob.keyboard_android.ext.deepCopy
 import com.atmob.keyboard_android.model.EmptyPlaceholderModel
 import com.atmob.keyboard_android.util.KeyboardHolder
+import com.atmob.keyboard_android.util.bridge.FlutterBridgeManager
 import com.atmob.keyboard_android.util.bridge.model.resp.KeyboardInfo
 import com.atmob.keyboard_android.util.recyclerview.GridDivider
 import com.blankj.utilcode.util.ConvertUtils
@@ -70,14 +71,12 @@ class KeyboardSelectComponent @JvmOverloads constructor(
                 return@click
             }
             // 事件埋点上报
-            KeyboardHolder.getKeyboardService()?.getKeyboardViewModel()?.run {
-                val type = selectKeyboard.type ?: ""
-                if (type.isNotBlank()) {
-                    if (KeyboardType.isSystem(type)) {
-                        reportEvent(StatisticsPoint.EVENT_05003)
-                    } else {
-                        reportEvent(StatisticsPoint.EVENT_05004)
-                    }
+            val type = selectKeyboard.type ?: ""
+            if (type.isNotBlank()) {
+                if (KeyboardType.isSystem(type)) {
+                    FlutterBridgeManager.reportEvent(StatisticsPoint.EVENT_05003)
+                } else {
+                    FlutterBridgeManager.reportEvent(StatisticsPoint.EVENT_05004)
                 }
             }
             // 保存,用户选择的键盘

+ 4 - 3
plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/component/child/impl/QuickSwitchComponent.kt

@@ -15,6 +15,7 @@ import com.atmob.keyboard_android.ext.click
 import com.atmob.keyboard_android.ui.popup.ModeSwitchPopupWindow
 import com.atmob.keyboard_android.util.KeyboardHolder
 import com.atmob.keyboard_android.util.LogUtil
+import com.atmob.keyboard_android.util.bridge.FlutterBridgeManager
 
 /**
  * 快速切换组件
@@ -64,11 +65,11 @@ class QuickSwitchComponent @JvmOverloads constructor(
                         // 埋点事件上报
                         KeyboardHolder.getKeyboardService()?.getKeyboardViewModel()?.run {
                             if (newMode == HelpMode.HELP_CHAT) {
-                                reportEvent(StatisticsPoint.EVENT_05000)
+                                FlutterBridgeManager.reportEvent(StatisticsPoint.EVENT_05000)
                             } else if (newMode == HelpMode.TEACH_YOU_SAY) {
-                                reportEvent(StatisticsPoint.EVENT_05001)
+                                FlutterBridgeManager.reportEvent(StatisticsPoint.EVENT_05001)
                             } else if (newMode == HelpMode.OPEN_REMARKS) {
-                                reportEvent(StatisticsPoint.EVENT_05002)
+                                FlutterBridgeManager.reportEvent(StatisticsPoint.EVENT_05002)
                             }
                         }
                         // 切换到键盘页

+ 3 - 6
plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/component/child/impl/SettingComponent.kt

@@ -45,20 +45,17 @@ class SettingComponent @JvmOverloads constructor(
         // 定制人设
         vSettingCustomPersonLayout.click {
             // 埋点事件上报
-            KeyboardHolder.getKeyboardService()?.getKeyboardViewModel()
-                ?.reportEvent(StatisticsPoint.EVENT_05012)
+            FlutterBridgeManager.reportEvent(StatisticsPoint.EVENT_05012)
             FlutterBridgeManager.jump2CustomCharacterPage()
         }
         // 人设市场
         vSettingMarketLayout.click {
-            KeyboardHolder.getKeyboardService()?.getKeyboardViewModel()
-                ?.reportEvent(StatisticsPoint.EVENT_05013)
+            FlutterBridgeManager.reportEvent(StatisticsPoint.EVENT_05013)
             FlutterBridgeManager.jump2MainPage(HostMainTab.CHARACTER)
         }
         // 解锁会员
         vSettingUnlockVipLayout.click {
-            KeyboardHolder.getKeyboardService()?.getKeyboardViewModel()
-                ?.reportEvent(StatisticsPoint.EVENT_05014)
+            FlutterBridgeManager.reportEvent(StatisticsPoint.EVENT_05014)
             FlutterBridgeManager.jump2VipStore()
         }
 

+ 2 - 4
plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/component/child/impl/ToolBarComponent.kt

@@ -50,8 +50,7 @@ class ToolBarComponent @JvmOverloads constructor(
 
         vIcon.click {
             // 埋点事件上报
-            KeyboardHolder.getKeyboardService()?.getKeyboardViewModel()
-                ?.reportEvent(StatisticsPoint.EVENT_05011)
+            FlutterBridgeManager.reportEvent(StatisticsPoint.EVENT_05011)
             // 切换到设置页
             val rootComponent =
                 ComponentMediator.findComponent<IKeyboardRootComponent>(IKeyboardRootComponent::class.java)
@@ -86,8 +85,7 @@ class ToolBarComponent @JvmOverloads constructor(
             InputMethodPickerActivity.start(context)
         }
         vIntimacyLayout.click {
-            KeyboardHolder.getKeyboardService()?.getKeyboardViewModel()
-                ?.reportEvent(StatisticsPoint.EVENT_05015)
+            FlutterBridgeManager.reportEvent(StatisticsPoint.EVENT_05015)
             // 点击亲密度布局,跳转去亲密度页
             UserInfoHelper.checkLogin(nextAction = {
                 FlutterBridgeManager.jump2IntimacyPage()

+ 3 - 5
plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/component/page/impl/LoginPageComponent.kt

@@ -41,8 +41,7 @@ class LoginPageComponent @JvmOverloads constructor(
 
     override fun bindView(view: View) {
         vBackBtn.click {
-            KeyboardHolder.getKeyboardService()?.getKeyboardViewModel()
-                ?.reportEvent(StatisticsPoint.EVENT_05007)
+            FlutterBridgeManager.reportEvent(StatisticsPoint.EVENT_05007)
             // 关闭
             hide()
         }
@@ -50,8 +49,7 @@ class LoginPageComponent @JvmOverloads constructor(
             loadResDrawableToCorner(R.mipmap.ic_app_icon, 46f, 0)
         }
         vLoginBtn.click {
-            KeyboardHolder.getKeyboardService()?.getKeyboardViewModel()
-                ?.reportEvent(StatisticsPoint.EVENT_05006)
+            FlutterBridgeManager.reportEvent(StatisticsPoint.EVENT_05006)
             // 跳转到登录页,并关闭自身
             FlutterBridgeManager.jump2LoginPage()
             hide()
@@ -67,7 +65,7 @@ class LoginPageComponent @JvmOverloads constructor(
         KeyboardHolder.getKeyboardService()?.getKeyboardViewModel()?.run {
             updateLoginPageShowing(true)
             // 事件埋点上报
-            reportEvent(StatisticsPoint.EVENT_05005)
+            FlutterBridgeManager.reportEvent(StatisticsPoint.EVENT_05005)
         }
     }
 

+ 3 - 5
plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/component/page/impl/VipPageComponent.kt

@@ -34,13 +34,11 @@ class VipPageComponent @JvmOverloads constructor(
 
     override fun bindView(view: View) {
         vBackBtn.click {
-            KeyboardHolder.getKeyboardService()?.getKeyboardViewModel()
-                ?.reportEvent(StatisticsPoint.EVENT_05010)
+            FlutterBridgeManager.reportEvent(StatisticsPoint.EVENT_05010)
             hide()
         }
         vJoinVipBtn.click {
-            KeyboardHolder.getKeyboardService()?.getKeyboardViewModel()
-                ?.reportEvent(StatisticsPoint.EVENT_05009)
+            FlutterBridgeManager.reportEvent(StatisticsPoint.EVENT_05009)
             // 跳转到VIP商店
             FlutterBridgeManager.jump2VipStore()
             hide()
@@ -56,7 +54,7 @@ class VipPageComponent @JvmOverloads constructor(
         super.onComponentShow()
         KeyboardHolder.getKeyboardService()?.getKeyboardViewModel()?.run {
             // 埋点事件上报
-            reportEvent(StatisticsPoint.EVENT_05008)
+            FlutterBridgeManager.reportEvent(StatisticsPoint.EVENT_05008)
             updateVipPageShowing(true)
         }
     }

+ 2 - 3
plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/floating/FloatingButtonService.kt

@@ -17,7 +17,7 @@ import com.atmob.keyboard_android.R
 import com.atmob.keyboard_android.enums.StatisticsPoint
 import com.atmob.keyboard_android.ext.click
 import com.atmob.keyboard_android.keyboard.InputMethodPickerActivity
-import com.atmob.keyboard_android.util.KeyboardHolder
+import com.atmob.keyboard_android.util.bridge.FlutterBridgeManager
 import com.atmob.keyboard_android.util.flow.FloatingWindowUtil
 import kotlin.math.abs
 
@@ -136,8 +136,7 @@ class FloatingButtonService : Service() {
         // 点击按钮,弹出输入法选择框
         floatingButton.click {
             // 埋点事件上报
-            KeyboardHolder.getKeyboardService()?.getKeyboardViewModel()
-                ?.reportEvent(StatisticsPoint.EVENT_03003)
+            FlutterBridgeManager.reportEvent(StatisticsPoint.EVENT_03003)
             InputMethodPickerActivity.start(this)
         }
 

+ 0 - 15
plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/mvvm/repository/KeyboardRepository.kt

@@ -125,19 +125,4 @@ class KeyboardRepository : BaseRepository() {
             FlutterBridgeManager.chatPrologue(name, onSuccess, onFail)
         }
     }
-
-    /**
-     * 埋点事件上报
-     *
-     * @param eventId 事件Id
-     * @param params 参数
-     */
-    fun reportEvent(
-        eventId: String,
-        params: Map<String, Any>?,
-    ): Flow<BaseResp<EmptyResp>> = asFlow {
-        callback2Coroutines { onSuccess, onFail ->
-            FlutterBridgeManager.reportEvent(eventId, params, onSuccess, onFail)
-        }
-    }
 }

+ 0 - 23
plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/mvvm/viewmodel/KeyboardViewModel.kt

@@ -5,7 +5,6 @@ import androidx.lifecycle.MutableLiveData
 import com.atmob.keyboard_android.enums.HelpMode
 import com.atmob.keyboard_android.enums.KeyboardGlobalType
 import com.atmob.keyboard_android.enums.KeyboardType
-import com.atmob.keyboard_android.enums.StatisticsPoint
 import com.atmob.keyboard_android.mvvm.base.BaseViewModel
 import com.atmob.keyboard_android.mvvm.repository.KeyboardRepository
 import com.atmob.keyboard_android.util.LogUtil
@@ -492,28 +491,6 @@ class KeyboardViewModel : BaseViewModel() {
     }
 
     /**
-     * 埋点事件上报
-     *
-     * @param statisticsPoint 事件
-     * @param params 参数
-     */
-    fun reportEvent(
-        statisticsPoint: StatisticsPoint,
-        params: Map<String, Any>? = null,
-        onSuccess: (() -> Unit)? = null,
-        onFail: ((String) -> Unit)? = null
-    ) {
-        launch {
-            val resp = mKeyboardRepository.reportEvent(statisticsPoint.eventId, params).single()
-            if (ErrorHandler.isError(resp)) {
-                onFail?.invoke(resp.message)
-            } else {
-                onSuccess?.invoke()
-            }
-        }
-    }
-
-    /**
      * 获取键盘信息,如果没有,则返回第一个键盘信息
      */
     fun getCurrentKeyboardInfoWithDefault(

+ 5 - 4
plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/util/bridge/FlutterBridgeManager.kt

@@ -2,6 +2,7 @@ package com.atmob.keyboard_android.util.bridge
 
 import com.atmob.keyboard_android.constant.FlutterHostConstants
 import com.atmob.keyboard_android.enums.FlutterMethod
+import com.atmob.keyboard_android.enums.StatisticsPoint
 import com.atmob.keyboard_android.enums.host.HostMainTab
 import com.atmob.keyboard_android.util.FlutterEngineHolder
 import com.atmob.keyboard_android.util.FlutterPageLaunchUtil
@@ -250,15 +251,15 @@ object FlutterBridgeManager : IBridgeApi {
     }
 
     override fun reportEvent(
-        eventId: String,
+        statisticsPoint: StatisticsPoint,
         params: Map<String, Any>?,
-        onSuccess: (EmptyResp) -> Unit,
-        onFail: (errorCode: Int, errorMsg: String) -> Unit
+        onSuccess: ((EmptyResp) -> Unit)?,
+        onFail: ((errorCode: Int, errorMsg: String) -> Unit)?
     ) {
         mFlutterMethodCaller.callMethod(
             FlutterMethod.REPORT_EVENT.methodName,
             args = mapOf(
-                "eventId" to eventId,
+                "eventId" to statisticsPoint.eventId,
                 "params" to params,
             ),
             modelClazz = EmptyResp::class.java,

+ 6 - 5
plugins/keyboard_android/android/src/main/kotlin/com/atmob/keyboard_android/util/bridge/api/EventReportApi.kt

@@ -1,5 +1,6 @@
 package com.atmob.keyboard_android.util.bridge.api
 
+import com.atmob.keyboard_android.enums.StatisticsPoint
 import com.atmob.keyboard_android.util.bridge.model.base.EmptyResp
 
 /**
@@ -9,13 +10,13 @@ interface EventReportApi {
     /**
      * 埋点事件上报
      *
-     * @param eventId 事件Id
+     * @param statisticsPoint 事件枚举
      * @param params  参数
      */
     fun reportEvent(
-        eventId: String,
-        params: Map<String, Any>?,
-        onSuccess: (EmptyResp) -> Unit,
-        onFail: (errorCode: Int, errorMsg: String) -> Unit
+        statisticsPoint: StatisticsPoint,
+        params: Map<String, Any>? = null,
+        onSuccess: ((EmptyResp) -> Unit)? = null,
+        onFail: ((errorCode: Int, errorMsg: String) -> Unit)? = null
     )
 }