This commit is contained in:
wangcongtao
2020-05-18 17:05:58 +08:00
parent 8d7e09f81d
commit f5a1925532
34 changed files with 725 additions and 978 deletions

View File

@@ -26,6 +26,7 @@ import com.mogo.service.map.IMogoMapService;
import com.mogo.service.module.IMogoActionManager;
import com.mogo.service.module.IMogoRegisterCenter;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.utils.logger.Logger;
import com.zhidao.carchattingprovider.CallChattingProviderConstant;
/**
@@ -195,11 +196,9 @@ public class MarkerServiceHandler {
/**
* 对指定类型高亮处理
* 建议使用
*
* @see MapMarkerManager#highlightedMarker(String, boolean)
*/
@Deprecated
public static void highlightedMarker( String typeTag ) {
getMapMarkerManager().highlightedMarker( typeTag, false );
Logger.w( TAG, "do not invoke this method any more." );
}
}

View File

@@ -493,6 +493,7 @@ public class MogoServices implements IMogoMapListener,
if ( mStatusManager.isUserInteracted() ) {
mLastCustomRefreshCenterLocation = latLng;
mLastZoomLevel = zoom;
Logger.d( TAG, "user interacted" );
return;
}
@@ -500,6 +501,7 @@ public class MogoServices implements IMogoMapListener,
if ( mStatusManager.isV2XShow() ) {
mLastCustomRefreshCenterLocation = latLng;
mLastZoomLevel = zoom;
Logger.d( TAG, "user v2x show" );
return;
}
@@ -507,6 +509,7 @@ public class MogoServices implements IMogoMapListener,
if ( mStatusManager.isSearchUIShow() ) {
mLastCustomRefreshCenterLocation = latLng;
mLastZoomLevel = zoom;
Logger.d( TAG, "user search Ui show" );
return;
}
@@ -555,7 +558,7 @@ public class MogoServices implements IMogoMapListener,
}
float distance = Utils.calculateLineDistance( latLng, mLastCustomRefreshCenterLocation );
Logger.d( TAG, "move distance = %s, factor = %s", distance, factor );
return distance > factor;
return distance > factor / 2;
} catch ( Exception e ) {
Logger.e( TAG, e, "warming. " );
return false;
@@ -684,8 +687,6 @@ public class MogoServices implements IMogoMapListener,
private void onAdasOn() {
// ADAS 时,不在自动刷新打点策略
stopAutoRefreshStrategy();
// 清除所有的打点信息记录
MarkerServiceHandler.getMapMarkerManager().alreadySmallMarker.clear();
}
private void onAdasClosed() {

View File

@@ -1,19 +1,13 @@
package com.mogo.module.service.marker;
import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;
import android.util.Log;
import android.view.animation.BounceInterpolator;
import android.view.animation.OvershootInterpolator;
import com.mogo.map.MogoLatLng;
import com.mogo.map.location.MogoLocation;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.IMogoMarkerClickListener;
import com.mogo.map.marker.IMogoMarkerManager;
import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.map.marker.MogoMarkersHandler;
import com.mogo.module.common.ModuleNames;
import com.mogo.module.common.entity.MarkerCarPois;
import com.mogo.module.common.entity.MarkerCardResult;
@@ -30,7 +24,6 @@ import com.mogo.module.service.Utils;
import com.mogo.module.service.network.RefreshCallback;
import com.mogo.module.service.network.RefreshModel;
import com.mogo.module.service.utils.ViewUtils;
import com.mogo.service.cardmanager.IMogoCardChangedListener;
import com.mogo.service.connection.IMogoOnMessageListener;
import com.mogo.service.module.IMogoBizActionDoneListener;
import com.mogo.utils.ThreadPoolService;
@@ -54,28 +47,18 @@ import java.util.Map;
* version: 1.0
*/
public class MapMarkerManager implements IMogoMarkerClickListener,
IMogoOnMessageListener< MarkerResponse >, IMogoCardChangedListener,
IMogoOnMessageListener< MarkerResponse >,
IMogoBizActionDoneListener {
private static final String TAG = "MapMarkerManager";
// 是否选中在线卡片及气泡,语音搜索触发
private boolean mIsAISearchOnlineData = false;
private Context mContext;
// 最后一次选中的气泡
private IMogoMarker mLastCheckMarker;
private static MapMarkerManager mMarkerManager;
private String mCurrentModuleName = ServiceConst.CARD_TYPE_BUSINESS_OPERATION;
// 记录其它已经缩小的Marker
public ArrayList< String > alreadySmallMarker = new ArrayList<>();
// 存储所有汽车marker
// public ArrayList<IMogoMarker> carMarkers = new ArrayList<>();
// 距离用户最近的Marker
private IMogoMarker mNearlyMarker = null;
// 记录上次请求数据,切换卡片时做数据处理
private MarkerCardResult mLastDataResult;
private boolean mIsMarkerClicked = false;
private RefreshModel mRefreshModel;
private MogoLatLng mCarLatLng;
// 平滑移动事件间隔(单位:秒)
@@ -105,7 +88,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
// 长连接
MarkerServiceHandler.getMogoSocketManager().registerOnMessageListener( 401001, this );
MarkerServiceHandler.getMogoCardManager().registerCardChangedListener( TAG, this );
MarkerServiceHandler.getActionManager().registerBizActionDoneListener( this );
}
@@ -115,30 +97,11 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
Logger.e( TAG, "do not invoke anymore." );
}
@Override
public void onSwitched( int position, String moduleName ) {
Logger.d( TAG, "当前C位卡片" + moduleName );
if ( ( TextUtils.isEmpty( mCurrentModuleName ) || TextUtils.equals( mCurrentModuleName,
ServiceConst.CARD_TYPE_BUSINESS_OPERATION ) ) && mIsMarkerClicked ) {
mIsMarkerClicked = false;
// 在广告位默认位置点击marker造成卡片切换的还是现实全部marker 【需求os2.0.2-2.5-4】
highlightedMarker( moduleName, false );
mCurrentModuleName = moduleName;
} else {
mCurrentModuleName = moduleName;
runOnTargetThread( () -> {
MarkerServiceHandler.getMarkerManager().removeMarkersExcept( ModuleNames.CARD_TYPE_USER_DATA );
drawMarkerByCurrentType( mLastDataResult );
} );
}
}
/**
* 地图上的Marker点击回调
*/
@Override
public boolean onMarkerClicked( IMogoMarker marker ) {
mIsMarkerClicked = true;
Logger.d( TAG, "onMarkerClicked 点击了大而全中的Marker" + marker );
try {
boolean result = switchMarkerOpenStatus( marker );
@@ -173,90 +136,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
return true;
}
// 对指定类型高亮处理
public synchronized void highlightedMarker( final String typeTag ) {
highlightedMarker( typeTag, false );
}
public synchronized void highlightedMarker( final String typeTag, final boolean netDataRefresh ) {
try {
Logger.e( TAG, "上一次选中的卡片类型mCurrentModuleName==" + mCurrentModuleName );
if ( !TextUtils.isEmpty( mCurrentModuleName ) && TextUtils.equals( mCurrentModuleName,
typeTag ) && !netDataRefresh ) {
return;
}
// 从已经缩小的记录删除
alreadySmallMarker.remove( typeTag );
List< IMogoMarker > currentHighLightList =
MarkerServiceHandler.getMarkerManager().getMarkers( typeTag );
if ( currentHighLightList == null || currentHighLightList.size() == 0 ) {
alreadySmallMarker.clear();
// 放大所有的气泡
Map< String, List< IMogoMarker > > lastHighLightList =
MarkerServiceHandler.getMarkerManager().getAllMarkers();
for ( String markerName : lastHighLightList.keySet() ) {
setMarkersBig( lastHighLightList.get( markerName ) );
}
} else {
// 缩小其他的气泡
Map< String, List< IMogoMarker > > lastHighLightList =
MarkerServiceHandler.getMarkerManager().getAllMarkers();
for ( String markerName : lastHighLightList.keySet() ) {
if ( !markerName.equals( typeTag ) ) {
if ( !alreadySmallMarker.contains( markerName ) ) {
alreadySmallMarker.add( markerName );
setMarkersSmall( lastHighLightList.get( markerName ) );
}
}
}
// 将当前卡片选中的气泡放大
setMarkersBig( currentHighLightList );
}
} catch ( Exception e ) {
e.printStackTrace();
}
}
private static void setMarkersBig( List< IMogoMarker > markers ) {
if ( markers == null || markers.isEmpty() ) {
return;
}
for ( IMogoMarker mogoMarker : markers ) {
if ( mogoMarker == null || mogoMarker.isDestroyed() ) {
continue;
}
try {
mogoMarker.startScaleAnimation( 0.6f, 1f, 0.6f, 1f, 1000, new BounceInterpolator() );
} catch ( Exception e ) {
Logger.e( TAG, e, "error." );
}
}
}
private static void setMarkersSmall( List< IMogoMarker > markers ) {
if ( markers == null || markers.isEmpty() ) {
return;
}
for ( IMogoMarker mogoMarker : markers ) {
smallMarker( mogoMarker );
}
}
private static void smallMarker( IMogoMarker mogoMarker ) {
if ( mogoMarker == null || mogoMarker.isDestroyed() ) {
return;
}
try {
mogoMarker.startScaleAnimation( 1f, 0.6f, 1f, 0.6f, 300, new OvershootInterpolator() );
} catch ( Exception e ) {
Logger.e( TAG, e, "error." );
}
}
// 展开气泡
private void openMarker( IMogoMarker mogoMarker ) {
if ( mogoMarker == null ) {
@@ -339,21 +218,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
dispatchDataToBiz();
} );
// 语音触发的在线车辆搜索,采用增量的形式绘制
if ( mIsAISearchOnlineData = isOnlineCarDataOnly( mLastDataResult ) ) {
MarkerServiceHandler.getMarkerManager().removeMarkers( ServiceConst.CARD_TYPE_USER_DATA );
MarkerServiceHandler.getMogoCardManager().switch2( ServiceConst.CARD_TYPE_USER_DATA );
} else {
mLastCheckMarker = null;
// 清空所有地图上绘制的Marker
MarkerServiceHandler.getMarkerManager().removeMarkersExcept( ModuleNames.CARD_TYPE_USER_DATA );
}
drawMarkerByCurrentType( mLastDataResult );
// 同步新绘制的气泡状态
alreadySmallMarker.clear();
// highlightedMarker( mCurrentModuleName, true );
trackData( mLastDataResult );
}
@@ -385,11 +250,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
return;
}
if ( TextUtils.isEmpty( mCurrentModuleName ) ) {
// 默认大而全
mCurrentModuleName = ServiceConst.CARD_TYPE_BUSINESS_OPERATION;
}
drawAllMarker( markerCardResult );
}
@@ -399,14 +259,12 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
* @param markerCardResult
*/
private void drawAllMarker( MarkerCardResult markerCardResult ) {
// List<MarkerOnlineCar> onlineCarList = markerCardResult.getOnlineCar();
List< MarkerExploreWay > exploreWayList = markerCardResult.getExploreWay();
List< MarkerShareMusic > shareMusicList = markerCardResult.getShareMusic();
// List< MarkerShareMusic > shareMusicList = markerCardResult.getShareMusic();
List< MarkerNoveltyInfo > noveltyInfoList = markerCardResult.getNoveltyInfo();
// drawOnlineCarMarkers(onlineCarList, ServiceConst.MAX_AMOUNT_ALL);
drawRoadConditionMarker( exploreWayList, ServiceConst.MAX_AMOUNT_ALL );
drawShareMusicMarker( shareMusicList, ServiceConst.MAX_AMOUNT_ALL );
// drawShareMusicMarker( shareMusicList, ServiceConst.MAX_AMOUNT_ALL );
drawNoveltyMarker( noveltyInfoList, ServiceConst.MAX_AMOUNT_ALL );
}
@@ -421,10 +279,9 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
return;
}
double nearlyDistance = Float.MAX_VALUE;
int size = getAppropriateSize( maxAmount, onlineCarList );
Map< String, IMogoMarker > existCarMap = purgeCarsData( onlineCarList );
Map< String, IMogoMarker > existCarMap = purgeMarkerData( onlineCarList, ModuleNames.CARD_TYPE_USER_DATA );
for ( int i = 0; i < size; i++ ) {
MarkerOnlineCar markerOnlineCar = onlineCarList.get( i );
@@ -439,119 +296,13 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
markerShowEntity.setIconUrl( markerOnlineCar.getUserInfo().getUserHead() );
}
if ( markerOnlineCar.getUserInfo() == null || TextUtils.isEmpty( markerOnlineCar.getUserInfo().getSn() ) ) {
continue;
}
IMogoMarker mogoMarker = existCarMap.get( markerOnlineCar.getUserInfo().getSn() );
String sn = getCarSnFromEntity( markerOnlineCar );
IMogoMarker mogoMarker = existCarMap.get( sn );
if ( mogoMarker == null ) {
Logger.d( TAG, "car [%s] need be create.", markerOnlineCar.getUserInfo().getSn() );
mogoMarker = drawMapMarker( markerShowEntity );
}
startSmooth( mogoMarker, markerOnlineCar, markerLocation );
// 计算在线车辆距离当前车辆的距离,每次都与最后一次距离最近的进行比较,保留距离最近的车辆,进行卡片展示
try {
// 当前车辆的位置
MogoLocation currentLocation = MarkerServiceHandler.getMogoLocationClient().getLastKnowLocation();
// 计算车辆距离指定气泡的距离
float calculateDistance =
Utils.calculateLineDistance( new MogoLatLng( markerLocation.getLat(),
markerLocation.getLon() ),
new MogoLatLng( currentLocation.getLatitude(),
currentLocation.getLongitude() ) );
// 进行比较,保留最近的一个数据
if ( calculateDistance < nearlyDistance ) {
nearlyDistance = calculateDistance;
mNearlyMarker = mogoMarker;
}
} catch ( Exception e ) {
e.printStackTrace();
}
}
Logger.d( TAG, "距离当前车辆位置最近的距离为:" + nearlyDistance );
try {
// 在ACC on 之后第一次获取到了在线车辆数据选中最近的一个Marker
if ( !mIsAISearchOnlineData ) {
return;
}
if ( mNearlyMarker == null ) {
return;
}
Logger.d( TAG, "语音搜索触发,默认选中最近的在线车辆:" + mNearlyMarker );
// 移动地图到指定位置
MarkerServiceHandler.getMogoStatusManager().setUserInteractionStatus( ServiceConst.TYPE, true, false );
MarkerServiceHandler.getMapUIController().moveToCenter( mNearlyMarker.getPosition() );
onMarkerClicked( mNearlyMarker );
MogoMarkersHandler.getInstance().onMarkerClicked( mNearlyMarker );
mIsAISearchOnlineData = false;
} catch ( Exception e ) {
e.printStackTrace();
}
}
/**
* 根据新的在线车辆列表,选出已存在的在线车辆,并从视图和内存中移除不存在的在线车辆
*
* @param newCarsList
* @return
*/
private Map< String, IMogoMarker > purgeCarsData( List< MarkerOnlineCar > newCarsList ) {
final long start = System.currentTimeMillis();
Map< String, IMogoMarker > existCarsMap = new HashMap<>();
List< IMogoMarker > allCarsList = MarkerServiceHandler.getMarkerManager().getMarkers( ModuleNames.CARD_TYPE_USER_DATA );
if ( allCarsList == null || allCarsList.isEmpty() ) {
return existCarsMap;
}
if ( newCarsList == null || newCarsList.isEmpty() ) {
return existCarsMap;
}
Map< String, IMogoMarker > allCarsMap = new HashMap<>();
for ( IMogoMarker marker : allCarsList ) {
String sn = getCarSnFromMarker( marker );
Logger.d( TAG, "sn = [%s]", sn );
allCarsMap.put( sn, marker );
}
for ( MarkerOnlineCar markerOnlineCar : newCarsList ) {
String sn = markerOnlineCar.getUserInfo().getSn();
if ( allCarsMap.containsKey( sn ) ) {
Logger.d( TAG, " car [%s] is cached.", sn );
existCarsMap.put( sn, allCarsMap.get( sn ) );
}
}
for ( String sn : allCarsMap.keySet() ) {
if ( !existCarsMap.containsKey( sn ) ) {
IMogoMarker dirtyMarker = allCarsMap.get( sn );
allCarsList.remove( dirtyMarker );
dirtyMarker.destroy();
Logger.d( TAG, " car [%s] is destroy.", sn );
}
}
allCarsMap.clear();
Logger.i( "timer", "purge data cost " + ( System.currentTimeMillis() - start ) + "ms" );
return existCarsMap;
}
private String getCarSnFromMarker( IMogoMarker marker ) {
if ( marker == null || marker.getObject() == null || marker.isDestroyed() ) {
return null;
}
if ( !( marker.getObject() instanceof MarkerShowEntity ) ) {
return null;
}
if ( !( ( ( MarkerShowEntity ) marker.getObject() ).getBindObj() instanceof MarkerOnlineCar ) ) {
return null;
}
if ( ( ( MarkerOnlineCar ) ( ( MarkerShowEntity ) marker.getObject() ).getBindObj() ).getUserInfo() == null ) {
return null;
}
return ( ( MarkerOnlineCar ) ( ( MarkerShowEntity ) marker.getObject() ).getBindObj() ).getUserInfo().getSn();
}
/**
@@ -562,9 +313,11 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
private void drawRoadConditionMarker( List< MarkerExploreWay > exploreWayList, int maxAmount ) {
// 将数据同步给探路,避免探路每次 perform 的时候去拉取,造成消耗
if ( exploreWayList == null || exploreWayList.isEmpty() ) {
MarkerServiceHandler.getMarkerManager().removeMarkers( ModuleNames.CARD_TYPE_ROAD_CONDITION );
return;
}
int size = getAppropriateSize( maxAmount, exploreWayList );
Map< String, IMogoMarker > existCarMap = purgeMarkerData( exploreWayList, ModuleNames.CARD_TYPE_ROAD_CONDITION );
for ( int i = 0; i < size; i++ ) {
MarkerExploreWay markerExploreWay = exploreWayList.get( i );
if ( !markerExploreWay.getCanLive() ) {
@@ -576,21 +329,28 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
markerShowEntity.setMarkerType( markerExploreWay.getType() );
markerShowEntity.setTextContent( markerExploreWay.getAddr() );
drawMapMarker( markerShowEntity );
String sn = getCarSnFromEntity( markerExploreWay );
IMogoMarker mogoMarker = existCarMap.get( sn );
if ( mogoMarker == null ) {
drawMapMarker( markerShowEntity );
}
}
}
}
/**
* 共享音乐
*
* @param shareMusicList
*/
private void drawShareMusicMarker( List< MarkerShareMusic > shareMusicList, int maxAmount ) {
if ( shareMusicList == null ) {
if ( shareMusicList == null || shareMusicList.isEmpty() ) {
MarkerServiceHandler.getMarkerManager().removeMarkers( ModuleNames.CARD_TYPE_SHARE_MUSIC );
return;
}
int size = getAppropriateSize( maxAmount, shareMusicList );
Map< String, IMogoMarker > existCarMap = purgeMarkerData( shareMusicList, ModuleNames.CARD_TYPE_SHARE_MUSIC );
for ( int i = 0; i < size; i++ ) {
MarkerShareMusic markerShareMusic = shareMusicList.get( i );
MarkerLocation markerLocation = markerShareMusic.getLocation();
@@ -601,7 +361,11 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
markerShowEntity.setTextContent( markerShareMusic.getMediaName() );
markerShowEntity.setIconUrl( markerShareMusic.getMediaImg() );
drawMapMarker( markerShowEntity );
String sn = getCarSnFromEntity( markerShareMusic );
IMogoMarker mogoMarker = existCarMap.get( sn );
if ( mogoMarker == null ) {
drawMapMarker( markerShowEntity );
}
}
}
@@ -611,10 +375,12 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
* @param noveltyInfoList
*/
private void drawNoveltyMarker( List< MarkerNoveltyInfo > noveltyInfoList, int maxAmount ) {
if ( noveltyInfoList == null ) {
if ( noveltyInfoList == null || noveltyInfoList.isEmpty() ) {
MarkerServiceHandler.getMarkerManager().removeMarkers( ModuleNames.CARD_TYPE_NOVELTY );
return;
}
int size = getAppropriateSize( maxAmount, noveltyInfoList );
Map< String, IMogoMarker > existCarMap = purgeMarkerData( noveltyInfoList, ModuleNames.CARD_TYPE_NOVELTY );
for ( int i = 0; i < size; i++ ) {
MarkerNoveltyInfo noveltyInfo = noveltyInfoList.get( i );
MarkerLocation markerLocation = noveltyInfo.getLocation();
@@ -628,10 +394,83 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
} else {
markerShowEntity.setTextContent( noveltyInfo.getContentData().getTitle() );
}
drawMapMarker( markerShowEntity );
String sn = getCarSnFromEntity( noveltyInfo );
IMogoMarker mogoMarker = existCarMap.get( sn );
if ( mogoMarker == null ) {
drawMapMarker( markerShowEntity );
}
}
}
/**
* S = (A ∩ B) B
* A ∩ B)作为旧列表需要保留的部分
*
* @param newList
* @return
*/
private Map< String, IMogoMarker > purgeMarkerData( List newList, String markerType ) {
final long start = System.currentTimeMillis();
Map< String, IMogoMarker > existMap = new HashMap<>();
List< IMogoMarker > allCarsList = MarkerServiceHandler.getMarkerManager().getMarkers( markerType );
if ( allCarsList == null || allCarsList.isEmpty() ) {
return existMap;
}
if ( newList == null || newList.isEmpty() ) {
return existMap;
}
Map< String, IMogoMarker > allMap = new HashMap<>();
for ( IMogoMarker marker : allCarsList ) {
String sn = getCarSnFromMarker( marker );
allMap.put( sn, marker );
}
for ( Object entity : newList ) {
String sn = getCarSnFromEntity( entity );
if ( allMap.containsKey( sn ) ) {
existMap.put( sn, allMap.get( sn ) );
}
}
for ( String sn : allMap.keySet() ) {
if ( !existMap.containsKey( sn ) ) {
IMogoMarker dirtyMarker = allMap.get( sn );
allCarsList.remove( dirtyMarker );
dirtyMarker.destroy();
}
}
allMap.clear();
Logger.i( "timer", "purge data cost " + ( System.currentTimeMillis() - start ) + "ms" );
return existMap;
}
private String getCarSnFromEntity( Object entity ) {
try {
if ( entity instanceof MarkerOnlineCar ) {
return ( ( MarkerOnlineCar ) entity ).getUserInfo().getSn();
} else if ( entity instanceof MarkerShareMusic ) {
return ( ( MarkerShareMusic ) entity ).getUserInfo().getSn();
} else if ( entity instanceof MarkerNoveltyInfo ) {
return ( ( MarkerNoveltyInfo ) entity ).getSn();
} else if ( entity instanceof MarkerExploreWay ) {
return ( ( MarkerExploreWay ) entity ).getUserInfo().getSn();
}
} catch ( Exception e ) {
}
return "";
}
private String getCarSnFromMarker( IMogoMarker marker ) {
if ( marker == null || marker.getObject() == null || marker.isDestroyed() ) {
return null;
}
if ( !( marker.getObject() instanceof MarkerShowEntity ) ) {
return null;
}
return getCarSnFromEntity( ( ( MarkerShowEntity ) marker.getObject() ).getBindObj() );
}
/**
* @param maxAmount 展示的最大数量
* @param list
@@ -811,18 +650,14 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
*/
public synchronized IMogoMarker drawMapMarker( MarkerShowEntity markerShowEntity ) {
try {
return drawMapMarker( markerShowEntity, isSmallType() );
return drawMapMarkerImpl( markerShowEntity );
} catch ( Exception e ) {
e.printStackTrace();
return null;
}
}
private boolean isSmallType() {
return !TextUtils.isEmpty( mCurrentModuleName ) && mLastCheckMarker != null && !mLastCheckMarker.isDestroyed() && TextUtils.equals( mCurrentModuleName, mLastCheckMarker.getOwner() );
}
private IMogoMarker drawMapMarker( MarkerShowEntity markerShowEntity, boolean isSmall ) {
private IMogoMarker drawMapMarkerImpl( MarkerShowEntity markerShowEntity ) {
if ( markerShowEntity == null || markerShowEntity.getMarkerLocation() == null ) {
return null;
}
@@ -843,12 +678,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
marker.setOwner( markerShowEntity.getMarkerType() );
markerView.setMarker( marker );
marker.setOnMarkerClickListener( this );
if ( isSmall ) {
List< IMogoMarker > markers = new ArrayList<>();
markers.add( marker );
setMarkersSmall( markers );
}
markerShowEntity.setMarker( marker );
return marker;
}
@@ -906,9 +735,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
}
List< MarkerOnlineCar > onlineCarList = result.getOnlineCar();
if ( !MarkerServiceHandler.getMogoStatusManager().isADASShow() ) {
dispatchDataToBis( ServiceConst.CARD_TYPE_USER_DATA, onlineCarList == null ? new ArrayList<>() : onlineCarList );
}
if ( MarkerServiceHandler.getMogoStatusManager().isSearchUIShow() ) {
return;
}
@@ -933,15 +759,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
if ( MarkerServiceHandler.getMogoStatusManager().isSearchUIShow() ) {
return true;
}
if ( MarkerServiceHandler.getMogoStatusManager().isADASShow() ) {
return false;
}
if ( TextUtils.equals( ServiceConst.CARD_TYPE_USER_DATA, mCurrentModuleName )
|| TextUtils.equals( ServiceConst.CARD_TYPE_BUSINESS_OPERATION, mCurrentModuleName )
|| TextUtils.equals( ServiceConst.CARD_TYPE_CARS_CHATTING, mCurrentModuleName ) ) {
return false;
}
return true;
return false;
}
private void removeCarMarkers() {
@@ -1016,7 +834,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
}
public String getCurrentModuleName() {
return mCurrentModuleName;
return "";
}
@Override