diff --git a/gradle.properties b/gradle.properties index 1c95496670..a0d2d6dfd6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -70,7 +70,7 @@ MOGO_MODULE_GUIDESHOW_PROVIDER_VERSION=1.0.2-SNAPSHOT # 在线车辆F MOGO_MODULE_ONLINECAR_VERSION=1.0.3.2 # v2x -MOGO_MODULE_V2X_VERSION=1.1.4 +MOGO_MODULE_V2X_VERSION=1.1.10-SNAPSHOT # 媒体卡片 MOGO_MODULE_MEDIA_VERSION=1.0.4.11 # 推送 diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppFilterImpl.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppFilterImpl.java index 7f8776b806..1d0437d956 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppFilterImpl.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppFilterImpl.java @@ -40,9 +40,6 @@ public class AppFilterImpl implements AppFilter { if ( isFilterPackages( packageInfo ) ) { return true; } - if ( !AppEnumHelper.isCustomizedApp( packageInfo.packageName ) ) { - return true; - } if ( noLaunchIntent( packageInfo ) ) { return true; } diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsAdapter.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsAdapter.java index 95770cbe11..4d33051d1b 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsAdapter.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsAdapter.java @@ -57,7 +57,11 @@ public class AppsAdapter extends BaseAdapter { } AppInfo appInfo = getItem( position ); if ( appInfo.getIconResId() <= 0 ) { - holder.mIcon.setImageResource( R.drawable.module_apps_ic_default_icon ); + if ( appInfo.getIcon() != null ) { + holder.mIcon.setImageDrawable( appInfo.getIcon() ); + } else { + holder.mIcon.setImageResource( R.drawable.module_apps_ic_default_icon ); + } } else { holder.mIcon.setImageResource( appInfo.getIconResId() ); } diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/AppsModel.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/AppsModel.java index 1ec2093149..57b4bf50f2 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/AppsModel.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/AppsModel.java @@ -1,8 +1,10 @@ package com.mogo.module.apps.model; import android.content.Context; +import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; import android.graphics.drawable.Drawable; import android.text.TextUtils; @@ -78,9 +80,12 @@ public class AppsModel { String packageName = packageInfo.packageName; String versionName = packageInfo.versionName; int versionCode = packageInfo.versionCode; - // 不加载默认图标,避免不必要的开销,因为现在应用列表图标都是定制的啊~~~~ -// Drawable appIcon = packageInfo.applicationInfo.loadIcon( packageManager ); - AppInfo appInfo = new AppInfo( appName, packageName, versionName, versionCode, null, AppEnumHelper.getCustomizedAppIconResId( packageName ) ); + int iconResId = AppEnumHelper.getCustomizedAppIconResId( packageName ); + Drawable appIcon = null; + if ( iconResId == 0 ) { + appIcon = packageInfo.applicationInfo.loadIcon( packageManager ); + } + AppInfo appInfo = new AppInfo( appName, packageName, versionName, versionCode, appIcon, iconResId ); mPagedApps.get( page ).add( appInfo ); } if ( callback != null ) { diff --git a/modules/mogo-module-apps/src/main/res/values/strings.xml b/modules/mogo-module-apps/src/main/res/values/strings.xml index d0d2711895..c7ce7a9fc0 100644 --- a/modules/mogo-module-apps/src/main/res/values/strings.xml +++ b/modules/mogo-module-apps/src/main/res/values/strings.xml @@ -5,6 +5,17 @@ 为了您的安全,导航中不可播放视频 com.mogo.launcher + com.mogo.launcher.app com.zhidao.launcher + com.nwd.android.toolsmanager + com.nwd.filemanager + com.zhidao.autopilot + com.android.browser + com.android.providers.downloads.ui + com.zhidao.guide.lock + com.android.settings + com.android.calculator2 + com.nwd.guidebookskin + com.iflytek.inputmethod.pad diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/MapCenterPointStrategy.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/MapCenterPointStrategy.java index fa5f1578d3..daec2f73d1 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/MapCenterPointStrategy.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/MapCenterPointStrategy.java @@ -26,8 +26,10 @@ public class MapCenterPointStrategy { // 普通场景,使用高德内部值 { Map< Integer, MapCenterPoint > common = new HashMap<>(); - common.put( CarSeries.CAR_SERIES_F80X, new MapCenterPoint( 0.5D, 0.666666666D ) ); common.put( CarSeries.CAR_SERIES_D80X, new MapCenterPoint( 0.5D, 0.666666666D ) ); + common.put( CarSeries.CAR_SERIES_E84X, new MapCenterPoint( 0.5D, 0.666666666D ) ); + common.put( CarSeries.CAR_SERIES_E84XCD, new MapCenterPoint( 0.5D, 0.666666666D ) ); + common.put( CarSeries.CAR_SERIES_F80X, new MapCenterPoint( 0.5D, 0.666666666D ) ); sStrategies.put( Scene.COMMON, common ); } @@ -35,6 +37,8 @@ public class MapCenterPointStrategy { // 选点场景,定位中心点 Map< Integer, MapCenterPoint > choosePoint = new HashMap<>(); choosePoint.put( CarSeries.CAR_SERIES_D80X, new MapCenterPoint( 0.5D, 0.5D ) ); + choosePoint.put( CarSeries.CAR_SERIES_E84X, new MapCenterPoint( 0.5D, 0.5D ) ); + choosePoint.put( CarSeries.CAR_SERIES_E84XCD, new MapCenterPoint( 0.5D, 0.5D ) ); choosePoint.put( CarSeries.CAR_SERIES_F80X, new MapCenterPoint( 0.5D, 0.5D ) ); sStrategies.put( Scene.CHOOSE_POINT, choosePoint ); } @@ -42,7 +46,9 @@ public class MapCenterPointStrategy { { // 导航场景,定位视图右下角偏下 Map< Integer, MapCenterPoint > navi = new HashMap<>(); - navi.put( CarSeries.CAR_SERIES_D80X, new MapCenterPoint( 0.734375D, 0.573333333333D ) ); + navi.put( CarSeries.CAR_SERIES_D80X, new MapCenterPoint( 0.669444444444444, 0.573333333333D ) ); + navi.put( CarSeries.CAR_SERIES_E84X, new MapCenterPoint( 0.734375D, 0.573333333333D ) ); + navi.put( CarSeries.CAR_SERIES_E84XCD, new MapCenterPoint( 0.734375D, 0.573333333333D ) ); navi.put( CarSeries.CAR_SERIES_F80X, new MapCenterPoint( 0.705208333D, 0.575D ) ); sStrategies.put( Scene.NAVI, navi ); } @@ -50,23 +56,29 @@ public class MapCenterPointStrategy { { // 导航场景 vs 道路事件展示场景,定位视图右下角偏下 Map< Integer, MapCenterPoint > naviWithRoadEvent = new HashMap<>(); - naviWithRoadEvent.put( CarSeries.CAR_SERIES_D80X, new MapCenterPoint( 0.734375D, 0.68333333333D ) ); + naviWithRoadEvent.put( CarSeries.CAR_SERIES_D80X, new MapCenterPoint( 0.669444444444444, 0.68333333333D ) ); + naviWithRoadEvent.put( CarSeries.CAR_SERIES_E84X, new MapCenterPoint( 0.734375D, 0.68333333333D ) ); + naviWithRoadEvent.put( CarSeries.CAR_SERIES_E84XCD, new MapCenterPoint( 0.734375D, 0.68333333333D ) ); naviWithRoadEvent.put( CarSeries.CAR_SERIES_F80X, new MapCenterPoint( 0.705208333D, 0.683333333333D ) ); sStrategies.put( Scene.NAVI_WITH_ROAD_EVENT, naviWithRoadEvent ); } { - // 巡航场景,定位视图右下角偏下 + // 巡航场景 Map< Integer, MapCenterPoint > aimless = new HashMap<>(); - aimless.put( CarSeries.CAR_SERIES_D80X, new MapCenterPoint( 0.734375D, 0.5D ) ); + aimless.put( CarSeries.CAR_SERIES_D80X, new MapCenterPoint( 0.669444444444444, 0.5D ) ); + aimless.put( CarSeries.CAR_SERIES_E84X, new MapCenterPoint( 0.734375D, 0.5D ) ); + aimless.put( CarSeries.CAR_SERIES_E84XCD, new MapCenterPoint( 0.734375D, 0.5D ) ); aimless.put( CarSeries.CAR_SERIES_F80X, new MapCenterPoint( 0.705208333D, 0.5D ) ); sStrategies.put( Scene.AIMLESS, aimless ); } { - // 巡航场景 vs 道路事件展示场景,定位视图右下角偏下 + // 巡航场景 vs 道路事件展示场景 Map< Integer, MapCenterPoint > aimlessWithRoadEvent = new HashMap<>(); - aimlessWithRoadEvent.put( CarSeries.CAR_SERIES_D80X, new MapCenterPoint( 0.734375D, 0.585 ) ); + aimlessWithRoadEvent.put( CarSeries.CAR_SERIES_D80X, new MapCenterPoint( 0.669444444444444, 0.585 ) ); + aimlessWithRoadEvent.put( CarSeries.CAR_SERIES_E84X, new MapCenterPoint( 0.734375D, 0.585 ) ); + aimlessWithRoadEvent.put( CarSeries.CAR_SERIES_E84XCD, new MapCenterPoint( 0.734375D, 0.585 ) ); aimlessWithRoadEvent.put( CarSeries.CAR_SERIES_F80X, new MapCenterPoint( 0.705208333D, 0.599074074D ) ); sStrategies.put( Scene.AIMLESS_WITH_ROAD_EVENT, aimlessWithRoadEvent ); } @@ -75,6 +87,8 @@ public class MapCenterPointStrategy { // 规划路线,定位视图右边 Map< Integer, MapCenterPoint > calculatePath = new HashMap<>(); calculatePath.put( CarSeries.CAR_SERIES_D80X, new MapCenterPoint( 0.733398D, 0.610833D ) ); + calculatePath.put( CarSeries.CAR_SERIES_E84X, new MapCenterPoint( 0.733398D, 0.610833D ) ); + calculatePath.put( CarSeries.CAR_SERIES_E84XCD, new MapCenterPoint( 0.733398D, 0.610833D ) ); calculatePath.put( CarSeries.CAR_SERIES_F80X, new MapCenterPoint( 0.703125D, 0.6083333D ) ); sStrategies.put( Scene.CALCULATE_PATH, calculatePath ); } @@ -83,6 +97,8 @@ public class MapCenterPointStrategy { // 分类搜索,定位视图右边 Map< Integer, MapCenterPoint > categorySearch = new HashMap<>(); categorySearch.put( CarSeries.CAR_SERIES_D80X, new MapCenterPoint( 0.733398D, 0.5D ) ); + categorySearch.put( CarSeries.CAR_SERIES_E84X, new MapCenterPoint( 0.733398D, 0.5D ) ); + categorySearch.put( CarSeries.CAR_SERIES_E84XCD, new MapCenterPoint( 0.733398D, 0.5D ) ); categorySearch.put( CarSeries.CAR_SERIES_F80X, new MapCenterPoint( 0.733594D, 0.5D ) ); sStrategies.put( Scene.CATEGORY_SEARCH, categorySearch ); } @@ -90,7 +106,9 @@ public class MapCenterPointStrategy { { // V2X,场景视图右边 Map< Integer, MapCenterPoint > categoryV2XEvent = new HashMap<>(); - categoryV2XEvent.put( CarSeries.CAR_SERIES_D80X, new MapCenterPoint( 0.677734375D, 0.7D ) ); + categoryV2XEvent.put( CarSeries.CAR_SERIES_D80X, new MapCenterPoint( 0.669444444444444, 0.7D ) ); + categoryV2XEvent.put( CarSeries.CAR_SERIES_E84X, new MapCenterPoint( 0.677734375D, 0.7D ) ); + categoryV2XEvent.put( CarSeries.CAR_SERIES_E84XCD, new MapCenterPoint( 0.677734375D, 0.7D ) ); categoryV2XEvent.put( CarSeries.CAR_SERIES_F80X, new MapCenterPoint( 0.6963541D, 0.65D ) ); sStrategies.put( Scene.CATEGORY_V2X_EVENT, categoryV2XEvent ); } diff --git a/modules/mogo-module-gps-simulator-debug/src/main/java/com/mogo/module/gps/simulator/WebSocketManager.java b/modules/mogo-module-gps-simulator-debug/src/main/java/com/mogo/module/gps/simulator/WebSocketManager.java index f5564894eb..85f0cffb2b 100644 --- a/modules/mogo-module-gps-simulator-debug/src/main/java/com/mogo/module/gps/simulator/WebSocketManager.java +++ b/modules/mogo-module-gps-simulator-debug/src/main/java/com/mogo/module/gps/simulator/WebSocketManager.java @@ -70,6 +70,7 @@ public class WebSocketManager { super.onOpen( handshakedata ); UiThreadHandler.post( () -> { TipToast.shortTip( "模拟GPS开启成功" ); + mServiceApis.getMapServiceApi().getSingletonLocationClient( AbsMogoApplication.getApp() ).stop(); } ); } @@ -78,6 +79,7 @@ public class WebSocketManager { super.onClose( code, reason, remote ); UiThreadHandler.post( () -> { TipToast.shortTip( "模拟GPS关闭成功" ); + mServiceApis.getMapServiceApi().getSingletonLocationClient( AbsMogoApplication.getApp() ).start(); } ); shutdownServiceQuietly(); } @@ -110,6 +112,7 @@ public class WebSocketManager { location.setSpeed( realTimeLocationVo.getVehicleSpeed() ); location.setAccuracy( 1 ); location.setTime( realTimeLocationVo.getLocationTime() ); + if ( listeners != null ) { while ( listeners.hasNext() ) { listeners.next().onLocationChanged( location ); diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/service/MogoMainService.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/service/MogoMainService.java index c280d8bf9d..ce556acb4c 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/service/MogoMainService.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/service/MogoMainService.java @@ -16,6 +16,7 @@ import com.mogo.module.main.EventDispatchCenter; import com.mogo.module.main.cards.MogoModulesManager; import com.mogo.service.IMogoServiceApis; import com.mogo.service.MogoServicePaths; +import com.mogo.utils.UiThreadHandler; import com.mogo.utils.logger.Logger; import com.zhidao.roadcondition.service.MainService; @@ -43,9 +44,12 @@ class MogoMainService extends Service implements IMogoLocationListener { mServiceApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation(); initAndStartLocation(); initGpsSimulatorListener(); - loadBaseModules(); - startTanluService(); - initADAS(); + UiThreadHandler.postDelayed( () -> { + loadBaseModules(); + startTanluService(); + initADAS(); + }, 2_000L + ); } @Nullable diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/VoiceConstants.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/VoiceConstants.java index 8ac087ef15..84b2d61b22 100644 --- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/VoiceConstants.java +++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/VoiceConstants.java @@ -164,8 +164,8 @@ public class VoiceConstants { static { // 免唤醒 - //sVoiceCmds.put( VoiceConstants.CMD_MAP_ZOOM_IN_UN_WAKEUP, VoiceConstants.CMD_MAP_ZOOM_IN_TRIGGER_WORDS ); - //sVoiceCmds.put( VoiceConstants.CMD_MAP_ZOOM_OUT_UN_WAKEUP, VoiceConstants.CMD_MAP_ZOOM_OUT_TRIGGER_WORDS ); +// sVoiceCmds.put( VoiceConstants.CMD_MAP_ZOOM_IN_UN_WAKEUP, VoiceConstants.CMD_MAP_ZOOM_IN_TRIGGER_WORDS ); +// sVoiceCmds.put( VoiceConstants.CMD_MAP_ZOOM_OUT_UN_WAKEUP, VoiceConstants.CMD_MAP_ZOOM_OUT_TRIGGER_WORDS ); //sVoiceCmds.put( VoiceConstants.CMD_MAP_2D_UN_WAKEUP, VoiceConstants.CMD_MAP_2D_TRIGGER_WORDS ); //sVoiceCmds.put( VoiceConstants.CMD_MAP_3D_UN_WAKEUP, VoiceConstants.CMD_MAP_3D_TRIGGER_WORDS ); //sVoiceCmds.put( VoiceConstants.CMD_MAP_DAY_TIME_MODE_UN_WAKEUP, VoiceConstants.CMD_MAP_DAY_TIME_MODE_TRIGGER_WORDS ); diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java index 960153e1b1..c76e7b3193 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java @@ -194,11 +194,11 @@ public class MarkerServiceHandler { * 绘制Marker * 建议使用 * - * @see MapMarkerManager#drawMapMarker(MarkerShowEntity) + * @see MapMarkerManager#drawMapMarker(MarkerShowEntity, int) */ @Deprecated public static IMogoMarker drawMapMarker( MarkerShowEntity markerShowEntity ) { - return getMapMarkerManager().drawMapMarker( markerShowEntity ); + return getMapMarkerManager().drawMapMarker( markerShowEntity, ServiceConst.MARKER_Z_INDEX_HIGH ); } /** 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 0fbcaa89bb..6827bafe78 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 @@ -577,11 +577,6 @@ public class MogoServices implements IMogoMapListener, @Override public void onLocationChanged( MogoLocation location ) { - - } - - @Override - public void onCarLocationChanged2( Location latLng ) { if ( mStatusManager.isV2XShow() ) { return; } @@ -590,12 +585,12 @@ public class MogoServices implements IMogoMapListener, return; } - if ( latLng == null ) { + if ( location == null ) { return; } // 自动刷新触发 - final MogoLatLng point = new MogoLatLng( latLng.getLatitude(), latLng.getLongitude() ); + final MogoLatLng point = new MogoLatLng( location.getLatitude(), location.getLongitude() ); if ( mLastAutoRefreshLocation == null ) { mLastAutoRefreshLocation = point; mLoopRequest = true; @@ -613,6 +608,10 @@ public class MogoServices implements IMogoMapListener, } } + @Override + public void onCarLocationChanged2( Location latLng ) { + } + @Override public void onCarLocationChanged( MogoLatLng latLng ) { diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java index ab0ccef734..a89c3b1ddd 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java @@ -113,6 +113,9 @@ public class ServiceConst { */ public static final int MSG_LOCK_CAR = 0x202; + public static final int MARKER_Z_INDEX_HIGH = 100; + public static final int MARKER_Z_INDEX_LOW = 2; + /** * 切换卡片内容-上一个 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 8e704eedf7..316e251e3f 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 @@ -320,7 +320,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, String sn = getCarSnFromEntity( markerOnlineCar ); IMogoMarker mogoMarker = existCarMap.get( sn ); if ( mogoMarker == null ) { - mogoMarker = drawMapMarker( markerShowEntity ); + mogoMarker = drawMapMarker( markerShowEntity, ServiceConst.MARKER_Z_INDEX_LOW ); } startSmooth( mogoMarker, markerOnlineCar, markerLocation ); } @@ -360,7 +360,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoMarker mogoMarker = existCarMap.get( sn ); if ( mogoMarker == null ) { Logger.d( TAG, "draw road condition, sn = %s", sn ); - drawMapMarker( markerShowEntity ); + drawMapMarker( markerShowEntity, ServiceConst.MARKER_Z_INDEX_HIGH ); } } } @@ -392,7 +392,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, String sn = getCarSnFromEntity( markerShareMusic ); IMogoMarker mogoMarker = existCarMap.get( sn ); if ( mogoMarker == null ) { - drawMapMarker( markerShowEntity ); + drawMapMarker( markerShowEntity, ServiceConst.MARKER_Z_INDEX_HIGH ); } } } @@ -425,7 +425,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, String sn = getCarSnFromEntity( noveltyInfo ); IMogoMarker mogoMarker = existCarMap.get( sn ); if ( mogoMarker == null ) { - drawMapMarker( markerShowEntity ); + drawMapMarker( markerShowEntity, ServiceConst.MARKER_Z_INDEX_HIGH ); } } } @@ -634,20 +634,20 @@ public class MapMarkerManager implements IMogoMarkerClickListener, * @param markerShowEntity marker 绘制数据实体 * @return 绘制的Marker */ - public synchronized IMogoMarker drawMapMarker( MarkerShowEntity markerShowEntity ) { + public synchronized IMogoMarker drawMapMarker( MarkerShowEntity markerShowEntity, int zIndex ) { try { - return drawMapMarkerImpl( markerShowEntity ); + return drawMapMarkerImpl( markerShowEntity, zIndex ); } catch ( Exception e ) { e.printStackTrace(); return null; } } - private IMogoMarker drawMapMarkerImpl( MarkerShowEntity markerShowEntity ) { + private IMogoMarker drawMapMarkerImpl( MarkerShowEntity markerShowEntity, int zIndex ) { if ( markerShowEntity == null || markerShowEntity.getMarkerLocation() == null ) { return null; } - MogoMarkerOptions options = new MogoMarkerOptions().owner( markerShowEntity.getMarkerType() ).object( markerShowEntity ).latitude( markerShowEntity.getMarkerLocation().getLat() ).longitude( markerShowEntity.getMarkerLocation().getLon() ); + MogoMarkerOptions options = new MogoMarkerOptions().owner( markerShowEntity.getMarkerType() ).zIndex( zIndex ).object( markerShowEntity ).latitude( markerShowEntity.getMarkerLocation().getLat() ).longitude( markerShowEntity.getMarkerLocation().getLon() ); IMarkerView markerView = MapMarkerAdapter.getMarkerView( mContext, markerShowEntity, options ); if ( markerView instanceof OnlineCarMarkerView ) { try { @@ -691,7 +691,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener, public void getOnlineCarDataByAutoRefreshStrategy( MogoLatLng latlng ) { UiThreadHandler.removeCallbacks( runnable ); - UiThreadHandler.postDelayed( runnable, SMOOTH_DURATION * 1000 ); getOnlineCarDataImpl( latlng, false, false, 50, 2_000, false ); } @@ -708,15 +707,14 @@ public class MapMarkerManager implements IMogoMarkerClickListener, int limit, int radius ) { UiThreadHandler.removeCallbacks( runnable ); - UiThreadHandler.postDelayed( runnable, SMOOTH_DURATION * 1000 ); getOnlineCarDataImpl( latLng, onlyFocus, onlySameCity, limit, radius, true ); } private Runnable runnable = new Runnable() { @Override public void run() { + Logger.d( TAG, "内部 - 自动刷新在线车辆" ); getOnlineCarDataImpl( mCarLatLng, false, false, 50, 2_000, false ); - UiThreadHandler.postDelayed( this, SMOOTH_DURATION * 1000 ); } }; @@ -742,15 +740,24 @@ public class MapMarkerManager implements IMogoMarkerClickListener, int radius, boolean fitBounds ) { + if ( mCarLatLng == null ) { + mCarLatLng = latLng; + } + + Logger.d( TAG, "内部 - 请求执行" ); + if ( latLng == null ) { + Logger.d( TAG, "内部 - 定位为空" ); return; } if ( ignoreOnlineCarRequest() ) { + Logger.d( TAG, "内部 - 忽略请求" ); removeCarMarkers(); return; } + Logger.d( TAG, "内部 - 请求开始" ); mRefreshModel.queryOnLineCarWithRoute( latLng, onlyFocus, onlySameCity, radius, limit, new RefreshCallback() { @Override public void onSuccess( Object o ) { @@ -764,8 +771,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, if ( MarkerServiceHandler.getMogoStatusManager().isSearchUIShow() ) { return; } - int size = onlineCarList == null ? 0 : onlineCarList.size(); - trackData( size ); + final int size = onlineCarList == null ? 0 : onlineCarList.size(); if ( mMarkerDisplayBounds == null ) { mMarkerDisplayBounds = new Rect( @@ -776,8 +782,12 @@ public class MapMarkerManager implements IMogoMarkerClickListener, ); } + Logger.d( TAG, "内部 - 请求完毕" ); runOnTargetThread( () -> { + Logger.d( TAG, "内部 - 请求完毕开始处理" ); + trackData( size ); drawOnlineCarMarkers( onlineCarList, Integer.MAX_VALUE, fitBounds, fitBounds, mMarkerDisplayBounds, latLng ); + UiThreadHandler.postDelayed( runnable, SMOOTH_DURATION * 1000 ); } ); } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MogoMarkerServiceImpl.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MogoMarkerServiceImpl.java index 28cddde085..6e820c88a2 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MogoMarkerServiceImpl.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MogoMarkerServiceImpl.java @@ -8,6 +8,7 @@ import com.alibaba.android.arouter.facade.annotation.Route; import com.mogo.map.marker.IMogoMarker; import com.mogo.module.common.entity.MarkerShowEntity; import com.mogo.module.service.MarkerServiceHandler; +import com.mogo.module.service.ServiceConst; import com.mogo.service.MogoServicePaths; import com.mogo.service.module.IMogoMarkerService; import com.mogo.utils.logger.Logger; @@ -27,7 +28,7 @@ public class MogoMarkerServiceImpl implements IMogoMarkerService { @Override public IMogoMarker drawMarker( Object object ) { if ( object instanceof MarkerShowEntity ) { - return MarkerServiceHandler.getMapMarkerManager().drawMapMarker( ( ( MarkerShowEntity ) object ) ); + return MarkerServiceHandler.getMapMarkerManager().drawMapMarker( ( ( MarkerShowEntity ) object ), ServiceConst.MARKER_Z_INDEX_HIGH ); } Logger.w( TAG, "object must instance of [com.mogo.module.common.entity.MarkerShowEntity]" ); return null; diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/StatusDescriptor.java b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/StatusDescriptor.java index 8e10fd796b..16856adb4f 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/StatusDescriptor.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/StatusDescriptor.java @@ -10,7 +10,9 @@ public enum StatusDescriptor { /** * adas UI + * Deprecated, use {@link #V2X_UI} instead. */ + @Deprecated ADAS_UI, /** @@ -20,10 +22,7 @@ public enum StatusDescriptor { /** * v2x UI - *

