opt
This commit is contained in:
@@ -6,6 +6,7 @@ import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.datamanager.IMogoDataChangedListener;
|
||||
import com.mogo.service.datamanager.IMogoDataManager;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
@@ -21,6 +22,8 @@ import java.util.Map;
|
||||
*/
|
||||
public class MogoDataHandler {
|
||||
|
||||
private static final String TAG = "MogoDataHandler";
|
||||
|
||||
private Map< String, List< IMogoDataChangedListener > > mListeners = new HashMap<>();
|
||||
|
||||
private MogoDataHandler() {
|
||||
@@ -42,6 +45,7 @@ public class MogoDataHandler {
|
||||
if ( !mListeners.containsKey( tag ) || mListeners.get( tag ) == null ) {
|
||||
mListeners.put( tag, new ArrayList< IMogoDataChangedListener >() );
|
||||
}
|
||||
mListeners.get( tag ).add( listener );
|
||||
}
|
||||
|
||||
public synchronized void unregisterListener( String tag, IMogoDataChangedListener listener ) {
|
||||
@@ -53,16 +57,20 @@ public class MogoDataHandler {
|
||||
}
|
||||
}
|
||||
|
||||
public void invoke( String tag, List< Object > datums ) {
|
||||
if ( tag == null ) {
|
||||
public void invoke( String tag, Object data ) {
|
||||
if ( tag == null || mListeners.get( tag ) == null ) {
|
||||
return;
|
||||
}
|
||||
Iterator< IMogoDataChangedListener > iterator = mListeners.get( tag ).iterator();
|
||||
while ( iterator.hasNext() ) {
|
||||
IMogoDataChangedListener listener = iterator.next();
|
||||
if ( listener != null ) {
|
||||
listener.onDataSetChanged( datums );
|
||||
try {
|
||||
Iterator< IMogoDataChangedListener > iterator = mListeners.get( tag ).iterator();
|
||||
while ( iterator.hasNext() ) {
|
||||
IMogoDataChangedListener listener = iterator.next();
|
||||
if ( listener != null ) {
|
||||
listener.onDataSetChanged( data );
|
||||
}
|
||||
}
|
||||
} catch( Exception e ){
|
||||
Logger.e(TAG, e, "error.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@ import com.mogo.module.common.entity.MarkerShowEntity;
|
||||
import com.mogo.module.service.MarkerServiceHandler;
|
||||
import com.mogo.module.service.ServiceConst;
|
||||
import com.mogo.module.service.Utils;
|
||||
import com.mogo.module.service.datamanager.MogoDataHandler;
|
||||
import com.mogo.service.cardmanager.IMogoCardChangedListener;
|
||||
import com.mogo.service.connection.IMogoOnMessageListener;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
@@ -325,6 +326,8 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag
|
||||
}
|
||||
}
|
||||
|
||||
// 将数据同步给探路,避免探路每次 perform 的时候去拉取,造成消耗
|
||||
MogoDataHandler.getInstance().invoke( ServiceConst.CARD_TYPE_ROAD_CONDITION, exploreWayList);
|
||||
if (exploreWayList != null) {
|
||||
for (MarkerExploreWay markerExploreWay : exploreWayList) {
|
||||
if (!markerExploreWay.getCanLive()) {
|
||||
|
||||
Reference in New Issue
Block a user