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 d758bc0bb3..e6cb446a23 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 @@ -9,6 +9,7 @@ import android.location.Location; import android.os.Bundle; import android.os.SystemClock; import android.os.Trace; +import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.animation.Interpolator; @@ -33,6 +34,7 @@ import com.amap.api.navi.AMapNaviViewOptions; import com.amap.api.navi.enums.AMapNaviViewShowMode; import com.amap.api.navi.enums.AimLessMode; import com.amap.api.navi.model.NaviInfo; +import com.mogo.commons.debug.DebugConfig; import com.mogo.map.IMogoMap; import com.mogo.map.IMogoMapView; import com.mogo.map.MogoLatLng; @@ -142,7 +144,7 @@ public class AMapNaviViewWrapper implements IMogoMapView, // 设置是否显示道路信息view options.setLaneInfoShow( false ); // 设置是否自动改变缩放等级 - options.setAutoChangeZoom( true ); + options.setAutoChangeZoom( false ); // 设置是否自动全览模式,即在算路成功后自动进入全览模式 options.setAutoDisplayOverview( false ); // 设置路线转向箭头隐藏和显示 @@ -390,6 +392,9 @@ public class AMapNaviViewWrapper implements IMogoMapView, @Override public void changeZoom( float zoom ) { Logger.d( TAG, "changeZoom %s", zoom ); + if ( DebugConfig.isDebug() ) { + Logger.d( TAG, Log.getStackTraceString( new Throwable() ) ); + } getMap().changeZoom( zoom ); } @@ -430,11 +435,9 @@ public class AMapNaviViewWrapper implements IMogoMapView, case CarUp_2D: case CarUp_3D: mMapView.setNaviMode( AMapNaviView.CAR_UP_MODE ); - // TODO: 2020-03-16 车头朝上,需要固定车标 break; case NorthUP_2D: mMapView.setNaviMode( AMapNaviView.NORTH_UP_MODE ); - // TODO: 2020-03-16 北朝上,需要动态改变车头车标 break; } if ( options == null ) { @@ -466,6 +469,9 @@ public class AMapNaviViewWrapper implements IMogoMapView, Logger.e( TAG, "latlng = null or is illegal" ); return; } + if ( DebugConfig.isDebug() ) { + Logger.d( TAG, Log.getStackTraceString( new Throwable() ) ); + } loseLockMode(); mMapView.getMap().moveCamera( CameraUpdateFactory.newLatLng( new LatLng( latLng.lat, latLng.lng ) ) ); } @@ -476,6 +482,9 @@ public class AMapNaviViewWrapper implements IMogoMapView, if ( visible && NaviClient.getInstance( getContext() ).isNaviing() ) { return; } + if ( DebugConfig.isDebug() ) { + Logger.d( TAG, Log.getStackTraceString( new Throwable() ) ); + } if ( checkAMapView() ) { MyLocationStyle style = mMapView.getMap().getMyLocationStyle(); style.showMyLocation( visible ); @@ -492,6 +501,9 @@ public class AMapNaviViewWrapper implements IMogoMapView, if ( NaviClient.getInstance( getContext() ).isNaviing() ) { return; } + if ( DebugConfig.isDebug() ) { + Logger.d( TAG, Log.getStackTraceString( new Throwable() ) ); + } if ( checkAMapView() ) { MyLocationStyle style = mMapView.getMap().getMyLocationStyle(); style.showMyLocation( true ); @@ -533,6 +545,9 @@ public class AMapNaviViewWrapper implements IMogoMapView, @Override public void recoverLockMode() { if ( checkAMapView() ) { + if ( DebugConfig.isDebug() ) { + Logger.d( TAG, Log.getStackTraceString( new Throwable() ) ); + } Logger.d( TAG, "锁车" ); mMapView.recoverLockMode(); } @@ -540,6 +555,9 @@ public class AMapNaviViewWrapper implements IMogoMapView, @Override public void loseLockMode() { + if ( DebugConfig.isDebug() ) { + Logger.d( TAG, Log.getStackTraceString( new Throwable() ) ); + } mockTouchEvent(); } @@ -559,6 +577,9 @@ public class AMapNaviViewWrapper implements IMogoMapView, @Override public void setLockZoom( int var1 ) { if ( checkAMapView() ) { + if ( DebugConfig.isDebug() ) { + Logger.d( TAG, Log.getStackTraceString( new Throwable() ) ); + } Logger.d( TAG, "锁定锁车比例尺" ); mMapView.setLockZoom( var1 ); } @@ -596,7 +617,7 @@ public class AMapNaviViewWrapper implements IMogoMapView, if ( checkAMapView() ) { mMapView.setCarOverlayVisible( false ); showMyLocation( true ); - NaviClient.getInstance( getContext() ).startAimlessMode( AimLessMode.CAMERA_AND_SPECIALROAD_DETECTED ); + NaviClient.getInstance( getContext() ).startAimlessMode(); } } @@ -655,6 +676,9 @@ public class AMapNaviViewWrapper implements IMogoMapView, @Override public void setPointToCenter( double mapCenterX, double mapCenterY ) { if ( checkAMapView() ) { + if ( DebugConfig.isDebug() ) { + Logger.d( TAG, Log.getStackTraceString( new Throwable() ) ); + } Logger.d( TAG, "setPointToCenter(%s, %s)", mapCenterX, mapCenterY ); AMapNaviViewOptions options = mMapView.getViewOptions(); options.setPointToCenter( mapCenterX, mapCenterY ); @@ -731,6 +755,9 @@ public class AMapNaviViewWrapper implements IMogoMapView, return; } try { + if ( DebugConfig.isDebug() ) { + Logger.d( TAG, Log.getStackTraceString( new Throwable() ) ); + } LatLngBounds latLngBounds = MogoMapUtils.getLatLngBounds( carPosition, lonLats, lockCarPosition ); if ( !lockCarPosition ) { loseLockMode(); diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java index e24f8944e7..5385e50fbf 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java @@ -6,6 +6,7 @@ import android.location.Location; import com.amap.api.maps.model.Polyline; import com.amap.api.navi.AMapNavi; +import com.amap.api.navi.enums.AimLessMode; import com.amap.api.navi.enums.NaviType; import com.amap.api.navi.model.NaviLatLng; import com.mogo.map.MogoLatLng; @@ -263,12 +264,13 @@ public class NaviClient implements IMogoNavi { } } - public void startAimlessMode( int cameraAndSpecialroadDetected ) { - mAMapNavi.startAimlessMode( cameraAndSpecialroadDetected ); + @Override + public void startAimlessMode() { + mAMapNavi.startAimlessMode( AimLessMode.CAMERA_AND_SPECIALROAD_DETECTED ); } + @Override public void stopAimlessMode() { mAMapNavi.stopAimlessMode(); - } } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java index 88f00f47d8..7ce05a83bc 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java @@ -148,4 +148,14 @@ public interface IMogoNavi { * @param listener */ void registerCarLocationChangedListener( IMogoCarLocationChangedListener listener ); + + /** + * 打开巡航模式 + */ + void startAimlessMode(); + + /** + * 关闭巡航模式 + */ + void stopAimlessMode(); } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoNavi.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoNavi.java index 9b2cc00d8d..b74c5288b4 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoNavi.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoNavi.java @@ -180,4 +180,18 @@ public class MogoNavi implements IMogoNavi { mDelegate.registerCarLocationChangedListener( listener ); } } + + @Override + public void startAimlessMode() { + if ( mDelegate != null ) { + mDelegate.startAimlessMode(); + } + } + + @Override + public void stopAimlessMode() { + if ( mDelegate != null ) { + mDelegate.stopAimlessMode(); + } + } } diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java index 6a735f6973..3581fa2353 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java @@ -23,6 +23,8 @@ import com.mogo.service.statusmanager.IMogoMsgCenterListener; import com.mogo.service.statusmanager.IMogoStatusChangedListener; import com.mogo.service.statusmanager.IMogoStatusManager; import com.mogo.service.statusmanager.StatusDescriptor; +import com.mogo.utils.UiThreadHandler; +import com.mogo.utils.WorkThreadHandler; import com.mogo.utils.logger.Logger; import java.util.ArrayDeque; @@ -87,7 +89,9 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements @Override public void onReceive( Context context, Intent intent ) { try { - refreshTimeAndDate(); + WorkThreadHandler.getInstance().post( () -> { + refreshTimeAndDate(); + } ); } catch ( Exception e ) { Logger.e( TAG, e, "error. " ); } @@ -164,7 +168,14 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements String timeStr = getContext().getResources().getString( R.string.module_ext_str_time_format, hour, minute > 9 ? String.valueOf( minute ) : "0" + minute ); String dateStr = getContext().getResources().getString( R.string.module_ext_str_date_format, month + 1, day, mWeeks[week - 1] ); - mView.renderTime( dateStr, timeStr ); + + UiThreadHandler.post( () -> { + try { + mView.renderTime( dateStr, timeStr ); + } catch ( Exception e ) { + e.printStackTrace(); + } + } ); } @Override @@ -208,7 +219,7 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements changeAutoSwitchVoiceTipsWordsStatus( true ); } - private void changeAutoSwitchVoiceTipsWordsStatus(boolean autoChange){ + private void changeAutoSwitchVoiceTipsWordsStatus( boolean autoChange ) { if ( !mHasTipWords ) { return; }