[6.2.0][埋点] 增加蘑方指令执行时自车相关数据

This commit is contained in:
renwj
2023-11-02 10:56:13 +08:00
parent f93d60c0c9
commit f3dbb76112
3 changed files with 121 additions and 48 deletions

View File

@@ -11,31 +11,51 @@ internal class MoFangAnalyticUtils {
// 魔方连接状态
const val EVENT_MOFANG_CONNECT = "event_mofang_connect"
const val EVENT_SUB_START_CONNECT = "event_sub_start_connect"
const val EVENT_SUB_CONNECT_SUCCESS = "event_sub_connect_success"
const val EVENT_SUB_START_DISCONNECT = "event_sub_start_disconnect"
const val EVENT_SUB_DISCONNECT_SUCCESS = "event_sub_disconnect_success"
const val EVENT_SUB_DISCONNECT_SLEEP = "event_sub_disconnect_sleep"
const val EVENT_SUB_BLUETOOTH_SETTING_REQ = "event_sub_ble_set_req"
const val EVENT_SUB_BLUETOOTH_OPEN_DENY = "event_sub_ble_open_deny"
const val EVENT_SUB_BLUETOOTH_OPEN_AGREE = "event_sub_ble_open_agree"
const val EVENT_SUB_IS_VALID = "event_sub_is_ipt_valid"
const val EVENT_SUB_IS_INVALID = "event_sub_is_ipt_invalid"
const val EVENT_MOFANG_CONNECT_PARAMS_START_CONNECT = "event_sub_start_connect"
const val EVENT_MOFANG_CONNECT_PARAMS_CONNECT_SUCCESS = "event_sub_connect_success"
const val EVENT_MOFANG_CONNECT_PARAMS_START_DISCONNECT = "event_sub_start_disconnect"
const val EVENT_MOFANG_CONNECT_PARAMS_DISCONNECT_SUCCESS = "event_sub_disconnect_success"
const val EVENT_MOFANG_CONNECT_PARAMS_DISCONNECT_SLEEP = "event_sub_disconnect_sleep"
const val EVENT_MOFANG_CONNECT_PARAMS_SETTING_REQ = "event_sub_ble_set_req"
const val EVENT_MOFANG_CONNECT_PARAMS_OPEN_DENY = "event_sub_ble_open_deny"
const val EVENT_MOFANG_CONNECT_PARAMS_OPEN_AGREE = "event_sub_ble_open_agree"
const val EVENT_MOFANG_CONNECT_PARAMS_IS_VALID = "event_sub_is_ipt_valid"
const val EVENT_MOFANG_CONNECT_PARAMS_IS_INVALID = "event_sub_is_ipt_invalid"
// 魔方电量
const val EVENT_BATTERY = "event_mofang_battery"
const val EVENT_BATTERY_VALUE = "battery"
const val EVENT_BATTERY_PARAMS_VALUE = "battery"
const val EVENT_BATTERY_PARAMS_DUR = "dur"
// 收到魔方按键指令
const val EVENT_INPUT = "event_mofang_input"
const val EVENT_INPUT_SUB_KEYCODE = "keycode"
const val EVENT_INPUT_SUB_TYPE = "input_type" // 1:单击2:长按, 3:组合键
const val EVENT_INPUT_PARAMS_KEYCODE = "keycode"
const val EVENT_INPUT_PARAMS_TYPE = "input_type" // 1:单击2:长按, 3:组合键
// 执行魔方按键指令
const val EVENT_EXECUTE = "event_mofang_execute"
const val EVENT_EXECUTE_SUB_KEYCODE = "keycode"
const val EVENT_EXECUTE_SUB_TYPE = "input_type" // 1:单击2:长按, 3:组合键
const val EVENT_EXECUTE_PARAMS_KEYCODE = "keycode"
const val EVENT_EXECUTE_PARAMS_TYPE = "input_type" // 1:单击2:长按, 3:组合键
const val EVENT_EXECUTE_PARAMS_LON = "lon" // 执行时自车经度
const val EVENT_EXECUTE_PARAMS_LAT = "lat" // 执行时自车纬度
const val EVENT_EXECUTE_PARAMS_SPEED = "speed" // 执行时自车速度
const val EVENT_EXECUTE_PARAMS_ACC = "acc" // 执行时自车加速度
const val EVENT_EXECUTE_PARAMS_HEADING = "head" // 执行时自车航向角
const val EVENT_EXECUTE_PARAMS_LINE_ID = "line_id" // 执行时的路线id
// 魔方按键指令回执
const val EVENT_EXECUTE_FEEDBACK = "event_mofang_feedback"
const val EVENT_EXECUTE_FEEDBACK_PARAMS_CODE = "code"
const val EVENT_EXECUTE_FEEDBACK_PARAMS_MSG = "msg"
const val EVENT_EXECUTE_FEEDBACK_PARAMS_LON = "lon" // 执行时自车经度
const val EVENT_EXECUTE_FEEDBACK_PARAMS_LAT = "lat" // 执行时自车纬度
const val EVENT_EXECUTE_FEEDBACK_PARAMS_SPEED = "speed" // 执行时自车速度
const val EVENT_EXECUTE_FEEDBACK_PARAMS_ACC = "acc" // 执行时自车加速度
const val EVENT_EXECUTE_FEEDBACK_PARAMS_HEADING = "head" // 执行时自车航向角
const val EVENT_EXECUTE_FEEDBACK_PARAMS_LINE_ID = "line_id" // 执行时的路线id
private val handler by lazy { HandlerThread("mofang-analytic-worker", Process.THREAD_PRIORITY_BACKGROUND).let { it.start(); Handler(it.looper) } }

View File

@@ -8,8 +8,14 @@ import com.mogo.eagle.core.function.call.autopilot.*
import com.mogo.eagle.core.network.utils.GsonUtil
import com.mogo.eagle.core.utilcode.mogo.*
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE_SUB_KEYCODE
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE_SUB_TYPE
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE_PARAMS_ACC
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE_PARAMS_HEADING
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE_PARAMS_KEYCODE
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE_PARAMS_LAT
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE_PARAMS_LINE_ID
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE_PARAMS_LON
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE_PARAMS_SPEED
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE_PARAMS_TYPE
internal class MoFangCommandExecutor {
@@ -35,6 +41,7 @@ internal class MoFangCommandExecutor {
private val handlerCallback = Handler.Callback { msg ->
val message = whatToString(msg.what, ", msg_info:[obj:${msg.obj}, arg1: ${msg.arg1}, arg2: ${msg.arg2}]")
linkedLog?.record(mapOf("收到:${System.currentTimeMillis()}" to "$message"))
val location = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()
when(msg.what) {
MSG_WHAT_KEY_CODE_A, MSG_WHAT_KEY_CODE_B, MSG_WHAT_KEY_CODE_AB, MSG_WHAT_KEY_CODE_AL -> {
var send = false
@@ -42,7 +49,16 @@ internal class MoFangCommandExecutor {
val acc = msg.obj as? Double
if (acc != null) {
send = acc != 0.0
MoFangAnalyticUtils.track(EVENT_EXECUTE, mutableMapOf(EVENT_EXECUTE_SUB_KEYCODE to (getKeycodeByWhat(msg.what) ?: ""), EVENT_EXECUTE_SUB_TYPE to (getInputTypeByWhat(msg.what) ?: "")))
MoFangAnalyticUtils.track(EVENT_EXECUTE, mutableMapOf(
EVENT_EXECUTE_PARAMS_KEYCODE to (getKeycodeByWhat(msg.what) ?: ""),
EVENT_EXECUTE_PARAMS_TYPE to (getInputTypeByWhat(msg.what) ?: ""),
EVENT_EXECUTE_PARAMS_LON to location.longitude,
EVENT_EXECUTE_PARAMS_LAT to location.latitude,
EVENT_EXECUTE_PARAMS_SPEED to location.gnssSpeed,
EVENT_EXECUTE_PARAMS_ACC to location.acceleration,
EVENT_EXECUTE_PARAMS_HEADING to location.heading,
EVENT_EXECUTE_PARAMS_LINE_ID to CallerAutoPilotStatusListenerManager.getLineId()
))
linkedLog?.record(mapOf("执行:${System.currentTimeMillis()}" to "$message, $acc"))
CallerAutoPilotControlManager.sendOperatorSetAcceleratedSpeed(acc)
}
@@ -61,7 +77,16 @@ internal class MoFangCommandExecutor {
return@Callback true
}
val isLeft = msg.arg1 == -1
MoFangAnalyticUtils.track(EVENT_EXECUTE, mutableMapOf(EVENT_EXECUTE_SUB_KEYCODE to (getKeycodeByWhat(msg.what) ?: ""), EVENT_EXECUTE_SUB_TYPE to (getInputTypeByWhat(msg.what) ?: "")))
MoFangAnalyticUtils.track(EVENT_EXECUTE, mutableMapOf(
EVENT_EXECUTE_PARAMS_KEYCODE to (getKeycodeByWhat(msg.what) ?: ""),
EVENT_EXECUTE_PARAMS_TYPE to (getInputTypeByWhat(msg.what) ?: ""),
EVENT_EXECUTE_PARAMS_LON to location.longitude,
EVENT_EXECUTE_PARAMS_LAT to location.latitude,
EVENT_EXECUTE_PARAMS_SPEED to location.gnssSpeed,
EVENT_EXECUTE_PARAMS_ACC to location.acceleration,
EVENT_EXECUTE_PARAMS_HEADING to location.heading,
EVENT_EXECUTE_PARAMS_LINE_ID to CallerAutoPilotStatusListenerManager.getLineId()
))
if (isLeft) {
linkedLog?.record(mapOf("执行:${System.currentTimeMillis()}" to "$message"))
Log.d(TAG, "--- 左变道执行了 ----")
@@ -81,7 +106,16 @@ internal class MoFangCommandExecutor {
val autoPilotStatusInfo = CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo()
val parameters = autoPilotStatusInfo.autopilotControlParameters
val json = GsonUtil.jsonFromObject(parameters)
MoFangAnalyticUtils.track(EVENT_EXECUTE, mutableMapOf(EVENT_EXECUTE_SUB_KEYCODE to (getKeycodeByWhat(msg.what) ?: ""), EVENT_EXECUTE_SUB_TYPE to (getInputTypeByWhat(msg.what) ?: "")))
MoFangAnalyticUtils.track(EVENT_EXECUTE, mutableMapOf(
EVENT_EXECUTE_PARAMS_KEYCODE to (getKeycodeByWhat(msg.what) ?: ""),
EVENT_EXECUTE_PARAMS_TYPE to (getInputTypeByWhat(msg.what) ?: ""),
EVENT_EXECUTE_PARAMS_LON to location.longitude,
EVENT_EXECUTE_PARAMS_LAT to location.latitude,
EVENT_EXECUTE_PARAMS_SPEED to location.gnssSpeed,
EVENT_EXECUTE_PARAMS_ACC to location.acceleration,
EVENT_EXECUTE_PARAMS_HEADING to location.heading,
EVENT_EXECUTE_PARAMS_LINE_ID to CallerAutoPilotStatusListenerManager.getLineId()
))
linkedLog?.record(mapOf("执行:${System.currentTimeMillis()}" to "$message, $json"))
Log.d(TAG, "--- 启动自驾 ----入参:$json")
//清扫车有FSM模块魔方启动自驾时需要将Source修改为魔方以便telamatics做区分并在转发时增加flag标记
@@ -103,7 +137,16 @@ internal class MoFangCommandExecutor {
if (value != null && value != 0.0) {
send = value != 2.0
Log.d(TAG, "--- 长按鸣笛 ---入参:$value")
MoFangAnalyticUtils.track(EVENT_EXECUTE, mutableMapOf(EVENT_EXECUTE_SUB_KEYCODE to (getKeycodeByWhat(msg.what) ?: ""), EVENT_EXECUTE_SUB_TYPE to (getInputTypeByWhat(msg.what) ?: "")))
MoFangAnalyticUtils.track(EVENT_EXECUTE, mutableMapOf(
EVENT_EXECUTE_PARAMS_KEYCODE to (getKeycodeByWhat(msg.what) ?: ""),
EVENT_EXECUTE_PARAMS_TYPE to (getInputTypeByWhat(msg.what) ?: ""),
EVENT_EXECUTE_PARAMS_LON to location.longitude,
EVENT_EXECUTE_PARAMS_LAT to location.latitude,
EVENT_EXECUTE_PARAMS_SPEED to location.gnssSpeed,
EVENT_EXECUTE_PARAMS_ACC to location.acceleration,
EVENT_EXECUTE_PARAMS_HEADING to location.heading,
EVENT_EXECUTE_PARAMS_LINE_ID to CallerAutoPilotStatusListenerManager.getLineId()
))
linkedLog?.record(mapOf("执行:${System.currentTimeMillis()}" to "$message, $value"))
CallerAutoPilotControlManager.sendOperatorSetHorn(value)
}

View File

@@ -5,6 +5,7 @@ import android.app.*
import android.bluetooth.*
import android.graphics.*
import android.graphics.drawable.ColorDrawable
import android.os.SystemClock
import android.util.*
import android.view.*
import android.view.Window.Callback
@@ -23,21 +24,22 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
import com.mogo.eagle.core.utilcode.util.*
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_BATTERY
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_BATTERY_VALUE
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_BATTERY_PARAMS_DUR
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_BATTERY_PARAMS_VALUE
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_INPUT
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_INPUT_SUB_KEYCODE
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_INPUT_SUB_TYPE
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_INPUT_PARAMS_KEYCODE
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_INPUT_PARAMS_TYPE
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_MOFANG_CONNECT
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_SUB_BLUETOOTH_OPEN_AGREE
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_SUB_BLUETOOTH_OPEN_DENY
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_SUB_BLUETOOTH_SETTING_REQ
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_SUB_CONNECT_SUCCESS
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_SUB_DISCONNECT_SLEEP
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_SUB_DISCONNECT_SUCCESS
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_SUB_IS_INVALID
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_SUB_IS_VALID
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_SUB_START_CONNECT
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_SUB_START_DISCONNECT
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_MOFANG_CONNECT_PARAMS_OPEN_AGREE
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_MOFANG_CONNECT_PARAMS_OPEN_DENY
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_MOFANG_CONNECT_PARAMS_SETTING_REQ
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_MOFANG_CONNECT_PARAMS_CONNECT_SUCCESS
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_MOFANG_CONNECT_PARAMS_DISCONNECT_SLEEP
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_MOFANG_CONNECT_PARAMS_DISCONNECT_SUCCESS
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_MOFANG_CONNECT_PARAMS_IS_INVALID
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_MOFANG_CONNECT_PARAMS_IS_VALID
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_MOFANG_CONNECT_PARAMS_START_CONNECT
import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_MOFANG_CONNECT_PARAMS_START_DISCONNECT
import kotlinx.coroutines.*
import me.jessyan.autosize.utils.AutoSizeUtils
import java.util.concurrent.ConcurrentHashMap
@@ -63,6 +65,8 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen
private var job: Job? = null
private var batteryTime : Long = -1
override fun enableTest(enable: Boolean) {
isTest.set(enable)
SPUtils.getInstance().put(SP_KEY_TEST_ENABLE, enable)
@@ -85,7 +89,7 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen
}
override fun onBluetoothStartConnect() {
MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_SUB_START_CONNECT to "${System.currentTimeMillis()}"))
MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_MOFANG_CONNECT_PARAMS_START_CONNECT to "${System.currentTimeMillis()}"))
linkedLog.record(mapOf("connect" to "real-start"))
}
@@ -102,7 +106,7 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen
override fun disconnect() {
try {
MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_SUB_START_DISCONNECT to "${System.currentTimeMillis()}"))
MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_MOFANG_CONNECT_PARAMS_START_DISCONNECT to "${System.currentTimeMillis()}"))
linkedLog.record(mapOf("disconnect" to "start"))
MoFangManager.disconnect()
linkedLog.record(mapOf("disconnect" to "success"))
@@ -142,7 +146,13 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen
override fun onBluetoothBatteryChanged(battery: Int) {
linkedLog.record(mapOf("callback" to "onBluetoothBatteryChanged:$battery"))
MoFangAnalyticUtils.track(EVENT_BATTERY, mutableMapOf(EVENT_BATTERY_VALUE to "$battery"))
val now = SystemClock.elapsedRealtime()
val dur = if (batteryTime < 0) 0 else (now - batteryTime)
batteryTime = now
MoFangAnalyticUtils.track(EVENT_BATTERY, mutableMapOf(
EVENT_BATTERY_PARAMS_VALUE to "$battery",
EVENT_BATTERY_PARAMS_DUR to dur
))
UiThreadHandler.post {
listeners.values.forEach {
it.onMoFangBatteryChanged(battery)
@@ -157,7 +167,7 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen
} catch (t: Throwable) {
t.printStackTrace()
}
MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_SUB_CONNECT_SUCCESS to "${System.currentTimeMillis()}"))
MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_MOFANG_CONNECT_PARAMS_CONNECT_SUCCESS to "${System.currentTimeMillis()}"))
UiThreadHandler.post {
listeners.values.forEach {
it.onMoFangConnected()
@@ -172,7 +182,7 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen
} catch (t: Throwable) {
t.printStackTrace()
}
MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_SUB_DISCONNECT_SUCCESS to "${System.currentTimeMillis()}"))
MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_MOFANG_CONNECT_PARAMS_DISCONNECT_SUCCESS to "${System.currentTimeMillis()}"))
UiThreadHandler.post {
listeners.values.forEach {
it.onMoFangDisconnected()
@@ -186,7 +196,7 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen
showToast("[$keycodesText]")
}
try {
MoFangAnalyticUtils.track(EVENT_INPUT, mutableMapOf(EVENT_INPUT_SUB_KEYCODE to keycodesText, EVENT_INPUT_SUB_TYPE to "3"))
MoFangAnalyticUtils.track(EVENT_INPUT, mutableMapOf(EVENT_INPUT_PARAMS_KEYCODE to keycodesText, EVENT_INPUT_PARAMS_TYPE to "3"))
linkedLog.record(mapOf("command" to "combine_clicked: $keycodesText"))
executor.handleCombineClick(*keyCodes)
} finally {
@@ -202,7 +212,7 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen
showToast("[$key$key]")
}
try {
MoFangAnalyticUtils.track(EVENT_INPUT, mutableMapOf(EVENT_INPUT_SUB_KEYCODE to keyCode.toString(), EVENT_INPUT_SUB_TYPE to "2"))
MoFangAnalyticUtils.track(EVENT_INPUT, mutableMapOf(EVENT_INPUT_PARAMS_KEYCODE to keyCode.toString(), EVENT_INPUT_PARAMS_TYPE to "2"))
linkedLog.record(mapOf("command" to "long_clicked: ${ KeyEvent.keyCodeToString(keyCode) }"))
executor.handleLongClick(keyCode)
} finally {
@@ -220,7 +230,7 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen
showToast("[${keycodeText.replace("KEYCODE_", "", true)}]")
}
try {
MoFangAnalyticUtils.track(EVENT_INPUT, mutableMapOf(EVENT_INPUT_SUB_KEYCODE to keyCode.toString(), EVENT_INPUT_SUB_TYPE to "1"))
MoFangAnalyticUtils.track(EVENT_INPUT, mutableMapOf(EVENT_INPUT_PARAMS_KEYCODE to keyCode.toString(), EVENT_INPUT_PARAMS_TYPE to "1"))
linkedLog.record(mapOf("command" to "clicked: $keycodeText"))
executor.handleSingleClick(keyCode)
} finally {
@@ -269,7 +279,7 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen
override fun onBluetoothKeyboardInputInvalid() {
CallerLogger.d(M_DEVA+TAG, "--- onBluetoothKeyboardInputInvalid ---")
MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_SUB_IS_INVALID to "${System.currentTimeMillis()}"))
MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_MOFANG_CONNECT_PARAMS_IS_INVALID to "${System.currentTimeMillis()}"))
linkedLog.record(mapOf("callback" to "onBluetoothKeyboardInputInvalid"))
UiThreadHandler.post {
listeners.values.forEach {
@@ -280,25 +290,25 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen
override fun onBluetoothKeyboardInputValid() {
CallerLogger.d(M_DEVA+TAG, "--- onBluetoothKeyboardInputValid ---")
MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_SUB_IS_VALID to "${System.currentTimeMillis()}"))
MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_MOFANG_CONNECT_PARAMS_IS_VALID to "${System.currentTimeMillis()}"))
linkedLog.record(mapOf("callback" to "onBluetoothKeyboardInputValid"))
}
override fun onBluetoothOpenAgreed() {
CallerLogger.d(M_DEVA+TAG, "--- onBluetoothOpenAgreed ---")
MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_SUB_BLUETOOTH_OPEN_AGREE to "${System.currentTimeMillis()}"))
MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_MOFANG_CONNECT_PARAMS_OPEN_AGREE to "${System.currentTimeMillis()}"))
linkedLog.record(mapOf("callback" to "onBluetoothOpenAgreed"))
}
override fun onBluetoothOpenDenied() {
CallerLogger.d(M_DEVA+TAG, "--- onBluetoothOpenDenied ---")
MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_SUB_BLUETOOTH_OPEN_DENY to "${System.currentTimeMillis()}"))
MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_MOFANG_CONNECT_PARAMS_OPEN_DENY to "${System.currentTimeMillis()}"))
linkedLog.record(mapOf("callback" to "onBluetoothOpenDenied"))
}
override fun onBluetoothSettingRequest() {
CallerLogger.d(M_DEVA+TAG, "--- onBluetoothSettingRequest ---")
MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_SUB_BLUETOOTH_SETTING_REQ to "${System.currentTimeMillis()}"))
MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_MOFANG_CONNECT_PARAMS_SETTING_REQ to "${System.currentTimeMillis()}"))
linkedLog.record(mapOf("callback" to "onBluetoothSettingRequest"))
UiThreadHandler.post {
Toast.makeText(Utils.getApp(), "检测到魔方未正确连接,请在系统蓝牙设置页面,找到魔方并配对连接...", Toast.LENGTH_SHORT).show()
@@ -307,7 +317,7 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen
override fun onBluetoothKeyboardAbnormalDisconnected(status: Int) {
CallerLogger.d(M_DEVA+TAG, "--- onBluetoothKeyboardAbnormalDisconnected(status: $status) ---")
MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_SUB_DISCONNECT_SLEEP to "${System.currentTimeMillis()}"))
MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_MOFANG_CONNECT_PARAMS_DISCONNECT_SLEEP to "${System.currentTimeMillis()}"))
linkedLog.record(mapOf("callback" to "onBluetoothKeyboardAbnormalDisconnected:$status"))
}
}