[Add function]重构了当前位置获取的监听方式;

// 订阅监听
 CallerMapLocationListenerManager.addListener(TAG, IMoGoMapLocationListener)

 // 主动查询
 CallerMapLocationListenerManager.INSTANCE.getCurrentLocation()

Signed-off-by: donghongyu <donghongyu@zhidaoauto.com>
This commit is contained in:
donghongyu
2021-11-09 20:41:21 +08:00
parent cde1338251
commit d915d60a7d
15 changed files with 146 additions and 37 deletions

View File

@@ -23,7 +23,9 @@ import com.mogo.commons.constants.SharedPrefsConstants;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
import com.mogo.eagle.core.data.map.MogoLatLng;
import com.mogo.eagle.core.data.map.MogoLocation;
import com.mogo.eagle.core.function.call.map.CallerLocationUpdaterManager;
import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager;
import com.mogo.eagle.core.utilcode.mogo.toast.TipToast;
import com.mogo.map.IMogoMap;
import com.mogo.map.IMogoMapView;
@@ -732,6 +734,9 @@ public class AMapViewWrapper implements IMogoMapView,
@Override
public void onLocationChanged(@NotNull com.zhidaoauto.map.sdk.open.location.MogoLocation location) {
MogoLocation mLastLocation = ObjectUtils.fromLocation(location);
CallerMapLocationListenerManager.INSTANCE.invokeMapLocationChangeListener(mLastLocation);
Location sysLocation = new Location(location.getProvider());
sysLocation.setAltitude(location.getAltitude());
sysLocation.setLatitude(location.getLat());

View File

@@ -3,6 +3,7 @@ package com.mogo.map.impl.custom.location;
import android.content.Context;
import android.os.Trace;
import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager;
import com.mogo.map.impl.custom.utils.ObjectUtils;
import com.mogo.map.location.IMogoLocationClient;
import com.mogo.map.location.IMogoLocationListener;
@@ -122,6 +123,7 @@ public class ALocationClient implements IMogoLocationClient {
}
Trace.beginSection( "timer.onLocationChanged" );
mLastLocation = ObjectUtils.fromLocation( location );
CallerMapLocationListenerManager.INSTANCE.invokeMapLocationChangeListener(mLastLocation);
Set< IMogoLocationListener > listeners = MogoLocationListenerRegister.getInstance().getListeners();
synchronized ( listeners ) {
Iterator< IMogoLocationListener > listenerIterator = listeners.iterator();