From 26517c1054cd67889eb0a0ab7e1e275b708e40ee Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Tue, 14 Jan 2020 20:08:00 +0800 Subject: [PATCH] otp --- .../module/apps/AppsFragmentProvider.java | 10 +++ .../extensions/ExtensionsModuleProvider.java | 10 +++ .../extensions/entrance/EntranceProvider.java | 10 +++ .../com/mogo/module/main/MainActivity.java | 2 +- .../mogo/module/map/MapFragmentProvider.java | 10 +++ .../com/mogo/module/map/MapPresenter.java | 82 +++++++++---------- .../com/mogo/module/map/VoiceConstants.java | 29 ++++++- .../navi/ui/search/ChoosePathFragment.kt | 9 +- .../ui/search/SearchFragmentProvider.java | 10 +++ .../module/service/MogoServiceProvider.java | 12 ++- .../tanlu/fragment/TanluCardViewProvider.java | 10 +++ .../service/module/IMogoModuleProvider.java | 14 ++++ 12 files changed, 155 insertions(+), 53 deletions(-) diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragmentProvider.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragmentProvider.java index 0a83e3b9d6..054707c758 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragmentProvider.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragmentProvider.java @@ -81,4 +81,14 @@ public class AppsFragmentProvider implements IMogoModuleProvider { public IMogoMarkerClickListener getMarkerClickListener() { return null; } + + @Override + public String getAppPackage() { + return null; + } + + @Override + public String getAppName() { + return null; + } } diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsModuleProvider.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsModuleProvider.java index 991ef5d737..2484719833 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsModuleProvider.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsModuleProvider.java @@ -77,4 +77,14 @@ public class ExtensionsModuleProvider implements IMogoModuleProvider { public IMogoMarkerClickListener getMarkerClickListener() { return null; } + + @Override + public String getAppPackage() { + return null; + } + + @Override + public String getAppName() { + return null; + } } diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceProvider.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceProvider.java index 353ea158b7..b3bbc3bed7 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceProvider.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceProvider.java @@ -80,4 +80,14 @@ public class EntranceProvider implements IMogoModuleProvider { public IMogoMarkerClickListener getMarkerClickListener() { return null; } + + @Override + public String getAppPackage() { + return null; + } + + @Override + public String getAppName() { + return null; + } } diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java index d3e97d01d1..bd64a408c0 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java @@ -88,7 +88,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme try { mCurrentPosition = position; mMogoModuleHandler.setEnable( mCardModulesAdapter.getProvider( position ).getModuleName() ); - mShadowFrame.setVisibility( View.VISIBLE ); + mMogoCardManager.invoke( position, mMogoModuleHandler.getCurrentModuleName() ); } catch ( Exception e ) { e.printStackTrace(); } diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapFragmentProvider.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapFragmentProvider.java index 86038c722e..c817646cc3 100644 --- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapFragmentProvider.java +++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapFragmentProvider.java @@ -81,4 +81,14 @@ public class MapFragmentProvider implements IMogoModuleProvider { public IMogoMarkerClickListener getMarkerClickListener() { return null; } + + @Override + public String getAppPackage() { + return null; + } + + @Override + public String getAppName() { + return null; + } } 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 01d71bc90c..a5294ac6d5 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 @@ -58,8 +58,6 @@ public class MapPresenter extends Presenter< MapView > .build( MogoServicePaths.PATH_SEARCH_MANAGER ) .navigation( getContext() ); - registerVoiceCmd(); - IMogoNavi mogoNavi = mMogoMapService.getNavi( getContext() ); mogoNavi.setCalculatePathDisplayBounds( new Rect( ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.dp_730 ) @@ -84,26 +82,24 @@ public class MapPresenter extends Presenter< MapView > } private void registerVoiceCmd() { - if ( VoiceConstants.sVoiceCmds.isEmpty() ) { - Logger.w( TAG, "no unwakeup words" ); - return; - } for ( Map.Entry< String, String[] > entry : VoiceConstants.sVoiceCmds.entrySet() ) { - mMogoIntentManager.registerIntentListener( entry.getKey(), this ); -// AIAssist.getInstance( getContext() ).registerUnWakeupCommand( entry.getKey(), entry.getValue(), this ); + AIAssist.getInstance( getContext() ).registerUnWakeupCommand( entry.getKey(), entry.getValue(), this ); + } + + for ( String cmd : VoiceConstants.sCmds ) { + mMogoIntentManager.registerIntentListener( cmd, this ); } } private void unregisterVoiceCmd() { - if ( VoiceConstants.sVoiceCmds.isEmpty() ) { - Logger.w( TAG, "no unwakeup words" ); - return; - } for ( Map.Entry< String, String[] > entry : VoiceConstants.sVoiceCmds.entrySet() ) { - mMogoIntentManager.unregisterIntentListener( entry.getKey() ); -// AIAssist.getInstance( getContext() ).unregisterUnWakeupCommand( entry.getKey(), this ); + AIAssist.getInstance( getContext() ).unregisterUnWakeupCommand( entry.getKey(), this ); + } + + for ( String cmd : VoiceConstants.sCmds ) { + mMogoIntentManager.unregisterIntentListener( cmd ); } } @@ -118,92 +114,90 @@ public class MapPresenter extends Presenter< MapView > @Override public void onCmdSelected( String cmd ) { switch ( cmd ) { - case VoiceConstants.CMD_MAP_TRAFFIC_MODE: case VoiceConstants.CMD_MAP_TRAFFIC_MODE_UN_WAKEUP: + case VoiceConstants.CMD_MAP_TRAFFIC_MODE: + AIAssist.getInstance( getContext() ).speakTTSVoice( "已打开", null ); mView.getUIController().setTrafficEnabled( true ); mSearchManager.showSearch(); - AIAssist.getInstance( getContext() ).speakTTSVoice( "已打开", null ); break; - case VoiceConstants.CMD_MAP_UN_TRAFFIC_MODE: case VoiceConstants.CMD_MAP_UN_TRAFFIC_MODE_UN_WAKEUP: + case VoiceConstants.CMD_MAP_UN_TRAFFIC_MODE: + AIAssist.getInstance( getContext() ).speakTTSVoice( "已关闭", null ); mView.getUIController().setTrafficEnabled( false ); mSearchManager.showMain(); - AIAssist.getInstance( getContext() ).speakTTSVoice( "已关闭", null ); break; - case VoiceConstants.CMD_MAP_ZOOM_IN: case VoiceConstants.CMD_MAP_ZOOM_IN_UN_WAKEUP: - mView.getUIController().changeZoom( true ); AIAssist.getInstance( getContext() ).speakTTSVoice( "已放大", null ); + case VoiceConstants.CMD_MAP_ZOOM_IN: + mView.getUIController().changeZoom( true ); break; - case VoiceConstants.CMD_MAP_ZOOM_OUT: case VoiceConstants.CMD_MAP_ZOOM_OUT_UN_WAKEUP: AIAssist.getInstance( getContext() ).speakTTSVoice( "已缩小", null ); + case VoiceConstants.CMD_MAP_ZOOM_OUT: mView.getUIController().changeZoom( false ); break; - case VoiceConstants.CMD_MAP_2D: case VoiceConstants.CMD_MAP_2D_UN_WAKEUP: - case VoiceConstants.CMD_MAP_NORTH_UP_MODE: + case VoiceConstants.CMD_MAP_2D: case VoiceConstants.CMD_MAP_NORTH_UP_MODE_UN_WAKEUP: + AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null ); + case VoiceConstants.CMD_MAP_NORTH_UP_MODE: mView.getUIController().changeMapMode( EnumMapUI.NorthUP_2D ); - AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null ); break; - case VoiceConstants.CMD_MAP_3D: case VoiceConstants.CMD_MAP_3D_UN_WAKEUP: + AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null ); + case VoiceConstants.CMD_MAP_3D: mView.getUIController().changeMapMode( EnumMapUI.CarUp_3D ); - AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null ); break; - case VoiceConstants.CMD_MAP_DAY_TIME_MODE: case VoiceConstants.CMD_MAP_DAY_TIME_MODE_UN_WAKEUP: - mView.getUIController().changeMapMode( EnumMapUI.Type_Light ); AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null ); + case VoiceConstants.CMD_MAP_DAY_TIME_MODE: + mView.getUIController().changeMapMode( EnumMapUI.Type_Light ); break; - case VoiceConstants.CMD_MAP_GO_COMPANY: case VoiceConstants.CMD_MAP_GO_COMPANY_UN_WAKEUP: + case VoiceConstants.CMD_MAP_GO_COMPANY: mSearchManager.goCompany(); break; - case VoiceConstants.CMD_MAP_GO_HOME: case VoiceConstants.CMD_MAP_GO_HOME_UN_WAKEUP: + case VoiceConstants.CMD_MAP_GO_HOME: mSearchManager.goHome(); break; - case VoiceConstants.CMD_MAP_HISTORY: case VoiceConstants.CMD_MAP_HISTORY_UN_WAKEUP: + case VoiceConstants.CMD_MAP_HISTORY: mSearchManager.showSearch(); break; - case VoiceConstants.CMD_MAP_STOP_NAVI_MODE: case VoiceConstants.CMD_MAP_STOP_NAVI_MODE_UN_WAKEUP: + case VoiceConstants.CMD_MAP_STOP_NAVI_MODE: mSearchManager.showMain(); break; - case VoiceConstants.CMD_MAP_NIGHT_MODE: case VoiceConstants.CMD_MAP_NIGHT_MODE_UN_WAKEUP: + AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null ); + case VoiceConstants.CMD_MAP_NIGHT_MODE: mView.getUIController().changeMapMode( EnumMapUI.Type_Night ); - AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null ); break; - case VoiceConstants.CMD_MAP_AUTO_LIGHT_NIGHT_MODE: case VoiceConstants.CMD_MAP_AUTO_LIGHT_NIGHT_MODE_UN_WAKEUP: + AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null ); + case VoiceConstants.CMD_MAP_AUTO_LIGHT_NIGHT_MODE: mView.getUIController().changeMapMode( EnumMapUI.Type_AUTO_LIGHT_Night ); - AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null ); break; - case VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE: case VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE_UN_WAKEUP: + AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null ); + case VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE: mView.getUIController().displayOverview(); - AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null ); break; - case VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE: case VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE_UN_WAKEUP: + AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null ); + case VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE: mView.getUIController().recoverLockMode(); - AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null ); break; - case VoiceConstants.CMD_MAP_CAR_UP_MODE: case VoiceConstants.CMD_MAP_CAR_UP_MODE_UN_WAKEUP: - mView.getUIController().changeMapMode( EnumMapUI.CarUp_2D ); AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null ); - break; - default: + case VoiceConstants.CMD_MAP_CAR_UP_MODE: + mView.getUIController().changeMapMode( EnumMapUI.CarUp_2D ); break; } } 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 77676a94c8..6529e59de1 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 @@ -1,6 +1,8 @@ package com.mogo.module.map; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -24,14 +26,14 @@ public class VoiceConstants { */ public static final String CMD_MAP_GO_HOME = "com.ileja.navi.map.go.home"; public static final String CMD_MAP_GO_HOME_UN_WAKEUP = "CMD_MAP_GO_HOME_UN_WAKEUP"; - public static final String[] CMD_MAP_ZOOM_IN_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_GO_COMPANY_UN_WAKEUP = "CMD_MAP_GO_COMPANY_UN_WAKEUP"; - public static final String[] CMD_MAP_ZOOM_IN_GO_COMPANY = {"我要去公司","导航去公司","带我去公司"}; + public static final String[] CMD_MAP_ZOOM_IN_GO_COMPANY = {"我要去公司", "导航去公司", "带我去公司"}; /** * 导航历史记录 @@ -41,7 +43,6 @@ public class VoiceConstants { public static final String[] CMD_MAP_HISTORY_TRIGGER_WORDS = {"查询导航历史记录"}; - /** * 缩小地图 */ @@ -120,7 +121,6 @@ public class VoiceConstants { public static final String[] CMD_MAP_STOP_NAVI_MODE_TRIGGER_WORDS = {"停止导航/结束导航/取消导航/放弃导航/退出导航/关闭导航"}; - /** * 车头朝上 */ @@ -136,8 +136,10 @@ public class VoiceConstants { public static final String[] CMD_MAP_NORTH_UP_MODE_TRIGGER_WORDS = {"北朝上"}; public static final Map< String, String[] > sVoiceCmds = new HashMap<>(); + public static final List< String > sCmds = new ArrayList<>(); static { + // 免唤醒 sVoiceCmds.put( VoiceConstants.CMD_MAP_ZOOM_IN_UN_WAKEUP, VoiceConstants.CMD_MAP_ZOOM_IN_TRIGGER_WORDS ); sVoiceCmds.put( VoiceConstants.CMD_MAP_ZOOM_OUT_UN_WAKEUP, VoiceConstants.CMD_MAP_ZOOM_OUT_TRIGGER_WORDS ); sVoiceCmds.put( VoiceConstants.CMD_MAP_2D_UN_WAKEUP, VoiceConstants.CMD_MAP_2D_TRIGGER_WORDS ); @@ -155,5 +157,24 @@ public class VoiceConstants { sVoiceCmds.put( VoiceConstants.CMD_MAP_GO_COMPANY_UN_WAKEUP, VoiceConstants.CMD_MAP_ZOOM_IN_GO_COMPANY ); sVoiceCmds.put( VoiceConstants.CMD_MAP_HISTORY_UN_WAKEUP, VoiceConstants.CMD_MAP_HISTORY_TRIGGER_WORDS ); sVoiceCmds.put( VoiceConstants.CMD_MAP_STOP_NAVI_MODE_UN_WAKEUP, VoiceConstants.CMD_MAP_STOP_NAVI_MODE_TRIGGER_WORDS ); + + // 唤醒 + sCmds.add( VoiceConstants.CMD_MAP_ZOOM_IN ); + sCmds.add( VoiceConstants.CMD_MAP_ZOOM_OUT ); + sCmds.add( VoiceConstants.CMD_MAP_2D ); + sCmds.add( VoiceConstants.CMD_MAP_3D ); + sCmds.add( VoiceConstants.CMD_MAP_DAY_TIME_MODE ); + sCmds.add( VoiceConstants.CMD_MAP_NIGHT_MODE ); + sCmds.add( VoiceConstants.CMD_MAP_TRAFFIC_MODE ); + sCmds.add( VoiceConstants.CMD_MAP_UN_TRAFFIC_MODE ); + sCmds.add( VoiceConstants.CMD_MAP_AUTO_LIGHT_NIGHT_MODE ); + sCmds.add( VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE ); + sCmds.add( VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE ); + sCmds.add( VoiceConstants.CMD_MAP_CAR_UP_MODE ); + sCmds.add( VoiceConstants.CMD_MAP_NORTH_UP_MODE ); + sCmds.add( VoiceConstants.CMD_MAP_GO_HOME ); + sCmds.add( VoiceConstants.CMD_MAP_GO_COMPANY ); + sCmds.add( VoiceConstants.CMD_MAP_HISTORY ); + sCmds.add( VoiceConstants.CMD_MAP_STOP_NAVI_MODE ); } } diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt index 73b4798ea3..11b9584ea1 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt @@ -67,6 +67,9 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener { ) } + // 是否开启导航 + var isStartedNavi = false + override fun onViewCreated( view: View, savedInstanceState: Bundle? @@ -96,6 +99,7 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener { tv_navi_navi.setOnClickListener { SearchServiceHolder.getNavi() .startNavi(false) + isStartedNavi = true SearchServiceHolder.fragmentManager.clearAll() } @@ -122,8 +126,9 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener { SearchServiceHolder.statusManager.setSearchUIShow( MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT, false ) - SearchServiceHolder.getNavi() - .clearCalculatePaths() + if (!isStartedNavi) { + SearchServiceHolder.getNavi().clearCalculatePaths() + } } companion object { diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragmentProvider.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragmentProvider.java index c55cf62928..4bd1f58d00 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragmentProvider.java +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragmentProvider.java @@ -79,4 +79,14 @@ public class SearchFragmentProvider implements IMogoModuleProvider { public IMogoMarkerClickListener getMarkerClickListener() { return null; } + + @Override + public String getAppPackage() { + return null; + } + + @Override + public String getAppName() { + return null; + } } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java index cb76e39465..89feb55cb7 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java @@ -472,12 +472,10 @@ public class MogoServiceProvider implements IMogoModuleProvider, @Override public void onStartNavi() { - } @Override public void onStopNavi() { - } @Override @@ -527,4 +525,14 @@ public class MogoServiceProvider implements IMogoModuleProvider, mStatusManager.setADASUIShow( getModuleName(), status == 1 ); } } + + @Override + public String getAppPackage() { + return null; + } + + @Override + public String getAppName() { + return null; + } } diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewProvider.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewProvider.java index 1d40495348..cdc123a787 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewProvider.java +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewProvider.java @@ -83,4 +83,14 @@ public class TanluCardViewProvider implements IMogoModuleProvider { public IMogoMarkerClickListener getMarkerClickListener() { return null; } + + @Override + public String getAppPackage() { + return ""; + } + + @Override + public String getAppName() { + return "探路"; + } } diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleProvider.java b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleProvider.java index a9391d094d..d53d29693b 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleProvider.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleProvider.java @@ -96,4 +96,18 @@ public interface IMogoModuleProvider extends IProvider { */ @Deprecated IMogoMarkerClickListener getMarkerClickListener(); + + /** + * 获取模块对应 app 的包名 + * + * @return + */ + String getAppPackage(); + + /** + * 获取对应模块 app 名称 + * + * @return + */ + String getAppName(); }