diff --git a/.idea/misc.xml b/.idea/misc.xml index 2dc54c489f..707ee6e613 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsModuleConst.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsModuleConst.java index 0fdb0b1fb5..56ab9dc58f 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsModuleConst.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsModuleConst.java @@ -32,4 +32,24 @@ public class ExtensionsModuleConst { public static final String CLOSE_PAGE = "com.zhidao.launcher.close.page"; public static final String CLOSE = "com.zhidao.launcher.close"; + + + public static final String[] CMD_UPLOAD_BLOCK = {"上报拥堵"}; + public static final String[] CMD_TRAFFIC_CHECK = {"上报交通检查"}; + public static final String[] CMD_ROAD_CLOSURE = {"上报封路"}; + + //上报拥堵 + public static final String UPLOAD_ROAD_BLOCK = "command_upload_block"; + //上报交通检查 + public static final String UPLOAD_TRAFFIC_CHECK = "command_upload_traffic_check"; + //上报封路 + public static final String UPLOAD_ROAD_CLOSURE = "command_upload_road_closure"; + + //埋点 + //分享分类 1:路况,2:油价,3:交通检查,4:封路 + public static final String LAUNCHER_SHARE_TYPE = "Launcher_Share_type"; + //分享/上报按钮点击 from=1 手动点击 from=2 语音打开 + public static final String LAUNCHER_SHARE_CLICK = "Launcher_Share_Click"; + public static final String CARNET_USER_UPLOAD = "CarNet_user_upload"; + } diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java index 94d0616fbf..24c38b66b4 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java @@ -1,11 +1,20 @@ package com.mogo.module.extensions.entrance; import android.content.Context; +import android.content.Intent; + +import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.mvp.Presenter; import com.mogo.commons.voice.AIAssist; import com.mogo.commons.voice.IMogoVoiceCmdCallBack; import com.mogo.module.extensions.ExtensionsModuleConst; import com.mogo.module.share.ShareControl; +import com.mogo.service.MogoServicePaths; +import com.mogo.service.analytics.IMogoAnalytics; +import com.mogo.utils.logger.Logger; + +import java.util.HashMap; +import java.util.Map; /** * @author congtaowang @@ -16,10 +25,13 @@ import com.mogo.module.share.ShareControl; public class EntrancePresenter extends Presenter { private Context mContext; + private IMogoAnalytics mAnalytics; public EntrancePresenter(Context context, EntranceView view) { super(view); mContext = context; + mAnalytics = (IMogoAnalytics) ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_ANALYTICS).navigation(getContext()); + registerUnWake(); } @@ -28,6 +40,14 @@ public class EntrancePresenter extends Presenter { ExtensionsModuleConst.CMD_CLOSE, mogoVoiceListener); AIAssist.getInstance(mContext).registerUnWakeupCommand(ExtensionsModuleConst.CANCLE_SHARE, ExtensionsModuleConst.CMD_CANCLE_SHARE, mogoVoiceListener); + //探路相关上报 + AIAssist.getInstance(mContext).registerUnWakeupCommand(ExtensionsModuleConst.UPLOAD_ROAD_BLOCK, + ExtensionsModuleConst.CMD_UPLOAD_BLOCK, mogoVoiceListener); + AIAssist.getInstance(mContext).registerUnWakeupCommand(ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK, + ExtensionsModuleConst.CMD_TRAFFIC_CHECK, mogoVoiceListener); + AIAssist.getInstance(mContext).registerUnWakeupCommand(ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE, + ExtensionsModuleConst.CMD_ROAD_CLOSURE, mogoVoiceListener); + } /** @@ -39,6 +59,12 @@ public class EntrancePresenter extends Presenter { if (cmd.equals(ExtensionsModuleConst.CANCLE_SHARE) || cmd.equals(ExtensionsModuleConst.CLOSE)) { //取消分享,关闭页面 ShareControl.getInstance(mContext).dismissDialog(); + } else if (cmd.equals(ExtensionsModuleConst.UPLOAD_ROAD_BLOCK)) { //上报拥堵 + uploadRoadCondition(); + } else if (cmd.equals(ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK)) { //上报交通检查 + uploadTrfficCheck(); + } else if (cmd.equals(ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE)) { //上报封路 + uploadRoadClosed(); } } @@ -60,9 +86,73 @@ public class EntrancePresenter extends Presenter { }; + private void uploadRoadCondition() { + traceTanluData("2"); + sendShareReceiver("1"); + Logger.d("EntrancePresenter", "mogoIntentListener 上报路况 ----> "); + traceTypeData("1"); + ShareControl.getInstance(mContext).dismissDialog(); + } + + private void uploadTrfficCheck() { + sendShareReceiver("2"); + Logger.d("EntrancePresenter", "mogoIntentListener 分享交通检查 ----> "); + traceTypeData("3"); + ShareControl.getInstance(mContext).dismissDialog(); + } + + private void uploadRoadClosed() { + sendShareReceiver("3"); + Logger.d("EntrancePresenter", "mogoIntentListener 分享封路 ----> "); + traceTypeData("4"); + ShareControl.getInstance(mContext).dismissDialog(); + } + + /** + * 发送广播 1拥堵,2交通检查,3封路 + */ + private void sendShareReceiver(String type) { + Logger.d("EntrancePresenter", "TanluCardViewFragment sendShareReceiver ---->"); + Intent intent = new Intent(); + intent.setAction("com.zhidao.roadcondition.share"); + intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND); + intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); + intent.putExtra("type", type); + getContext().sendBroadcast(intent); + } + + /** + * type=1 路况 + *

+ * type=2 油价 + *

+ * type=3 交通检查 + *

+ * type=4 封路 + * + * @param type + */ + private void traceTypeData(String type) { + Map properties = new HashMap<>(); + properties.put("type", type); + mAnalytics.track(ExtensionsModuleConst.LAUNCHER_SHARE_TYPE, properties); + } + + private void traceTanluData(String type) { + Map properties = new HashMap<>(); + properties.put("type", type); + mAnalytics.track(ExtensionsModuleConst.CARNET_USER_UPLOAD, properties); + } + + private void unregisterUnWake() { AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.CANCLE_SHARE); AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.CLOSE); + + AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.UPLOAD_ROAD_BLOCK); + AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK); + AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE); + } }