修复
语音搜索没有关闭上次选中的气泡
This commit is contained in:
@@ -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<String, Object> 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 {
|
||||
|
||||
Reference in New Issue
Block a user