fix bug of clear marker

This commit is contained in:
zhongchao
2021-04-13 19:59:28 +08:00
parent ccd0c3a9d3
commit 5534d59b32
3 changed files with 16 additions and 5 deletions

View File

@@ -59,7 +59,6 @@ class BaseDrawer {
// 移除过期的 marker
public static final int MSG_REMOVE_DIRTY_MARKERS = 9990;
public static final int MSG_REMOVE_ADAS_MARKERS = 9992;
/**
* 显示速度

View File

@@ -58,6 +58,10 @@ class OnlineCarDrawer {
return sInstance;
}
public void clearMarkers(){
MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager( AbsMogoApplication.getApp() ).removeMarkers( ModuleNames.CARD_TYPE_USER_DATA );
}
/**
* 绘制在线车辆marker
*
@@ -72,12 +76,12 @@ class OnlineCarDrawer {
IMogoMarkerClickListener listener ) {
// 将数据同步给在线车辆,避免每次 perform 的时候去拉取,造成消耗
if ( onlineCarList == null || onlineCarList.isEmpty() ) {
MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager( AbsMogoApplication.getApp() ).removeMarkers( ModuleNames.CARD_TYPE_USER_DATA );
clearMarkers();
return;
}
if ( clearOld ) {
MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager( AbsMogoApplication.getApp() ).removeMarkers( ModuleNames.CARD_TYPE_USER_DATA );
clearMarkers();
}
int size = MarkerDrawer.getInstance().getAppropriateSize( maxAmount, onlineCarList );
@@ -191,4 +195,6 @@ class OnlineCarDrawer {
}
return false;
}
}

View File

@@ -77,16 +77,22 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
private boolean mIsVrMode = false;
/**
* 注册StatusDescriptor.VR_MODE类型VR_MODE状态改变回调
* @param descriptor 状态类型
* @param isTrue true - accOn、adas ui show、voice ui show、push ui show、v2x ui show
*/
@Override
public void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ) {
Logger.d( TAG, "%s - %s", descriptor, isTrue );
mChangeCarModeStatus = true;
sendMessage( MSG_REMOVE_ADAS_MARKERS, mMarkersCaches );
sendMessage( MSG_REMOVE_DIRTY_MARKERS, mMarkersCaches );
mMarkersCaches = new HashMap<>();
if ( mLastPositions != null ) {
mLastPositions.clear();
}
AdasRecognizedResultDrawer.getInstance().notifyVrModeChanged();
AdasRecognizedResultDrawer.getInstance().notifyVrModeChanged(); //清除ADAS old marker data
OnlineCarDrawer.getInstance().clearMarkers(); //清除在线车辆 old marker data
}
public boolean isVrMode() {