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 10026c2762..0f7ae2a71b 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,6 +32,15 @@ public class ExtensionsModuleConst {
public static final String CANCLE_SHARE = "com.zhidao.launcher.cancle.share";
public static final String CLOSE_PAGE = "com.zhidao.launcher.close.page";
public static final String CLOSE = "com.zhidao.launcher.close";
+
+ //唤醒指令
+ //分享路况/上报路况/上报拥堵/上报交通检查/上报封路 唤醒
+ public static final String UPLOAD_ROAD_CONDITION_AWAKEN = "com.zhidao.pathfinder.report.roadCondition";
+ //关闭分享框 唤醒
+ public static final String SHARE_DIALOG_CLOSE = "com.zhidao.share.close";
+ //我要分享
+ public static final String GO_TO_SHARE = "com.zhidao.share";
+
/*** 分享 结束 **/
@@ -58,4 +67,5 @@ public class ExtensionsModuleConst {
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 205666e137..0ef8d0a9b9 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
@@ -3,6 +3,8 @@ package com.mogo.module.extensions.entrance;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
+import android.text.TextUtils;
+import android.util.Log;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.mvp.Presenter;
@@ -12,8 +14,12 @@ 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.service.intent.IMogoIntentListener;
+import com.mogo.service.intent.IMogoIntentManager;
import com.mogo.utils.logger.Logger;
+import org.json.JSONObject;
+
import java.util.HashMap;
import java.util.Map;
@@ -27,13 +33,18 @@ public class EntrancePresenter extends Presenter {
private Context mContext;
private IMogoAnalytics mAnalytics;
+ private static final String TAG = "EntrancePresenter";
+ private IMogoIntentManager mogoIntentManager;
+
public EntrancePresenter(Context context, EntranceView view) {
super(view);
mContext = context;
mAnalytics = (IMogoAnalytics) ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_ANALYTICS).navigation(getContext());
+ mogoIntentManager = (IMogoIntentManager) ARouter.getInstance().build(MogoServicePaths.PATH_INTENT_MANAGER).navigation(getContext());
registerUnWake();
+ registerAwakeVoice();
}
private void registerUnWake() {
@@ -48,8 +59,6 @@ public class EntrancePresenter extends Presenter {
ExtensionsModuleConst.CMD_TRAFFIC_CHECK, mogoVoiceListener);
AIAssist.getInstance(mContext).registerUnWakeupCommand(ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE,
ExtensionsModuleConst.CMD_ROAD_CLOSURE, mogoVoiceListener);
-// AIAssist.getInstance(mContext).registerUnWakeupCommand(ExtensionsModuleConst.SHARE_OIL_PRICE,
-// ExtensionsModuleConst.CMD_SHARE_OIL_PRICE, mogoVoiceListener);
}
/**
@@ -67,8 +76,6 @@ public class EntrancePresenter extends Presenter {
uploadTrfficCheck();
} else if (cmd.equals(ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE)) { //上报封路
uploadRoadClosed();
-// } else if (cmd.equals(ExtensionsModuleConst.SHARE_OIL_PRICE)) { //分享油价
-// shareOilPrice();
}
}
@@ -89,6 +96,62 @@ public class EntrancePresenter extends Presenter {
}
};
+ /**
+ * 注册唤醒命令
+ */
+ private void registerAwakeVoice() {
+ mogoIntentManager.registerIntentListener(ExtensionsModuleConst.GO_TO_SHARE, mogoIntentListener);
+ mogoIntentManager.registerIntentListener(ExtensionsModuleConst.SHARE_DIALOG_CLOSE, mogoIntentListener);
+ mogoIntentManager.registerIntentListener(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION_AWAKEN, mogoIntentListener);
+
+ }
+
+ /**
+ * 唤醒语音
+ */
+ private IMogoIntentListener mogoIntentListener = new IMogoIntentListener() {
+ @Override
+ public void onIntentReceived(String intentStr, Intent intent) {
+ String data = intent.getStringExtra("data");
+ Logger.d(TAG, "唤醒 mogoIntentListener intentStr =" + intentStr + ">>data =" + data);
+ if (intentStr.equals(ExtensionsModuleConst.GO_TO_SHARE)) { //我要分享 --ok
+ String conditionData = intent.getStringExtra("data");
+ Log.d(TAG, "唤醒 mogoIntentListener intentStr =" + intentStr + ">>conditionData =" + conditionData);
+ try {
+ JSONObject jsonObject = new JSONObject(data);
+ String typeString = jsonObject.get("ob").toString();
+ Log.d(TAG, "mogoIntentListener specified typeString = " + typeString);
+ if (!TextUtils.isEmpty(typeString)) {
+ if (typeString.equals("封路")) {
+ Log.d(TAG, "mogoIntentListener 封路 -------> ");
+ uploadRoadClosed();
+ } else if (typeString.equals("油价")) {
+ Log.d(TAG, "mogoIntentListener 油价 -------> ");
+ shareOilPrice();
+ } else if (typeString.equals("交通检查")) {
+ Log.d(TAG, "mogoIntentListener 交通检查 -------> ");
+ uploadTrfficCheck();
+ }
+ } else {
+ ShareControl.getInstance(mContext).showDialog();
+ Log.d(TAG, "mogoIntentListener 我要分享 ----> ");
+ traceData("2");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } else if (intentStr.equals(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION_AWAKEN)) {
+ //分享路况/上报路况/上报拥堵 唤醒
+ Log.d(TAG, "mogoIntentListener 分享路况 唤醒 ----> ");
+ uploadRoadCondition();
+ } else if (intentStr.equals(ExtensionsModuleConst.SHARE_DIALOG_CLOSE)) { //关闭分享框 唤醒
+ ShareControl.getInstance(mContext).dismissDialog();
+ Log.d(TAG, "mogoIntentListener 关闭分享框 唤醒 ----> ");
+ }
+ }
+ };
+
+
private void uploadRoadCondition() {
traceTanluData("2");
sendShareReceiver("1");
@@ -97,13 +160,6 @@ public class EntrancePresenter extends Presenter {
ShareControl.getInstance(mContext).dismissDialog();
}
- private void shareOilPrice() {
- Intent intent = new Intent();
- intent.setData(Uri.parse("freshthing://com.zhidao.fresh.things/shareOilPrice"));
- mContext.startActivity(intent);
- traceTypeData("2");
- }
-
private void uploadTrfficCheck() {
sendShareReceiver("2");
Logger.d("EntrancePresenter", "mogoIntentListener 分享交通检查 ----> ");
@@ -118,6 +174,25 @@ public class EntrancePresenter extends Presenter {
ShareControl.getInstance(mContext).dismissDialog();
}
+ /**
+ * 分享/上报按钮点击 from=1 手动点击 from=2 语音打开
+ *
+ * @param from
+ */
+ private void traceData(String from) {
+ Map properties = new HashMap<>();
+ properties.put("from", from);
+ mAnalytics.track(ExtensionsModuleConst.LAUNCHER_SHARE_CLICK, properties);
+ }
+
+ private void shareOilPrice() {
+ Intent intent = new Intent();
+ intent.setData(Uri.parse("freshthing://com.zhidao.fresh.things/shareOilPrice"));
+ getContext().startActivity(intent);
+ traceTypeData("2");
+ ShareControl.getInstance(mContext).dismissDialog();
+ }
+
/**
* 发送广播 1拥堵,2交通检查,3封路
*/