diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/location/ALocationClient.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/location/ALocationClient.java
index a551c302bc..89dfeac7f4 100644
--- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/location/ALocationClient.java
+++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/location/ALocationClient.java
@@ -26,6 +26,7 @@ import java.util.Set;
public class ALocationClient implements IMogoLocationClient {
private static final String TAG = "LocationClient";
+ private final Context mContext;
private Set< IMogoLocationListener > sListeners = new HashSet<>( 10 );
private MogoLocation mLastLocation;
@@ -34,12 +35,7 @@ public class ALocationClient implements IMogoLocationClient {
private boolean mIsDestroyed = false;
public ALocationClient( Context context ) {
- mClient = new AMapLocationClient( context );
- mClient.setLocationListener( mListener );
- mLastLocation = ObjectUtils.fromAMap( mClient.getLastKnownLocation() );
- if ( mLastLocation == null ) {
- mLastLocation = new MogoLocation();
- }
+ mContext = context;
}
private AMapLocationClient mClient;
@@ -51,11 +47,12 @@ public class ALocationClient implements IMogoLocationClient {
@Override
public void start( long interval ) {
- if ( mIsDestroyed ) {
- destroyWarming();
- return;
+ if ( mClient == null ) {
+ mClient = new AMapLocationClient( mContext );
+ mClient.setLocationListener( mListener );
+ mLastLocation = ObjectUtils.fromAMap( mClient.getLastKnownLocation() );
}
- if ( mClient != null ) {
+ if ( !mClient.isStarted() ) {
AMapLocationClientOption option = new AMapLocationClientOption();
option.setLocationMode( AMapLocationClientOption.AMapLocationMode.Hight_Accuracy );
option.setNeedAddress( true );
@@ -109,6 +106,9 @@ public class ALocationClient implements IMogoLocationClient {
destroyWarming();
return null;
}
+ if ( mLastLocation == null ) {
+ mLastLocation = new MogoLocation();
+ }
return mLastLocation;
}
@@ -140,7 +140,7 @@ public class ALocationClient implements IMogoLocationClient {
aMapLocation.getLongitude() == 0.0D ) {
return;
}
- Trace.beginSection("timer.onLocationChanged");
+ Trace.beginSection( "timer.onLocationChanged" );
mLastLocation = ObjectUtils.fromAMap( aMapLocation );
synchronized ( sListeners ) {
Iterator< IMogoLocationListener > listenerIterator = sListeners.iterator();
diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/search/GeocodeSearchClient.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/search/GeocodeSearchClient.java
index 4de829cd54..3e6a25132f 100644
--- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/search/GeocodeSearchClient.java
+++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/search/GeocodeSearchClient.java
@@ -4,9 +4,11 @@ import android.content.Context;
import com.amap.api.services.core.AMapException;
import com.amap.api.services.geocoder.GeocodeAddress;
+import com.amap.api.services.geocoder.GeocodeQuery;
import com.amap.api.services.geocoder.GeocodeResult;
import com.amap.api.services.geocoder.GeocodeSearch;
import com.amap.api.services.geocoder.RegeocodeAddress;
+import com.amap.api.services.geocoder.RegeocodeQuery;
import com.amap.api.services.geocoder.RegeocodeResult;
import com.mogo.map.exception.MogoMapException;
import com.mogo.map.impl.amap.utils.ObjectUtils;
@@ -16,6 +18,7 @@ import com.mogo.map.search.geo.MogoGeocodeAddress;
import com.mogo.map.search.geo.MogoRegeocodeAddress;
import com.mogo.map.search.geo.query.MogoGeocodeQuery;
import com.mogo.map.search.geo.query.MogoRegeocodeQuery;
+import com.mogo.utils.logger.Logger;
import java.util.ArrayList;
import java.util.List;
@@ -28,6 +31,8 @@ import java.util.List;
*/
public class GeocodeSearchClient implements IMogoGeoSearch, GeocodeSearch.OnGeocodeSearchListener {
+ private static final String TAG = "GeocodeSearchClient";
+
private GeocodeSearch mClient;
private IMogoGeoSearchListener mListener;
@@ -74,14 +79,32 @@ public class GeocodeSearchClient implements IMogoGeoSearch, GeocodeSearch.OnGeoc
@Override
public void getFromLocationAsyn( MogoRegeocodeQuery query ) {
if ( mClient != null ) {
- mClient.getFromLocationAsyn( ObjectUtils.fromMogo( query ) );
+ if ( query == null ) {
+ Logger.e( TAG, "query parameter is null." );
+ return;
+ }
+ RegeocodeQuery origin = ObjectUtils.fromMogo( query );
+ if ( origin == null || !query.check() ) {
+ Logger.e( TAG, "query parameter is null or no point parameter." );
+ return;
+ }
+ mClient.getFromLocationAsyn( origin );
}
}
@Override
public void getFromLocationNameAsyn( MogoGeocodeQuery query ) {
if ( mClient != null ) {
- mClient.getFromLocationNameAsyn( ObjectUtils.fromMogo( query ) );
+ if ( query == null ) {
+ Logger.e( TAG, "query parameter is null." );
+ return;
+ }
+ GeocodeQuery origin = ObjectUtils.fromMogo( query );
+ if ( origin == null || !query.check() ) {
+ Logger.e( TAG, "query parameter is null or locationName is empty." );
+ return;
+ }
+ mClient.getFromLocationNameAsyn( origin );
}
}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/query/MogoGeocodeQuery.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/query/MogoGeocodeQuery.java
index 988533cc5f..159ef29be1 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/query/MogoGeocodeQuery.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/query/MogoGeocodeQuery.java
@@ -2,6 +2,7 @@ package com.mogo.map.search.geo.query;
import android.os.Parcel;
import android.os.Parcelable;
+import android.text.TextUtils;
/**
* @author congtaowang
@@ -29,6 +30,12 @@ public class MogoGeocodeQuery implements Parcelable {
this.city = city;
}
+ public boolean check(){
+ if ( TextUtils.isEmpty( locationName ) ) {
+ return false;
+ }
+ return true;
+ }
@Override
public int describeContents() {
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/query/MogoRegeocodeQuery.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/query/MogoRegeocodeQuery.java
index ea5bf42895..75446b08d6 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/query/MogoRegeocodeQuery.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/query/MogoRegeocodeQuery.java
@@ -50,6 +50,18 @@ public class MogoRegeocodeQuery implements Parcelable {
this.poiType = poiType;
}
+ public boolean check() {
+ if ( point == null ) {
+ return false;
+ }
+ if ( point.lat < 1 && point.lon < 1 ) {
+ return false;
+ }
+ if ( radius < 0 ) {
+ return false;
+ }
+ return true;
+ }
@Override
public int describeContents() {
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java
index ab5af1e04c..dfa80f15fd 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java
@@ -21,6 +21,7 @@ import com.mogo.module.apps.model.AppEnum;
import com.mogo.module.apps.model.AppInfo;
import com.mogo.module.apps.model.NavigatorApps;
import com.mogo.module.apps.view.OnAiAssistClickListener;
+import com.mogo.service.fragmentmanager.FragmentStackTransactionListener;
import com.mogo.utils.AppUtils;
import com.mogo.utils.CommonUtils;
@@ -33,7 +34,9 @@ import java.util.Map;
*
* 描述
*/
-public class AppNavigatorFragment extends MvpFragment< AppNavigatorView, AppNavigatorPresenter > implements AppNavigatorView {
+public class AppNavigatorFragment extends MvpFragment< AppNavigatorView, AppNavigatorPresenter >
+ implements AppNavigatorView,
+ FragmentStackTransactionListener {
private static final String TAG = "AppNavigatorFragment";
@@ -74,14 +77,17 @@ public class AppNavigatorFragment extends MvpFragment< AppNavigatorView, AppNavi
mAIAssist.performClick();
} );
- AppServiceHandler.getApis().getFragmentManagerApi().addMainFragmentStackTransactionListener( size -> {
- // 主页 fragment 栈变化的时候,改变动画状态
- if ( size == 0 ) {
- mAnim.start();
- } else {
- mAnim.stop();
- }
- } );
+ AppServiceHandler.getApis().getFragmentManagerApi().addMainFragmentStackTransactionListener( this );
+ }
+
+ @Override
+ public void onTransaction( int size ) {
+ // 主页 fragment 栈变化的时候,改变动画状态
+ if ( size == 0 ) {
+ mAnim.start();
+ } else {
+ mAnim.stop();
+ }
}
@Override
@@ -151,5 +157,6 @@ public class AppNavigatorFragment extends MvpFragment< AppNavigatorView, AppNavi
if ( mPresenter != null ) {
mPresenter.onDestroy( getViewLifecycleOwner() );
}
+ AppServiceHandler.getApis().getFragmentManagerApi().removeMainFragmentStackTransactionListener( this );
}
}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorPresenter.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorPresenter.java
index 7b39a6b5a3..5aaf7a9c38 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorPresenter.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorPresenter.java
@@ -115,6 +115,7 @@ public class AppNavigatorPresenter extends Presenter< AppNavigatorView > impleme
@Override
public void onDestroy( @NonNull LifecycleOwner owner ) {
super.onDestroy( owner );
+ AppServiceHandler.getApis().getRegisterCenterApi().unregisterMogoNaviListener( TAG );
AppServiceHandler.getApis().getIntentManagerApi().unregisterIntentListener( AppsConst.COMMAND_OPERATION, this );
}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java
index 916b265020..41d756ef34 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java
@@ -45,7 +45,6 @@ public class AppsPresenter extends Presenter< AppsView > {
private IMogoServiceApis mApis;
private IMogoCardManager mCardManager;
- private IMogoStatusManager mMogoStatusManager;
public AppsPresenter( AppsView view ) {
super( view );
@@ -71,7 +70,6 @@ public class AppsPresenter extends Presenter< AppsView > {
} );
mAnalytics = mApis.getAnalyticsApi();
- mMogoStatusManager = mApis.getStatusManagerApi();
}
private void renderAppsList() {
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 a15d148a4b..726b1ed0a6 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
@@ -1,5 +1,6 @@
package com.mogo.module.extensions.entrance;
+import android.content.Intent;
import android.graphics.Rect;
import android.os.Bundle;
import android.text.TextUtils;
@@ -44,6 +45,7 @@ import com.mogo.service.MogoServicePaths;
import com.mogo.service.analytics.IMogoAnalytics;
import com.mogo.service.entrance.ButtonIndex;
import com.mogo.service.fragmentmanager.IMogoFragmentManager;
+import com.mogo.service.intent.IMogoIntentListener;
import com.mogo.service.map.IMogoMapService;
import com.mogo.service.module.IMogoRegisterCenter;
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
@@ -72,7 +74,8 @@ public class EntranceFragment extends MvpFragment {
- int key_type = intent.getIntExtra( "KEY_TYPE", 0 );
- int type = intent.getIntExtra( "EXTRA_TYPE", -1 );
- int opera_type = intent.getIntExtra( "EXTRA_OPERA", -1 );
- if ( key_type == 10027 ) {
- if ( opera_type == 0 ) {
- mCameraMode.setSelected( false );
- } else if ( opera_type == 1 ) {
- mCameraMode.setSelected( true );
- }
- mCameraMode.setText( getString( mCameraMode.isSelected() ? R.string.mode_car_up : R.string.mode_north_up ) );
- } else if( key_type == 10021 ){
- onStopNavi();
- }
- }) );
- MogoEntranceButtons.save( ButtonIndex.BUTTON1, findViewById( R.id.module_entrance_id_button1 ) );
- MogoEntranceButtons.save( ButtonIndex.BUTTON2, findViewById( R.id.module_entrance_id_button2 ) );
+
+ mApis.getIntentManagerApi().registerIntentListener(AUTONAVI_STANDARD_BROADCAST_RECV, this);
+ MogoEntranceButtons.save(ButtonIndex.BUTTON1,
+ findViewById(R.id.module_entrance_id_button1));
+ MogoEntranceButtons.save(ButtonIndex.BUTTON2,
+ findViewById(R.id.module_entrance_id_button2));
mDisplayOverviewBounds = new Rect(
ResourcesHelper.getDimensionPixelSize(getContext(),
@@ -355,6 +346,22 @@ public class EntranceFragment extends MvpFragment {
+ MapCenterPointStrategy.setMapCenterPointBySceneAndDelay(mMApUIController, Scene.NAVI, 500
+ , () -> {
return !mMogoNavi.isNaviing();
});
if (CustomNaviInterrupter.getInstance().interrupt()) {
@@ -575,4 +583,23 @@ public class EntranceFragment extends MvpFragment impleme
mMogoMapUIController = null;
mMogoFragmentManager = null;
mServiceApis.getAdasControllerApi().release();
+ Logger.d( TAG, "destroy." );
mServiceApis.getRefreshStrategyControllerApi().clearAllData();
AIAssist.getInstance( this ).release();
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java
index 79950ef3c4..3d9d2105b8 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java
@@ -2,58 +2,24 @@ package com.mogo.module.service;
import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
import android.os.Bundle;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-import android.text.TextUtils;
-import android.view.MotionEvent;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import com.alibaba.android.arouter.facade.annotation.Route;
-import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.AbsMogoApplication;
-import com.mogo.map.MogoLatLng;
import com.mogo.map.listener.IMogoMapListener;
import com.mogo.map.location.IMogoLocationListener;
-import com.mogo.map.location.MogoLocation;
import com.mogo.map.marker.IMogoMarkerClickListener;
-import com.mogo.map.marker.IMogoMarkerManager;
-import com.mogo.map.model.MogoPoi;
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.MogoModule;
-import com.mogo.module.common.MogoModulePaths;
-import com.mogo.module.service.network.RefreshCallback;
-import com.mogo.module.service.network.RefreshModel;
-import com.mogo.module.service.receiver.MogoReceiver;
-import com.mogo.module.service.refresh.AutoRefreshStrategy;
-import com.mogo.module.service.refresh.CustomRefreshStrategy;
-import com.mogo.service.MogoServicePaths;
-import com.mogo.service.intent.IMogoIntentListener;
-import com.mogo.service.intent.IMogoIntentManager;
-import com.mogo.service.map.IMogoMapService;
import com.mogo.service.module.IMogoModuleLifecycle;
import com.mogo.service.module.IMogoModuleProvider;
-import com.mogo.service.module.IMogoRegisterCenter;
import com.mogo.service.module.ModuleType;
-import com.mogo.service.statusmanager.IMogoStatusChangedListener;
-import com.mogo.service.statusmanager.IMogoStatusManager;
-import com.mogo.service.statusmanager.StatusDescriptor;
import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.logger.Logger;
-import java.util.Iterator;
-import java.util.List;
-
/**
* @author congtaowang
* @since 2020-01-03
@@ -128,6 +94,8 @@ public class MogoServiceProvider implements IMogoModuleProvider {
@Override
public void init( Context context ) {
+ Logger.d( TAG, "init" );
+ MarkerServiceHandler.init( context );
UiThreadHandler.postDelayed( () -> {
MogoServices.getInstance().init( AbsMogoApplication.getApp() );
}, 5_000L );
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java
index 046bc4b0be..7e44a00665 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java
@@ -56,6 +56,7 @@ import com.mogo.service.statusmanager.IMogoStatusChangedListener;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.service.statusmanager.StatusDescriptor;
import com.mogo.utils.TipToast;
+import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.WorkThreadHandler;
import com.mogo.utils.logger.Logger;
@@ -63,6 +64,8 @@ import org.json.JSONObject;
import java.util.List;
+import retrofit2.http.HEAD;
+
/**
* @author congtaowang
* @since 2020-01-03
@@ -273,12 +276,13 @@ public class MogoServices implements IMogoMapListener,
private boolean mIsMainPageFirstResume = true;
+ private boolean mIsFirstAccOn = true;
+
public void init( Context context ) {
mContext = context;
initWorkThread();
- MarkerServiceHandler.init( mContext );
mRefreshModel = new RefreshModel( context );
mMogoMapService = MarkerServiceHandler.getMapService();
mUiController = mMogoMapService.getMapUIController();
@@ -366,6 +370,7 @@ public class MogoServices implements IMogoMapListener,
if ( msg.obj instanceof RefreshObject ) {
RefreshObject ro = ( ( RefreshObject ) msg.obj );
if ( ro.mLonLat == null ) {
+ Logger.w( TAG, "lonLat is null." );
return;
}
mRefreshModel.refreshData( ro.mLonLat, ro.mRadius, ro.mAmount, ro.mCallback );
@@ -619,9 +624,7 @@ public class MogoServices implements IMogoMapListener,
// 自动刷新触发
final MogoLatLng point = new MogoLatLng( location.getLatitude(), location.getLongitude() );
if ( mLastAutoRefreshLocation == null ) {
- mLastAutoRefreshLocation = point;
- mLoopRequest = true;
- notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback );
+ startFirstLocationRequest( point );
return;
}
float distance = Utils.calculateLineDistance( mLastAutoRefreshLocation, point );
@@ -635,8 +638,27 @@ public class MogoServices implements IMogoMapListener,
}
}
+ /**
+ * 首次定位成功后,执行道路事件的刷新
+ *
+ * @param point
+ */
+ private void startFirstLocationRequest( MogoLatLng point ) {
+ mLastAutoRefreshLocation = point;
+ mLoopRequest = true;
+ notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback );
+ }
+
@Override
public void onCarLocationChanged2( Location latLng ) {
+ if ( latLng == null ) {
+ return;
+ }
+ // poi 定位无法获取时,使用该定位
+ if ( mLastAutoRefreshLocation == null ) {
+ MogoLatLng point = new MogoLatLng( latLng.getLatitude(), latLng.getLongitude() );
+ startFirstLocationRequest( point );
+ }
}
@Override
@@ -717,18 +739,20 @@ public class MogoServices implements IMogoMapListener,
break;
case ACC_STATUS:
if ( isTrue ) {
+ if ( mIsFirstAccOn ) {
+ mIsFirstAccOn = false;
+ return;
+ }
initLocationServiceProcess( mContext );
mADASController.showADAS();
- refreshStrategy();
MarkerServiceHandler.getApis().getMapServiceApi().getSingletonLocationClient( mContext ).start();
+ MarkerServiceHandler.getApis().getMapServiceApi().getMarkerManager( mContext ).removeMarkers();
+ UiThreadHandler.postDelayed( () -> {
+ refreshStrategy();
+ }, 3_000L );
} else {
- try {
- MarkerServiceHandler.getApis().getMapServiceApi().getMarkerManager( mContext ).removeMarkers();
- MarkerServiceHandler.getApis().getMapServiceApi().getSingletonLocationClient( mContext ).stop();
- } catch ( Exception e ) {
- Logger.e( TAG, e, "error." );
- }
- refreshStrategy();
+ MarkerServiceHandler.getApis().getMapServiceApi().getSingletonLocationClient( mContext ).stop();
+ MarkerServiceHandler.getApis().getMapServiceApi().getMarkerManager( mContext ).removeMarkers();
}
break;
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/AccStatusIntentHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/AccStatusIntentHandler.java
index 5a9def8162..38a6de48b4 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/AccStatusIntentHandler.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/AccStatusIntentHandler.java
@@ -3,10 +3,11 @@ package com.mogo.module.service.intent;
import android.content.Context;
import android.content.Intent;
+import com.mogo.module.common.utils.CarSeries;
import com.mogo.module.service.MarkerServiceHandler;
import com.mogo.module.service.ServiceConst;
import com.mogo.module.service.receiver.AccStatusReceiver;
-import com.mogo.module.service.receiver.MogoReceiver;
+import com.mogo.utils.TipToast;
import com.mogo.utils.logger.Logger;
public
@@ -18,16 +19,21 @@ public
*/
class AccStatusIntentHandler implements IntentHandler {
+ public static final byte ACC_ON = 1;
+ public static final byte ACC_OFF = 0;
+ public static final byte ACC_OFF_DELAY = 3;
+
private static final String TAG = "AccStatusIntentHandler";
private static volatile AccStatusIntentHandler sInstance;
- private AccStatusIntentHandler(){}
+ private AccStatusIntentHandler() {
+ }
- public static AccStatusIntentHandler getInstance(){
- if( sInstance == null ){
- synchronized( AccStatusIntentHandler.class ) {
- if( sInstance == null ){
+ public static AccStatusIntentHandler getInstance() {
+ if ( sInstance == null ) {
+ synchronized ( AccStatusIntentHandler.class ) {
+ if ( sInstance == null ) {
sInstance = new AccStatusIntentHandler();
}
}
@@ -35,7 +41,7 @@ class AccStatusIntentHandler implements IntentHandler {
return sInstance;
}
- public synchronized void release(){
+ public synchronized void release() {
sInstance = null;
}
@@ -43,15 +49,26 @@ class AccStatusIntentHandler implements IntentHandler {
public void handle( Context context, Intent intent ) {
String action = intent.getAction();
if ( Intent.ACTION_POWER_CONNECTED.equals( action ) ) {
- MarkerServiceHandler.getMogoStatusManager().setAccStatus( ServiceConst.TYPE, true );
- Logger.d( TAG, "acc status: %s", true );
+ if ( CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X ) {
+ MarkerServiceHandler.getMogoStatusManager().setAccStatus( ServiceConst.TYPE, true );
+ Logger.d( TAG, "acc status: %s", true );
+ }
} else if ( Intent.ACTION_POWER_DISCONNECTED.equals( action ) ) {
- MarkerServiceHandler.getMogoStatusManager().setAccStatus( ServiceConst.TYPE, false );
- Logger.d( TAG, "acc status: %s", false );
+ if ( CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X ) {
+ MarkerServiceHandler.getMogoStatusManager().setAccStatus( ServiceConst.TYPE, false );
+ Logger.d( TAG, "acc status: %s", false );
+ }
} else if ( AccStatusReceiver.ACTION_NWD_ACC.equals( action ) ) {
- int state = intent.getByteExtra( AccStatusReceiver.PARAM_ACC_STATUS, ( byte ) 0 );
- Logger.d( TAG, "acc status: %s", state == 1 );
- MarkerServiceHandler.getMogoStatusManager().setAccStatus( ServiceConst.TYPE, state == 1 );
+ int state = intent.getByteExtra( AccStatusReceiver.PARAM_ACC_STATUS, ACC_OFF );
+ if ( state != ACC_OFF && state != ACC_ON && state != ACC_OFF_DELAY ) {
+ return;
+ }
+ boolean accOn = state == ACC_ON;
+ if ( MarkerServiceHandler.getMogoStatusManager().isAccOn() == accOn ) {
+ return;
+ }
+ Logger.d( TAG, "acc status: %s", state );
+ MarkerServiceHandler.getMogoStatusManager().setAccStatus( ServiceConst.TYPE, accOn );
}
}
}
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 9595d20a9b..1d0189338f 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
@@ -77,7 +77,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
private Rect mMarkerDisplayBounds;
private MapMarkerManager() {
- mContext = AbsMogoApplication.getApp();
}
public static synchronized MapMarkerManager getInstance() {
@@ -96,6 +95,14 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
* @param context
*/
public void init( Context context ) {
+
+ if ( mContext != null ) {
+ return;
+ }
+
+ Logger.d( TAG, "初始化" );
+
+ mContext = context.getApplicationContext();
mRefreshModel = new RefreshModel( mContext );
// 长连接
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/impl/AbsV2XScenario.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/impl/AbsV2XScenario.java
index 0a792aa42a..11bf1e6c79 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/impl/AbsV2XScenario.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/impl/AbsV2XScenario.java
@@ -7,14 +7,14 @@ import androidx.annotation.Nullable;
import com.mogo.commons.voice.AIAssist;
import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
import com.mogo.commons.voice.VoicePreemptType;
+import com.mogo.module.common.entity.V2XMessageEntity;
import com.mogo.module.v2x.V2XConst;
import com.mogo.module.v2x.V2XServiceManager;
-import com.mogo.module.common.entity.V2XMessageEntity;
+import com.mogo.module.v2x.manager.IMoGoV2XStatusManager;
import com.mogo.module.v2x.scenario.IV2XScenario;
import com.mogo.module.v2x.scenario.view.IV2XButton;
import com.mogo.module.v2x.scenario.view.IV2XMarker;
import com.mogo.module.v2x.scenario.view.IV2XWindow;
-import com.mogo.module.v2x.manager.IMoGoV2XStatusManager;
import com.mogo.module.v2x.utils.V2XUtils;
import com.mogo.utils.logger.Logger;
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/seek/V2XSeekHelpScenario.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/seek/V2XSeekHelpScenario.java
index 360e47f296..4e2041f9a5 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/seek/V2XSeekHelpScenario.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/seek/V2XSeekHelpScenario.java
@@ -60,6 +60,7 @@ public class V2XSeekHelpScenario extends AbsV2XScenario> i
V2XRoadEventEntity eventEntity = new V2XRoadEventEntity();
eventEntity.setPoiType(V2XPoiTypeEnum.ALERT_CAR_TROUBLE_WARNING + "");
eventEntity.setExpireTime(30000);
+ eventEntity.setTts("发现其他车主的求助信息");
eventEntity.setAlarmContent("其他车主求助");
ADASUtils.broadcastToADAS(V2XServiceManager.getContext(), eventEntity);