diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java index 0d04aa102c..555be3ac0f 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java @@ -467,7 +467,6 @@ public class AMapNaviViewWrapper implements IMogoMapView, if (checkAMapView()) { mMapView.setCarOverlayVisible(true); showMyLocation( false ); - NaviClient.getInstance(getContext()).stopAimlessMode(); } } diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java index c752f47731..75975a1be4 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java @@ -142,7 +142,9 @@ public class NaviClient implements IMogoNavi { } // 关闭巡航 //mAMapNavi.stopAimlessMode(); + stopAimlessMode(); mIsRealNavi = isRealNavi; + boolean result = mAMapNavi.startNavi( isRealNavi ? NaviType.GPS : NaviType.EMULATOR ); Logger.d( TAG, "start navi status: %s", result ); } diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt index f40e2ce255..35b09c455d 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt @@ -1,5 +1,6 @@ package com.mogo.module.navi.ui.search +import android.app.SearchManager import android.app.Service import android.os.Bundle import android.text.TextUtils @@ -54,6 +55,11 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB startNavi() } + "cancel"->{ + SearchServiceHolder.fragmentManager + .clearAll() + } + } } @@ -188,6 +194,8 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB .registerUnWakeupCommand("thirdPath", arrayOf(thirdPath), this) AIAssist.getInstance(context) .registerUnWakeupCommand("startNavi", arrayOf(startNavi), this) + AIAssist.getInstance(context) + .registerUnWakeupCommand("cancel", arrayOf("取消","退出","返回","退出导航","取消导航"), this) } @@ -231,6 +239,8 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB .unregisterUnWakeupCommand("thirdPath") AIAssist.getInstance(context) .unregisterUnWakeupCommand("startNavi") + AIAssist.getInstance(context) + .unregisterUnWakeupCommand("cancel") } diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt index 86cc2cacee..2149aa2620 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt @@ -199,7 +199,6 @@ class NaviSettingFragment : BaseFragment(), OnCheckedChangeListener { if (checkedId == R.id.rb_navi_detail) BroadcastMode.DETAIL else BroadcastMode.CONCISE ) - if (checkedId == R.id.rb_navi_detail) { SearchServiceHolder.analyticsManager.track("Navigation_guide_type", mapOf("type" to 1)) } else { diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java index 7cf2ea5d32..8b02b328c2 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java @@ -578,7 +578,7 @@ public class MogoServiceProvider implements IMogoModuleProvider, try { if ( isTrue ) { // V2X_UI时,不在自动刷新打点策略 - stopAutoRefreshStrategy(); +// stopAutoRefreshStrategy(); // 清除所有的打点信息记录 MarkerServiceHandler.getMapMarkerManager().alreadySmallMarker.clear(); } else { 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 1398d59ee3..5475f7e638 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 @@ -54,7 +54,7 @@ import java.util.Map; * version: 1.0 */ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessageListener { - private static final String TAG = "MarkerManager"; + private static final String TAG = "MapMarkerManager"; // 第一次请求到地图的Marker数据 private boolean isFirstMarker = true; private boolean isOnLineCard = false; @@ -66,6 +66,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag // 记录其它已经缩小的Marker public static ArrayList alreadySmallMarker = new ArrayList<>(); + IMogoMarker nearlyMogoMarker = null; private MapMarkerManager() { } @@ -141,6 +142,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag marker.setIcon(fromView(markerView.getView())); lastMarker = marker; + MarkerServiceHandler.getMapUIController().moveToCenter(lastMarker.getPosition()); // 数据统计代码 final Map properties = new HashMap<>(); @@ -360,17 +362,24 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag isFirstMarker = true; } else { // 清空所有地图上绘制的Marker - MarkerServiceHandler.getMarkerManager().removeMarkers(); + if (!MarkerServiceHandler.getMogoStatusManager().isV2XShow()) { + MarkerServiceHandler.getMarkerManager().removeMarkers(); + } } List carChatList = markerCardResult.getCarChat(); List onlineCarList = markerCardResult.getOnlineCar(); - List exploreWayList = markerCardResult.getExploreWay(); - List shareMusicList = markerCardResult.getShareMusic(); - List noveltyInfoList = markerCardResult.getNoveltyInfo(); + List exploreWayList = null; + List shareMusicList = null; + List noveltyInfoList = null; + // V2X 场景下只保留在线车辆数据 + if (!MarkerServiceHandler.getMogoStatusManager().isV2XShow()) { + exploreWayList = markerCardResult.getExploreWay(); + shareMusicList = markerCardResult.getShareMusic(); + noveltyInfoList = markerCardResult.getNoveltyInfo(); + } if (onlineCarList != null) { - IMogoMarker nearlyMogoMarker = null; double nearlyDistance = Double.MAX_VALUE; for (MarkerOnlineCar markerOnlineCar : onlineCarList) { MarkerLocation markerLocation = markerOnlineCar.getLocation(); @@ -403,18 +412,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag } } fillNumberTrackEventBody(array, 3, onlineCarList.size()); - - try { - // 在ACC on 之后第一次获取到了在线车辆数据,选中最近的一个Marker - if (isFirstMarker && isOnLineCard) { - if (nearlyMogoMarker != null) { - MogoMarkersHandler.getInstance().onMarkerClicked(nearlyMogoMarker); - isFirstMarker = false; - } - } - } catch (Exception e) { - e.printStackTrace(); - } } // 将数据同步给探路,避免探路每次 perform 的时候去拉取,造成消耗 @@ -499,6 +496,21 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag // 同步新绘制的气泡状态 alreadySmallMarker.clear(); highlightedMarker(mLastHighLightModule, true); + + try { + Thread.sleep(500); + // 在ACC on 之后第一次获取到了在线车辆数据,选中最近的一个Marker + if (isFirstMarker && isOnLineCard) { + if (nearlyMogoMarker != null) { + Logger.w(TAG, "ACC ON,或者语音搜索触发,默认选中最近的在线车辆nearlyMogoMarker:" + nearlyMogoMarker); + onMarkerClicked(nearlyMogoMarker); + MogoMarkersHandler.getInstance().onMarkerClicked(nearlyMogoMarker); + isFirstMarker = false; + } + } + } catch (Exception e) { + e.printStackTrace(); + } } } @@ -595,8 +607,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag @Override public void onMsgReceived(final MarkerResponse response) { Logger.e(TAG, "MarkerResponse======" + response); - if (!MarkerServiceHandler.getMogoStatusManager().isSearchUIShow() && - !MarkerServiceHandler.getMogoStatusManager().isV2XShow()) { + if (!MarkerServiceHandler.getMogoStatusManager().isSearchUIShow()) { Handler handler = new Handler(Looper.getMainLooper()); handler.post(new Runnable() { @Override