From fbcd51a38b696f83359d7acd665cc95c2dbcf20a Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Mon, 9 Nov 2020 14:43:33 +0800 Subject: [PATCH] =?UTF-8?q?=E9=BB=91=E5=A4=9C=E7=99=BD=E5=A4=A9=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=EF=BC=9Aadas=E3=80=81=E8=AF=AD=E9=9F=B3=E3=80=81?= =?UTF-8?q?=E6=A1=8C=E9=9D=A2=E3=80=81=E9=AB=98=E5=BE=B7=E5=9C=B0=E5=9B=BE?= =?UTF-8?q?=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../map/AutoNaviBroadcastIntentHandler.java | 20 ++++++++++++++++++- .../module/map/MapControlCommandHandler.java | 11 +++++----- .../com/mogo/module/map/MapPresenter.java | 2 +- .../service/marker/MapMarkerManager.java | 6 +++--- 4 files changed, 29 insertions(+), 10 deletions(-) diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/AutoNaviBroadcastIntentHandler.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/AutoNaviBroadcastIntentHandler.java index b73ec21bc6..bc1fa9ac87 100644 --- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/AutoNaviBroadcastIntentHandler.java +++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/AutoNaviBroadcastIntentHandler.java @@ -5,6 +5,7 @@ import android.text.TextUtils; import com.mogo.map.navi.MogoNaviConfig; import com.mogo.map.uicontroller.EnumMapUI; +import com.mogo.module.common.MogoApisHandler; import com.mogo.service.intent.IMogoIntentListener; import com.mogo.service.intent.IMogoIntentManager; import com.mogo.utils.logger.Logger; @@ -20,15 +21,21 @@ class AutoNaviBroadcastIntentHandler implements IMogoIntentListener { public static final String TAG = "AutoNaviBroadcastReceiver"; + // 发送高德:部分是小智语音发给高德的,这里顺便接收处理,都是历史遗留问题 public static final String AUTONAVI_STANDARD_BROADCAST_RECV = "AUTONAVI_STANDARD_BROADCAST_RECV"; + // 接收高德 + public static final String AUTONAVI_STANDARD_BROADCAST_SEND = "AUTONAVI_STANDARD_BROADCAST_SEND"; + public void register( IMogoIntentManager manager ) { manager.registerIntentListener( AUTONAVI_STANDARD_BROADCAST_RECV, this ); + manager.registerIntentListener( AUTONAVI_STANDARD_BROADCAST_SEND, this ); } public void unregister( IMogoIntentManager manager ) { mCallback = null; manager.unregisterIntentListener( AUTONAVI_STANDARD_BROADCAST_RECV, this ); + manager.unregisterIntentListener( AUTONAVI_STANDARD_BROADCAST_SEND, this ); } private OnMapControlCallback mCallback; @@ -47,7 +54,8 @@ class AutoNaviBroadcastIntentHandler implements IMogoIntentListener { Logger.d( TAG, "action = %s, keyType=%s, type=%s, operType=%s", action, keyType, type, operaType ); - if ( !TextUtils.equals( action, AUTONAVI_STANDARD_BROADCAST_RECV ) ) { + if ( !TextUtils.equals( action, AUTONAVI_STANDARD_BROADCAST_RECV ) + && !TextUtils.equals( action, AUTONAVI_STANDARD_BROADCAST_SEND ) ) { return; } @@ -120,6 +128,16 @@ class AutoNaviBroadcastIntentHandler implements IMogoIntentListener { .highSpeed( prefer == 20 ) .avoidSpeed( prefer == 3 ); mCallback.onReCalculatePath( config ); + } else if ( keyType == 10019 ) { + int extraState = intent.getIntExtra( "EXTRA_STATE", -1 ); + // 高德改变黑夜白天模式后,传递给launcher,顺便改变其他 + if ( extraState == 37 ) { + // 白天模式 + MogoApisHandler.getInstance().getApis().getAdasControllerApi().changeAdasControlMode( EnumMapUI.Type_Light ); + } else if ( extraState == 38 ) { + // 夜间模式 + MogoApisHandler.getInstance().getApis().getAdasControllerApi().changeAdasControlMode( EnumMapUI.Type_Night ); + } } } } diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapControlCommandHandler.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapControlCommandHandler.java index e0cf880ea1..94d8c5d59a 100644 --- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapControlCommandHandler.java +++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapControlCommandHandler.java @@ -1,6 +1,5 @@ package com.mogo.module.map; -import android.content.Context; import android.content.Intent; import com.mogo.commons.AbsMogoApplication; @@ -56,7 +55,7 @@ class MapControlCommandHandler { case VoiceConstants.CMD_MAP_DAY_TIME_MODE_UN_WAKEUP: case VoiceConstants.CMD_MAP_DAY_TIME_MODE: mCallback.onDayNightModeChanged( EnumMapUI.Type_Light ); - notifyAMap(EnumMapUI.Type_Light); + notifyAMap( EnumMapUI.Type_Light ); break; case VoiceConstants.CMD_MAP_HISTORY_UN_WAKEUP: case VoiceConstants.CMD_MAP_HISTORY: @@ -68,12 +67,12 @@ class MapControlCommandHandler { case VoiceConstants.CMD_MAP_NIGHT_MODE_UN_WAKEUP: case VoiceConstants.CMD_MAP_NIGHT_MODE: mCallback.onDayNightModeChanged( EnumMapUI.Type_Night ); - notifyAMap(EnumMapUI.Type_Night); + notifyAMap( EnumMapUI.Type_Night ); break; case VoiceConstants.CMD_MAP_AUTO_LIGHT_NIGHT_MODE_UN_WAKEUP: case VoiceConstants.CMD_MAP_AUTO_LIGHT_NIGHT_MODE: mCallback.onDayNightModeChanged( EnumMapUI.Type_AUTO_LIGHT_Night ); - notifyAMap(EnumMapUI.Type_AUTO_LIGHT_Night); + notifyAMap( EnumMapUI.Type_AUTO_LIGHT_Night ); break; case VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE: mCallback.onDisplayOverview(); @@ -99,7 +98,7 @@ class MapControlCommandHandler { } } - private void notifyAMap( EnumMapUI ui ) { + public void notifyAMap( EnumMapUI ui ) { if ( ui == null ) { return; } @@ -116,6 +115,8 @@ class MapControlCommandHandler { case Type_AUTO_LIGHT_Night: state = 0; break; + default: + return; } Intent intent = new Intent(); intent.setAction( "AUTONAVI_STANDARD_BROADCAST_RECV" ); diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java index f96ca3c162..0c0f8722a6 100644 --- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java +++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java @@ -81,7 +81,6 @@ public class MapPresenter extends Presenter< MapView > implements public MapPresenter( MapView view ) { super( view ); - } @Override @@ -104,6 +103,7 @@ public class MapPresenter extends Presenter< MapView > implements @Override public void onMapUiModeChanged( EnumMapUI mapUI ) { mView.getUIController().changeMapMode( mapUI ); + mCustomVoiceCommandHandler.notifyAMap( mapUI ); } @Override 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 211d122e21..ef33efad2a 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 @@ -1008,9 +1008,9 @@ public class MapMarkerManager implements IMogoMarkerClickListener, switch ( mapUI ) { case Type_Light: case Type_Night: - if ( !AppUtils.isAppForeground( mContext ) ) { - return; - } +// if ( !AppUtils.isAppForeground( mContext ) ) { +// return; +// } if ( mLastDataResult != null ) { runOnTargetThread( () -> { MarkerServiceHandler.getMarkerManager().removeMarkers( ModuleNames.CARD_TYPE_ROAD_CONDITION );