opt
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
package com.mogo.module.tanlu.callback;
|
||||
|
||||
import com.mogo.service.datamanager.IMogoDataChangedListener;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020-02-12
|
||||
* <p>
|
||||
* 描述
|
||||
*/
|
||||
public class DataSetChangedAdapter implements IMogoDataChangedListener {
|
||||
|
||||
private Object mData;
|
||||
|
||||
private DataSetChangedAdapter(){
|
||||
// private constructor
|
||||
}
|
||||
|
||||
private static final class InstanceHolder{
|
||||
private static final DataSetChangedAdapter INSTANCE = new DataSetChangedAdapter();
|
||||
}
|
||||
|
||||
private IMogoDataChangedListener mDelegate;
|
||||
|
||||
public void setDelegate( IMogoDataChangedListener delegate ) {
|
||||
this.mDelegate = delegate;
|
||||
}
|
||||
|
||||
public static DataSetChangedAdapter getInstance(){
|
||||
return InstanceHolder.INSTANCE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDataSetChanged( Object data ) {
|
||||
mData = data;
|
||||
if ( mDelegate != null ) {
|
||||
mDelegate.onDataSetChanged( data );
|
||||
}
|
||||
}
|
||||
|
||||
public Object getData() {
|
||||
return mData;
|
||||
}
|
||||
}
|
||||
@@ -55,6 +55,7 @@ import com.mogo.module.common.entity.MarkerUserInfo;
|
||||
import com.mogo.module.service.receiver.MogoReceiver;
|
||||
import com.mogo.module.share.ShareControl;
|
||||
import com.mogo.module.tanlu.R;
|
||||
import com.mogo.module.tanlu.callback.DataSetChangedAdapter;
|
||||
import com.mogo.module.tanlu.callback.NaviCallback;
|
||||
import com.mogo.module.tanlu.callback.RoadLineCallback;
|
||||
import com.mogo.module.tanlu.callback.UploadShareCallback;
|
||||
@@ -77,6 +78,8 @@ import com.mogo.module.tanlu.view.AutoZoomInImageView;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.analytics.IMogoAnalytics;
|
||||
import com.mogo.service.cardmanager.IMogoCardManager;
|
||||
import com.mogo.service.datamanager.IMogoDataChangedListener;
|
||||
import com.mogo.service.datamanager.IMogoDataManager;
|
||||
import com.mogo.service.fragmentmanager.IMogoFragmentManager;
|
||||
import com.mogo.service.imageloader.IMogoImageLoaderListener;
|
||||
import com.mogo.service.imageloader.IMogoImageloader;
|
||||
@@ -117,7 +120,8 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
|
||||
IMogoMapListener,
|
||||
IMogoPoiSearchListener,
|
||||
IMogoLocationListener,
|
||||
View.OnClickListener {
|
||||
View.OnClickListener,
|
||||
IMogoDataChangedListener {
|
||||
|
||||
private static final String TAG = "TanluCardViewFragment";
|
||||
SimpleCoverVideoPlayer simpleCoverVideoPlayer;
|
||||
@@ -295,6 +299,7 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
|
||||
}
|
||||
}
|
||||
});
|
||||
DataSetChangedAdapter.getInstance().setDelegate( this );
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -307,6 +312,8 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
|
||||
initMap();
|
||||
initStrings();
|
||||
initListener();
|
||||
// 数据先到,卡片后创建
|
||||
initData( DataSetChangedAdapter.getInstance().getData() );
|
||||
}
|
||||
|
||||
private void initModelData() {
|
||||
@@ -744,23 +751,20 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
|
||||
|
||||
isCurrentPage = true;
|
||||
Logger.d(TAG, "tanlu卡片 onPerform 有效 ---->");
|
||||
mMarkerManager = mMogoMapService.getMarkerManager(getActivity());
|
||||
List<IMogoMarker> markers = mMarkerManager.getMarkers(TanluConstants.MODEL_NAME);
|
||||
renderCardViews();
|
||||
}
|
||||
|
||||
if (markers != null && markers.size() > 0) {
|
||||
/**
|
||||
* 根究数据展示页面
|
||||
*/
|
||||
private void renderCardViews(){
|
||||
if (markerExploreWayList != null && markerExploreWayList.size() > 0) {
|
||||
mEmptyLayout.setVisibility(View.GONE);
|
||||
mRootLayout.setVisibility(View.VISIBLE);
|
||||
Logger.d(TAG, "onPerform markers.size() =" + markers.size());
|
||||
for (int i = 0; i < markers.size(); i++) {
|
||||
MarkerExploreWay exploreWay = extractFromMarker(markers.get(i));
|
||||
if (exploreWay == null) {
|
||||
break;
|
||||
}
|
||||
markerExploreWayList.add(exploreWay);
|
||||
}
|
||||
Logger.d(TAG, "onPerform markers.size() =" + markerExploreWayList.size());
|
||||
|
||||
Log.d("TAG", "tanlu卡片 onPerform 有效 markerExploreWayList.size() =" + markerExploreWayList.size());
|
||||
if (markers.size() == 1) {
|
||||
if (markerExploreWayList.size() == 1) {
|
||||
mPreviousTv.setVisibility(View.GONE);
|
||||
mNextTv.setVisibility(View.GONE);
|
||||
} else {
|
||||
@@ -778,6 +782,28 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDataSetChanged( Object data ) {
|
||||
Logger.d( TAG, "receive data changed." );
|
||||
initData( data );
|
||||
if ( isCurrentPage ) {
|
||||
renderCardViews();
|
||||
}
|
||||
}
|
||||
|
||||
private void initData(Object data ){
|
||||
if ( markerExploreWayList != null ) {
|
||||
markerExploreWayList.clear();
|
||||
} else {
|
||||
markerExploreWayList = new ArrayList<>();
|
||||
}
|
||||
try {
|
||||
markerExploreWayList.addAll( (List<MarkerExploreWay>)data );
|
||||
} catch ( Exception e ) {
|
||||
Logger.e( TAG, e, "error." );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 离开C位事件
|
||||
*/
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.mogo.map.listener.IMogoMapListener;
|
||||
import com.mogo.map.location.IMogoLocationListener;
|
||||
import com.mogo.map.marker.IMogoMarkerClickListener;
|
||||
import com.mogo.map.navi.IMogoNaviListener;
|
||||
import com.mogo.module.tanlu.callback.DataSetChangedAdapter;
|
||||
import com.mogo.service.module.IMogoModuleLifecycle;
|
||||
import com.mogo.service.module.IMogoModuleProvider;
|
||||
import com.mogo.service.module.ModuleType;
|
||||
@@ -40,6 +41,7 @@ public class TanluCardViewProvider implements IMogoModuleProvider {
|
||||
@Override
|
||||
public void init( Context context ) {
|
||||
TanluServiceHandler.init( context );
|
||||
TanluServiceHandler.getDataManager().registerDataListener( TanluConstants.MODEL_NAME, DataSetChangedAdapter.getInstance() );
|
||||
Logger.d(TAG, "init ----------> ");
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,8 @@ import com.mogo.map.search.poisearch.IMogoPoiSearch;
|
||||
import com.mogo.map.search.poisearch.query.MogoPoiSearchQuery;
|
||||
import com.mogo.map.uicontroller.IMogoMapUIController;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.datamanager.IMogoDataChangedListener;
|
||||
import com.mogo.service.datamanager.IMogoDataManager;
|
||||
import com.mogo.service.imageloader.IMogoImageloader;
|
||||
import com.mogo.service.map.IMogoMapService;
|
||||
|
||||
@@ -28,6 +30,7 @@ public class TanluServiceHandler {
|
||||
private static IMogoNavi mNavi;
|
||||
private static IMogoMapUIController mMapUIController;
|
||||
private static IMogoImageloader mImageloader;
|
||||
private static IMogoDataManager mDataManager;
|
||||
|
||||
public static void init( Context context ) {
|
||||
mMapService = ( IMogoMapService ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICES_MAP ).navigation( context );
|
||||
@@ -38,6 +41,7 @@ public class TanluServiceHandler {
|
||||
mMarkerManager = mMapService.getMarkerManager( context );
|
||||
mNavi = mMapService.getNavi( context );
|
||||
mMapUIController = mMapService.getMapUIController();
|
||||
mDataManager = (IMogoDataManager)ARouter.getInstance().build( MogoServicePaths.PATH_DATA_MANAGER ).navigation(context);
|
||||
}
|
||||
|
||||
public static IMogoMapService getMapService() {
|
||||
@@ -67,4 +71,8 @@ public class TanluServiceHandler {
|
||||
public static IMogoImageloader getImageloader() {
|
||||
return mImageloader;
|
||||
}
|
||||
|
||||
public static IMogoDataManager getDataManager() {
|
||||
return mDataManager;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user