Merge branch 'dev' into dev_custom_map
This commit is contained in:
@@ -50,9 +50,9 @@ android {
|
||||
signingConfig signingConfigs.release
|
||||
}
|
||||
release {
|
||||
minifyEnabled true
|
||||
zipAlignEnabled true
|
||||
shrinkResources true
|
||||
minifyEnabled false
|
||||
zipAlignEnabled false
|
||||
shrinkResources false
|
||||
signingConfig signingConfigs.release
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
|
||||
18
app/proguard-rules.pro
vendored
18
app/proguard-rules.pro
vendored
@@ -335,9 +335,12 @@
|
||||
|
||||
#-----Netty-----
|
||||
-keepattributes Signature,InnerClasses
|
||||
-keepclasseswithmembers class io.netty.** {
|
||||
*;
|
||||
}
|
||||
-keep class io.netty.** {*;}
|
||||
-keep class org.apache.** {*;}
|
||||
-keep class org.apache.logging.**{*;}
|
||||
-keepclasseswithmembers class io.netty.** {*;}
|
||||
-keepclasseswithmembers class org.apache.logging.**{*;}
|
||||
-keep class org.apache.http.**{*;}
|
||||
-dontwarn io.netty.**
|
||||
-dontwarn sun.**
|
||||
|
||||
@@ -354,8 +357,17 @@
|
||||
-keep class com.zhidao.autopilot.support.**{*;}
|
||||
-keep class com.zhidao.voice.library.**{*;}
|
||||
-keep class com.zhidao.voicesdk.**{*;}
|
||||
-keep class com.zhidao.smartv2x.**{*;}
|
||||
-keep class com.zhidao.accountsdk.**{*;}
|
||||
-keep class com.zhidao.account.**{*;}
|
||||
-keep class com.zhidao.locupload.**{*;}
|
||||
-keep class com.zhidao.tcloginsdk.**{*;}
|
||||
-keep class com.zhidao.utils.**{*;}
|
||||
-keep class com.hw.videoprocessor.**{*;}
|
||||
-dontwarn com.elegant.network.**
|
||||
|
||||
-keep class com.bytedance.boost_multidex.**{*;}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -131,7 +131,7 @@ targetSdkVersion : 22,
|
||||
jetbrainsannotationsjava5: "org.jetbrains:annotations-java5:15.0",
|
||||
|
||||
// 统一登录
|
||||
accountsdk : "com.zhidao.accountservice:account-sdk:1.0.8",
|
||||
accountsdk : "com.zhidao.accountservice:account-sdk:1.0.11",
|
||||
// crash
|
||||
crashSdk : "com.zhidaoauto.crash.log:library:1.0.5",
|
||||
kotlinstdlibjdk7 : "org.jetbrains.kotlin:kotlin-stdlib-jdk7",
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.mogo.service.passport.IMogoPassportManager;
|
||||
import com.mogo.service.passport.IMogoTicketCallback;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.zhidao.account.sdk.AccountClientManager;
|
||||
import com.zhidao.account.sdk.Environment;
|
||||
import com.zhidao.account.sdk.callback.TicketInfoCallback;
|
||||
import com.zhidao.account.sdk.network.NetEnvironManager;
|
||||
|
||||
@@ -27,13 +28,14 @@ class PassportManager implements IMogoPassportManager {
|
||||
|
||||
private static volatile PassportManager sInstance;
|
||||
|
||||
private PassportManager(){}
|
||||
private PassportManager() {
|
||||
}
|
||||
|
||||
@Keep
|
||||
public static PassportManager getInstance(){
|
||||
if( sInstance == null ){
|
||||
synchronized( PassportManager.class ) {
|
||||
if( sInstance == null ){
|
||||
public static PassportManager getInstance() {
|
||||
if ( sInstance == null ) {
|
||||
synchronized ( PassportManager.class ) {
|
||||
if ( sInstance == null ) {
|
||||
sInstance = new PassportManager();
|
||||
}
|
||||
}
|
||||
@@ -41,7 +43,7 @@ class PassportManager implements IMogoPassportManager {
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
public synchronized void release(){
|
||||
public synchronized void release() {
|
||||
sInstance = null;
|
||||
}
|
||||
|
||||
@@ -77,11 +79,25 @@ class PassportManager implements IMogoPassportManager {
|
||||
|
||||
@Override
|
||||
public void init( Context context ) {
|
||||
AccountClientManager.init( context.getApplicationContext(), getNetEnvironment(), NetEnvironManager.OS_2C, "os2.0-launcher" );
|
||||
}
|
||||
|
||||
private Environment getNetEnvironment() {
|
||||
int mode = DebugConfig.getNetMode();
|
||||
if ( mode == DebugConfig.NET_MODE_DEMO ) {
|
||||
// 演示环境用 qa 的
|
||||
mode = DebugConfig.NET_MODE_QA;
|
||||
}
|
||||
AccountClientManager.init( context.getApplicationContext(), mode, NetEnvironManager.OS_2C, "os2.0-launcher" );
|
||||
switch ( mode ) {
|
||||
case DebugConfig.NET_MODE_DEV:
|
||||
return Environment.dev;
|
||||
case DebugConfig.NET_MODE_DEMO:
|
||||
case DebugConfig.NET_MODE_QA:
|
||||
return Environment.qa;
|
||||
case DebugConfig.NET_MODE_RELEASE:
|
||||
default:
|
||||
return Environment.release;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ dependencies {
|
||||
// 长链
|
||||
implementation 'com.zhidao.socket:built-in-socket:1.0.15'
|
||||
// passport
|
||||
implementation 'com.zhidao.tcloginsdk:tclogin:1.1.0'
|
||||
implementation 'com.zhidao.tcloginsdk:tclogin:1.1.3'
|
||||
|
||||
annotationProcessor 'com.elegant.spi:compiler:1.0.3'
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ MAP_CUSTOM_VERSION=1.2.1.9
|
||||
|
||||
## 工程外部模块
|
||||
# 探路
|
||||
MOGO_MODULE_TANLU_VERSION=1.3.1.16
|
||||
MOGO_MODULE_TANLU_VERSION=1.3.1.20
|
||||
# 车聊聊
|
||||
CARCHATTING_VERSION=1.4.8
|
||||
# 车聊聊接口
|
||||
@@ -76,13 +76,13 @@ MOGO_MODULE_GUIDESHOW_PROVIDER_VERSION=1.0.2-SNAPSHOT
|
||||
# 在线车辆F
|
||||
MOGO_MODULE_ONLINECAR_VERSION=1.0.3.2
|
||||
# 推送
|
||||
MOGO_MODULE_PUSH_VERSION=1.1.5.7
|
||||
MOGO_MODULE_PUSH_VERSION=1.1.6
|
||||
MOGO_MODULE_PUSH_BASE_VERSION=1.1.5.5
|
||||
MOGO_MODULE_PUSH_NOOP_VERSION=1.1.5.6
|
||||
# 广告资源位
|
||||
MOGO_MODULE_AD_CARD_VERSION=1.0.1
|
||||
# 探路上报和分享模块
|
||||
TANLULIB_VERSION=1.3.1.16
|
||||
TANLULIB_VERSION=1.3.1.20
|
||||
MOGO_MODULE_EVENT_PANEL_VERSION = 1.0.0-SNAPSHOT
|
||||
MOGO_MODULE_EVENT_PANEL_NOOP_VERSION = 1.0.0-SNAPSHOT
|
||||
#左侧面板模块
|
||||
@@ -101,8 +101,8 @@ MOGO_MODULE_OBU_VERSION = 1.2.1.10-SNAPSHOT
|
||||
MOGO_MODULE_SPLASH_VERSION = 1.0.0-SNAPSHOT
|
||||
MOGO_MODULE_SPLASH_NOOP_VERSION = 1.0.0-SNAPSHOT
|
||||
|
||||
## 产品库必备配置
|
||||
## 产品库必备配置,产品库自动对versionCode和versionName版本进行升级
|
||||
applicationId=com.mogo.launcer
|
||||
applicationName=IntelligentPilot
|
||||
versionCode=80007
|
||||
versionName=8.0.7-qa_1.1
|
||||
versionName=8.0.7
|
||||
@@ -129,6 +129,11 @@ public class AppsListActivity extends MvpActivity< AppsListView, AppsListPresent
|
||||
overridePendingTransition( R.anim.module_apps_anim_enter, R.anim.module_apps_anim_exit );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void executeFinish() {
|
||||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.intent.IMogoIntentListener;
|
||||
import com.mogo.service.intent.IMogoIntentManager;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
@@ -38,6 +39,7 @@ public class AppsListPresenter extends Presenter< AppsListView > implements IMog
|
||||
super.onCreate( owner );
|
||||
mIntentManager = ( IMogoIntentManager ) ARouter.getInstance().build( MogoServicePaths.PATH_INTENT_MANAGER ).navigation( getContext() );
|
||||
mIntentManager.registerIntentListener( AppsConst.COMMAND_OPERATION, this );
|
||||
mIntentManager.registerIntentListener( Intent.ACTION_CLOSE_SYSTEM_DIALOGS, this );
|
||||
AIAssist.getInstance( getContext() ).registerUnWakeupCommand( AppsConst.CMD_UN_WAKE_CLOSE_APP_LIST, AppsConst.CMD_UN_WAKE_WORDS_CLOSE_APP_LIST, this );
|
||||
}
|
||||
|
||||
@@ -56,6 +58,9 @@ public class AppsListPresenter extends Presenter< AppsListView > implements IMog
|
||||
} catch ( JSONException e ) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else if ( Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals( intentStr ) ) {
|
||||
Logger.d( TAG, "home 键导致 app 列表关闭" );
|
||||
mView.executeFinish();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,6 +95,7 @@ public class AppsListPresenter extends Presenter< AppsListView > implements IMog
|
||||
public void onDestroy( @NonNull LifecycleOwner owner ) {
|
||||
super.onDestroy( owner );
|
||||
mIntentManager.unregisterIntentListener( AppsConst.COMMAND_OPERATION, this );
|
||||
mIntentManager.unregisterIntentListener( Intent.ACTION_CLOSE_SYSTEM_DIALOGS, this );
|
||||
AIAssist.getInstance( getContext() ).unregisterUnWakeupCommand( AppsConst.CMD_UN_WAKE_CLOSE_APP_LIST );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,4 +11,6 @@ import com.mogo.commons.mvp.IView;
|
||||
public interface AppsListView extends IView {
|
||||
|
||||
void closeAppsPanel();
|
||||
|
||||
void executeFinish();
|
||||
}
|
||||
|
||||
@@ -662,4 +662,21 @@ public class TopViewAnimHelper {
|
||||
tvTurnInfo.setVisibility(visibility);
|
||||
|
||||
}
|
||||
|
||||
public void removeAllView(){
|
||||
Logger.d(TAG, "remove all view");
|
||||
isTopViewOut = true;
|
||||
int lastCount = topContainer.getChildCount();
|
||||
for (int i = 0; i < lastCount; i++) {
|
||||
View child = topContainer.getChildAt(i);
|
||||
viewCaches.remove(child);
|
||||
IMogoTopViewStatusListener listener = statusListenerMap.remove(child);
|
||||
if (listener != null) {
|
||||
listener.onViewRemoved(child);
|
||||
}
|
||||
}
|
||||
topContainer.removeAllViews();
|
||||
hideNaviView();
|
||||
MapCenterPointStrategy.setMapCenterPointByScene(mogoMapUIController, Scene.AIMLESS);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,8 +6,12 @@ import android.view.ViewGroup;
|
||||
import android.view.ViewGroup.LayoutParams;
|
||||
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.mogo.module.extensions.R;
|
||||
import com.mogo.service.IMogoServiceApis;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
|
||||
import com.mogo.service.statusmanager.StatusDescriptor;
|
||||
import com.mogo.service.windowview.IMogoTopViewManager;
|
||||
import com.mogo.service.windowview.IMogoTopViewStatusListener;
|
||||
|
||||
@@ -21,10 +25,18 @@ public class TopViewManager implements IMogoTopViewManager {
|
||||
|
||||
private Context context;
|
||||
private LayoutParams parentParams;
|
||||
private IMogoServiceApis serviceApis;
|
||||
|
||||
@Override
|
||||
public void init(Context context) {
|
||||
this.context = context;
|
||||
serviceApis =
|
||||
(IMogoServiceApis) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(context);
|
||||
serviceApis.getStatusManagerApi().registerStatusChangedListener(MogoServicePaths.PATH_EXTENSIONS_TOP_VIEW_MANAGER, StatusDescriptor.MAIN_PAGE_RESUME, (descriptor, isTrue) -> {
|
||||
if (!isTrue) {
|
||||
TopViewAnimHelper.getInstance().removeAllView();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<item>周五</item>
|
||||
<item>周六</item>
|
||||
</string-array>
|
||||
<string name="module_ext_str_dots">···</string>
|
||||
<string name="module_ext_str_dots">99+</string>
|
||||
|
||||
<string name="module_map_str_search_hint">搜索目的地</string>
|
||||
<string name="module_map_str_upload_road_condition">分享</string>
|
||||
|
||||
@@ -0,0 +1,127 @@
|
||||
package com.mogo.module.map;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.mogo.commons.AbsMogoApplication;
|
||||
import com.mogo.map.navi.MogoNaviConfig;
|
||||
import com.mogo.map.uicontroller.EnumMapUI;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
public
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020/7/30
|
||||
*
|
||||
* 接收高德地图车机版广播
|
||||
*/
|
||||
class AutoNaviBroadcastReceiver extends BroadcastReceiver {
|
||||
|
||||
public static final String TAG = "AutoNaviBroadcastReceiver";
|
||||
|
||||
public static final String AUTONAVI_STANDARD_BROADCAST_RECV = "AUTONAVI_STANDARD_BROADCAST_RECV";
|
||||
|
||||
public void register() {
|
||||
IntentFilter inputFilter = new IntentFilter();
|
||||
inputFilter.addAction( AUTONAVI_STANDARD_BROADCAST_RECV );
|
||||
AbsMogoApplication.getApp().registerReceiver( this, inputFilter );
|
||||
}
|
||||
|
||||
public void unregister() {
|
||||
mCallback = null;
|
||||
AbsMogoApplication.getApp().unregisterReceiver( this );
|
||||
}
|
||||
|
||||
private OnMapControlCallback mCallback;
|
||||
|
||||
public void setCallback( OnMapControlCallback mCallback ) {
|
||||
this.mCallback = mCallback;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReceive( Context context, Intent intent ) {
|
||||
String action = intent.getAction();
|
||||
|
||||
int keyType = intent.getIntExtra( "KEY_TYPE", 0 );
|
||||
int type = intent.getIntExtra( "EXTRA_TYPE", -1 );
|
||||
int operaType = intent.getIntExtra( "EXTRA_OPERA", -1 );
|
||||
|
||||
Logger.d( TAG, "action = %s, keyType=%s, type=%s, operType=%s", action, keyType, type, operaType );
|
||||
|
||||
if ( !TextUtils.equals( action, AUTONAVI_STANDARD_BROADCAST_RECV ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( mCallback == null ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( keyType == 10027 ) {
|
||||
if ( type == 0 ) {
|
||||
mCallback.onTrafficModeChanged( operaType == 0 );
|
||||
} else if ( type == 2 ) {
|
||||
if ( operaType == 0 ) {
|
||||
mCallback.onCameraModeChanged( EnumMapUI.CarUp_2D );
|
||||
} else if ( operaType == 1 ) {
|
||||
mCallback.onCameraModeChanged( EnumMapUI.NorthUP_2D );
|
||||
} else if ( operaType == 2 ) {
|
||||
mCallback.onCameraModeChanged( EnumMapUI.CarUp_3D );
|
||||
}
|
||||
}
|
||||
} else if ( keyType == 10048 ) {
|
||||
//0:自动; 1:白天; 2:黑夜;
|
||||
int dayNightMode = intent.getIntExtra( "EXTRA_DAY_NIGHT_MODE", -1 );
|
||||
if ( dayNightMode == 0 ) {
|
||||
mCallback.onDayNightModeChanged( EnumMapUI.Type_AUTO_LIGHT_Night );
|
||||
} else if ( dayNightMode == 1 ) {
|
||||
mCallback.onDayNightModeChanged( EnumMapUI.Type_Light );
|
||||
} else if ( dayNightMode == 2 ) {
|
||||
mCallback.onDayNightModeChanged( EnumMapUI.Type_Night );
|
||||
}
|
||||
} else if ( keyType == 10049 ) {
|
||||
//继续导航
|
||||
boolean extraEnduranceData = intent.getBooleanExtra( "EXTRA_ENDURANCE_DATA", false );
|
||||
if ( extraEnduranceData ) {
|
||||
mCallback.onContinueNavi();
|
||||
}
|
||||
} else if ( keyType == 20009 ) {
|
||||
mCallback.onOpenNavi();
|
||||
} else if ( keyType == 10038 || keyType == 10007 ) {
|
||||
double lat;
|
||||
double lon;
|
||||
|
||||
if ( type == 10007 ) {
|
||||
lat = intent.getDoubleExtra( "ENTRY_LAT", 0.0 );
|
||||
lon = intent.getDoubleExtra( "ENTRY_LON", 0.0 );
|
||||
} else {
|
||||
lat = intent.getDoubleExtra( "LAT", 0.0 );
|
||||
lon = intent.getDoubleExtra( "LON", 0.0 );
|
||||
}
|
||||
mCallback.onCalculatePath( lon, lat );
|
||||
} else if ( keyType == 10021 ) {
|
||||
mCallback.onStopNaviInternal( intent );
|
||||
} else if ( keyType == 10005 ) {
|
||||
// 仅在导航场景下,⽀持第三⽅进⾏路线偏好的重新选择。
|
||||
// 避免收费 | 1
|
||||
// 多策略算路 | 2
|
||||
// 不走高速 | 3
|
||||
// 躲避拥堵 | 4
|
||||
// 不走高速且避免收费 | 5
|
||||
// 不走高速且躲避拥堵 | 6
|
||||
// 躲避收费和拥堵 | 7
|
||||
// 不走高速躲避收费和拥堵 | 8
|
||||
// 高速优先 | 20
|
||||
// 躲避拥堵且高速优先 | 24
|
||||
int prefer = intent.getIntExtra( "NAVI_ROUTE_PREFER", 0 );
|
||||
MogoNaviConfig config = new MogoNaviConfig().congestion( prefer == 4 )
|
||||
.cost( prefer == 1 || prefer == 7 )
|
||||
.highSpeed( prefer == 20 )
|
||||
.avoidSpeed( prefer == 3 );
|
||||
mCallback.onReCalculatePath( config );
|
||||
}
|
||||
mCallback.onEnd( intent );
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
package com.mogo.module.map;
|
||||
|
||||
import com.mogo.map.uicontroller.EnumMapUI;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
public
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020/7/30
|
||||
* <p>
|
||||
* 语音控制地图
|
||||
*/
|
||||
class MapControlCommandHandler {
|
||||
|
||||
private static final String TAG = "CustomVoiceCommandHandler";
|
||||
|
||||
private OnMapControlCallback mCallback;
|
||||
|
||||
public void setCallback( OnMapControlCallback mCallback ) {
|
||||
this.mCallback = mCallback;
|
||||
}
|
||||
|
||||
public void handleVoiceCommand( String cmd ) {
|
||||
Logger.d( TAG, cmd );
|
||||
switch ( cmd ) {
|
||||
case VoiceConstants.CMD_MAP_TRAFFIC_MODE_UN_WAKEUP:
|
||||
case VoiceConstants.CMD_MAP_TRAFFIC_MODE:
|
||||
mCallback.onTrafficModeChanged( true );
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_UN_TRAFFIC_MODE_UN_WAKEUP:
|
||||
case VoiceConstants.CMD_MAP_UN_TRAFFIC_MODE:
|
||||
mCallback.onTrafficModeChanged( false );
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_ZOOM_IN_UN_WAKEUP:
|
||||
case VoiceConstants.CMD_MAP_ZOOM_IN:
|
||||
mCallback.onZoomMap( true );
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_ZOOM_OUT_UN_WAKEUP:
|
||||
case VoiceConstants.CMD_MAP_ZOOM_OUT:
|
||||
mCallback.onZoomMap( false );
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_2D_UN_WAKEUP:
|
||||
case VoiceConstants.CMD_MAP_2D:
|
||||
case VoiceConstants.CMD_MAP_NORTH_UP_MODE_UN_WAKEUP:
|
||||
case VoiceConstants.CMD_MAP_NORTH_UP_MODE:
|
||||
mCallback.onCameraModeChanged( EnumMapUI.NorthUP_2D );
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_3D_UN_WAKEUP:
|
||||
case VoiceConstants.CMD_MAP_3D:
|
||||
mCallback.onCameraModeChanged( EnumMapUI.CarUp_3D );
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_DAY_TIME_MODE_UN_WAKEUP:
|
||||
case VoiceConstants.CMD_MAP_DAY_TIME_MODE:
|
||||
mCallback.onDayNightModeChanged( EnumMapUI.Type_Light );
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_HISTORY_UN_WAKEUP:
|
||||
case VoiceConstants.CMD_MAP_HISTORY:
|
||||
mCallback.onOpenNavi();
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_STOP_NAVI_MODE_UN_WAKEUP:
|
||||
case VoiceConstants.CMD_MAP_STOP_NAVI_MODE:
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_NIGHT_MODE_UN_WAKEUP:
|
||||
case VoiceConstants.CMD_MAP_NIGHT_MODE:
|
||||
mCallback.onDayNightModeChanged( EnumMapUI.Type_Night );
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_AUTO_LIGHT_NIGHT_MODE_UN_WAKEUP:
|
||||
case VoiceConstants.CMD_MAP_AUTO_LIGHT_NIGHT_MODE:
|
||||
mCallback.onDayNightModeChanged( EnumMapUI.Type_AUTO_LIGHT_Night );
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE:
|
||||
mCallback.onDisplayOverview();
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE:
|
||||
mCallback.onContinueNavi();
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_CAR_UP_MODE_UN_WAKEUP:
|
||||
case VoiceConstants.CMD_MAP_CAR_UP_MODE:
|
||||
mCallback.onCameraModeChanged( EnumMapUI.CarUp_2D );
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_SPEAK_DRAFT_MODE:
|
||||
case VoiceConstants.CMD_MAP_SPEAK_DRAFT_MODE_UN_WAKEUP:
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_SPEAK_DETAIL_MODE:
|
||||
case VoiceConstants.CMD_MAP_SPEAK_DETAIL_MODE_UN_WAKEUP:
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_SPEAK_REMAIN:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -39,9 +39,6 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter > implements
|
||||
|
||||
@Override
|
||||
protected void initViews() {
|
||||
//mMogoMapView = findViewById( R.id.module_map_id_map );
|
||||
//mMogoMap = mMogoMapView.getMap();
|
||||
//mMogoMap.getUIController().showMyLocation( true );
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -63,9 +60,6 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter > implements
|
||||
@Override
|
||||
public void onActivityCreated( @Nullable Bundle savedInstanceState ) {
|
||||
super.onActivityCreated( savedInstanceState );
|
||||
//if ( mMogoMapView != null ) {
|
||||
// mMogoMapView.onCreate( savedInstanceState );
|
||||
//}
|
||||
initMapView();
|
||||
}
|
||||
|
||||
@@ -125,7 +119,7 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter > implements
|
||||
uiSettings.setZoomControlsEnabled( false );
|
||||
//设置双指缩放手势是否可用。
|
||||
uiSettings.setZoomGesturesEnabled( true );
|
||||
mMogoMap.getUIController().changeMapMode(EnumMapUI.NorthUP_2D);
|
||||
mMogoMap.getUIController().changeMapMode( EnumMapUI.NorthUP_2D );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,16 +1,12 @@
|
||||
package com.mogo.module.map;
|
||||
|
||||
import android.app.ActivityManager;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.graphics.Rect;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.UiThread;
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
@@ -34,10 +30,8 @@ import com.mogo.service.launcher.IMogoLauncher;
|
||||
import com.mogo.service.map.IMogoMapService;
|
||||
import com.mogo.service.module.IMogoRegisterCenter;
|
||||
import com.mogo.service.module.IMogoSearchManager;
|
||||
import com.mogo.service.module.IMogoSettingManager;
|
||||
import com.mogo.service.statusmanager.IMogoStatusManager;
|
||||
import com.mogo.service.strategy.IMogoRefreshStrategyController;
|
||||
import com.mogo.utils.AppUtils;
|
||||
import com.mogo.utils.ResourcesHelper;
|
||||
import com.mogo.utils.UiThreadHandler;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
@@ -54,10 +48,10 @@ import java.util.Map;
|
||||
public class MapPresenter extends Presenter< MapView > implements
|
||||
IMogoIntentListener,
|
||||
IMogoVoiceCmdCallBack,
|
||||
IMogoNaviListener2 {
|
||||
IMogoNaviListener2,
|
||||
OnMapControlCallback {
|
||||
|
||||
private static final String TAG = "MapPresenter";
|
||||
private static final String AUTONAVI_STANDARD_BROADCAST_RECV = "AUTONAVI_STANDARD_BROADCAST_RECV";
|
||||
private IMogoMapService mMogoMapService;
|
||||
private IMogoIntentManager mMogoIntentManager;
|
||||
private IMogoSearchManager mSearchManager;
|
||||
@@ -66,7 +60,6 @@ public class MapPresenter extends Presenter< MapView > implements
|
||||
private IMogoRegisterCenter mRegisterCenter;
|
||||
private IMogoLauncher mLauncher;
|
||||
private IMogoSearchManager mMogoSearchManager;
|
||||
private IMogoSettingManager mSettingManager;
|
||||
private Rect mDisplayOverviewBounds;
|
||||
|
||||
|
||||
@@ -80,114 +73,112 @@ public class MapPresenter extends Presenter< MapView > implements
|
||||
mView.getUIController().recoverLockMode();
|
||||
}
|
||||
};
|
||||
private AutoNaviBroadcastReceiver mAutoNaviReceiver;
|
||||
private MapControlCommandHandler mCustomVoiceCommandHandler;
|
||||
|
||||
public MapPresenter( MapView view ) {
|
||||
super( view );
|
||||
initBroadcast();
|
||||
mCustomVoiceCommandHandler = new MapControlCommandHandler();
|
||||
mCustomVoiceCommandHandler.setCallback( this );
|
||||
}
|
||||
|
||||
private BroadcastReceiver broadcastReceiver;
|
||||
|
||||
/**
|
||||
* opera type为0:0 实时路况开;1实时路况关 type为1:0 放大地图; 1缩小地图 type为2:0切换2d车上; 1切换2d北上;2切换3d车上支持
|
||||
*/
|
||||
private void initBroadcast() {
|
||||
// 高德地图免唤醒
|
||||
broadcastReceiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive( Context context, Intent intent ) {
|
||||
String action = intent.getAction();
|
||||
Logger.d( TAG, "action = %s", action );
|
||||
mAutoNaviReceiver = new AutoNaviBroadcastReceiver();
|
||||
mAutoNaviReceiver.setCallback( this );
|
||||
mAutoNaviReceiver.register();
|
||||
}
|
||||
|
||||
if ( !TextUtils.equals( action, AUTONAVI_STANDARD_BROADCAST_RECV ) ) {
|
||||
return;
|
||||
@Override
|
||||
public void onTrafficModeChanged( boolean open ) {
|
||||
mView.getUIController().setTrafficEnabled( open );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCameraModeChanged( EnumMapUI mode ) {
|
||||
mView.getUIController().changeMapMode( mode );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDayNightModeChanged( EnumMapUI mode ) {
|
||||
mView.getUIController().changeMapMode( mode );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onContinueNavi() {
|
||||
if ( CustomNaviInterrupter.getInstance().interrupt() ) {
|
||||
return;
|
||||
}
|
||||
if ( mStatusManager.isMainPageOnResume() ) {
|
||||
mStatusManager.setDisplayOverview( TAG, false );
|
||||
mView.getUIController().recoverLockMode();
|
||||
AIAssist.getInstance( getContext() ).speakTTSVoice( "已为您继续导航" );
|
||||
UiThreadHandler.removeCallbacks( mLockCarRunnable );
|
||||
} else {
|
||||
mLauncher.backToLauncher( getContext() );
|
||||
UiThreadHandler.postDelayed( () -> {
|
||||
try {
|
||||
mStatusManager.setDisplayOverview( TAG, false );
|
||||
mView.getUIController().recoverLockMode();
|
||||
AIAssist.getInstance( getContext() ).speakTTSVoice( "已为您继续导航" );
|
||||
UiThreadHandler.removeCallbacks( mLockCarRunnable );
|
||||
} catch ( Exception e ) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
int key_type = intent.getIntExtra( "KEY_TYPE", 0 );
|
||||
int type = intent.getIntExtra( "EXTRA_TYPE", -1 );
|
||||
int opera_type = intent.getIntExtra( "EXTRA_OPERA", -1 );
|
||||
Logger.d( TAG, "key_type" + key_type );
|
||||
if ( key_type == 10027 ) {
|
||||
if ( type == 0 ) {
|
||||
onChangeTrafficMode( opera_type );
|
||||
} else if ( type == 2 ) {
|
||||
onChangeCameraMode( opera_type );
|
||||
}
|
||||
} else if ( key_type == 10048 ) {
|
||||
//0:自动; 1:白天; 2:黑夜;
|
||||
int day_night_mode = intent.getIntExtra( "EXTRA_DAY_NIGHT_MODE", -1 );
|
||||
onChangeDayNightMode( day_night_mode );
|
||||
//继续导航
|
||||
} else if ( key_type == 10049 ) {
|
||||
if ( CustomNaviInterrupter.getInstance().interrupt() ) {
|
||||
return;
|
||||
}
|
||||
boolean extra_endurance_data = intent.getBooleanExtra( "EXTRA_ENDURANCE_DATA", false );
|
||||
if ( extra_endurance_data ) {
|
||||
onContinueNavigation();
|
||||
}
|
||||
} else if ( key_type == 10006 ) {
|
||||
// 避免冲突,会同时发送两个广播,这里不操作。
|
||||
//int extra_is_show = intent.getIntExtra( "EXTRA_IS_SHOW", 0 );
|
||||
//if ( extra_is_show == 0 ) {
|
||||
// onDisplayOverview();
|
||||
//} else {
|
||||
// onContinueNavigation();
|
||||
//}
|
||||
} else if ( key_type == 10005 ) {
|
||||
int navi_route_prefer = intent.getIntExtra( "NAVI_ROUTE_PREFER", type );
|
||||
} else if ( key_type == 20009 ) {
|
||||
if ( CustomNaviInterrupter.getInstance().interrupt() ) {
|
||||
return;
|
||||
}
|
||||
onOpenNavi();
|
||||
} else if ( key_type == 10038 || key_type == 10007 ) {
|
||||
if ( CustomNaviInterrupter.getInstance().interrupt() ) {
|
||||
return;
|
||||
}
|
||||
}, 2_000L );
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOpenNavi() {
|
||||
if ( CustomNaviInterrupter.getInstance().interrupt() ) {
|
||||
return;
|
||||
}
|
||||
mLauncher.backToLauncher( getContext() );
|
||||
if ( !mMogoMapService.getNavi( getContext() ).isNaviing() && !mStatusManager.isSearchUIShow() ) {
|
||||
mSearchManager.showSearch();
|
||||
}
|
||||
AIAssist.getInstance( getContext() ).speakTTSVoice( "已打开" );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCalculatePath( double lon, double lat ) {
|
||||
if ( CustomNaviInterrupter.getInstance().interrupt() ) {
|
||||
return;
|
||||
}
|
||||
mLauncher.backToLauncher( getContext() );
|
||||
mMogoSearchManager.calculatePath( new MogoLatLng( lat, lon ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStopNaviInternal( Intent intent ) {
|
||||
if ( CustomNaviInterrupter.getInstance().interrupt() ) {
|
||||
// 导航过程中语音指令退出导航,会出现 activity 不走 onResume 的情况
|
||||
UiThreadHandler.postDelayed( () -> {
|
||||
if ( isForeground( getContext() ) && !hasOthersActivity() && !mStatusManager.isMainPageOnResume() ) {
|
||||
mLauncher.backToLauncher( getContext() );
|
||||
onChoosePath( intent, key_type );
|
||||
} else if ( key_type == 10021 ) {
|
||||
if ( CustomNaviInterrupter.getInstance().interrupt() ) {
|
||||
// 导航过程中语音指令退出导航,会出现 activity 不走 onResume 的情况
|
||||
UiThreadHandler.postDelayed( () -> {
|
||||
if ( isForeground( getContext() ) && !hasOthersActivity() && !mStatusManager.isMainPageOnResume() ) {
|
||||
mLauncher.backToLauncher( getContext() );
|
||||
}
|
||||
}, 500L );
|
||||
mMogoIntentManager.invoke( AUTONAVI_STANDARD_BROADCAST_RECV, intent );
|
||||
return;
|
||||
}
|
||||
onStopNaviInternal();
|
||||
} else if ( key_type == 10005 ) {
|
||||
// 仅在导航场景下,⽀持第三⽅进⾏路线偏好的重新选择。
|
||||
// 避免收费 | 1
|
||||
// 多策略算路 | 2
|
||||
// 不走高速 | 3
|
||||
// 躲避拥堵 | 4
|
||||
// 不走高速且避免收费 | 5
|
||||
// 不走高速且躲避拥堵 | 6
|
||||
// 躲避收费和拥堵 | 7
|
||||
// 不走高速躲避收费和拥堵 | 8
|
||||
// 高速优先 | 20
|
||||
// 躲避拥堵且高速优先 | 24
|
||||
if ( CustomNaviInterrupter.getInstance().interrupt() ) {
|
||||
return;
|
||||
}
|
||||
int prefer = intent.getIntExtra( "NAVI_ROUTE_PREFER", 0 );
|
||||
MogoNaviConfig config = new MogoNaviConfig().congestion( prefer == 4 )
|
||||
.cost( prefer == 1 || prefer == 7 )
|
||||
.highSpeed( prefer == 20 )
|
||||
.avoidSpeed( prefer == 3 );
|
||||
mMogoMapService.getNavi( getContext() ).reCalculateRoute( config );
|
||||
|
||||
}
|
||||
mMogoIntentManager.invoke( AUTONAVI_STANDARD_BROADCAST_RECV, intent );
|
||||
}
|
||||
};
|
||||
}, 500L );
|
||||
onEnd( intent );
|
||||
return;
|
||||
}
|
||||
mMogoMapService.getNavi( getContext() ).stopNavi();
|
||||
}
|
||||
|
||||
IntentFilter inputFilter = new IntentFilter();
|
||||
inputFilter.addAction( AUTONAVI_STANDARD_BROADCAST_RECV );
|
||||
getContext().registerReceiver( broadcastReceiver, inputFilter );
|
||||
@Override
|
||||
public void onReCalculatePath( MogoNaviConfig config ) {
|
||||
if ( CustomNaviInterrupter.getInstance().interrupt() ) {
|
||||
return;
|
||||
}
|
||||
mMogoMapService.getNavi( getContext() ).reCalculateRoute( config );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnd( Intent intent ) {
|
||||
mMogoIntentManager.invoke( AutoNaviBroadcastReceiver.AUTONAVI_STANDARD_BROADCAST_RECV, intent );
|
||||
}
|
||||
|
||||
private boolean isForeground( Context context ) {
|
||||
@@ -218,91 +209,8 @@ public class MapPresenter extends Presenter< MapView > implements
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 切换交通态势模式
|
||||
*
|
||||
* @param mode
|
||||
*/
|
||||
private void onChangeTrafficMode( int mode ) {
|
||||
mView.getUIController().setTrafficEnabled( mode == 0 );
|
||||
}
|
||||
|
||||
/**
|
||||
* 切换地图视图朝向模式
|
||||
*/
|
||||
private void onChangeCameraMode( int mode ) {
|
||||
if ( mode == 0 ) {
|
||||
mView.getUIController().changeMapMode( EnumMapUI.CarUp_2D );
|
||||
} else if ( mode == 1 ) {
|
||||
mView.getUIController().changeMapMode( EnumMapUI.NorthUP_2D );
|
||||
} else if ( mode == 2 ) {
|
||||
mView.getUIController().changeMapMode( EnumMapUI.CarUp_3D );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 切换白天黑夜模式
|
||||
*
|
||||
* @param mode
|
||||
*/
|
||||
private void onChangeDayNightMode( int mode ) {
|
||||
if ( mode == 0 ) {
|
||||
mView.getUIController().changeMapMode( EnumMapUI.Type_AUTO_LIGHT_Night );
|
||||
} else if ( mode == 1 ) {
|
||||
mView.getUIController().changeMapMode( EnumMapUI.Type_Light );
|
||||
} else if ( mode == 2 ) {
|
||||
mView.getUIController().changeMapMode( EnumMapUI.Type_Night );
|
||||
}
|
||||
}
|
||||
|
||||
private void onStopNaviInternal() {
|
||||
mMogoMapService.getNavi( getContext() ).stopNavi();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 唤醒指令导航去哪里
|
||||
*/
|
||||
private void onChoosePath( Intent intent, int type ) {
|
||||
double lat;
|
||||
double lon;
|
||||
|
||||
if ( type == 10007 ) {
|
||||
lat = intent.getDoubleExtra( "ENTRY_LAT", 0.0 );
|
||||
lon = intent.getDoubleExtra( "ENTRY_LON", 0.0 );
|
||||
} else {
|
||||
lat = intent.getDoubleExtra( "LAT", 0.0 );
|
||||
lon = intent.getDoubleExtra( "LON", 0.0 );
|
||||
}
|
||||
mMogoSearchManager.calculatePath( new MogoLatLng( lat, lon ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* 继续导航
|
||||
*/
|
||||
private void onContinueNavigation() {
|
||||
|
||||
if ( mStatusManager.isMainPageOnResume() ) {
|
||||
mStatusManager.setDisplayOverview( TAG, false );
|
||||
mView.getUIController().recoverLockMode();
|
||||
AIAssist.getInstance( getContext() ).speakTTSVoice( "已为您继续导航" );
|
||||
UiThreadHandler.removeCallbacks( mLockCarRunnable );
|
||||
} else {
|
||||
mLauncher.backToLauncher( getContext() );
|
||||
UiThreadHandler.postDelayed( () -> {
|
||||
try {
|
||||
mStatusManager.setDisplayOverview( TAG, false );
|
||||
mView.getUIController().recoverLockMode();
|
||||
AIAssist.getInstance( getContext() ).speakTTSVoice( "已为您继续导航" );
|
||||
UiThreadHandler.removeCallbacks( mLockCarRunnable );
|
||||
} catch ( Exception e ) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}, 2_000L );
|
||||
}
|
||||
}
|
||||
|
||||
private void onDisplayOverview() {
|
||||
@Override
|
||||
public void onDisplayOverview() {
|
||||
if ( !mMogoMapService.getNavi( getContext() ).isNaviing() ) {
|
||||
Logger.d( TAG, "未开始导航." );
|
||||
return;
|
||||
@@ -329,7 +237,8 @@ public class MapPresenter extends Presenter< MapView > implements
|
||||
UiThreadHandler.postDelayed( mLockCarRunnable, 20_000 );
|
||||
}
|
||||
|
||||
private void zoomMap( boolean zoomIn ) {
|
||||
@Override
|
||||
public void onZoomMap( boolean zoomIn ) {
|
||||
boolean isLocked = mMogoMapService.getMapUIController().isCarLocked();
|
||||
MapControlResult result = mView.getUIController().changeZoom( zoomIn );
|
||||
if ( !CustomNaviInterrupter.getInstance().interrupt() ) {
|
||||
@@ -356,14 +265,6 @@ public class MapPresenter extends Presenter< MapView > implements
|
||||
}
|
||||
}
|
||||
|
||||
private void onOpenNavi() {
|
||||
mLauncher.backToLauncher( getContext() );
|
||||
if ( !mMogoMapService.getNavi( getContext() ).isNaviing() && !mStatusManager.isSearchUIShow() ) {
|
||||
mSearchManager.showSearch();
|
||||
}
|
||||
AIAssist.getInstance( getContext() ).speakTTSVoice( "已打开" );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate( @NonNull LifecycleOwner owner ) {
|
||||
super.onCreate( owner );
|
||||
@@ -378,7 +279,6 @@ public class MapPresenter extends Presenter< MapView > implements
|
||||
mRegisterCenter.registerMogoNaviListener( TAG, this );
|
||||
mLauncher = apis.getLauncherApi();
|
||||
mMogoSearchManager = apis.getSearchManagerApi();
|
||||
mSettingManager = apis.getSettingManagerApi();
|
||||
|
||||
IMogoNavi mogoNavi = mMogoMapService.getNavi( getContext() );
|
||||
mogoNavi.setCalculatePathDisplayBounds( new Rect(
|
||||
@@ -416,8 +316,8 @@ public class MapPresenter extends Presenter< MapView > implements
|
||||
@Override
|
||||
public void onDestroy( @NonNull LifecycleOwner owner ) {
|
||||
super.onDestroy( owner );
|
||||
if ( broadcastReceiver != null ) {
|
||||
getContext().unregisterReceiver( broadcastReceiver );
|
||||
if ( mAutoNaviReceiver != null ) {
|
||||
mAutoNaviReceiver.unregister();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -454,82 +354,7 @@ public class MapPresenter extends Presenter< MapView > implements
|
||||
@Override
|
||||
public void onCmdSelected( String cmd ) {
|
||||
Logger.d( TAG, cmd );
|
||||
switch ( cmd ) {
|
||||
case VoiceConstants.CMD_MAP_TRAFFIC_MODE_UN_WAKEUP:
|
||||
case VoiceConstants.CMD_MAP_TRAFFIC_MODE:
|
||||
mView.getUIController().setTrafficEnabled( true );
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_UN_TRAFFIC_MODE_UN_WAKEUP:
|
||||
case VoiceConstants.CMD_MAP_UN_TRAFFIC_MODE:
|
||||
mView.getUIController().setTrafficEnabled( false );
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_ZOOM_IN_UN_WAKEUP:
|
||||
case VoiceConstants.CMD_MAP_ZOOM_IN:
|
||||
zoomMap( true );
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_ZOOM_OUT_UN_WAKEUP:
|
||||
case VoiceConstants.CMD_MAP_ZOOM_OUT:
|
||||
zoomMap( false );
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_2D_UN_WAKEUP:
|
||||
case VoiceConstants.CMD_MAP_2D:
|
||||
case VoiceConstants.CMD_MAP_NORTH_UP_MODE_UN_WAKEUP:
|
||||
case VoiceConstants.CMD_MAP_NORTH_UP_MODE:
|
||||
mView.getUIController().changeMapMode( EnumMapUI.NorthUP_2D );
|
||||
break;
|
||||
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_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:
|
||||
mLauncher.backToLauncher( getContext() );
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_NIGHT_MODE_UN_WAKEUP:
|
||||
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_UN_WAKEUP:
|
||||
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:
|
||||
onDisplayOverview();
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE:
|
||||
onContinueNavigation();
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_CAR_UP_MODE_UN_WAKEUP:
|
||||
case VoiceConstants.CMD_MAP_CAR_UP_MODE:
|
||||
mView.getUIController().changeMapMode( EnumMapUI.CarUp_2D );
|
||||
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_SPEAK_DRAFT_MODE:
|
||||
case VoiceConstants.CMD_MAP_SPEAK_DRAFT_MODE_UN_WAKEUP:
|
||||
mSettingManager.speakDraft();
|
||||
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_SPEAK_DETAIL_MODE:
|
||||
case VoiceConstants.CMD_MAP_SPEAK_DETAIL_MODE_UN_WAKEUP:
|
||||
mSettingManager.speakDetail();
|
||||
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
|
||||
break;
|
||||
case VoiceConstants.CMD_MAP_SPEAK_REMAIN:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
mCustomVoiceCommandHandler.handleVoiceCommand( cmd );
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.mogo.module.map;
|
||||
|
||||
import android.content.Intent;
|
||||
|
||||
import com.mogo.map.navi.MogoNaviConfig;
|
||||
import com.mogo.map.uicontroller.EnumMapUI;
|
||||
|
||||
public interface OnMapControlCallback {
|
||||
|
||||
// 交通态势
|
||||
void onTrafficModeChanged( boolean open );
|
||||
|
||||
// 2d、3d模式切换、正北、车头
|
||||
void onCameraModeChanged( EnumMapUI mode);
|
||||
|
||||
// 白天、黑夜模式切换
|
||||
void onDayNightModeChanged( EnumMapUI mode );
|
||||
|
||||
// 继续导航
|
||||
void onContinueNavi();
|
||||
|
||||
// 打开导航
|
||||
void onOpenNavi();
|
||||
|
||||
// 开始路径规划
|
||||
void onCalculatePath( double lon, double lat );
|
||||
|
||||
// 调用停止导航方法
|
||||
void onStopNaviInternal( Intent intent );
|
||||
|
||||
// 重新规划路线
|
||||
void onReCalculatePath( MogoNaviConfig config );
|
||||
|
||||
// 结束
|
||||
void onEnd( Intent intent );
|
||||
|
||||
// 查看全程
|
||||
void onDisplayOverview();
|
||||
|
||||
// 缩放地图
|
||||
void onZoomMap( boolean zoomIn );
|
||||
}
|
||||
Reference in New Issue
Block a user