diff --git a/config.gradle b/config.gradle index 1b9170ba35..2419f9593d 100644 --- a/config.gradle +++ b/config.gradle @@ -49,7 +49,7 @@ ext { // 公司服务 - 语音 aiassist : "com.zhidaoauto.common:service:1.0.4.10", // 语音替换方案 暂时只用TTS 解决焦点问题 - aiassistReplace : "com.zhidao.mogoVoicesdk:voice:1.0.4", + aiassistReplace : "com.zhidao.mogoVoicesdk:voice:1.0.5", // 公司服务 - 埋点 analytics : "com.elegant.analytics:analytics:1.1.19", diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/AIAssist.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/AIAssist.java index 295fd6d847..bb589895f3 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/AIAssist.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/AIAssist.java @@ -26,7 +26,7 @@ import java.util.concurrent.ConcurrentHashMap; *
* 语音助手通信助手 */ -public class AIAssist implements VoiceClient.VoiceCmdCallBack , OnTtsListener { +public class AIAssist implements VoiceClient.VoiceCmdCallBack, OnTtsListener { private static final String TAG = "AIAssist"; private static volatile AIAssist sInstance; @@ -87,9 +87,9 @@ public class AIAssist implements VoiceClient.VoiceCmdCallBack , OnTtsListener { /** * 初始化 */ - private void initSpeech( Context context ){ + private void initSpeech( Context context ) { mogoVoiceManager = MogoVoiceManagerImpl.getInstance(); - mogoVoiceManager.init(context, new OnConnStatusListener() { + mogoVoiceManager.init( context, new OnConnStatusListener() { @Override public void onSuccess() { mInitReady = true; @@ -99,11 +99,12 @@ public class AIAssist implements VoiceClient.VoiceCmdCallBack , OnTtsListener { public void onFailed() { } - }); + } ); } /** * 是否语音注册成功 + * * @return */ public boolean hasFlush() { @@ -425,36 +426,59 @@ public class AIAssist implements VoiceClient.VoiceCmdCallBack , OnTtsListener { return false; } - public void speakTTSAndDuck(String text ){ - speakTTSAndDuck(text,null); + public void speakTTSAndDuck( String text ) { + speakTTSAndDuck( text, null ); } - public void speakTTSAndDuck( String text, IMogoVoiceCmdCallBack callBack ){ + public void speakTTSAndDuck( String text, IMogoVoiceCmdCallBack callBack ) { try { - if( mInitReady ){ + if ( mInitReady ) { mSpeakVoiceMap.put( text, callBack ); - mogoVoiceManager.toSpeak( text, -3, this); + mogoVoiceManager.toSpeak( text, -3, this ); } } catch ( Exception e ) { } } - @Override - public void onTtsStart(String ext) { + public void shutUp( String ttsId, String text ) { + try { + mSpeakVoiceMap.remove( text ); + mogoVoiceManager.shutUp( ttsId ); + } catch( Exception e ){ + } } - @Override - public void onTtsFinish(String speakText) { - IMogoVoiceCmdCallBack callBack = mSpeakVoiceMap.remove( speakText ); - if ( callBack != null ) { - callBack.onSpeakEnd( speakText ); + public void clearTTSCallback(String text){ + try { + mSpeakVoiceMap.remove( text ); + } catch ( Exception e ) { + e.printStackTrace(); } } @Override - public void onTtsError(String ext) { + public void onTtsStart( String ttsId, String text ) { + IMogoVoiceCmdCallBack callBack = mSpeakVoiceMap.get( text ); + if ( callBack != null ) { + callBack.onTTSStart( ttsId, text ); + } + } + @Override + public void onTtsFinish( String ttsId, String text ) { + IMogoVoiceCmdCallBack callBack = mSpeakVoiceMap.remove( text ); + if ( callBack != null ) { + callBack.onTTSEnd( ttsId, text ); + } + } + + @Override + public void onTtsError( String ttsId, String text ) { + IMogoVoiceCmdCallBack callBack = mSpeakVoiceMap.remove( text ); + if ( callBack != null ) { + callBack.onTTSError( ttsId, text ); + } } } diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/IMogoVoiceCmdCallBack.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/IMogoVoiceCmdCallBack.java index b213d117fa..58365cd886 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/IMogoVoiceCmdCallBack.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/IMogoVoiceCmdCallBack.java @@ -1,6 +1,34 @@ package com.mogo.commons.voice; public interface IMogoVoiceCmdCallBack { + + /** + * 新SDK接口 + * + * @param ttsId + * @param tts + */ + default void onTTSStart( String ttsId, String tts ) { + } + + /** + * 新SDK接口 + * + * @param ttsId + * @param tts + */ + default void onTTSEnd( String ttsId, String tts ) { + } + + /** + * 新SDK接口 + * + * @param ttsId + * @param tts + */ + default void onTTSError( String ttsId, String tts ) { + } + /** * 免唤醒命令响应回调 * diff --git a/gradle.properties b/gradle.properties index 4ab0e0d987..16d60db9d4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -54,7 +54,7 @@ MOGO_MODULE_GUIDE_VERSION=1.0.3.8 ## 工程外部模块 # 探路 -MOGO_MODULE_TANLU_VERSION=1.0.4.2 +MOGO_MODULE_TANLU_VERSION=1.0.4.3 # 车聊聊 CARCHATTING_VERSION=1.0.3.2-SNAPSHOT # 车聊聊接口 @@ -74,4 +74,4 @@ MOGO_MODULE_PUSH_VERSION=1.0.1 # 广告资源位 MOGO_MODULE_AD_CARD_VERSION=1.0.1 # 新鲜事 -MOGO_MODULE_FRESH_NEWS_VERSION=1.0.3.2 +MOGO_MODULE_FRESH_NEWS_VERSION=1.0.3.3 diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/AMapNaviListenerAdapter.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/AMapNaviListenerAdapter.java index 5e1eff04c3..fe16b38c0e 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/AMapNaviListenerAdapter.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/AMapNaviListenerAdapter.java @@ -66,7 +66,7 @@ public abstract class AMapNaviListenerAdapter implements AMapNaviListener { public void onGetNavigationText( String s ) { mLastSpeakWord = s; Logger.d( TAG, s ); - AIAssist.getInstance(AbsMogoApplication.getApp()).speakTTSAndDuck(s); + TTSSpeaker.getInstance().speakTTS( s ); } @Override diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviListenerAdapter.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviListenerAdapter.java index c402fdc0a4..96578329ed 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviListenerAdapter.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviListenerAdapter.java @@ -236,6 +236,7 @@ public class NaviListenerAdapter extends AMapNaviListenerAdapter { } public void stopNavi() { + TTSSpeaker.getInstance().shutUp(); mNaviOverlayHelper.clearCalculatedOverlay(); setStopped( true ); setNaviing( false ); diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/TTSSpeaker.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/TTSSpeaker.java new file mode 100644 index 0000000000..dd5c6ec2f6 --- /dev/null +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/TTSSpeaker.java @@ -0,0 +1,120 @@ +package com.mogo.map.impl.amap.navi; + +import android.text.TextUtils; + +import com.mogo.commons.AbsMogoApplication; +import com.mogo.commons.voice.AIAssist; +import com.mogo.commons.voice.IMogoVoiceCmdCallBack; + +import java.util.LinkedList; + +/** + * @author congtaowang + * @since 2020-04-21 + *
+ * 播报导航TTS + *
+ * 策略:队列缓存预播报的 tts,然后上一句播完后
+ */
+public class TTSSpeaker implements IMogoVoiceCmdCallBack {
+
+ private static volatile TTSSpeaker sInstance;
+
+ private TTSSpeaker() {
+ }
+
+ public static TTSSpeaker getInstance() {
+ if ( sInstance == null ) {
+ synchronized ( TTSSpeaker.class ) {
+ if ( sInstance == null ) {
+ sInstance = new TTSSpeaker();
+ }
+ }
+ }
+ return sInstance;
+ }
+
+ public synchronized void release() {
+ sInstance = null;
+ }
+
+ private LinkedList< String > mWaiting = new LinkedList<>();
+
+ private String mLastTts = null;
+ private String mLastTtsId = null;
+
+ public synchronized void speakTTS( String tts ) {
+ if ( TextUtils.isEmpty( tts ) ) {
+ return;
+ }
+ mWaiting.add( tts );
+ peekAndSpeak();
+ }
+
+ public synchronized void shutUp() {
+ if ( mLastTtsId != null ) {
+ AIAssist.getInstance( AbsMogoApplication.getApp() ).shutUp( mLastTtsId, mLastTts );
+ mWaiting.clear();
+ mLastTtsId = null;
+ mLastTts = null;
+ }
+ }
+
+ @Override
+ public void onCmdSelected( String cmd ) {
+
+ }
+
+ @Override
+ public void onCmdAction( String speakText ) {
+
+ }
+
+ @Override
+ public void onCmdCancel( String speakText ) {
+
+ }
+
+ @Override
+ public void onSpeakEnd( String speakText ) {
+
+ }
+
+ @Override
+ public void onSpeakSelectTimeOut( String speakText ) {
+
+ }
+
+ @Override
+ public void onTTSStart( String ttsId, String tts ) {
+ if ( TextUtils.equals( mLastTts, tts ) ) {
+ mLastTtsId = ttsId;
+ }
+ }
+
+ @Override
+ public void onTTSEnd( String ttsId, String tts ) {
+ mLastTtsId = null;
+ peekAndSpeak();
+ }
+
+ @Override
+ public void onTTSError( String ttsId, String tts ) {
+ mLastTtsId = null;
+ peekAndSpeak();
+ }
+
+ private synchronized void peekAndSpeak() {
+ if ( mWaiting.isEmpty() ) {
+ mLastTts = null;
+ mLastTtsId = null;
+ return;
+ }
+ if ( mLastTtsId != null ) {
+ // 上一句还没有播完
+ return;
+ }
+ mLastTts = mWaiting.pop();
+ AIAssist.getInstance( AbsMogoApplication.getApp() ).speakTTSAndDuck( mLastTts, this );
+ }
+}
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 f94a264cc1..587133880e 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
@@ -135,7 +135,7 @@ public class MapPresenter extends Presenter< MapView > implements
int navi_route_prefer = intent.getIntExtra( "NAVI_ROUTE_PREFER", type );
- }else if (key_type == 20009) {
+ } else if ( key_type == 20009 ) {
onOpenNavi();
}
@@ -173,12 +173,14 @@ public class MapPresenter extends Presenter< MapView > implements
if ( mStatusManager.isMainPageOnResume() ) {
mStatusManager.setDisplayOverview( TAG, false );
mView.getUIController().recoverLockMode();
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "已为您继续导航" );
} else {
mLauncher.backToLauncher( getContext() );
UiThreadHandler.postDelayed( () -> {
try {
mStatusManager.setDisplayOverview( TAG, false );
mView.getUIController().recoverLockMode();
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "已为您继续导航" );
} catch ( Exception e ) {
e.printStackTrace();
}
@@ -195,9 +197,20 @@ public class MapPresenter extends Presenter< MapView > implements
Logger.d( TAG, "ADAS模式忽略该请求." );
return;
}
- mStatusManager.setUserInteractionStatus( TAG, true, false );
- mStatusManager.setDisplayOverview( TAG, true );
- mView.getUIController().displayOverview( mDisplayOverviewBounds );
+ if ( !mStatusManager.isMainPageOnResume() ) {
+ mStatusManager.setUserInteractionStatus( TAG, true, false );
+ mStatusManager.setDisplayOverview( TAG, true );
+ mView.getUIController().displayOverview( mDisplayOverviewBounds );
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "展示全程路线" );
+ } else {
+ mLauncher.backToLauncher( getContext() );
+ UiThreadHandler.postDelayed( () -> {
+ mStatusManager.setUserInteractionStatus( TAG, true, false );
+ mStatusManager.setDisplayOverview( TAG, true );
+ mView.getUIController().displayOverview( mDisplayOverviewBounds );
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "展示全程路线" );
+ }, 2_000L );
+ }
}
private void zoomMap( boolean zoomIn ) {
@@ -225,11 +238,12 @@ public class MapPresenter extends Presenter< MapView > implements
}
}
- private void onOpenNavi(){
+ private void onOpenNavi() {
mLauncher.backToLauncher( getContext() );
if ( !mMogoMapService.getNavi( getContext() ).isNaviing() && !mStatusManager.isSearchUIShow() ) {
mMogoAddressManager.goSearch();
}
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "已打开" );
}
@Override
@@ -261,6 +275,10 @@ public class MapPresenter extends Presenter< MapView > implements
ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.module_map_display_overview_right_margin ),
ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.module_map_display_overview_bottom_margin )
);
+
+ for ( String cmd : VoiceConstants.sUnUnRegisterCmds ) {
+ mMogoIntentManager.registerIntentListener( cmd, this );
+ }
}
@Override
@@ -342,34 +360,20 @@ public class MapPresenter extends Presenter< MapView > implements
case VoiceConstants.CMD_MAP_3D_UN_WAKEUP:
case VoiceConstants.CMD_MAP_3D:
mView.getUIController().changeMapMode( EnumMapUI.CarUp_3D );
-
break;
case VoiceConstants.CMD_MAP_DAY_TIME_MODE_UN_WAKEUP:
case VoiceConstants.CMD_MAP_DAY_TIME_MODE:
mView.getUIController().changeMapMode( EnumMapUI.Type_Light );
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
-
- //case VoiceConstants.CMD_MAP_GO_COMPANY_UN_WAKEUP:
- //case VoiceConstants.CMD_MAP_GO_COMPANY:
- // mSearchManager.goCompany();
- // break;
- //
- //case VoiceConstants.CMD_MAP_GO_HOME_UN_WAKEUP:
- //case VoiceConstants.CMD_MAP_GO_HOME:
- // mSearchManager.goHome();
- // break;
-
case VoiceConstants.CMD_MAP_HISTORY_UN_WAKEUP:
case VoiceConstants.CMD_MAP_HISTORY:
onOpenNavi();
break;
-
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_UN_WAKEUP:
case VoiceConstants.CMD_MAP_NIGHT_MODE:
mView.getUIController().changeMapMode( EnumMapUI.Type_Night );
@@ -391,25 +395,15 @@ public class MapPresenter extends Presenter< MapView > implements
mView.getUIController().changeMapMode( EnumMapUI.CarUp_2D );
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
-
- //case VoiceConstants.CMD_MAP_GEO_NEARBY:
- // if (intent != null) {
- // String keywords = intent.getStringExtra("keyword");
- // mSearchManager.showCategory(keywords);
- // }
-
case VoiceConstants.CMD_MAP_SPEAK_DRAFT_MODE:
case VoiceConstants.CMD_MAP_SPEAK_DRAFT_MODE_UN_WAKEUP:
mSearchManager.speakDraft();
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
-
break;
-
case VoiceConstants.CMD_MAP_SPEAK_DETAIL_MODE:
case VoiceConstants.CMD_MAP_SPEAK_DETAIL_MODE_UN_WAKEUP:
mSearchManager.speakDetail();
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
-
break;
case VoiceConstants.CMD_MAP_SPEAK_REMAIN:
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 ac7113e13a..8ac087ef15 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
@@ -121,7 +121,7 @@ public class VoiceConstants {
*/
public static final String CMD_MAP_GEO_NEARBY = "com.ileja.navi.geo.nearby";
public static final String CMD_MAP_GEO_NEARBY_WAKEUP = "CMD_MAP_GEO_NEARBY_WAKEUP";
- public static final String[] CMD_MAP_GEO_NEARBY_TRIGGER_WORDS = {"查找附近的","查找附近的"};
+ public static final String[] CMD_MAP_GEO_NEARBY_TRIGGER_WORDS = {"查找附近的", "查找附近的"};
/**
* 车头朝上
@@ -136,12 +136,12 @@ public class VoiceConstants {
public static final String CMD_MAP_NORTH_UP_MODE = "com.ileja.traffic.north.up";
public static final String CMD_MAP_NORTH_UP_MODE_UN_WAKEUP = "CMD_MAP_NORTH_UP_MODE_UN_WAKEUP";
public static final String[] CMD_MAP_NORTH_UP_MODE_TRIGGER_WORDS = {"北朝上"};
- /**
+ /**
* 简洁模式
*/
public static final String CMD_MAP_SPEAK_DRAFT_MODE = "com.ileja.traffic.speak.draft";
public static final String CMD_MAP_SPEAK_DRAFT_MODE_UN_WAKEUP = "CMD_MAP_SPEAK_DRAFT_MODE_UN_WAKEUP";
- public static final String[] CMD_MAP_SPEAK_DRAFT_MODE_TRIGGER_WORDS = {"简洁模式","简洁播报"};
+ public static final String[] CMD_MAP_SPEAK_DRAFT_MODE_TRIGGER_WORDS = {"简洁模式", "简洁播报"};
/**
@@ -149,40 +149,18 @@ public class VoiceConstants {
*/
public static final String CMD_MAP_SPEAK_DETAIL_MODE = "com.ileja.traffic.speak.detail";
public static final String CMD_MAP_SPEAK_DETAIL_MODE_UN_WAKEUP = "CMD_MAP_SPEAK_DETAIL_MODE_UN_WAKEUP";
- public static final String[] CMD_MAP_SPEAK_DETAIL_MODE_TRIGGER_WORDS = {"详细模式","详细播报"};
+ public static final String[] CMD_MAP_SPEAK_DETAIL_MODE_TRIGGER_WORDS = {"详细模式", "详细播报"};
/**
* 播报当前导航剩余里程和时间
*/
public static final String CMD_MAP_SPEAK_REMAIN = "com.ileja.traffic.speak.remain";
public static final String CMD_MAP_SPEAK_REMAIN_UN_WAKEUP = "CMD_MAP_SPEAK_REMAIN_UN_WAKEUP";
- public static final String[] CMD_MAP_SPEAK_REMAIN_TRIGGER_WORDS = {"还有多久","多久到","还有多远"};
-
-
- //mWakeupWordsList.add(new WakeupWord().setAction(NavConstants.WakeUpCommandApi.COMMAND_MAP_NAVI_OVERVIEW_BACK_NAVI).setWord("继续导航").setPinyin("ji xu dao hang").setThreshold("0.21").addGreeting(""));
- // mWakeupWordsList.add(new WakeupWord().setAction(NavConstants.WakeUpCommandApi.COMMAND_MAP_CLOSEMAP).setWord("关闭导航").setPinyin("guan bi dao hang").setThreshold("0.19").addGreeting(""));
- // mWakeupWordsList.add(new WakeupWord().setAction(NavConstants.WakeUpCommandApi.COMMAND_MAP_CLOSEMAP).setWord("关闭地图").setPinyin("guan bi di tu").setThreshold("0.215").addGreeting(""));
- // mWakeupWordsList.add(new WakeupWord().setAction(NavConstants.WakeUpCommandApi.COMMAND_MAP_CLOSEMAP).setWord("退出导航").setPinyin("tui chu dao hang").setThreshold("0.2").addGreeting(""));
- // mWakeupWordsList.add(new WakeupWord().setAction(NavConstants.WakeUpCommandApi.COMMAND_MAP_CLOSEMAP).setWord("退出地图").setPinyin("tui chu di tu").setThreshold("0.16").addGreeting(""));
- //
- // mWakeupWordsList.add(new WakeupWord().setAction(NavConstants.WakeUpCommandApi.COMMAND_MAP_NAVI_OPEN_2D_CAR).setWord("车头朝上").setPinyin("che tou chao shang").setThreshold("0.1").addGreeting("车头朝上"));
- // mWakeupWordsList.add(new WakeupWord().setAction(NavConstants.WakeUpCommandApi.COMMAND_MAP_NAVI_OPEN_2D_NORTH).setWord("北朝上").setPinyin("bei chao shang").setThreshold("0.14").addGreeting(""));
- // mWakeupWordsList.add(new WakeupWord().setAction(NavConstants.WakeUpCommandApi.COMMAND_MAP_NAVI_OPEN_3D).setWord("三地模式").setPinyin("san di mo shi").setThreshold("0.13").addGreeting(""));
- // mWakeupWordsList.add(new WakeupWord().setAction(NavConstants.WakeUpCommandApi.COMMAND_MAP_NAVI_OPEN_2D_NORTH).setWord("二地模式").setPinyin("er di mo shi").setThreshold("0.185").addGreeting(""));
- // mWakeupWordsList.add(new WakeupWord().setAction(NavConstants.WakeUpCommandApi.COMMAND_MAP_FLEX_UP).setWord("放大地图").setPinyin("fang da di tu").setThreshold("0.17").addGreeting("已放大"));
- // mWakeupWordsList.add(new WakeupWord().setAction(NavConstants.WakeUpCommandApi.COMMAND_MAP_FLEX_DOWN).setWord("缩小地图").setPinyin("suo xiao di tu").setThreshold("0.125").addGreeting("已缩小"));
- // mWakeupWordsList.add(new WakeupWord().setAction(NavConstants.WakeUpCommandApi.COMMAND_MAP_MODE_DAY).setWord("白天模式").setPinyin("bai tian mo shi").setThreshold("0.105").addGreeting("切换到白天模式"));
- // mWakeupWordsList.add(new WakeupWord().setAction(NavConstants.WakeUpCommandApi.COMMAND_MAP_MODE_NIGHT).setWord("夜间模式").setPinyin("ye jian mo shi").setThreshold("0.11").addGreeting("切换到夜间模式"));
- // mWakeupWordsList.add(new WakeupWord().setAction(NavConstants.WakeUpCommandApi.COMMAND_MAP_MODE_AUTO).setWord("自动模式").setPinyin("zi dong mo shi").setThreshold("0.11").addGreeting("切换到自动模式"));
- // mWakeupWordsList.add(new WakeupWord().setAction(NavConstants.WakeUpCommandApi.COMMAND_MAP_NAVI_OPEN_LIVE).setWord("打开路况").setPinyin("da kai lu kuang").setThreshold("0.125").addGreeting("路况已打开"));
- // mWakeupWordsList.add(new WakeupWord().setAction(NavConstants.WakeUpCommandApi.COMMAND_MAP_NAVI_CLOSE_LIVE).setWord("关闭路况").setPinyin("guan bi lu kuang").setThreshold("0.1").addGreeting("路况已关闭"));
-
-
-
-
+ public static final String[] CMD_MAP_SPEAK_REMAIN_TRIGGER_WORDS = {"还有多久", "多久到", "还有多远"};
public static final Map< String, String[] > sVoiceCmds = new HashMap<>();
public static final List< String > sCmds = new ArrayList<>();
+ public static final List< String > sUnUnRegisterCmds = new ArrayList<>();
static {
// 免唤醒
@@ -217,16 +195,16 @@ public class VoiceConstants {
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 );
sCmds.add( VoiceConstants.CMD_MAP_SPEAK_DRAFT_MODE );
sCmds.add( VoiceConstants.CMD_MAP_SPEAK_DETAIL_MODE );
sCmds.add( VoiceConstants.CMD_MAP_SPEAK_REMAIN );
+
+ // 退到后台不注销的命令
+ sUnUnRegisterCmds.add( VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE );
+ sUnUnRegisterCmds.add( VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE );
+ sUnUnRegisterCmds.add( VoiceConstants.CMD_MAP_HISTORY );
}
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategoryPresenter.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategoryPresenter.java
index 0e85d32520..4dc1c77384 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategoryPresenter.java
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategoryPresenter.java
@@ -71,7 +71,9 @@ public class CategoryPresenter extends Presenter