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封路
*/
diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java
index 2425716220..f821dda80e 100644
--- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java
+++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java
@@ -292,7 +292,7 @@ public class MapPresenter extends Presenter implements
case VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE_UN_WAKEUP:
AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
case VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE:
- mView.getUIController().displayOverview();
+ //mView.getUIController().displayOverview();
break;
case VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE_UN_WAKEUP:
AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt
index 2d2718653b..4be59aa3a1 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt
@@ -56,14 +56,18 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa
private val TAG: String = "CategorySearchFragment"
private var addMarkers: List? = null
+ var arrayList = ArrayList()
private lateinit var cmds: ArrayList
override fun renderSearchPoiResult(datums: List?) {
mAdapter.setDatas(datums)
cv_search_result.visibility = View.VISIBLE
pb_path.visibility = View.GONE
- var arrayList = ArrayList()
- AIAssist.getInstance(context).speakTTSVoice(String.format("搜索到%d个位置,请选择",datums?.size))
+ AIAssist.getInstance(context)
+ .speakTTSVoice(String.format("搜索到%d个位置,请选择", datums?.size))
+
+ arrayList.clear()
+
for (index in 0 until datums!!.size) {
var decodeResource =
BitmapFactory.decodeResource(
@@ -83,18 +87,42 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa
.longitude(datums[index].point?.lng ?: 0.0)
arrayList.add(options)
- var int2String = StringUtils.int2String(index)
+ var int2String = StringUtils.int2String(index+1)
AIAssist.getInstance(context)
.registerUnWakeupCommand(
"position" + index, arrayOf("第" + int2String + "个", "第" + int2String + "条"), this
)
cmds.add("position" + index)
+
}
addMarkers = SearchServiceHolder.getMarkerManger()
.addMarkers(TAG, arrayList, true)
moveMapToRight()
}
+ private fun registerVoice() {
+
+ for (index in 0 until cmds.size) {
+ var int2String = StringUtils.int2String(index+1)
+ AIAssist.getInstance(context)
+ .registerUnWakeupCommand(
+ "position" + index, arrayOf("第" + int2String + "个", "第" + int2String + "条"), this
+ )
+ }
+
+ }
+
+ override fun onHiddenChanged(hidden: Boolean) {
+ super.onHiddenChanged(hidden)
+ if (!hidden) {
+ addMarkers = SearchServiceHolder.getMarkerManger()
+ .addMarkers(TAG, arrayList, true)
+ registerVoice()
+ } else {
+ unRegisterVoice()
+ }
+ }
+
private lateinit var mAdapter: SearchCategoryAdapter
private lateinit var mSearchPresenter: CategoryPresenter
@@ -107,7 +135,7 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa
)
mSearchPresenter = CategoryPresenter(this)
lifecycle.addObserver(mSearchPresenter)
- cmds=ArrayList()
+ cmds = ArrayList()
}
override fun getLayoutId(): Int {
@@ -159,6 +187,10 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa
?.setIcon(getMarkerIcon(mAdapter.lastPosition))
addMarkers?.get(mAdapter.current)
?.setIcon(getMarkerIcon(mAdapter.current))
+ arrayList.get(mAdapter.lastPosition)
+ .icon(getMarkerIcon(mAdapter.lastPosition))
+ arrayList.get(mAdapter.current)
+ .icon(getMarkerIcon(mAdapter.current))
}
private fun getMarkerIcon(index: Int): Bitmap {
@@ -187,8 +219,13 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa
SearchServiceHolder.getMarkerManger()
.removeMarkers(TAG)
+ unRegisterVoice()
+ }
+
+ private fun unRegisterVoice() {
cmds.forEach {
- AIAssist.getInstance(context).unregisterUnWakeupCommand(it)
+ AIAssist.getInstance(context)
+ .unregisterUnWakeupCommand(it)
}
}
diff --git a/modules/mogo-module-service/src/main/res/layout/view_map_marker.xml b/modules/mogo-module-service/src/main/res/layout/view_map_marker.xml
index e2c6b38572..dd210ad9b9 100644
--- a/modules/mogo-module-service/src/main/res/layout/view_map_marker.xml
+++ b/modules/mogo-module-service/src/main/res/layout/view_map_marker.xml
@@ -29,7 +29,7 @@
android:layout_width="@dimen/dp_76"
android:layout_height="@dimen/dp_76"
android:layout_gravity="center"
- android:layout_marginTop="@dimen/dp_6"
+ android:layout_marginTop="@dimen/dp_8"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
@@ -43,7 +43,7 @@
android:layout_width="@dimen/dp_60"
android:layout_height="@dimen/dp_60"
android:layout_gravity="center"
- android:layout_marginTop="@dimen/dp_12"
+ android:layout_marginTop="@dimen/dp_16"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/fragmentmanager/FragmentStack.java b/services/mogo-service/src/main/java/com/mogo/service/impl/fragmentmanager/FragmentStack.java
index 11b116dec0..0c602eea1d 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/fragmentmanager/FragmentStack.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/fragmentmanager/FragmentStack.java
@@ -78,7 +78,7 @@ public class FragmentStack {
if ( descriptor.hasTransition() ) {
mFragmentTransaction.setTransition( FragmentTransaction.TRANSIT_FRAGMENT_OPEN );
}
- mFragmentTransaction.addToBackStack( null );
+ //mFragmentTransaction.addToBackStack( null );
mFragmentTransaction.commitAllowingStateLoss();
if ( descriptor.hasTransition() ) {
mFragmentManager.executePendingTransactions();