From e52bfd340b0b085a82c72f51067f6e3e03f3c2d0 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Fri, 19 Jun 2020 13:17:06 +0800 Subject: [PATCH] opt --- gradle.properties | 4 ++-- services/mogo-service-api/build.gradle | 5 +++++ .../statusmanager/IMogoStatusChangedListener.java | 10 ++++++++++ .../impl/statusmanager/MogoStatusManager.java | 13 ++++++++++--- 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/gradle.properties b/gradle.properties index 62ba842c5b..b200da7bcb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -33,8 +33,8 @@ MAP_AMAP_VERSION=1.2.1.5 MAP_AUTONAVI_VERSION=1.2.1.5 MOGO_MAP_VERSION=1.2.1.5 MOGO_MAP_API_VERSION=1.2.1.5 -MOGO_SERVICE_VERSION=1.2.1.5 -MOGO_SERVICE_API_VERSION=1.2.1.5 +MOGO_SERVICE_VERSION=1.2.1.6 +MOGO_SERVICE_API_VERSION=1.2.1.6 MOGO_CONNECTION_VERSION=1.2.1.5 MOGO_MODULE_APPS_VERSION=1.2.1.5 MOGO_MODULE_NAVI_VERSION=1.2.1.5 diff --git a/services/mogo-service-api/build.gradle b/services/mogo-service-api/build.gradle index 8dc15e3ab2..1dd01dd7ee 100644 --- a/services/mogo-service-api/build.gradle +++ b/services/mogo-service-api/build.gradle @@ -27,6 +27,11 @@ android { } } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + } dependencies { diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusChangedListener.java b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusChangedListener.java index 908af22c34..47a501fb53 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusChangedListener.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusChangedListener.java @@ -13,4 +13,14 @@ public interface IMogoStatusChangedListener { * @param isTrue true - accOn、adas ui show、voice ui show、push ui show、v2x ui show */ void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ); + + /** + * 是否需要黏性状态: 先改变状态,后注册监听 + * + * @param descriptor 状态 + * @return 默认不需要 + */ + default boolean requestStickyStatus( StatusDescriptor descriptor ) { + return false; + } } diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java b/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java index 06a9ce1779..b7e0eed831 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java @@ -227,14 +227,21 @@ public class MogoStatusManager implements IMogoStatusManager { } @Override - public void registerStatusChangedListener( String tag, StatusDescriptor descriptor, IMogoStatusChangedListener listeners ) { - if ( listeners == null || descriptor == null ) { + public void registerStatusChangedListener( String tag, StatusDescriptor descriptor, IMogoStatusChangedListener listener ) { + if ( listener == null || descriptor == null ) { return; } if ( !mListeners.containsKey( descriptor ) ) { mListeners.put( descriptor, new ArrayList<>() ); } - mListeners.get( descriptor ).add( listeners ); + mListeners.get( descriptor ).add( listener ); + + if ( listener.requestStickyStatus( descriptor ) ) { + Boolean val = mStatus.get( descriptor ); + if ( val != null ) { + listener.onStatusChanged( descriptor, get_bool_val( descriptor ) ); + } + } } @Override