Merge remote-tracking branch 'origin/dev_custom_map' into dev_custom_map_phq
4
.idea/misc.xml
generated
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="FindBugsConfigurable">
|
||||
<componentd name="FindBugsConfigurable">
|
||||
<option name="make" value="true" />
|
||||
<option name="effort" value="default" />
|
||||
<option name="priority" value="Medium" />
|
||||
<option name="excludeFilter" value="" />
|
||||
</component>
|
||||
</componentd>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="JDK" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||
</component>
|
||||
|
||||
@@ -60,11 +60,11 @@ MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.2.1.5
|
||||
|
||||
## 工程外部模块
|
||||
# 探路
|
||||
MOGO_MODULE_TANLU_VERSION=1.1.0.1-SNAPSHOT
|
||||
MOGO_MODULE_TANLU_VERSION=1.2.1.1
|
||||
# 车聊聊
|
||||
CARCHATTING_VERSION=1.0.6
|
||||
CARCHATTING_VERSION=1.0.7
|
||||
# 车聊聊接口
|
||||
CARCHATTINGPROVIDER_VERSION=1.0.6
|
||||
CARCHATTINGPROVIDER_VERSION=1.0.7
|
||||
# 视频引导
|
||||
MOGO_MODULE_GUIDESHOW_VERSION=1.0.2-SNAPSHOT
|
||||
# 视频引导接口
|
||||
@@ -72,13 +72,13 @@ MOGO_MODULE_GUIDESHOW_PROVIDER_VERSION=1.0.2-SNAPSHOT
|
||||
# 在线车辆F
|
||||
MOGO_MODULE_ONLINECAR_VERSION=1.0.3.2
|
||||
# v2x
|
||||
MOGO_MODULE_V2X_VERSION=1.1.24
|
||||
MOGO_MODULE_V2X_VERSION=1.1.25
|
||||
# 推送
|
||||
MOGO_MODULE_PUSH_VERSION=1.0.1
|
||||
# 广告资源位
|
||||
MOGO_MODULE_AD_CARD_VERSION=1.0.1
|
||||
# 探路上报和分享模块
|
||||
TANLULIB_VERSION=1.0.2-SNAPSHOT
|
||||
TANLULIB_VERSION=1.2.1.1
|
||||
|
||||
## 产品库必备配置
|
||||
applicationId=com.mogo.launcer
|
||||
|
||||
@@ -27,7 +27,9 @@ import com.mogo.map.uicontroller.MapCameraPosition;
|
||||
import com.mogo.map.uicontroller.MapControlResult;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.zhidaoauto.map.sdk.inner.common.MapHelper;
|
||||
import com.zhidaoauto.map.sdk.open.MapAutoApi;
|
||||
import com.zhidaoauto.map.sdk.open.MapParams;
|
||||
import com.zhidaoauto.map.sdk.open.abs.MapStatusListener;
|
||||
import com.zhidaoauto.map.sdk.open.abs.OnMapClickListener;
|
||||
import com.zhidaoauto.map.sdk.open.abs.OnMapLoadedListener;
|
||||
import com.zhidaoauto.map.sdk.open.abs.OnMapTouchListener;
|
||||
@@ -47,7 +49,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class AMapViewWrapper implements IMogoMapView, IMogoMapUIController, LocationListener, OnMapLoadedListener,
|
||||
public class AMapViewWrapper implements IMogoMapView, IMogoMapUIController, LocationListener, OnMapLoadedListener, MapStatusListener,
|
||||
OnMapClickListener, OnMapTouchListener, Marker.OnMarkClickListener {
|
||||
|
||||
private static final String TAG = "AMapViewWrapper";
|
||||
@@ -58,8 +60,9 @@ public class AMapViewWrapper implements IMogoMapView, IMogoMapUIController, Loca
|
||||
private EnumMapUI mCurrentUIMode;
|
||||
|
||||
private boolean mIsCarLocked = false;
|
||||
private int mLockZoom = 14;
|
||||
|
||||
private float mDefaultZoomLevel = 7.0f;
|
||||
private float mDefaultZoomLevel = 14.0f;
|
||||
private final CarCursorOption DEFAULT_OPTION = new CarCursorOption.Builder()
|
||||
.carCursorRes(R.drawable.map_api_ic_current_location2)
|
||||
.naviCursorRes(R.drawable.ic_amap_navi_cursor)
|
||||
@@ -147,6 +150,9 @@ public class AMapViewWrapper implements IMogoMapView, IMogoMapUIController, Loca
|
||||
mMapView.setOnMapTouchListener(this);
|
||||
mMapView.setOnMapClickListener(this);
|
||||
mMapView.getLocationClient().registerListener(this);
|
||||
mMapView.registerListener(this, MapAutoApi.LISTENER_TYPE_ZOOM);
|
||||
mMapView.registerListener(this, MapAutoApi.LISTENER_TYPE_ROTATE);
|
||||
mMapView.registerListener(this, MapAutoApi.LISTENER_TYPE_3D);
|
||||
|
||||
// mMapView.setOnPolylineClickListener( this );
|
||||
// mMapView.setAMapNaviViewListener( this );
|
||||
@@ -224,45 +230,10 @@ public class AMapViewWrapper implements IMogoMapView, IMogoMapUIController, Loca
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 地图marker点击
|
||||
*/
|
||||
// @Override
|
||||
// public boolean onMarkerClick( Marker marker ) {
|
||||
// return mMarkerClickHandler.handleMarkerClicked( marker );
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * POI 点击
|
||||
// */
|
||||
// @Override
|
||||
// public void onPOIClick( Poi poi ) {
|
||||
// if ( InterceptorHandler.getInstance().ignorePoiClicked( getContext() ) ) {
|
||||
// return;
|
||||
// }
|
||||
// MogoMapListenerHandler.getInstance().onPOIClick( ObjectUtils.fromAMap( poi ) );
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onMapClick( LatLng latLng ) {
|
||||
// if ( InterceptorHandler.getInstance().ignoreMapClicked( getContext() ) ) {
|
||||
// return;
|
||||
// }
|
||||
// MogoMapListenerHandler.getInstance().onMapClick( ObjectUtils.fromAMap( latLng ) );
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onPolylineClick( Polyline polyline ) {
|
||||
// if ( !NaviClient.getInstance( getContext() ).isNaviing() ) {
|
||||
// NaviClient.getInstance( getContext() ).handleClickedPolyline( polyline );
|
||||
// }
|
||||
// }
|
||||
//
|
||||
@Override
|
||||
public void setTrafficEnabled(boolean visible) {
|
||||
if (checkAMapView()) {
|
||||
// mMapView.setTrafficLine( visible );
|
||||
mMapView.getMapAutoViewHelper().setTraffic(visible);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -292,7 +263,7 @@ public class AMapViewWrapper implements IMogoMapView, IMogoMapUIController, Loca
|
||||
mDefaultZoomLevel = 0;
|
||||
}
|
||||
}
|
||||
changeZoom((int) mDefaultZoomLevel);
|
||||
changeZoom(mDefaultZoomLevel);
|
||||
}
|
||||
return MapControlResult.SUCCESS;
|
||||
}
|
||||
@@ -434,7 +405,8 @@ public class AMapViewWrapper implements IMogoMapView, IMogoMapUIController, Loca
|
||||
// if ( DebugConfig.isDebug() ) {
|
||||
// Logger.d( TAG, Log.getStackTraceString( new Throwable() ) );
|
||||
// }
|
||||
Logger.d(TAG, "锁车");
|
||||
Log.d(TAG, "锁车");
|
||||
mMapView.getMapAutoViewHelper().setZoom(mLockZoom/2);
|
||||
mMapView.getMapAutoViewHelper().setLockMode(true);
|
||||
mIsCarLocked = true;
|
||||
}
|
||||
@@ -445,14 +417,14 @@ public class AMapViewWrapper implements IMogoMapView, IMogoMapUIController, Loca
|
||||
if (DebugConfig.isDebug()) {
|
||||
Logger.d(TAG, Log.getStackTraceString(new Throwable()));
|
||||
}
|
||||
Logger.d(TAG, "解锁锁车");
|
||||
Log.d(TAG, "解锁锁车");
|
||||
mMapView.getMapAutoViewHelper().setLockMode(false);
|
||||
mIsCarLocked = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLockZoom(int var1) {
|
||||
|
||||
mLockZoom = var1;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -474,7 +446,7 @@ public class AMapViewWrapper implements IMogoMapView, IMogoMapUIController, Loca
|
||||
|
||||
@Override
|
||||
public MogoLatLng getCameraNorthEastPosition() {
|
||||
return null;
|
||||
return ObjectUtils.fromAMap( MapTools.INSTANCE.getVisibleRegion().getRightTopPoint());
|
||||
}
|
||||
|
||||
|
||||
@@ -722,4 +694,9 @@ public class AMapViewWrapper implements IMogoMapView, IMogoMapUIController, Loca
|
||||
public void onRoadLoaded(@Nullable String s) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMapStatusChanged(int type, int value) {
|
||||
Log.i(TAG, "onMapStatusChanged: "+type+","+value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -171,7 +171,6 @@ public class AMapWrapper implements IMogoMap {
|
||||
@Override
|
||||
public void setTouchPoiEnable(boolean touchPoiEnable) {
|
||||
if (checkAMap()) {
|
||||
// TODO: 2020/5/27 jia 设置
|
||||
mAMap.setTouchPoiEnable( touchPoiEnable );
|
||||
}
|
||||
}
|
||||
@@ -224,7 +223,7 @@ public class AMapWrapper implements IMogoMap {
|
||||
@Override
|
||||
public void changeZoom(float zoom) {
|
||||
if (checkAMap()) {
|
||||
mAMap.setZoom((int) zoom);
|
||||
mAMap.setZoom((int) zoom/2);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -232,7 +231,7 @@ public class AMapWrapper implements IMogoMap {
|
||||
public float getZoomLevel() {
|
||||
if (checkAMap()) {
|
||||
try {
|
||||
return mAMap.getZoom();
|
||||
return mAMap.getZoom()*2;
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
|
||||
@@ -175,7 +175,7 @@ public class AMapUIController implements IMogoMapUIController {
|
||||
@Override
|
||||
public void setPointToCenter(double mapCenterX, double mapCenterY) {
|
||||
if (mClient != null) {
|
||||
// mClient.setPointToCenter(mapCenterX, mapCenterY);
|
||||
mClient.setPointToCenter(mapCenterX, mapCenterY);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -151,6 +151,8 @@
|
||||
android:layout_height="0px"
|
||||
android:layout_marginBottom="@dimen/dp_160"
|
||||
android:scrollbarSize="@dimen/dp_207"
|
||||
android:layout_marginTop="@dimen/dp_54"
|
||||
android:scrollbarTrackHorizontal="@drawable/module_authorize_scrollbar"
|
||||
android:scrollbarThumbVertical="@drawable/module_authorize_scrollbar"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
|
||||
|
Before Width: | Height: | Size: 657 B |
@@ -1,6 +1,5 @@
|
||||
package com.mogo.module.main;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.location.Location;
|
||||
import android.view.MotionEvent;
|
||||
|
||||
@@ -21,11 +20,6 @@ import com.mogo.map.navi.MogoNaviInfo;
|
||||
import com.mogo.map.navi.MogoTraffic;
|
||||
import com.mogo.map.uicontroller.EnumMapUI;
|
||||
import com.mogo.module.main.registercenter.MogoRegisterCenterHandler;
|
||||
import com.mogo.module.service.receiver.AccStatusReceiver;
|
||||
import com.mogo.module.service.receiver.MogoReceiver;
|
||||
import com.mogo.service.intent.IMogoIntentListener;
|
||||
import com.mogo.service.intent.IMogoIntentManager;
|
||||
import com.mogo.service.module.IMogoModuleLifecycle;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
import java.util.Iterator;
|
||||
@@ -43,8 +37,7 @@ public class EventDispatchCenter implements
|
||||
IMogoCarLocationChangedListener2,
|
||||
IMogoMapListener,
|
||||
IMogoNaviListener2,
|
||||
IMogoLocationListener,
|
||||
IMogoIntentListener {
|
||||
IMogoLocationListener {
|
||||
|
||||
|
||||
private static volatile EventDispatchCenter sInstance;
|
||||
@@ -66,12 +59,6 @@ public class EventDispatchCenter implements
|
||||
|
||||
private static final String TAG = "DispatchCenter";
|
||||
|
||||
public void registerReceiver( IMogoIntentManager intentManager ) {
|
||||
intentManager.registerIntentListener( Intent.ACTION_POWER_CONNECTED, this );
|
||||
intentManager.registerIntentListener( Intent.ACTION_POWER_DISCONNECTED, this );
|
||||
intentManager.registerIntentListener( AccStatusReceiver.ACTION_NWD_ACC, this );
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onMarkerClicked( IMogoMarker marker ) {
|
||||
IMogoMarkerClickListener listener = MogoRegisterCenterHandler.getInstance().getMarkerListener( marker.getOwner() );
|
||||
@@ -437,32 +424,6 @@ public class EventDispatchCenter implements
|
||||
Logger.i( TAG, "onLocationChanged event cost " + ( System.currentTimeMillis() - start ) + "ms" );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onIntentReceived( String intentStr, Intent intent ) {
|
||||
|
||||
Iterator< IMogoModuleLifecycle > iterator = MogoRegisterCenterHandler.getInstance().getLifecycleListeners();
|
||||
if ( Intent.ACTION_POWER_CONNECTED.equals( intentStr ) ) {
|
||||
while ( iterator.hasNext() ) {
|
||||
IMogoModuleLifecycle lifecycle = iterator.next();
|
||||
if ( lifecycle != null ) {
|
||||
lifecycle.accOn();
|
||||
}
|
||||
}
|
||||
} else if ( Intent.ACTION_POWER_DISCONNECTED.equals( intentStr ) ) {
|
||||
} else if ( AccStatusReceiver.ACTION_NWD_ACC.equals( intentStr ) ) {
|
||||
int state = intent.getByteExtra( AccStatusReceiver.PARAM_ACC_STATUS, ( byte ) 0 );
|
||||
if ( state == 1 ) {
|
||||
while ( iterator.hasNext() ) {
|
||||
IMogoModuleLifecycle lifecycle = iterator.next();
|
||||
if ( lifecycle != null ) {
|
||||
lifecycle.accOn();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onArriveDestination() {
|
||||
Iterator< IMogoNaviListener > iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners();
|
||||
|
||||
@@ -60,7 +60,6 @@ public class MogoModulesManager implements MogoModulesHandler {
|
||||
throw new NullPointerException( "activity can't be null." );
|
||||
}
|
||||
this.mActivity = activity;
|
||||
EventDispatchCenter.getInstance().registerReceiver( apis.getIntentManagerApi() );
|
||||
}
|
||||
|
||||
private Context getContext() {
|
||||
|
||||
@@ -27,7 +27,7 @@ public
|
||||
*
|
||||
* 描述
|
||||
*/
|
||||
@Route( path = "/service/base/info" )
|
||||
@Route(path = "/service/base/info")
|
||||
class MogoMainService extends Service implements IMogoLocationListener {
|
||||
|
||||
private static final String TAG = "MogoMainService";
|
||||
@@ -40,11 +40,11 @@ class MogoMainService extends Service implements IMogoLocationListener {
|
||||
|
||||
@Override
|
||||
public void onCreate() {
|
||||
Logger.d( TAG, "基本服务启动" );
|
||||
mServiceApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation();
|
||||
Logger.d(TAG, "基本服务启动");
|
||||
mServiceApis = (IMogoServiceApis) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation();
|
||||
initAndStartLocation();
|
||||
initGpsSimulatorListener();
|
||||
UiThreadHandler.postDelayed( () -> {
|
||||
UiThreadHandler.postDelayed(() -> {
|
||||
loadBaseModules();
|
||||
startTanluService();
|
||||
initADAS();
|
||||
@@ -54,49 +54,53 @@ class MogoMainService extends Service implements IMogoLocationListener {
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public IBinder onBind( Intent intent ) {
|
||||
public IBinder onBind(Intent intent) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int onStartCommand( Intent intent, int flags, int startId ) {
|
||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||
return START_STICKY;
|
||||
}
|
||||
|
||||
private void initAndStartLocation() {
|
||||
Logger.d( TAG, "开始定位" );
|
||||
mLocationClient = mServiceApis.getMapServiceApi().getSingletonLocationClient( AbsMogoApplication.getApp() );
|
||||
mLocationClient.addLocationListener( this );
|
||||
mLocationClient.start( 2_000L );
|
||||
Logger.d(TAG, "开始定位");
|
||||
mLocationClient = mServiceApis.getMapServiceApi().getSingletonLocationClient(AbsMogoApplication.getApp());
|
||||
mLocationClient.addLocationListener(this);
|
||||
mLocationClient.start(2_000L);
|
||||
}
|
||||
|
||||
private void initGpsSimulatorListener() {
|
||||
mServiceApis.getMapServiceApi().getNavi( this ).registerCarLocationChangedListener( EventDispatchCenter.getInstance() );
|
||||
mServiceApis.getMapServiceApi().getNavi(this).registerCarLocationChangedListener(EventDispatchCenter.getInstance());
|
||||
}
|
||||
|
||||
private void loadBaseModules() {
|
||||
Logger.d( TAG, "加载基本模块" );
|
||||
Logger.d(TAG, "加载基本模块");
|
||||
MogoModulesManager.getInstance().loadBaseModule();
|
||||
}
|
||||
|
||||
private void startTanluService() {
|
||||
MainService.Companion.launchService( getApplicationContext(), "0" );
|
||||
UiThreadHandler.postDelayed(() -> {
|
||||
Logger.d(TAG, "startTanluService ---------- ");
|
||||
MainService.Companion.launchService(getApplicationContext(), "0");
|
||||
}, 58_000L
|
||||
);
|
||||
}
|
||||
|
||||
private void initADAS() {
|
||||
mServiceApis.getAdasControllerApi().init( AbsMogoApplication.getApp() );
|
||||
mServiceApis.getAdasControllerApi().init(AbsMogoApplication.getApp());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLocationChanged( MogoLocation location ) {
|
||||
EventDispatchCenter.getInstance().onLocationChanged( location );
|
||||
public void onLocationChanged(MogoLocation location) {
|
||||
EventDispatchCenter.getInstance().onLocationChanged(location);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
if ( mLocationClient != null ) {
|
||||
mLocationClient.removeLocationListener( this );
|
||||
if (mLocationClient != null) {
|
||||
mLocationClient.removeLocationListener(this);
|
||||
mLocationClient.stop();
|
||||
mLocationClient.destroy();
|
||||
mLocationClient = null;
|
||||
|
||||
@@ -1,19 +1,12 @@
|
||||
package com.mogo.module.share.dialog;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.PixelFormat;
|
||||
import android.os.Build;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.mogo.module.common.dialog.BaseFloatDialog;
|
||||
import com.mogo.module.common.utils.CarSeries;
|
||||
import com.mogo.module.share.R;
|
||||
import com.mogo.module.share.constant.ShareConstants;
|
||||
import com.mogo.module.share.manager.ISeekHelpListener;
|
||||
@@ -23,7 +16,6 @@ import com.mogo.service.IMogoServiceApis;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.analytics.IMogoAnalytics;
|
||||
import com.mogo.service.statusmanager.IMogoStatusManager;
|
||||
import com.mogo.utils.WindowUtils;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
|
Before Width: | Height: | Size: 765 B |
|
Before Width: | Height: | Size: 767 B |
|
Before Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 4.0 KiB |
@@ -2,8 +2,7 @@
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#88000000">
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<View
|
||||
android:id="@+id/vBg"
|
||||
|
||||
@@ -27,6 +27,11 @@ android {
|
||||
}
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
||||
@@ -6,6 +6,7 @@ package com.mogo.service.module;
|
||||
* <p>
|
||||
* 卡片生命周期
|
||||
*/
|
||||
@Deprecated
|
||||
public interface IMogoModuleLifecycle {
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
|
||||
import com.mogo.service.statusmanager.IMogoStatusManager;
|
||||
import com.mogo.service.statusmanager.IMogoStickyStatusChangedListener;
|
||||
import com.mogo.service.statusmanager.StatusDescriptor;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
@@ -227,14 +228,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 instanceof IMogoStickyStatusChangedListener && listener.requestStickyStatus( descriptor ) ) {
|
||||
Boolean val = mStatus.get( descriptor );
|
||||
if ( val != null ) {
|
||||
listener.onStatusChanged( descriptor, get_bool_val( descriptor ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||