This commit is contained in:
wangcongtao
2020-03-14 17:28:35 +08:00
parent 64048f48dd
commit 22d67860b1
12 changed files with 179 additions and 16 deletions

View File

@@ -225,6 +225,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
mMogoMapService.getHostListenerRegister().registerHostNaviListener( mMogoModuleHandler );
mMogoMapService.getHostListenerRegister().registerHostAimlessModeListener( mMogoModuleHandler );
mMogoMapService.getHostListenerRegister().registerMarkerClickListener( this );
mMogoMapService.getNavi( this ).registerCarLocationChangedListener( mMogoModuleHandler );
}
mMogoModuleHandler.setMapLoadedCallback( () -> {

View File

@@ -6,6 +6,7 @@ import com.mogo.map.location.IMogoLocationListener;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.IMogoMarkerClickListener;
import com.mogo.map.navi.IMogoAimlessModeListener;
import com.mogo.map.navi.IMogoCarLocationChangedListener;
import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.service.module.IMogoModuleProvider;
@@ -24,7 +25,8 @@ public interface MogoModulesHandler extends IMogoMapListener,
IMogoNaviListener,
IMogoLocationListener,
IMogoMarkerClickListener,
IMogoAimlessModeListener {
IMogoAimlessModeListener,
IMogoCarLocationChangedListener {
/**
* 地图加载完成回调

View File

@@ -17,6 +17,7 @@ import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.IMogoMarkerClickListener;
import com.mogo.map.model.MogoPoi;
import com.mogo.map.navi.IMogoAimlessModeListener;
import com.mogo.map.navi.IMogoCarLocationChangedListener;
import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.map.navi.MogoCongestionInfo;
import com.mogo.map.navi.MogoNaviInfo;
@@ -624,8 +625,12 @@ public class MogoModulesManager implements MogoModulesHandler,
}
while ( iterator.hasNext() ) {
IMogoAimlessModeListener listener = iterator.next();
if ( listener == null ) {
listener.onUpdateTraffic2( traffic );
if ( listener != null ) {
try {
listener.onUpdateTraffic2( traffic );
} catch ( Exception e ) {
e.printStackTrace();
}
}
}
}
@@ -638,8 +643,30 @@ public class MogoModulesManager implements MogoModulesHandler,
}
while ( iterator.hasNext() ) {
IMogoAimlessModeListener listener = iterator.next();
if ( listener == null ) {
listener.onUpdateCongestion( info );
if ( listener != null ) {
try {
listener.onUpdateCongestion( info );
} catch ( Exception e ) {
e.printStackTrace();
}
}
}
}
@Override
public void onCarLocationChanged( MogoLatLng latLng ) {
Iterator< IMogoCarLocationChangedListener > iterator = MogoRegisterCenterHandler.getInstance().getCarLocationChangedListener();
if ( iterator == null ) {
return;
}
while ( iterator.hasNext() ) {
IMogoCarLocationChangedListener listener = iterator.next();
if ( listener != null ) {
try {
listener.onCarLocationChanged( latLng );
} catch ( Exception e ) {
e.printStackTrace();
}
}
}
}

View File

@@ -7,6 +7,7 @@ import com.mogo.map.listener.IMogoMapListener;
import com.mogo.map.location.IMogoLocationListener;
import com.mogo.map.marker.IMogoMarkerClickListener;
import com.mogo.map.navi.IMogoAimlessModeListener;
import com.mogo.map.navi.IMogoCarLocationChangedListener;
import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.module.IMogoModuleLifecycle;
@@ -73,12 +74,22 @@ public class MogoRegisterCenter implements IMogoRegisterCenter {
@Override
public void registerMogoAimlessModeListener( String tag, IMogoAimlessModeListener listener ) {
MogoRegisterCenterHandler.getInstance().registerMogoAimlessModeListener( tag, listener );
}
@Override
public void unregisterMogoAimlessModeListener( String tag ) {
MogoRegisterCenterHandler.getInstance().unregisterMogoAimlessModeListener( tag );
}
@Override
public void registerCarLocationChangedListener( String tag, IMogoCarLocationChangedListener listener ) {
MogoRegisterCenterHandler.getInstance().registerCarLocationChangedListener( tag, listener);
}
@Override
public void unregisterCarLocationChangedListener( String tag, IMogoCarLocationChangedListener listener ) {
MogoRegisterCenterHandler.getInstance().unregisterCarLocationChangedListener( tag, listener );
}
@Override

View File

@@ -6,6 +6,7 @@ import com.mogo.map.listener.IMogoMapListener;
import com.mogo.map.location.IMogoLocationListener;
import com.mogo.map.marker.IMogoMarkerClickListener;
import com.mogo.map.navi.IMogoAimlessModeListener;
import com.mogo.map.navi.IMogoCarLocationChangedListener;
import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.service.module.IMogoModuleLifecycle;
import com.mogo.service.module.IMogoRegisterCenter;
@@ -30,6 +31,7 @@ public class MogoRegisterCenterHandler implements IMogoRegisterCenter {
private Map< String, IMogoLocationListener > mLocation = new HashMap<>();
private Map< String, IMogoMarkerClickListener > mMarker = new HashMap<>();
private Map< String, IMogoAimlessModeListener > mAimless = new HashMap<>();
private Map< String, IMogoCarLocationChangedListener > mCarLocations = new HashMap<>();
private MogoRegisterCenterHandler() {
}
@@ -110,6 +112,16 @@ public class MogoRegisterCenterHandler implements IMogoRegisterCenter {
mAimless.remove( tag );
}
@Override
public void registerCarLocationChangedListener( String tag, IMogoCarLocationChangedListener listener ) {
mCarLocations.put( tag, listener );
}
@Override
public void unregisterCarLocationChangedListener( String tag, IMogoCarLocationChangedListener listener ) {
mCarLocations.remove( tag );
}
@Override
public void init( Context context ) {
}
@@ -157,4 +169,11 @@ public class MogoRegisterCenterHandler implements IMogoRegisterCenter {
public Iterator< IMogoAimlessModeListener > getAimlessModeListeners() {
return mAimless.values().iterator();
}
public Iterator< IMogoCarLocationChangedListener > getCarLocationChangedListener() {
return mCarLocations.values().iterator();
}
}