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/network/SubscribeImpl.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/network/SubscribeImpl.java index 819701d8b4..26a38797cf 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/network/SubscribeImpl.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/network/SubscribeImpl.java @@ -65,7 +65,6 @@ public abstract class SubscribeImpl< T extends BaseData > implements Observer< T } public void onSuccess( T o ) { - Logger.e( TAG, GsonUtil.jsonFromObject( o ) ); } public void onError( String message, int code ) { 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..ee3f950d39 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.5
# 车聊聊
CARCHATTING_VERSION=1.0.3.2-SNAPSHOT
# 车聊聊接口
diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/marker/AMapMarkerWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/marker/AMapMarkerWrapper.java
index efdd5da1f2..523591332d 100644
--- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/marker/AMapMarkerWrapper.java
+++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/marker/AMapMarkerWrapper.java
@@ -16,6 +16,7 @@ import com.amap.api.maps.model.animation.Animation;
import com.amap.api.maps.model.animation.ScaleAnimation;
import com.amap.api.maps.model.animation.TranslateAnimation;
import com.amap.api.maps.utils.overlay.MovingPointOverlay;
+import com.mogo.commons.AbsMogoApplication;
import com.mogo.map.MogoLatLng;
import com.mogo.map.impl.amap.AMapWrapper;
import com.mogo.map.impl.amap.utils.ObjectUtils;
@@ -24,6 +25,7 @@ import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.IMogoMarkerClickListener;
import com.mogo.map.marker.IMogoMarkerIconViewCreator;
import com.mogo.map.marker.MogoMarkerOptions;
+import com.mogo.map.marker.anim.OnMarkerAnimationListener;
import com.mogo.utils.WindowUtils;
import com.mogo.utils.logger.Logger;
@@ -85,6 +87,11 @@ public class AMapMarkerWrapper implements IMogoMarker, Observer {
mMarker = null;
}
if (mMovingPointOverlay != null){
+ try {
+ mMovingPointOverlay.destroy();
+ } catch ( Exception e ) {
+ e.printStackTrace();
+ }
mMovingPointOverlay = null;
}
mMogoInfoWindowAdapter = null;
@@ -340,6 +347,86 @@ public class AMapMarkerWrapper implements IMogoMarker, Observer {
mMarker.startAnimation();
}
+ @Override
+ public void startScaleAnimation( float fromX, float toX, float fromY, float toY, int duration, Interpolator interpolator, OnMarkerAnimationListener listener ) {
+ if ( isDestroyed() ) {
+ return;
+ }
+
+ ScaleAnimation animationScale = new ScaleAnimation( fromX, toX, fromY, toY );
+ animationScale.setDuration( duration );
+ animationScale.setFillMode( Animation.FILL_MODE_FORWARDS );
+ animationScale.setInterpolator( interpolator );
+ animationScale.setAnimationListener( new Animation.AnimationListener() {
+ @Override
+ public void onAnimationStart() {
+ if ( isDestroyed() ) {
+ return;
+ }
+ if ( listener != null ) {
+ listener.onAnimStart();
+ }
+ }
+
+ @Override
+ public void onAnimationEnd() {
+ if ( isDestroyed() ) {
+ return;
+ }
+ if ( listener != null ) {
+ listener.onAnimEnd();
+ }
+ }
+ } );
+
+ mMarker.setAnimation( animationScale );
+ mMarker.startAnimation();
+ }
+
+ @Override
+ public void startJumpAnimation( float high, long duration, Interpolator interpolator, OnMarkerAnimationListener listener ) {
+ if ( isDestroyed() || high <= 0.0f || interpolator == null || duration < 0 ) {
+ return;
+ }
+ try {
+ final LatLng latLng = ObjectUtils.fromMogo2( getPosition() );
+ Point point = AMapWrapper.getAMap().getProjection().toScreenLocation( latLng );
+ point.y -= WindowUtils.dip2px( AbsMogoApplication.getApp(), high );
+ LatLng target = AMapWrapper.getAMap().getProjection().fromScreenLocation( point );
+ //使用TranslateAnimation,填写一个需要移动的目标点
+ Animation animation = new TranslateAnimation( target );
+ animation.setInterpolator( interpolator );
+ animation.setAnimationListener( new Animation.AnimationListener() {
+ @Override
+ public void onAnimationStart() {
+ if ( isDestroyed() ) {
+ return;
+ }
+ if ( listener != null ) {
+ listener.onAnimStart();
+ }
+ }
+
+ @Override
+ public void onAnimationEnd() {
+ if ( isDestroyed() ) {
+ return;
+ }
+ if ( listener != null ) {
+ listener.onAnimEnd();
+ }
+ }
+ } );
+ //整个移动所需要的时间
+ animation.setDuration( duration );
+ //设置动画
+ mMarker.setAnimation( animation );
+ mMarker.startAnimation();
+ } catch ( Exception e ) {
+ Logger.e( TAG, e, "error." );
+ }
+ }
+
@Override
public void setClickable( boolean clickable ) {
if ( mMarker != null ) {
@@ -349,6 +436,11 @@ public class AMapMarkerWrapper implements IMogoMarker, Observer {
@Override
public void startSmooth(List
+ * 播报导航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/libraries/mogo-map-api/build.gradle b/libraries/mogo-map-api/build.gradle
index c7637e37ca..cac5399ae1 100644
--- a/libraries/mogo-map-api/build.gradle
+++ b/libraries/mogo-map-api/build.gradle
@@ -20,6 +20,11 @@ android {
}
}
+ compileOptions {
+ sourceCompatibility 1.8
+ targetCompatibility 1.8
+ }
+
}
dependencies {
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarker.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarker.java
index f48e10b104..7cb519b426 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarker.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarker.java
@@ -6,6 +6,7 @@ import android.graphics.Point;
import android.view.animation.Interpolator;
import com.mogo.map.MogoLatLng;
+import com.mogo.map.marker.anim.OnMarkerAnimationListener;
import java.util.ArrayList;
import java.util.List;
@@ -247,6 +248,38 @@ public interface IMogoMarker {
int duration,
Interpolator interpolator );
+ /**
+ * 缩放动画
+ *
+ * @param fromX
+ * @param toX
+ * @param fromY
+ * @param toY
+ * @param duration
+ * @param interpolator
+ * @param listener
+ */
+ void startScaleAnimation( float fromX,
+ float toX,
+ float fromY,
+ float toY,
+ int duration,
+ Interpolator interpolator,
+ OnMarkerAnimationListener listener );
+
+
+ /**
+ * 弹跳动画
+ * @param high
+ * @param duration
+ * @param interpolator
+ * @param listener
+ */
+ void startJumpAnimation( float high,
+ long duration,
+ Interpolator interpolator,
+ OnMarkerAnimationListener listener);
+
/**
* 是否是否可点击
*
@@ -257,8 +290,8 @@ public interface IMogoMarker {
/**
* 开始平滑移动
*
- * @param points 坐标点
- * @param duration 时长
+ * @param points 坐标点
+ * @param duration 时长
*/
- void startSmooth(List
+ * marker 动画监听
+ */
+public interface OnMarkerAnimationListener {
+
+ default void onAnimStart() {
+ }
+
+ default void onAnimEnd() {
+ }
+}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java
index e8a557dd79..bc738c6daa 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java
@@ -11,6 +11,7 @@ import androidx.annotation.Nullable;
import com.mogo.map.MogoLatLng;
import com.mogo.map.marker.IMogoMarker;
+import com.mogo.map.marker.anim.OnMarkerAnimationListener;
import java.util.List;
@@ -141,12 +142,15 @@ public interface IMogoMapUIController {
/**
* marker 跳跃动画
+ *
+ * Deprecated, instead of by {@link IMogoMarker#startJumpAnimation(float, long, Interpolator, OnMarkerAnimationListener)}
*
* @param marker 跳跃的 marker
* @param high 跳跃的高度
* @param interpolator 插值器
* @param duration 动画时间
*/
+ @Deprecated
void startJumpAnimation( IMogoMarker marker, float high, Interpolator interpolator,
long duration );
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java
index e2876f8737..8f6efe901c 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java
@@ -27,9 +27,13 @@ import com.mogo.map.navi.MogoTraffic;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.module.common.MogoModule;
import com.mogo.module.common.MogoModulePaths;
+import com.mogo.module.common.entity.MarkerNoveltyInfo;
+import com.mogo.module.common.entity.MarkerShareMusic;
+import com.mogo.module.common.entity.MarkerShowEntity;
import com.mogo.module.extensions.ExtensionsModuleConst;
import com.mogo.module.main.MainActivity;
import com.mogo.module.main.registercenter.MogoRegisterCenterHandler;
+import com.mogo.module.service.MarkerServiceHandler;
import com.mogo.module.service.receiver.MogoReceiver;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
@@ -611,6 +615,7 @@ public class MogoModulesManager implements MogoModulesHandler,
IMogoMarkerClickListener listener = MogoRegisterCenterHandler.getInstance().getMarkerListener( marker.getOwner() );
if ( listener != null ) {
try {
+ trackMarkerClickEvent( marker );
return listener.onMarkerClicked( marker );
} catch ( Exception e ) {
Logger.e( TAG, e, "error." );
@@ -619,6 +624,28 @@ public class MogoModulesManager implements MogoModulesHandler,
return false;
}
+ /**
+ * marker 点击埋点
+ *
+ * @param marker
+ */
+ private void trackMarkerClickEvent( IMogoMarker marker ) {
+ if ( marker == null || TextUtils.isEmpty( marker.getOwner() )) {
+ return;
+ }
+ // 数据统计代码
+ final Map< String, Object > properties = new HashMap<>();
+ properties.put( "poitype", marker.getOwner() );
+ MarkerShowEntity showEntity = ( MarkerShowEntity ) marker.getObject();
+ Object bindObj = showEntity.getBindObj();
+ if ( bindObj instanceof MarkerNoveltyInfo ) {
+ properties.put( "contenttype", ( ( MarkerNoveltyInfo ) bindObj ).getPoiType() );
+ } else if( bindObj instanceof MarkerShareMusic ){
+ properties.put( "contenttype", ( ( MarkerShareMusic ) bindObj ).getShareType()+"" );
+ }
+ MarkerServiceHandler.getMogoAnalytics().track( "Launcher_Icon_Click", properties );
+ }
+
@Override
public void onUpdateTraffic2( MogoTraffic traffic ) {
Iterator< IMogoAimlessModeListener > iterator = MogoRegisterCenterHandler.getInstance().getAimlessModeListeners();
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