diff --git a/gradle.properties b/gradle.properties
index 6bc1086401..10b4aa2f49 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -60,7 +60,7 @@ MOGO_MODULE_GUIDESHOW_VERSION=1.0.2-SNAPSHOT
# 视频引导接口
MOGO_MODULE_GUIDESHOW_PROVIDER_VERSION=1.0.2-SNAPSHOT
# 在线车辆F
-MOGO_MODULE_ONLINECAR_VERSION=1.0.2-SNAPSHOT
+MOGO_MODULE_ONLINECAR_VERSION=1.0.3-SNAPSHOT
# v2x
MOGO_MODULE_V2X_VERSION=1.0.3-SNAPSHOT
# 媒体卡片
diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java
index 54cc9a4266..2c404644cf 100644
--- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java
+++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java
@@ -14,6 +14,7 @@ import android.view.MotionEvent;
import android.view.View;
import android.view.animation.Interpolator;
+import com.alibaba.idst.nls.internal.utils.L;
import com.amap.api.maps.AMap;
import com.amap.api.maps.AMapUtils;
import com.amap.api.maps.CameraUpdateFactory;
@@ -48,6 +49,7 @@ import com.mogo.map.listener.MogoMapListenerHandler;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.IMogoMapUIController;
+import com.mogo.map.uicontroller.MapControlResult;
import com.mogo.utils.WindowUtils;
import com.mogo.utils.logger.Logger;
@@ -381,9 +383,20 @@ public class AMapNaviViewWrapper implements IMogoMapView,
}
@Override
- public void changeZoom( boolean zoom ) {
+ public MapControlResult changeZoom( boolean zoom ) {
if ( checkAMapView() ) {
mDefaultZoomLevel = ( int ) ( getMap().getZoomLevel() + 0.5f );
+
+ if ( zoom ) {
+ if ( mDefaultZoomLevel >= 20 ) {
+ return MapControlResult.TARGET;
+ }
+ } else {
+ if ( mDefaultZoomLevel <= 3 ) {
+ return MapControlResult.TARGET;
+ }
+ }
+
if ( zoom ) {
mDefaultZoomLevel += 2f;
if ( mDefaultZoomLevel > 20 ) {
@@ -397,15 +410,17 @@ public class AMapNaviViewWrapper implements IMogoMapView,
}
changeZoom( ( int ) mDefaultZoomLevel );
}
+ return MapControlResult.SUCCESS;
}
@Override
- public void changeZoom( float zoom ) {
+ public MapControlResult changeZoom( float zoom ) {
Logger.d( TAG, "changeZoom %s", zoom );
if ( DebugConfig.isDebug() ) {
Logger.d( TAG, Log.getStackTraceString( new Throwable() ) );
}
getMap().changeZoom( zoom );
+ return MapControlResult.SUCCESS;
}
@Override
@@ -448,8 +463,10 @@ public class AMapNaviViewWrapper implements IMogoMapView,
break;
case NorthUP_2D:
mMapView.setNaviMode( AMapNaviView.NORTH_UP_MODE );
- break;
+ break;
}
+
+ Logger.d(TAG,"mCurrentUIMode--->"+mCurrentUIMode.name());
if ( options == null ) {
return;
}
diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java
index ffc5caa62f..ee13555bc3 100644
--- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java
+++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java
@@ -29,6 +29,7 @@ import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.map.marker.MogoMarkersHandler;
import com.mogo.map.navi.MogoCalculatePath;
import com.mogo.map.navi.OnCalculatePathItemClickInteraction;
+import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.WindowUtils;
import com.mogo.utils.logger.Logger;
@@ -180,27 +181,17 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction {
return;
}
checkAMapInstance();
- mAMap.animateCamera( CameraUpdateFactory.newLatLngBoundsRect(
+ mAMap.moveCamera( CameraUpdateFactory.newLatLngBoundsRect(
bounds,
mBoundRect.left,
mBoundRect.right,
mBoundRect.top,
- mBoundRect.bottom ),
- new AMap.CancelableCallback() {
- @Override
- public void onFinish() {
- if ( after != null ) {
- after.run();
- }
- }
-
- @Override
- public void onCancel() {
- if ( after != null ) {
- after.run();
- }
- }
- } );
+ mBoundRect.bottom ));
+ UiThreadHandler.postDelayed( ()->{
+ if ( after != null ) {
+ after.run();
+ }
+ }, 2000 );
}
private void checkAMapInstance() {
diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java
index de5ccd64bf..0c5fd01576 100644
--- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java
+++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java
@@ -11,6 +11,7 @@ import com.mogo.map.MogoMap;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.IMogoMapUIController;
+import com.mogo.map.uicontroller.MapControlResult;
import com.mogo.utils.logger.Logger;
import java.util.List;
@@ -59,17 +60,19 @@ public class AMapUIController implements IMogoMapUIController {
}
@Override
- public void changeZoom(boolean zoom) {
+ public MapControlResult changeZoom( boolean zoom) {
if (mClient != null) {
- mClient.changeZoom(zoom);
+ return mClient.changeZoom(zoom);
}
+ return MapControlResult.ERROR;
}
@Override
- public void changeZoom(float zoom) {
+ public MapControlResult changeZoom(float zoom) {
if (mClient != null) {
- mClient.changeZoom(zoom);
+ return mClient.changeZoom(zoom);
}
+ return MapControlResult.ERROR;
}
@Override
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 e29b5e938f..d5bdcc35f0 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
@@ -27,14 +27,14 @@ public interface IMogoMapUIController {
/**
* 地图缩放
*
- * @param zoomIn true - 方法 false - 缩小
+ * @param zoomIn true - 放大 false - 缩小
*/
- void changeZoom( boolean zoomIn );
+ MapControlResult changeZoom( boolean zoomIn );
/**
* 修改缩放级别
*/
- void changeZoom( float zoom );
+ MapControlResult changeZoom( float zoom );
/**
* 切换2D/3D模式
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/MapControlResult.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/MapControlResult.java
new file mode 100644
index 0000000000..8735d80033
--- /dev/null
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/MapControlResult.java
@@ -0,0 +1,30 @@
+package com.mogo.map.uicontroller;
+
+/**
+ * @author congtaowang
+ * @since 2020-04-01
+ *
+ * 地图控制结果
+ */
+public enum MapControlResult {
+
+ /**
+ * 成功
+ */
+ SUCCESS,
+
+ /**
+ * 当前已经为预期结果
+ */
+ TARGET,
+
+ /**
+ * 失败
+ */
+ FAIL,
+
+ /**
+ * 错误,未执行
+ */
+ ERROR
+}
diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java
index 2e9ab03a71..7d37b79375 100644
--- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java
+++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java
@@ -10,6 +10,7 @@ import com.mogo.map.impl.amap.uicontroller.AMapUIController;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.IMogoMapUIController;
+import com.mogo.map.uicontroller.MapControlResult;
import java.util.List;
@@ -52,17 +53,19 @@ public class MogoMapUIController implements IMogoMapUIController {
}
@Override
- public void changeZoom(boolean zoom) {
+ public MapControlResult changeZoom( boolean zoom) {
if (mDelegate != null) {
- mDelegate.changeZoom(zoom);
+ return mDelegate.changeZoom(zoom);
}
+ return MapControlResult.ERROR;
}
@Override
- public void changeZoom(float zoom) {
+ public MapControlResult changeZoom(float zoom) {
if (mDelegate != null) {
- mDelegate.changeZoom(zoom);
+ return mDelegate.changeZoom(zoom);
}
+ return MapControlResult.ERROR;
}
@Override
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/AppEnum.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/AppEnum.java
index fa3def1772..39cdd6fad7 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/AppEnum.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/AppEnum.java
@@ -58,9 +58,6 @@ public enum AppEnum {
//"方控学习",
SteerProduct( "方控学习", "com.zd.steerproduct", R.drawable.module_apps_ic_stee_product ),
- //"蓝牙音乐",
- BTMusic( "蓝牙音乐", "com.nwd.bt.music", R.drawable.module_apps_ic_bt ),
-
//"车载设置",
CarSettings( "车载设置", "com.zhidao.settings", R.drawable.module_apps_ic_car_setting ),
@@ -75,6 +72,12 @@ public enum AppEnum {
// 个人中心
PersonCenter( "个人中心", "com.zhidao.auto.personal", R.drawable.module_apps_ic_personal_center ),
+
+ // 本地视频
+ LocalVideo( "本地视频", "com.zhidao.video", R.drawable.module_apps_ic_local_video ),
+
+ // 车辆信息
+ CanBus( "车辆信息", "com.zd.canbus", R.drawable.module_apps_ic_canbus ),
;
private String mName;
diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_canbus.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_canbus.png
new file mode 100644
index 0000000000..f29ce31281
Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_canbus.png differ
diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_local_video.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_local_video.png
new file mode 100644
index 0000000000..813c00b262
Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_local_video.png differ
diff --git a/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_canbus.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_canbus.png
new file mode 100644
index 0000000000..38adc0866e
Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_canbus.png differ
diff --git a/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_local_video.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_local_video.png
new file mode 100644
index 0000000000..e7086c667d
Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_local_video.png differ
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 2bc180fc34..0f3a593dc2 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
@@ -559,7 +559,7 @@ public class MogoModulesManager implements MogoModulesHandler,
}
}
}
- Log.i( TAG, "onLocationChanged event cost " + ( System.currentTimeMillis() - start ) + "ms" );
+ Logger.i( TAG, "onLocationChanged event cost " + ( System.currentTimeMillis() - start ) + "ms" );
}
public void registerReceiver() {
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 5da28b1c55..9fe033d0b6 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
@@ -14,8 +14,10 @@ import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.mvp.Presenter;
import com.mogo.commons.voice.AIAssist;
import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
+import com.mogo.commons.voice.VoicePreemptType;
import com.mogo.map.navi.IMogoNavi;
import com.mogo.map.uicontroller.EnumMapUI;
+import com.mogo.map.uicontroller.MapControlResult;
import com.mogo.module.common.MogoModulePaths;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
@@ -39,20 +41,20 @@ import java.util.Map;
*
* 描述
*/
-public class MapPresenter extends Presenter implements
- IMogoIntentListener,
- IMogoVoiceCmdCallBack {
+public class MapPresenter extends Presenter< MapView > implements
+ IMogoIntentListener,
+ IMogoVoiceCmdCallBack {
private static final String TAG = "MapPresenter";
private static final String AUTONAVI_STANDARD_BROADCAST_RECV =
- "AUTONAVI_STANDARD_BROADCAST_RECV";
+ "AUTONAVI_STANDARD_BROADCAST_RECV";
private IMogoMapService mMogoMapService;
private IMogoIntentManager mMogoIntentManager;
private IMogoSearchManager mSearchManager;
private IMogoRefreshStrategyController mRefreshStrategyController;
- public MapPresenter(MapView view) {
- super(view);
+ public MapPresenter( MapView view ) {
+ super( view );
initBroadcast();
}
@@ -61,78 +63,68 @@ public class MapPresenter extends Presenter implements
*/
private void initBroadcast() {
BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
- @Override public void onReceive(Context context, Intent intent) {
+ @Override
+ public void onReceive( Context context, Intent intent ) {
String action = intent.getAction();
- if (TextUtils.equals(action, AUTONAVI_STANDARD_BROADCAST_RECV)) {
- int key_type = intent.getIntExtra("KEY_TYPE", 0);
- int type = intent.getIntExtra("EXTRA_TYPE", -1);
- int opera_type = intent.getIntExtra("EXTRA_OPERA", -1);
+ if ( TextUtils.equals( action, AUTONAVI_STANDARD_BROADCAST_RECV ) ) {
+ 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("NaviManager", "key_type" + key_type);
- if (key_type == 10027) {
+ Logger.d( "NaviManager", "key_type" + key_type );
+ if ( key_type == 10027 ) {
- if (type == 0) {
- mView.getUIController().setTrafficEnabled(opera_type == 0);
- } else if (type == 1) {
- boolean isLocked = mMogoMapService.getMapUIController().isCarLocked();
- mView.getUIController().changeZoom(opera_type == 0);
- if ( isLocked ) {
- // 保持锁车状态
- UiThreadHandler.postDelayed( ()->{
- mView.getUIController().setLockZoom( ( ( int ) mMogoMapService.getMapUIController().getZoomLevel() ) );
- mMogoMapService.getMapUIController().recoverLockMode();//缩放地图会导致锁车发生改变,这里强制锁车
- }, 1_000 );
- } else {
- // 20s后锁车刷新
- mRefreshStrategyController.restartAutoRefreshAtTime( 20_000 );
- }
- } else if (type == 2) {
+ if ( type == 0 ) {
+ mView.getUIController().setTrafficEnabled( opera_type == 0 );
+ } else if ( type == 1 ) {
+ zoomMap( opera_type == 0 );
+ } else if ( type == 2 ) {
- mMogoIntentManager.invoke(AUTONAVI_STANDARD_BROADCAST_RECV,intent);
- if (opera_type == 0) {
- mView.getUIController().changeMapMode(EnumMapUI.CarUp_2D);
- } else if (opera_type == 1) {
- mView.getUIController().changeMapMode(EnumMapUI.NorthUP_2D);
+ mMogoIntentManager.invoke( AUTONAVI_STANDARD_BROADCAST_RECV, intent );
+ if ( opera_type == 0 ) {
+ mView.getUIController().changeMapMode( EnumMapUI.CarUp_2D );
+ } else if ( opera_type == 1 ) {
+ mView.getUIController().changeMapMode( EnumMapUI.NorthUP_2D );
//AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
- } else if (opera_type == 2) {
- mView.getUIController().changeMapMode(EnumMapUI.CarUp_3D);
+ } else if ( opera_type == 2 ) {
+ mView.getUIController().changeMapMode( EnumMapUI.CarUp_3D );
//AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
}
}
- } else if (key_type == 10048) {
+ } else if ( key_type == 10048 ) {
//* @param type 0:自动; 1:白天; 2:黑夜
- int day_night_mode = intent.getIntExtra("EXTRA_DAY_NIGHT_MODE", -1);
- if (day_night_mode == 0) {
- mView.getUIController().changeMapMode(EnumMapUI.Type_AUTO_LIGHT_Night);
- } else if (day_night_mode == 1) {
- mView.getUIController().changeMapMode(EnumMapUI.Type_Light);
- } else if (day_night_mode == 2) {
- mView.getUIController().changeMapMode(EnumMapUI.Type_Night);
+ int day_night_mode = intent.getIntExtra( "EXTRA_DAY_NIGHT_MODE", -1 );
+ if ( day_night_mode == 0 ) {
+ mView.getUIController().changeMapMode( EnumMapUI.Type_AUTO_LIGHT_Night );
+ } else if ( day_night_mode == 1 ) {
+ mView.getUIController().changeMapMode( EnumMapUI.Type_Light );
+ } else if ( day_night_mode == 2 ) {
+ mView.getUIController().changeMapMode( EnumMapUI.Type_Night );
}
//intent.setAction("AUTONAVI_STANDARD_BROADCAST_RECV");
//intent.putExtra("KEY_TYPE", 10049);
//intent.putExtra("EXTRA_ENDURANCE_DATA", continueNavi);
//继续导航
- } else if (key_type == 10049) {
+ } else if ( key_type == 10049 ) {
boolean extra_endurance_data =
- intent.getBooleanExtra("EXTRA_ENDURANCE_DATA", false);
- if (extra_endurance_data) {
+ intent.getBooleanExtra( "EXTRA_ENDURANCE_DATA", false );
+ if ( extra_endurance_data ) {
mView.getUIController().recoverLockMode();
}
- } else if (key_type == 10006) {
+ } else if ( key_type == 10006 ) {
- int extra_is_show = intent.getIntExtra("EXTRA_IS_SHOW", 0);
+ int extra_is_show = intent.getIntExtra( "EXTRA_IS_SHOW", 0 );
//if (extra_is_show == 0) {
// mView.getUIController().displayOverview();
//} else {
// mView.getUIController().recoverLockMode();
//}
- }else if (key_type == 10005){
- int navi_route_prefer = intent.getIntExtra("NAVI_ROUTE_PREFER", type);
+ } else if ( key_type == 10005 ) {
+ int navi_route_prefer = intent.getIntExtra( "NAVI_ROUTE_PREFER", type );
}
@@ -159,13 +151,38 @@ public class MapPresenter extends Presenter implements
};
IntentFilter inputFilter = new IntentFilter();
- inputFilter.addAction(AUTONAVI_STANDARD_BROADCAST_RECV);
- getContext().registerReceiver(broadcastReceiver, inputFilter);
+ inputFilter.addAction( AUTONAVI_STANDARD_BROADCAST_RECV );
+ getContext().registerReceiver( broadcastReceiver, inputFilter );
+ }
+
+ private void zoomMap( boolean zoomIn ) {
+ boolean isLocked = mMogoMapService.getMapUIController().isCarLocked();
+ MapControlResult result = mView.getUIController().changeZoom( zoomIn );
+ if ( result == MapControlResult.TARGET ) {
+ UiThreadHandler.postDelayed( () -> {
+ if ( zoomIn ) {
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "地图已是最大", VoicePreemptType.PREEMPT_TYPE_NEXT, null );
+ } else {
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "地图已是最小", VoicePreemptType.PREEMPT_TYPE_NEXT, null );
+ }
+ }, 1_000L ); // 避免小智障播放完毕之前播报
+ return;
+ }
+ if ( isLocked ) {
+ // 保持锁车状态
+ UiThreadHandler.postDelayed( () -> {
+ mView.getUIController().setLockZoom( ( ( int ) mMogoMapService.getMapUIController().getZoomLevel() ) );
+ mMogoMapService.getMapUIController().recoverLockMode();//缩放地图会导致锁车发生改变,这里强制锁车
+ }, 1_000 );
+ } else {
+ // 20s后锁车刷新
+ mRefreshStrategyController.restartAutoRefreshAtTime( 20_000 );
+ }
}
@Override
- public void onCreate(@NonNull LifecycleOwner owner) {
- super.onCreate(owner);
+ public void onCreate( @NonNull LifecycleOwner owner ) {
+ super.onCreate( owner );
IMogoServiceApis apis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( getContext() );
mMogoMapService = apis.getMapServiceApi();
@@ -173,104 +190,99 @@ public class MapPresenter extends Presenter implements
mSearchManager = apis.getSearchManagerApi();
mRefreshStrategyController = apis.getRefreshStrategyControllerApi();
- IMogoNavi mogoNavi = mMogoMapService.getNavi(getContext());
- mogoNavi.setCalculatePathDisplayBounds(new Rect(
- ResourcesHelper.getDimensionPixelSize(getContext(), R.dimen.module_map_display_overview_left_margin),
- ResourcesHelper.getDimensionPixelSize(getContext(), R.dimen.module_map_display_overview_top_margin),
- ResourcesHelper.getDimensionPixelSize(getContext(), R.dimen.module_map_display_overview_right_margin),
- ResourcesHelper.getDimensionPixelSize(getContext(), R.dimen.module_map_display_overview_bottom_margin)
- ));
+ IMogoNavi mogoNavi = mMogoMapService.getNavi( getContext() );
+ mogoNavi.setCalculatePathDisplayBounds( new Rect(
+ ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.module_map_display_overview_left_margin ),
+ ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.module_map_display_overview_top_margin ),
+ ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.module_map_display_overview_right_margin ),
+ ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.module_map_display_overview_bottom_margin )
+ ) );
}
@Override
- public void onResume(@NonNull LifecycleOwner owner) {
- super.onResume(owner);
+ public void onResume( @NonNull LifecycleOwner owner ) {
+ super.onResume( owner );
registerVoiceCmd();
}
@Override
- public void onPause(@NonNull LifecycleOwner owner) {
- super.onPause(owner);
+ public void onPause( @NonNull LifecycleOwner owner ) {
+ super.onPause( owner );
unregisterVoiceCmd();
}
private void registerVoiceCmd() {
- for (Map.Entry entry : VoiceConstants.sVoiceCmds.entrySet()) {
- AIAssist.getInstance(getContext())
- .registerUnWakeupCommand(entry.getKey(), entry.getValue(), this);
+ for ( Map.Entry< String, String[] > entry : VoiceConstants.sVoiceCmds.entrySet() ) {
+ AIAssist.getInstance( getContext() )
+ .registerUnWakeupCommand( entry.getKey(), entry.getValue(), this );
}
- for (String cmd : VoiceConstants.sCmds) {
- mMogoIntentManager.registerIntentListener(cmd, this);
+ for ( String cmd : VoiceConstants.sCmds ) {
+ mMogoIntentManager.registerIntentListener( cmd, this );
}
}
private void unregisterVoiceCmd() {
- for (Map.Entry entry : VoiceConstants.sVoiceCmds.entrySet()) {
- AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(entry.getKey(), this);
+ for ( Map.Entry< String, String[] > entry : VoiceConstants.sVoiceCmds.entrySet() ) {
+ AIAssist.getInstance( getContext() ).unregisterUnWakeupCommand( entry.getKey(), this );
}
- for (String cmd : VoiceConstants.sCmds) {
- mMogoIntentManager.unregisterIntentListener(cmd, this);
+ for ( String cmd : VoiceConstants.sCmds ) {
+ mMogoIntentManager.unregisterIntentListener( cmd, this );
}
}
@Override
- public void onIntentReceived(String command, Intent intent) {
- if (TextUtils.isEmpty(command)) {
+ public void onIntentReceived( String command, Intent intent ) {
+ if ( TextUtils.isEmpty( command ) ) {
return;
}
- onCmdSelected(command);
+ onCmdSelected( command );
}
@Override
- public void onCmdSelected(String cmd) {
- Logger.d(TAG, cmd);
- switch (cmd) {
+ 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:
- AIAssist.getInstance(getContext()).speakTTSVoice("已打开", null);
- mView.getUIController().setTrafficEnabled(true);
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "已打开", null );
+ mView.getUIController().setTrafficEnabled( true );
mSearchManager.showSearch();
break;
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);
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "已关闭", null );
+ mView.getUIController().setTrafficEnabled( false );
mSearchManager.showMain();
break;
case VoiceConstants.CMD_MAP_ZOOM_IN_UN_WAKEUP:
- AIAssist.getInstance(getContext()).speakTTSVoice("已放大", null);
case VoiceConstants.CMD_MAP_ZOOM_IN:
- mView.getUIController().changeZoom(true);
+ zoomMap( true );
break;
case VoiceConstants.CMD_MAP_ZOOM_OUT_UN_WAKEUP:
- AIAssist.getInstance(getContext()).speakTTSVoice("已缩小", null);
case VoiceConstants.CMD_MAP_ZOOM_OUT:
- mView.getUIController().changeZoom(false);
+ zoomMap( false );
break;
case VoiceConstants.CMD_MAP_2D_UN_WAKEUP:
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);
-
+ mView.getUIController().changeMapMode( EnumMapUI.NorthUP_2D );
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
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);
+ mView.getUIController().changeMapMode( EnumMapUI.CarUp_3D );
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
case VoiceConstants.CMD_MAP_DAY_TIME_MODE_UN_WAKEUP:
- AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
case VoiceConstants.CMD_MAP_DAY_TIME_MODE:
- mView.getUIController().changeMapMode(EnumMapUI.Type_Light);
+ mView.getUIController().changeMapMode( EnumMapUI.Type_Light );
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
//case VoiceConstants.CMD_MAP_GO_COMPANY_UN_WAKEUP:
@@ -294,29 +306,29 @@ public class MapPresenter extends Presenter implements
break;
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);
+ mView.getUIController().changeMapMode( EnumMapUI.Type_Night );
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
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);
+ mView.getUIController().changeMapMode( EnumMapUI.Type_AUTO_LIGHT_Night );
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
case VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE_UN_WAKEUP:
- AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
case VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE:
//mView.getUIController().displayOverview();
break;
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_UN_WAKEUP:
- AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
case VoiceConstants.CMD_MAP_CAR_UP_MODE:
- mView.getUIController().changeMapMode(EnumMapUI.CarUp_2D);
+ mView.getUIController().changeMapMode( EnumMapUI.CarUp_2D );
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
//case VoiceConstants.CMD_MAP_GEO_NEARBY:
@@ -328,14 +340,14 @@ public class MapPresenter extends Presenter implements
case VoiceConstants.CMD_MAP_SPEAK_DRAFT_MODE:
case VoiceConstants.CMD_MAP_SPEAK_DRAFT_MODE_UN_WAKEUP:
mSearchManager.speakDraft();
- AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
+ 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);
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
case VoiceConstants.CMD_MAP_SPEAK_REMAIN:
@@ -346,22 +358,22 @@ public class MapPresenter extends Presenter implements
}
@Override
- public void onCmdAction(String speakText) {
+ public void onCmdAction( String speakText ) {
}
@Override
- public void onCmdCancel(String speakText) {
+ public void onCmdCancel( String speakText ) {
}
@Override
- public void onSpeakEnd(String speakText) {
+ public void onSpeakEnd( String speakText ) {
}
@Override
- public void onSpeakSelectTimeOut(String speakText) {
+ public void onSpeakSelectTimeOut( String speakText ) {
}
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/adapter/SearchCategoryAdapter.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/adapter/SearchCategoryAdapter.java
index 12d58f4d3d..93004f9f43 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/adapter/SearchCategoryAdapter.java
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/adapter/SearchCategoryAdapter.java
@@ -33,22 +33,19 @@ public class SearchCategoryAdapter extends RecycleBaseAdapter {
@Override
public void onBindViewHolder(RecycleViewHolder holder, MogoPoiItem tip) {
-
-
int layoutPosition = holder.getLayoutPosition();
- if (layoutPosition==0) {
- holder.itemView.setBackgroundResource(R.drawable.selector_first_item_category_background);
- }else {
+ if (layoutPosition == 0) {
+ holder.itemView.setBackgroundResource(
+ R.drawable.selector_first_item_category_background);
+ } else {
holder.itemView.setBackgroundResource(R.drawable.selector_item_category_background);
-
}
-
holder.setText(R.id.tv_position, tip.getTitle());
holder.setText(R.id.tv_position_des, tip.getSnippet());
- holder.setText(R.id.iv_position,String.valueOf(holder.getLayoutPosition()+1));
+ holder.setText(R.id.iv_position, String.valueOf(holder.getLayoutPosition() + 1));
holder.itemView.setTag(R.id.tag_position, holder.getLayoutPosition());
holder.itemView.setOnClickListener(onClickListener);
holder.itemView.setSelected(current == holder.getLayoutPosition());
@@ -71,10 +68,10 @@ public class SearchCategoryAdapter extends RecycleBaseAdapter {
public void setCurrent(int current) {
- if (current==this.current) {
+ if (current == this.current) {
return;
}
- this.lastPosition=this.current;
+ this.lastPosition = this.current;
this.current = current;
notifyItemChanged(lastPosition);
notifyItemChanged(current);
@@ -84,11 +81,14 @@ public class SearchCategoryAdapter extends RecycleBaseAdapter {
return current;
}
- public int getLastPosition(){
+ public int getLastPosition() {
return lastPosition;
}
- public MogoPoiItem getCurrentItem(){
+ public MogoPoiItem getCurrentItem() {
+ if (current >= list.size()) {
+ return null;
+ }
return list.get(current);
}
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt
index 5d463bda01..4d81850232 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt
@@ -113,9 +113,13 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa
private fun addMarkers() {
addMarkers.clear()
- var marginBounder = resources.getDimensionPixelSize(R.dimen.dp_60)*2
+ var marginBounder = resources.getDimensionPixelSize(R.dimen.dp_60) * 2
SearchServiceHolder.getMapUIController()
- .showBounds(TAG, null, locationList, Rect(cv_search_result.width+marginBounder,marginBounder, marginBounder, marginBounder), false)
+ .showBounds(
+ TAG, null, locationList, Rect(
+ cv_search_result.width + marginBounder, marginBounder, marginBounder, marginBounder
+ ), false
+ )
for (options in arrayList) {
var addMarker = SearchServiceHolder.getMarkerManger()
@@ -218,8 +222,10 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa
}
private fun goPath() {
- var newInstance = ChoosePathFragment.newInstance(mAdapter.currentItem.point)
- SearchServiceHolder.push(newInstance, MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT)
+ mAdapter.currentItem?.let {
+ var newInstance = ChoosePathFragment.newInstance(mAdapter.currentItem.point)
+ SearchServiceHolder.push(newInstance, MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT)
+ }
}
private fun updateMarker() {
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 1b1559d9ed..087058a975 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
@@ -216,12 +216,12 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
}
- private fun registerRetryVoice(){
+ private fun registerRetryVoice() {
AIAssist.getInstance(context)
.registerUnWakeupCommand("retry", arrayOf("重试"), this)
}
- private fun unregisterRetryVoice(){
+ private fun unregisterRetryVoice() {
AIAssist.getInstance(context)
.unregisterUnWakeupCommand("retry")
@@ -235,6 +235,9 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
}
private fun startNavi() {
+ if (TextUtils.isEmpty(mAdapter.selectTag)) {
+ return
+ }
moveMapToRight()
SearchServiceHolder.getNavi()
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt
index 696b599fb5..ba46d11b41 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt
@@ -50,7 +50,7 @@ class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener {
var neighborhood = regeocodeResult?.regeocodeAddress?.neighborhood
if (!TextUtils.isEmpty(neighborhood)) {
selectPoi?.name = neighborhood
- }else{
+ } else {
selectPoi?.name = formatAddress
}
}
@@ -80,7 +80,8 @@ class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener {
.getFromLocationAsyn(mogoRegeocodeQuery)
addMarker?.apply {
SearchServiceHolder.getMapUIController()
- .startJumpAnimation(this,
+ .startJumpAnimation(
+ this,
150f, { input ->
if (input <= 0.5) {
(0.5f - 2.0 * (0.5 - input) * (0.5 - input)).toFloat()
@@ -182,13 +183,12 @@ class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener {
AppDataBase.getDatabase(context)
.poiDao()
.insert(searchPoi)
+ AddressHelper.notifyAddressChanged(context, searchPoi)
+
})
.subscribeOn(Schedulers.io())
.subscribe()
-
- AddressHelper.notifyAddressChanged(context, searchPoi)
-
}
override fun onDestroyView() {