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 c09c64725a..6380870f46 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
@@ -15,6 +15,7 @@ import com.mogo.map.navi.IMogoNavi;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.map.IMogoMapService;
+import com.mogo.service.module.IMogoSearchManager;
import com.mogo.service.voice.IMogoVoiceListener;
import com.mogo.service.voice.IMogoVoiceManager;
import com.mogo.utils.ResourcesHelper;
@@ -29,150 +30,183 @@ import java.util.Map;
*
* 描述
*/
-public class MapPresenter extends Presenter< MapView > implements IMogoVoiceListener, IMogoVoiceCmdCallBack {
+public class MapPresenter extends Presenter
+ implements IMogoVoiceListener, IMogoVoiceCmdCallBack {
private static final String TAG = "MapPresenter";
private IMogoMapService mMogoMapService;
private IMogoVoiceManager mMogoVoiceManager;
+ private IMogoSearchManager mSearchManager;
- public MapPresenter( MapView view ) {
- super( view );
+ public MapPresenter(MapView view) {
+ super(view);
}
@Override
- public void onCreate( @NonNull LifecycleOwner owner ) {
- super.onCreate( owner );
- mMogoMapService = ( IMogoMapService ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICES_MAP ).navigation( getContext() );
- mMogoVoiceManager = ( IMogoVoiceManager ) ARouter.getInstance().build( MogoServicePaths.PATH_VOICE_MANAGER ).navigation( getContext() );
+ public void onCreate(@NonNull LifecycleOwner owner) {
+ super.onCreate(owner);
+ mMogoMapService = (IMogoMapService) ARouter.getInstance()
+ .build(MogoServicePaths.PATH_SERVICES_MAP)
+ .navigation(getContext());
+ mMogoVoiceManager = (IMogoVoiceManager) ARouter.getInstance()
+ .build(MogoServicePaths.PATH_VOICE_MANAGER)
+ .navigation(getContext());
+ mSearchManager = (IMogoSearchManager) ARouter.getInstance()
+ .build(MogoServicePaths.PATH_SEARCH_MANAGER)
+ .navigation(getContext());
registerVoiceCmd();
- IMogoNavi mogoNavi = mMogoMapService.getNavi( getContext() );
- mogoNavi.setCalculatePathDisplayBounds( new Rect(
- ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.dp_730 ) + WindowUtils.dip2px( getContext(), 80 ),
- ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.dp_120 ) + WindowUtils.dip2px( getContext(), 80 ),
- WindowUtils.dip2px( getContext(), 80 ),
- WindowUtils.dip2px( getContext(), 80 )
- ) );
+ IMogoNavi mogoNavi = mMogoMapService.getNavi(getContext());
+ mogoNavi.setCalculatePathDisplayBounds(new Rect(
+ ResourcesHelper.getDimensionPixelSize(getContext(), R.dimen.dp_730)
+ + WindowUtils.dip2px(getContext(), 80),
+ ResourcesHelper.getDimensionPixelSize(getContext(), R.dimen.dp_120)
+ + WindowUtils.dip2px(getContext(), 80),
+ WindowUtils.dip2px(getContext(), 80),
+ WindowUtils.dip2px(getContext(), 80)
+ ));
}
@Override
- public void onResume( @NonNull LifecycleOwner owner ) {
- super.onResume( owner );
+ public void onResume(@NonNull LifecycleOwner owner) {
+ super.onResume(owner);
registerVoiceCmd();
}
@Override
- public void onPause( @NonNull LifecycleOwner owner ) {
- super.onPause( owner );
+ public void onPause(@NonNull LifecycleOwner owner) {
+ super.onPause(owner);
unregisterVoiceCmd();
}
private void registerVoiceCmd() {
- if ( VoiceConstants.sVoiceCmds.isEmpty() ) {
- Logger.w( TAG, "no unwakeup words" );
+ if (VoiceConstants.sVoiceCmds.isEmpty()) {
+ Logger.w(TAG, "no unwakeup words");
return;
}
- for ( Map.Entry< String, String[] > entry : VoiceConstants.sVoiceCmds.entrySet() ) {
- mMogoVoiceManager.registerIntentListener( entry.getKey(), this );
- AIAssist.getInstance( getContext() ).registerUnWakeupCommand( entry.getKey(), entry.getValue(), this );
+ for (Map.Entry entry : VoiceConstants.sVoiceCmds.entrySet()) {
+ mMogoVoiceManager.registerIntentListener(entry.getKey(), this);
+ AIAssist.getInstance(getContext())
+ .registerUnWakeupCommand(entry.getKey(), entry.getValue(), this);
}
}
private void unregisterVoiceCmd() {
- if ( VoiceConstants.sVoiceCmds.isEmpty() ) {
- Logger.w( TAG, "no unwakeup words" );
+ if (VoiceConstants.sVoiceCmds.isEmpty()) {
+ Logger.w(TAG, "no unwakeup words");
return;
}
- for ( Map.Entry< String, String[] > entry : VoiceConstants.sVoiceCmds.entrySet() ) {
- mMogoVoiceManager.unregisterIntentListener( entry.getKey() );
- AIAssist.getInstance( getContext() ).unregisterUnWakeupCommand( entry.getKey(), this );
+ for (Map.Entry entry : VoiceConstants.sVoiceCmds.entrySet()) {
+ mMogoVoiceManager.unregisterIntentListener(entry.getKey());
+ AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(entry.getKey(), this);
}
}
@Override
- public void onIntentReceived( String command, Intent intent ) {
- if ( TextUtils.isEmpty( command ) ) {
+ public void onIntentReceived(String command, Intent intent) {
+ if (TextUtils.isEmpty(command)) {
return;
}
- onCmdSelected( command );
+ onCmdSelected(command);
}
@Override
- public void onCmdSelected( String cmd ) {
- switch ( cmd ) {
+ public void onCmdSelected(String cmd) {
+ switch (cmd) {
case VoiceConstants.CMD_MAP_TRAFFIC_MODE:
- mView.getUIController().setTrafficEnabled( true );
- AIAssist.getInstance( getContext() ).speakTTSVoice( "已打开", null );
+ mView.getUIController().setTrafficEnabled(true);
+ mSearchManager.showSearch();
+ AIAssist.getInstance(getContext()).speakTTSVoice("已打开", null);
break;
case VoiceConstants.CMD_MAP_UN_TRAFFIC_MODE:
- mView.getUIController().setTrafficEnabled( false );
- AIAssist.getInstance( getContext() ).speakTTSVoice( "已关闭", null );
+ mView.getUIController().setTrafficEnabled(false);
+ mSearchManager.showMain();
+ AIAssist.getInstance(getContext()).speakTTSVoice("已关闭", null);
break;
case VoiceConstants.CMD_MAP_ZOOM_IN:
- AIAssist.getInstance( getContext() ).speakTTSVoice( "已缩小", null );
- mView.getUIController().changeZoom( true );
+ AIAssist.getInstance(getContext()).speakTTSVoice("已缩小", null);
+ mView.getUIController().changeZoom(true);
break;
case VoiceConstants.CMD_MAP_ZOOM_OUT:
- AIAssist.getInstance( getContext() ).speakTTSVoice( "已放大", null );
- mView.getUIController().changeZoom( false );
+ AIAssist.getInstance(getContext()).speakTTSVoice("已放大", null);
+ mView.getUIController().changeZoom(false);
break;
case VoiceConstants.CMD_MAP_2D:
case VoiceConstants.CMD_MAP_NORTH_UP_MODE:
- mView.getUIController().changeMapMode( EnumMapUI.NorthUP_2D );
- AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
+ mView.getUIController().changeMapMode(EnumMapUI.NorthUP_2D);
+ AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
break;
case VoiceConstants.CMD_MAP_3D:
- mView.getUIController().changeMapMode( EnumMapUI.CarUp_3D );
- AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
+ mView.getUIController().changeMapMode(EnumMapUI.CarUp_3D);
+ AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
break;
case VoiceConstants.CMD_MAP_DAY_TIME_MODE:
- mView.getUIController().changeMapMode( EnumMapUI.Type_Light );
- AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
+ mView.getUIController().changeMapMode(EnumMapUI.Type_Light);
+ AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
break;
+
+ case VoiceConstants.CMD_MAP_GO_COMPANY:
+ mSearchManager.goCompany();
+ break;
+
+ case VoiceConstants.CMD_MAP_GO_HOME:
+ mSearchManager.goHome();
+ break;
+
+ case VoiceConstants.CMD_MAP_HISTORY:
+ mSearchManager.showSearch();
+ break;
+
+ case VoiceConstants.CMD_MAP_STOP_NAVI_MODE:
+ mSearchManager.showMain();
+ break;
+
case VoiceConstants.CMD_MAP_NIGHT_MODE:
- mView.getUIController().changeMapMode( EnumMapUI.Type_Night );
- AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
+ mView.getUIController().changeMapMode(EnumMapUI.Type_Night);
+ AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
break;
case VoiceConstants.CMD_MAP_AUTO_LIGHT_NIGHT_MODE:
- mView.getUIController().changeMapMode( EnumMapUI.Type_AUTO_LIGHT_Night );
- AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
+ mView.getUIController().changeMapMode(EnumMapUI.Type_AUTO_LIGHT_Night);
+ AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
break;
case VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE:
mView.getUIController().displayOverview();
- AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
+ AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
break;
case VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE:
mView.getUIController().recoverLockMode();
- AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
+ AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
break;
case VoiceConstants.CMD_MAP_CAR_UP_MODE:
- mView.getUIController().changeMapMode( EnumMapUI.CarUp_2D );
- AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
+ mView.getUIController().changeMapMode(EnumMapUI.CarUp_2D);
+ AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
+ break;
+ default:
break;
}
}
@Override
- public void onCmdAction( String speakText ) {
+ public void onCmdAction(String speakText) {
}
@Override
- public void onCmdCancel( String speakText ) {
+ public void onCmdCancel(String speakText) {
}
@Override
- public void onSpeakEnd( String speakText ) {
+ public void onSpeakEnd(String speakText) {
}
@Override
- public void onSpeakSelectTimeOut( String speakText ) {
+ public void onSpeakSelectTimeOut(String speakText) {
}
}
diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/VoiceConstants.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/VoiceConstants.java
index ddad9fed66..85b9d07410 100644
--- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/VoiceConstants.java
+++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/VoiceConstants.java
@@ -18,6 +18,26 @@ public class VoiceConstants {
public static final String CMD_MAP_ZOOM_IN = "com.ileja.navi.map.enlarge";
public static final String[] CMD_MAP_ZOOM_IN_TRIGGER_WORDS = {"放大地图"};
+ /**
+ * 回家
+ */
+ public static final String CMD_MAP_GO_HOME = "com.ileja.navi.map.go.home";
+ public static final String[] CMD_MAP_ZOOM_IN_GO_HOME = {"我要回家","导航回家","带我回家"};
+
+ /**
+ * 去公司
+ */
+ public static final String CMD_MAP_GO_COMPANY = "com.ileja.navi.map.go.company";
+ public static final String[] CMD_MAP_ZOOM_IN_GO_COMPANY = {"我要去公司","导航去公司","带我去公司"};
+
+ /**
+ * 导航历史记录
+ */
+ public static final String CMD_MAP_HISTORY = "com.ileja.navi.map.history";
+ public static final String[] CMD_MAP_HISTORY_TRIGGER_WORDS = {"查询导航历史记录"};
+
+
+
/**
* 缩小地图
*/
@@ -77,6 +97,15 @@ public class VoiceConstants {
public static final String CMD_MAP_CONTINUE_NAVI_MODE = "com.ileja.navi.route.continue";
public static final String[] CMD_MAP_CONTINUE_NAVI_MODE_MODE_TRIGGER_WORDS = {"继续导航"};
+
+ /**
+ * 停止导航
+ */
+ public static final String CMD_MAP_STOP_NAVI_MODE = "com.ileja.navi.route.stop";
+ public static final String[] CMD_MAP_STOP_NAVI_MODE_TRIGGER_WORDS = {"停止导航/结束导航/取消导航/放弃导航/退出导航/关闭导航"};
+
+
+
/**
* 车头朝上
*/
@@ -105,5 +134,9 @@ public class VoiceConstants {
sVoiceCmds.put( VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE, VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE_MODE_TRIGGER_WORDS );
sVoiceCmds.put( VoiceConstants.CMD_MAP_CAR_UP_MODE, VoiceConstants.CMD_MAP_CAR_UP_MODE_TRIGGER_WORDS );
sVoiceCmds.put( VoiceConstants.CMD_MAP_NORTH_UP_MODE, VoiceConstants.CMD_MAP_NORTH_UP_MODE_TRIGGER_WORDS );
+ sVoiceCmds.put( VoiceConstants.CMD_MAP_GO_HOME, VoiceConstants.CMD_MAP_ZOOM_IN_GO_HOME );
+ sVoiceCmds.put( VoiceConstants.CMD_MAP_GO_COMPANY, VoiceConstants.CMD_MAP_ZOOM_IN_GO_COMPANY );
+ sVoiceCmds.put( VoiceConstants.CMD_MAP_HISTORY, VoiceConstants.CMD_MAP_HISTORY_TRIGGER_WORDS );
+ sVoiceCmds.put( VoiceConstants.CMD_MAP_STOP_NAVI_MODE, VoiceConstants.CMD_MAP_STOP_NAVI_MODE_TRIGGER_WORDS );
}
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/MogoSearchManager.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/MogoSearchManager.java
new file mode 100644
index 0000000000..f51ca2c817
--- /dev/null
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/MogoSearchManager.java
@@ -0,0 +1,43 @@
+package com.mogo.module.navi.manager;
+
+import android.content.Context;
+import com.alibaba.android.arouter.facade.annotation.Route;
+import com.mogo.module.common.MogoModulePaths;
+import com.mogo.module.navi.constants.SearchServiceHolder;
+import com.mogo.module.navi.ui.search.SearchFragment;
+import com.mogo.service.MogoServicePaths;
+import com.mogo.service.fragmentmanager.FragmentDescriptor;
+import com.mogo.service.module.IMogoSearchManager;
+
+/**
+ * @author zyz
+ * 2020-01-13.
+ */
+@Route(path = MogoServicePaths.PATH_SEARCH_MANAGER)
+public class MogoSearchManager implements IMogoSearchManager {
+ @Override public void goHome() {
+ AddressManager.INSTANCE.goHome();
+ }
+
+ @Override public void goCompany() {
+ AddressManager.INSTANCE.goCompany();
+ }
+
+ @Override public void showSearch() {
+ SearchFragment searchFragment = new SearchFragment();
+ SearchServiceHolder.INSTANCE.getFragmentManager()
+ .push(new FragmentDescriptor.Builder().fragment(searchFragment)
+ .tag(MogoModulePaths.PATH_FRAGMENT_SEARCH)
+ .notifyMainModule(true)
+ .build());
+ }
+
+ @Override public void showMain() {
+ SearchServiceHolder.INSTANCE.getFragmentManager()
+ .clearAll();
+ }
+
+ @Override public void init(Context context) {
+
+ }
+}
diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java
index fd9885c83c..dc1dd00c70 100644
--- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java
+++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java
@@ -187,7 +187,7 @@ public class TanluCardViewFragment extends MvpFragment>
getViewLifecycleOwner().getLifecycle().addObserver(mPresenter);
EventBus.getDefault().register(this);
initInterface();
- mTanluModelData = new TanluModelData(getContext());
+ initModelData();
handleRoadLineMessage();
initMap();
initStrings();
@@ -196,6 +196,11 @@ public class TanluCardViewFragment extends MvpFragment>
// iMogoCardManager.switch2(TanluConstants.MODEL_NAME);
}
+ private void initModelData() {
+ if (mTanluModelData == null) {
+ mTanluModelData = new TanluModelData(getContext());
+ }
+ }
/**
* 初始化导航 TODO
@@ -219,9 +224,7 @@ public class TanluCardViewFragment extends MvpFragment>
@Override
public void onStartNavi() {
- if (mTanluModelData == null) {
- mTanluModelData = new TanluModelData(getContext());
- }
+ initModelData();
getNavigationLineData();
}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java b/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java
index 2b223bda3c..549adb10bb 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java
@@ -86,6 +86,10 @@ public class MogoServicePaths {
*/
public static final String PATH_ADDRESS_MANAGER = "/addressmanager/api";
+ /**
+ * 导航搜索模块管理
+ */
+ public static final String PATH_SEARCH_MANAGER = "/searchmanager/api";
/**
* 基础设置参数管理
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoSearchManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoSearchManager.java
new file mode 100644
index 0000000000..8d4f85b987
--- /dev/null
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoSearchManager.java
@@ -0,0 +1,15 @@
+package com.mogo.service.module;
+
+import com.alibaba.android.arouter.facade.template.IProvider;
+
+/**
+ * @author zyz
+ * 2020-01-12.
+ */
+public interface IMogoSearchManager extends IProvider {
+
+ void goHome();
+ void goCompany();
+ void showSearch();
+ void showMain();
+}