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 760ec028b5..7b159a1f4e 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 @@ -58,14 +58,15 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag private boolean isCheckOnLineData = false; private static Context mContext; - private static IMogoMarker lastMarker; + // 最后一次选中的气泡 + private static IMogoMarker mLastCHeckMarker; private static MapMarkerManager mMarkerManager; private static String mLastHighLightModule = ""; // 记录其它已经缩小的Marker public static ArrayList alreadySmallMarker = new ArrayList<>(); // 距离用户最近的Marker - private IMogoMarker nearlyMogoMarker = null; + private IMogoMarker mNearlyMogoMarker = null; private MapMarkerManager() { } @@ -122,14 +123,14 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag Logger.d(TAG, "onMarkerClicked 点击了大而全中的Marker:" + marker); try { - if (lastMarker != null) { + if (mLastCHeckMarker != null) { // 判断点击的是否是同一个 - if (marker.equals(lastMarker)) { + if (marker.equals(mLastCHeckMarker)) { Logger.d(TAG, "onMarkerClicked 与上一次点击的Marker一样,不做处理:" + marker); return false; } // 将上次选中 Marker 设置为未选中状态 - closeMarker(lastMarker); + closeMarker(mLastCHeckMarker); } // 将当前的Marker设置为选中 @@ -137,7 +138,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag // 数据统计代码 final Map properties = new HashMap<>(); - switch (lastMarker.getOwner()) { + switch (mLastCHeckMarker.getOwner()) { case ServiceConst.CARD_TYPE_CARS_CHATTING: properties.put("type", 3); break; @@ -148,7 +149,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag properties.put("type", 2); break; case ServiceConst.CARD_TYPE_NOVELTY: - MarkerShowEntity showEntity = (MarkerShowEntity) lastMarker.getObject(); + MarkerShowEntity showEntity = (MarkerShowEntity) mLastCHeckMarker.getObject(); Object bindObj = showEntity.getBindObj(); if (bindObj instanceof MarkerNoveltyInfo) { switch (((MarkerNoveltyInfo) bindObj).getPoiType()) { @@ -235,7 +236,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag if (mogoMarker == null || mogoMarker.isDestroyed()) { continue; } - mogoMarker.setToTop(); try { mogoMarker.startScaleAnimation(0.6f, 1f, 0.6f, 1f, 1000, new BounceInterpolator()); } catch (Exception e) { @@ -274,14 +274,14 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag if (marker != null) { Logger.i(TAG, "closeMarkerSelect 将出Marker详情关闭:" + marker); closeMarker(marker); - lastMarker = null; + mLastCHeckMarker = null; } } // 展开气泡 private void openMarker(IMogoMarker mogoMarker) { if (mogoMarker != null) { - lastMarker = mogoMarker; + mLastCHeckMarker = mogoMarker; Object object = mogoMarker.getObject(); if (object != null) { MarkerShowEntity markerShowEntity = (MarkerShowEntity) object; @@ -308,7 +308,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag // 绘制Marker public synchronized void drawMapMarker(MarkerResponse response) { - lastMarker = null; + mLastCHeckMarker = null; JSONArray array = new JSONArray(); @@ -368,7 +368,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag // 进行比较,保留最近的一个数据 if (calculateDistance < nearlyDistance) { nearlyDistance = calculateDistance; - nearlyMogoMarker = iMogoMarker; + mNearlyMogoMarker = iMogoMarker; } } catch (Exception e) { @@ -465,25 +465,25 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag try { // 在ACC on 之后第一次获取到了在线车辆数据,选中最近的一个Marker if (isCheckOnLineData) { - if (nearlyMogoMarker != null) { - Logger.d(TAG, "语音搜索触发,默认选中最近的在线车辆:" + nearlyMogoMarker); + if (mNearlyMogoMarker != null) { + Logger.d(TAG, "语音搜索触发,默认选中最近的在线车辆:" + mNearlyMogoMarker); // 移动地图到指定位置 MarkerServiceHandler.getMogoStatusManager().setUserInteractionStatus(ServiceConst.TYPE, true, false); - MarkerServiceHandler.getMapUIController().moveToCenter(nearlyMogoMarker.getPosition()); + MarkerServiceHandler.getMapUIController().moveToCenter(mNearlyMogoMarker.getPosition()); - onMarkerClicked(nearlyMogoMarker); - MogoMarkersHandler.getInstance().onMarkerClicked(nearlyMogoMarker); + onMarkerClicked(mNearlyMogoMarker); + MogoMarkersHandler.getInstance().onMarkerClicked(mNearlyMogoMarker); isCheckOnLineData = false; } } if (isACC_ON && isSynchronousOnLineData) { isSynchronousOnLineData = false; - if (nearlyMogoMarker != null) { - Logger.d(TAG, "ACC ON 触发,将附近的在线车辆数据同步给卡片:" + nearlyMogoMarker); - openMarker(nearlyMogoMarker); + if (mNearlyMogoMarker != null) { + Logger.d(TAG, "ACC ON 触发,将附近的在线车辆数据同步给卡片:" + mNearlyMogoMarker); + openMarker(mNearlyMogoMarker); // 将数据同步给在线用户卡片 - MogoDataHandler.getInstance().invoke(ServiceConst.CARD_TYPE_USER_DATA, nearlyMogoMarker); + MogoDataHandler.getInstance().invoke(ServiceConst.CARD_TYPE_USER_DATA, mNearlyMogoMarker); } } } catch (Exception e) { @@ -535,9 +535,9 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag */ public synchronized IMogoMarker drawMapMarker(MarkerShowEntity markerShowEntity) { if (!TextUtils.isEmpty(mLastHighLightModule) - && lastMarker != null - && !TextUtils.isEmpty(lastMarker.getOwner()) - && TextUtils.equals(mLastHighLightModule, lastMarker.getOwner()) + && mLastCHeckMarker != null + && !TextUtils.isEmpty(mLastCHeckMarker.getOwner()) + && TextUtils.equals(mLastHighLightModule, mLastCHeckMarker.getOwner()) ) { return drawMapMarker(markerShowEntity, true); } else {