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 7b159a1f4e..e1d7ab2be7 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 @@ -59,7 +59,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag private static Context mContext; // 最后一次选中的气泡 - private static IMogoMarker mLastCHeckMarker; + private static IMogoMarker mLastCheckMarker; private static MapMarkerManager mMarkerManager; private static String mLastHighLightModule = ""; @@ -122,15 +122,14 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag public boolean onMarkerClicked(IMogoMarker marker) { Logger.d(TAG, "onMarkerClicked 点击了大而全中的Marker:" + marker); try { - - if (mLastCHeckMarker != null) { + if (mLastCheckMarker != null) { // 判断点击的是否是同一个 - if (marker.equals(mLastCHeckMarker)) { + if (marker.equals(mLastCheckMarker)) { Logger.d(TAG, "onMarkerClicked 与上一次点击的Marker一样,不做处理:" + marker); return false; } // 将上次选中 Marker 设置为未选中状态 - closeMarker(mLastCHeckMarker); + closeMarker(mLastCheckMarker); } // 将当前的Marker设置为选中 @@ -138,7 +137,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag // 数据统计代码 final Map properties = new HashMap<>(); - switch (mLastCHeckMarker.getOwner()) { + switch (mLastCheckMarker.getOwner()) { case ServiceConst.CARD_TYPE_CARS_CHATTING: properties.put("type", 3); break; @@ -149,7 +148,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag properties.put("type", 2); break; case ServiceConst.CARD_TYPE_NOVELTY: - MarkerShowEntity showEntity = (MarkerShowEntity) mLastCHeckMarker.getObject(); + MarkerShowEntity showEntity = (MarkerShowEntity) mLastCheckMarker.getObject(); Object bindObj = showEntity.getBindObj(); if (bindObj instanceof MarkerNoveltyInfo) { switch (((MarkerNoveltyInfo) bindObj).getPoiType()) { @@ -274,14 +273,17 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag if (marker != null) { Logger.i(TAG, "closeMarkerSelect 将出Marker详情关闭:" + marker); closeMarker(marker); - mLastCHeckMarker = null; + mLastCheckMarker = null; } } // 展开气泡 private void openMarker(IMogoMarker mogoMarker) { if (mogoMarker != null) { - mLastCHeckMarker = mogoMarker; + if (mLastCheckMarker != null) { + closeMarker(mLastCheckMarker); + } + mLastCheckMarker = mogoMarker; Object object = mogoMarker.getObject(); if (object != null) { MarkerShowEntity markerShowEntity = (MarkerShowEntity) object; @@ -308,7 +310,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag // 绘制Marker public synchronized void drawMapMarker(MarkerResponse response) { - mLastCHeckMarker = null; JSONArray array = new JSONArray(); @@ -325,6 +326,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag MarkerServiceHandler.getMogoCardManager().switch2(ServiceConst.CARD_TYPE_USER_DATA); isCheckOnLineData = true; } else { + mLastCheckMarker = null; // 清空所有地图上绘制的Marker MarkerServiceHandler.getMarkerManager().removeMarkers(); } @@ -470,7 +472,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag // 移动地图到指定位置 MarkerServiceHandler.getMogoStatusManager().setUserInteractionStatus(ServiceConst.TYPE, true, false); MarkerServiceHandler.getMapUIController().moveToCenter(mNearlyMogoMarker.getPosition()); - onMarkerClicked(mNearlyMogoMarker); MogoMarkersHandler.getInstance().onMarkerClicked(mNearlyMogoMarker); isCheckOnLineData = false; @@ -535,9 +536,9 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag */ public synchronized IMogoMarker drawMapMarker(MarkerShowEntity markerShowEntity) { if (!TextUtils.isEmpty(mLastHighLightModule) - && mLastCHeckMarker != null - && !TextUtils.isEmpty(mLastCHeckMarker.getOwner()) - && TextUtils.equals(mLastHighLightModule, mLastCHeckMarker.getOwner()) + && mLastCheckMarker != null + && !TextUtils.isEmpty(mLastCheckMarker.getOwner()) + && TextUtils.equals(mLastHighLightModule, mLastCheckMarker.getOwner()) ) { return drawMapMarker(markerShowEntity, true); } else {