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 e6cb446a23..e6179a0971 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 @@ -83,6 +83,7 @@ public class AMapNaviViewWrapper implements IMogoMapView, // 自定义定位源的回调信息,前瞻线 private LocationSource.OnLocationChangedListener mOnLocationChangedListener; + private boolean mIsCarLockced = false; public AMapNaviViewWrapper( AMapNaviView mapView ) { this.mMapView = mapView; @@ -334,6 +335,7 @@ public class AMapNaviViewWrapper implements IMogoMapView, @Override public void onLockMap( boolean isLock ) { Logger.d( TAG, "lock status = %s", isLock ); + mIsCarLockced = isLock; Trace.beginSection( "timer.onCameraChangeFinish" ); MogoMapListenerHandler.getInstance().onLockMap( isLock ); Trace.endSection(); @@ -799,4 +801,9 @@ public class AMapNaviViewWrapper implements IMogoMapView, mOnLocationChangedListener.onLocationChanged( location ); } } + + @Override + public synchronized boolean isCarLocked() { + return mIsCarLockced; + } } diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/hook/BnHooker.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/hook/BnHooker.java index 06edf1be18..c4ae31a0c9 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/hook/BnHooker.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/hook/BnHooker.java @@ -53,9 +53,10 @@ public class BnHooker implements InvocationHandler { @Override public Object invoke( Object proxy, Method method, Object[] args ) throws Throwable { if ( method.getName().equals( "setRenderFps" ) ) { + Logger.d( TAG, "setRenderFps" ); if ( !NaviClient.getInstance( mContext ).isNaviing() ) { - return method.invoke( host, 10 ); } + return method.invoke( host, 10 ); } if ( method.getName().equals( "drawFrame" ) ) { Logger.d( TAG, "drawFrame" ); 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 2509ae321e..de5ccd64bf 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 @@ -241,4 +241,12 @@ public class AMapUIController implements IMogoMapUIController { mClient.changeMyLocation( location ); } } + + @Override + public boolean isCarLocked() { + if ( mClient != null ) { + return mClient.isCarLocked(); + } + return false; + } } 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 bd2d6aeef6..e29b5e938f 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 @@ -180,4 +180,10 @@ public interface IMogoMapUIController { * @return */ EnumMapUI getCurrentUiMode(); + + /** + * 锁车状态 + * @return + */ + boolean isCarLocked(); } 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 83d2d655a8..2e9ab03a71 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 @@ -234,4 +234,12 @@ public class MogoMapUIController implements IMogoMapUIController { mDelegate.changeMyLocation( location ); } } + + @Override + public boolean isCarLocked() { + if ( mDelegate != null ) { + return mDelegate.isCarLocked(); + } + return false; + } } diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java index 6fae9abca7..ef7e10856d 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java @@ -58,7 +58,7 @@ public class AppNavigatorFragment extends MvpFragment getApps() { List< NavigatorApp > apps = new ArrayList<>(); apps.add( new NavigatorApp( R.drawable.module_apps_ic_online_car,R.drawable.module_apps_ic_online_car_unchecked, "在线车辆", ModuleNames.CARD_TYPE_USER_DATA ) ); @@ -31,4 +26,38 @@ public class NavigatorApps { apps.add( new NavigatorApp( R.drawable.module_apps_ic_tanlu, R.drawable.module_apps_ic_tanlu_unchecked,"探路", ModuleNames.CARD_TYPE_ROAD_CONDITION ) ); return apps; } + +// public static List< NavigatorApp > getApps() { +// List< NavigatorApp > apps = new ArrayList<>(); +// List< MogoModule > modules = MogoModulePaths.getModules(); +// for ( MogoModule module : modules ) { +// NavigatorApp app = getApp( module ); +// if ( app == null ) { +// continue; +// } +// apps.add( app ); +// } +// return apps; +// } +// +// private static NavigatorApp getApp( MogoModule module ) { +// if ( module == null ) { +// return null; +// } +// switch ( module.getName() ) { +// case ModuleNames.CARD_TYPE_USER_DATA: +// return new NavigatorApp( R.drawable.module_apps_ic_online_car, R.drawable.module_apps_ic_online_car_unchecked, "在线车辆", ModuleNames.CARD_TYPE_USER_DATA ); +// case ModuleNames.CARD_TYPE_NOVELTY: +// return new NavigatorApp( R.drawable.module_apps_ic_interest, R.drawable.module_apps_ic_interest_unchecked, "新鲜事", ModuleNames.CARD_TYPE_NOVELTY ); +// case ModuleNames.CARD_TYPE_BUSINESS_OPERATION: +// return new NavigatorApp( R.drawable.module_apps_ic_news, R.drawable.module_apps_ic_news_unchecked, "首页", ModuleNames.CARD_TYPE_BUSINESS_OPERATION ); +// case ModuleNames.CARD_TYPE_SHARE_MUSIC: +// return new NavigatorApp( R.drawable.module_apps_ic_media_center, R.drawable.module_apps_ic_media_center_checked, "媒体中心", ModuleNames.CARD_TYPE_SHARE_MUSIC ); +// case ModuleNames.CARD_TYPE_CARS_CHATTING: +// return new NavigatorApp( R.drawable.module_apps_ic_chat_icon, R.drawable.module_apps_ic_chat_unchecked, "车聊聊", ModuleNames.CARD_TYPE_CARS_CHATTING ); +// case ModuleNames.CARD_TYPE_ROAD_CONDITION: +// return new NavigatorApp( R.drawable.module_apps_ic_tanlu, R.drawable.module_apps_ic_tanlu_unchecked, "探路", ModuleNames.CARD_TYPE_ROAD_CONDITION ); +// } +// return null; +// } } diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/utils/CarSeries.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/utils/CarSeries.java new file mode 100644 index 0000000000..0451406652 --- /dev/null +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/utils/CarSeries.java @@ -0,0 +1,64 @@ +package com.mogo.module.common.utils; + +import java.lang.reflect.Method; + +/** + * @author congtaowang + * @since 2020-03-26 + *

