diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java index 94d0591dec..0372f8297e 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java @@ -475,14 +475,6 @@ public class AMapNaviViewWrapper implements IMogoMapView, style.strokeWidth( 0 ); style.radiusFillColor( Color.TRANSPARENT ); mMapView.getMap().setMyLocationStyle( style ); - mMapView.getMap().setOnMyLocationChangeListener( - new AMap.OnMyLocationChangeListener() { - @Override - public void onMyLocationChange( Location location ) { - Logger.d( TAG, location.toString() ); - } - } - ); } } diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/ModuleNames.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/ModuleNames.java new file mode 100644 index 0000000000..3fce1420ee --- /dev/null +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/ModuleNames.java @@ -0,0 +1,41 @@ +package com.mogo.module.common; + +/** + * @author congtaowang + * @since 2020-03-13 + *
+ * 各个卡片模块类型
+ */
+public class ModuleNames {
+
+ /**
+ * 卡片 车聊聊
+ */
+ public static final String CARD_TYPE_CARS_CHATTING = "CARD_TYPE_CARS_CHATTING";
+
+ /**
+ * 卡片 探路数据
+ */
+ public static final String CARD_TYPE_ROAD_CONDITION = "CARD_TYPE_ROAD_CONDITION";
+
+ /**
+ * 卡片 分享音乐
+ */
+ public static final String CARD_TYPE_SHARE_MUSIC = "CARD_TYPE_SHARE_MUSIC";
+
+ /**
+ * 卡片 用户数据
+ */
+ public static final String CARD_TYPE_USER_DATA = "CARD_TYPE_USER_DATA";
+
+ /**
+ * 卡片 新鲜事
+ */
+ public static final String CARD_TYPE_NOVELTY = "CARD_TYPE_NOVELTY";
+
+ /**
+ * 运营位
+ */
+ public static final String CARD_TYPE_BUSINESS_OPERATION = "CARD_TYPE_BUSINESS_OPERATION";
+
+}
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java
index 4e040f1241..f77139d2ee 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java
@@ -201,17 +201,21 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
@Override
protected void onCreate( @Nullable Bundle savedInstanceState ) {
super.onCreate( savedInstanceState );
+ init();
mPresenter.postLoadModuleMsg();
}
+ private void init(){
+ mServiceApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation();
+ mMogoStatusManager = mServiceApis.getStatusManagerApi();
+ }
+
@Override
public void loadModules() {
final long start = System.currentTimeMillis();
getWindow().setBackgroundDrawable( null );
- mServiceApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation();
-
MogoModulePaths.addModule( new MogoModule( ServiceConst.PATH_REFRESH_STRATEGY, ServiceConst.PATH_REFRESH_STRATEGY ) );
mMogoModuleHandler = new MogoModulesManager( this );
@@ -255,7 +259,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
}
} );
- mMogoStatusManager = mServiceApis.getStatusManagerApi();
Log.i( "timer", "cost " + ( System.currentTimeMillis() - start ) + "ms" );
}
@@ -344,12 +347,14 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
protected void onResume() {
MapBroadCastHelper.getInstance( this ).mapFrount();
super.onResume();
+ mMogoStatusManager.setMainPageResumeStatus( TAG, true );
}
@Override
protected void onPause() {
MapBroadCastHelper.getInstance( this ).mapBackground();
super.onPause();
+ mMogoStatusManager.setMainPageResumeStatus( TAG, false );
}
@Override
diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java
index 92ded46767..01a06696a9 100644
--- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java
+++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java
@@ -71,6 +71,7 @@ public class MapPresenter extends Presenter
* 描述
*/
-public class MogoFlipContentHandler implements IMogoActionManager {
+public class MogoActionHandler implements IMogoActionManager {
- private MogoFlipContentHandler() {
+ private static final String TAG = "MogoActionHandler";
+
+ private MogoActionHandler() {
// private constructor
}
private static final class InstanceHolder {
- private static final MogoFlipContentHandler INSTANCE = new MogoFlipContentHandler();
+ private static final MogoActionHandler INSTANCE = new MogoActionHandler();
}
- public static MogoFlipContentHandler getInstance() {
+ public static MogoActionHandler getInstance() {
return InstanceHolder.INSTANCE;
}
@@ -68,6 +71,7 @@ public class MogoFlipContentHandler implements IMogoActionManager {
@Override
public void invoke( String biz, MogoAction action ) {
+ Logger.d( TAG, "dispatch action %s to %s", action, biz );
if ( !mListeners.containsKey( biz ) ) {
return;
}
@@ -77,7 +81,11 @@ public class MogoFlipContentHandler implements IMogoActionManager {
while ( iterator.hasNext() ) {
IMogoActionListener listener = iterator.next();
if ( listener != null ) {
- listener.onActionDone( action );
+ try {
+ listener.onActionDone( action );
+ } catch ( Exception e ) {
+ e.printStackTrace();
+ }
}
}
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/flipcontent/MogoActionManager.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/actionmanager/MogoActionManager.java
similarity index 70%
rename from modules/mogo-module-service/src/main/java/com/mogo/module/service/flipcontent/MogoActionManager.java
rename to modules/mogo-module-service/src/main/java/com/mogo/module/service/actionmanager/MogoActionManager.java
index 648188904c..69e7cca49c 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/flipcontent/MogoActionManager.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/actionmanager/MogoActionManager.java
@@ -1,4 +1,4 @@
-package com.mogo.module.service.flipcontent;
+package com.mogo.module.service.actionmanager;
import android.content.Context;
@@ -19,21 +19,21 @@ public class MogoActionManager implements IMogoActionManager {
@Override
public void registerActionListener( String biz, IMogoActionListener listener ) {
- MogoFlipContentHandler.getInstance().registerActionListener( biz, listener );
+ MogoActionHandler.getInstance().registerActionListener( biz, listener );
}
@Override
public void unregisterActionListener( String biz, IMogoActionListener listener ) {
- MogoFlipContentHandler.getInstance().unregisterActionListener( biz, listener );
+ MogoActionHandler.getInstance().unregisterActionListener( biz, listener );
}
@Override
public void invoke( String biz, MogoAction action ) {
- MogoFlipContentHandler.getInstance().invoke( biz, action );
+ MogoActionHandler.getInstance().invoke( biz, action );
}
@Override
public void init( Context context ) {
- MogoFlipContentHandler.getInstance().init( context );
+ MogoActionHandler.getInstance().init( context );
}
}
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 f42faa84ae..b38ad563c3 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
@@ -2,11 +2,9 @@ package com.mogo.module.service.marker;
import android.content.Context;
import android.text.TextUtils;
-import android.view.TextureView;
import android.view.animation.BounceInterpolator;
import android.view.animation.OvershootInterpolator;
-import com.alibaba.idst.nls.internal.utils.L;
import com.mogo.map.MogoLatLng;
import com.mogo.map.location.MogoLocation;
import com.mogo.map.marker.IMogoMarker;
@@ -108,14 +106,12 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
|| TextUtils.equals( mCurrentModuleName, ServiceConst.CARD_TYPE_BUSINESS_OPERATION ) )
&& mIsMarkerClicked ) {
mIsMarkerClicked = false;
- runOnTargetThread( () -> {
- // 在广告位(默认位置)点击marker造成卡片切换的,还是现实全部marker 【需求:os2.0.2-2.5-4】
- highlightedMarker( moduleName, false );
- mCurrentModuleName = moduleName;
- } );
+ // 在广告位(默认位置)点击marker造成卡片切换的,还是现实全部marker 【需求:os2.0.2-2.5-4】
+ highlightedMarker( moduleName, false );
+ mCurrentModuleName = moduleName;
} else {
+ mCurrentModuleName = moduleName;
runOnTargetThread( () -> {
- mCurrentModuleName = moduleName;
MarkerServiceHandler.getMarkerManager().removeMarkers();
drawMarkerByCurrentType( mLastDataResult );
} );
@@ -326,27 +322,26 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
}
// 解析不同的Marker类型,然后对应的进行绘制
- if ( response != null && response.getResult() != null ) {
- mLastDataResult = response.getResult();
+ mLastDataResult = response.getResult();
+ dispatchDataToBiz();
- // 语音触发的在线车辆搜索,采用增量的形式绘制
- if ( mIsAISearchOnlineData = isOnlineCarDataOnly( mLastDataResult ) ) {
- MarkerServiceHandler.getMarkerManager().removeMarkers( ServiceConst.CARD_TYPE_USER_DATA );
- MarkerServiceHandler.getMogoCardManager().switch2( ServiceConst.CARD_TYPE_USER_DATA );
- } else {
- mLastCheckMarker = null;
- // 清空所有地图上绘制的Marker
- MarkerServiceHandler.getMarkerManager().removeMarkers();
- }
+ // 语音触发的在线车辆搜索,采用增量的形式绘制
+ if ( mIsAISearchOnlineData = isOnlineCarDataOnly( mLastDataResult ) ) {
+ MarkerServiceHandler.getMarkerManager().removeMarkers( ServiceConst.CARD_TYPE_USER_DATA );
+ MarkerServiceHandler.getMogoCardManager().switch2( ServiceConst.CARD_TYPE_USER_DATA );
+ } else {
+ mLastCheckMarker = null;
+ // 清空所有地图上绘制的Marker
+ MarkerServiceHandler.getMarkerManager().removeMarkers();
+ }
- drawMarkerByCurrentType( mLastDataResult );
- // 同步新绘制的气泡状态
- alreadySmallMarker.clear();
+ drawMarkerByCurrentType( mLastDataResult );
+ // 同步新绘制的气泡状态
+ alreadySmallMarker.clear();
// highlightedMarker( mCurrentModuleName, true );
- trackData( mLastDataResult );
- }
+ trackData( mLastDataResult );
}
/**
@@ -431,10 +426,8 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
private void drawOnlineCarMarkers( List< MarkerOnlineCar > onlineCarList, int maxAmount ) {
// 将数据同步给在线车辆,避免每次 perform 的时候去拉取,造成消耗
if ( onlineCarList == null || onlineCarList.isEmpty() ) {
- dispatchDataToBiz( ServiceConst.CARD_TYPE_USER_DATA, new ArrayList<>() );
return;
}
- dispatchDataToBiz( ServiceConst.CARD_TYPE_USER_DATA, onlineCarList );
double nearlyDistance = Float.MAX_VALUE;
int size = getAppropriateSize( maxAmount, onlineCarList );
for ( int i = 0; i < size; i++ ) {
@@ -496,7 +489,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
*/
private void drawRoadConditionMarker( List< MarkerExploreWay > exploreWayList, int maxAmount ) {
// 将数据同步给探路,避免探路每次 perform 的时候去拉取,造成消耗
- dispatchDataToBiz( ServiceConst.CARD_TYPE_ROAD_CONDITION, exploreWayList );
if ( exploreWayList == null || exploreWayList.isEmpty() ) {
return;
}
@@ -547,7 +539,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
* @param noveltyInfoList
*/
private void drawNoveltyMarker( List< MarkerNoveltyInfo > noveltyInfoList, int maxAmount ) {
- dispatchDataToBiz( ServiceConst.CARD_TYPE_NOVELTY, noveltyInfoList );
if ( noveltyInfoList == null ) {
return;
}
@@ -642,13 +633,30 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
}
}
+ /**
+ * 分发数据到各个业务模块
+ *
+ * 仅在数据刷新的时候分发
+ */
+ private void dispatchDataToBiz() {
+ if ( mLastDataResult == null ) {
+ return;
+ }
+ List< MarkerOnlineCar > onlineCarList = mLastDataResult.getOnlineCar();
+ List< MarkerExploreWay > exploreWayList = mLastDataResult.getExploreWay();
+ List< MarkerNoveltyInfo > noveltyInfoList = mLastDataResult.getNoveltyInfo();
+ dispatchDataToBiss( ServiceConst.CARD_TYPE_USER_DATA, onlineCarList == null ? new ArrayList<>() : onlineCarList );
+ dispatchDataToBiss( ServiceConst.CARD_TYPE_ROAD_CONDITION, exploreWayList == null ? new ArrayList<>() : exploreWayList );
+ dispatchDataToBiss( ServiceConst.CARD_TYPE_NOVELTY, noveltyInfoList == null ? new ArrayList<>() : noveltyInfoList );
+ }
+
/**
* 数据分发
*
* @param biz
* @param object
*/
- private void dispatchDataToBiz( String biz, Object object ) {
+ private void dispatchDataToBiss( String biz, Object object ) {
if ( TextUtils.isEmpty( biz ) ) {
return;
}
@@ -683,7 +691,12 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
* @return 绘制的Marker
*/
public synchronized IMogoMarker drawMapMarker( MarkerShowEntity markerShowEntity ) {
- return drawMapMarker( markerShowEntity, isSmallType() );
+ try {
+ return drawMapMarker( markerShowEntity, isSmallType() );
+ } catch ( Exception e ) {
+ e.printStackTrace();
+ return null;
+ }
}
private boolean isSmallType() {
@@ -694,35 +707,28 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
}
private IMogoMarker drawMapMarker( MarkerShowEntity markerShowEntity, boolean isSmall ) {
- //Logger.i(TAG, "绘制Marker====drawMapMarker:" + markerShowEntity);
- try {
- if ( markerShowEntity.getMarkerLocation() != null ) {
- MogoMarkerOptions options = new MogoMarkerOptions()
- .owner( markerShowEntity.getMarkerType() )
- .object( markerShowEntity )
- .latitude( markerShowEntity.getMarkerLocation().getLat() )
- .longitude( markerShowEntity.getMarkerLocation().getLon() );
- IMarkerView markerView = MapMarkerAdapter.getMarkerView( mContext, markerShowEntity, options );
- options.icon( markerView.getView() );
-
- IMogoMarker marker = MarkerServiceHandler.getMarkerManager().addMarker( markerShowEntity.getMarkerType(), options );
- marker.setOwner( markerShowEntity.getMarkerType() );
- markerView.setMarker( marker );
- marker.setOnMarkerClickListener( this );
-
- if ( isSmall ) {
- List< IMogoMarker > markers = new ArrayList<>();
- markers.add( marker );
- setMarkersSmall( markers );
- }
- return marker;
- } else {
- Logger.e( TAG, "Location 必须进行初始化!!!!!" );
- }
- } catch ( Exception e ) {
- e.printStackTrace();
+ if ( markerShowEntity == null || markerShowEntity.getMarkerLocation() == null ) {
+ return null;
}
- return null;
+ MogoMarkerOptions options = new MogoMarkerOptions()
+ .owner( markerShowEntity.getMarkerType() )
+ .object( markerShowEntity )
+ .latitude( markerShowEntity.getMarkerLocation().getLat() )
+ .longitude( markerShowEntity.getMarkerLocation().getLon() );
+ IMarkerView markerView = MapMarkerAdapter.getMarkerView( mContext, markerShowEntity, options );
+ options.icon( markerView.getView() );
+
+ IMogoMarker marker = MarkerServiceHandler.getMarkerManager().addMarker( markerShowEntity.getMarkerType(), options );
+ marker.setOwner( markerShowEntity.getMarkerType() );
+ markerView.setMarker( marker );
+ marker.setOnMarkerClickListener( this );
+
+ if ( isSmall ) {
+ List< IMogoMarker > markers = new ArrayList<>();
+ markers.add( marker );
+ setMarkersSmall( markers );
+ }
+ return marker;
}
@@ -733,12 +739,13 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
@Override
public void onMsgReceived( final MarkerResponse response ) {
- if ( !ignoreDrawRequest() ) {
- Logger.d( TAG, "接收到了地图大而全数据" );
- runOnTargetThread( () -> {
- drawMapMarker( response );
- } );
+ if ( ignoreDrawRequest() ) {
+ return;
}
+ Logger.d( TAG, "接收到了地图大而全数据" );
+ runOnTargetThread( () -> {
+ drawMapMarker( response );
+ } );
}
private boolean ignoreDrawRequest() {
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java b/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java
index b9a99cd103..03963acd6e 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java
@@ -141,9 +141,9 @@ public interface IMogoServiceApis extends IProvider {
IMogoADASController getAdasControllerApi();
/**
- * 内容翻页
+ * 动作控制
*
* @return
*/
- IMogoActionManager getFlipContentManager();
+ IMogoActionManager getActionManagerApi();
}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java
index f5c0675255..de985d48cc 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java
@@ -66,6 +66,12 @@ public interface IMogoStatusManager extends IProvider {
*/
boolean isAppListUIShow();
+ /**
+ * 主页是否显示
+ * @return
+ */
+ boolean isMainPageOnResume();
+
/**
* 设置小智语音UI状态
*
@@ -127,6 +133,13 @@ public interface IMogoStatusManager extends IProvider {
*/
void setAppListUIShow( String tag, boolean isShow );
+ /**
+ * 主页 resume 状态
+ * @param tag
+ * @param resume
+ */
+ void setMainPageResumeStatus(String tag, boolean resume);
+
/**
* 注册监听
*
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/StatusDescriptor.java b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/StatusDescriptor.java
index 53b4b38000..bbd0f55805 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/StatusDescriptor.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/StatusDescriptor.java
@@ -46,5 +46,10 @@ public enum StatusDescriptor {
/**
* app 列表
*/
- APP_LIST_UI;
+ APP_LIST_UI,
+
+ /**
+ * 主页 resume 状态
+ */
+ MAIN_PAGE_RESUME;
}
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java b/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java
index 966d3d9fb6..e9f4b6942b 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java
@@ -131,7 +131,7 @@ public class MogoServiceApis implements IMogoServiceApis {
}
@Override
- public IMogoActionManager getFlipContentManager() {
+ public IMogoActionManager getActionManagerApi() {
return getApiInstance( IMogoActionManager.class, MogoServicePaths.PATH_ACTION_APIS );
}
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java b/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java
index 9293a3cbf2..4802a529cb 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java
@@ -89,6 +89,11 @@ public class MogoStatusManager implements IMogoStatusManager {
return get_bool_val( StatusDescriptor.APP_LIST_UI );
}
+ @Override
+ public boolean isMainPageOnResume() {
+ return get_bool_val( StatusDescriptor.MAIN_PAGE_RESUME );
+ }
+
private boolean get_bool_val( StatusDescriptor descriptor ) {
Boolean val = mStatus.get( descriptor );
return val == null ? false : val;
@@ -153,6 +158,13 @@ public class MogoStatusManager implements IMogoStatusManager {
recordStatusModifier( tag, StatusDescriptor.APP_LIST_UI );
}
+ @Override
+ public void setMainPageResumeStatus( String tag, boolean resume ) {
+ mStatus.put( StatusDescriptor.MAIN_PAGE_RESUME, resume );
+ invokeStatusChangedListener( StatusDescriptor.MAIN_PAGE_RESUME, resume );
+ recordStatusModifier( tag, StatusDescriptor.MAIN_PAGE_RESUME );
+ }
+
private void invokeStatusChangedListener( StatusDescriptor descriptor, boolean status ) {
if ( mListeners.containsKey( descriptor ) ) {
Iterator< IMogoStatusChangedListener > iterator = mListeners.get( descriptor ).iterator();