diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/AMapNaviListenerAdapter.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/AMapNaviListenerAdapter.java index 03d7ccb4d3..f870148573 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/AMapNaviListenerAdapter.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/AMapNaviListenerAdapter.java @@ -109,20 +109,20 @@ public abstract class AMapNaviListenerAdapter implements AMapNaviListener { @Override public void updateCameraInfo( AMapNaviCameraInfo[] aMapNaviCameraInfos ) { - if ( aMapNaviCameraInfos != null ) { - for ( AMapNaviCameraInfo aMapNaviCameraInfo : aMapNaviCameraInfos ) { - if ( aMapNaviCameraInfo != null ) { - Logger.i( TAG, "current camera speed: %d", aMapNaviCameraInfo.getCameraSpeed() ); - } - } - } + } @Override public void updateIntervalCameraInfo( AMapNaviCameraInfo aMapNaviCameraInfo, AMapNaviCameraInfo aMapNaviCameraInfo1, int i ) { - + if ( aMapNaviCameraInfo != null ) { + Logger.i( TAG, "current camera speed: %d, status = %d", aMapNaviCameraInfo.getCameraSpeed(), i ); + } + if ( aMapNaviCameraInfo1 != null ) { + Logger.i( TAG, "current camera speed: %d, status = %d", aMapNaviCameraInfo1.getCameraSpeed(), i ); + } } + @Override public void onServiceAreaUpdate( AMapServiceAreaInfo[] aMapServiceAreaInfos ) { @@ -188,11 +188,23 @@ public abstract class AMapNaviListenerAdapter implements AMapNaviListener { } + /** + * 巡航回调 + * 连续5个点速度大于15km/h后触发 updateAimlessModeStatistics 回调,通过 AimLessModeStat 对象可获取巡航的连续行驶距离和连续启用时间 + * + * @param aimLessModeStat + */ @Override public void updateAimlessModeStatistics( AimLessModeStat aimLessModeStat ) { } + /** + * 巡航回调 + * 出现拥堵长度大于500米且拥堵时间大于5分钟时,会进到 updateAimlessModeCongestionInfo 回调中,通过 AimLessModeCongestionInfo 对象,可获取到道路拥堵信息(如:导致拥堵的事件类型、拥堵的状态等) + * + * @param aimLessModeCongestionInfo + */ @Override public void updateAimlessModeCongestionInfo( AimLessModeCongestionInfo aimLessModeCongestionInfo ) { diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/AimlessModeListenerAdapter.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/AimlessModeListenerAdapter.java new file mode 100644 index 0000000000..9b9f45e1ef --- /dev/null +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/AimlessModeListenerAdapter.java @@ -0,0 +1,204 @@ +package com.mogo.map.impl.amap.navi; + +import com.amap.api.navi.AimlessModeListener; +import com.amap.api.navi.model.AMapNaviTrafficFacilityInfo; +import com.amap.api.navi.model.AimLessModeCongestionInfo; +import com.amap.api.navi.model.AimLessModeStat; +import com.mogo.map.navi.MogoNaviListenerHandler; +import com.mogo.map.navi.MogoTraffic; + +/** + * @author congtaowang + * @since 2020-01-16 + *
+ * 巡航监听 + */ +public class AimlessModeListenerAdapter implements AimlessModeListener { + + @Override + public void onUpdateTrafficFacility( AMapNaviTrafficFacilityInfo[] aMapNaviTrafficFacilityInfos ) { + if ( aMapNaviTrafficFacilityInfos == null || aMapNaviTrafficFacilityInfos.length == 0 ) { + return; + } + int speedLimit = 0; + for ( AMapNaviTrafficFacilityInfo aMapNaviTrafficFacilityInfo : aMapNaviTrafficFacilityInfos ) { + if ( aMapNaviTrafficFacilityInfo == null ) { + continue; + } + speedLimit = aMapNaviTrafficFacilityInfo.getLimitSpeed(); + if ( aMapNaviTrafficFacilityInfo.getBroadcastType() == 4 && aMapNaviTrafficFacilityInfo.getLimitSpeed() > 0 ) { + MogoTraffic traffic = new MogoTraffic( MogoTraffic.TYPE_AIM ); + traffic.setDistance( aMapNaviTrafficFacilityInfo.getDistance() ); + traffic.setSpeedLimit( aMapNaviTrafficFacilityInfo.getLimitSpeed() ); + traffic.setDesc( "测速摄像头、测速雷达" ); + MogoNaviListenerHandler.getInstance().onUpdateTraffic( traffic ); + } + } + if ( speedLimit <= 0 ) { + MogoTraffic traffic = new MogoTraffic( MogoTraffic.TYPE_AIM ); + traffic.setDistance( 0 ); + traffic.setSpeedLimit( 0 ); + traffic.setDesc( "测速摄像头、测速雷达" ); + MogoNaviListenerHandler.getInstance().onUpdateTraffic( traffic ); + } +// MogoTraffic traffic = new MogoTraffic( MogoTraffic.TYPE_AIM ); +// traffic.setDistance( aMapNaviTrafficFacilityInfos[0].getDistance() ); +// traffic.setSpeedLimit( aMapNaviTrafficFacilityInfos[0].getLimitSpeed() ); +// switch ( aMapNaviTrafficFacilityInfos[0].getBroadcastType() ) { +// case 0: +// traffic.setDesc( "未知道路设施" ); +// break; +// case 4: +// traffic.setDesc( "测速摄像头、测速雷达" ); +// break; +// case 5: +// traffic.setDesc( "违章摄像头" ); +// break; +// case 10: +// traffic.setDesc( "请谨慎驾驶" ); +// break; +// case 11: +// traffic.setDesc( "有连续拍照" ); +// break; +// case 12: +// traffic.setDesc( "铁路道口" ); +// break; +// case 13: +// traffic.setDesc( "注意落石(左侧)" ); +// break; +// case 14: +// traffic.setDesc( "事故易发地段" ); +// break; +// case 15: +// traffic.setDesc( "易滑" ); +// break; +// case 16: +// traffic.setDesc( "村庄" ); +// break; +// case 18: +// traffic.setDesc( "前方学校" ); +// break; +// case 19: +// traffic.setDesc( "有人看管的铁路道口" ); +// break; +// case 20: +// traffic.setDesc( "无人看管的铁路道口" ); +// break; +// case 21: +// traffic.setDesc( "两侧变窄" ); +// break; +// case 22: +// traffic.setDesc( "向左急弯路" ); +// break; +// case 23: +// traffic.setDesc( "向右急弯路" ); +// break; +// case 24: +// traffic.setDesc( "反向弯路" ); +// break; +// case 25: +// traffic.setDesc( "连续弯路" ); +// break; +// case 26: +// traffic.setDesc( "左侧合流标识牌" ); +// break; +// case 27: +// traffic.setDesc( "右侧合流标识牌" ); +// break; +// case 28: +// traffic.setDesc( "监控摄像头" ); +// break; +// case 29: +// traffic.setDesc( "专用道摄像头" ); +// break; +// case 31: +// traffic.setDesc( "禁止超车" ); +// break; +// case 36: +// traffic.setDesc( "右侧变窄" ); +// break; +// case 37: +// traffic.setDesc( "左侧变窄" ); +// break; +// case 38: +// traffic.setDesc( "窄桥" ); +// break; +// case 39: +// traffic.setDesc( "左右绕行" ); +// break; +// case 40: +// traffic.setDesc( "左侧绕行" ); +// break; +// case 41: +// traffic.setDesc( "右侧绕行" ); +// break; +// case 42: +// traffic.setDesc( "注意落石(右侧)" ); +// break; +// case 43: +// traffic.setDesc( "傍山险路(左侧)" ); +// break; +// case 44: +// traffic.setDesc( "傍山险路(右侧)" ); +// break; +// case 47: +// traffic.setDesc( "上陡坡" ); +// break; +// case 48: +// traffic.setDesc( "下陡坡" ); +// break; +// case 49: +// traffic.setDesc( "过水路面" ); +// break; +// case 50: +// traffic.setDesc( "路面不平" ); +// break; +// case 52: +// traffic.setDesc( "慢行" ); +// break; +// case 53: +// traffic.setDesc( "注意危险" ); +// break; +// case 58: +// traffic.setDesc( "隧道" ); +// break; +// case 59: +// traffic.setDesc( "渡口" ); +// break; +// case 92: +// traffic.setDesc( "闯红灯" ); +// break; +// case 93: +// traffic.setDesc( "应急车道" ); +// break; +// case 94: +// traffic.setDesc( "非机动车道" ); +// break; +// case 100: +// traffic.setDesc( "不绑定电子眼高发地" ); +// break; +// case 101: +// traffic.setDesc( "车道违章" ); +// break; +// case 102: +// traffic.setDesc( "超速违章" ); +// break; +// } + + } + + @Override + public void onUpdateAimlessModeElecCameraInfo( AMapNaviTrafficFacilityInfo[] aMapNaviTrafficFacilityInfos ) { + + } + + @Override + public void updateAimlessModeStatistics( AimLessModeStat aimLessModeStat ) { + + } + + @Override + public void updateAimlessModeCongestionInfo( AimLessModeCongestionInfo aimLessModeCongestionInfo ) { + + } +} 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 1675ec9d3f..5af6826e99 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 @@ -5,6 +5,7 @@ import android.graphics.Rect; import com.amap.api.maps.model.Polyline; import com.amap.api.navi.AMapNavi; +import com.amap.api.navi.enums.AimLessMode; import com.amap.api.navi.enums.NaviType; import com.amap.api.navi.model.NaviLatLng; import com.mogo.map.MogoLatLng; @@ -32,6 +33,9 @@ public class NaviClient implements IMogoNavi { private AMapNavi mAMapNavi; private final NaviListenerAdapter mAMapNaviListener; + + private final AimlessModeListenerAdapter mAimlessModeListener; + /** * 导航策略配置 */ @@ -45,7 +49,10 @@ public class NaviClient implements IMogoNavi { mAMapNavi.setEmulatorNaviSpeed( 120 ); mAMapNavi.setUseInnerVoice( true ); mAMapNaviListener = new NaviListenerAdapter( context, mAMapNavi, this ); + mAimlessModeListener = new AimlessModeListenerAdapter() { + }; mAMapNavi.addAMapNaviListener( mAMapNaviListener ); + mAMapNavi.addAimlessModeListener( mAimlessModeListener ); } public static NaviClient getInstance( Context context ) { @@ -123,6 +130,8 @@ public class NaviClient implements IMogoNavi { if ( mAMapNaviListener != null ) { mAMapNaviListener.stopNavi(); } + // 开启巡航 巡航时返回电子眼和特殊道路设施信息 + mAMapNavi.startAimlessMode( AimLessMode.CAMERA_AND_SPECIALROAD_DETECTED ); } @@ -131,6 +140,8 @@ public class NaviClient implements IMogoNavi { if ( mAMapNaviListener.isStopped() ) { return; } + // 关闭巡航 + mAMapNavi.stopAimlessMode(); mIsRealNavi = isRealNavi; mAMapNavi.startNavi( isRealNavi ? NaviType.GPS : NaviType.EMULATOR ); } @@ -176,16 +187,18 @@ public class NaviClient implements IMogoNavi { @Override public void setCalculatePathDisplayBounds( Rect bounds ) { if ( mAMapNaviListener != null ) { - mAMapNaviListener.setCalculatePathDisplayBounds(bounds); + mAMapNaviListener.setCalculatePathDisplayBounds( bounds ); } } - @Override public MogoNaviConfig getNaviConfig() { + @Override + public MogoNaviConfig getNaviConfig() { return mMogoNaviConfig; } - @Override public boolean setBroadcastMode(int mode) { - return mAMapNavi.setBroadcastMode(mode); + @Override + public boolean setBroadcastMode( int mode ) { + return mAMapNavi.setBroadcastMode( mode ); } // -- end 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 7330664e18..572380b7d1 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 @@ -5,8 +5,13 @@ import android.graphics.Rect; import com.amap.api.maps.model.Polyline; import com.amap.api.navi.AMapNavi; +import com.amap.api.navi.AimlessModeListener; +import com.amap.api.navi.enums.AimLessMode; +import com.amap.api.navi.enums.CameraType; +import com.amap.api.navi.enums.CarEnterCameraStatus; import com.amap.api.navi.enums.NaviType; import com.amap.api.navi.model.AMapCalcRouteResult; +import com.amap.api.navi.model.AMapNaviCameraInfo; import com.amap.api.navi.model.AMapNaviInfo; import com.amap.api.navi.model.AMapNaviLocation; import com.amap.api.navi.model.NaviInfo; @@ -15,6 +20,7 @@ import com.mogo.map.impl.amap.message.AMapMessageManager; import com.mogo.map.impl.amap.utils.ObjectUtils; import com.mogo.map.navi.MogoCalculatePath; import com.mogo.map.navi.MogoNaviListenerHandler; +import com.mogo.map.navi.MogoTraffic; import com.mogo.map.navi.OnCalculatePathItemClickInteraction; import com.mogo.utils.logger.Logger; @@ -86,14 +92,77 @@ public class NaviListenerAdapter extends AMapNaviListenerAdapter { } @Override - public void onStartNavi( int i ) { - setStopped( false ); - setNaviing( true ); - if ( mAMapNavi != null ) { - mAMapNavi.startSpeak(); + public void updateCameraInfo( AMapNaviCameraInfo[] aMapNaviCameraInfos ) { + super.updateCameraInfo( aMapNaviCameraInfos ); + if ( aMapNaviCameraInfos == null || aMapNaviCameraInfos.length == 0 ) { + return; + } + int limitSpeed = 0; + for ( AMapNaviCameraInfo aMapNaviCameraInfo : aMapNaviCameraInfos ) { + if ( aMapNaviCameraInfo == null ) { + continue; + } + limitSpeed = aMapNaviCameraInfo.getCameraSpeed(); + if ( limitSpeed > 0 && aMapNaviCameraInfo.getCameraType() == CameraType.SPEED ) { + MogoTraffic traffic = new MogoTraffic( MogoTraffic.TYPE_NAVI ); + traffic.setDistance( aMapNaviCameraInfo.getCameraDistance() ); + traffic.setSpeedLimit( aMapNaviCameraInfo.getCameraSpeed() ); + traffic.setDesc( "测速摄像" ); + MogoNaviListenerHandler.getInstance().onUpdateTraffic( traffic ); + } + +// switch ( aMapNaviCameraInfo.getCameraType() ) { +// case CameraType.SPEED: +// +// break; +// case CameraType.SURVEILLANCE: +// traffic.setDesc( "监控摄像" ); +// break; +// case CameraType.TRAFFICLIGHT: +// traffic.setDesc( "闯红灯拍照" ); +// break; +// case CameraType.BREAKRULE: +// traffic.setDesc( "违章拍照" ); +// break; +// case CameraType.BUSWAY: +// traffic.setDesc( "公交专用道摄像头" ); +// break; +// case CameraType.EMERGENCY: +// traffic.setDesc( "应急车道拍照" ); +// break; +// case CameraType.BICYCLE: +// traffic.setDesc( "非机动车道" ); +// break; +// case CameraType.INTERVALVELOCITYSTART: +// traffic.setDesc( "区间测速起始" ); +// break; +// case CameraType.INTERVALVELOCITYEND: +// traffic.setDesc( "区间测速解除" ); +// break; +// } + } + if ( limitSpeed <= 0 ) { + MogoTraffic traffic = new MogoTraffic( MogoTraffic.TYPE_NAVI ); + traffic.setDistance( 0 ); + traffic.setSpeedLimit( 0 ); + traffic.setDesc( "测速摄像" ); + MogoNaviListenerHandler.getInstance().onUpdateTraffic( traffic ); + } + } + + @Override + public void onStartNavi( int type ) { + + // 巡航 + if ( type != NaviType.CRUISE ) { + setStopped( false ); + setNaviing( true ); + if ( mAMapNavi != null ) { + mAMapNavi.startSpeak(); + } + MogoNaviListenerHandler.getInstance().onStartNavi(); + AMapMessageManager.getInstance().postNaviStarted(); } - MogoNaviListenerHandler.getInstance().onStartNavi(); - AMapMessageManager.getInstance().postNaviStarted(); } @Override @@ -175,15 +244,15 @@ public class NaviListenerAdapter extends AMapNaviListenerAdapter { } } - public void clearCalculatePaths(){ + public void clearCalculatePaths() { if ( mNaviOverlayHelper != null ) { mNaviOverlayHelper.clearCalculatedOverlay(); } } - public void setCalculatePathDisplayBounds( Rect bounds ){ + public void setCalculatePathDisplayBounds( Rect bounds ) { if ( mNaviOverlayHelper != null ) { - mNaviOverlayHelper.setCalculatePathDisplayBounds(bounds); + mNaviOverlayHelper.setCalculatePathDisplayBounds( bounds ); } } } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java index 73fcb2d307..74f7579b07 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java @@ -63,7 +63,8 @@ public interface IMogoNavi { * * @param isRealNavi true - 实时导航 false - 模拟导航 */ - void startNavi( boolean isRealNavi ); + void + startNavi( boolean isRealNavi ); /** * 是否正在导航 diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener.java index 762e5d4f91..3047900c0e 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener.java @@ -44,4 +44,9 @@ public interface IMogoNaviListener { * 路径规划失败 */ void onoCalculateFailed(); + + /** + * 巡航信息发生改变 + */ + void onUpdateTraffic(MogoTraffic traffic); } 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 f3a29328f9..f627910fe6 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 @@ -91,4 +91,11 @@ public class MogoNaviListenerHandler implements IMogoNaviListener, IMogoNaviList mDelegateListener.onoCalculateFailed(); } } + + @Override + public void onUpdateTraffic( MogoTraffic traffic ) { + if ( mDelegateListener != null ) { + mDelegateListener.onUpdateTraffic( traffic ); + } + } } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoTraffic.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoTraffic.java new file mode 100644 index 0000000000..a331207c91 --- /dev/null +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoTraffic.java @@ -0,0 +1,76 @@ +package com.mogo.map.navi; + +/** + * @author congtaowang + * @since 2020-01-16 + *
+ * 巡航信息、导航信息
+ */
+public class MogoTraffic {
+
+ /**
+ * 导航
+ */
+ public static final int TYPE_NAVI = 1;
+
+ /**
+ * 巡航
+ */
+ public static final int TYPE_AIM = 2;
+
+ /**
+ * 导航 or 巡航
+ */
+ private int mFromType;
+
+ /**
+ * 距离
+ */
+ private int mDistance;
+
+ /**
+ * 限速
+ */
+ private int mSpeedLimit;
+
+ /**
+ * 描述
+ */
+ private String mDesc;
+
+ public MogoTraffic( int fromType ) {
+ mFromType = fromType;
+ }
+
+ public int getFromType() {
+ return mFromType;
+ }
+
+ public void setFromType( int fromType ) {
+ this.mFromType = fromType;
+ }
+
+ public int getDistance() {
+ return mDistance;
+ }
+
+ public void setDistance( int distance ) {
+ this.mDistance = distance;
+ }
+
+ public int getSpeedLimit() {
+ return mSpeedLimit;
+ }
+
+ public void setSpeedLimit( int speedLimit ) {
+ this.mSpeedLimit = speedLimit;
+ }
+
+ public String getDesc() {
+ return mDesc;
+ }
+
+ public void setDesc( String desc ) {
+ this.mDesc = desc;
+ }
+}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
index f02dad8dff..e9bbd2e69f 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
@@ -23,6 +23,7 @@ import com.mogo.map.model.MogoPoi;
import com.mogo.map.navi.IMogoNavi;
import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.map.navi.MogoNaviInfo;
+import com.mogo.map.navi.MogoTraffic;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.module.common.MogoModulePaths;
@@ -41,6 +42,7 @@ import com.mogo.service.module.IMogoModuleProvider;
import com.mogo.service.module.IMogoRegisterCenter;
import com.mogo.service.windowview.IMogoWindowManager;
import com.mogo.utils.TipToast;
+
import java.util.HashMap;
/**
@@ -67,6 +69,10 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
private NaviInfoView mNaviInfo;
private TextView mExitNavi;
+ private View mSpeedLimit;
+ private TextView mSpeedLimitValue;
+ private View mSpeedLimitUnit;
+
private IMogoMapService mService;
private IMogoMapUIController mMApUIController;
private IMogoLocationClient mMogoLocationClient;
@@ -91,7 +97,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
@Override
protected void initViews() {
mMogoFragmentManager = ( IMogoFragmentManager ) ARouter.getInstance().build( MogoServicePaths.PATH_FRAGMENT_MANAGER ).navigation();
- mMogoAddressManager = (IMogoAddressManager) ARouter.getInstance().build( MogoServicePaths.PATH_ADDRESS_MANAGER ).navigation();
+ mMogoAddressManager = ( IMogoAddressManager ) ARouter.getInstance().build( MogoServicePaths.PATH_ADDRESS_MANAGER ).navigation();
mCommonAddress = findViewById( R.id.module_entrance_id_common_address );
mSearch = findViewById( R.id.module_entrance_id_search );
@@ -135,7 +141,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mExitNavi.setOnClickListener( view -> {
if ( mMogoNavi != null ) {
if ( mIsLock ) {
- NaviNoticeDialog naviNoticeDialog = new NaviNoticeDialog(getContext());
+ NaviNoticeDialog naviNoticeDialog = new NaviNoticeDialog( getContext() );
naviNoticeDialog.show();
} else {
mMApUIController.recoverLockMode();
@@ -143,6 +149,10 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
}
} );
+ mSpeedLimit = findViewById( R.id.module_entrance_id_speed_limit_container );
+ mSpeedLimitValue = findViewById( R.id.module_entrance_id_speed_limit_value );
+ mSpeedLimitUnit = findViewById( R.id.module_entrance_id_speed_limit_unit );
+
}
@NonNull
@@ -188,9 +198,9 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mCommonAddress.setVisibility( View.GONE );
mNaviInfo.setVisibility( View.VISIBLE );
mExitNavi.setVisibility( View.VISIBLE );
- AnalyticsUtils.track("Navigation_guide_type", new HashMap<>());
+ AnalyticsUtils.track( "Navigation_guide_type", new HashMap<>() );
- mMApUIController.setPointToCenter(0.675926, 0.77552);
+ mMApUIController.setPointToCenter( 0.675926, 0.77552 );
}
@Override
@@ -198,9 +208,10 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mCommonAddress.setVisibility( View.VISIBLE );
mNaviInfo.setVisibility( View.GONE );
mExitNavi.setVisibility( View.GONE );
- AnalyticsUtils.track("Navigation_guide_type", new HashMap<>());
+ mSpeedLimit.setVisibility( View.GONE );
+ AnalyticsUtils.track( "Navigation_guide_type", new HashMap<>() );
- mMApUIController.setPointToCenter(0.66145, 0.590688);
+ mMApUIController.setPointToCenter( 0.66145, 0.590688 );
}
@@ -212,6 +223,20 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
public void onoCalculateFailed() {
}
+ @Override
+ public void onUpdateTraffic( MogoTraffic traffic ) {
+ if ( traffic == null ) {
+ return;
+ }
+ if ( traffic.getSpeedLimit() <= 0 ) {
+ mSpeedLimit.setVisibility( View.INVISIBLE );
+ mSpeedLimitValue.setText( "--" );
+ } else {
+ mSpeedLimit.setVisibility( View.VISIBLE );
+ mSpeedLimitValue.setText( String.valueOf( traffic.getSpeedLimit() ) );
+ }
+ }
+
@Override
public void onMapLoaded() {
diff --git a/modules/mogo-module-extensions/src/main/res/drawable/module_ext_dw_speed_limit_bkg.xml b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_dw_speed_limit_bkg.xml
new file mode 100644
index 0000000000..290a36041c
--- /dev/null
+++ b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_dw_speed_limit_bkg.xml
@@ -0,0 +1,9 @@
+
+
- * 广播接收者
- *
- * {@link Intent#ACTION_POWER_CONNECTED}
- * {@link Intent#ACTION_POWER_DISCONNECTED}
- */
-public class MogoReceiver extends BroadcastReceiver {
-
- public static void register( Context context ) {
- if ( context == null ) {
- return;
- }
- IntentFilter inputFilter = new IntentFilter();
- inputFilter.addAction( Intent.ACTION_POWER_CONNECTED );
- inputFilter.addAction( Intent.ACTION_POWER_DISCONNECTED );
- context.getApplicationContext().registerReceiver( new MogoReceiver(), inputFilter );
- }
-
- @Override
- public void onReceive( Context context, Intent intent ) {
- final String action = intent.getAction();
- if ( TextUtils.equals( action, Intent.ACTION_POWER_CONNECTED ) ) {
-
- }
- if ( TextUtils.equals( action, Intent.ACTION_POWER_DISCONNECTED ) ) {
-
- }
- }
-}
diff --git a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml
index 299315a101..f9e8a40907 100644
--- a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml
+++ b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml
@@ -41,7 +41,7 @@
- * 免唤醒语音控制
+ * 唤醒语音控制
*/
public interface IMogoIntentManager extends IProvider {