diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java index 3f468d2373..2161c0bd73 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java @@ -1,6 +1,5 @@ package com.mogo.och.taxi.model; -import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_ALIAS_CODE_OCH_BUS_START_AUTOPILOT; import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_ALIAS_CODE_OCH_TAXI_START_AUTOPILOT; import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_ADAS; import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT; @@ -58,7 +57,7 @@ import com.mogo.och.taxi.constant.TaxiOrderStatusEnum; import com.mogo.och.taxi.constant.TaxiOrderTypeEnum; import com.mogo.och.taxi.network.TaxiServiceCallback; import com.mogo.och.taxi.network.TaxiServiceManager; -import com.mogo.och.taxi.utils.TaxiAnalyticsUtil; +import com.mogo.och.taxi.utils.TaxiAnalyticsManager; import com.mogo.och.taxi.utils.OrderUtil; import com.mogo.aicloud.services.socket.IMogoLifecycleListener; import com.mogo.service.intent.IMogoIntentListener; @@ -876,7 +875,7 @@ public class TaxiModel { CallerLogger.INSTANCE.d(M_TAXI + TAG, "start autopilot with parameter: %s", GsonUtil.jsonFromObject(parameters) + " ,startSiteName=" + mCurrentOCHOrder.startSiteAddr + " ,endSiteName=" + mCurrentOCHOrder.endSiteAddr); - TaxiAnalyticsUtil.triggerStartAutopilotEvent(isRestart, false, + TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(isRestart, false, mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo); if (DebugConfig.isDebug()) { @@ -1064,7 +1063,7 @@ public class TaxiModel { mPrevAPStatus = state; // 每个状态单独赋值,解决无订单时已经是2的状态导致的新订单来时无法进入此逻辑更新状态 updateOCHOrderStatus(TaxiOrderStatusEnum.OnTheWayToEnd); - TaxiAnalyticsUtil.triggerStartAutopilotEvent(false, true, + TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(false, true, mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo); if (FunctionBuildConfig.isDemoMode) { @@ -1076,7 +1075,7 @@ public class TaxiModel { && getCurOrderStatus() == TaxiOrderStatusEnum.OnTheWayToEnd && state != mPrevAPStatus) { // 接管后再次启动成功埋点 - TaxiAnalyticsUtil.triggerStartAutopilotEvent(true, true, + TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(true, true, mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo); } } else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE) { diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.java new file mode 100644 index 0000000000..076a90e3e8 --- /dev/null +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.java @@ -0,0 +1,78 @@ +package com.mogo.och.taxi.utils; + +import android.text.TextUtils; + +import com.mogo.cloud.passport.MoGoAiCloudClientConfig; +import com.mogo.commons.debug.DebugConfig; +import com.mogo.eagle.core.data.app.AppConfigInfo; +import com.mogo.eagle.core.function.call.analytics.AnalyticsManager; +import com.mogo.eagle.core.utilcode.util.DateTimeUtils; +import com.mogo.eagle.core.utilcode.util.UiThreadHandler; +import com.mogo.och.taxi.constant.TaxiConst; + +import java.util.HashMap; +import java.util.Map; + +/** + * OCH Taxi埋点工具 + * + * Created on 2022/3/24 + */ +public class TaxiAnalyticsManager { + + private static final class SingletonHolder { + private static final TaxiAnalyticsManager INSTANCE = new TaxiAnalyticsManager(); + } + + public static TaxiAnalyticsManager getInstance() { + return TaxiAnalyticsManager.SingletonHolder.INSTANCE; + } + + + + private String mStartAutopilotKey; + private Map mStartAutopilotParams = new HashMap<>(); + + private Runnable startAutopilotRunnable = () -> { + // 15s内未开启,上报失败埋点 + mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_START_RESULT, false); + AnalyticsManager.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); + }; + + /** + * 触发'开启自动驾驶'埋点流程 + * 开启自动驾驶,15s内成功则发送成功埋点,否则发送失败埋点 + * @param restart false(点击'开始服务'启动)/true(接管后点击'自动驾驶'按钮启动) + * @param send 是否直接发送埋点(15s内开启成功则直接发送成功埋点) + */ + public void triggerStartAutopilotEvent( + boolean restart, boolean send, String startName, String endName, String orderNo) { + mStartAutopilotKey = restart ? + TaxiConst.EVENT_KEY_RESTART_AUTOPILOT : TaxiConst.EVENT_KEY_START_SERVICE; + String sn = MoGoAiCloudClientConfig.getInstance().getSn(); + String plateNum = AppConfigInfo.INSTANCE.getPlateNumber(); + String dateTime = DateTimeUtils.getTimeText( + System.currentTimeMillis(), DateTimeUtils.yyyy_MM_dd_HH_mm_ss); + + mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_SN, sn); + mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_PLATE_NUM, TextUtils.isEmpty(plateNum) ? "" : plateNum); + mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_ENV_ONLINE, + DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE ? true : false); + mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_TIME, dateTime); + mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_START_NAME, startName); + mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_END_NAME, endName); + mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_ORDER_NUMBER, orderNo); + + if (send) { + // 开启成功,上报埋点 + if (startAutopilotRunnable != null && + UiThreadHandler.getsUiHandler().hasCallbacks(startAutopilotRunnable)) { + UiThreadHandler.removeCallbacks(startAutopilotRunnable); + } + mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_START_RESULT, true); + AnalyticsManager.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); + } else { + UiThreadHandler.postDelayed(startAutopilotRunnable, TaxiConst.LOOP_PERIOD_15S); + } + } +} diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsUtil.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsUtil.java deleted file mode 100644 index 248f4005e9..0000000000 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsUtil.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.mogo.och.taxi.utils; - -import android.text.TextUtils; - -import com.mogo.cloud.passport.MoGoAiCloudClientConfig; -import com.mogo.commons.debug.DebugConfig; -import com.mogo.eagle.core.data.app.AppConfigInfo; -import com.mogo.eagle.core.function.call.analytics.AnalyticsManager; -import com.mogo.eagle.core.utilcode.util.DateTimeUtils; -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.och.taxi.constant.TaxiConst; - -import java.util.HashMap; -import java.util.Map; - -/** - * OCH Taxi埋点工具 - * - * Created on 2022/3/24 - */ -public class TaxiAnalyticsUtil { - - /** - * 触发'开启自动驾驶'埋点流程 - * 开启自动驾驶,15s内成功则发送成功埋点,否则发送失败埋点 - * @param restart false(点击'开始服务'启动)/true(接管后点击'自动驾驶'按钮启动) - * @param send 是否直接发送埋点(15s内开启成功则直接发送成功埋点) - */ - public static void triggerStartAutopilotEvent( - boolean restart, boolean send, String startName, String endName, String orderNo) { - String key = restart ? - TaxiConst.EVENT_KEY_RESTART_AUTOPILOT : TaxiConst.EVENT_KEY_START_SERVICE; - String sn = MoGoAiCloudClientConfig.getInstance().getSn(); - String plateNum = AppConfigInfo.INSTANCE.getPlateNumber(); - String dateTime = DateTimeUtils.getTimeText( - System.currentTimeMillis(), DateTimeUtils.yyyy_MM_dd_HH_mm_ss); - - Map params = new HashMap<>(); - params.put(TaxiConst.EVENT_PARAM_SN, sn); - params.put(TaxiConst.EVENT_PARAM_PLATE_NUM, TextUtils.isEmpty(plateNum) ? "" : plateNum); - params.put(TaxiConst.EVENT_PARAM_ENV_ONLINE, - DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE ? true : false); - params.put(TaxiConst.EVENT_PARAM_TIME, dateTime); - params.put(TaxiConst.EVENT_PARAM_START_NAME, startName); - params.put(TaxiConst.EVENT_PARAM_END_NAME, endName); - params.put(TaxiConst.EVENT_PARAM_ORDER_NUMBER, orderNo); - - Runnable runnable = () -> { - // 15s内未开启,上报失败埋点 - params.put(TaxiConst.EVENT_PARAM_START_RESULT, false); - AnalyticsManager.INSTANCE.track(key, params); - }; - - if (send) { - // 开启成功,上报埋点 - if (runnable != null && UiThreadHandler.getsUiHandler().hasCallbacks(runnable)) { - UiThreadHandler.removeCallbacks(runnable); - } - params.put(TaxiConst.EVENT_PARAM_START_RESULT, true); - AnalyticsManager.INSTANCE.track(key, params); - } else { - UiThreadHandler.postDelayed(runnable, TaxiConst.LOOP_PERIOD_15S); - } - } -}