+ * 车机类型 + */ +public class CarSeries { + + public static final int CAR_SERIES_C80X = 10; + public static final int CAR_SERIES_D80X = 20; + public static final int CAR_SERIES_D81X = 21; + public static final int CAR_SERIES_D82X = 22; + public static final int CAR_SERIES_D84X = 23; + public static final int CAR_SERIES_F80X = 30; + public static final int CAR_SERIES_G80X = 40; + + public static int CAR_SERIES = 0; + + public static int getSeries() { + if ( CAR_SERIES != 0 ) { + return CAR_SERIES; + } + synchronized ( CarSeries.class ) { + if ( CAR_SERIES != 0 ) { + return CAR_SERIES; + } + String device = get( "ro.fota.device" ); + if ( "FG166".equals( device ) ) { + CAR_SERIES = CAR_SERIES_C80X; + } else if ( "D801-802".equals( device ) ) { + CAR_SERIES = CAR_SERIES_D80X; + } else if ( "D811-812".equals( device ) ) { + CAR_SERIES = CAR_SERIES_D81X; + } else if ( "D821-822".equals( device ) ) { + CAR_SERIES = CAR_SERIES_D82X; + } else if ( "D841-842".equals( device ) ) { + CAR_SERIES = CAR_SERIES_D84X; + } else if ( "G801-802".equals( device ) ) { + CAR_SERIES = CAR_SERIES_G80X; + } else if ( "F801-802".equals( device ) ) { + CAR_SERIES = CAR_SERIES_F80X; + } else { + CAR_SERIES = CAR_SERIES_F80X; + } + return CAR_SERIES; + } + } + + private static String get( String key ) { + String value = ""; + try { + Class< ? > c = Class.forName( "android.os.SystemProperties" ); + Method get = c.getMethod( "get", new Class[]{String.class, String.class} ); + value = ( String ) get.invoke( c, new Object[]{key, "unknown"} ); + } catch ( Exception e ) { + value = ""; + } + return value; + } +} diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/AnimWrapper.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/AnimWrapper.java index 6c31ce895e..3ff87e8e4e 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/AnimWrapper.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/AnimWrapper.java @@ -1,9 +1,9 @@ package com.mogo.module.extensions.anim; import android.graphics.drawable.AnimationDrawable; -import android.os.Build; import android.widget.ImageView; +import com.mogo.module.common.utils.CarSeries; import com.mogo.module.extensions.R; import com.mogo.utils.ThreadPoolService; import com.mogo.utils.UiThreadHandler; @@ -27,7 +27,7 @@ public class AnimWrapper implements Anim { public void initAnim( ImageView target ) { mTarget = target; - if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ) { + if ( CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X ) { ThreadPoolService.execute( () -> { final AnimationDrawable drawable = new AnimationDrawable(); for ( int i = 0; i < AnimRes.sRes.length; i++ ) { diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java index 206d8593ce..a2bba90a73 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java @@ -138,6 +138,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mSearch = findViewById( R.id.module_entrance_id_search ); mSearch.setOnClickListener( view -> { + setMarkerStatus(true); mSearchProvider = ( IMogoModuleProvider ) ARouter.getInstance() .build( MogoModulePaths.PATH_MODULE_SEARCH ) .navigation(); @@ -152,6 +153,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mHome = findViewById( R.id.module_entrance_id_home ); mHome.setOnClickListener( view -> { + setMarkerStatus(true); mMogoAddressManager.goHome(); mApis.getAdasControllerApi().closeADAS(); @@ -159,6 +161,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mCompany = findViewById( R.id.module_entrance_id_company ); mCompany.setOnClickListener( view -> { + setMarkerStatus(true); mMogoAddressManager.goCompany(); mApis.getAdasControllerApi().closeADAS(); @@ -239,6 +242,15 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent }); } + + + protected void setMarkerStatus(boolean show){ + mMogoStatusManager.setSearchUIShow( + MogoModulePaths.PATH_FRAGMENT_SEARCH_CATEGORY, show + ); + } + + private static final String AUTONAVI_STANDARD_BROADCAST_RECV = "AUTONAVI_STANDARD_BROADCAST_RECV"; @NonNull diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java index dde1f24783..a3c1ea3cde 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java @@ -25,6 +25,8 @@ import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.module.common.MogoModule; import com.mogo.module.common.MogoModulePaths; import com.mogo.module.main.assist.MapBroadCastHelper; +import com.mogo.module.main.cards.CardIntroduceConfig; +import com.mogo.module.main.cards.CardIntroduceConfigs; import com.mogo.module.main.cards.CardModulesAdapter; import com.mogo.module.main.cards.HorizentalStackTransformer; import com.mogo.module.main.cards.MogoModulesHandler; @@ -198,7 +200,8 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme mCardCoverUpBottomLayout = findViewById( R.id.module_main_id_card_cover_up_bottom ); // 避免事件穿透导致地图被滑动 - mLeftShadowFrame.setOnClickListener( view -> {} ); + mLeftShadowFrame.setOnClickListener( view -> { + } ); WindowViewHandler.init( mFloatingLayout ); } @@ -378,6 +381,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme MapBroadCastHelper.getInstance( this ).mapBackground(); super.onPause(); mMogoStatusManager.setMainPageResumeStatus( TAG, false ); + CardIntroduceConfigs.flush( getApplicationContext() ); } @Override diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/CardIntroduceConfig.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/CardIntroduceConfig.java new file mode 100644 index 0000000000..ef3b24ed50 --- /dev/null +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/CardIntroduceConfig.java @@ -0,0 +1,23 @@ +package com.mogo.module.main.cards; + +/** + * @author congtaowang + * @since 2020-03-27 + *

+ * 卡片播报配置 + */ +public class CardIntroduceConfig { + + public String cardType; + public String broadcastWords; + public int broadcastAmount; + + public CardIntroduceConfig( String cardType, String broadcastWords, int broadcastAmount ) { + this.cardType = cardType; + this.broadcastWords = broadcastWords; + this.broadcastAmount = broadcastAmount; + } + + public CardIntroduceConfig() { + } +} diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/CardIntroduceConfigs.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/CardIntroduceConfigs.java new file mode 100644 index 0000000000..3c928968d1 --- /dev/null +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/CardIntroduceConfigs.java @@ -0,0 +1,89 @@ +package com.mogo.module.main.cards; + +import android.content.Context; + +import com.mogo.commons.voice.AIAssist; +import com.mogo.commons.voice.VoicePreemptType; +import com.mogo.module.common.ModuleNames; +import com.mogo.utils.CommonUtils; +import com.mogo.utils.WorkThreadHandler; +import com.mogo.utils.logger.Logger; +import com.mogo.utils.network.utils.GsonUtil; +import com.mogo.utils.storage.SharedPrefsMgr; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author congtaowang + * @since 2020-03-27 + *

+ * 卡片播报配置 + */ +public class CardIntroduceConfigs { + + private static final String TAG = "CardIntroduceConfigs"; + + public static final String KEY_VOICE_BROADCAST_CONFIG = "voice_broadcast_"; + public static String sBroadcastConfigKey; + + public static Map< String, CardIntroduceConfig > sConfigs = new HashMap<>(); + + static { + sConfigs.put( ModuleNames.CARD_TYPE_BUSINESS_OPERATION, new CardIntroduceConfig( ModuleNames.CARD_TYPE_BUSINESS_OPERATION, "", 3 ) ); + sConfigs.put( ModuleNames.CARD_TYPE_SHARE_MUSIC, new CardIntroduceConfig( ModuleNames.CARD_TYPE_SHARE_MUSIC, "音乐新闻听书,海量资源随你选", 0 ) ); + sConfigs.put( ModuleNames.CARD_TYPE_CARS_CHATTING, new CardIntroduceConfig( ModuleNames.CARD_TYPE_CARS_CHATTING, "开车无聊,就用车聊聊", 0 ) ); + sConfigs.put( ModuleNames.CARD_TYPE_ROAD_CONDITION, new CardIntroduceConfig( ModuleNames.CARD_TYPE_ROAD_CONDITION, "随时查看路况,可以对我说某某地点堵不堵", 0 ) ); + sConfigs.put( ModuleNames.CARD_TYPE_USER_DATA, new CardIntroduceConfig( ModuleNames.CARD_TYPE_USER_DATA, "在线车辆,邀你在地图上发现万千有趣的车友", 0 ) ); + sConfigs.put( ModuleNames.CARD_TYPE_NOVELTY, new CardIntroduceConfig( ModuleNames.CARD_TYPE_NOVELTY, "新鲜事,邀你给同城车友分享沿途封路、拥堵消息", 0 ) ); + } + + public static void init( Context context ) { + + WorkThreadHandler.getInstance().post( () -> { + sBroadcastConfigKey = KEY_VOICE_BROADCAST_CONFIG + CommonUtils.getVersionCode( context ); + String configsStr = SharedPrefsMgr.getInstance( context ).getString( sBroadcastConfigKey ); + List< CardIntroduceConfig > configs = GsonUtil.arrayFromJson( configsStr, CardIntroduceConfig.class ); + if ( configs == null ) { + return; + } + for ( CardIntroduceConfig config : configs ) { + if ( config == null ) { + return; + } + sConfigs.put( config.cardType, config ); + } + } ); + } + + public static void broadcast( Context context, String type ) { + if ( sConfigs.get( type ) == null ) { + Logger.d( TAG, "un support %s", type ); + return; + } + if ( sConfigs.get( type ).broadcastAmount >= 3 ) { + Logger.d( TAG, "do not broadcast %s cast amount = %s", type, type ); + return; + } + + CardIntroduceConfig config = sConfigs.get( type ); + config.broadcastAmount++; + + Logger.d( TAG, "speak card introduce: %s", config.broadcastWords ); + AIAssist.getInstance( context ).speakTTSVoice( config.broadcastWords, VoicePreemptType.PREEMPT_TYPE_IMMEADIATELY, null ); + } + + public static void flush( Context context ) { + if ( sBroadcastConfigKey == null || sConfigs.isEmpty() ) { + return; + } + WorkThreadHandler.getInstance().post( () -> { + synchronized ( sConfigs ) { + ArrayList configs = new ArrayList( sConfigs.entrySet() ); + SharedPrefsMgr.getInstance( context ).putString( sBroadcastConfigKey, GsonUtil.jsonFromObject( configs ) ); + } + } ); + } +} 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 961aafd349..fb8370c364 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 @@ -31,6 +31,7 @@ import com.mogo.module.main.MainActivity; import com.mogo.module.main.assist.MapBroadCastHelper; import com.mogo.module.main.registercenter.MogoRegisterCenterHandler; import com.mogo.module.service.receiver.MogoReceiver; +import com.mogo.service.IMogoServiceApis; import com.mogo.service.MogoServicePaths; import com.mogo.service.analytics.IMogoAnalytics; import com.mogo.service.intent.IMogoIntentListener; @@ -38,7 +39,9 @@ import com.mogo.service.intent.IMogoIntentManager; import com.mogo.service.module.IMogoModuleLifecycle; import com.mogo.service.module.IMogoModuleProvider; import com.mogo.service.module.ModuleType; +import com.mogo.utils.CommonUtils; import com.mogo.utils.ResourcesHelper; +import com.mogo.utils.WorkThreadHandler; import com.mogo.utils.logger.Logger; import com.mogo.utils.network.utils.GsonUtil; import com.mogo.utils.storage.SharedPrefsMgr; @@ -66,6 +69,9 @@ public class MogoModulesManager implements MogoModulesHandler, private static final String TAG = "MogoModulesManager"; + + private String mBroadcastConfigKey; + private MainActivity mActivity; private Map< MogoModule, IMogoModuleProvider > mModuleProviders = new HashMap<>(); @@ -86,15 +92,12 @@ public class MogoModulesManager implements MogoModulesHandler, throw new NullPointerException( "activity can't be null." ); } this.mActivity = activity; - mTrackManager = ( IMogoAnalytics ) ARouter.getInstance() - .build( MogoServicePaths.PATH_UTILS_ANALYTICS ) - .navigation(); - - mMogoIntentManager = ( IMogoIntentManager ) ARouter.getInstance() - .build( MogoServicePaths.PATH_INTENT_MANAGER ) - .navigation(); + IMogoServiceApis apis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation(); + mTrackManager = apis.getAnalyticsApi(); + mMogoIntentManager = apis.getIntentManagerApi(); registerReceiver(); + CardIntroduceConfigs.init( getContext() ); } private Context getContext() { @@ -279,6 +282,8 @@ public class MogoModulesManager implements MogoModulesHandler, mSortedCards.add( 0, mEnableModuleName ); SharedPrefsMgr.getInstance( getContext() ).putString( KEY_SORTED_CARD_MODULES, GsonUtil.jsonFromObject( mSortedCards ) ); Log.i( TAG, "enable & disable card cost " + ( System.currentTimeMillis() - start1 ) + "ms" ); + + CardIntroduceConfigs.broadcast( mActivity, mEnableModuleName ); } @Override 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 b79159c6b4..0ab0657e81 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 @@ -23,6 +23,7 @@ import com.mogo.service.intent.IMogoIntentListener; import com.mogo.service.intent.IMogoIntentManager; import com.mogo.service.map.IMogoMapService; import com.mogo.service.module.IMogoSearchManager; +import com.mogo.service.strategy.IMogoRefreshStrategyController; import com.mogo.service.voice.IMogoVoiceListener; import com.mogo.service.voice.IMogoVoiceManager; import com.mogo.utils.ResourcesHelper; @@ -48,6 +49,7 @@ public class MapPresenter extends Presenter implements private IMogoMapService mMogoMapService; private IMogoIntentManager mMogoIntentManager; private IMogoSearchManager mSearchManager; + private IMogoRefreshStrategyController mRefreshStrategyController; public MapPresenter(MapView view) { super(view); @@ -72,12 +74,19 @@ public class MapPresenter extends Presenter implements if (type == 0) { mView.getUIController().setTrafficEnabled(opera_type == 0); } else if (type == 1) { + boolean isLocked = mMogoMapService.getMapUIController().isCarLocked(); mView.getUIController().changeZoom(opera_type == 0); - UiThreadHandler.postDelayed( ()->{ - int lockZoomLevel = opera_type == 0 ? ( ( int ) mView.getUIController().getZoomLevel() ) : ( ( int ) (mView.getUIController().getZoomLevel() + 0.5 )); - mView.getUIController().setLockZoom( lockZoomLevel ); - mMogoMapService.getMapUIController().recoverLockMode();//缩放地图会导致锁车发生改变,这里强制锁车 - }, 1_000 ); + if ( isLocked ) { + // 保持锁车状态 + UiThreadHandler.postDelayed( ()->{ + int lockZoomLevel = opera_type == 0 ? ( ( int ) mView.getUIController().getZoomLevel() ) : ( ( int ) (mView.getUIController().getZoomLevel() + 0.5 )); + mView.getUIController().setLockZoom( lockZoomLevel ); + mMogoMapService.getMapUIController().recoverLockMode();//缩放地图会导致锁车发生改变,这里强制锁车 + }, 1_000 ); + } else { + // 30s后锁车刷新 + mRefreshStrategyController.restartAutoRefreshAtTime( 30 ); + } } else if (type == 2) { mMogoIntentManager.invoke(AUTONAVI_STANDARD_BROADCAST_RECV,intent); @@ -163,6 +172,7 @@ public class MapPresenter extends Presenter implements mMogoMapService = apis.getMapServiceApi(); mMogoIntentManager = apis.getIntentManagerApi(); mSearchManager = apis.getSearchManagerApi(); + mRefreshStrategyController = apis.getRefreshStrategyControllerApi(); IMogoNavi mogoNavi = mMogoMapService.getNavi(getContext()); mogoNavi.setCalculatePathDisplayBounds(new Rect( diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java index b832593ba8..9fb7bd3426 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java @@ -81,13 +81,13 @@ import java.util.List; * 4. 用户交互语音导致地图视图移动,缩放,不触发刷新 */ public class MogoServices implements IMogoMapListener, - IMogoLocationListener, - IMogoNaviListener, - IMogoStatusChangedListener, - IMogoIntentListener, - IMogoAimlessModeListener, - IMogoVoiceCmdCallBack, - FragmentStackTransactionListener { + IMogoLocationListener, + IMogoNaviListener, + IMogoStatusChangedListener, + IMogoIntentListener, + IMogoAimlessModeListener, + IMogoVoiceCmdCallBack, + FragmentStackTransactionListener { private boolean mInternalUnWakeupRegisterStatus = false; @@ -165,30 +165,30 @@ public class MogoServices implements IMogoMapListener, */ private boolean mLoopRequest = false; - private Handler mHandler = new Handler(Looper.getMainLooper()) { + private Handler mHandler = new Handler( Looper.getMainLooper() ) { @Override - public void handleMessage(@NonNull Message msg) { - super.handleMessage(msg); - switch (msg.what) { + public void handleMessage( @NonNull Message msg ) { + super.handleMessage( msg ); + switch ( msg.what ) { case ServiceConst.MSG_TYPE_REFRESH_DECREASE: - if (mStatusManager.isSearchUIShow() || mStatusManager.isADASShow()) { + if ( mStatusManager.isSearchUIShow() || mStatusManager.isADASShow() ) { stopAutoRefreshStrategy(); return; } mRefreshRemainingTime -= ServiceConst.DECREASE_INTERVAL; - if (mRefreshRemainingTime <= 0) { - Logger.d(TAG, "move to center and refresh data."); + if ( mRefreshRemainingTime <= 0 ) { + Logger.d( TAG, "move to center and refresh data." ); invokeAutoRefresh(); } else { - mHandler.sendEmptyMessageDelayed(msg.what, ServiceConst.DECREASE_INTERVAL); + mHandler.sendEmptyMessageDelayed( msg.what, ServiceConst.DECREASE_INTERVAL ); } break; case ServiceConst.MSG_LOOP_REQUEST: - if (mStatusManager.isSearchUIShow() || mStatusManager.isADASShow()) { + if ( mStatusManager.isSearchUIShow() || mStatusManager.isADASShow() ) { return; } - if (mLoopRequest) { - Logger.d(TAG, "补偿刷新触发"); + if ( mLoopRequest ) { + Logger.d( TAG, "补偿刷新触发" ); invokeAutoRefresh(); } break; @@ -199,13 +199,13 @@ public class MogoServices implements IMogoMapListener, * 自动刷新:锁车、缩放比例:16、半径 2KM */ private void invokeAutoRefresh() { - mStatusManager.setUserInteractionStatus(ServiceConst.TYPE, true, false); - mUiController.changeZoom(ServiceConst.DEFAULT_LOCK_CAR_ZOOM_LEVEL); - mUiController.setLockZoom(ServiceConst.DEFAULT_LOCK_CAR_ZOOM_LEVEL); - mStatusManager.setUserInteractionStatus(TAG, true, false); + mStatusManager.setUserInteractionStatus( ServiceConst.TYPE, true, false ); + mUiController.changeZoom( ServiceConst.DEFAULT_LOCK_CAR_ZOOM_LEVEL ); + mUiController.setLockZoom( ServiceConst.DEFAULT_LOCK_CAR_ZOOM_LEVEL ); + mStatusManager.setUserInteractionStatus( TAG, true, false ); mUiController.recoverLockMode(); - notifyRefreshData(mLastAutoRefreshLocation, - ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS, mAutoRefreshCallback); + notifyRefreshData( mLastAutoRefreshLocation, + ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS, mAutoRefreshCallback ); } }; private Context mContext; @@ -228,7 +228,7 @@ public class MogoServices implements IMogoMapListener, public void onSuccess() { mLoopRequest = false; // 用户手动操作地图刷新成功后,设置状态为 true,引发延时策略 - mStatusManager.setUserInteractionStatus(ServiceConst.TYPE, true, true); + mStatusManager.setUserInteractionStatus( ServiceConst.TYPE, true, true ); } @Override @@ -244,29 +244,29 @@ public class MogoServices implements IMogoMapListener, @Override public void onSuccess() { mLoopRequest = false; - Logger.d(TAG, "request Success."); + Logger.d( TAG, "request Success." ); invokeAutoRefreshStrategy(); } @Override public void onFail() { - if (mLoopRequest) { - Logger.d(TAG, "onFail and loop"); - mHandler.sendEmptyMessageDelayed(ServiceConst.MSG_LOOP_REQUEST, - ServiceConst.LOOP_INTERVAL); + if ( mLoopRequest ) { + Logger.d( TAG, "onFail and loop" ); + mHandler.sendEmptyMessageDelayed( ServiceConst.MSG_LOOP_REQUEST, + ServiceConst.LOOP_INTERVAL ); } else { invokeAutoRefreshStrategy(); } } private void invokeAutoRefreshStrategy() { - if (mStatusManager.isSearchUIShow()) { + if ( mStatusManager.isSearchUIShow() ) { return; } mRefreshRemainingTime = mAutoRefreshStrategy.getInterval(); - mHandler.removeMessages(ServiceConst.MSG_TYPE_REFRESH_DECREASE); - mHandler.sendEmptyMessageDelayed(ServiceConst.MSG_TYPE_REFRESH_DECREASE, - ServiceConst.DECREASE_INTERVAL); + mHandler.removeMessages( ServiceConst.MSG_TYPE_REFRESH_DECREASE ); + mHandler.sendEmptyMessageDelayed( ServiceConst.MSG_TYPE_REFRESH_DECREASE, + ServiceConst.DECREASE_INTERVAL ); } }; @@ -274,120 +274,120 @@ public class MogoServices implements IMogoMapListener, private Handler mThreadHandler; - public void init(Context context) { + public void init( Context context ) { mContext = context; - MarkerServiceHandler.init(mContext); - mRefreshModel = new RefreshModel(context); + MarkerServiceHandler.init( mContext ); + mRefreshModel = new RefreshModel( context ); mMogoMapService = MarkerServiceHandler.getMapService(); mUiController = mMogoMapService.getMapUIController(); - mNavi = mMogoMapService.getNavi(context); + mNavi = mMogoMapService.getNavi( context ); mStatusManager = MarkerServiceHandler.getMogoStatusManager(); - mStatusManager.registerStatusChangedListener(ServiceConst.TYPE, - StatusDescriptor.USER_INTERACTED, this); - mStatusManager.registerStatusChangedListener(ServiceConst.TYPE, StatusDescriptor.SEARCH_UI, - this); - mStatusManager.registerStatusChangedListener(ServiceConst.TYPE, StatusDescriptor.ADAS_UI, - this); - mStatusManager.registerStatusChangedListener(ServiceConst.TYPE, - StatusDescriptor.MAIN_PAGE_RESUME, this); + mStatusManager.registerStatusChangedListener( ServiceConst.TYPE, + StatusDescriptor.USER_INTERACTED, this ); + mStatusManager.registerStatusChangedListener( ServiceConst.TYPE, StatusDescriptor.SEARCH_UI, + this ); + mStatusManager.registerStatusChangedListener( ServiceConst.TYPE, StatusDescriptor.ADAS_UI, + this ); + mStatusManager.registerStatusChangedListener( ServiceConst.TYPE, + StatusDescriptor.MAIN_PAGE_RESUME, this ); - registerMogoReceiver(context); + registerMogoReceiver( context ); registerInternalUnWakeupWords(); mRegisterCenter = MarkerServiceHandler.getRegisterCenter(); - mRegisterCenter.registerMogoLocationListener(ServiceConst.TYPE, this); - mRegisterCenter.registerMogoNaviListener(ServiceConst.TYPE, this); - mRegisterCenter.registerMogoMapListener(ServiceConst.TYPE, this); - mRegisterCenter.registerMogoAimlessModeListener(ServiceConst.TYPE, this); + mRegisterCenter.registerMogoLocationListener( ServiceConst.TYPE, this ); + mRegisterCenter.registerMogoNaviListener( ServiceConst.TYPE, this ); + mRegisterCenter.registerMogoMapListener( ServiceConst.TYPE, this ); + mRegisterCenter.registerMogoAimlessModeListener( ServiceConst.TYPE, this ); mActionManager = MarkerServiceHandler.getActionManager(); mIntentManager = MarkerServiceHandler.getIntentManager(); - mIntentManager.registerIntentListener(MogoReceiver.ACTIION_ADAS, this); - mIntentManager.registerIntentListener(Intent.ACTION_POWER_CONNECTED, this); - mIntentManager.registerIntentListener(Intent.ACTION_POWER_DISCONNECTED, this); - mIntentManager.registerIntentListener(MogoReceiver.ACTION_NWD_ACC, this); - mIntentManager.registerIntentListener(MogoReceiver.ACTION_VOICE_UI, this); - mIntentManager.registerIntentListener(ServiceConst.COMMAND_NEXT, this); - mIntentManager.registerIntentListener(ServiceConst.COMMAND_PREVIOUS, this); - mIntentManager.registerIntentListener(ServiceConst.COMMAND_SWITCH_CARD, this); - mIntentManager.registerIntentListener(ServiceConst.COMMAND_MY_LOCATION, this); - mIntentManager.registerIntentListener(MogoReceiver.ACTION_ADAS_STATUS, this); - mIntentManager.registerIntentListener(ServiceConst.COMMAND_OPERATION, this); - mIntentManager.registerIntentListener(MogoReceiver.ACTION_VOICE_READY, this); - mIntentManager.registerIntentListener(MogoReceiver.ACTION_MOCK, this); + mIntentManager.registerIntentListener( MogoReceiver.ACTIION_ADAS, this ); + mIntentManager.registerIntentListener( Intent.ACTION_POWER_CONNECTED, this ); + mIntentManager.registerIntentListener( Intent.ACTION_POWER_DISCONNECTED, this ); + mIntentManager.registerIntentListener( MogoReceiver.ACTION_NWD_ACC, this ); + mIntentManager.registerIntentListener( MogoReceiver.ACTION_VOICE_UI, this ); + mIntentManager.registerIntentListener( ServiceConst.COMMAND_NEXT, this ); + mIntentManager.registerIntentListener( ServiceConst.COMMAND_PREVIOUS, this ); + mIntentManager.registerIntentListener( ServiceConst.COMMAND_SWITCH_CARD, this ); + mIntentManager.registerIntentListener( ServiceConst.COMMAND_MY_LOCATION, this ); + mIntentManager.registerIntentListener( MogoReceiver.ACTION_ADAS_STATUS, this ); + mIntentManager.registerIntentListener( ServiceConst.COMMAND_OPERATION, this ); + mIntentManager.registerIntentListener( MogoReceiver.ACTION_VOICE_READY, this ); + mIntentManager.registerIntentListener( MogoReceiver.ACTION_MOCK, this ); mADASController = MarkerServiceHandler.getADASController(); mLauncher = MarkerServiceHandler.getLauncher(); mFragmentManager = MarkerServiceHandler.getFragmentManager(); mCardManager = MarkerServiceHandler.getMogoCardManager(); - mFragmentManager.addMainFragmentStackTransactionListener(this); + mFragmentManager.addMainFragmentStackTransactionListener( this ); initWorkThread(); } private void initWorkThread() { - mHandlerThread = new HandlerThread("mogo-handler-thread"); + mHandlerThread = new HandlerThread( "mogo-handler-thread" ); mHandlerThread.start(); - mThreadHandler = new Handler(mHandlerThread.getLooper()) { + mThreadHandler = new Handler( mHandlerThread.getLooper() ) { @Override - public void handleMessage(Message msg) { - super.handleMessage(msg); - if (msg.what == ServiceConst.MSG_MAP_CHANGED) { - if (msg.obj instanceof RefreshObject) { - RefreshObject ro = ((RefreshObject) msg.obj); - if (invokeRefreshWhenTranslationByUser(ro.mLonLat)) { - notifyRefreshData(ro.mLonLat, ro.mRadius, ro.mCallback); + public void handleMessage( Message msg ) { + super.handleMessage( msg ); + if ( msg.what == ServiceConst.MSG_MAP_CHANGED ) { + if ( msg.obj instanceof RefreshObject ) { + RefreshObject ro = ( ( RefreshObject ) msg.obj ); + if ( invokeRefreshWhenTranslationByUser( ro.mLonLat ) ) { + notifyRefreshData( ro.mLonLat, ro.mRadius, ro.mCallback ); mLastCustomRefreshCenterLocation = ro.mLonLat; } } - } else if (msg.what == ServiceConst.MSG_REQUEST_DATA) { - if (msg.obj instanceof RefreshObject) { - RefreshObject ro = ((RefreshObject) msg.obj); - mRefreshModel.refreshData(ro.mLonLat, ro.mRadius, ro.mAmount, ro.mCallback); - Logger.i(TAG, "刷新半径 = %s, 点 = %s, zoomLevel = %s, amount = %s", ro.mRadius, - ro.mLonLat, mLastZoomLevel, ro.mAmount); + } else if ( msg.what == ServiceConst.MSG_REQUEST_DATA ) { + if ( msg.obj instanceof RefreshObject ) { + RefreshObject ro = ( ( RefreshObject ) msg.obj ); + mRefreshModel.refreshData( ro.mLonLat, ro.mRadius, ro.mAmount, ro.mCallback ); + Logger.i( TAG, "刷新半径 = %s, 点 = %s, zoomLevel = %s, amount = %s", ro.mRadius, + ro.mLonLat, mLastZoomLevel, ro.mAmount ); } } } }; } - private void registerMogoReceiver(Context context) { - if (context == null) { + private void registerMogoReceiver( Context context ) { + if ( context == null ) { return; } - List modules = MogoModulePaths.getModules(); - if (modules.isEmpty() || modules == null) { + List< MogoModule > modules = MogoModulePaths.getModules(); + if ( modules.isEmpty() || modules == null ) { return; } - mAIAssistReceiver = new MogoReceiver(context); + mAIAssistReceiver = new MogoReceiver( context ); IntentFilter filter = new IntentFilter(); - if (modules != null && !modules.isEmpty()) { - for (MogoModule module : modules) { - if (TextUtils.isEmpty(module.getBroadcastAction())) { + if ( modules != null && !modules.isEmpty() ) { + for ( MogoModule module : modules ) { + if ( TextUtils.isEmpty( module.getBroadcastAction() ) ) { continue; } - filter.addAction(module.getBroadcastAction()); + filter.addAction( module.getBroadcastAction() ); } } - filter.addAction(MogoReceiver.VOICE_ACTION); - filter.addAction(MogoReceiver.ACTIION_ADAS); - filter.addAction(MogoReceiver.ACTION_NWD_ACC); + filter.addAction( MogoReceiver.VOICE_ACTION ); + filter.addAction( MogoReceiver.ACTIION_ADAS ); + filter.addAction( MogoReceiver.ACTION_NWD_ACC ); // acc On - filter.addAction(Intent.ACTION_POWER_CONNECTED); - filter.addAction(Intent.ACTION_POWER_DISCONNECTED); + filter.addAction( Intent.ACTION_POWER_CONNECTED ); + filter.addAction( Intent.ACTION_POWER_DISCONNECTED ); // 小智语音 - filter.addAction(MogoReceiver.ACTION_VOICE_UI); - filter.addAction(MogoReceiver.ACTION_ADAS_STATUS); - filter.addAction(MogoReceiver.ACTION_VOICE_READY); - filter.addAction(MogoReceiver.ACTION_MOCK); + filter.addAction( MogoReceiver.ACTION_VOICE_UI ); + filter.addAction( MogoReceiver.ACTION_ADAS_STATUS ); + filter.addAction( MogoReceiver.ACTION_VOICE_READY ); + filter.addAction( MogoReceiver.ACTION_MOCK ); try { - context.getApplicationContext().registerReceiver(mAIAssistReceiver, filter); - Logger.i(TAG, "register voice receiver."); - } catch (Exception e) { - Logger.e(TAG, e, "error. "); + context.getApplicationContext().registerReceiver( mAIAssistReceiver, filter ); + Logger.i( TAG, "register voice receiver." ); + } catch ( Exception e ) { + Logger.e( TAG, e, "error. " ); } } @@ -397,16 +397,16 @@ public class MogoServices implements IMogoMapListener, } private void initMapStatus() { - if (mIsMapStatusOk) { + if ( mIsMapStatusOk ) { return; } try { float width = getMapCameraFactWidth(); float height = getMapCameraFactHeight(); mIsVertical = width < height; - Logger.i(TAG, "map status is vertical : " + mIsVertical); + Logger.i( TAG, "map status is vertical : " + mIsVertical ); mIsMapStatusOk = true; - } catch (Exception e) { + } catch ( Exception e ) { e.printStackTrace(); } } @@ -416,9 +416,9 @@ public class MogoServices implements IMogoMapListener, */ private float getMapCameraFactWidth() { try { - return Utils.calculateLineDistance(mCameraNorthEastPosition, - new MogoLatLng(mCameraNorthEastPosition.lat, mCameraSouthWestPosition.lng)); - } catch (Exception e) { + return Utils.calculateLineDistance( mCameraNorthEastPosition, + new MogoLatLng( mCameraNorthEastPosition.lat, mCameraSouthWestPosition.lng ) ); + } catch ( Exception e ) { return ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS; } } @@ -428,57 +428,57 @@ public class MogoServices implements IMogoMapListener, */ private float getMapCameraFactHeight() { try { - return Utils.calculateLineDistance(mCameraSouthWestPosition, - new MogoLatLng(mCameraNorthEastPosition.lat, mCameraSouthWestPosition.lng)); - } catch (Exception e) { + return Utils.calculateLineDistance( mCameraSouthWestPosition, + new MogoLatLng( mCameraNorthEastPosition.lat, mCameraSouthWestPosition.lng ) ); + } catch ( Exception e ) { return ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS; } } @Override - public void onTouch(MotionEvent motionEvent) { - switch (motionEvent.getActionMasked()) { + public void onTouch( MotionEvent motionEvent ) { + switch ( motionEvent.getActionMasked() ) { case MotionEvent.ACTION_DOWN: - if (mLastZoomLevel == 0) { + if ( mLastZoomLevel == 0 ) { mLastZoomLevel = mUiController.getZoomLevel(); - Logger.i(TAG, "初始化缩放级别 为:%f", mLastZoomLevel); + Logger.i( TAG, "初始化缩放级别 为:%f", mLastZoomLevel ); } break; case MotionEvent.ACTION_UP: - restartAutoRefreshAtTime(ServiceConst.DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT); + restartAutoRefreshAtTime( ServiceConst.DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT ); break; } } private void stopAutoRefreshStrategy() { - Logger.d(TAG, "stop auto refresh strategy"); - mHandler.removeMessages(ServiceConst.MSG_TYPE_REFRESH_DECREASE); + Logger.d( TAG, "stop auto refresh strategy" ); + mHandler.removeMessages( ServiceConst.MSG_TYPE_REFRESH_DECREASE ); } @Override - public void onPOIClick(MogoPoi poi) { + public void onPOIClick( MogoPoi poi ) { } @Override - public void onMapClick(MogoLatLng latLng) { + public void onMapClick( MogoLatLng latLng ) { } @Override - public void onLockMap(boolean isLock) { + public void onLockMap( boolean isLock ) { } @Override - public void onMapModeChanged(EnumMapUI ui) { + public void onMapModeChanged( EnumMapUI ui ) { } @Override - public void onMapChanged(MogoLatLng latLng, float zoom, float tilt, float bearing) { + public void onMapChanged( MogoLatLng latLng, float zoom, float tilt, float bearing ) { - if (mIsCameraInited) { + if ( mIsCameraInited ) { mLastZoomLevel = zoom; mLastCustomRefreshCenterLocation = latLng; mIsCameraInited = false; @@ -488,117 +488,117 @@ public class MogoServices implements IMogoMapListener, // 部分非用户操作导致地图视图变化:绘线、圈点等不触发用户刷新 // 消费状态 - if (mStatusManager.isUserInteracted()) { + if ( mStatusManager.isUserInteracted() ) { mLastCustomRefreshCenterLocation = latLng; mLastZoomLevel = zoom; return; } // v2x // adas 状态下不做任何操作 - if (mStatusManager.isADASShow()) { + if ( mStatusManager.isADASShow() ) { mLastCustomRefreshCenterLocation = latLng; mLastZoomLevel = zoom; return; } // 手动刷新触发 - if (mLastZoomLevel - zoom > mCustomRefreshStrategy.getZoomOutLevel()) { + if ( mLastZoomLevel - zoom > mCustomRefreshStrategy.getZoomOutLevel() ) { // 缩放级别缩小 - notifyRefreshData(latLng, getQueryRadius(), mCustomRefreshCallback); + notifyRefreshData( latLng, getQueryRadius(), mCustomRefreshCallback ); mLastCustomRefreshCenterLocation = latLng; mLastZoomLevel = zoom; - } else if (mLastZoomLevel - zoom < 0) { + } else if ( mLastZoomLevel - zoom < 0 ) { mLastZoomLevel = zoom; - } else if (mLastZoomLevel == zoom) { + } else if ( mLastZoomLevel == zoom ) { // 手动平移 Message msg = Message.obtain(); msg.what = ServiceConst.MSG_MAP_CHANGED; - msg.obj = new RefreshObject(mCustomRefreshCallback, getQueryRadius(), latLng, 0); - mThreadHandler.sendMessage(msg); + msg.obj = new RefreshObject( mCustomRefreshCallback, getQueryRadius(), latLng, 0 ); + mThreadHandler.sendMessage( msg ); } } private int getQueryRadius() { mCameraSouthWestPosition = mUiController.getCameraSouthWestPosition(); mCameraNorthEastPosition = mUiController.getCameraNorthEastPosition(); - if (mIsVertical) { - return ((int) (getMapCameraFactWidth() / 2)); + if ( mIsVertical ) { + return ( ( int ) ( getMapCameraFactWidth() / 2 ) ); } - return ((int) (getMapCameraFactHeight() / 2)); + return ( ( int ) ( getMapCameraFactHeight() / 2 ) ); } /** * 平移地图刷新策略 */ - private boolean invokeRefreshWhenTranslationByUser(MogoLatLng latLng) { + private boolean invokeRefreshWhenTranslationByUser( MogoLatLng latLng ) { try { - Trace.beginSection("timer.invokeRefreshWhenTranslationByUser"); + Trace.beginSection( "timer.invokeRefreshWhenTranslationByUser" ); float factor = 0.0f; - if (mIsVertical) { + if ( mIsVertical ) { factor = getMapCameraFactWidth(); } else { factor = getMapCameraFactHeight(); } - if (factor == 0.0f) { + if ( factor == 0.0f ) { return false; } - float distance = Utils.calculateLineDistance(latLng, mLastCustomRefreshCenterLocation); + float distance = Utils.calculateLineDistance( latLng, mLastCustomRefreshCenterLocation ); Trace.endSection(); return distance > factor; - } catch (Exception e) { - Logger.e(TAG, e, "warming. "); + } catch ( Exception e ) { + Logger.e( TAG, e, "warming. " ); return false; } } @Override - public void onLocationChanged(MogoLocation location) { + public void onLocationChanged( MogoLocation location ) { - if (mStatusManager.isADASShow()) { + if ( mStatusManager.isADASShow() ) { return; } - if (mStatusManager.isSearchUIShow()) { + if ( mStatusManager.isSearchUIShow() ) { return; } - if (location == null) { + if ( location == null ) { return; } // 自动刷新触发 - final MogoLatLng point = new MogoLatLng(location.getLatitude(), location.getLongitude()); - if (mLastAutoRefreshLocation == null) { + final MogoLatLng point = new MogoLatLng( location.getLatitude(), location.getLongitude() ); + if ( mLastAutoRefreshLocation == null ) { mLastAutoRefreshLocation = point; mLoopRequest = true; - notifyRefreshData(mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback); + notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback ); return; } - float distance = Utils.calculateLineDistance(mLastAutoRefreshLocation, point); - if (distance > mAutoRefreshStrategy.getDistance()) { - mStatusManager.setUserInteractionStatus(ServiceConst.TYPE, true, false); + float distance = Utils.calculateLineDistance( mLastAutoRefreshLocation, point ); + if ( distance > mAutoRefreshStrategy.getDistance() ) { + mStatusManager.setUserInteractionStatus( ServiceConst.TYPE, true, false ); mUiController.recoverLockMode(); - mStatusManager.setUserInteractionStatus(TAG, true, false); - mUiController.changeZoom(ServiceConst.DEFAULT_ZOOM_LEVEL); + mStatusManager.setUserInteractionStatus( TAG, true, false ); + mUiController.changeZoom( ServiceConst.DEFAULT_ZOOM_LEVEL ); mLastAutoRefreshLocation = point; - notifyRefreshData(mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback); + notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback ); } } /** * 刷新数据 */ - private void notifyRefreshData(MogoLatLng latLng, int radius, RefreshCallback callback) { - if (mStatusManager.isSearchUIShow()) { + private void notifyRefreshData( MogoLatLng latLng, int radius, RefreshCallback callback ) { + if ( mStatusManager.isSearchUIShow() ) { return; } - Logger.d(TAG, mAutoRefreshCallback == callback ? "触发自动刷新" : "触发手动刷新"); + Logger.d( TAG, mAutoRefreshCallback == callback ? "触发自动刷新" : "触发手动刷新" ); int amount = mLastZoomLevel >= 10 ? 5 : 10; Message msg = Message.obtain(); msg.what = ServiceConst.MSG_REQUEST_DATA; - msg.obj = new RefreshObject(callback, radius, latLng, amount); - mThreadHandler.sendMessage(msg); + msg.obj = new RefreshObject( callback, radius, latLng, amount ); + mThreadHandler.sendMessage( msg ); } @Override @@ -612,7 +612,7 @@ public class MogoServices implements IMogoMapListener, } @Override - public void onNaviInfoUpdate(MogoNaviInfo naviinfo) { + public void onNaviInfoUpdate( MogoNaviInfo naviinfo ) { } @Override @@ -624,38 +624,38 @@ public class MogoServices implements IMogoMapListener, } @Override - public void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) { + public void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ) { //Logger.d( TAG, "状态发生改变---descriptor---" + descriptor + "----isTrue---" + isTrue ); - switch (descriptor) { + switch ( descriptor ) { case USER_INTERACTED: - if (isTrue) { - restartAutoRefreshAtTime(ServiceConst.DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT); + if ( isTrue ) { + restartAutoRefreshAtTime( ServiceConst.DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT ); } break; case SEARCH_UI: - if (isTrue) { + if ( isTrue ) { // 搜索时,不在自动刷新打点策略 stopAutoRefreshStrategy(); } else { // 搜索后,打开打点策略 - if (mAutoRefreshCallback != null) { + if ( mAutoRefreshCallback != null ) { mAutoRefreshCallback.onSuccess(); } } break; case ADAS_UI: try { - if (isTrue) { + if ( isTrue ) { onAdasOn(); } else { onAdasClosed(); } - } catch (Exception e) { + } catch ( Exception e ) { e.printStackTrace(); } break; case MAIN_PAGE_RESUME: - if (isTrue) { + if ( isTrue ) { registerInternalUnWakeupWords(); } else { unregisterInternalUnWakeupWords(); @@ -674,31 +674,31 @@ public class MogoServices implements IMogoMapListener, private void onAdasClosed() { refreshStrategy(); // ADAS关闭后,打开打点策略 - if (mAutoRefreshCallback != null) { + if ( mAutoRefreshCallback != null ) { mAutoRefreshCallback.onSuccess(); } } - public void restartAutoRefreshAtTime(int time) { - if (time < 0) { - Logger.w(TAG, "ignore refresh request case time < 0"); + public void restartAutoRefreshAtTime( int time ) { + if ( time < 0 ) { + Logger.w( TAG, "ignore refresh request case time < 0" ); return; } stopAutoRefreshStrategy(); mRefreshRemainingTime = time; long delay = ServiceConst.DECREASE_INTERVAL; - if (mRefreshRemainingTime < ServiceConst.DECREASE_INTERVAL) { + if ( mRefreshRemainingTime < ServiceConst.DECREASE_INTERVAL ) { delay = mRefreshRemainingTime; } - mHandler.sendEmptyMessageDelayed(ServiceConst.MSG_TYPE_REFRESH_DECREASE, delay); - Logger.i(TAG, "下次刷新时间:%ss后", mRefreshRemainingTime); + mHandler.sendEmptyMessageDelayed( ServiceConst.MSG_TYPE_REFRESH_DECREASE, delay ); + Logger.i( TAG, "下次刷新时间:%ss后", mRefreshRemainingTime ); } public void refreshStrategy() { - Logger.d(TAG, "move to center and refresh data."); - mStatusManager.setUserInteractionStatus(ServiceConst.TYPE, true, false); + Logger.d( TAG, "move to center and refresh data." ); + mStatusManager.setUserInteractionStatus( ServiceConst.TYPE, true, false ); mUiController.recoverLockMode();// 锁车代替移到中心点 - notifyRefreshData(mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback); + notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback ); } @Override @@ -712,125 +712,120 @@ public class MogoServices implements IMogoMapListener, } @Override - public void onUpdateTraffic(MogoTraffic traffic) { + public void onUpdateTraffic( MogoTraffic traffic ) { } @Override - public void onUpdateTraffic2(MogoTraffic traffic) { + public void onUpdateTraffic2( MogoTraffic traffic ) { - if (traffic != null) { + if ( traffic != null ) { - if (traffic.getSpeedLimit() <= 0) { + if ( traffic.getSpeedLimit() <= 0 ) { return; } - Logger.i(TAG, "speed = %d, desc = %s", traffic.getSpeedLimit(), traffic.getDesc()); + Logger.i( TAG, "speed = %d, desc = %s", traffic.getSpeedLimit(), traffic.getDesc() ); // 发送当前限速到 adas - Intent intent = new Intent("com.mogo.launcher.adas"); - intent.putExtra("adas_speed_limit", traffic.getSpeedLimit()); - mContext.sendBroadcast(intent); + Intent intent = new Intent( "com.mogo.launcher.adas" ); + intent.putExtra( "adas_speed_limit", traffic.getSpeedLimit() ); + mContext.sendBroadcast( intent ); } } @Override - public void onUpdateCongestion(MogoCongestionInfo info) { + public void onUpdateCongestion( MogoCongestionInfo info ) { } @Override - public void onIntentReceived(String command, Intent intent) { - if (MogoReceiver.ACTIION_ADAS.equals(command)) { - if (intent == null) { + public void onIntentReceived( String command, Intent intent ) { + if ( MogoReceiver.ACTIION_ADAS.equals( command ) ) { + if ( intent == null ) { return; } - int status = intent.getIntExtra(MogoReceiver.PARAM_ADAS_STATUS, 0); - mStatusManager.setADASUIShow(ServiceConst.TYPE, status == 1); - if (status != 1) { // adas 关闭 - mUiController.setLockZoom(ServiceConst.DEFAULT_LOCK_CAR_ZOOM_LEVEL); - // 延时两秒执行是为了让其它事物完成 - UiThreadHandler.postDelayed(() -> { - mUiController.showMyLocation(true); - }, 2_000L); + int status = intent.getIntExtra( MogoReceiver.PARAM_ADAS_STATUS, 0 ); + mStatusManager.setADASUIShow( ServiceConst.TYPE, status == 1 ); + } else if ( Intent.ACTION_POWER_CONNECTED.equals( command ) ) { + mStatusManager.setAccStatus( ServiceConst.TYPE, true ); + } else if ( Intent.ACTION_POWER_DISCONNECTED.equals( command ) ) { + mStatusManager.setAccStatus( ServiceConst.TYPE, false ); + } else if ( MogoReceiver.ACTION_NWD_ACC.equals( command ) ) { + int state = intent.getByteExtra( MogoReceiver.PARAM_ACC_STATUS, ( byte ) 0 ); + mStatusManager.setAccStatus( ServiceConst.TYPE, state == 1 ); + } else if ( MogoReceiver.ACTION_VOICE_UI.equals( command ) ) { + String val = intent.getStringExtra( MogoReceiver.PARRAM_WAKE_STATUS ); + if ( TextUtils.equals( val, MogoReceiver.VALUE_DISMISS ) ) { + mStatusManager.setVoiceUIShow( TAG, false ); + } else if ( TextUtils.equals( val, MogoReceiver.VALUE_SHOW ) ) { + mStatusManager.setVoiceUIShow( TAG, true ); } - } else if (Intent.ACTION_POWER_CONNECTED.equals(command)) { - mStatusManager.setAccStatus(ServiceConst.TYPE, true); - } else if (Intent.ACTION_POWER_DISCONNECTED.equals(command)) { - mStatusManager.setAccStatus(ServiceConst.TYPE, false); - } else if (MogoReceiver.ACTION_NWD_ACC.equals(command)) { - int state = intent.getByteExtra(MogoReceiver.PARAM_ACC_STATUS, (byte) 0); - mStatusManager.setAccStatus(ServiceConst.TYPE, state == 1); - } else if (MogoReceiver.ACTION_VOICE_UI.equals(command)) { - String val = intent.getStringExtra(MogoReceiver.PARRAM_WAKE_STATUS); - if (TextUtils.equals(val, MogoReceiver.VALUE_DISMISS)) { - mStatusManager.setVoiceUIShow(TAG, false); - } else if (TextUtils.equals(val, MogoReceiver.VALUE_SHOW)) { - mStatusManager.setVoiceUIShow(TAG, true); + } else if ( ServiceConst.COMMAND_NEXT.equals( command ) ) { + if ( mStatusManager.isMainPageOnResume() ) { + mActionManager.invoke( MapMarkerManager.getInstance().getCurrentModuleName(), + MogoAction.Next ); } - } else if (ServiceConst.COMMAND_NEXT.equals(command)) { - if (mStatusManager.isMainPageOnResume()) { - mActionManager.invoke(MapMarkerManager.getInstance().getCurrentModuleName(), - MogoAction.Next); + } else if ( ServiceConst.COMMAND_PREVIOUS.equals( command ) ) { + if ( mStatusManager.isMainPageOnResume() ) { + mActionManager.invoke( MapMarkerManager.getInstance().getCurrentModuleName(), + MogoAction.Prev ); } - } else if (ServiceConst.COMMAND_PREVIOUS.equals(command)) { - if (mStatusManager.isMainPageOnResume()) { - mActionManager.invoke(MapMarkerManager.getInstance().getCurrentModuleName(), - MogoAction.Prev); - } - } else if (ServiceConst.COMMAND_SWITCH_CARD.equals(command)) { - String data = intent.getStringExtra("data"); + } else if ( ServiceConst.COMMAND_SWITCH_CARD.equals( command ) ) { + String data = intent.getStringExtra( "data" ); try { - JSONObject jsonObject = new JSONObject(data); - String card = jsonObject.getString("card"); - if (TextUtils.equals("多媒体卡片", card)) { - switchCard2(ServiceConst.CARD_TYPE_SHARE_MUSIC); - } else if (TextUtils.equals("探路卡片", card)) { - switchCard2(ServiceConst.CARD_TYPE_ROAD_CONDITION); - } else if (TextUtils.equals("在线车辆卡片", card)) { - switchCard2(ServiceConst.CARD_TYPE_USER_DATA); - } else if (TextUtils.equals("新鲜事卡片", card)) { - switchCard2(ServiceConst.CARD_TYPE_NOVELTY); + JSONObject jsonObject = new JSONObject( data ); + String card = jsonObject.getString( "card" ); + if ( TextUtils.equals( "多媒体卡片", card ) + || TextUtils.equals( "媒体中心卡片", card ) + || TextUtils.equals( "音乐卡片", card ) ) { + switchCard2( ServiceConst.CARD_TYPE_SHARE_MUSIC ); + } else if ( TextUtils.equals( "探路卡片", card ) ) { + switchCard2( ServiceConst.CARD_TYPE_ROAD_CONDITION ); + } else if ( TextUtils.equals( "在线车辆卡片", card ) ) { + switchCard2( ServiceConst.CARD_TYPE_USER_DATA ); + } else if ( TextUtils.equals( "新鲜事卡片", card ) ) { + switchCard2( ServiceConst.CARD_TYPE_NOVELTY ); } - } catch (JSONException e) { + } catch ( JSONException e ) { e.printStackTrace(); } - } else if (MogoReceiver.ACTION_ADAS_STATUS.equals(command)) { - String msg = intent.getStringExtra("adasMsg"); - if (TextUtils.isEmpty(msg)) { + } else if ( MogoReceiver.ACTION_ADAS_STATUS.equals( command ) ) { + String msg = intent.getStringExtra( "adasMsg" ); + if ( TextUtils.isEmpty( msg ) ) { return; } - CarStateInfo stateInfo = GsonUtil.objectFromJson(msg, CarStateInfo.class); - if (stateInfo != null) { - changeCarHeadstockDirection(stateInfo.getValues().getHeading()); + CarStateInfo stateInfo = GsonUtil.objectFromJson( msg, CarStateInfo.class ); + if ( stateInfo != null ) { + changeCarHeadstockDirection( stateInfo.getValues().getHeading() ); // changeMyLocation( stateInfo.getValues() ); } - } else if (ServiceConst.COMMAND_OPERATION.equals(command)) { + } else if ( ServiceConst.COMMAND_OPERATION.equals( command ) ) { try { - JSONObject object = new JSONObject(intent.getStringExtra("data")); - String app = object.optString("object"); - String operation = object.optString("operation"); - if (TextUtils.equals(app, "车聊聊")) { - if (TextUtils.equals("打开", operation)) { - switchCard2(ServiceConst.CARD_TYPE_CARS_CHATTING); + JSONObject object = new JSONObject( intent.getStringExtra( "data" ) ); + String app = object.optString( "object" ); + String operation = object.optString( "operation" ); + if ( TextUtils.equals( app, "车聊聊" ) ) { + if ( TextUtils.equals( "打开", operation ) ) { + switchCard2( ServiceConst.CARD_TYPE_CARS_CHATTING ); } } - } catch (JSONException e) { + } catch ( JSONException e ) { e.printStackTrace(); } - } else if (MogoReceiver.ACTION_VOICE_READY.equals(command)) { - AIAssist.getInstance(mContext).flush(); - } else if (ServiceConst.COMMAND_MY_LOCATION.equals(command)) { - if (mStatusManager.isSearchUIShow()) { + } else if ( MogoReceiver.ACTION_VOICE_READY.equals( command ) ) { + AIAssist.getInstance( mContext ).flush(); + } else if ( ServiceConst.COMMAND_MY_LOCATION.equals( command ) ) { + if ( mStatusManager.isSearchUIShow() ) { return; } - if (mStatusManager.isMainPageOnResume()) { + if ( mStatusManager.isMainPageOnResume() ) { mUiController.recoverLockMode(); } - } else if (MogoReceiver.ACTION_MOCK.equals(command)) { - final int oper = intent.getIntExtra("oper", -1); - switch (oper) { + } else if ( MogoReceiver.ACTION_MOCK.equals( command ) ) { + final int oper = intent.getIntExtra( "oper", -1 ); + switch ( oper ) { case 1: - mUiController.showMyLocation(true); + mUiController.showMyLocation( true ); break; } } @@ -839,154 +834,154 @@ public class MogoServices implements IMogoMapListener, /** * 切换卡片 */ - private void switchCard2(String card) { - if (isApplicationBroughtToBackground(mContext)) { - mLauncher.backToLauncher(mContext); - UiThreadHandler.postDelayed(() -> { - if (mStatusManager.isADASShow()) { + private void switchCard2( String card ) { + if ( isApplicationBroughtToBackground( mContext ) ) { + mLauncher.backToLauncher( mContext ); + UiThreadHandler.postDelayed( () -> { + if ( mStatusManager.isADASShow() ) { mADASController.closeADAS(); } - mCardManager.switch2(card, true); - }, 2000L); + mCardManager.switch2( card, true ); + }, 2000L ); } else { mFragmentManager.clearAll(); - if (mStatusManager.isADASShow()) { + if ( mStatusManager.isADASShow() ) { mADASController.closeADAS(); } - mCardManager.switch2(card, true); + mCardManager.switch2( card, true ); } } - private boolean isApplicationBroughtToBackground(final Context context) { - ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); - List tasks = am.getRunningTasks(1); - if (!tasks.isEmpty()) { - ComponentName topActivity = tasks.get(0).topActivity; - if (!topActivity.getPackageName().equals(context.getPackageName())) { + private boolean isApplicationBroughtToBackground( final Context context ) { + ActivityManager am = ( ActivityManager ) context.getSystemService( Context.ACTIVITY_SERVICE ); + List< ActivityManager.RunningTaskInfo > tasks = am.getRunningTasks( 1 ); + if ( !tasks.isEmpty() ) { + ComponentName topActivity = tasks.get( 0 ).topActivity; + if ( !topActivity.getPackageName().equals( context.getPackageName() ) ) { return true; } } return false; } - private void changeCarHeadstockDirection(final double degree) { - if (mNavi.isNaviing()) { + private void changeCarHeadstockDirection( final double degree ) { + if ( mNavi.isNaviing() ) { return; } - if (mStatusManager.isSearchUIShow()) { + if ( mStatusManager.isSearchUIShow() ) { return; } - if (!mStatusManager.isMainPageOnResume()) { + if ( !mStatusManager.isMainPageOnResume() ) { return; } - if (mUiController.getCurrentUiMode() != EnumMapUI.NorthUP_2D) { + if ( mUiController.getCurrentUiMode() != EnumMapUI.NorthUP_2D ) { return; } - UiThreadHandler.post(() -> { + UiThreadHandler.post( () -> { - mUiController.showMyLocation(inflateCursorView(degree)); - }); + mUiController.showMyLocation( inflateCursorView( degree ) ); + } ); } - private View inflateCursorView(double degree) { - View view = View.inflate(mContext, R.layout.map_amap_cursor, null); - view.setRotation((float) degree); + private View inflateCursorView( double degree ) { + View view = View.inflate( mContext, R.layout.map_amap_cursor, null ); + view.setRotation( ( float ) degree ); return view; } - private void changeMyLocation(CarStateInfo.ValuesBean valuesBean) { - if (valuesBean == null) { + private void changeMyLocation( CarStateInfo.ValuesBean valuesBean ) { + if ( valuesBean == null ) { return; } - Location location = new Location(LocationManager.GPS_PROVIDER); - location.setAltitude(valuesBean.getAlt()); - location.setLatitude(valuesBean.getLat()); - location.setLongitude(valuesBean.getLon()); + Location location = new Location( LocationManager.GPS_PROVIDER ); + location.setAltitude( valuesBean.getAlt() ); + location.setLatitude( valuesBean.getLat() ); + location.setLongitude( valuesBean.getLon() ); } /** * 注册桌面免唤醒指令 */ private void registerInternalUnWakeupWords() { - if (mInternalUnWakeupRegisterStatus) { + if ( mInternalUnWakeupRegisterStatus ) { return; } mInternalUnWakeupRegisterStatus = true; - AIAssist.getInstance(mContext) - .registerUnWakeupCommand(ServiceConst.CMD_UN_WAKE_PREV, - ServiceConst.CMD_UN_WAKE_PREV_UN_WAKE_WORDS, this); - AIAssist.getInstance(mContext) - .registerUnWakeupCommand(ServiceConst.CMD_UN_WAKE_NEXT, - ServiceConst.CMD_UN_WAKE_NEXT_UN_WAKE_WORDS, this); - AIAssist.getInstance(mContext) - .registerUnWakeupCommand(ServiceConst.CMD_UN_WAKEUP_MY_LOCATION, - ServiceConst.CMD_UN_WAKEUP_WORDS_MY_LOCATION, this); + AIAssist.getInstance( mContext ) + .registerUnWakeupCommand( ServiceConst.CMD_UN_WAKE_PREV, + ServiceConst.CMD_UN_WAKE_PREV_UN_WAKE_WORDS, this ); + AIAssist.getInstance( mContext ) + .registerUnWakeupCommand( ServiceConst.CMD_UN_WAKE_NEXT, + ServiceConst.CMD_UN_WAKE_NEXT_UN_WAKE_WORDS, this ); + AIAssist.getInstance( mContext ) + .registerUnWakeupCommand( ServiceConst.CMD_UN_WAKEUP_MY_LOCATION, + ServiceConst.CMD_UN_WAKEUP_WORDS_MY_LOCATION, this ); } /** * 注销桌面免唤醒指令 */ private void unregisterInternalUnWakeupWords() { - if (!mInternalUnWakeupRegisterStatus) { + if ( !mInternalUnWakeupRegisterStatus ) { return; } mInternalUnWakeupRegisterStatus = false; - AIAssist.getInstance(mContext) - .unregisterUnWakeupCommand(ServiceConst.CMD_UN_WAKE_PREV, this); - AIAssist.getInstance(mContext) - .unregisterUnWakeupCommand(ServiceConst.CMD_UN_WAKE_NEXT, this); - AIAssist.getInstance(mContext) - .unregisterUnWakeupCommand(ServiceConst.CMD_UN_WAKEUP_MY_LOCATION, this); + AIAssist.getInstance( mContext ) + .unregisterUnWakeupCommand( ServiceConst.CMD_UN_WAKE_PREV, this ); + AIAssist.getInstance( mContext ) + .unregisterUnWakeupCommand( ServiceConst.CMD_UN_WAKE_NEXT, this ); + AIAssist.getInstance( mContext ) + .unregisterUnWakeupCommand( ServiceConst.CMD_UN_WAKEUP_MY_LOCATION, this ); } @Override - public void onCmdSelected(String cmd) { - if (TextUtils.equals(ServiceConst.CMD_UN_WAKE_PREV, cmd)) { - mActionManager.invoke(MapMarkerManager.getInstance().getCurrentModuleName(), - MogoAction.Prev); - } else if (TextUtils.equals(ServiceConst.CMD_UN_WAKE_NEXT, cmd)) { - mActionManager.invoke(MapMarkerManager.getInstance().getCurrentModuleName(), - MogoAction.Next); - } else if (TextUtils.equals(ServiceConst.CMD_UN_WAKEUP_MY_LOCATION, cmd)) { - if (mStatusManager.isMainPageOnResume()) { + public void onCmdSelected( String cmd ) { + if ( TextUtils.equals( ServiceConst.CMD_UN_WAKE_PREV, cmd ) ) { + mActionManager.invoke( MapMarkerManager.getInstance().getCurrentModuleName(), + MogoAction.Prev ); + } else if ( TextUtils.equals( ServiceConst.CMD_UN_WAKE_NEXT, cmd ) ) { + mActionManager.invoke( MapMarkerManager.getInstance().getCurrentModuleName(), + MogoAction.Next ); + } else if ( TextUtils.equals( ServiceConst.CMD_UN_WAKEUP_MY_LOCATION, cmd ) ) { + if ( mStatusManager.isMainPageOnResume() ) { mUiController.recoverLockMode(); } - } else if (TextUtils.equals(ServiceConst.CMD_BACK, cmd)) { + } else if ( TextUtils.equals( ServiceConst.CMD_BACK, cmd ) ) { mFragmentManager.clearAll(); } } @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 ) { } @Override - public void onTransaction(int size) { - if (size == 0) { - mUiController.setPointToCenter(0.66145, 0.661094); - mUiController.showMyLocation(!mNavi.isNaviing()); - AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ServiceConst.CMD_BACK); + public void onTransaction( int size ) { + if ( size == 0 ) { + mUiController.setPointToCenter( 0.66145, 0.661094 ); + mUiController.showMyLocation( !mNavi.isNaviing() ); + AIAssist.getInstance( mContext ).unregisterUnWakeupCommand( ServiceConst.CMD_BACK ); } else { - mUiController.showMyLocation(false); - AIAssist.getInstance(mContext) - .registerUnWakeupCommand(ServiceConst.CMD_BACK, ServiceConst.CMD_BACK_WORDS, this); - mUiController.setPointToCenter(0.5, 0.5); + mUiController.showMyLocation( false ); + AIAssist.getInstance( mContext ) + .registerUnWakeupCommand( ServiceConst.CMD_BACK, ServiceConst.CMD_BACK_WORDS, this ); + mUiController.setPointToCenter( 0.5, 0.5 ); } } } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java index 6dd1001e38..2828c1b12c 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java @@ -344,6 +344,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, } // 解析不同的Marker类型,然后对应的进行绘制 + Logger.d( TAG, "draw marker" ); mLastDataResult = response.getResult(); UiThreadHandler.post( () -> { diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/strategy/IMogoRefreshStrategyController.java b/services/mogo-service-api/src/main/java/com/mogo/service/strategy/IMogoRefreshStrategyController.java index 7c3f6f89ca..0cc09c1221 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/strategy/IMogoRefreshStrategyController.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/strategy/IMogoRefreshStrategyController.java @@ -16,7 +16,4 @@ public interface IMogoRefreshStrategyController extends IProvider { * @param delay 单位(ms) 0 为则立即刷新,为负值则忽略 */ void restartAutoRefreshAtTime( int delay ); - - - } \ No newline at end of file diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java index 9969338db9..f2d6092c5e 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java @@ -47,6 +47,8 @@ public class MogoADASController implements IMogoADASController { return; } + Logger.d( TAG, "open adas" ); + Intent intent = new Intent( ACTION ); intent.putExtra( PARAM_COMMAND, VAL_COMMAND ); JSONObject object = new JSONObject(); @@ -67,6 +69,8 @@ public class MogoADASController implements IMogoADASController { return; } + Logger.d( TAG, "close adas" ); + Intent intent = new Intent( ACTION ); intent.putExtra( PARAM_COMMAND, VAL_COMMAND ); JSONObject object = new JSONObject();