diff --git a/.idea/misc.xml b/.idea/misc.xml
index 707ee6e613..2dc54c489f 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 515a43bb57..9172cdd059 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -153,9 +153,6 @@ dependencies {
implementation rootProject.ext.dependencies.guideshowprovider
implementation rootProject.ext.dependencies.guideshow
implementation rootProject.ext.dependencies.modulemedia
- implementation rootProject.ext.dependencies.modulefreshnews, {
- exclude group: 'com.mogo.module', module: 'module-onlinecar'
- }
implementation rootProject.ext.dependencies.modulepush, {
exclude group: 'com.mogo.module', module: 'module-common'
diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java
index 45ac48420c..3b339d9a2d 100644
--- a/app/src/main/java/com/mogo/launcher/MogoApplication.java
+++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java
@@ -9,7 +9,6 @@ import com.alibaba.android.arouter.launcher.ARouter;
import com.auto.zhidao.logsdk.CrashSystem;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.debug.DebugConfig;
-import com.mogo.launcher.news.FreshNewsConstants;
import com.mogo.module.adcard.AdCardConstants;
import com.mogo.module.back.BackToLauncherConst;
import com.mogo.module.carchatting.card.CallChatConstant;
@@ -27,8 +26,6 @@ import com.mogo.utils.logger.Logger;
import static com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant.PATH_AGREEMENT_FRAGMENT;
import static com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant.PATH_AGREEMENT_MODULE_NAME;
-import static com.mogo.module.guide.GuideConstant.PATH_GUIDE_FRAGMENT;
-import static com.mogo.module.guide.GuideConstant.PATH_GUIDE_MODULE_NAME;
/**
* @author congtaowang
@@ -51,7 +48,7 @@ public class MogoApplication extends AbsMogoApplication {
crashSystem.setDebug(BuildConfig.DEBUG);
Logger.init(BuildConfig.DEBUG ? LogLevel.DEBUG : LogLevel.OFF);
- MogoModulePaths.addModule(new MogoModule(PATH_GUIDE_FRAGMENT, PATH_GUIDE_MODULE_NAME));
+// MogoModulePaths.addModule(new MogoModule(PATH_GUIDE_FRAGMENT, PATH_GUIDE_MODULE_NAME));
MogoModulePaths.addModule(new MogoModule(PATH_AGREEMENT_FRAGMENT, PATH_AGREEMENT_MODULE_NAME));
//运营位卡片,需要默认显示,放在第一个加载
@@ -60,7 +57,6 @@ public class MogoApplication extends AbsMogoApplication {
MogoModulePaths.addModule(new MogoModule(CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME));
MogoModulePaths.addModule(new MogoModule(TanluConstants.TAG, TanluConstants.MODEL_NAME));
MogoModulePaths.addModule(new MogoModule(OnLineCarConstants.TAG, OnLineCarConstants.MODULE_NAME));
- MogoModulePaths.addModule(new MogoModule(FreshNewsConstants.TAG, FreshNewsConstants.MODULE_NAME));
MogoModulePaths.addModule(new MogoModule(V2XConst.PATH_V2X_UI, V2XConst.PATH_V2X_UI));
MogoModulePaths.addModule(new MogoModule(PushUIConstants.TAG, PushUIConstants.TAG));
diff --git a/config.gradle b/config.gradle
index e1158d2fd3..60aa4d1cf8 100644
--- a/config.gradle
+++ b/config.gradle
@@ -109,7 +109,6 @@ ext {
modulepush : "com.mogo.module:module-push:${MOGO_MODULE_PUSH_VERSION}",
//运营位卡片
moduleadcard : "com.mogo.module:module-adcard:${MOGO_MODULE_AD_CARD_VERSION}",
- modulefreshnews : "com.mogo.module:module-freshnews:${MOGO_MODULE_FRESH_NEWS_VERSION}",
//统一返回键
mogomoduleback : "com.mogo.module:module-back:${MOGO_MODULE_BACK_VERSION}",
mogomoduleauth : "com.mogo.module:module-authorize:${MOGO_MODULE_AUTHORIZE_VERSION}",
@@ -143,5 +142,7 @@ ext {
gpssimulator : "com.mogo.module:module-gps-simulator:${MOGO_MODULE_GPS_SIMULATOR_VERSION}",
gpssimulatordebug : "com.mogo.module:module-gps-simulator-debug:${MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION}",
gpssimulatornoop : "com.mogo.module:module-gps-simulator-noop:${MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION}",
+
+ adasapi : "com.zhidao.autopilot.support:adas:1.0.0-SNAPSHOT",
]
}
\ No newline at end of file
diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/IMogoVoiceCmdCallBack.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/IMogoVoiceCmdCallBack.java
index 58365cd886..eb26dc64f6 100644
--- a/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/IMogoVoiceCmdCallBack.java
+++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/IMogoVoiceCmdCallBack.java
@@ -34,33 +34,33 @@ public interface IMogoVoiceCmdCallBack {
*
* @param cmd
*/
- void onCmdSelected( String cmd );
+ default void onCmdSelected( String cmd ){}
/**
* 语音播报临时免唤醒“确定”命令
*
* @param speakText 播报内容
*/
- void onCmdAction( String speakText );
+ default void onCmdAction( String speakText ){}
/**
* 语音播报临时免唤醒“取消”命令
*
* @param speakText 播报内容
*/
- void onCmdCancel( String speakText );
+ default void onCmdCancel( String speakText ){}
/**
* 语音播报完毕
*
* @param speakText 播报内容
*/
- void onSpeakEnd( String speakText );
+ default void onSpeakEnd( String speakText ){}
/**
* 语音播报完临时命令选择超时
*
* @param speakText 播报内容
*/
- void onSpeakSelectTimeOut( String speakText );
+ default void onSpeakSelectTimeOut( String speakText ){}
}
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index b6a4fe9fdd..bf7b67a9c8 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -27,38 +27,38 @@ PASSWORD=xintai2018
RELEASE=false
# 模块版本
## 工程内模块
-MOGO_COMMONS_VERSION=1.0.3.12
-MOGO_UTILS_VERSION=1.0.3.12
-MAP_AMAP_VERSION=1.0.3.12
-MOGO_MAP_VERSION=1.0.3.12
-MOGO_MAP_API_VERSION=1.0.3.12
-MOGO_SERVICE_VERSION=1.0.3.12
-MOGO_SERVICE_API_VERSION=1.0.3.12
-MOGO_CONNECTION_VERSION=1.0.3.12
-MOGO_MODULE_APPS_VERSION=1.0.3.12
-MOGO_MODULE_NAVI_VERSION=1.0.3.12
-MOGO_MODULE_SHARE_VERSION=1.0.3.12
-MOGO_MODULE_COMMON_VERSION=1.0.3.12
-MOGO_MODULE_MAIN_VERSION=1.0.3.12
-MOGO_MODULE_MAP_VERSION=1.0.3.12
-MOGO_MODULE_SERVICE_VERSION=1.0.3.12
-MOGO_MODULE_EXTENSIONS_VERSION=1.0.3.12
-MOGO_MODULE_SEARCH_VERSION=1.0.3.12
-MOGO_MODULE_BACK_VERSION=1.0.3.12
-MOGO_MODULE_GPS_SIMULATOR_VERSION=1.0.3.12
-MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.0.3.12
-MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.0.3.12
-MOGO_MODULE_AUTHORIZE_VERSION=1.0.3.12
-MOGO_MODULE_GUIDE_VERSION=1.0.3.12
+MOGO_COMMONS_VERSION=1.1.0.1
+MOGO_UTILS_VERSION=1.1.0.1
+MAP_AMAP_VERSION=1.1.0.1
+MOGO_MAP_VERSION=1.1.0.1
+MOGO_MAP_API_VERSION=1.1.0.1
+MOGO_SERVICE_VERSION=1.1.0.1
+MOGO_SERVICE_API_VERSION=1.1.0.1
+MOGO_CONNECTION_VERSION=1.1.0.1
+MOGO_MODULE_APPS_VERSION=1.1.0.1
+MOGO_MODULE_NAVI_VERSION=1.1.0.1
+MOGO_MODULE_SHARE_VERSION=1.1.0.1
+MOGO_MODULE_COMMON_VERSION=1.1.0.1
+MOGO_MODULE_MAIN_VERSION=1.1.0.1
+MOGO_MODULE_MAP_VERSION=1.1.0.1
+MOGO_MODULE_SERVICE_VERSION=1.1.0.1
+MOGO_MODULE_EXTENSIONS_VERSION=1.1.0.1
+MOGO_MODULE_SEARCH_VERSION=1.1.0.1
+MOGO_MODULE_BACK_VERSION=1.1.0.1
+MOGO_MODULE_GPS_SIMULATOR_VERSION=1.1.0.1
+MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.1.0.1
+MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.1.0.1
+MOGO_MODULE_AUTHORIZE_VERSION=1.1.0.1
+MOGO_MODULE_GUIDE_VERSION=1.1.0.1
## 工程外部模块
# 探路
-MOGO_MODULE_TANLU_VERSION=1.0.5.6
+MOGO_MODULE_TANLU_VERSION=1.0.6-SNAPSHOT
# 车聊聊
-CARCHATTING_VERSION=1.0.3.2-SNAPSHOT
+CARCHATTING_VERSION=1.0.4-SNAPSHOT
# 车聊聊接口
-CARCHATTINGPROVIDER_VERSION=1.0.3.2-SNAPSHOT
+CARCHATTINGPROVIDER_VERSION=1.0.4-SNAPSHOT
# 视频引导
MOGO_MODULE_GUIDESHOW_VERSION=1.0.2-SNAPSHOT
# 视频引导接口
@@ -66,12 +66,10 @@ MOGO_MODULE_GUIDESHOW_PROVIDER_VERSION=1.0.2-SNAPSHOT
# 在线车辆F
MOGO_MODULE_ONLINECAR_VERSION=1.0.3.2
# v2x
-MOGO_MODULE_V2X_VERSION=1.0.6.28
+MOGO_MODULE_V2X_VERSION=1.0.7
# 媒体卡片
MOGO_MODULE_MEDIA_VERSION=1.0.4.3
# 推送
MOGO_MODULE_PUSH_VERSION=1.0.1
# 广告资源位
-MOGO_MODULE_AD_CARD_VERSION=1.0.1
-# 新鲜事
-MOGO_MODULE_FRESH_NEWS_VERSION=1.0.3.4
+MOGO_MODULE_AD_CARD_VERSION=1.0.1
\ No newline at end of file
diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/CalculatePathItem.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/CalculatePathItem.java
index ec40a2b4fb..8a705ce576 100644
--- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/CalculatePathItem.java
+++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/CalculatePathItem.java
@@ -55,7 +55,7 @@ public class CalculatePathItem {
return mPath.getLabels();
}
- public String getTime() {
+ public String getFormattedTime() {
if ( mTimeBuilder == null ) {
final int time = mPath.getAllTime();
mTimeBuilder = new StringBuilder();
@@ -64,6 +64,14 @@ public class CalculatePathItem {
return mTimeBuilder.toString();
}
+ public int getTime(){
+ return mPath.getAllTime();
+ }
+
+ public int getDistance(){
+ return mPath.getAllLength();
+ }
+
private StringBuilder mTimeBuilder;
private void fillFormatTime( int seconds, StringBuilder builder ) {
@@ -83,7 +91,7 @@ public class CalculatePathItem {
private String mDistanceCacheStr = "";
- public String getDistance() {
+ public String getFormattedDistance() {
if ( TextUtils.isEmpty( mDistanceCacheStr ) ) {
int distance = mPath.getAllLength();
if ( distance == -1 ) {
diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java
index 9448f2b296..c057446979 100644
--- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java
+++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java
@@ -13,7 +13,6 @@ import com.amap.api.maps.model.LatLng;
import com.amap.api.maps.model.LatLngBounds;
import com.amap.api.maps.model.Marker;
import com.amap.api.maps.model.MarkerOptions;
-import com.amap.api.maps.model.MarkerOptionsCreator;
import com.amap.api.maps.model.Polyline;
import com.amap.api.navi.AMapNavi;
import com.amap.api.navi.model.AMapNaviLocation;
@@ -21,15 +20,12 @@ import com.amap.api.navi.model.AMapNaviPath;
import com.amap.api.navi.model.NaviInfo;
import com.amap.api.navi.model.NaviLatLng;
import com.mogo.map.MogoLatLng;
-import com.mogo.map.MogoMap;
import com.mogo.map.impl.amap.AMapWrapper;
import com.mogo.map.impl.amap.R;
import com.mogo.map.impl.amap.overlay.RouteOverLayWrapper;
-import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.map.marker.MogoMarkersHandler;
import com.mogo.map.navi.MogoCalculatePath;
import com.mogo.map.navi.OnCalculatePathItemClickInteraction;
-import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.WindowUtils;
import com.mogo.utils.logger.Logger;
@@ -394,10 +390,12 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction {
if ( mCalculatePathItems != null && !mCalculatePathItems.isEmpty() ) {
for ( CalculatePathItem calculatePathItem : mCalculatePathItems ) {
MogoCalculatePath path = new MogoCalculatePath();
- path.setDistance( calculatePathItem.getDistance() );
+ path.setFormattedDistance( calculatePathItem.getFormattedDistance() );
path.setPathId( calculatePathItem.getId() );
path.setStrategyName( calculatePathItem.getStrategyName() );
+ path.setFormattedTime( calculatePathItem.getFormattedTime() );
path.setTime( calculatePathItem.getTime() );
+ path.setDistance( calculatePathItem.getDistance() );
List< NaviLatLng > coordList = calculatePathItem.getPath().getCoordList();
ArrayList< MogoLatLng > mogoLatLngs = new ArrayList<>();
for ( NaviLatLng latlng : coordList
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/listener/IMogoMapListener.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/listener/IMogoMapListener.java
index 13f5e3ac4a..f5667e96c2 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/listener/IMogoMapListener.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/listener/IMogoMapListener.java
@@ -18,42 +18,42 @@ public interface IMogoMapListener {
/**
* 地图加载完毕
*/
- void onMapLoaded();
+ default void onMapLoaded(){};
/**
* 地图点击
*
* @param motionEvent
*/
- void onTouch( MotionEvent motionEvent );
+ default void onTouch( MotionEvent motionEvent ){};
/**
* 地图上的任意poi点击
*
* @param poi
*/
- void onPOIClick( MogoPoi poi );
+ default void onPOIClick( MogoPoi poi ){};
/**
* 地图点击
*
* @param latLng
*/
- void onMapClick( MogoLatLng latLng );
+ default void onMapClick( MogoLatLng latLng ){}
/**
* 地图锁定
*
* @param isLock
*/
- void onLockMap( boolean isLock );
+ default void onLockMap( boolean isLock ){}
/**
* 地图白天黑夜、导航视角切换
*
* @param ui
*/
- void onMapModeChanged( EnumMapUI ui );
+ default void onMapModeChanged( EnumMapUI ui ){}
/**
* @param latLng 中点的经纬度
@@ -61,5 +61,5 @@ public interface IMogoMapListener {
* @param tilt 倾斜度
* @param bearing 旋转角度
*/
- void onMapChanged( MogoLatLng latLng, float zoom, float tilt, float bearing );
+ default void onMapChanged( MogoLatLng latLng, float zoom, float tilt, float bearing ){}
}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/MogoMarkersHandler.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/MogoMarkersHandler.java
index 07919c3124..51425cae06 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/MogoMarkersHandler.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/MogoMarkersHandler.java
@@ -86,7 +86,7 @@ public class MogoMarkersHandler implements IMogoMarkerClickListener, IMogoMarker
if ( marker == null ) {
return;
}
- if ( !mServicesMarkers.containsKey( tag ) ) {
+ if ( mServicesMarkers.get( tag ) == null ) {
mServicesMarkers.put( tag, new ArrayList< IMogoMarker >() );
}
mServicesMarkers.get( tag ).add( marker );
@@ -96,7 +96,7 @@ public class MogoMarkersHandler implements IMogoMarkerClickListener, IMogoMarker
if ( markers == null || markers.isEmpty() ) {
return;
}
- if ( !mServicesMarkers.containsKey( tag ) ) {
+ if ( mServicesMarkers.get( tag ) == null ) {
mServicesMarkers.put( tag, new ArrayList< IMogoMarker >() );
}
mServicesMarkers.get( tag ).addAll( markers );
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoAimlessModeListener.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoAimlessModeListener.java
index 5138ad5729..4d36b30fb0 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoAimlessModeListener.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoAimlessModeListener.java
@@ -11,12 +11,12 @@ public interface IMogoAimlessModeListener {
/**
* 巡航信息发生改变
*/
- void onUpdateTraffic2( MogoTraffic traffic );
+ default void onUpdateTraffic2( MogoTraffic traffic ){}
/**
* 拥堵信息
*
* @param info
*/
- void onUpdateCongestion( MogoCongestionInfo info );
+ default void onUpdateCongestion( MogoCongestionInfo info ){}
}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener.java
index abe7a663b8..ff989a920f 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener.java
@@ -11,44 +11,44 @@ public interface IMogoNaviListener {
/**
* 导航初始化失败
*/
- void onInitNaviFailure();
+ default void onInitNaviFailure(){}
/**
* 导航初始化成功
*/
- void onInitNaviSuccess();
+ default void onInitNaviSuccess(){}
/**
* 导航引导信息
*
* @param naviinfo
*/
- void onNaviInfoUpdate( MogoNaviInfo naviinfo );
+ default void onNaviInfoUpdate( MogoNaviInfo naviinfo ){}
/**
* 导航开始回调
*/
- void onStartNavi();
+ default void onStartNavi(){}
/**
* 导航停止:包括到达目的地和主动停止导航
*/
- void onStopNavi();
+ default void onStopNavi(){}
/**
* 路径规划成功
*/
- void onCalculateSuccess();
+ default void onCalculateSuccess(){}
/**
* 路径规划失败
*/
- void onoCalculateFailed();
+ default void onoCalculateFailed(){}
/**
* 巡航信息发生改变
* Deprecated, use {@link IMogoAimlessModeListener#onUpdateTraffic2(MogoTraffic)} instead.
*/
@Deprecated
- void onUpdateTraffic( MogoTraffic traffic );
+ default void onUpdateTraffic( MogoTraffic traffic ){}
}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener2.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener2.java
index 831d5d77a0..c0d261c1d6 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener2.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener2.java
@@ -11,10 +11,10 @@ public interface IMogoNaviListener2 extends IMogoNaviListener {
/**
* 实际导航结束
*/
- void onArriveDestination();
+ default void onArriveDestination() { }
/**
* 模拟导航结束
*/
- void onEndEmulatorNavi();
+ default void onEndEmulatorNavi(){}
}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoCalculatePath.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoCalculatePath.java
index 394772abaa..ec44cd59cb 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoCalculatePath.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoCalculatePath.java
@@ -20,12 +20,14 @@ public class MogoCalculatePath {
/**
* 时间
*/
- private String mTime;
+ private String mFormattedTime;
+ private int mTime;
/**
* 距离
*/
- private String mDistance;
+ private String mFormattedDistance;
+ private int mDistance;
/**
* 红绿灯个数
@@ -69,20 +71,20 @@ public class MogoCalculatePath {
this.mStrategyName = mStrategyName;
}
- public String getTime() {
- return mTime;
+ public String getFormattedTime() {
+ return mFormattedTime;
}
- public void setTime( String mTime ) {
- this.mTime = mTime;
+ public void setFormattedTime( String mTime ) {
+ this.mFormattedTime = mTime;
}
- public String getDistance() {
- return mDistance;
+ public String getFormattedDistance() {
+ return mFormattedDistance;
}
- public void setDistance( String mDistance ) {
- this.mDistance = mDistance;
+ public void setFormattedDistance( String mDistance ) {
+ this.mFormattedDistance = mDistance;
}
public int getTrafficLights() {
@@ -125,4 +127,22 @@ public class MogoCalculatePath {
public void setPathId( int mPathId ) {
this.mPathId = mPathId;
}
+
+ public int getTime() {
+ return mTime;
+ }
+
+ public MogoCalculatePath setTime( int time ) {
+ this.mTime = time;
+ return this;
+ }
+
+ public int getDistance() {
+ return mDistance;
+ }
+
+ public MogoCalculatePath setDistance( int distance ) {
+ this.mDistance = distance;
+ return this;
+ }
}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoAoiItem.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoAoiItem.java
index 957c920f60..98b4c8ef03 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoAoiItem.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoAoiItem.java
@@ -96,4 +96,15 @@ public class MogoAoiItem implements Parcelable {
return new MogoAoiItem[size];
}
};
+
+ @Override
+ public String toString() {
+ return "MogoAoiItem{" +
+ "aoiId='" + aoiId + '\'' +
+ ", aoiName='" + aoiName + '\'' +
+ ", adCode='" + adCode + '\'' +
+ ", aoiCenterPoint=" + aoiCenterPoint +
+ ", aoiArea=" + aoiArea +
+ '}';
+ }
}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoBusinessArea.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoBusinessArea.java
index 5b04b34c93..d8e48978e1 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoBusinessArea.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoBusinessArea.java
@@ -63,4 +63,12 @@ public class MogoBusinessArea implements Parcelable {
return new MogoBusinessArea[size];
}
};
+
+ @Override
+ public String toString() {
+ return "MogoBusinessArea{" +
+ "centerPoint=" + centerPoint +
+ ", name='" + name + '\'' +
+ '}';
+ }
}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoCrossroad.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoCrossroad.java
index b2899e33a4..3dcd6ea798 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoCrossroad.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoCrossroad.java
@@ -105,4 +105,16 @@ public class MogoCrossroad implements Parcelable {
return new MogoCrossroad[size];
}
};
+
+ @Override
+ public String toString() {
+ return "MogoCrossroad{" +
+ "distance=" + distance +
+ ", direction='" + direction + '\'' +
+ ", firstRoadId='" + firstRoadId + '\'' +
+ ", firstRoadName='" + firstRoadName + '\'' +
+ ", secondRoadId='" + secondRoadId + '\'' +
+ ", secondRoadName='" + secondRoadName + '\'' +
+ '}';
+ }
}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoGeocodeAddress.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoGeocodeAddress.java
index ddeac51edc..f92f294de2 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoGeocodeAddress.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoGeocodeAddress.java
@@ -100,4 +100,20 @@ public class MogoGeocodeAddress {
public void setLevel( String level ) {
this.level = level;
}
+
+ @Override
+ public String toString() {
+ return "MogoGeocodeAddress{" +
+ "formatAddress='" + formatAddress + '\'' +
+ ", province='" + province + '\'' +
+ ", city='" + city + '\'' +
+ ", district='" + district + '\'' +
+ ", township='" + township + '\'' +
+ ", neighborhood='" + neighborhood + '\'' +
+ ", building='" + building + '\'' +
+ ", adcode='" + adcode + '\'' +
+ ", latlng=" + latlng +
+ ", level='" + level + '\'' +
+ '}';
+ }
}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoGeocodeResult.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoGeocodeResult.java
index 5105908e9a..004bdda363 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoGeocodeResult.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoGeocodeResult.java
@@ -20,4 +20,11 @@ public class MogoGeocodeResult {
public void setAddresses( List< MogoGeocodeAddress > addresses ) {
this.addresses = addresses;
}
+
+ @Override
+ public String toString() {
+ return "MogoGeocodeResult{" +
+ "addresses=" + addresses +
+ '}';
+ }
}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoIndoorData.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoIndoorData.java
index 263b5544ab..bae861260a 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoIndoorData.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoIndoorData.java
@@ -72,4 +72,13 @@ public class MogoIndoorData implements Parcelable {
return new MogoIndoorData[size];
}
};
+
+ @Override
+ public String toString() {
+ return "MogoIndoorData{" +
+ "poiId='" + poiId + '\'' +
+ ", floor=" + floor +
+ ", floorName='" + floorName + '\'' +
+ '}';
+ }
}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoPhoto.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoPhoto.java
index ba393665a1..88f3b38427 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoPhoto.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoPhoto.java
@@ -61,4 +61,12 @@ public class MogoPhoto implements Parcelable {
return new MogoPhoto[size];
}
};
+
+ @Override
+ public String toString() {
+ return "MogoPhoto{" +
+ "title='" + title + '\'' +
+ ", url='" + url + '\'' +
+ '}';
+ }
}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoPoiItem.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoPoiItem.java
index b378a59abc..27ed374472 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoPoiItem.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoPoiItem.java
@@ -352,4 +352,38 @@ public class MogoPoiItem implements Parcelable {
return new MogoPoiItem[size];
}
};
+
+ @Override
+ public String toString() {
+ return "MogoPoiItem{" +
+ "businessArea='" + businessArea + '\'' +
+ ", adName='" + adName + '\'' +
+ ", cityName='" + cityName + '\'' +
+ ", provinceName='" + provinceName + '\'' +
+ ", typeDes='" + typeDes + '\'' +
+ ", tel='" + tel + '\'' +
+ ", adCode='" + adCode + '\'' +
+ ", poiId='" + poiId + '\'' +
+ ", distance=" + distance +
+ ", title='" + title + '\'' +
+ ", snippet='" + snippet + '\'' +
+ ", point=" + point +
+ ", cityCode='" + cityCode + '\'' +
+ ", enter=" + enter +
+ ", exit=" + exit +
+ ", website='" + website + '\'' +
+ ", postcode='" + postcode + '\'' +
+ ", email='" + email + '\'' +
+ ", direction='" + direction + '\'' +
+ ", indoorMap=" + indoorMap +
+ ", provinceCode='" + provinceCode + '\'' +
+ ", parkingType='" + parkingType + '\'' +
+ ", subPois=" + subPois +
+ ", indoorData=" + indoorData +
+ ", photos=" + photos +
+ ", poiExtension=" + poiExtension +
+ ", typeCode='" + typeCode + '\'' +
+ ", shopID='" + shopID + '\'' +
+ '}';
+ }
}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeAddress.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeAddress.java
index a15f7eb132..2026ac051a 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeAddress.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeAddress.java
@@ -228,4 +228,27 @@ public class MogoRegeocodeAddress implements Parcelable {
return new MogoRegeocodeAddress[size];
}
};
+
+ @Override
+ public String toString() {
+ return "MogoRegeocodeAddress{" +
+ "formatAddress='" + formatAddress + '\'' +
+ ", province='" + province + '\'' +
+ ", city='" + city + '\'' +
+ ", cityCode='" + cityCode + '\'' +
+ ", adCode='" + adCode + '\'' +
+ ", district='" + district + '\'' +
+ ", township='" + township + '\'' +
+ ", neighborhood='" + neighborhood + '\'' +
+ ", building='" + building + '\'' +
+ ", streetNumber=" + streetNumber +
+ ", roads=" + roads +
+ ", pois=" + pois +
+ ", crossroads=" + crossroads +
+ ", businessAreas=" + businessAreas +
+ ", aois=" + aois +
+ ", towncode='" + towncode + '\'' +
+ ", country='" + country + '\'' +
+ '}';
+ }
}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeResult.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeResult.java
index d5f83828b4..1c2bcca713 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeResult.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeResult.java
@@ -50,4 +50,11 @@ public class MogoRegeocodeResult implements Parcelable {
return new MogoRegeocodeResult[size];
}
};
+
+ @Override
+ public String toString() {
+ return "MogoRegeocodeResult{" +
+ "regeocodeAddress=" + regeocodeAddress +
+ '}';
+ }
}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeRoad.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeRoad.java
index 6ec6a29d0b..59b32cbcf2 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeRoad.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeRoad.java
@@ -95,4 +95,15 @@ public class MogoRegeocodeRoad implements Parcelable {
return new MogoRegeocodeRoad[size];
}
};
+
+ @Override
+ public String toString() {
+ return "MogoRegeocodeRoad{" +
+ "id='" + id + '\'' +
+ ", name='" + name + '\'' +
+ ", distance=" + distance +
+ ", direction='" + direction + '\'' +
+ ", point=" + point +
+ '}';
+ }
}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoStreetNumber.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoStreetNumber.java
index 1d3f953c7c..c026129e36 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoStreetNumber.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoStreetNumber.java
@@ -95,4 +95,15 @@ public class MogoStreetNumber implements Parcelable {
return new MogoStreetNumber[size];
}
};
+
+ @Override
+ public String toString() {
+ return "MogoStreetNumber{" +
+ "street='" + street + '\'' +
+ ", number='" + number + '\'' +
+ ", latLonPoint=" + latLonPoint +
+ ", direction='" + direction + '\'' +
+ ", distance=" + distance +
+ '}';
+ }
}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoSubPoiItem.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoSubPoiItem.java
index b3796963d6..b43ff95317 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoSubPoiItem.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoSubPoiItem.java
@@ -118,4 +118,17 @@ public class MogoSubPoiItem implements Parcelable {
return new MogoSubPoiItem[size];
}
};
+
+ @Override
+ public String toString() {
+ return "MogoSubPoiItem{" +
+ "poiId='" + poiId + '\'' +
+ ", title='" + title + '\'' +
+ ", subName='" + subName + '\'' +
+ ", distance=" + distance +
+ ", point=" + point +
+ ", snippet='" + snippet + '\'' +
+ ", subTypeDes='" + subTypeDes + '\'' +
+ '}';
+ }
}
diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoInitor.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoInitor.java
deleted file mode 100644
index 76d61012a6..0000000000
--- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoInitor.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.mogo.map;
-
-import android.content.Context;
-
-
-/**
- * @author congtaowang
- * @since 2019-12-26
- *
- * 描述
- */
-public class MogoInitor {
-
- public static void init( Context context ) {
- }
-}
diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java
index bb3aa752d9..33d7bfff49 100644
--- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java
+++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java
@@ -3,7 +3,6 @@ package com.mogo.map;
import android.content.Context;
import android.util.Log;
-import com.mogo.map.impl.amap.InterceptorHandler;
import com.mogo.map.impl.amap.overlay.RouteOverlayHelper;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.IMogoMarkerManager;
@@ -54,6 +53,7 @@ public class MogoMarkerManager implements IMogoMarkerManager {
try {
return MogoMap.getInstance().getMogoMap().addMarker( tag, options );
} catch ( Exception e ) {
+ Logger.e( TAG, Log.getStackTraceString( e ) );
return null;
}
}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java
index 3092323b9d..a1c65890ef 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java
@@ -1,37 +1,20 @@
package com.mogo.module.apps;
import android.os.Bundle;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
-import com.alibaba.android.arouter.launcher.ARouter;
+
import com.mogo.commons.mvp.MvpFragment;
import com.mogo.module.apps.adapter.AppIndicatorAdapter;
-import com.mogo.module.apps.adapter.base.RecycleViewHolder;
-import com.mogo.module.apps.model.NavigatorApp;
+import com.mogo.module.apps.applaunch.AppLauncher;
+import com.mogo.module.apps.applaunch.BaseAppLauncher;
+import com.mogo.module.apps.applaunch.InternalFunctionLauncher;
import com.mogo.module.apps.model.NavigatorApps;
-import com.mogo.module.apps.utils.CardScaleTransformer;
-import com.mogo.module.common.MogoModulePaths;
-import com.mogo.service.MogoServicePaths;
-import com.mogo.service.analytics.IMogoAnalytics;
-import com.mogo.service.cardmanager.IMogoCardChangedListener;
-import com.mogo.service.fragmentmanager.FragmentDescriptor;
-import com.mogo.service.fragmentmanager.IMogoFragmentManager;
-import com.mogo.service.module.IMogoModuleProvider;
-import com.mogo.utils.logger.Logger;
-import com.yarolegovich.discretescrollview.DiscreteScrollLayoutManager;
-import com.yarolegovich.discretescrollview.DiscreteScrollView;
-import java.util.ArrayList;
+
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
/**
@@ -40,27 +23,14 @@ import java.util.Map;
*
* 描述
*/
-public class AppNavigatorFragment extends MvpFragment
- implements AppNavigatorView, DiscreteScrollView.OnItemChangedListener,
- DiscreteScrollView.ScrollStateChangeListener,
- IMogoCardChangedListener {
+public class AppNavigatorFragment extends MvpFragment< AppNavigatorView, AppNavigatorPresenter > implements AppNavigatorView {
private static final String TAG = "AppNavigatorFragment";
- private View mApps;
- private IMogoFragmentManager mMogoFragmentManager;
- List apps;
+ private RecyclerView mNavigatorAppsList;
+ private AppIndicatorAdapter mAppIndicatorAdapter;
- /**
- * 搜索莫模块
- */
- private IMogoModuleProvider mSearchProvider;
-
- private IMogoAnalytics mMogoAnalytics;
- private DiscreteScrollView scroller;
-
- private static int CARD_SIZE = 6;
- private AppIndicatorAdapter appIndicatorAdapter;
+ private BaseAppLauncher mLauncher;
@Override
protected int getLayoutId() {
@@ -69,228 +39,49 @@ public class AppNavigatorFragment extends MvpFragment {
+// openAppsPanel();
+// trackNavigatorClickEvent( 4 );
+// } );
+ mLauncher = new InternalFunctionLauncher( getActivity() );
+ mLauncher.setNext( new AppLauncher() );
- mMogoFragmentManager = (IMogoFragmentManager) ARouter.getInstance()
- .build(MogoServicePaths.PATH_FRAGMENT_MANAGER)
- .navigation();
-
- mApps = findViewById(R.id.module_apps_id_apps);
-
- scroller = findViewById(R.id.module_apps_id_scroller);
-
- scroller.setRatio(330 / 523F);
- //scroller.setRatio(176/279F);
- scroller.setSlideOnFling(true);
- scroller.addOnItemChangedListener(this);
- scroller.addScrollStateChangeListener(this);
- //scroller.setItemTransitionTimeMillis(DiscreteScrollViewOptions.getTransitionTime());
- apps = NavigatorApps.getApps();
- CARD_SIZE = apps.size();
- scroller.setItemTransformer(new CardScaleTransformer.Builder()
- .setMinScale(0.84f)
- .build());
-
- appIndicatorAdapter = new AppIndicatorAdapter(getContext(), apps);
-
- appIndicatorAdapter.setOnClickListener(new View.OnClickListener() {
- @Override public void onClick(View v) {
- NavigatorApp item = (NavigatorApp) v.getTag();
- AppServiceHandler.getMogoCardManager().switch2(item.mModuleType);
- }
- });
-
- scroller.setAdapter(appIndicatorAdapter);
- scroller.scrollToPosition(Integer.MAX_VALUE / 2 - 1);
- //mNavigation.setOnClickListener( view -> {
- // openSearchPanel();
- // trackNavigatorClickEvent( 1 );
- //} );
- //mMediaCenter.setOnClickListener( view -> {
- // try {
- // LaunchUtils.launchByPkg( getContext(), AppsConst.APP_PKG_MUSIC );
- // trackNavigatorClickEvent( 2 );
- // } catch ( Exception e ) {
- // TipToast.shortTip( R.string.module_apps_str_no_app );
- // }
- //} );
- //mCarSettings.setOnClickListener( view -> {
- // try {
- // LaunchUtils.launchByPkg( getContext(), AppsConst.APP_PKG_CAR_SETTINGS );
- // trackNavigatorClickEvent( 3 );
- // } catch ( Exception e ) {
- // TipToast.shortTip( R.string.module_apps_str_no_app );
- // }
- //} );
- mApps.setOnClickListener(view -> {
- openAppsPanel();
-
- //AppServiceHandler.getMogoCardManager()
- // .switch2(apps.get((int) (Math.random() * 6)).mModuleType);
-
- trackNavigatorClickEvent(4);
- });
- AppServiceHandler.init(getContext());
-
- AppServiceHandler.getMogoCardManager().registerCardChangedListener(TAG, this);
- }
-
- private void scrollToCenter(int index) {
-
+ mNavigatorAppsList = findViewById( R.id.module_apps_id_apps_list );
+ mNavigatorAppsList.setLayoutManager( new LinearLayoutManager( getActivity(), RecyclerView.VERTICAL, false ) );
+ mAppIndicatorAdapter = new AppIndicatorAdapter( getContext(), NavigatorApps.getApps() );
+ mAppIndicatorAdapter.setOnItemClickedListener( ( data, position ) -> {
+ mLauncher.launch( getContext(), data );
+ } );
+ mNavigatorAppsList.setAdapter( mAppIndicatorAdapter );
}
@NonNull
@Override
protected AppNavigatorPresenter createPresenter() {
- return new AppNavigatorPresenter(this);
+ return new AppNavigatorPresenter( this );
}
@Override
- public void onActivityCreated(@Nullable Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- mMogoFragmentManager = (IMogoFragmentManager) ARouter.getInstance()
- .build(MogoServicePaths.PATH_FRAGMENT_MANAGER)
- .navigation(getContext());
- mMogoAnalytics = (IMogoAnalytics) ARouter.getInstance()
- .build(MogoServicePaths.PATH_UTILS_ANALYTICS)
- .navigation(getContext());
+ public void onActivityCreated( @Nullable Bundle savedInstanceState ) {
+ super.onActivityCreated( savedInstanceState );
}
@Override
public void openAppsPanel() {
- AppsListActivity.start(getActivity());
+ AppsListActivity.start( getActivity() );
}
- private void trackNavigatorClickEvent(int type) {
- final Map properties = new HashMap<>();
- properties.put("type", type);
- mMogoAnalytics.track("Launcher_APP_Icon", properties);
+ private void trackNavigatorClickEvent( int type ) {
+ final Map< String, Object > properties = new HashMap<>();
+ properties.put( "type", type );
+ AppServiceHandler.getMogoAnalytics().track( "Launcher_APP_Icon", properties );
}
@Override
public void onDestroyView() {
super.onDestroyView();
- if (mPresenter != null) {
- mPresenter.onDestroy(getViewLifecycleOwner());
+ if ( mPresenter != null ) {
+ mPresenter.onDestroy( getViewLifecycleOwner() );
}
}
-
- @Override
- public void onCurrentItemChanged(@Nullable RecycleViewHolder viewHolder, int i) {
- Logger.d(TAG, "onCurrentItemChanged--position--" + i % CARD_SIZE);
- int currentPosition = (i - 2) % CARD_SIZE;
-
- //if (!scroller.isComputingLayout()) {
- // appIndicatorAdapter.setCurrentPos(i);
- //}
- //this.currentPosition=currentPosition;
- AppServiceHandler.getMogoCardManager().switch2(apps.get(i % CARD_SIZE).mModuleType, true);
-
- //holder.showText();
-
- //ImageView view = viewHolder.getView(R.id.module_apps_id_app_icon);
- //view.setImageResource(apps.get(currentPosition).getmIconId());
- //
- //TextView tvTitle = viewHolder.getView(R.id.module_apps_id_app_name);
- //tvTitle.setTextColor(getResources().getColor(R.color.white));
-
- }
-
- @Override public void onScrollStart(@NonNull RecycleViewHolder viewHolder, int i) {
- int currentPosition = i % CARD_SIZE - 2;
- //
- //ImageView view = viewHolder.getView(R.id.module_apps_id_app_icon);
- //
- //
- //view.setImageResource(apps.get(currentPosition).mUncheckedIconId);
- //TextView tvTitle = viewHolder.getView(R.id.module_apps_id_app_name);
- //tvTitle.setTextColor(getResources().getColor(R.color.white_80));
-
- }
-
- @Override public void onScrollEnd(@NonNull RecycleViewHolder viewHolder, int i) {
-
- }
-
- @Override
- public void onScroll(float v, int i, int i1, @Nullable RecycleViewHolder viewHolder,
- @Nullable RecycleViewHolder t1) {
-
- }
-
- //private int currentPosition = 0;
-
- @Override public void onSwitched(int position, String moduleName) {
- //int index = (position - scroller.getCurrentItem() % CARD_SIZE + 2) % CARD_SIZE;
- //int i = scroller.getCurrentItem() + index;
- DiscreteScrollLayoutManager layoutManager =
- (DiscreteScrollLayoutManager) scroller.getLayoutManager();
-
- int currentPosition = (scroller.getCurrentItem() - 2) % CARD_SIZE;
-
- int index = position - currentPosition;
-
- if (index == 0) {
- return;
- }
- if (index <= -3) {
- index += CARD_SIZE;
- } else if (index >= 3) {
- index = index - CARD_SIZE;
- }
- //RecyclerView 的特性,如果是否在屏幕内
- //if (index < 0) {
- // index -= 2;
- //}
-
- Logger.d(TAG, "position--"
- + position
- + "index--"
- + index
- + "scroll-->"
- + scroller.getCurrentItem()
- + index);
-
- //scroller.setPendingScroll(getResources().getDimensionPixelSize(R.dimen.dp_137)*index);
- //layoutManager.scrollToPositionWithOffset(scroller.getCurrentItem() + index,0);
- //scroller.smoothScrollBy(getResources().getDimensionPixelSize(R.dimen.dp_137)*index,0);
-
- if (Math.abs(index) == 1) {
- scroller.smoothScrollBy(getResources().getDimensionPixelSize(R.dimen.dp_137) * index,
- 0, null, 10);
- } else {
- layoutManager.startSmoothPendingScroll(layoutManager.getCurrentPosition() + index);
- }
- //layoutManager.smoothScrollToPosition(scroller.getCurrentItem() + index);
- //currentPosition = position;
- }
-
- private void printIds(View view) {
- System.out.println(view.getId());
- if (view instanceof ViewGroup) {
- int childCount = ((ViewGroup) view).getChildCount();
- for (int i = 0; i < childCount; i++) {
- printIds(((ViewGroup) view).getChildAt(i));
- }
- }
- }
-
- private void print(View view) {
-
- ArrayList views = new ArrayList<>();
- views.add(view);
-
- while (views.size() > 0) {
- System.out.println(view.getId());
- View remove = views.remove(0);
-
- if (remove instanceof ViewGroup) {
-
- int childCount = ((ViewGroup) view).getChildCount();
- for (int i = 0; i < childCount; i++) {
- views.add(((ViewGroup) view).getChildAt(i));
- }
- }
- }
-
- }
}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorPresenter.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorPresenter.java
index 378522b10b..6dbdc52ac9 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorPresenter.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorPresenter.java
@@ -40,8 +40,8 @@ public class AppNavigatorPresenter extends Presenter< AppNavigatorView > impleme
@Override
public void onCreate( @NonNull LifecycleOwner owner ) {
super.onCreate( owner );
- mIntentManager = ( IMogoIntentManager ) ARouter.getInstance().build( MogoServicePaths.PATH_INTENT_MANAGER ).navigation( getContext() );
- mMogoStatusManager = ( IMogoStatusManager ) ARouter.getInstance().build( MogoServicePaths.PATH_STATUS_MANAGER ).navigation( getContext() );
+ mIntentManager = AppServiceHandler.getApis().getIntentManagerApi();
+ mMogoStatusManager = AppServiceHandler.getApis().getStatusManagerApi();
// 预加载应用列表,空间换时间
AppsModel.getInstance( getContext() ).load( null );
}
@@ -68,6 +68,7 @@ public class AppNavigatorPresenter extends Presenter< AppNavigatorView > impleme
return;
}
try {
+ AppServiceHandler.getApis().getAdasControllerApi().closeADAS();
JSONObject object = new JSONObject( intent.getStringExtra( "data" ) );
String app = object.optString( "object" );
String operation = object.optString( "operation" );
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppServiceHandler.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppServiceHandler.java
index 7dc4ce40d3..9bf52fd3b0 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppServiceHandler.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppServiceHandler.java
@@ -1,7 +1,9 @@
package com.mogo.module.apps;
import android.content.Context;
+
import com.alibaba.android.arouter.launcher.ARouter;
+import com.mogo.commons.AbsMogoApplication;
import com.mogo.map.location.IMogoLocationClient;
import com.mogo.map.marker.IMogoMarkerManager;
import com.mogo.map.navi.IMogoNavi;
@@ -27,6 +29,7 @@ import com.mogo.service.statusmanager.IMogoStatusManager;
* version: 1.0
*/
public class AppServiceHandler {
+
private static final String TAG = "AppServiceHandler";
private static IMogoServiceApis mApis;
@@ -34,17 +37,18 @@ public class AppServiceHandler {
private static IMogoAnalytics mMogoAnalytics;
private static IGuideShowProvider mMogoGuideShow;
-
public static void init( final Context context ) {
mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( context );
mMogoCardManager = mApis.getCardManagerApi();
mMogoAnalytics = mApis.getAnalyticsApi();
- mMogoGuideShow = (IGuideShowProvider) ARouter.getInstance().build(GuideShowProviderConstant.GUIDE_SHOW_PROVIDER).navigation(context);
+ mMogoGuideShow = ( IGuideShowProvider ) ARouter.getInstance().build( GuideShowProviderConstant.GUIDE_SHOW_PROVIDER ).navigation( context );
}
+
public static IMogoCardManager getMogoCardManager() {
return mMogoCardManager;
}
+
public static IMogoAnalytics getMogoAnalytics() {
return mMogoAnalytics;
}
@@ -52,4 +56,11 @@ public class AppServiceHandler {
public static IGuideShowProvider getMogoGuideShow() {
return mMogoGuideShow;
}
+
+ public static IMogoServiceApis getApis() {
+ if ( mApis == null ) {
+ mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( AbsMogoApplication.getApp() );
+ }
+ return mApis;
+ }
}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragmentProvider.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragmentProvider.java
index 054707c758..1f0dc91f16 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragmentProvider.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragmentProvider.java
@@ -74,7 +74,7 @@ public class AppsFragmentProvider implements IMogoModuleProvider {
@Override
public void init( Context context ) {
-
+ AppServiceHandler.init( context );
}
@Override
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java
index 54f42368d3..306c626b83 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java
@@ -6,6 +6,7 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LifecycleOwner;
import com.alibaba.android.arouter.launcher.ARouter;
+import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.mvp.Presenter;
import com.mogo.module.apps.applaunch.AppLaunchFilter;
import com.mogo.module.apps.applaunch.AppLauncher;
@@ -36,7 +37,7 @@ import java.util.Set;
*
* 描述
*/
-public class AppsPresenter extends Presenter {
+public class AppsPresenter extends Presenter< AppsView > {
private static final String TAG = "AppsPresenter";
@@ -48,61 +49,62 @@ public class AppsPresenter extends Presenter {
private IMogoCardManager mCardManager;
private IMogoStatusManager mMogoStatusManager;
- public AppsPresenter(AppsView view) {
- super(view);
- mApis = (IMogoServiceApis)ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation(getContext());
+ public AppsPresenter( AppsView view ) {
+ super( view );
+ mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( getContext() );
mCardManager = mApis.getCardManagerApi();
- CardAppLauncher cardAppLauncher = new CardAppLauncher(this, mCardManager);
- GuideShowLauncher guideShowLauncher = new GuideShowLauncher(mApis.getMapServiceApi().getNavi( getContext() ));
- cardAppLauncher.setNext(guideShowLauncher);
- guideShowLauncher.setNext(new AppLauncher());
+ CardAppLauncher cardAppLauncher = new CardAppLauncher( this, mCardManager );
+ GuideShowLauncher guideShowLauncher = new GuideShowLauncher( mApis.getMapServiceApi().getNavi( getContext() ) );
+ cardAppLauncher.setNext( guideShowLauncher );
+ guideShowLauncher.setNext( new AppLauncher() );
mLauncher = cardAppLauncher;
}
@Override
- public void onCreate(@NonNull LifecycleOwner owner) {
- super.onCreate(owner);
+ public void onCreate( @NonNull LifecycleOwner owner ) {
+ super.onCreate( owner );
renderAppsList();
- AppsListChangedLiveData.getInstance().observeForever(bool -> {
- if (mView != null) {
+ AppsListChangedLiveData.getInstance().observeForever( bool -> {
+ if ( mView != null ) {
renderAppsList();
}
- });
+ } );
mAnalytics = mApis.getAnalyticsApi();
mMogoStatusManager = mApis.getStatusManagerApi();
- mMogoStatusManager.setAppListUIShow(TAG, true);
+ mMogoStatusManager.setAppListUIShow( TAG, true );
}
private void renderAppsList() {
- ThreadPoolService.execute(() -> {
- AppsModel.getInstance(getContext()).load(appInfoList -> {
+ ThreadPoolService.execute( () -> {
+ AppsModel.getInstance( getContext() ).load( appInfoList -> {
- Logger.d(TAG, "apps: %s", appInfoList);
- final Map> result = addOthersEntrances( appInfoList );
- UiThreadHandler.post(() -> {
- if (mView != null) {
+ Logger.d( TAG, "apps: %s", appInfoList );
+ final Map< Integer, List< AppInfo > > result = addOthersEntrances( appInfoList );
+ UiThreadHandler.post( () -> {
+ if ( mView != null ) {
mView.renderApps( result );
}
- });
- });
+ } );
+ } );
- });
+ } );
}
/**
* 新增入口
+ *
* @param appInfoMap
* @return
*/
- private Map> addOthersEntrances( Map> appInfoMap) {
- Map> result = new HashMap<>();
+ private Map< Integer, List< AppInfo > > addOthersEntrances( Map< Integer, List< AppInfo > > appInfoMap ) {
+ Map< Integer, List< AppInfo > > result = new HashMap<>();
if ( appInfoMap != null && !appInfoMap.isEmpty() ) {
// val deep copy
- Set keys = appInfoMap.keySet();
+ Set< Integer > keys = appInfoMap.keySet();
for ( Integer key : keys ) {
- List val = appInfoMap.get( key );
+ List< AppInfo > val = appInfoMap.get( key );
try {
result.put( key, new ArrayList<>( val ) );
} catch ( Exception e ) {
@@ -112,16 +114,16 @@ public class AppsPresenter extends Presenter {
}
// 手动添加无法识别到的app
- List apps = UnScannedApps.getUnScannedApps();
+ List< AppInfo > apps = UnScannedApps.getUnScannedApps();
if ( apps != null && !apps.isEmpty() ) {
for ( AppInfo app : apps ) {
if ( app == null ) {
continue;
}
- Set keys = result.keySet();
+ Set< Integer > keys = result.keySet();
boolean addFlag = true;
for ( Integer key : keys ) {
- List val = result.get( key );
+ List< AppInfo > val = result.get( key );
// 无法扫描到蓝牙电话app,这里手动添加
for ( AppInfo appInfo : val ) {
if ( appInfo == null ) {
@@ -137,71 +139,77 @@ public class AppsPresenter extends Presenter {
}
}
if ( addFlag ) {
- growthCapacity(result);
- result.get(result.size() - 1).add(app);
+ growthCapacity( result );
+ result.get( result.size() - 1 ).add( app );
}
}
}
- growthCapacity(result);
+ growthCapacity( result );
// 添加介绍入口
- result.get(result.size() - 1).add(new AppInfo(GuideShowLauncher.APP_INFO_NAME_GUIDE_SHOW, getContext().getPackageName(), null, 0, null, R.drawable.module_apps_ic_guide_show));
+ result.get( result.size() - 1 ).add( new AppInfo( GuideShowLauncher.APP_INFO_NAME_GUIDE_SHOW, getContext().getPackageName(), null, 0, null, R.drawable.module_apps_ic_guide_show ) );
+ if ( DebugConfig.isDebug() ) {
+ // 添加测试入口
+ growthCapacity( result );
+ result.get( result.size() - 1 ).add( new AppInfo( "包管理程序", "com.mogo.packages.manager", null, 0, null, -1 ) );
+ }
return result;
}
/**
* 扩容
+ *
* @param target
*/
- private void growthCapacity( Map> target ){
+ private void growthCapacity( Map< Integer, List< AppInfo > > target ) {
if ( target == null ) {
return;
}
- if (target.isEmpty()) {
- target.put(0, new ArrayList<>());
- } else if (target.get(target.size() - 1) == null) {
- target.put(target.size() - 1, new ArrayList<>());
- } else if (target.get(target.size() - 1).size() == AppsConst.TOTAL_SIZE_EACH_PAGE) {
- target.put(target.size(), new ArrayList<>());
+ if ( target.isEmpty() ) {
+ target.put( 0, new ArrayList<>() );
+ } else if ( target.get( target.size() - 1 ) == null ) {
+ target.put( target.size() - 1, new ArrayList<>() );
+ } else if ( target.get( target.size() - 1 ).size() == AppsConst.TOTAL_SIZE_EACH_PAGE ) {
+ target.put( target.size(), new ArrayList<>() );
}
}
- public void launch(AppInfo appInfo) {
- if (appInfo == null) {
+ public void launch( AppInfo appInfo ) {
+ if ( appInfo == null ) {
return;
}
- trackAppClicked(appInfo);
+ trackAppClicked( appInfo );
try {
- mLauncher.launch(getContext(), appInfo);
- } catch (Exception e) {
+ mLauncher.launch( getContext(), appInfo );
+ } catch ( Exception e ) {
}
}
- private void trackAppClicked(AppInfo appInfo) {
- if (appInfo == null) {
+ private void trackAppClicked( AppInfo appInfo ) {
+ if ( appInfo == null ) {
return;
}
- Map properties = new HashMap<>();
- properties.put("appname", appInfo.getName());
- properties.put("packagename", appInfo.getPackageName());
- properties.put("appversion", appInfo.getVersionName());
- properties.put("from", 1);
- mAnalytics.track("appenterfront", properties);
+ Map< String, Object > properties = new HashMap<>();
+ properties.put( "appname", appInfo.getName() );
+ properties.put( "packagename", appInfo.getPackageName() );
+ properties.put( "appversion", appInfo.getVersionName() );
+ properties.put( "from", 1 );
+ mAnalytics.track( "appenterfront", properties );
}
@Override
- public void onDestroy(@NonNull LifecycleOwner owner) {
- super.onDestroy(owner);
- mMogoStatusManager.setAppListUIShow(TAG, false);
+ public void onDestroy( @NonNull LifecycleOwner owner ) {
+ super.onDestroy( owner );
+ mMogoStatusManager.setAppListUIShow( TAG, false );
AppsListChangedLiveData.getInstance().release();
mView = null;
mLauncher.destroy();
}
public void exit() {
- if (mView != null) {
+ if ( mView != null ) {
mView.exit();
}
}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/AppIndicatorAdapter.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/AppIndicatorAdapter.java
index 9b78d95c2e..dfd77cce0c 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/AppIndicatorAdapter.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/AppIndicatorAdapter.java
@@ -1,62 +1,34 @@
package com.mogo.module.apps.adapter;
import android.content.Context;
-import android.view.View;
import android.widget.ImageView;
-import android.widget.TextView;
-import androidx.core.content.ContextCompat;
+
import com.mogo.module.apps.R;
import com.mogo.module.apps.adapter.base.RecycleBaseAdapter;
import com.mogo.module.apps.adapter.base.RecycleViewHolder;
+import com.mogo.module.apps.model.AppInfo;
import com.mogo.module.apps.model.NavigatorApp;
+
import java.util.List;
/**
* @author zyz
* 2020-03-09.
*/
-public class AppIndicatorAdapter extends RecycleBaseAdapter {
+public class AppIndicatorAdapter extends RecycleBaseAdapter< AppInfo > {
-
- private int currentPos;
-
- private View.OnClickListener onClickListener;
- /**
- *
- */
- public AppIndicatorAdapter(Context context, List list
- ) {
- super(context, list, R.layout.module_apps_item_app_indicator);
+ public AppIndicatorAdapter( Context context, List< AppInfo > list ) {
+ super( context, list, R.layout.module_apps_item_app_indicator );
}
- @Override public int getItemCount() {
- return Integer.MAX_VALUE;
- }
-
- @Override public void onBindViewHolder(RecycleViewHolder holder, NavigatorApp integer) {
- ImageView ivIndicator = holder.getView(R.id.module_apps_id_app_icon);
- ivIndicator.setImageResource(integer.getmIconId());
- holder.setText(R.id.module_apps_id_app_name,integer.getmName() );
-
- TextView tvTitle = holder.getView(R.id.module_apps_id_app_name);
- if (currentPos==holder.getLayoutPosition()) {
- ivIndicator.setImageResource(integer.getmIconId());
- tvTitle.setTextColor(ContextCompat.getColor(context,R.color.white));
- }else {
- tvTitle.setTextColor(ContextCompat.getColor(context,R.color.white_80));
- ivIndicator.setImageResource(integer.getmUncheckedIconId());
- }
- holder.itemView.setTag(integer);
- holder.itemView.setOnClickListener(onClickListener);
-
- }
-
- public void setOnClickListener(View.OnClickListener onClickListener) {
- this.onClickListener = onClickListener;
- }
-
- public void setCurrentPos(int currentPos){
- this.currentPos=currentPos;
- notifyDataSetChanged();
+ @Override
+ public void onBindViewHolder( RecycleViewHolder holder, AppInfo app, int position ) {
+ ImageView ivIndicator = holder.getView( R.id.module_apps_id_app_icon );
+ ivIndicator.setImageResource( app.getIconResId() );
+ holder.itemView.setOnClickListener( view -> {
+ if ( getOnItemClickedListener() != null ) {
+ getOnItemClickedListener().onItemClicked( app, position );
+ }
+ } );
}
}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/base/RecycleBaseAdapter.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/base/RecycleBaseAdapter.java
index 2a8cc64079..d39ca569b9 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/base/RecycleBaseAdapter.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/base/RecycleBaseAdapter.java
@@ -5,7 +5,9 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
+
import androidx.recyclerview.widget.RecyclerView;
+
import java.util.List;
/**
@@ -21,20 +23,19 @@ import java.util.List;
*
*
*/
-public abstract class RecycleBaseAdapter extends
- RecyclerView.Adapter
-{
+public abstract class RecycleBaseAdapter< T > extends
+ RecyclerView.Adapter< RecycleViewHolder > {
protected Context context;
- protected List list;
+ protected List< T > list;
private int resourceID;
- private Toast toast;
+
+ protected OnItemClickListener mOnItemClickedListener;
/**
* @param context
*/
- public RecycleBaseAdapter(Context context, List list, int resourceID)
- {
+ public RecycleBaseAdapter( Context context, List< T > list, int resourceID ) {
super();
this.context = context;
this.list = list;
@@ -42,81 +43,75 @@ public abstract class RecycleBaseAdapter extends
}
@Override
- public RecycleViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType)
- {
- View v = LayoutInflater.from(context).inflate(resourceID, viewGroup,
- false);
+ public RecycleViewHolder onCreateViewHolder( ViewGroup viewGroup, int viewType ) {
+ View v = LayoutInflater.from( context ).inflate( resourceID, viewGroup,
+ false );
RecycleViewHolder holder = RecycleViewHolder
- .get(v);
+ .get( v );
- initHolder(holder);
+ initHolder( holder );
return holder;
}
@Override
- public void onBindViewHolder(
- RecycleViewHolder viewHolder, int position)
- {
- onBindViewHolder(viewHolder, list.get(position % list.size()));
+ public void onBindViewHolder( RecycleViewHolder viewHolder, int position ) {
+ onBindViewHolder( viewHolder, list.get( position % list.size()), position );
}
@Override
- public int getItemCount()
- {
+ public int getItemCount() {
return list == null ? 0 : list.size();
}
- public abstract void onBindViewHolder(
- RecycleViewHolder holder, T t);
+ public abstract void onBindViewHolder( RecycleViewHolder holder, T t, int position );
- public void initHolder(RecycleViewHolder holder)
- {
+ public void initHolder( RecycleViewHolder holder ) {
}
- public void setDatas(List list)
- {
- setDatas(list, false);
+
+ public void setDatas( List< T > list ) {
+ setDatas( list, false );
}
- public void setDatas(List list, boolean add)
- {
- if (add)
- {
- this.list.addAll(list);
- }
- else
- {
+ public void setDatas( List< T > list, boolean add ) {
+ if ( add ) {
+ this.list.addAll( list );
+ } else {
this.list = list;
}
notifyDataSetChanged();
}
- public void clear(){
- if (list != null) {
+
+ public void clear() {
+ if ( list != null ) {
list.clear();
notifyDataSetChanged();
}
}
- public void messageShow(String mes)
- {
- if (toast==null){
- toast= Toast.makeText(context,mes, Toast.LENGTH_LONG);
- }
- else{
- toast.setText(mes);
- }
- toast.show();
- }
- public T getItem(int position){
- if (list==null||list.size()==0){
+ public T getItem( int position ) {
+ if ( list == null || list.size() == 0 ) {
return null;
}
- return list.get(position);
+ return list.get( position );
}
- public List getList() {
+ public List< T > getList() {
return list;
}
+
+ public interface OnItemClickListener< T > {
+ void onItemClicked( T data, int position );
+ }
+
+ public RecycleBaseAdapter< T > setOnItemClickedListener( OnItemClickListener< T > onItemClickedListener ) {
+ this.mOnItemClickedListener = onItemClickedListener;
+ return this;
+ }
+
+ public OnItemClickListener< T > getOnItemClickedListener() {
+ return mOnItemClickedListener;
+ }
}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/AppLauncher.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/AppLauncher.java
index 0ce9ae3b23..fe9e34b244 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/AppLauncher.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/AppLauncher.java
@@ -2,6 +2,7 @@ package com.mogo.module.apps.applaunch;
import android.content.Context;
+import com.mogo.module.apps.AppServiceHandler;
import com.mogo.module.apps.R;
import com.mogo.module.apps.model.AppInfo;
import com.mogo.module.apps.utils.LaunchUtils;
@@ -21,6 +22,7 @@ public class AppLauncher extends BaseAppLauncher {
@Override
public void launch( Context context, AppInfo appInfo ) {
try {
+ AppServiceHandler.getApis().getAdasControllerApi().closeADAS();
LaunchUtils.launchByPkg( context, appInfo.getPackageName() );
} catch ( Exception e ) {
Logger.e( TAG, e, "error." );
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/InternalFunctionLauncher.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/InternalFunctionLauncher.java
new file mode 100644
index 0000000000..5db46d1315
--- /dev/null
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/InternalFunctionLauncher.java
@@ -0,0 +1,47 @@
+package com.mogo.module.apps.applaunch;
+
+import android.app.Activity;
+import android.content.Context;
+
+import com.mogo.module.apps.AppServiceHandler;
+import com.mogo.module.apps.AppsListActivity;
+import com.mogo.module.apps.model.AppInfo;
+
+/**
+ * @author congtaowang
+ * @since 2020-05-14
+ *
+ * 描述
+ */
+public class InternalFunctionLauncher extends BaseAppLauncher {
+
+ private Activity mActivity;
+
+ public InternalFunctionLauncher( Activity activity ) {
+ this.mActivity = activity;
+ }
+
+ @Override
+ public void launch( Context context, AppInfo appInfo ) {
+ switch ( appInfo.getPackageName() ) {
+ case "com.mogo.launcher.navi.search":
+ AppServiceHandler.getApis().getSearchManagerApi().showSearch();
+ break;
+ case "com.mogo.launcher.applist":
+ AppServiceHandler.getApis().getAdasControllerApi().closeADAS();
+ AppsListActivity.start( mActivity );
+ break;
+ default:
+ if ( getNext() != null ) {
+ getNext().launch( context, appInfo );
+ }
+ }
+ }
+
+ @Override
+ public void destroy() {
+ if ( getNext() != null ) {
+ getNext().destroy();
+ }
+ }
+}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApp.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApp.java
index d5f7df5b9b..9681af74b6 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApp.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApp.java
@@ -15,44 +15,18 @@ public class NavigatorApp {
@DrawableRes
public int mUncheckedIconId;
public String mName;
- public String mModuleType;
- public NavigatorApp( int mIconId,int mUncheckedIconId, String mName, String mModuleType ) {
+ public NavigatorApp( int mIconId, int mUncheckedIconId, String mName ) {
this.mIconId = mIconId;
this.mUncheckedIconId = mUncheckedIconId;
this.mName = mName;
- this.mModuleType = mModuleType;
}
- public int getmIconId() {
+ public int getIconId() {
return mIconId;
}
- public void setmIconId(int mIconId) {
- this.mIconId = mIconId;
- }
-
- public int getmUncheckedIconId() {
- return mUncheckedIconId;
- }
-
- public void setmUncheckedIconId(int mUncheckedIconId) {
- this.mUncheckedIconId = mUncheckedIconId;
- }
-
- public String getmName() {
+ public String getName() {
return mName;
}
-
- public void setmName(String mName) {
- this.mName = mName;
- }
-
- public String getmModuleType() {
- return mModuleType;
- }
-
- public void setmModuleType(String mModuleType) {
- this.mModuleType = mModuleType;
- }
}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApps.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApps.java
index 3ff8bc8b09..9e5a98be45 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApps.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApps.java
@@ -1,9 +1,6 @@
package com.mogo.module.apps.model;
import com.mogo.module.apps.R;
-import com.mogo.module.common.ModuleNames;
-import com.mogo.module.common.MogoModule;
-import com.mogo.module.common.MogoModulePaths;
import java.util.ArrayList;
import java.util.List;
@@ -16,48 +13,15 @@ import java.util.List;
*/
public class NavigatorApps {
- public static List< NavigatorApp > getApps() {
- List< NavigatorApp > apps = new ArrayList<>();
- apps.add( new NavigatorApp( R.drawable.module_apps_ic_online_car,R.drawable.module_apps_ic_online_car_unchecked, "在线车辆", ModuleNames.CARD_TYPE_USER_DATA ) );
- apps.add( new NavigatorApp( R.drawable.module_apps_ic_interest, R.drawable.module_apps_ic_interest_unchecked,"新鲜事", ModuleNames.CARD_TYPE_NOVELTY ) );
- apps.add( new NavigatorApp( R.drawable.module_apps_ic_news,R.drawable.module_apps_ic_news_unchecked, "首页", ModuleNames.CARD_TYPE_BUSINESS_OPERATION ) );
- apps.add( new NavigatorApp( R.drawable.module_apps_ic_media_center, R.drawable.module_apps_ic_media_center_checked, "媒体中心", ModuleNames.CARD_TYPE_SHARE_MUSIC ) );
- apps.add( new NavigatorApp( R.drawable.module_apps_ic_chat_icon, R.drawable.module_apps_ic_chat_unchecked,"车聊聊", ModuleNames.CARD_TYPE_CARS_CHATTING ) );
- apps.add( new NavigatorApp( R.drawable.module_apps_ic_tanlu, R.drawable.module_apps_ic_tanlu_unchecked,"探路", ModuleNames.CARD_TYPE_ROAD_CONDITION ) );
- return apps;
- }
+ private static List< AppInfo > sApps = new ArrayList<>();
-// public static List< NavigatorApp > getApps() {
-// List< NavigatorApp > apps = new ArrayList<>();
-// List< MogoModule > modules = MogoModulePaths.getModules();
-// for ( MogoModule module : modules ) {
-// NavigatorApp app = getApp( module );
-// if ( app == null ) {
-// continue;
-// }
-// apps.add( app );
-// }
-// return apps;
-// }
-//
-// private static NavigatorApp getApp( MogoModule module ) {
-// if ( module == null ) {
-// return null;
-// }
-// switch ( module.getName() ) {
-// case ModuleNames.CARD_TYPE_USER_DATA:
-// return new NavigatorApp( R.drawable.module_apps_ic_online_car, R.drawable.module_apps_ic_online_car_unchecked, "在线车辆", ModuleNames.CARD_TYPE_USER_DATA );
-// case ModuleNames.CARD_TYPE_NOVELTY:
-// return new NavigatorApp( R.drawable.module_apps_ic_interest, R.drawable.module_apps_ic_interest_unchecked, "新鲜事", ModuleNames.CARD_TYPE_NOVELTY );
-// case ModuleNames.CARD_TYPE_BUSINESS_OPERATION:
-// return new NavigatorApp( R.drawable.module_apps_ic_news, R.drawable.module_apps_ic_news_unchecked, "首页", ModuleNames.CARD_TYPE_BUSINESS_OPERATION );
-// case ModuleNames.CARD_TYPE_SHARE_MUSIC:
-// return new NavigatorApp( R.drawable.module_apps_ic_media_center, R.drawable.module_apps_ic_media_center_checked, "媒体中心", ModuleNames.CARD_TYPE_SHARE_MUSIC );
-// case ModuleNames.CARD_TYPE_CARS_CHATTING:
-// return new NavigatorApp( R.drawable.module_apps_ic_chat_icon, R.drawable.module_apps_ic_chat_unchecked, "车聊聊", ModuleNames.CARD_TYPE_CARS_CHATTING );
-// case ModuleNames.CARD_TYPE_ROAD_CONDITION:
-// return new NavigatorApp( R.drawable.module_apps_ic_tanlu, R.drawable.module_apps_ic_tanlu_unchecked, "探路", ModuleNames.CARD_TYPE_ROAD_CONDITION );
-// }
-// return null;
-// }
+ public static List< AppInfo > getApps() {
+ if ( sApps.isEmpty() ) {
+ sApps.add( new AppInfo( "导航", "com.mogo.launcher.navi.search", "", 0, null, R.drawable.module_apps_ic_apps ) );
+ sApps.add( new AppInfo( "音乐", "com.pvetec.musics", "", 0, null, R.drawable.module_apps_ic_apps ) );
+ sApps.add( new AppInfo( "个人中心", "com.zhidao.auto.personal", "", 0, null, R.drawable.module_apps_ic_apps ) );
+ sApps.add( new AppInfo( "全部应用", "com.mogo.launcher.applist", "", 0, null, R.drawable.module_apps_ic_apps ) );
+ }
+ return sApps;
+ }
}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/utils/CardScaleTransformer.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/utils/CardScaleTransformer.java
deleted file mode 100644
index 771fc71f2d..0000000000
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/utils/CardScaleTransformer.java
+++ /dev/null
@@ -1,122 +0,0 @@
-package com.mogo.module.apps.utils;
-
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.TextView;
-import androidx.annotation.FloatRange;
-import androidx.core.content.ContextCompat;
-import androidx.recyclerview.widget.RecyclerView;
-import com.mogo.module.apps.R;
-import com.mogo.module.apps.model.NavigatorApp;
-import com.yarolegovich.discretescrollview.transform.DiscreteScrollItemTransformer;
-import com.yarolegovich.discretescrollview.transform.Pivot;
-import com.yarolegovich.discretescrollview.transform.ScaleTransformer;
-import java.util.List;
-
-/**
- * @author zyz
- * 2020-03-11.
- */
-public class CardScaleTransformer implements DiscreteScrollItemTransformer {
-
- private Pivot pivotX;
- private Pivot pivotY;
- private float minScale;
- private float maxMinDiff;
- private static final int CARD_SIZE = 6;
-
- List apps;
-
- public CardScaleTransformer() {
- pivotX = Pivot.X.CENTER.create();
- pivotY = Pivot.Y.BOTTOM.create();
- minScale = 0.8f;
- maxMinDiff = 0.2f;
- }
-
- public void setApps(List apps) {
- this.apps = apps;
- }
-
- @Override
- public void transformItem(View item, RecyclerView.ViewHolder childViewHolder, float position) {
-
- ImageView ivItem = item.findViewById(R.id.module_apps_id_app_icon);
-
- TextView tvTitle = item.findViewById(R.id.module_apps_id_app_name);
- NavigatorApp tag = (NavigatorApp) item.getTag();
-
- pivotX.setOn(ivItem);
- pivotY.setOn(ivItem);
- float closenessToCenter = 1f - Math.abs(position);
- float scale = minScale + maxMinDiff * closenessToCenter;
- ivItem.setScaleX(scale);
- ivItem.setScaleY(scale);
-
- if (tag != null) {
- if (scale == 1) {
- ivItem.setImageResource(tag.getmIconId());
- tvTitle.setTextColor(ContextCompat.getColor(item.getContext(),R.color.white));
- } else {
- ivItem.setImageResource(tag.getmUncheckedIconId());
- tvTitle.setTextColor(ContextCompat.getColor(item.getContext(),R.color.white_80));
- }
-
- }
-
- //int currentPosition = (position - 2) % CARD_SIZE;
-
- }
-
- public static class Builder {
-
- private CardScaleTransformer transformer;
- private float maxScale;
-
- public Builder() {
- transformer = new CardScaleTransformer();
- maxScale = 1f;
- }
-
- public Builder setMinScale(@FloatRange(from = 0.01) float scale) {
- transformer.minScale = scale;
- return this;
- }
-
- public Builder setMaxScale(@FloatRange(from = 0.01) float scale) {
- maxScale = scale;
- return this;
- }
-
- public Builder setPivotX(Pivot.X pivotX) {
- return setPivotX(pivotX.create());
- }
-
- public Builder setPivotX(Pivot pivot) {
- assertAxis(pivot, Pivot.AXIS_X);
- transformer.pivotX = pivot;
- return this;
- }
-
- public Builder setPivotY(Pivot.Y pivotY) {
- return setPivotY(pivotY.create());
- }
-
- public Builder setPivotY(Pivot pivot) {
- assertAxis(pivot, Pivot.AXIS_Y);
- transformer.pivotY = pivot;
- return this;
- }
-
- public CardScaleTransformer build() {
- transformer.maxMinDiff = maxScale - transformer.minScale;
- return transformer;
- }
-
- private void assertAxis(Pivot pivot, @Pivot.Axis int axis) {
- if (pivot.getAxis() != axis) {
- throw new IllegalArgumentException("You passed a Pivot for wrong axis.");
- }
- }
- }
-}
diff --git a/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml b/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml
index 35a825c7c5..2ea21751a8 100644
--- a/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml
+++ b/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml
@@ -1,46 +1,16 @@
+ android:paddingBottom="@dimen/module_apps_navigation_icon_paddingBottom">
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/modules/mogo-module-apps/src/main/res/layout/module_apps_item_app_indicator.xml b/modules/mogo-module-apps/src/main/res/layout/module_apps_item_app_indicator.xml
index 8e02e01c0e..3e37557a76 100644
--- a/modules/mogo-module-apps/src/main/res/layout/module_apps_item_app_indicator.xml
+++ b/modules/mogo-module-apps/src/main/res/layout/module_apps_item_app_indicator.xml
@@ -2,23 +2,13 @@
-
-
+ android:layout_width="@dimen/module_apps_all_icon_width"
+ android:layout_height="@dimen/module_apps_all_icon_height"
+ android:scaleType="fitXY" />
\ No newline at end of file
diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeProvider.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeProvider.kt
index 4627cf25e8..7db66447cd 100644
--- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeProvider.kt
+++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeProvider.kt
@@ -64,7 +64,9 @@ class MogoAuthorizeProvider : IMogoModuleProvider {
}
override fun init(context: Context?) {
- if (isDeviceOfD() && hasGuide() && mogoAuthShow.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_MAIN)) {
+ //todo 引导判断暂时去掉 后续引导流程更改完再放开
+// todo if (isDeviceOfD() && hasGuide() && mogoAuthShow.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_MAIN)) {
+ if (isDeviceOfD() && mogoAuthShow.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_MAIN)) {
mogoAuthShow.invokeAuthorizeForShow()
} else {
//首次进入Launcher同步一下授权状态,防止由于用户清除数据造成首次加载还会出现授权状态不同步问题
diff --git a/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToLauncherModuleProvider.java b/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToLauncherModuleProvider.java
index c7fc69be71..74c6826eed 100644
--- a/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToLauncherModuleProvider.java
+++ b/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToLauncherModuleProvider.java
@@ -10,15 +10,12 @@ import androidx.fragment.app.Fragment;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
-import com.alibaba.idst.nls.internal.utils.L;
-import com.mogo.commons.AbsMogoApplication;
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.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
-import com.mogo.service.fragmentmanager.IMogoFragmentManager;
import com.mogo.service.intent.IMogoIntentListener;
import com.mogo.service.intent.IMogoIntentManager;
import com.mogo.service.module.IMogoModuleLifecycle;
@@ -104,7 +101,7 @@ public class BackToLauncherModuleProvider implements IMogoModuleProvider, IMogoI
mServiceApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation();
mIntentManager = mServiceApis.getIntentManagerApi();
mIntentManager.registerIntentListener( COMMAND_BACK, this );
- BackToMainHomeManager.init( mServiceApis.getFragmentManagerApi(), mServiceApis.getStatusManagerApi() );
+ BackToMainHomeManager.init( mServiceApis );
}
@Override
diff --git a/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToMainHomeManager.java b/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToMainHomeManager.java
index 64fb84055d..93a1eec5d3 100644
--- a/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToMainHomeManager.java
+++ b/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToMainHomeManager.java
@@ -11,6 +11,7 @@ import android.view.WindowManager;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.module.back.utils.WindowManagerViewHelper;
+import com.mogo.service.IMogoServiceApis;
import com.mogo.service.fragmentmanager.IMogoFragmentManager;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.utils.AppUtils;
@@ -24,10 +25,12 @@ public class BackToMainHomeManager {
private static IMogoFragmentManager mFragmentManager;
private static IMogoStatusManager mStatusManager;
+ private static IMogoServiceApis mApis;
- public static void init( IMogoFragmentManager manager, IMogoStatusManager statusManager ) {
- mFragmentManager = manager;
- mStatusManager = statusManager;
+ public static void init( IMogoServiceApis apis ) {
+ mApis = apis;
+ mFragmentManager = apis.getFragmentManagerApi();
+ mStatusManager = apis.getStatusManagerApi();
}
public static void backToLauncher() {
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java
index 3581fa2353..6621be43bd 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java
@@ -202,7 +202,7 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements
switch ( descriptor ) {
case APP_LIST_UI:
case SEARCH_UI:
- changeAutoSwitchVoiceTipsWordsStatus( !isTrue );
+// changeAutoSwitchVoiceTipsWordsStatus( !isTrue );
break;
}
}
@@ -210,13 +210,13 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements
@Override
public void onResume( @NonNull LifecycleOwner owner ) {
super.onResume( owner );
- changeAutoSwitchVoiceTipsWordsStatus( true );
+// changeAutoSwitchVoiceTipsWordsStatus( true );
}
@Override
public void onPause( @NonNull LifecycleOwner owner ) {
super.onPause( owner );
- changeAutoSwitchVoiceTipsWordsStatus( true );
+// changeAutoSwitchVoiceTipsWordsStatus( true );
}
private void changeAutoSwitchVoiceTipsWordsStatus( boolean autoChange ) {
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
index e5aeabede9..7d95097c3e 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
@@ -77,12 +77,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
private static final String TAG = "EntranceFragment";
- private View mSearch;
-
- private View mCommonAddress;
- private View mHome;
- private View mCompany;
-
private View mUploadRoadCondition;
private TextView mUpload;
private ImageView mUploading;
@@ -188,29 +182,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mStatusManager = mApis.getStatusManagerApi();
- mCommonAddress = findViewById( R.id.module_entrance_id_common_address );
-
- mSearch = findViewById( R.id.module_entrance_id_search );
-
- mSearch.setOnClickListener( view -> {
- mApis.getAddressManagerApi().goSearch();
- mApis.getAdasControllerApi().closeADAS();
- } );
-
- mHome = findViewById( R.id.module_entrance_id_home );
- mHome.setOnClickListener( view -> {
- mMogoAddressManager.goHome();
- mApis.getAdasControllerApi().closeADAS();
-
- } );
-
- mCompany = findViewById( R.id.module_entrance_id_company );
- mCompany.setOnClickListener( view -> {
- mMogoAddressManager.goCompany();
- mApis.getAdasControllerApi().closeADAS();
-
- } );
-
mUploadRoadCondition = findViewById( R.id.module_entrance_id_upload_road_condition );
mUpload = findViewById( R.id.module_entrance_id_upload );
mUploading = findViewById( R.id.module_entrance_id_uploading );
@@ -354,14 +325,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
}
- @Override
- public void onInitNaviFailure() {
- }
-
- @Override
- public void onInitNaviSuccess() {
- }
-
@Override
public void onNaviInfoUpdate( MogoNaviInfo naviinfo ) {
if ( naviinfo == null ) {
@@ -372,8 +335,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
@Override
public void onStartNavi() {
- mSearch.setVisibility( View.GONE );
- mCommonAddress.setVisibility( View.GONE );
mNaviInfo.setVisibility( View.VISIBLE );
mCameraMode.setVisibility( View.VISIBLE );
mExitNavi.setVisibility( View.VISIBLE );
@@ -386,8 +347,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
@Override
public void onStopNavi() {
- mSearch.setVisibility( View.VISIBLE );
- mCommonAddress.setVisibility( View.VISIBLE );
mNaviInfo.setVisibility( View.GONE );
mCameraMode.setVisibility( View.GONE );
mExitNavi.setVisibility( View.GONE );
@@ -396,18 +355,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
MapCenterPointStrategy.setMapCenterPointByScene( mMApUIController, Scene.AIMLESS );
}
- @Override
- public void onCalculateSuccess() {
- }
-
- @Override
- public void onoCalculateFailed() {
- }
-
- @Override
- public void onUpdateTraffic( MogoTraffic traffic ) {
- }
-
@Override
public void onUpdateTraffic2( MogoTraffic traffic ) {
if ( traffic == null ) {
@@ -423,31 +370,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
}
}
- @Override
- public void onUpdateCongestion( MogoCongestionInfo info ) {
-
- }
-
- @Override
- public void onMapLoaded() {
-
- }
-
- @Override
- public void onTouch( MotionEvent motionEvent ) {
-
- }
-
- @Override
- public void onPOIClick( MogoPoi poi ) {
-
- }
-
- @Override
- public void onMapClick( MogoLatLng latLng ) {
-
- }
-
@Override
public void onLockMap( boolean isLock ) {
mIsLock = isLock;
@@ -461,16 +383,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
}
}
- @Override
- public void onMapModeChanged( EnumMapUI ui ) {
-
- }
-
- @Override
- public void onMapChanged( MogoLatLng latLng, float zoom, float tilt, float bearing ) {
-
- }
-
private void traceData( String from ) {
Map< String, Object > properties = new HashMap<>();
properties.put( "from", from );
diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml
index 42400dbae6..6e91ac92d1 100644
--- a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml
+++ b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml
@@ -5,73 +5,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ app:layout_goneMarginRight="@dimen/module_ext_operation_panel_share_goneMarginRight">
+
+
+ android:textSize="@dimen/module_ext_operation_panel_share_textSize"
+ android:visibility="gone" />
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 2ad11ae82e..debafa9007 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
@@ -24,17 +24,12 @@ import com.mogo.module.common.MogoModulePaths;
import com.mogo.module.common.map.MapCenterPointStrategy;
import com.mogo.module.common.map.Scene;
import com.mogo.module.main.cards.CardIntroduceConfigs;
-import com.mogo.module.main.cards.CardModulesAdapter;
-import com.mogo.module.main.cards.HorizentalStackTransformer;
import com.mogo.module.main.cards.MogoModulesHandler;
import com.mogo.module.main.cards.MogoModulesManager;
-import com.mogo.module.main.cards.OnPageChangeListenerAdapter;
-import com.mogo.module.main.cards.OrientedViewPager;
import com.mogo.module.main.windowview.FloatingViewHandler;
import com.mogo.module.service.ServiceConst;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
-import com.mogo.service.cardmanager.IMogoCardManager;
import com.mogo.service.fragmentmanager.IMogoFragmentManager;
import com.mogo.service.map.IMogoMapService;
import com.mogo.service.module.IMogoModuleProvider;
@@ -59,22 +54,14 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
private IMogoMapService mMogoMapService;
private IMogoMapUIController mMogoMapUIController;
private MogoModulesHandler mMogoModuleHandler;
- private IMogoCardManager mMogoCardManager;
private IMogoFragmentManager mMogoFragmentManager;
private IMogoStatusManager mMogoStatusManager;
- private OrientedViewPager mCardsContainer;
- private HorizentalStackTransformer mTransformer;
- private CardModulesAdapter mCardModulesAdapter;
-
private View mHeader;
- private View mCards;
- private View mCardsBkg;
private View mApps;
private View mEntrance;
private FrameLayout mFloatingLayout;
private FrameLayout mCoverUpLayout;
- private FrameLayout mCardCoverUpBottomLayout;
private View mLeftShadowFrame;
private View mTopShadowFrame;
@@ -104,90 +91,13 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
getWindow().setBackgroundDrawable( null );
- mCardsContainer = findViewById( R.id.module_main_id_cards_container );
- mCardsContainer.setOrientation( OrientedViewPager.Orientation.HORIZONTAL );
- mTransformer = new HorizentalStackTransformer( this );
- mCardsContainer.setOnPageChangeListener( mOnPageChangeListener = new OnPageChangeListenerAdapter() {
- private boolean mIsLast = true;
- private boolean mCardFlipStatus = false;
-
- @Override
- public void onPageSelected( int position ) {
- final long start = System.currentTimeMillis();
- try {
- IMogoModuleProvider provider = mCardModulesAdapter.getProvider( mCurrentPosition );
- if ( mCurrentPosition != position ) {
- mPresenter.postTrackLastCardShowEvent( provider );
- }
- mCurrentPosition = position;
- provider = mCardModulesAdapter.getProvider( mCurrentPosition );
- mMogoModuleHandler.setModuleEnable( provider.getModuleName() );
- mMogoCardManager.invoke( position, mMogoModuleHandler.getCurrentModuleName() );
-
- if ( mLockCarStatus ) {
- mMogoStatusManager.setUserInteractionStatus( TAG, true, false );
- mMogoMapUIController.setLockZoom( 16 );
- mMogoMapUIController.recoverLockMode();
- }
- mLockCarStatus = true;
-
- } catch ( Exception e ) {
- e.printStackTrace();
- }
- Logger.i( TAG, "onPageSelected cost " + ( System.currentTimeMillis() - start ) + "ms" );
- }
-
- @Override
- public void onPageScrollStateChanged( int state ) {
- final long start = System.currentTimeMillis();
- super.onPageScrollStateChanged( state );
- if ( state == ViewPager.SCROLL_STATE_DRAGGING ) {
- if ( !mCardFlipStatus ) {
- mCardFlipStatus = true;
- final IMogoModuleProvider provider = mCardModulesAdapter.getProvider( mCurrentPosition );
- mPresenter.postTrackCardFlipEvent( provider );
- }
- } else if ( state == ViewPager.SCROLL_STATE_IDLE ) {
- mCardFlipStatus = false;
- mTransformer.resetOffsetScroll();
- }
-
- int cardSize = mCardModulesAdapter.getCount();
-
- if ( state == ViewPager.SCROLL_STATE_SETTLING ) {
- mIsLast = false;
- } else if ( state == ViewPager.SCROLL_STATE_IDLE && mIsLast ) {
- //此处为你需要的情况,再加入当前页码判断可知道是第一页还是最后一页
- if ( cardSize != 1 && mCurrentPosition == ( cardSize - 1 ) ) {
- mCardsContainer.setCurrentItem( 0, false );
- } else if ( cardSize != 1 && mCurrentPosition == 0 ) {
- mCardsContainer.setCurrentItem( cardSize - 1, false );
- }
- } else {
- mIsLast = true;
- }
- Logger.i( TAG, "onPageScrollStateChanged cost " + ( System.currentTimeMillis() - start ) + "ms" );
- }
-
- @Override
- public void onPageScrolled( int position, float positionOffset,
- int positionOffsetPixels ) {
- super.onPageScrolled( position, positionOffset, positionOffsetPixels );
- Logger.d( TAG, "pageScrolled : offset --- " + positionOffset );
- mTransformer.offsetScrollChanged( positionOffset );
- }
- } );
-
mHeader = findViewById( R.id.module_main_id_header_fragment_container );
- mCards = findViewById( R.id.module_main_id_cards_container );
- mCardsBkg = findViewById( R.id.module_main_id_cards_bkg );
mApps = findViewById( R.id.module_main_id_apps_fragment_container );
mEntrance = findViewById( R.id.module_main_id_entrance_fragment_container );
mFloatingLayout = findViewById( R.id.module_main_id_floating_view );
mLeftShadowFrame = findViewById( R.id.module_main_id_map_left_shadow_frame );
mTopShadowFrame = findViewById( R.id.module_main_id_map_top_shadow_frame );
mCoverUpLayout = findViewById( R.id.module_main_id_cover_up );
- mCardCoverUpBottomLayout = findViewById( R.id.module_main_id_card_cover_up_bottom );
// 避免事件穿透导致地图被滑动
mLeftShadowFrame.setOnClickListener( view -> {
@@ -198,27 +108,21 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
// 隐藏布局
private void hideLayout() {
mHeader.setVisibility( View.GONE );
- mCards.setVisibility( View.GONE );
mApps.setVisibility( View.GONE );
mEntrance.setVisibility( View.GONE );
mFloatingLayout.setVisibility( View.GONE );
mLeftShadowFrame.setVisibility( View.GONE );
mTopShadowFrame.setVisibility( View.GONE );
- mCardsBkg.setVisibility( View.GONE );
- mCardCoverUpBottomLayout.setVisibility( View.GONE );
}
// 显示布局
private void showLayout() {
mHeader.setVisibility( View.VISIBLE );
- mCards.setVisibility( View.VISIBLE );
mApps.setVisibility( View.VISIBLE );
mEntrance.setVisibility( View.VISIBLE );
mFloatingLayout.setVisibility( View.VISIBLE );
mLeftShadowFrame.setVisibility( View.VISIBLE );
mTopShadowFrame.setVisibility( View.VISIBLE );
- mCardsBkg.setVisibility( View.VISIBLE );
- mCardCoverUpBottomLayout.setVisibility( View.VISIBLE );
}
@Override
@@ -257,6 +161,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
loadContainerModules();
mMogoModuleHandler.loadModules();
mPresenter.delayOperations();
+ mPresenter.initADAS();
hideCoverUpLayout();
// 显示左边遮罩
@@ -272,8 +177,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
} );
mMogoModuleHandler.loadMapModule( R.id.module_main_id_map_fragment_container );
- mMogoCardManager = mServiceApis.getCardManagerApi();
-
mMogoFragmentManager = mServiceApis.getFragmentManagerApi();
mMogoFragmentManager.init( this, R.id.module_main_id_search_fragment );
mMogoFragmentManager.registerMainFragmentStackTransactionListener( ( size ) -> {
@@ -299,29 +202,20 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
mMogoModuleHandler.loadEntrancesModule( R.id.module_main_id_entrance_fragment_container );
}
- @Override
- public void postPickFirstCardEvent() {
- if ( mOnPageChangeListener != null ) {
- // 默认触发第一个卡片
- mOnPageChangeListener.onPageSelected( 0 );
- }
- mCardCoverUpBottomLayout.setVisibility( View.VISIBLE );
- }
-
@Override
public void hideCoverUpLayout() {
mCoverUpLayout.setVisibility( View.GONE );
- mCardsBkg.setVisibility( View.VISIBLE );
+ mServiceApis.getAdasControllerApi().showADAS();
}
@Override
public void loadCardModules() {
List< IMogoModuleProvider > providers = mMogoModuleHandler.loadCardsModule();
- mCardModulesAdapter = new CardModulesAdapter( this, providers );
- mCardsContainer.setOffscreenPageLimit( providers.size() );
- mCardsContainer.setPageTransformer( true, mTransformer );
- mCardsContainer.setAdapter( mCardModulesAdapter );
+// mCardModulesAdapter = new CardModulesAdapter( this, providers );
+// mCardsContainer.setOffscreenPageLimit( providers.size() );
+// mCardsContainer.setPageTransformer( true, mTransformer );
+// mCardsContainer.setAdapter( mCardModulesAdapter );
}
@NonNull
@@ -346,23 +240,15 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
@Override
public void switch2Card( String cardType, boolean lockCar ) {
- if ( mCardModulesAdapter == null ) {
- return;
- }
- mLockCarStatus = lockCar;
- int position = mCardModulesAdapter.getProviderPosition( cardType );
- if ( position != -1 ) {
- int lastFactPosition = mCardModulesAdapter.getFactPosition( mCurrentPosition );
- mCardsContainer.setCurrentItem( mCurrentPosition + position - lastFactPosition, Math.abs( lastFactPosition - position ) == 1 );
- } else {
- Logger.e( TAG, "Can't find type of %s's position", cardType );
- }
}
@Override
protected void onResume() {
super.onResume();
mMogoStatusManager.setMainPageResumeStatus( TAG, true );
+ if ( mCoverUpLayout.getVisibility() == View.VISIBLE ) {
+ mServiceApis.getAdasControllerApi().showADAS();
+ }
}
@Override
@@ -370,6 +256,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
super.onPause();
mMogoStatusManager.setMainPageResumeStatus( TAG, false );
CardIntroduceConfigs.flush( getApplicationContext() );
+ mServiceApis.getAdasControllerApi().closeADAS();
}
@Override
@@ -410,7 +297,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
mMogoModuleHandler = null;
mMogoMapService = null;
mMogoMapUIController = null;
- mMogoCardManager = null;
mMogoFragmentManager = null;
AIAssist.getInstance( this ).release();
}
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainPresenter.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainPresenter.java
index 9b002249ca..9d15afb925 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainPresenter.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainPresenter.java
@@ -1,7 +1,6 @@
package com.mogo.module.main;
import android.content.Intent;
-import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
@@ -12,7 +11,6 @@ import androidx.lifecycle.LifecycleOwner;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.mvp.Presenter;
-import com.mogo.map.navi.IMogoNavi;
import com.mogo.module.main.constants.MainConstants;
import com.mogo.module.main.livedata.CardSwitchLiveData;
import com.mogo.service.MogoServicePaths;
@@ -33,8 +31,6 @@ public class MainPresenter extends Presenter< MainView > {
// 埋点接口
private IMogoAnalytics mAnalytics;
- private long mCardStartShowTime = 0;
-
private Handler mMsgHandler = new Handler( Looper.getMainLooper() ) {
@Override
public void handleMessage( Message msg ) {
@@ -42,16 +38,6 @@ public class MainPresenter extends Presenter< MainView > {
switch ( msg.what ) {
case MainConstants.MSG_LOAD_CARD_MODULES:
mView.loadCardModules();
- mMsgHandler.sendEmptyMessageDelayed( MainConstants.MSG_LOAD_INVOKE_FIRST_CARD_PERFORM_EVENT, 1_000L );
- break;
- case MainConstants.MSG_LOAD_INVOKE_FIRST_CARD_PERFORM_EVENT:
- mView.postPickFirstCardEvent();
- break;
- case MainConstants.MSG_TRACK_LAST_CARD_DISPLAY_EVENT:
- trackLastCardShowEvent( ( IMogoModuleProvider ) msg.obj );
- break;
- case MainConstants.MSG_TRACK_CARD_FLIP_EVENT:
- trackCardFlipEvent( ( IMogoModuleProvider ) msg.obj );
break;
case MainConstants.MSG_HIDE_MAP_COVER_FRAME:
mView.hideCoverUpLayout();
@@ -65,7 +51,6 @@ public class MainPresenter extends Presenter< MainView > {
public MainPresenter( MainView view ) {
super( view );
- mCardStartShowTime = System.currentTimeMillis();
SchemeIntent.getInstance().init( getContext(), mView.getApis() );
}
@@ -81,38 +66,6 @@ public class MainPresenter extends Presenter< MainView > {
mAnalytics = ( IMogoAnalytics ) ARouter.getInstance().build( MogoServicePaths.PATH_UTILS_ANALYTICS ).navigation( getContext() );
}
- /**
- * 卡片展示时长埋点
- *
- * @param provider
- */
- public void trackLastCardShowEvent( IMogoModuleProvider provider ) {
- if ( provider == null ) {
- return;
- }
- Map< String, Object > properties = new HashMap<>();
- properties.put( "appname", provider.getAppName() );
- properties.put( "packagename", provider.getAppPackage() );
- properties.put( "activeTime", System.currentTimeMillis() - mCardStartShowTime );
- properties.put( "type", provider.getModuleName() );
- mAnalytics.track( "Launcher_Card_Show", properties );
- mCardStartShowTime = System.currentTimeMillis();
- }
-
- /**
- * 卡片滑动埋点,WTF
- */
- public void trackCardFlipEvent( IMogoModuleProvider provider ) {
- if ( provider == null ) {
- return;
- }
- Map< String, Object > properties = new HashMap<>();
- properties.put( "appname", provider.getAppName() );
- properties.put( "packagename", provider.getAppPackage() );
- properties.put( "type", provider.getModuleName() );
- mAnalytics.track( "Launcher_Card_Slide", properties );
- }
-
/**
* 延时操作
*/
@@ -121,20 +74,6 @@ public class MainPresenter extends Presenter< MainView > {
mMsgHandler.sendEmptyMessageDelayed( MainConstants.MSG_HIDE_MAP_COVER_FRAME, 150L );
}
- public void postTrackLastCardShowEvent( IMogoModuleProvider provider ) {
- Message msg = Message.obtain();
- msg.what = MainConstants.MSG_TRACK_LAST_CARD_DISPLAY_EVENT;
- msg.obj = provider;
- mMsgHandler.sendMessage( msg );
- }
-
- public void postTrackCardFlipEvent( IMogoModuleProvider provider ) {
- Message msg = Message.obtain();
- msg.what = MainConstants.MSG_TRACK_CARD_FLIP_EVENT;
- msg.obj = provider;
- mMsgHandler.sendMessage( msg );
- }
-
public void postLoadModuleMsg() {
Message msg = Message.obtain();
msg.what = MainConstants.MSG_LOAD_MODULES;
@@ -144,4 +83,8 @@ public class MainPresenter extends Presenter< MainView > {
public void handleSchemeIntent( Intent intent ) {
SchemeIntent.getInstance().handle( intent );
}
+
+ public void initADAS(){
+
+ }
}
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainView.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainView.java
index 8ab476a7c4..ec93570a23 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainView.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainView.java
@@ -23,11 +23,6 @@ public interface MainView extends IView {
*/
void loadCardModules();
- /**
- * 触发第一张卡片选中
- */
- void postPickFirstCardEvent();
-
/**
* 隐藏背景
*/
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java
index b42e719706..ed57a10838 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java
@@ -1,21 +1,9 @@
package com.mogo.module.main.cards;
-import com.mogo.map.listener.IMogoMapListener;
-import com.mogo.map.location.IMogoLocationClient;
-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.IMogoCarLocationChangedListener2;
-import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.service.module.IMogoModuleProvider;
-import java.util.Collection;
import java.util.List;
-import javax.security.auth.callback.Callback;
-
/**
* @author congtaowang
* @since 2019-12-24
@@ -64,22 +52,8 @@ public interface MogoModulesHandler {
*/
void loadEntrancesModule( int containerId );
- /**
- * 设置某一个module可用
- *
- * @param module
- */
- void setModuleEnable( String module );
-
/**
* 销毁
*/
void destroy();
-
- /**
- * 当前卡片名称
- *
- * @return
- */
- String getCurrentModuleName();
}
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java
index be86c4e7ad..bc4f9ae071 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java
@@ -1,7 +1,6 @@
package com.mogo.module.main.cards;
import android.content.Context;
-import android.text.TextUtils;
import androidx.fragment.app.Fragment;
@@ -11,24 +10,13 @@ import com.mogo.module.common.MogoModulePaths;
import com.mogo.module.extensions.ExtensionsModuleConst;
import com.mogo.module.main.EventDispatchCenter;
import com.mogo.module.main.MainActivity;
-import com.mogo.module.main.registercenter.MogoRegisterCenterHandler;
import com.mogo.service.IMogoServiceApis;
-import com.mogo.service.MogoServicePaths;
-import com.mogo.service.intent.IMogoIntentManager;
-import com.mogo.service.module.IMogoModuleLifecycle;
import com.mogo.service.module.IMogoModuleProvider;
-import com.mogo.service.module.ModuleType;
import com.mogo.utils.ResourcesHelper;
import com.mogo.utils.logger.Logger;
-import com.mogo.utils.network.utils.GsonUtil;
-import com.mogo.utils.storage.SharedPrefsMgr;
-
-import org.json.JSONArray;
-import org.json.JSONException;
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -38,7 +26,7 @@ import java.util.Map;
*
* 卡片加载
*/
-public class MogoModulesManager implements MogoModulesHandler{
+public class MogoModulesManager implements MogoModulesHandler {
private static final String TAG = "MogoModulesManager";
@@ -48,17 +36,12 @@ public class MogoModulesManager implements MogoModulesHandler{
// 空间换效率
private Map< String, IMogoModuleProvider > mModuleNameProviders = new HashMap<>();
- private String mEnableModuleName = null;
-
- public static final String KEY_SORTED_CARD_MODULES = "sortedCards";
- private List< String > mSortedCards = new ArrayList<>();
-
- public MogoModulesManager( MainActivity activity , IMogoServiceApis apis) {
+ public MogoModulesManager( MainActivity activity, IMogoServiceApis apis ) {
if ( activity == null ) {
throw new NullPointerException( "activity can't be null." );
}
this.mActivity = activity;
- EventDispatchCenter.getInstance().registerReceiver(apis.getIntentManagerApi());
+ EventDispatchCenter.getInstance().registerReceiver( apis.getIntentManagerApi() );
CardIntroduceConfigs.init( getContext(), apis );
}
@@ -88,61 +71,13 @@ public class MogoModulesManager implements MogoModulesHandler{
@Override
public List< IMogoModuleProvider > loadCardsModule() {
- String sortedJson = SharedPrefsMgr.getInstance( getContext() ).getString( KEY_SORTED_CARD_MODULES );
- try {
- JSONArray array = new JSONArray( sortedJson );
- mSortedCards = new ArrayList<>( array.length() );
- for ( int i = 0; i < array.length(); i++ ) {
- mSortedCards.add( array.getString( i ) );
- }
- Logger.d( TAG, "Last cache card: %s", mSortedCards );
- } catch ( JSONException e ) {
- e.printStackTrace();
- }
-
final List< MogoModule > modules = MogoModulePaths.getModules();
final ArrayList< IMogoModuleProvider > providers = new ArrayList<>();
for ( MogoModule module : modules ) {
IMogoModuleProvider provider = mModuleProviders.get( module );
- if ( provider.getType() == ModuleType.TYPE_CARD_FRAGMENT ) {
- if ( mEnableModuleName == null ) {
- mEnableModuleName = provider.getModuleName();
- }
- providers.add( provider );
- }
+ providers.add( provider );
}
return providers;
-// return sort( providers ); v2.0.2暂不支持变顺序
- }
-
- private List< IMogoModuleProvider > sort( List< IMogoModuleProvider > modules ) {
- if ( modules == null || modules.size() == 0 ) {
- return modules;
- }
- if ( mSortedCards == null ) {
- mSortedCards = new ArrayList<>();
- }
- List< IMogoModuleProvider > sortedList = new ArrayList<>( modules.size() );
-
- for ( String sortedCard : mSortedCards ) {
- for ( IMogoModuleProvider module : modules ) {
- if ( TextUtils.equals( module.getModuleName(), sortedCard ) ) {
- sortedList.add( module );
- Logger.d( TAG, "%s sorted.", sortedCard );
- break;
- }
- }
- }
- for ( IMogoModuleProvider module : modules ) {
- if ( !sortedList.contains( module ) ) {
- sortedList.add( module );
- }
- }
- mSortedCards.clear();
- for ( IMogoModuleProvider provider : sortedList ) {
- mSortedCards.add( provider.getModuleName() );
- }
- return sortedList;
}
@Override
@@ -183,14 +118,12 @@ public class MogoModulesManager implements MogoModulesHandler{
private void addFragment( IMogoModuleProvider provider, int containerId ) {
if ( provider == null ) {
- Logger.e( TAG, "add fragment fail cause provider == null, container is %s",
- ResourcesHelper.getResNameById( getApplicationContext(), containerId ) );
+ Logger.e( TAG, "add fragment fail cause provider == null, container is %s", ResourcesHelper.getResNameById( getApplicationContext(), containerId ) );
return;
}
final Fragment fragment = provider.createFragment( getContext(), null );
if ( fragment == null ) {
- Logger.e( TAG, "add fragment fail cause fragment == null, container is %s",
- ResourcesHelper.getResNameById( getApplicationContext(), containerId ) );
+ Logger.e( TAG, "add fragment fail cause fragment == null, container is %s", ResourcesHelper.getResNameById( getApplicationContext(), containerId ) );
return;
}
mActivity.getSupportFragmentManager().beginTransaction()
@@ -198,52 +131,6 @@ public class MogoModulesManager implements MogoModulesHandler{
.commitAllowingStateLoss();
}
- @Override
- public void setModuleEnable( String module ) {
- final long start1 = System.currentTimeMillis();
- // 仅操作上一个模块和当前模块
- Iterator< IMogoModuleProvider > iterator = mModuleProviders.values().iterator();
- int counter = 0;
-
- // 上一个卡片设置为 disable
- IMogoModuleProvider prev = mModuleNameProviders.get( mEnableModuleName );
- if ( prev != null ) {
- final IMogoModuleLifecycle lifecycle = MogoRegisterCenterHandler.getInstance().getLifecycleListener( mEnableModuleName );
- if ( lifecycle != null ) {
- try {
- final long start = System.currentTimeMillis();
- lifecycle.onDisable();
- Logger.i( TAG, "set %s module disable event cost " + ( System.currentTimeMillis() - start ) + "ms", mEnableModuleName );
- } catch ( Exception e ) {
- Logger.e( TAG, e, "error." );
- }
- }
- }
-
- // 当前卡片设置为 perform
- IMogoModuleProvider current = mModuleNameProviders.get( module );
- if ( current != null ) {
- final IMogoModuleLifecycle lifecycle = MogoRegisterCenterHandler.getInstance().getLifecycleListener( module );
- if ( lifecycle != null ) {
- try {
- final long start = System.currentTimeMillis();
- lifecycle.onPerform();
- Logger.i( TAG, "set %s module perform event cost " + ( System.currentTimeMillis() - start ) + "ms", module );
- } catch ( Exception e ) {
- Logger.e( TAG, e, "error." );
- }
- }
- }
-
- mEnableModuleName = module;
- mSortedCards.remove( mEnableModuleName );
- mSortedCards.add( 0, mEnableModuleName );
- SharedPrefsMgr.getInstance( getContext() ).putString( KEY_SORTED_CARD_MODULES, GsonUtil.jsonFromObject( mSortedCards ) );
- Logger.i( TAG, "enable & disable card cost " + ( System.currentTimeMillis() - start1 ) + "ms" );
-
- CardIntroduceConfigs.broadcastCardIntroduce( mActivity, mEnableModuleName );
- }
-
@Override
public void destroy() {
mActivity = null;
@@ -251,11 +138,5 @@ public class MogoModulesManager implements MogoModulesHandler{
mModuleProviders.clear();
}
mModuleProviders = null;
- mEnableModuleName = null;
- }
-
- @Override
- public String getCurrentModuleName() {
- return mEnableModuleName;
}
}
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/constants/MainConstants.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/constants/MainConstants.java
index 5689102e6d..deb859893a 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/constants/MainConstants.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/constants/MainConstants.java
@@ -13,21 +13,6 @@ public class MainConstants {
*/
public static final int MSG_LOAD_CARD_MODULES = 5000;
- /**
- * 消息:触发第一张卡片的onPerform 时间
- */
- public static final int MSG_LOAD_INVOKE_FIRST_CARD_PERFORM_EVENT = 5001;
-
- /**
- * 消息:卡片展示事件
- */
- public static final int MSG_TRACK_LAST_CARD_DISPLAY_EVENT = 5002;
-
- /**
- * 消息:卡片滑动事件
- */
- public static final int MSG_TRACK_CARD_FLIP_EVENT = 5003;
-
/**
* 消息:隐藏地图遮罩(避免地图加载白屏)
*/
diff --git a/modules/mogo-module-main/src/main/res/drawable-ldpi/module_main_card_cover_up_bottom.png b/modules/mogo-module-main/src/main/res/drawable-ldpi/module_main_card_cover_up_bottom.png
deleted file mode 100644
index 84957fe291..0000000000
Binary files a/modules/mogo-module-main/src/main/res/drawable-ldpi/module_main_card_cover_up_bottom.png and /dev/null differ
diff --git a/modules/mogo-module-main/src/main/res/drawable-xhdpi/module_main_card_cover_up_bottom.png b/modules/mogo-module-main/src/main/res/drawable-xhdpi/module_main_card_cover_up_bottom.png
deleted file mode 100644
index e15483dbfb..0000000000
Binary files a/modules/mogo-module-main/src/main/res/drawable-xhdpi/module_main_card_cover_up_bottom.png and /dev/null differ
diff --git a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml
index 6be848e190..9ba1c6ea16 100644
--- a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml
+++ b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml
@@ -37,40 +37,14 @@
android:layout_marginLeft="@dimen/module_main_card_container_marginLeft"
android:layout_marginTop="@dimen/module_main_card_container_marginTop">
-
-
-
-
-
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 127ad28b9e..a1cec4be2c 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
@@ -20,11 +20,8 @@ import com.mogo.map.navi.IMogoNavi;
import com.mogo.map.navi.IMogoNaviListener2;
import com.mogo.map.navi.MogoNaviConfig;
import com.mogo.map.navi.MogoNaviInfo;
-import com.mogo.map.navi.MogoTraffic;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.MapControlResult;
-import com.mogo.module.common.map.MapCenterPointStrategy;
-import com.mogo.module.common.map.Scene;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.intent.IMogoIntentListener;
@@ -242,7 +239,7 @@ public class MapPresenter extends Presenter< MapView > implements
Logger.d( TAG, "未开始导航." );
return;
}
- if ( mStatusManager.isADASShow() ) {
+ if ( mStatusManager.isV2XShow() ) {
Logger.d( TAG, "ADAS模式忽略该请求." );
return;
}
@@ -282,8 +279,8 @@ public class MapPresenter extends Presenter< MapView > implements
mMogoMapService.getMapUIController().recoverLockMode();//缩放地图会导致锁车发生改变,这里强制锁车
}, 1_000 );
} else {
- // 20s后锁车刷新
- mRefreshStrategyController.restartAutoRefreshAtTime( 20_000 );
+ // 30s后锁车刷新
+ mRefreshStrategyController.restartAutoRefreshAtTime( 30_000 );
}
}
@@ -461,46 +458,6 @@ public class MapPresenter extends Presenter< MapView > implements
}
}
- @Override
- public void onCmdAction( String speakText ) {
-
- }
-
- @Override
- public void onCmdCancel( String speakText ) {
-
- }
-
- @Override
- public void onSpeakEnd( String speakText ) {
-
- }
-
- @Override
- public void onSpeakSelectTimeOut( String speakText ) {
-
- }
-
- @Override
- public void onArriveDestination() {
-
- }
-
- @Override
- public void onEndEmulatorNavi() {
-
- }
-
- @Override
- public void onInitNaviFailure() {
-
- }
-
- @Override
- public void onInitNaviSuccess() {
-
- }
-
@Override
public void onNaviInfoUpdate( MogoNaviInfo naviinfo ) {
MapBroadCastHelper.getInstance( getContext() ).notifyXiaozhi( naviinfo );
@@ -515,19 +472,4 @@ public class MapPresenter extends Presenter< MapView > implements
public void onStopNavi() {
MapBroadCastHelper.getInstance( getContext() ).stopNavi();
}
-
- @Override
- public void onCalculateSuccess() {
-
- }
-
- @Override
- public void onoCalculateFailed() {
-
- }
-
- @Override
- public void onUpdateTraffic( MogoTraffic traffic ) {
-
- }
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/AMapConstants.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/AMapConstants.java
index 738d2ad4bc..375936ee6b 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/AMapConstants.java
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/AMapConstants.java
@@ -47,4 +47,6 @@ public class AMapConstants {
*/
public static final String COMMAND_START_NAVI = "com.ileja.navi.route.confirm";
+ public static final String COMMAND_CHOOSE_PATH = "com.zhidao.route.choice";
+
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/DataConstants.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/DataConstants.java
index 029bbdc252..9bc52fdf63 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/DataConstants.java
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/DataConstants.java
@@ -2,6 +2,9 @@ package com.mogo.module.navi.constants;
import android.net.Uri;
+import java.util.HashMap;
+import java.util.Map;
+
/**
* @author zyz
* @since 2019-10-02
@@ -42,4 +45,32 @@ public class DataConstants {
public static final String COMPANY_ADDRESS_LATITUDE = "companyAddressLatitude";
public static final String COMPANY_ADDRESS_LONGITUDE = "companyAddressLongitude";
+ // 泛化语义
+ public static final String STRATEGY_THE_TIME_SHORTEST_PATH = "STRATEGY_THE_TIME_SHORTEST_PATH";
+ public static final String[] WORDS_STRATEGY_THE_TIME_SHORTEST_PATH = {"最快的"};
+ public static final String STRATEGY_THE_DISTANCE_SHORTEST_PATH = "STRATEGY_THE_DISTANCE_SHORTEST_PATH";
+ public static final String[] WORDS_STRATEGY_THE_DISTANCE_SHORTED_PATH = {"路程最短的"};
+
+ // 第x个选个
+ public static final String STRATEGY_THE_FIRST_PATH = "STRATEGY_THE_FIRST_PATH";
+ public static final String[] WORDS_STRATEGY_THE_FIRST_PATH = {"第一个"};
+ public static final String STRATEGY_THE_SECOND_PATH = "STRATEGY_THE_SECOND_PATH";
+ public static final String[] WORDS_STRATEGY_THE_SECOND_PATH = {"第二个"};
+ public static final String STRATEGY_THE_THIRD_PATH = "STRATEGY_THE_THIRD_PATH";
+ public static final String[] WORDS_STRATEGY_THE_THIRD_PATH = {"第三个"};
+
+ // 开始导航
+ public static final String STRATEGY_START_NAVI = "STRATEGY_START_NAVI";
+ public static final String[] WORDS_STRATEGY_START_NAVI = {"开始导航", "开始"};
+
+ public static final Map< String, String[] > sCmds = new HashMap<>();
+
+ static {
+ sCmds.put( STRATEGY_THE_TIME_SHORTEST_PATH, WORDS_STRATEGY_THE_TIME_SHORTEST_PATH );
+ sCmds.put( STRATEGY_THE_DISTANCE_SHORTEST_PATH, WORDS_STRATEGY_THE_DISTANCE_SHORTED_PATH );
+ sCmds.put( STRATEGY_THE_FIRST_PATH, WORDS_STRATEGY_THE_FIRST_PATH );
+ sCmds.put( STRATEGY_THE_SECOND_PATH, WORDS_STRATEGY_THE_SECOND_PATH );
+ sCmds.put( STRATEGY_THE_THIRD_PATH, WORDS_STRATEGY_THE_THIRD_PATH );
+ sCmds.put( STRATEGY_START_NAVI, WORDS_STRATEGY_START_NAVI );
+ }
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt
index a74f3e6118..ace72751bb 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt
@@ -14,6 +14,7 @@ import com.mogo.module.gps.simulator.GpsSimulatorConstants
import com.mogo.module.gps.simulator.IMogoGpsSimulatorManager
import com.mogo.module.guideshow.provider.GuideShowProviderConstant
import com.mogo.module.guideshow.provider.IGuideShowProvider
+import com.mogo.service.IMogoServiceApis
import com.mogo.service.MogoServicePaths
import com.mogo.service.analytics.IMogoAnalytics
import com.mogo.service.fragmentmanager.FragmentDescriptor
@@ -42,7 +43,7 @@ object SearchServiceHolder {
val mogoLauncher: IMogoLauncher = ARouter.getInstance().build(MogoServicePaths.PATH_LAUNCHER_API).navigation() as IMogoLauncher
val gpsSimulator = ARouter.getInstance().build(GpsSimulatorConstants.API_PATH).navigation() as IMogoGpsSimulatorManager
val intentManager = ARouter.getInstance().build(MogoServicePaths.PATH_INTENT_MANAGER).navigation() as IMogoIntentManager
-
+ val apis = ARouter.getInstance().navigation(IMogoServiceApis::class.java)
var geoSearch: IMogoGeoSearch? = null
fun init(context: Context) {
this.context = context
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/AddressManager.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/AddressManager.kt
index 7e57736dad..1817c3163b 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/AddressManager.kt
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/AddressManager.kt
@@ -122,6 +122,7 @@ object AddressManager {
* 回家
*/
fun goHome() {
+ closeADAS()
SearchServiceHolder.statusManager.setSearchUIShow(TAG, true)
if (homeAddress == null) {
choosePoint(DataConstants.TYPE_HOME_ADDRESS)
@@ -134,6 +135,7 @@ object AddressManager {
* 去公司
*/
fun goCompany() {
+ closeADAS()
SearchServiceHolder.statusManager.setSearchUIShow(TAG, true)
if (companyAddress == null) {
choosePoint( DataConstants.TYPE_COMPANY_ADDRESS)
@@ -146,6 +148,7 @@ object AddressManager {
* 搜索
*/
fun goSearch() {
+ closeADAS()
SearchServiceHolder.statusManager.setSearchUIShow(TAG, true)
SearchServiceHolder.fragmentManager.push(
FragmentDescriptor.Builder().fragment(SearchFragment())
@@ -160,12 +163,14 @@ object AddressManager {
*/
fun calculatePath(destination: MogoLatLng?) {
destination?.let {
+ closeADAS()
var newInstance = ChoosePathFragment.newInstance(destination)
SearchServiceHolder.push(newInstance, AMapConstants.PATH_FRAGMENT_CHOOSE_PATH)
}
}
fun categorySearch(category: String){
+ closeADAS()
val searchFragment = CategorySearchFragment.newInstance(category)
SearchServiceHolder.fragmentManager.push(FragmentDescriptor.Builder().fragment(searchFragment)
.tag(AMapConstants.PATH_FRAGMENT_SEARCH_CATEGORY)
@@ -174,6 +179,7 @@ object AddressManager {
}
fun goSettings(){
+ closeADAS()
val naviSettingFragment = NaviSettingFragment()
SearchServiceHolder.fragmentManager.push(FragmentDescriptor.Builder().fragment(naviSettingFragment)
.tag(AMapConstants.PATH_FRAGMENT_NAVI_SETTING)
@@ -181,4 +187,13 @@ object AddressManager {
.build())
}
+
+ private fun closeADAS() {
+ try {
+ SearchServiceHolder.apis.adasControllerApi.closeADAS()
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+
+ }
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/MogoAddressManager.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/MogoAddressManager.java
index 6c290d1675..8c2204f9f8 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/MogoAddressManager.java
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/MogoAddressManager.java
@@ -1,6 +1,7 @@
package com.mogo.module.navi.manager;
import android.content.Context;
+
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.map.MogoLatLng;
import com.mogo.module.navi.constants.SearchServiceHolder;
@@ -14,11 +15,13 @@ import com.mogo.service.module.IMogoAddressManager;
@Route( path = MogoServicePaths.PATH_ADDRESS_MANAGER )
public class MogoAddressManager implements IMogoAddressManager {
- @Override public void goHome() {
+ @Override
+ public void goHome() {
AddressManager.INSTANCE.goHome();
}
- @Override public void goCompany() {
+ @Override
+ public void goCompany() {
AddressManager.INSTANCE.goCompany();
}
@@ -42,9 +45,10 @@ public class MogoAddressManager implements IMogoAddressManager {
AddressManager.INSTANCE.goSettings();
}
- @Override public void init( Context context) {
- AddressManager.INSTANCE.init(context);
- SearchServiceHolder.INSTANCE.init(context);
- SettingManager.INSTANCE.init(context);
+ @Override
+ public void init( Context context ) {
+ AddressManager.INSTANCE.init( context );
+ SearchServiceHolder.INSTANCE.init( context );
+ SettingManager.INSTANCE.init( context );
}
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/adapter/CalculatePathAdapter.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/adapter/CalculatePathAdapter.java
index 338c0ff859..93d8ebb3da 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/adapter/CalculatePathAdapter.java
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/adapter/CalculatePathAdapter.java
@@ -4,7 +4,6 @@ import android.content.Context;
import android.text.TextUtils;
import android.view.View;
import com.mogo.map.navi.MogoCalculatePath;
-import com.mogo.map.search.inputtips.MogoTip;
import com.mogo.module.navi.R;
import com.mogo.module.navi.ui.adapter.base.RecycleBaseAdapter;
import com.mogo.module.navi.ui.adapter.base.RecycleViewHolder;
@@ -53,8 +52,8 @@ public class CalculatePathAdapter extends RecycleBaseAdapter
if (holder.getLayoutPosition() >= 2) {
mName.setVisibility(View.GONE);
}
- holder.setText(R.id.amap_calculate_item_strategy_time, item.getTime());
- holder.setText(R.id.amap_calculate_item_strategy_distance, item.getDistance());
+ holder.setText(R.id.amap_calculate_item_strategy_time, item.getFormattedTime());
+ holder.setText(R.id.amap_calculate_item_strategy_distance, item.getFormattedDistance());
holder.setText(R.id.amap_calculate_item_strategy_desc, item.getDesc());
if (TextUtils.isEmpty(item.getDesc())) {
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt
index f715aa8428..0abd48fc46 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt
@@ -11,25 +11,26 @@ import com.mogo.commons.voice.IMogoVoiceCmdCallBack
import com.mogo.map.MogoLatLng
import com.mogo.map.navi.IMogoNaviListener
import com.mogo.map.navi.MogoCalculatePath
-import com.mogo.map.navi.MogoNaviInfo
-import com.mogo.map.navi.MogoTraffic
-import com.mogo.module.common.MogoModulePaths
+import com.mogo.map.navi.MogoNaviConfig
import com.mogo.module.common.map.MapCenterPointStrategy
import com.mogo.module.common.map.Scene
import com.mogo.module.navi.R
import com.mogo.module.navi.constants.AMapConstants
+import com.mogo.module.navi.constants.DataConstants
import com.mogo.module.navi.constants.SearchServiceHolder
import com.mogo.module.navi.manager.SettingManager
import com.mogo.module.navi.ui.adapter.CalculatePathAdapter
import com.mogo.module.navi.ui.base.BaseFragment
import com.mogo.service.intent.IMogoIntentListener
import com.mogo.utils.UiThreadHandler
+import com.mogo.utils.logger.Logger
import kotlinx.android.synthetic.main.fragment_search_category.group_path
import kotlinx.android.synthetic.main.fragment_search_category.pb_path
import kotlinx.android.synthetic.main.fragment_search_category.rv_search_result
import kotlinx.android.synthetic.main.fragment_search_category.tv_navi_navi
import kotlinx.android.synthetic.main.include_search_bar.et_navi_search
import kotlinx.android.synthetic.main.include_search_bar.iv_navi_back
+import org.json.JSONObject
/**
* @author zyz
@@ -37,24 +38,34 @@ import kotlinx.android.synthetic.main.include_search_bar.iv_navi_back
*/
class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallBack, IMogoIntentListener {
+ private var mTimeShortestPosition = -1
+ private var mDistanceShortestPosition = -1
+
override fun onCmdSelected(cmd: String?) {
when (cmd) {
- "firstPath" -> {
+ DataConstants.STRATEGY_THE_FIRST_PATH -> {
selectItem(0)
startNavi()
-
}
- "secondPath" -> {
+ DataConstants.STRATEGY_THE_SECOND_PATH -> {
selectItem(1)
startNavi()
-
}
- "thirdPath" -> {
+ DataConstants.STRATEGY_THE_THIRD_PATH -> {
selectItem(2)
startNavi()
-
}
- "startNavi" -> {
+ DataConstants.STRATEGY_START_NAVI -> {
+ startNavi()
+ }
+ DataConstants.STRATEGY_THE_DISTANCE_SHORTEST_PATH -> {
+ // 路程最短
+ selectItem(mDistanceShortestPosition)
+ startNavi()
+ }
+ DataConstants.STRATEGY_THE_TIME_SHORTEST_PATH -> {
+ // 时间最短
+ selectItem(mTimeShortestPosition)
startNavi()
}
"retry" -> {
@@ -63,45 +74,15 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
"cancel" -> {
SearchServiceHolder.fragmentManager.clearAll()
}
-
}
-
}
private fun selectItem(index: Int) {
-
- if (mAdapter.list.size > index) {
+ if (mAdapter.list.size > index && index > 0) {
selectPath(mAdapter.list[index])
}
}
- override fun onCmdAction(speakText: String?) {
- }
-
- override fun onCmdCancel(speakText: String?) {
- }
-
- override fun onSpeakEnd(speakText: String?) {
- }
-
- override fun onSpeakSelectTimeOut(speakText: String?) {
- }
-
- override fun onInitNaviFailure() {
- }
-
- override fun onInitNaviSuccess() {
- }
-
- override fun onNaviInfoUpdate(naviinfo: MogoNaviInfo?) {
- }
-
- override fun onStartNavi() {
- }
-
- override fun onStopNavi() {
- }
-
override fun onCalculateSuccess() {
var calculatedStrategies = SearchServiceHolder.getNavi().calculatedStrategies
if (calculatedStrategies != null && calculatedStrategies.size > 0) {
@@ -115,9 +96,33 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
return@postDelayed
}
SearchServiceHolder.getNavi().itemClickInteraction.onItemClicked(calculatedStrategies[0].tagId)
+
+ if (calculatedStrategies.size == 1) {
+ // 一条路线,自动开启导航
+ startNavi()
+ }
}, 500L)
+
+ if (calculatedStrategies.size > 1) {
+
+ var timeShortest = Integer.MAX_VALUE
+ var distanceShortest = Integer.MAX_VALUE
+
+ for (i in 0 until calculatedStrategies.size) {
+ if (timeShortest > calculatedStrategies[i].time) {
+ timeShortest = calculatedStrategies[i].time
+ mTimeShortestPosition = i
+ }
+ if (distanceShortest > calculatedStrategies[i].distance) {
+ distanceShortest = calculatedStrategies[i].distance
+ mDistanceShortestPosition = i
+ }
+ }
+
+ Logger.d(TAG, "mTimeShortestPosition = ${mTimeShortestPosition}, mDistanceShortestPosition = $mDistanceShortestPosition")
+ AIAssist.getInstance(context).speakTTSVoice(String.format("已为你规划处%d条路线,请选择", calculatedStrategies.size))
+ }
}
- AIAssist.getInstance(context).speakTTSVoice(String.format("已为你规划处%d条路线,请选择", calculatedStrategies.size))
pb_path.visibility = View.GONE
group_path.visibility = View.GONE
tv_navi_navi.text = getString(R.string.start_navi)
@@ -132,10 +137,6 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
pb_path.visibility = View.GONE
registerRetryVoice()
-
- }
-
- override fun onUpdateTraffic(traffic: MogoTraffic?) {
}
private lateinit var mAdapter: CalculatePathAdapter
@@ -143,24 +144,16 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
return R.layout.fragment_search_category
}
- val firstPath: String = "第一个"
- val secondPath: String = "第二个"
- val thirdPath: String = "第三个"
- val startNavi: String = "开始导航"
-
var mogoTip: MogoLatLng? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mogoTip = arguments?.getParcelable(AMapConstants.KEY_PARCELABLE)
-
}
// 是否开启导航
var isStartedNavi = false
- override fun onViewCreated(
- view: View,
- savedInstanceState: Bundle?) {
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
iv_navi_back.setOnClickListener {
@@ -199,13 +192,14 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
SearchServiceHolder.getMarkerManger().removeMarkers()
- AIAssist.getInstance(context).registerUnWakeupCommand("firstPath", arrayOf(firstPath), this)
- AIAssist.getInstance(context).registerUnWakeupCommand("secondPath", arrayOf(secondPath), this)
- AIAssist.getInstance(context).registerUnWakeupCommand("thirdPath", arrayOf(thirdPath), this)
- AIAssist.getInstance(context).registerUnWakeupCommand("startNavi", arrayOf(startNavi, "开始"), this)
+ DataConstants.sCmds.entries.filter {
+ it != null && !TextUtils.isEmpty(it.key) && (it.value?.isNotEmpty() ?: false)
+ }.forEach {
+ AIAssist.getInstance(mContext).registerUnWakeupCommand(it.key, it.value, this@ChoosePathFragment)
+ }
SearchServiceHolder.intentManager.registerIntentListener(AMapConstants.COMMAND_START_NAVI, this)
-
+ SearchServiceHolder.intentManager.registerIntentListener(AMapConstants.COMMAND_CHOOSE_PATH, this)
}
private fun registerRetryVoice() {
@@ -214,7 +208,6 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
private fun unregisterRetryVoice() {
AIAssist.getInstance(context).unregisterUnWakeupCommand("retry")
-
}
private fun retry() {
@@ -227,7 +220,6 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
if (TextUtils.isEmpty(mAdapter.selectTag)) {
return
}
-// moveMapToRight()
SearchServiceHolder.getNavi().startNavi(!SettingManager.isMonitor())
SearchServiceHolder.getMapUIController().recoverLockMode()
@@ -253,21 +245,54 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
SearchServiceHolder.getNavi().clearCalculatePaths()
}
- AIAssist.getInstance(context).unregisterUnWakeupCommand("firstPath")
- AIAssist.getInstance(context).unregisterUnWakeupCommand("secondPath")
- AIAssist.getInstance(context).unregisterUnWakeupCommand("thirdPath")
- AIAssist.getInstance(context).unregisterUnWakeupCommand("startNavi")
+ DataConstants.sCmds.entries.filter {
+ it != null && !TextUtils.isEmpty(it.key) && (it.value?.isNotEmpty() ?: false)
+ }.forEach {
+ AIAssist.getInstance(mContext).unregisterUnWakeupCommand(it.key)
+ }
SearchServiceHolder.intentManager.unregisterIntentListener(AMapConstants.COMMAND_START_NAVI, this)
+ SearchServiceHolder.intentManager.unregisterIntentListener(AMapConstants.COMMAND_CHOOSE_PATH, this)
}
override fun onIntentReceived(intentStr: String?, intent: Intent?) {
- if (TextUtils.equals(AMapConstants.COMMAND_START_NAVI, intentStr)) {
- startNavi()
+ when (intentStr) {
+ AMapConstants.COMMAND_START_NAVI -> {
+ startNavi()
+ }
+ AMapConstants.COMMAND_CHOOSE_PATH -> {
+ choosePath(intent)
+ }
+ }
+ }
+
+ private fun choosePath(intent: Intent?) {
+ var dataJsonStr = intent?.getStringExtra("data") ?: ""
+ try {
+ var jsonObj = JSONObject(dataJsonStr)
+ var routePlan = jsonObj.optString("route_choice", " ")
+ when (routePlan) {
+ "fastest" -> {
+ // 时间最短
+ selectItem(mTimeShortestPosition)
+ startNavi()
+ }
+ "nearest" -> {
+ // 路程最短
+ selectItem(mDistanceShortestPosition)
+ startNavi()
+ }
+ }
+ } catch (e: Exception) {
+
}
}
companion object {
+
+ @JvmField
+ val TAG: String = "ChoosePathFragment"
+
fun newInstance(searchPoi: MogoLatLng): Fragment {
MapCenterPointStrategy.setMapCenterPointByScene(SearchServiceHolder.getMapUIController(), Scene.CALCULATE_PATH)
var bundle = Bundle()
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java
index 8b72b40756..88f0bf02e7 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java
@@ -172,7 +172,7 @@ public class MogoServices implements IMogoMapListener,
super.handleMessage( msg );
switch ( msg.what ) {
case ServiceConst.MSG_TYPE_REFRESH_DECREASE:
- if ( mStatusManager.isSearchUIShow() || mStatusManager.isADASShow() ) {
+ if ( mStatusManager.isSearchUIShow() || mStatusManager.isV2XShow() ) {
stopAutoRefreshStrategy();
return;
}
@@ -185,7 +185,7 @@ public class MogoServices implements IMogoMapListener,
}
break;
case ServiceConst.MSG_LOOP_REQUEST:
- if ( mStatusManager.isSearchUIShow() || mStatusManager.isADASShow() ) {
+ if ( mStatusManager.isSearchUIShow() || mStatusManager.isV2XShow() ) {
return;
}
if ( mLoopRequest ) {
@@ -200,7 +200,7 @@ public class MogoServices implements IMogoMapListener,
* 自动刷新:锁车、缩放比例:16、半径 2KM
*/
private void invokeAutoRefresh() {
- if ( mStatusManager.isSearchUIShow() || mStatusManager.isADASShow() ) {
+ if ( mStatusManager.isSearchUIShow() || mStatusManager.isV2XShow() ) {
mStatusManager.setUserInteractionStatus( TAG, true, false );
mUiController.recoverLockMode();
return;
@@ -230,7 +230,7 @@ public class MogoServices implements IMogoMapListener,
*/
private RefreshCallback mCustomRefreshCallback = new RefreshCallback() {
@Override
- public void onSuccess(Object o) {
+ public void onSuccess( Object o ) {
mLoopRequest = false;
// 用户手动操作地图刷新成功后,设置状态为 true,引发延时策略
mStatusManager.setUserInteractionStatus( ServiceConst.TYPE, true, true );
@@ -248,7 +248,7 @@ public class MogoServices implements IMogoMapListener,
*/
private RefreshCallback mAutoRefreshCallback = new RefreshCallback() {
@Override
- public void onSuccess(Object o) {
+ public void onSuccess( Object o ) {
mLoopRequest = false;
Logger.d( TAG, "request Success." );
invokeAutoRefreshStrategy();
@@ -348,11 +348,11 @@ public class MogoServices implements IMogoMapListener,
if ( msg.obj instanceof RefreshObject ) {
RefreshObject ro = ( ( RefreshObject ) msg.obj );
mRefreshModel.refreshData( ro.mLonLat, ro.mRadius, ro.mAmount, ro.mCallback );
- MapMarkerManager.getInstance().getOnlineCarData(ro.mLonLat);
+ MapMarkerManager.getInstance().getOnlineCarData( ro.mLonLat );
Logger.i( TAG, "刷新半径 = %s, 点 = %s, zoomLevel = %s, amount = %s", ro.mRadius, ro.mLonLat, mLastZoomLevel, ro.mAmount );
}
- } else if( msg.what == ServiceConst.MSG_LOCK_CAR ){
+ } else if ( msg.what == ServiceConst.MSG_LOCK_CAR ) {
if ( mStatusManager.isSearchUIShow() ) {
return;
}
@@ -436,8 +436,7 @@ public class MogoServices implements IMogoMapListener,
*/
private float getMapCameraFactHeight() {
try {
- return Utils.calculateLineDistance( mCameraSouthWestPosition,
- new MogoLatLng( mCameraNorthEastPosition.lat, mCameraSouthWestPosition.lng ) );
+ return Utils.calculateLineDistance( mCameraSouthWestPosition, new MogoLatLng( mCameraNorthEastPosition.lat, mCameraSouthWestPosition.lng ) );
} catch ( Exception e ) {
return ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS;
}
@@ -468,16 +467,6 @@ public class MogoServices implements IMogoMapListener,
mHandler.removeMessages( ServiceConst.MSG_TYPE_REFRESH_DECREASE );
}
- @Override
- public void onPOIClick( MogoPoi poi ) {
-
- }
-
- @Override
- public void onMapClick( MogoLatLng latLng ) {
-
- }
-
@Override
public void onLockMap( boolean isLock ) {
mThreadHandler.removeMessages( ServiceConst.MSG_LOCK_CAR );
@@ -486,15 +475,10 @@ public class MogoServices implements IMogoMapListener,
}
}
- @Override
- public void onMapModeChanged( EnumMapUI ui ) {
-
- }
-
@Override
public void onMapChanged( MogoLatLng latLng, float zoom, float tilt, float bearing ) {
- MapMarkerManager.getInstance().syncLocation( latLng.lon, latLng. lat );
+ MapMarkerManager.getInstance().syncLocation( latLng.lon, latLng.lat );
if ( mIsCameraInited ) {
mLastZoomLevel = zoom;
@@ -513,7 +497,7 @@ public class MogoServices implements IMogoMapListener,
}
// v2x // adas 状态下不做任何操作
- if ( mStatusManager.isADASShow() ) {
+ if ( mStatusManager.isV2XShow() ) {
mLastCustomRefreshCenterLocation = latLng;
mLastZoomLevel = zoom;
return;
@@ -585,7 +569,7 @@ public class MogoServices implements IMogoMapListener,
@Override
public void onCarLocationChanged2( Location latLng ) {
- if ( mStatusManager.isADASShow() ) {
+ if ( mStatusManager.isV2XShow() ) {
return;
}
@@ -637,28 +621,6 @@ public class MogoServices implements IMogoMapListener,
mThreadHandler.sendMessage( msg );
}
- @Override
- public void onInitNaviFailure() {
-
- }
-
- @Override
- public void onInitNaviSuccess() {
-
- }
-
- @Override
- public void onNaviInfoUpdate( MogoNaviInfo naviinfo ) {
- }
-
- @Override
- public void onStartNavi() {
- }
-
- @Override
- public void onStopNavi() {
- }
-
@Override
public void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ) {
//Logger.d( TAG, "状态发生改变---descriptor---" + descriptor + "----isTrue---" + isTrue );
@@ -675,7 +637,7 @@ public class MogoServices implements IMogoMapListener,
} else {
// 搜索后,打开打点策略
if ( mAutoRefreshCallback != null ) {
- mAutoRefreshCallback.onSuccess(null);
+ mAutoRefreshCallback.onSuccess( null );
}
}
break;
@@ -730,7 +692,7 @@ public class MogoServices implements IMogoMapListener,
refreshStrategy();
// ADAS关闭后,打开打点策略
if ( mAutoRefreshCallback != null ) {
- mAutoRefreshCallback.onSuccess(null);
+ mAutoRefreshCallback.onSuccess( null );
}
}
@@ -756,21 +718,6 @@ public class MogoServices implements IMogoMapListener,
notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback );
}
- @Override
- public void onCalculateSuccess() {
-
- }
-
- @Override
- public void onoCalculateFailed() {
-
- }
-
- @Override
- public void onUpdateTraffic( MogoTraffic traffic ) {
-
- }
-
@Override
public void onUpdateTraffic2( MogoTraffic traffic ) {
@@ -816,9 +763,9 @@ public class MogoServices implements IMogoMapListener,
mStatusManager.setVoiceUIShow( TAG, true );
}
} else if ( ServiceConst.COMMAND_NEXT.equals( command ) ) {
- onActionDown( MogoAction.Next );
+ onActionDone( MogoAction.Next );
} else if ( ServiceConst.COMMAND_PREVIOUS.equals( command ) ) {
- onActionDown( MogoAction.Prev );
+ onActionDone( MogoAction.Prev );
} else if ( ServiceConst.COMMAND_SWITCH_CARD.equals( command ) ) {
IntentHandlerFactory.getInstance().handle( mContext, command, intent );
} else if ( MogoReceiver.ACTION_ADAS_STATUS.equals( command ) ) {
@@ -909,9 +856,9 @@ public class MogoServices implements IMogoMapListener,
@Override
public void onCmdSelected( String cmd ) {
if ( TextUtils.equals( ServiceConst.CMD_UN_WAKE_PREV, cmd ) ) {
- onActionDown( MogoAction.Prev );
+ onActionDone( MogoAction.Prev );
} else if ( TextUtils.equals( ServiceConst.CMD_UN_WAKE_NEXT, cmd ) ) {
- onActionDown( MogoAction.Next );
+ onActionDone( MogoAction.Next );
} else if ( TextUtils.equals( ServiceConst.CMD_UN_WAKEUP_MY_LOCATION, cmd ) ) {
if ( mStatusManager.isMainPageOnResume() ) {
mUiController.recoverLockMode();
@@ -921,11 +868,11 @@ public class MogoServices implements IMogoMapListener,
}
}
- private void onActionDown(MogoAction action){
+ private void onActionDone( MogoAction action ) {
if ( !mStatusManager.isMainPageOnResume() ) {
return;
}
- if ( mStatusManager.isADASShow() ) {
+ if ( mStatusManager.isV2XShow() ) {
// 分发到V2X
mActionManager.invoke( "V2X_UI", action );
} else {
@@ -934,26 +881,6 @@ public class MogoServices implements IMogoMapListener,
}
}
- @Override
- public void onCmdAction( String speakText ) {
-
- }
-
- @Override
- public void onCmdCancel( String speakText ) {
-
- }
-
- @Override
- public void onSpeakEnd( String speakText ) {
-
- }
-
- @Override
- public void onSpeakSelectTimeOut( String speakText ) {
-
- }
-
@Override
public void onTransaction( int size ) {
if ( size == 0 ) {
@@ -968,6 +895,7 @@ public class MogoServices implements IMogoMapListener,
MapCenterPointStrategy.setMapCenterPointByScene( mUiController, Scene.AIMLESS );
}
mUiController.recoverLockMode();
+ mADASController.showADAS();
} else {
mUiController.showMyLocation( false );
AIAssist.getInstance( mContext ).registerUnWakeupCommand( ServiceConst.CMD_BACK, ServiceConst.CMD_BACK_WORDS, this );
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 0298414d3b..806a4d37a8 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
@@ -3,6 +3,7 @@ package com.mogo.module.service.marker;
import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;
+import android.util.Log;
import android.view.animation.BounceInterpolator;
import android.view.animation.OvershootInterpolator;
@@ -104,8 +105,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
// 长连接
MarkerServiceHandler.getMogoSocketManager().registerOnMessageListener( 401001, this );
- MarkerServiceHandler.getMogoCardManager().registerCardChangedListener(
- "LAUNCHER_MARKER_MODULE", this );
+ MarkerServiceHandler.getMogoCardManager().registerCardChangedListener( TAG, this );
MarkerServiceHandler.getActionManager().registerBizActionDoneListener( this );
}
@@ -257,20 +257,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
}
}
- /**
- * 关闭 Marker 详情
- *
- * @param marker 要关闭的Marker
- */
- public synchronized void closeMarkerSelect( IMogoMarker marker ) {
- // 将上次选中 Marker 设置为未选中状态
- if ( marker != null ) {
- Logger.i( TAG, "closeMarkerSelect 将出Marker详情关闭:" + marker );
- closeMarker( marker );
- mLastCheckMarker = null;
- }
- }
-
// 展开气泡
private void openMarker( IMogoMarker mogoMarker ) {
if ( mogoMarker == null ) {
@@ -282,6 +268,8 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
if ( !mogoMarker.isDestroyed() ) {
mogoMarker.setInfoWindowAdapter( UserDataMarkerInfoWindowAdapter.getInstance( mContext ) );
mogoMarker.showInfoWindow();
+ MarkerServiceHandler.getMogoStatusManager().setUserInteractionStatus( TAG, true, false );
+ MarkerServiceHandler.getMapUIController().moveToCenter( mogoMarker.getPosition() );
Logger.d( TAG, "打开info window" );
}
} else {
@@ -358,7 +346,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
} else {
mLastCheckMarker = null;
// 清空所有地图上绘制的Marker
- MarkerServiceHandler.getMarkerManager().removeMarkers();
+ MarkerServiceHandler.getMarkerManager().removeMarkersExcept( ModuleNames.CARD_TYPE_USER_DATA );
}
drawMarkerByCurrentType( mLastDataResult );
@@ -402,29 +390,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
mCurrentModuleName = ServiceConst.CARD_TYPE_BUSINESS_OPERATION;
}
- List< MarkerOnlineCar > onlineCarList = markerCardResult.getOnlineCar();
- List< MarkerExploreWay > exploreWayList = markerCardResult.getExploreWay();
- List< MarkerShareMusic > shareMusicList = markerCardResult.getShareMusic();
- List< MarkerNoveltyInfo > noveltyInfoList = markerCardResult.getNoveltyInfo();
-
- switch ( mCurrentModuleName ) {
- case ServiceConst.CARD_TYPE_BUSINESS_OPERATION:
- drawAllMarker( markerCardResult );
- break;
- case ServiceConst.CARD_TYPE_NOVELTY:
- drawNoveltyMarker( noveltyInfoList, ServiceConst.MAX_AMOUNT_SINGLE_CARD );
- break;
-// case ServiceConst.CARD_TYPE_CARS_CHATTING:
-// case ServiceConst.CARD_TYPE_USER_DATA:
-// drawOnlineCarMarkers(onlineCarList, ServiceConst.MAX_AMOUNT_SINGLE_CARD);
-// break;
- case ServiceConst.CARD_TYPE_ROAD_CONDITION:
- drawRoadConditionMarker( exploreWayList, ServiceConst.MAX_AMOUNT_SINGLE_CARD );
- break;
- case ServiceConst.CARD_TYPE_SHARE_MUSIC:
- drawShareMusicMarker( shareMusicList, ServiceConst.MAX_AMOUNT_SINGLE_CARD );
- break;
- }
+ drawAllMarker( markerCardResult );
}
/**
@@ -457,6 +423,9 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
double nearlyDistance = Float.MAX_VALUE;
int size = getAppropriateSize( maxAmount, onlineCarList );
+
+ Map< String, IMogoMarker > existCarMap = purgeCarsData( onlineCarList );
+
for ( int i = 0; i < size; i++ ) {
MarkerOnlineCar markerOnlineCar = onlineCarList.get( i );
MarkerLocation markerLocation = markerOnlineCar.getLocation();
@@ -470,9 +439,15 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
markerShowEntity.setIconUrl( markerOnlineCar.getUserInfo().getUserHead() );
}
- IMogoMarker iMogoMarker = drawMapMarker( markerShowEntity );
-// iMogoMarker.setInfoWindowAdapter(this);
- startSmooth( iMogoMarker, markerOnlineCar, markerLocation );
+ if ( markerOnlineCar.getUserInfo() == null || TextUtils.isEmpty( markerOnlineCar.getUserInfo().getSn() ) ) {
+ continue;
+ }
+ IMogoMarker mogoMarker = existCarMap.get( markerOnlineCar.getUserInfo().getSn() );
+ if ( mogoMarker == null ) {
+ Logger.d( TAG, "car [%s] need be create.", markerOnlineCar.getUserInfo().getSn() );
+ mogoMarker = drawMapMarker( markerShowEntity );
+ }
+ startSmooth( mogoMarker, markerOnlineCar, markerLocation );
// 计算在线车辆距离当前车辆的距离,每次都与最后一次距离最近的进行比较,保留距离最近的车辆,进行卡片展示
try {
@@ -489,7 +464,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
// 进行比较,保留最近的一个数据
if ( calculateDistance < nearlyDistance ) {
nearlyDistance = calculateDistance;
- mNearlyMarker = iMogoMarker;
+ mNearlyMarker = mogoMarker;
}
} catch ( Exception e ) {
@@ -519,6 +494,66 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
}
}
+ /**
+ * 根据新的在线车辆列表,选出已存在的在线车辆,并从视图和内存中移除不存在的在线车辆
+ *
+ * @param newCarsList
+ * @return
+ */
+ private Map< String, IMogoMarker > purgeCarsData( List< MarkerOnlineCar > newCarsList ) {
+
+ final long start = System.currentTimeMillis();
+ Map< String, IMogoMarker > existCarsMap = new HashMap<>();
+ List< IMogoMarker > allCarsList = MarkerServiceHandler.getMarkerManager().getMarkers( ModuleNames.CARD_TYPE_USER_DATA );
+ if ( allCarsList == null || allCarsList.isEmpty() ) {
+ return existCarsMap;
+ }
+ if ( newCarsList == null || newCarsList.isEmpty() ) {
+ return existCarsMap;
+ }
+
+ Map< String, IMogoMarker > allCarsMap = new HashMap<>();
+ for ( IMogoMarker marker : allCarsList ) {
+ String sn = getCarSnFromMarker( marker );
+ Logger.d( TAG, "sn = [%s]", sn );
+ allCarsMap.put( sn, marker );
+ }
+ for ( MarkerOnlineCar markerOnlineCar : newCarsList ) {
+ String sn = markerOnlineCar.getUserInfo().getSn();
+ if ( allCarsMap.containsKey( sn ) ) {
+ Logger.d( TAG, " car [%s] is cached.", sn );
+ existCarsMap.put( sn, allCarsMap.get( sn ) );
+ }
+ }
+ for ( String sn : allCarsMap.keySet() ) {
+ if ( !existCarsMap.containsKey( sn ) ) {
+ IMogoMarker dirtyMarker = allCarsMap.get( sn );
+ allCarsList.remove( dirtyMarker );
+ dirtyMarker.destroy();
+ Logger.d( TAG, " car [%s] is destroy.", sn );
+ }
+ }
+ allCarsMap.clear();
+ Logger.i( "timer", "purge data cost " + ( System.currentTimeMillis() - start ) + "ms" );
+ return existCarsMap;
+ }
+
+ private String getCarSnFromMarker( IMogoMarker marker ) {
+ if ( marker == null || marker.getObject() == null || marker.isDestroyed() ) {
+ return null;
+ }
+ if ( !( marker.getObject() instanceof MarkerShowEntity ) ) {
+ return null;
+ }
+ if ( !( ( ( MarkerShowEntity ) marker.getObject() ).getBindObj() instanceof MarkerOnlineCar ) ) {
+ return null;
+ }
+ if ( ( ( MarkerOnlineCar ) ( ( MarkerShowEntity ) marker.getObject() ).getBindObj() ).getUserInfo() == null ) {
+ return null;
+ }
+ return ( ( MarkerOnlineCar ) ( ( MarkerShowEntity ) marker.getObject() ).getBindObj() ).getUserInfo().getSn();
+ }
+
/**
* 探路数据
*
@@ -869,7 +904,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
if ( result == null ) {
return;
}
- removeCarMarkers();
+
List< MarkerOnlineCar > onlineCarList = result.getOnlineCar();
if ( !MarkerServiceHandler.getMogoStatusManager().isADASShow() ) {
dispatchDataToBis( ServiceConst.CARD_TYPE_USER_DATA, onlineCarList == null ? new ArrayList<>() : onlineCarList );
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java
index cdb891aed0..ede5636b6e 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java
@@ -71,6 +71,7 @@ public class MogoReceiver extends BroadcastReceiver {
if (TextUtils.equals(VOICE_ACTION, action)) {
String cmd = intent.getStringExtra(PARAM_COMMAND);
if (!TextUtils.isEmpty(cmd)) {
+ Logger.d( TAG, "receive command: %s", cmd );
mMogoIntentManager.invoke(cmd, intent);
}
} else {
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/refresh/AutoRefreshStrategy.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/refresh/AutoRefreshStrategy.java
index 47d96799f4..ba15e2424f 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/refresh/AutoRefreshStrategy.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/refresh/AutoRefreshStrategy.java
@@ -13,12 +13,12 @@ public class AutoRefreshStrategy {
/**
* 距离(米)
*/
- private int distance = 2_000;
+ private int distance = 1_000;
/**
* 时间间距(s)
*/
- private long interval = 3 * ONE_MINUTE;
+ private long interval = 3 * ONE_MINUTE / 6;
/**
* 用户打断后的延时(s)【2.0.2后不再延时】
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java
index 5a6f90560d..468c965b26 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java
@@ -13,11 +13,22 @@ public interface IMogoADASController extends IProvider {
/**
* 打开adas
*/
+ @Deprecated
void openADAS();
/**
- * 关闭adas
+ * 隐藏adas
*/
void closeADAS();
+ /**
+ * 显示
+ */
+ void showADAS();
+
+ /**
+ * 关闭
+ */
+ void killADAS();
+
}
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 c5126c1a0a..07930bc5fb 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
@@ -22,16 +22,14 @@ public interface IMogoStatusManager extends IProvider {
*
* @return
*/
+ @Deprecated
boolean isADASShow();
/**
* v2x UI 是否在展示
- *
- * Deprecated, use {@link #isADASShow()} instead.
*
* @return
*/
- @Deprecated
boolean isV2XShow();
/**
@@ -119,18 +117,16 @@ public interface IMogoStatusManager extends IProvider {
* @param tag 业务类型
* @param show true - 显示 false - 隐藏
*/
+ @Deprecated
void setADASUIShow( String tag, boolean show );
/**
* 设置 V2X UI 状态
*
- *
- * Deprecated, use {@link #setADASUIShow} instead.
*
* @param tag 业务类型
* @param show true - 显示 false - 隐藏
*/
- @Deprecated
void setV2XUIShow( String tag, boolean show );
/**
diff --git a/services/mogo-service/build.gradle b/services/mogo-service/build.gradle
index 66f2a244d6..3cd53dffe6 100644
--- a/services/mogo-service/build.gradle
+++ b/services/mogo-service/build.gradle
@@ -40,6 +40,7 @@ dependencies {
implementation rootProject.ext.dependencies.arouter
annotationProcessor rootProject.ext.dependencies.aroutercompiler
+ implementation rootProject.ext.dependencies.adasapi
if (Boolean.valueOf(RELEASE)) {
api rootProject.ext.dependencies.mogomap
implementation rootProject.ext.dependencies.mogomapapi
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java
index f2d6092c5e..cadd1e446f 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java
@@ -3,6 +3,7 @@ package com.mogo.service.impl.adas;
import android.app.Application;
import android.content.Context;
import android.content.Intent;
+import android.os.RemoteException;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.commons.AbsMogoApplication;
@@ -13,7 +14,9 @@ import com.mogo.service.impl.MogoServiceApis;
import com.mogo.service.impl.singleton.SingletonsHolder;
import com.mogo.service.impl.statusmanager.MogoStatusManager;
import com.mogo.service.statusmanager.IMogoStatusManager;
+import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.logger.Logger;
+import com.zhidao.autopilot.support.api.AutopilotServiceManage;
import org.json.JSONObject;
@@ -38,49 +41,71 @@ public class MogoADASController implements IMogoADASController {
public static final String VAL_OPEN = "打开";
public static final String VAL_CLOSE = "关闭";
- private MogoStatusManager mStatusManager = SingletonsHolder.get( IMogoStatusManager.class );
+ private IMogoStatusManager mStatusManager = SingletonsHolder.get( IMogoStatusManager.class );
@Override
public void openADAS() {
+ showADAS();
+ }
- if ( mStatusManager.isADASShow() ) {
- return;
- }
-
- Logger.d( TAG, "open adas" );
-
- Intent intent = new Intent( ACTION );
- intent.putExtra( PARAM_COMMAND, VAL_COMMAND );
- JSONObject object = new JSONObject();
+ @Override
+ public void killADAS() {
try {
- object.put( PARAM_OBJECT, VAL_OBJECT );
- object.put( PARAM_OPERATION, VAL_OPEN );
- intent.putExtra( PARAM_DATA, object.toString() );
- sendBroadcast( intent );
+ AutopilotServiceManage.getInstance().kill();
} catch ( Exception e ) {
- Logger.e( TAG, e, "error." );
+
}
}
+ @Override
+ public void showADAS() {
+
+ Logger.d( TAG, "show adas" );
+
+ UiThreadHandler.postDelayed( () -> {
+ try {
+ if ( mStatusManager.isSearchUIShow() ) {
+ return;
+ }
+ if ( !mStatusManager.isMainPageOnResume() ) {
+ return;
+ }
+ AutopilotServiceManage.getInstance().showAdas();
+ } catch ( Exception e ) {
+ Intent intent = new Intent( ACTION );
+ intent.putExtra( PARAM_COMMAND, VAL_COMMAND );
+ JSONObject object = new JSONObject();
+ try {
+ object.put( PARAM_OBJECT, VAL_OBJECT );
+ object.put( PARAM_OPERATION, VAL_OPEN );
+ intent.putExtra( PARAM_DATA, object.toString() );
+ sendBroadcast( intent );
+ } catch ( Exception e1 ) {
+ Logger.e( TAG, e1, "error." );
+ }
+ }
+ }, 500 );
+ }
+
@Override
public void closeADAS() {
- if ( !mStatusManager.isADASShow() ) {
- return;
- }
-
Logger.d( TAG, "close adas" );
- Intent intent = new Intent( ACTION );
- intent.putExtra( PARAM_COMMAND, VAL_COMMAND );
- JSONObject object = new JSONObject();
try {
- object.put( PARAM_OBJECT, VAL_OBJECT );
- object.put( PARAM_OPERATION, VAL_CLOSE );
- intent.putExtra( PARAM_DATA, object.toString() );
- sendBroadcast( intent );
+ AutopilotServiceManage.getInstance().hideAdas();
} catch ( Exception e ) {
- Logger.e( TAG, e, "error." );
+ Intent intent = new Intent( ACTION );
+ intent.putExtra( PARAM_COMMAND, VAL_COMMAND );
+ JSONObject object = new JSONObject();
+ try {
+ object.put( PARAM_OBJECT, VAL_OBJECT );
+ object.put( PARAM_OPERATION, VAL_CLOSE );
+ intent.putExtra( PARAM_DATA, object.toString() );
+ sendBroadcast( intent );
+ } catch ( Exception e1 ) {
+ Logger.e( TAG, e1, "error." );
+ }
}
}
@@ -95,6 +120,6 @@ public class MogoADASController implements IMogoADASController {
@Override
public void init( Context context ) {
-
+ AutopilotServiceManage.getInstance().init( context );
}
}
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/map/MogoMapService.java b/services/mogo-service/src/main/java/com/mogo/service/impl/map/MogoMapService.java
index 2f454add44..87a3ae0491 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/map/MogoMapService.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/map/MogoMapService.java
@@ -4,7 +4,6 @@ import android.content.Context;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.map.MogoGeoSearch;
-import com.mogo.map.MogoInitor;
import com.mogo.map.MogoInputtipsSearch;
import com.mogo.map.MogoLocationClient;
import com.mogo.map.MogoMapUIController;
@@ -88,6 +87,5 @@ public class MogoMapService implements IMogoMapService {
@Override
public void init( Context context ) {
- MogoInitor.init( context );
}
}
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/network/MogoNetWorkService.java b/services/mogo-service/src/main/java/com/mogo/service/impl/network/MogoNetWorkService.java
index 9c6942f7a7..eda4617702 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/network/MogoNetWorkService.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/network/MogoNetWorkService.java
@@ -3,7 +3,6 @@ package com.mogo.service.impl.network;
import android.content.Context;
import com.alibaba.android.arouter.facade.annotation.Route;
-import com.mogo.map.MogoInitor;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.network.IMogoNetwork;
import com.mogo.utils.network.RetrofitFactory;
@@ -19,7 +18,6 @@ public class MogoNetWorkService implements IMogoNetwork {
@Override
public void init(Context context) {
- MogoInitor.init(context);
}
@Override
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/singleton/SingletonsHolder.java b/services/mogo-service/src/main/java/com/mogo/service/impl/singleton/SingletonsHolder.java
index 84f241d427..6f54efc813 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/singleton/SingletonsHolder.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/singleton/SingletonsHolder.java
@@ -33,7 +33,7 @@ public class SingletonsHolder {
sSingletons.put( IMogoStatusManager.class, new MogoStatusManager() );
}
- public static < T > T get( Class clazz ) {
+ public static < T > T get( Class clazz ) {
return ( T ) sSingletons.get( clazz );
}