diff --git a/.idea/misc.xml b/.idea/misc.xml
index 707ee6e613..2dc54c489f 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index e0da3af9ed..79610a7704 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -27,24 +27,24 @@ PASSWORD=xintai2018
RELEASE=false
# 模块版本
## 工程内模块
-MOGO_MODULE_SHARE_VERSION=1.0.2-SNAPSHOT
-MOGO_COMMONS_VERSION=1.0.2-SNAPSHOT
-MOGO_UTILS_VERSION=1.0.2-SNAPSHOT
-MAP_AMAP_VERSION=1.0.2-SNAPSHOT
-MOGO_MAP_VERSION=1.0.2-SNAPSHOT
-MOGO_MAP_API_VERSION=1.0.2-SNAPSHOT
-MOGO_MODULE_COMMON_VERSION=1.0.2-SNAPSHOT
-MOGO_MODULE_MAIN_VERSION=1.0.2-SNAPSHOT
-MOGO_MODULE_MAP_VERSION=1.0.2-SNAPSHOT
-MOGO_SERVICE_VERSION=1.0.2-SNAPSHOT
-MOGO_SERVICE_API_VERSION=1.0.2-SNAPSHOT
-MOGO_MODULE_APPS_VERSION=1.0.2-SNAPSHOT
-MOGO_CONNECTION_VERSION=1.0.2-SNAPSHOT
-MOGO_MODULE_NAVI_VERSION=1.0.2-SNAPSHOT
-MOGO_MODULE_SERVICE_VERSION=1.0.2-SNAPSHOT
-MOGO_MODULE_EXTENSIONS_VERSION=1.0.2-SNAPSHOT
-MOGO_MODULE_SEARCH_VERSION=1.0.2-SNAPSHOT
-MOGO_MODULE_BACK_VERSION=1.0.2-SNAPSHOT
+MOGO_MODULE_SHARE_VERSION=1.0.3-SNAPSHOT
+MOGO_COMMONS_VERSION=1.0.3-SNAPSHOT
+MOGO_UTILS_VERSION=1.0.3-SNAPSHOT
+MAP_AMAP_VERSION=1.0.3-SNAPSHOT
+MOGO_MAP_VERSION=1.0.3-SNAPSHOT
+MOGO_MAP_API_VERSION=1.0.3-SNAPSHOT
+MOGO_MODULE_COMMON_VERSION=1.0.3-SNAPSHOT
+MOGO_MODULE_MAIN_VERSION=1.0.3-SNAPSHOT
+MOGO_MODULE_MAP_VERSION=1.0.3-SNAPSHOT
+MOGO_SERVICE_VERSION=1.0.3-SNAPSHOT
+MOGO_SERVICE_API_VERSION=1.0.3-SNAPSHOT
+MOGO_MODULE_APPS_VERSION=1.0.3-SNAPSHOT
+MOGO_CONNECTION_VERSION=1.0.3-SNAPSHOT
+MOGO_MODULE_NAVI_VERSION=1.0.3-SNAPSHOT
+MOGO_MODULE_SERVICE_VERSION=1.0.3-SNAPSHOT
+MOGO_MODULE_EXTENSIONS_VERSION=1.0.3-SNAPSHOT
+MOGO_MODULE_SEARCH_VERSION=1.0.3-SNAPSHOT
+MOGO_MODULE_BACK_VERSION=1.0.3-SNAPSHOT
MOGO_MODULE_AUTHORIZE_VERSION=1.0.0-SNAPSHOT
MOGO_MODULE_GUIDE_VERSION=1.0.0-SNAPSHOT
diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviListenerAdapter.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviListenerAdapter.java
index b89eca72b5..d52c05fb59 100644
--- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviListenerAdapter.java
+++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviListenerAdapter.java
@@ -171,24 +171,33 @@ public class NaviListenerAdapter extends AMapNaviListenerAdapter {
@Override
public void onEndEmulatorNavi() {
- stopNaviDelay();
+ stopNaviDelay( () -> {
+ MogoNaviListenerHandler.getInstance().onEndEmulatorNavi();
+ } );
}
@Override
public void onArriveDestination() {
- stopNaviDelay();
+ stopNaviDelay( () -> {
+ MogoNaviListenerHandler.getInstance().onArriveDestination();
+ } );
}
/**
* 避免导航结束语音播报被立刻打断的情况
+ *
+ * @param after 停止后的行为
*/
- private void stopNaviDelay() {
+ private void stopNaviDelay( Runnable after ) {
UiThreadHandler.postDelayed( () -> {
if ( TextUtils.isEmpty( mLastSpeakWord ) || !mLastSpeakWord.contains( "结束" ) ) {
AIAssist.getInstance( mContext ).speakTTSVoice( "到达目的地附近,本次导航结束" );
}
mLastSpeakWord = "";
stopNavi();
+ if ( after != null ) {
+ after.run();
+ }
}, 5_000L );
}
@@ -238,10 +247,6 @@ public class NaviListenerAdapter extends AMapNaviListenerAdapter {
if ( mNaviOverlayHelper != null ) {
mNaviOverlayHelper.handleClickedPolyline( polyline, isNaviing() );
mAMapNavi.selectRouteId( mNaviOverlayHelper.getSelectedPathId() );
-// if ( isNaviing() ) {
-// mAMapNavi.stopNavi();
-// mAMapNavi.startNavi( mClient.isRealNavi() ? NaviType.GPS : NaviType.EMULATOR );
-// }
}
}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener2.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener2.java
new file mode 100644
index 0000000000..831d5d77a0
--- /dev/null
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener2.java
@@ -0,0 +1,20 @@
+package com.mogo.map.navi;
+
+/**
+ * @author congtaowang
+ * @since 2019-12-25
+ *
+ * 导航监听:区分导航结束
+ */
+public interface IMogoNaviListener2 extends IMogoNaviListener {
+
+ /**
+ * 实际导航结束
+ */
+ void onArriveDestination();
+
+ /**
+ * 模拟导航结束
+ */
+ void onEndEmulatorNavi();
+}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoNaviListenerHandler.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoNaviListenerHandler.java
index 7cc2f00e1a..042db244bc 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoNaviListenerHandler.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoNaviListenerHandler.java
@@ -6,7 +6,7 @@ package com.mogo.map.navi;
*
* 地图监听注册管理
*/
-public class MogoNaviListenerHandler implements IMogoNaviListener, IMogoNaviListenerRegister, IMogoAimlessModeListener {
+public class MogoNaviListenerHandler implements IMogoNaviListener2, IMogoNaviListenerRegister, IMogoAimlessModeListener {
private static volatile MogoNaviListenerHandler sInstance;
@@ -128,4 +128,18 @@ public class MogoNaviListenerHandler implements IMogoNaviListener, IMogoNaviList
mAimlessDelegateListener.onUpdateCongestion( info );
}
}
+
+ @Override
+ public void onArriveDestination() {
+ if ( mDelegateListener instanceof IMogoNaviListener2 ) {
+ ( ( IMogoNaviListener2 ) mDelegateListener ).onArriveDestination();
+ }
+ }
+
+ @Override
+ public void onEndEmulatorNavi() {
+ if ( mDelegateListener instanceof IMogoNaviListener2 ) {
+ ( ( IMogoNaviListener2 ) mDelegateListener ).onEndEmulatorNavi();
+ }
+ }
}
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java
index b932dcf256..961aafd349 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java
@@ -19,6 +19,7 @@ import com.mogo.map.model.MogoPoi;
import com.mogo.map.navi.IMogoAimlessModeListener;
import com.mogo.map.navi.IMogoCarLocationChangedListener;
import com.mogo.map.navi.IMogoNaviListener;
+import com.mogo.map.navi.IMogoNaviListener2;
import com.mogo.map.navi.MogoCongestionInfo;
import com.mogo.map.navi.MogoNaviInfo;
import com.mogo.map.navi.MogoTraffic;
@@ -59,7 +60,7 @@ import java.util.Map;
*/
public class MogoModulesManager implements MogoModulesHandler,
IMogoMapListener,
- IMogoNaviListener,
+ IMogoNaviListener2,
IMogoLocationListener,
IMogoIntentListener {
@@ -671,6 +672,42 @@ public class MogoModulesManager implements MogoModulesHandler,
}
}
+ @Override
+ public void onArriveDestination() {
+ Iterator< IMogoNaviListener > iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners();
+ if ( iterator == null ) {
+ return;
+ }
+ while ( iterator.hasNext() ) {
+ IMogoNaviListener listener = iterator.next();
+ if ( listener instanceof IMogoNaviListener2 ) {
+ try {
+ ( ( IMogoNaviListener2 ) listener ).onArriveDestination();
+ } catch ( Exception e ) {
+ Logger.e( TAG, e, "error." );
+ }
+ }
+ }
+ }
+
+ @Override
+ public void onEndEmulatorNavi() {
+ Iterator< IMogoNaviListener > iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners();
+ if ( iterator == null ) {
+ return;
+ }
+ while ( iterator.hasNext() ) {
+ IMogoNaviListener listener = iterator.next();
+ if ( listener instanceof IMogoNaviListener2 ) {
+ try {
+ ( ( IMogoNaviListener2 ) listener ).onEndEmulatorNavi();
+ } catch ( Exception e ) {
+ Logger.e( TAG, e, "error." );
+ }
+ }
+ }
+ }
+
@Override
public String getCurrentModuleName() {
return mEnableModuleName;