add navilisten api
This commit is contained in:
@@ -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 );
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.mogo.map.navi;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2019-12-25
|
||||
* <p>
|
||||
* 导航监听:区分导航结束
|
||||
*/
|
||||
public interface IMogoNaviListener2 extends IMogoNaviListener {
|
||||
|
||||
/**
|
||||
* 实际导航结束
|
||||
*/
|
||||
void onArriveDestination();
|
||||
|
||||
/**
|
||||
* 模拟导航结束
|
||||
*/
|
||||
void onEndEmulatorNavi();
|
||||
}
|
||||
@@ -6,7 +6,7 @@ package com.mogo.map.navi;
|
||||
* <p>
|
||||
* 地图监听注册管理
|
||||
*/
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user