语音搜索没有关闭上次选中的气泡
This commit is contained in:
董宏宇
2020-02-28 17:42:46 +08:00
parent 5415077e20
commit 9c8f0ea409

View File

@@ -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 {