This commit is contained in:
wangcongtao
2020-03-10 10:18:30 +08:00
parent 237c351533
commit 53902601da
25 changed files with 823 additions and 466 deletions

View File

@@ -10,6 +10,7 @@ import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.module.common.entity.MarkerResponse;
import com.mogo.module.common.entity.MarkerShowEntity;
import com.mogo.module.service.marker.MapMarkerManager;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.analytics.IMogoAnalytics;
import com.mogo.service.cardmanager.IMogoCardManager;
@@ -28,6 +29,7 @@ import com.mogo.service.statusmanager.IMogoStatusManager;
public class MarkerServiceHandler {
private static final String TAG = "MarkerServiceHandler";
private static IMogoServiceApis mApis;
private static IMogoMapService mMapService;
private static IMogoMarkerManager mMarkerManager;
@@ -44,22 +46,22 @@ public class MarkerServiceHandler {
private static MapMarkerManager mMapMarkerManager;
public static void init( final Context context ) {
mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( context );
mMapService = mApis.getMapServiceApi();
mImageloader = mApis.getImageLoaderApi();
mMogoStatusManager = mApis.getStatusManagerApi();
mMogoSocketManager = mApis.getSocketManagerApi( context );
mMogoCardManager = mApis.getCardManagerApi();
mMogoAnalytics = mApis.getAnalyticsApi();
public static void init(final Context context) {
mMapService = (IMogoMapService) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_MAP).navigation(context);
mImageloader = (IMogoImageloader) ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_IMAGE_LOADER).navigation(context);
mMogoStatusManager = (IMogoStatusManager) ARouter.getInstance().build(MogoServicePaths.PATH_STATUS_MANAGER).navigation(context);
mMogoSocketManager = (IMogoSocketManager) ARouter.getInstance().build(MogoServicePaths.PATH_SOCKET_MANAGER).navigation();
mMogoCardManager = (IMogoCardManager) ARouter.getInstance().build(MogoServicePaths.PATH_CARD_MANAGER).navigation();
mMogoAnalytics = (IMogoAnalytics) ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_ANALYTICS).navigation();
mMarkerManager = mMapService.getMarkerManager(context);
mNavi = mMapService.getNavi(context);
mMarkerManager = mMapService.getMarkerManager( context );
mNavi = mMapService.getNavi( context );
mMapUIController = mMapService.getMapUIController();
mLocationClient = mMapService.getSingletonLocationClient(context);
mLocationClient = mMapService.getSingletonLocationClient( context );
mMapMarkerManager = MapMarkerManager.getInstance(context);
mMapMarkerManager.init(context);
mMapMarkerManager = MapMarkerManager.getInstance();
mMapMarkerManager.init( context );
}
public static IMogoMapService getMapService() {
@@ -112,30 +114,33 @@ public class MarkerServiceHandler {
/**
* 绘制Marker
* 建议使用
*
* @see MapMarkerManager#drawMapMarker(MarkerResponse)
*/
@Deprecated
public static void drawMapMarker(MarkerResponse response) {
getMapMarkerManager().drawMapMarker(response);
public static void drawMapMarker( MarkerResponse response ) {
getMapMarkerManager().drawMapMarker( response );
}
/**
* 绘制Marker
* 建议使用
*
* @see MapMarkerManager#drawMapMarker(MarkerShowEntity)
*/
@Deprecated
public static void drawMapMarker(MarkerShowEntity markerShowEntity) {
getMapMarkerManager().drawMapMarker(markerShowEntity);
public static void drawMapMarker( MarkerShowEntity markerShowEntity ) {
getMapMarkerManager().drawMapMarker( markerShowEntity );
}
/**
* 对指定类型高亮处理
* 建议使用
* @see MapMarkerManager#highlightedMarker(String,boolean)
*
* @see MapMarkerManager#highlightedMarker(String, boolean)
*/
@Deprecated
public static void highlightedMarker(String typeTag) {
getMapMarkerManager().highlightedMarker(typeTag,false);
public static void highlightedMarker( String typeTag ) {
getMapMarkerManager().highlightedMarker( typeTag, false );
}
}

View File

@@ -143,11 +143,7 @@ public class MogoServices implements IMogoMapListener,
mRefreshRemainingTime -= ServiceConst.DECREASE_INTERVAL;
if ( mRefreshRemainingTime == 0 ) {
Logger.d( TAG, "move to center and refresh data." );
mStatusManager.setUserInteractionStatus( ServiceConst.TYPE, true, false );
mUiController.recoverLockMode();
mStatusManager.setUserInteractionStatus( TAG, true, false );
mUiController.changeZoom( 16.0f );
notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback );
invokeAutoRefresh();
} else {
mHandler.sendEmptyMessageDelayed( msg.what, ServiceConst.DECREASE_INTERVAL );
}
@@ -158,11 +154,21 @@ public class MogoServices implements IMogoMapListener,
}
if ( mLoopRequest ) {
Logger.d( TAG, "补偿刷新触发" );
notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback );
invokeAutoRefresh();
}
break;
}
}
/**
* 自动刷新锁车、缩放比例16、半径 2KM
*/
private void invokeAutoRefresh() {
mStatusManager.setUserInteractionStatus( ServiceConst.TYPE, true, false );
mUiController.setLockZoom( ServiceConst.DEFAULT_LOCK_CAR_ZOOM_LEVEL );
mUiController.recoverLockMode();
notifyRefreshData( mLastAutoRefreshLocation, ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS, mAutoRefreshCallback );
}
};
private Context mContext;
@@ -246,6 +252,7 @@ public class MogoServices implements IMogoMapListener,
registerCenter.registerMogoLocationListener( ServiceConst.TYPE, this );
registerCenter.registerMogoNaviListener( ServiceConst.TYPE, this );
registerCenter.registerMogoMapListener( ServiceConst.TYPE, this );
registerCenter.registerMogoAimlessModeListener( ServiceConst.TYPE, this );
mIntentManager = ( IMogoIntentManager ) ARouter.getInstance().build( MogoServicePaths.PATH_INTENT_MANAGER ).navigation( context );
mIntentManager.registerIntentListener( MogoReceiver.ACTIION_ADAS, this );
@@ -500,7 +507,7 @@ public class MogoServices implements IMogoMapListener,
mStatusManager.setUserInteractionStatus( ServiceConst.TYPE, true, false );
mUiController.recoverLockMode();
mStatusManager.setUserInteractionStatus( TAG, true, false );
mUiController.changeZoom( 16.0f );
mUiController.changeZoom( ServiceConst.DEFAULT_ZOOM_LEVEL );
mLastAutoRefreshLocation = point;
notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback );
}
@@ -548,8 +555,8 @@ public class MogoServices implements IMogoMapListener,
case USER_INTERACTED:
if ( isTrue && !mRefreshRemainingTimeStatus ) {
mRefreshRemainingTimeStatus = true;
mRefreshRemainingTime += mAutoRefreshStrategy.getInterruptInterval();
Logger.i( TAG, "用户状态改变,自动刷新时间延时,%s ms后自动刷新", mRefreshRemainingTime );
mRefreshRemainingTime = ServiceConst.DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT;
Logger.i( TAG, "用户状态改变,下次刷新时间%ss后", mRefreshRemainingTime );
}
break;
case SEARCH_UI:
@@ -636,7 +643,7 @@ public class MogoServices implements IMogoMapListener,
return;
}
int status = intent.getIntExtra( MogoReceiver.PARAM_ADAS_STATUS, 0 );
mUiController.setLockZoom( status == 1 ? 15 : 16 );
mUiController.setLockZoom( status == 1 ? 15 : ServiceConst.DEFAULT_LOCK_CAR_ZOOM_LEVEL );
mStatusManager.setADASUIShow( ServiceConst.TYPE, status == 1 );
mUiController.showMyLocation( true );
} else if ( Intent.ACTION_POWER_CONNECTED.equals( command ) ) {

View File

@@ -62,4 +62,30 @@ public class ServiceConst {
*/
public static final String CARD_TYPE_NOVELTY = "CARD_TYPE_NOVELTY";
/**
* 运营位
*/
public static final String CARD_TYPE_BUSINESS_OPERATION = "CARD_TYPE_BUSINESS_OPERATION";
/**
* 默认地图缩放比例
*/
public static final float DEFAULT_ZOOM_LEVEL = 16.0f;
/**
* 默认地图锁车缩放比例
*/
public static final int DEFAULT_LOCK_CAR_ZOOM_LEVEL = 16;
/**
* 自动酸辛默认半径
*/
public static final int DEFAULT_AUTO_REFRESH_DATA_RADIUS = 2_000;
/**
* 30 s
*/
public static final int DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT = 30 * 1_000;
}

View File

@@ -21,9 +21,9 @@ public class AutoRefreshStrategy {
private long interval = 3 * ONE_MINUTE;
/**
* 用户打断后的延时s
* 用户打断后的延时s【2.0.2后不再延时】
*/
private long interruptInterval = 1 * ONE_MINUTE;
private long interruptInterval = 0 * ONE_MINUTE;
/**
* 距离(米)