- * Deprecated, use {@link #ADAS_UI} instead. */ - @Deprecated V2X_UI, /** diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java b/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java index 3d4940d28b..ca20247a71 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java @@ -133,7 +133,7 @@ public class MogoStatusManager implements IMogoStatusManager { @Override public void setV2XUIShow( String tag, boolean show ) { - Logger.e( TAG, "do not implement" ); + doSetStatus( tag, StatusDescriptor.V2X_UI, show ); } @Override @@ -200,10 +200,11 @@ public class MogoStatusManager implements IMogoStatusManager { } private void invokeStatusChangedListener( StatusDescriptor descriptor, boolean status ) { - if ( mListeners.containsKey( descriptor ) ) { - Iterator< IMogoStatusChangedListener > iterator = mListeners.get( descriptor ).iterator(); - while ( iterator.hasNext() ) { - IMogoStatusChangedListener listener = iterator.next(); + List< IMogoStatusChangedListener > listenerList = mListeners.get( descriptor ); + if ( listenerList != null && listenerList.size() > 0 ) { + IMogoStatusChangedListener[] listeners = new IMogoStatusChangedListener[listenerList.size()]; + listenerList.toArray( listeners ); + for ( IMogoStatusChangedListener listener : listeners ) { if ( listener != null ) { listener.onStatusChanged( descriptor, status ); }