diff --git a/app/build.gradle b/app/build.gradle
index 515a43bb57..220945510b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -10,8 +10,8 @@ android {
defaultConfig {
minSdkVersion rootProject.ext.android.minSdkVersion
targetSdkVersion rootProject.ext.android.targetSdkVersion
- versionCode generateVersionCode()
- versionName "${rootProject.ext.android.versionName}.${getMonthAndDay()}"
+ versionCode rootProject.versionCode as int
+ versionName rootProject.versionName
applicationId rootProject.ext.android.applicationId
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -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'
@@ -191,10 +188,25 @@ dependencies {
}
}
+//android.applicationVariants.all { variant ->
+// variant.outputs.all { //这里修改apk文件名
+// outputFileName = "Launcher2.0_V${android.defaultConfig.versionName}_${getCurrentDate()}_${variant.name}_${getGitCommit()}.apk"
+// println outputFileName
+// }
+//}
+
android.applicationVariants.all { variant ->
- variant.outputs.all { //这里修改apk文件名
- outputFileName = "Launcher2.0_V${android.defaultConfig.versionName}_${getCurrentDate()}_${variant.name}_${getGitCommit()}.apk"
- println outputFileName
+ def buildTime = new Date().format("yyyyMMdd", TimeZone.getTimeZone("GMT+08:00"))
+ def flavor = variant.productFlavors.collect { it.name }.join('-')
+
+ variant.outputs.all { output ->
+ outputFileName = [
+ rootProject.applicationName,
+ "v${variant.versionName}",
+ buildTime,
+ flavor.length() > 0 ? "[${flavor}]" : "",
+ variant.buildType.name
+ ].findAll { it.length() > 0 }.join('_') << ".apk"
}
}
diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java
index 6ade51c351..b2c9f7f484 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
@@ -58,9 +55,8 @@ public class MogoApplication extends AbsMogoApplication {
MogoModulePaths.addModule(new MogoModule(AdCardConstants.TAG, AdCardConstants.MODULE_NAME));
MogoModulePaths.addModule(new MogoModule(MediaConstants.TAG, MediaConstants.MODULE_TYPE));
MogoModulePaths.addModule(new MogoModule(CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME));
- MogoModulePaths.addModule(new MogoModule(TanluConstants.TAG, TanluConstants.MODEL_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..291ffe3d5b 100644
--- a/config.gradle
+++ b/config.gradle
@@ -6,14 +6,13 @@ ext {
buildToolsVersion : "29.0.2",
minSdkVersion : 19,
targetSdkVersion : 22,
- versionName : "8.0.6",
]
dependencies = [
// androidx
androidxappcompat : "androidx.appcompat:appcompat:1.0.2",
androidxccorektx : "androidx.core:core-ktx:1.2.0",
- androidxconstraintlayout : "androidx.constraintlayout:constraintlayout:1.1.3",
+ androidxconstraintlayout : "androidx.constraintlayout:constraintlayout:2.0.0-alpha5",
androidxmultidex : "androidx.multidex:multidex:2.0.1",
androidxviewpager2 : "androidx.viewpager2:viewpager2:1.0.0",
androidxrecyclerview : "androidx.recyclerview:recyclerview:1.1.0",
@@ -109,7 +108,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 +141,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/gradle.properties b/gradle.properties
index 7e35f360fc..73a90f4ee9 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -24,37 +24,37 @@ SNAPSHOT_REPOSITORY_URL=http://nexus.zhidaoauto.com/repository/maven-snapshots/
USERNAME=xintai
PASSWORD=xintai2018
# 编译模式: false - 依赖本地版本, true - 依赖 maven 版本
-RELEASE=false
+RELEASE=true
# 模块版本
## 工程内模块
-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.7
+MOGO_UTILS_VERSION=1.1.0.7
+MAP_AMAP_VERSION=1.1.0.7
+MOGO_MAP_VERSION=1.1.0.7
+MOGO_MAP_API_VERSION=1.1.0.7
+MOGO_SERVICE_VERSION=1.1.0.7
+MOGO_SERVICE_API_VERSION=1.1.0.7
+MOGO_CONNECTION_VERSION=1.1.0.7
+MOGO_MODULE_APPS_VERSION=1.1.0.7
+MOGO_MODULE_NAVI_VERSION=1.1.0.7
+MOGO_MODULE_SHARE_VERSION=1.1.0.7
+MOGO_MODULE_COMMON_VERSION=1.1.0.7
+MOGO_MODULE_MAIN_VERSION=1.1.0.7
+MOGO_MODULE_MAP_VERSION=1.1.0.7
+MOGO_MODULE_SERVICE_VERSION=1.1.0.7
+MOGO_MODULE_EXTENSIONS_VERSION=1.1.0.7
+MOGO_MODULE_SEARCH_VERSION=1.1.0.7
+MOGO_MODULE_BACK_VERSION=1.1.0.7
+MOGO_MODULE_GPS_SIMULATOR_VERSION=1.1.0.7
+MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.1.0.7
+MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.1.0.7
+MOGO_MODULE_AUTHORIZE_VERSION=1.1.0.7
+MOGO_MODULE_GUIDE_VERSION=1.1.0.7
## 工程外部模块
# 探路
-MOGO_MODULE_TANLU_VERSION=1.0.5.6
+MOGO_MODULE_TANLU_VERSION=1.0.6-SNAPSHOT
# 车聊聊
CARCHATTING_VERSION=1.0.4-SNAPSHOT
# 车聊聊接口
@@ -66,12 +66,16 @@ 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
+
+## 产品库必备配置
+applicationId=com.mogo.launcer
+applicationName=Launcer2.0
+versionCode=80006
+versionName=8.0.6
\ No newline at end of file
diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java
index 13f075f63f..341fc8b0c4 100644
--- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java
+++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java
@@ -17,7 +17,6 @@ import android.view.animation.Interpolator;
import com.amap.api.maps.AMap;
import com.amap.api.maps.AMapUtils;
import com.amap.api.maps.CameraUpdateFactory;
-import com.amap.api.maps.LocationSource;
import com.amap.api.maps.model.BitmapDescriptorFactory;
import com.amap.api.maps.model.CameraPosition;
import com.amap.api.maps.model.LatLng;
@@ -492,7 +491,7 @@ public class AMapNaviViewWrapper implements IMogoMapView,
}
@Override
- public void moveToCenter( MogoLatLng latLng ) {
+ public void moveToCenter( MogoLatLng latLng, boolean animate ) {
Logger.d( TAG, "move to center %s", latLng );
if ( latLng == null || latLng.lat == 0.0d || latLng.lng == 0.0d ) {
Logger.e( TAG, "latlng = null or is illegal" );
@@ -502,7 +501,11 @@ public class AMapNaviViewWrapper implements IMogoMapView,
Logger.d( TAG, Log.getStackTraceString( new Throwable() ) );
}
loseLockMode();
- mMapView.getMap().moveCamera( CameraUpdateFactory.newLatLng( new LatLng( latLng.lat, latLng.lng ) ) );
+ if ( animate ) {
+ mMapView.getMap().animateCamera( CameraUpdateFactory.newLatLng( new LatLng( latLng.lat, latLng.lng ) ) );
+ } else {
+ mMapView.getMap().moveCamera( CameraUpdateFactory.newLatLng( new LatLng( latLng.lat, latLng.lng ) ) );
+ }
}
@Override
diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java
index 175a4e2529..2e874886ae 100644
--- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java
+++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java
@@ -85,9 +85,9 @@ public class AMapUIController implements IMogoMapUIController {
}
@Override
- public void moveToCenter(MogoLatLng latLng) {
+ public void moveToCenter(MogoLatLng latLng, boolean animate) {
if (mClient != null) {
- mClient.moveToCenter(latLng);
+ mClient.moveToCenter(latLng, animate);
}
}
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/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/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-api/src/main/java/com/mogo/map/search/poisearch/query/MogoPoiSearchQuery.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/poisearch/query/MogoPoiSearchQuery.java
index 27076edba2..b3b539fca3 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/poisearch/query/MogoPoiSearchQuery.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/poisearch/query/MogoPoiSearchQuery.java
@@ -21,7 +21,7 @@ public class MogoPoiSearchQuery implements Parcelable {
private int pageSize;
private boolean isCityLimit;
private boolean isSubPois;
- private boolean isDistanceSort;
+ private boolean isDistanceSort = true;
private MogoLatLng location;
/**
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java
index 73c3f244b1..419f4cc00a 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java
@@ -50,7 +50,14 @@ public interface IMogoMapUIController {
/**
* 将地图移动至当前位置
*/
- void moveToCenter( MogoLatLng latLng );
+ default void moveToCenter( MogoLatLng latLng ){
+ moveToCenter(latLng, false);
+ }
+
+ /**
+ * 将地图移动至当前位置
+ */
+ void moveToCenter( MogoLatLng latLng, boolean animate );
/**
* 显示我的位置
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/MogoMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java
index 89cdb35eb8..f4642f2440 100644
--- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java
+++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java
@@ -79,9 +79,9 @@ public class MogoMapUIController implements IMogoMapUIController {
@Override
- public void moveToCenter(MogoLatLng latLng) {
+ public void moveToCenter(MogoLatLng latLng, boolean animate) {
if (mDelegate != null) {
- mDelegate.moveToCenter(latLng);
+ mDelegate.moveToCenter(latLng, animate);
}
}
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 d5b4006ee4..f3d240be7b 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
@@ -2,36 +2,23 @@ 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.commons.voice.AIAssist;
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.anim.AnimWrapper;
+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 +27,18 @@ 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 ImageView mAIAssist;
+ private View mAIAssistContainer;
+ private AnimWrapper mAnim = new AnimWrapper();
- private IMogoAnalytics mMogoAnalytics;
-// private DiscreteScrollView scroller;
-
- private static int CARD_SIZE = 6;
- private AppIndicatorAdapter appIndicatorAdapter;
+ private BaseAppLauncher mLauncher;
@Override
protected int getLayoutId() {
@@ -70,227 +48,87 @@ public class AppNavigatorFragment extends MvpFragment {
+ mLauncher.launch( getContext(), data );
+ } );
+ mNavigatorAppsList.setAdapter( mAppIndicatorAdapter );
-// 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());
+ mAIAssistContainer = findViewById( R.id.module_apps_id_ai_assist_container );
+ mAIAssist = findViewById( R.id.module_apps_id_ai_assist );
+ mAnim.initAnim( mAIAssist );
+ mAIAssist.setOnClickListener( view -> {
+ AIAssist.startAssistant( getContext() );
+ AppServiceHandler.getApis().getAnalyticsApi().track( "Launcher_xiaozhi_Click", null );
+ } );
+ mAIAssistContainer.setOnClickListener( view -> {
+ mAIAssist.performClick();
+ } );
- 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);
+ AppServiceHandler.getApis().getFragmentManagerApi().addMainFragmentStackTransactionListener( size -> {
+ // 主页 fragment 栈变化的时候,改变动画状态
+ if ( size == 0 ) {
+ mAnim.start();
+ } else {
+ mAnim.stop();
}
- });
-
-// 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) {
+ @Override
+ public void hideNavigationEntrance() {
+ mAppIndicatorAdapter.setDatas( NavigatorApps.getAppsWithoutNavigation() );
+ }
+ @Override
+ public void showNavigationEntrance() {
+ mAppIndicatorAdapter.setDatas( NavigatorApps.getApps() );
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ mAnim.start();
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ mAnim.stop();
}
@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..24119d559c 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
@@ -9,6 +9,7 @@ import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.mvp.Presenter;
import com.mogo.commons.voice.AIAssist;
import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
+import com.mogo.map.navi.IMogoNaviListener2;
import com.mogo.module.apps.model.AppsModel;
import com.mogo.module.apps.utils.LaunchUtils;
import com.mogo.service.MogoServicePaths;
@@ -26,7 +27,9 @@ import org.json.JSONObject;
*
* 描述
*/
-public class AppNavigatorPresenter extends Presenter< AppNavigatorView > implements IMogoIntentListener, IMogoVoiceCmdCallBack {
+public class AppNavigatorPresenter extends Presenter< AppNavigatorView > implements IMogoIntentListener,
+ IMogoVoiceCmdCallBack,
+ IMogoNaviListener2 {
private static final String TAG = "AppNavigatorPresenter";
@@ -40,8 +43,9 @@ 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();
+ AppServiceHandler.getApis().getRegisterCenterApi().registerMogoNaviListener( TAG, this );
// 预加载应用列表,空间换时间
AppsModel.getInstance( getContext() ).load( null );
}
@@ -71,6 +75,11 @@ public class AppNavigatorPresenter extends Presenter< AppNavigatorView > impleme
JSONObject object = new JSONObject( intent.getStringExtra( "data" ) );
String app = object.optString( "object" );
String operation = object.optString( "operation" );
+
+ if( !AppsConst.OBJECT_ADAS.equals( app ) ){
+ AppServiceHandler.getApis().getAdasControllerApi().closeADAS();
+ }
+
if ( AppsConst.OBJECT_ALL_APPS.equals( app ) ) {
if ( AppsConst.OPERATION_OPEN.equals( operation ) ) {
mView.openAppsPanel();
@@ -105,26 +114,6 @@ public class AppNavigatorPresenter extends Presenter< AppNavigatorView > impleme
}
}
- @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 onDestroy( @NonNull LifecycleOwner owner ) {
if ( mIntentManager != null ) {
@@ -132,4 +121,14 @@ public class AppNavigatorPresenter extends Presenter< AppNavigatorView > impleme
}
super.onDestroy( owner );
}
+
+ @Override
+ public void onStartNavi() {
+ mView.hideNavigationEntrance();
+ }
+
+ @Override
+ public void onStopNavi() {
+ mView.showNavigationEntrance();
+ }
}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorView.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorView.java
index 00e75e1009..f67673cb2c 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorView.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorView.java
@@ -15,4 +15,8 @@ public interface AppNavigatorView extends IView {
* 打开全部应用
*/
void openAppsPanel();
+
+ void hideNavigationEntrance();
+
+ void showNavigationEntrance();
}
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/AppsConst.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsConst.java
index 5809924c22..2c8ca3d7ab 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsConst.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsConst.java
@@ -25,6 +25,7 @@ public class AppsConst {
public static final String OBJECT_ALL_APPS = "全部应用";
public static final String OBJECT_FAST_SETTINGS = "快捷设置";
+ public static final String OBJECT_ADAS = "辅助驾驶";
public static final String OPERATION_OPEN = "打开";
public static final String OPERATION_CLOSE = "关闭";
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragment.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragment.java
index 9e7fc0f6ce..ed3de2b4a8 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragment.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragment.java
@@ -50,7 +50,7 @@ public class AppsFragment extends MvpFragment< AppsView, AppsPresenter > impleme
mExit.setOnClickListener( view -> {
if ( getActivity() != null ) {
getActivity().finish();
- getActivity().overridePendingTransition( R.anim.module_apps_anim_enter, R.anim.module_apps_anim_exit);
+ getActivity().overridePendingTransition( 0, R.anim.module_apps_anim_exit);
}
} );
// mAppsList = findViewById( R.id.module_apps_id_apps );
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/AppsListActivity.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsListActivity.java
index 82c116ec6f..d72b53e10a 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsListActivity.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsListActivity.java
@@ -2,9 +2,11 @@ package com.mogo.module.apps;
import android.app.Activity;
import android.content.Intent;
+import android.os.Bundle;
import android.view.View;
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import com.alibaba.android.arouter.launcher.ARouter;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
@@ -27,7 +29,12 @@ public class AppsListActivity extends MvpActivity< AppsListView, AppsListPresent
public static void start( Activity context ) {
Intent starter = new Intent( context, AppsListActivity.class );
context.startActivity( starter );
- context.overridePendingTransition( R.anim.module_apps_anim_enter, R.anim.module_apps_anim_exit);
+ }
+
+ @Override
+ protected void onCreate( @Nullable Bundle savedInstanceState ) {
+ overridePendingTransition( R.anim.module_apps_anim_enter, 0);
+ super.onCreate( savedInstanceState );
}
@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..d7705da71e 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);
- // 添加介绍入口
- 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));
+// 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 ) );
+ 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-extensions/src/main/java/com/mogo/module/extensions/anim/Anim.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/anim/Anim.java
similarity index 76%
rename from modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/Anim.java
rename to modules/mogo-module-apps/src/main/java/com/mogo/module/apps/anim/Anim.java
index 85717028df..e98e07ee8a 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/Anim.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/anim/Anim.java
@@ -1,4 +1,4 @@
-package com.mogo.module.extensions.anim;
+package com.mogo.module.apps.anim;
/**
* @author congtaowang
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/AnimRes.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/anim/AnimRes.java
similarity index 97%
rename from modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/AnimRes.java
rename to modules/mogo-module-apps/src/main/java/com/mogo/module/apps/anim/AnimRes.java
index 13628228da..e579d0658a 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/AnimRes.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/anim/AnimRes.java
@@ -1,6 +1,7 @@
-package com.mogo.module.extensions.anim;
+package com.mogo.module.apps.anim;
-import com.mogo.module.extensions.R;
+
+import com.mogo.module.apps.R;
/**
* @author congtaowang
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/AnimWrapper.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/anim/AnimWrapper.java
similarity index 95%
rename from modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/AnimWrapper.java
rename to modules/mogo-module-apps/src/main/java/com/mogo/module/apps/anim/AnimWrapper.java
index 3ff87e8e4e..bf38719907 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/AnimWrapper.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/anim/AnimWrapper.java
@@ -1,10 +1,10 @@
-package com.mogo.module.extensions.anim;
+package com.mogo.module.apps.anim;
import android.graphics.drawable.AnimationDrawable;
import android.widget.ImageView;
+import com.mogo.module.apps.R;
import com.mogo.module.common.utils.CarSeries;
-import com.mogo.module.extensions.R;
import com.mogo.utils.ThreadPoolService;
import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.logger.Logger;
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/JSurfaceView.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/anim/JSurfaceView.java
similarity index 98%
rename from modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/JSurfaceView.java
rename to modules/mogo-module-apps/src/main/java/com/mogo/module/apps/anim/JSurfaceView.java
index 5d89ecdddc..b70218743b 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/JSurfaceView.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/anim/JSurfaceView.java
@@ -1,4 +1,4 @@
-package com.mogo.module.extensions.anim;
+package com.mogo.module.apps.anim;
import android.content.Context;
import android.graphics.Bitmap;
@@ -13,7 +13,6 @@ import android.util.AttributeSet;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
-import com.mogo.utils.ThreadPoolService;
import com.mogo.utils.logger.Logger;
import java.lang.ref.WeakReference;
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/KitkatAnim.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/anim/KitkatAnim.java
similarity index 83%
rename from modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/KitkatAnim.java
rename to modules/mogo-module-apps/src/main/java/com/mogo/module/apps/anim/KitkatAnim.java
index 9043265a2f..2f3f864367 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/KitkatAnim.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/anim/KitkatAnim.java
@@ -1,4 +1,4 @@
-package com.mogo.module.extensions.anim;
+package com.mogo.module.apps.anim;
/**
* @author congtaowang
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/OthersAnim.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/anim/OthersAnim.java
similarity index 93%
rename from modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/OthersAnim.java
rename to modules/mogo-module-apps/src/main/java/com/mogo/module/apps/anim/OthersAnim.java
index 57adffda3a..13156b1e7c 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/OthersAnim.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/anim/OthersAnim.java
@@ -1,4 +1,4 @@
-package com.mogo.module.extensions.anim;
+package com.mogo.module.apps.anim;
import android.graphics.drawable.AnimationDrawable;
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..83ed40c2d8 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,9 @@ public class AppLauncher extends BaseAppLauncher {
@Override
public void launch( Context context, AppInfo appInfo ) {
try {
+ if ( LaunchUtils.getLaunchIntentForPackage( context, appInfo.getPackageName() ) != null ) {
+ 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/CardAppLauncher.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/CardAppLauncher.java
index fb0906f4c4..117dd06cb8 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/CardAppLauncher.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/CardAppLauncher.java
@@ -35,13 +35,8 @@ public class CardAppLauncher extends BaseAppLauncher {
@Override
public void launch( Context context, AppInfo appInfo ) {
- if ( sCardApps.containsKey( appInfo.getPackageName() ) ) {
- mCardManager.switch2( sCardApps.get( appInfo.getPackageName() ) );
- mAppsPresenter.exit();
- } else {
- if ( getNext() != null ) {
- getNext().launch( context, appInfo );
- }
+ if ( getNext() != null ) {
+ getNext().launch( context, appInfo );
}
}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/GuideShowLauncher.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/GuideShowLauncher.java
index 88e5068c61..fea3414ea7 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/GuideShowLauncher.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/GuideShowLauncher.java
@@ -1,16 +1,9 @@
package com.mogo.module.apps.applaunch;
-import android.app.Activity;
import android.content.Context;
-import com.mogo.commons.voice.AIAssist;
import com.mogo.map.navi.IMogoNavi;
-import com.mogo.module.apps.AppServiceHandler;
-import com.mogo.module.apps.R;
import com.mogo.module.apps.model.AppInfo;
-import com.mogo.utils.logger.Logger;
-
-import kotlin.Unit;
public class GuideShowLauncher extends BaseAppLauncher {
@@ -25,19 +18,7 @@ public class GuideShowLauncher extends BaseAppLauncher {
@Override
public void launch(Context context, AppInfo appInfo) {
- if (appInfo != null && APP_INFO_NAME_GUIDE_SHOW.equals(appInfo.getName())) {
- if ( mNavi != null && !mNavi.isNaviing()) {
- AppServiceHandler.getMogoGuideShow().playGuideVideo((Activity) context, (s) -> {
- Logger.d(TAG, s);
- return Unit.INSTANCE;
- });
- } else {
- AIAssist.getInstance(context).speakTTSVoice(context.getString(R.string.module_apps_str_guide_warning));
- processChain(context,appInfo);
- }
- } else {
- processChain(context, appInfo);
- }
+ processChain(context, appInfo);
}
private void processChain(Context context, AppInfo appInfo) {
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/AppEnum.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/AppEnum.java
index 7837c2cd77..b0ad31e2b6 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/AppEnum.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/AppEnum.java
@@ -19,11 +19,11 @@ public enum AppEnum {
QQMusic( "QQ音乐", "com.pvetec.musics", R.drawable.module_apps_ic_qq_music ),
//"车聊聊",
- Im( "车聊聊", "com.zhidao.imdemo", R.drawable.module_apps_ic_im ),
+// Im( "车聊聊", "com.zhidao.imdemo", R.drawable.module_apps_ic_im ),
//"探路",
- RoadCondition( "探路", "com.zhidao.roadcondition", R.drawable.module_apps_ic_road_condition ),
- RoadConditionSlit( "探路", "com.zhidao.roadcondition.split", R.drawable.module_apps_ic_road_condition ),
+// RoadCondition( "探路", "com.zhidao.roadcondition", R.drawable.module_apps_ic_road_condition ),
+// RoadConditionSlit( "探路", "com.zhidao.roadcondition.split", R.drawable.module_apps_ic_road_condition ),
//"福利",
Welfare( "福利", "com.zhidaohulian.welfare.car", R.drawable.module_apps_ic_welfare ),
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..1b64ff1bb8 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,27 @@ 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 AppInfo app = new AppInfo( "导航", "com.mogo.launcher.navi.search", "", 0, null, R.drawable.module_apps_ic_navigator_navi );
+ private static AppInfo app_ = new AppInfo( "导航", "com.mogo.launcher.navi.search", "", 0, null, R.drawable.module_apps_ic_navigator_navi_disable );
+ private static AppInfo app2 = new AppInfo( "音乐", "com.pvetec.musics", "", 0, null, R.drawable.module_apps_ic_navigator_media );
+ private static AppInfo app3 = new AppInfo( "个人中心", "com.zhidao.auto.personal", "", 0, null, R.drawable.module_apps_ic_navigator_personcenter );
+ private static AppInfo app4 = new AppInfo( "全部应用", "com.mogo.launcher.applist", "", 0, null, R.drawable.module_apps_ic_navigator_applist );
+
+ public static List< AppInfo > getApps() {
+ List< AppInfo > sApps = new ArrayList<>();
+ sApps.add( app );
+ sApps.add( app2 );
+ sApps.add( app3 );
+ sApps.add( app4 );
+ return sApps;
}
-// 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 > getAppsWithoutNavigation() {
+ List< AppInfo > sApps = new ArrayList<>();
+ sApps.add( app_ );
+ sApps.add( app2 );
+ sApps.add( app3 );
+ sApps.add( app4 );
+ return sApps;
+ }
}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/receiver/AppInstallReceiver.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/receiver/AppInstallReceiver.java
index e3e599243f..1ea5fa4216 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/receiver/AppInstallReceiver.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/receiver/AppInstallReceiver.java
@@ -4,7 +4,9 @@ package com.mogo.module.apps.receiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
+import android.text.TextUtils;
+import com.mogo.module.apps.AppServiceHandler;
import com.mogo.module.apps.model.AppsModel;
public class AppInstallReceiver extends BroadcastReceiver {
@@ -14,6 +16,9 @@ public class AppInstallReceiver extends BroadcastReceiver {
if ( intent.getAction().equals( Intent.ACTION_PACKAGE_ADDED ) ) {
String packageName = intent.getData().getSchemeSpecificPart();
AppsModel.getInstance( context ).appAdded( packageName );
+ if ( TextUtils.equals( packageName, "com.zhidao.autopilot" ) ) {
+ AppServiceHandler.getApis().getAdasControllerApi().showADAS();
+ }
}
if ( intent.getAction().equals( Intent.ACTION_PACKAGE_REMOVED ) ) {
String packageName = intent.getData().getSchemeSpecificPart();
@@ -21,6 +26,9 @@ public class AppInstallReceiver extends BroadcastReceiver {
}
if ( intent.getAction().equals( Intent.ACTION_PACKAGE_REPLACED ) ) {
String packageName = intent.getData().getSchemeSpecificPart();
+ if ( TextUtils.equals( packageName, "com.zhidao.autopilot" ) ) {
+ AppServiceHandler.getApis().getAdasControllerApi().showADAS();
+ }
}
if ( intent.getAction().equals( Intent.ACTION_PACKAGE_CHANGED ) ) {
String packageName = intent.getData().getSchemeSpecificPart();
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/java/com/mogo/module/apps/utils/LaunchUtils.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/utils/LaunchUtils.java
index b328070501..1e704842d2 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/utils/LaunchUtils.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/utils/LaunchUtils.java
@@ -20,9 +20,13 @@ public class LaunchUtils {
* @param context
* @param pkg 包名
*/
- public static void launchByPkg( Context context, String pkg ) throws Exception{
- Intent intent = context.getPackageManager().getLaunchIntentForPackage( pkg );
+ public static void launchByPkg( Context context, String pkg ) throws Exception {
+ Intent intent = getLaunchIntentForPackage( context, pkg );
intent.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
context.startActivity( intent );
}
+
+ public static Intent getLaunchIntentForPackage( Context context, String pkg ) {
+ return context.getPackageManager().getLaunchIntentForPackage( pkg );
+ }
}
diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_applist.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_applist.png
new file mode 100644
index 0000000000..f884758d3d
Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_applist.png differ
diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_media.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_media.png
new file mode 100644
index 0000000000..d9f6df313d
Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_media.png differ
diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_navi.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_navi.png
new file mode 100644
index 0000000000..2401ce7c2a
Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_navi.png differ
diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_navi_disable.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_navi_disable.png
new file mode 100644
index 0000000000..3df9f14026
Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_navi_disable.png differ
diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_personcenter.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_personcenter.png
new file mode 100644
index 0000000000..df3ba081fe
Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_personcenter.png differ
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00000.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00000.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00000.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00000.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00001.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00001.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00001.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00001.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00002.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00002.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00002.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00002.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00003.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00003.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00003.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00003.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00004.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00004.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00004.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00004.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00005.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00005.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00005.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00005.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00006.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00006.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00006.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00006.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00007.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00007.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00007.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00007.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00008.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00008.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00008.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00008.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00009.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00009.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00009.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00009.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00010.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00010.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00010.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00010.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00011.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00011.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00011.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00011.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00012.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00012.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00012.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00012.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00013.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00013.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00013.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00013.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00014.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00014.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00014.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00014.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00015.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00015.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00015.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00015.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00016.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00016.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00016.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00016.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00017.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00017.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00017.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00017.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00018.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00018.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00018.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00018.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00019.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00019.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00019.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00019.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00020.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00020.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00020.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00020.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00021.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00021.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00021.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00021.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00022.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00022.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00022.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00022.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00023.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00023.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00023.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00023.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00024.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00024.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00024.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00024.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00025.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00025.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00025.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00025.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00026.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00026.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00026.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00026.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00027.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00027.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00027.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00027.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00028.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00028.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00028.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00028.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00029.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00029.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00029.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00029.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00030.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00030.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00030.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00030.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00031.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00031.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00031.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00031.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00032.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00032.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00032.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00032.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00033.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00033.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00033.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00033.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00034.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00034.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00034.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00034.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00035.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00035.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00035.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00035.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00036.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00036.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00036.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00036.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00037.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00037.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00037.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00037.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00038.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00038.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00038.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00038.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00039.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00039.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00039.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00039.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00040.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00040.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00040.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00040.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00041.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00041.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00041.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00041.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00042.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00042.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00042.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00042.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00043.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00043.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00043.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00043.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00044.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00044.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00044.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00044.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00045.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00045.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00045.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00045.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00046.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00046.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00046.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00046.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00047.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00047.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00047.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00047.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00048.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00048.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00048.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00048.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00049.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00049.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00049.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00049.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00050.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00050.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00050.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00050.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00051.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00051.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00051.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00051.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00052.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00052.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00052.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00052.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00053.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00053.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00053.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00053.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00054.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00054.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00054.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00054.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00055.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00055.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00055.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00055.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00056.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00056.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00056.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00056.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00057.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00057.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00057.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00057.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00058.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00058.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00058.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00058.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00059.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00059.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00059.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00059.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00060.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00060.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00060.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00060.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00061.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00061.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00061.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00061.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00062.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00062.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00062.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00062.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00063.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00063.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00063.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00063.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00064.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00064.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00064.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00064.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00065.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00065.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00065.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00065.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00066.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00066.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00066.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00066.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00067.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00067.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-ldpi/mogo_tts_icon_00067.png
rename to modules/mogo-module-apps/src/main/res/drawable-ldpi/mogo_tts_icon_00067.png
diff --git a/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_ai_assist.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_ai_assist.png
new file mode 100755
index 0000000000..45e7c7fc5e
Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_ai_assist.png differ
diff --git a/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_ai_assist_bkg.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_ai_assist_bkg.png
new file mode 100644
index 0000000000..e86c3454df
Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_ai_assist_bkg.png differ
diff --git a/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_navigator_applist.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_navigator_applist.png
new file mode 100755
index 0000000000..b95bc4576f
Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_navigator_applist.png differ
diff --git a/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_navigator_media.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_navigator_media.png
new file mode 100755
index 0000000000..bcfdb9cfa9
Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_navigator_media.png differ
diff --git a/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_navigator_navi.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_navigator_navi.png
new file mode 100755
index 0000000000..deee86ed15
Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_navigator_navi.png differ
diff --git a/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_navigator_navi_disable.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_navigator_navi_disable.png
new file mode 100644
index 0000000000..6a00c94c9d
Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_navigator_navi_disable.png differ
diff --git a/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_navigator_personcenter.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_navigator_personcenter.png
new file mode 100755
index 0000000000..f6ad6f732a
Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_navigator_personcenter.png differ
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00000.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00000.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00000.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00000.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00001.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00001.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00001.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00001.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00002.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00002.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00002.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00002.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00003.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00003.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00003.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00003.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00004.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00004.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00004.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00004.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00005.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00005.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00005.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00005.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00006.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00006.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00006.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00006.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00007.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00007.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00007.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00007.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00008.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00008.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00008.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00008.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00009.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00009.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00009.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00009.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00010.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00010.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00010.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00010.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00011.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00011.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00011.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00011.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00012.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00012.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00012.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00012.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00013.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00013.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00013.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00013.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00014.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00014.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00014.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00014.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00015.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00015.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00015.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00015.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00016.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00016.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00016.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00016.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00017.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00017.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00017.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00017.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00018.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00018.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00018.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00018.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00019.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00019.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00019.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00019.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00020.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00020.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00020.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00020.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00021.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00021.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00021.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00021.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00022.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00022.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00022.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00022.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00023.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00023.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00023.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00023.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00024.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00024.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00024.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00024.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00025.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00025.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00025.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00025.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00026.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00026.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00026.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00026.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00027.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00027.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00027.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00027.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00028.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00028.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00028.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00028.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00029.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00029.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00029.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00029.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00030.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00030.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00030.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00030.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00031.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00031.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00031.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00031.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00032.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00032.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00032.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00032.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00033.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00033.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00033.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00033.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00034.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00034.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00034.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00034.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00035.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00035.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00035.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00035.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00036.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00036.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00036.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00036.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00037.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00037.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00037.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00037.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00038.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00038.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00038.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00038.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00039.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00039.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00039.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00039.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00040.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00040.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00040.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00040.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00041.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00041.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00041.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00041.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00042.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00042.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00042.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00042.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00043.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00043.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00043.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00043.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00044.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00044.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00044.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00044.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00045.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00045.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00045.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00045.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00046.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00046.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00046.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00046.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00047.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00047.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00047.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00047.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00048.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00048.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00048.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00048.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00049.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00049.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00049.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00049.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00050.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00050.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00050.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00050.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00051.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00051.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00051.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00051.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00052.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00052.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00052.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00052.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00053.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00053.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00053.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00053.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00054.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00054.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00054.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00054.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00055.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00055.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00055.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00055.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00056.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00056.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00056.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00056.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00057.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00057.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00057.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00057.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00058.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00058.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00058.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00058.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00059.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00059.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00059.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00059.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00060.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00060.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00060.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00060.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00061.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00061.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00061.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00061.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00062.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00062.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00062.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00062.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00063.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00063.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00063.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00063.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00064.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00064.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00064.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00064.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00065.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00065.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00065.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00065.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00066.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00066.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00066.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00066.png
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00067.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00067.png
similarity index 100%
rename from modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00067.png
rename to modules/mogo-module-apps/src/main/res/drawable-xhdpi/mogo_tts_icon_00067.png
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 1a0b739e7f..6129c52c1e 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,47 +1,33 @@
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent">
-
-
+
+
+
-
-
-
+
\ 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..3e6c2c2668 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
@@ -1,24 +1,17 @@
+
+
-
-
+ android:layout_width="@dimen/module_apps_navigator_icon_width"
+ android:layout_height="@dimen/module_apps_navigator_icon_width"
+ android:scaleType="fitXY" />
\ No newline at end of file
diff --git a/modules/mogo-module-apps/src/main/res/values-ldpi/dimens.xml b/modules/mogo-module-apps/src/main/res/values-ldpi/dimens.xml
index 63bacfaa26..5b12d6e39c 100644
--- a/modules/mogo-module-apps/src/main/res/values-ldpi/dimens.xml
+++ b/modules/mogo-module-apps/src/main/res/values-ldpi/dimens.xml
@@ -20,4 +20,10 @@
18px
50px
50px
+
+ 78px
+ 78px
+ 17px
+ 78px
+ 78px
\ No newline at end of file
diff --git a/modules/mogo-module-apps/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-apps/src/main/res/values-xhdpi/dimens.xml
index 2d59d27b6e..993c7c44b2 100644
--- a/modules/mogo-module-apps/src/main/res/values-xhdpi/dimens.xml
+++ b/modules/mogo-module-apps/src/main/res/values-xhdpi/dimens.xml
@@ -20,4 +20,10 @@
35px
94px
94px
+
+ 140px
+ 140px
+ 30px
+ 120px
+ 120px
\ No newline at end of file
diff --git a/modules/mogo-module-apps/src/main/res/values/dimens.xml b/modules/mogo-module-apps/src/main/res/values/dimens.xml
index c534a52e39..b31ac60e8f 100644
--- a/modules/mogo-module-apps/src/main/res/values/dimens.xml
+++ b/modules/mogo-module-apps/src/main/res/values/dimens.xml
@@ -20,4 +20,10 @@
37px
120px
120px
+
+ 140px
+ 140px
+ 30px
+ 120px
+ 120px
\ No newline at end of file
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..20818c844d 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,22 +25,21 @@ 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() {
- if ( mFragmentManager != null ) {
- mFragmentManager.clearAll();
- }
-
- if ( mStatusManager != null ) {
- if ( mStatusManager.isMainPageOnResume() ) {
- return;
+ if ( mStatusManager.isMainPageOnResume() ) {
+ if ( mStatusManager.isSearchUIShow() ) {
+ mFragmentManager.clearAll();
}
+ return;
}
Logger.d( TAG, "返回桌面" );
@@ -72,7 +72,11 @@ public class BackToMainHomeManager {
params.x = AbsMogoApplication.getApp().getResources().getDimensionPixelOffset( R.dimen.module_back_main_home_icon_left );
params.y = AbsMogoApplication.getApp().getResources().getDimensionPixelOffset( R.dimen.module_back_main_home_icon_top );
params.gravity = Gravity.LEFT | Gravity.CENTER;
- params.type = getFitWindowParamsType();
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ params.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
+ } else {
+ params.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
+ }
params.format = PixelFormat.RGBA_8888;
params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
windowManager.addView( mBackView, params );
@@ -83,18 +87,4 @@ public class BackToMainHomeManager {
WindowManagerViewHelper.removeView( mBackView );
}
- private static int getFitWindowParamsType() {
- int type;
- if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1 ) {
- // Need request permission.
- type = WindowManager.LayoutParams.TYPE_PHONE;
- } else if ( Build.MODEL.equalsIgnoreCase( "MI 5" ) ) {
- // MI 5 phone not display crawler dot in android 7.0
- type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
- } else {
- // It's will be dismissed automatically 3s after showing in Android 25.
- type = WindowManager.LayoutParams.TYPE_TOAST;
- }
- return type;
- }
}
diff --git a/modules/mogo-module-common/build.gradle b/modules/mogo-module-common/build.gradle
index 6b8c0ae9c3..c3f39b9c50 100644
--- a/modules/mogo-module-common/build.gradle
+++ b/modules/mogo-module-common/build.gradle
@@ -31,7 +31,7 @@ dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation rootProject.ext.dependencies.androidxappcompat
implementation rootProject.ext.dependencies.androidxrecyclerview
-
+ implementation rootProject.ext.dependencies.androidxconstraintlayout
if (Boolean.valueOf(RELEASE)) {
api rootProject.ext.dependencies.mogomap
api rootProject.ext.dependencies.mogomapapi
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/dialog/WMDialog.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/dialog/WMDialog.java
new file mode 100644
index 0000000000..9dc367585c
--- /dev/null
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/dialog/WMDialog.java
@@ -0,0 +1,139 @@
+package com.mogo.module.common.dialog;
+
+import android.content.Context;
+import android.content.DialogInterface;
+import android.widget.TextView;
+
+import androidx.annotation.StringRes;
+
+import com.mogo.module.common.R;
+import com.mogo.module.common.wm.WindowManagerView;
+
+/**
+ * @author congtaowang
+ * @since 2020-04-24
+ *
+ * 显示在最上层的对话框
+ */
+public class WMDialog implements DialogInterface {
+
+ private WMDialogParams mParams;
+ private WindowManagerView mWindowManagerView;
+
+ private WMDialog( WMDialogParams params ) {
+ this.mParams = params;
+ mWindowManagerView = new WindowManagerView.Builder( mParams.mContext ).contentView( R.layout.module_commons_layout_wm_dialog ).build();
+ initViews();
+ }
+
+ public void show() {
+ mWindowManagerView.show();
+ }
+
+ private void initViews() {
+ TextView ok = mWindowManagerView.findViewById( R.id.module_commons_wm_dialog_button_ok );
+ TextView cancel = mWindowManagerView.findViewById( R.id.module_commons_wm_dialog_button_cancel );
+ TextView content = mWindowManagerView.findViewById( R.id.module_commons_wm_dialog_content );
+
+ ok.setText( mParams.mOkButtonText );
+ if ( mParams.mOnOkButtonClickListener != null ) {
+ ok.setOnClickListener( view -> {
+ if ( mParams.mOnOkButtonClickListener != null ) {
+ mParams.mOnOkButtonClickListener.onClick( WMDialog.this, DialogInterface.BUTTON_POSITIVE );
+ }
+ } );
+ }
+ cancel.setText( mParams.mCancelButtonText );
+ if ( mParams.mOnCancelButtonClickListener != null ) {
+ cancel.setOnClickListener( view -> {
+ if ( mParams.mOnCancelButtonClickListener != null ) {
+ mParams.mOnCancelButtonClickListener.onClick( WMDialog.this, DialogInterface.BUTTON_NEGATIVE );
+ }
+ } );
+ }
+
+ content.setText( mParams.mContent );
+ }
+
+ @Override
+ public void cancel() {
+ dismiss();
+ }
+
+ @Override
+ public void dismiss() {
+ mWindowManagerView.dismiss();
+ }
+
+ public boolean isShowing() {
+ return mWindowManagerView.isShowing();
+ }
+
+ public static class Builder {
+
+ private Context mContext;
+ private WMDialogParams mParams;
+
+ public Builder( Context context ) {
+ this.mContext = context;
+ mParams = new WMDialogParams();
+ mParams.mContext = context;
+ }
+
+ public Builder setContent( CharSequence content ) {
+ mParams.mContent = content;
+ return this;
+ }
+
+ public Builder setContent( @StringRes int content ) {
+ mParams.mContent = mContext.getString( content );
+ return this;
+ }
+
+ public Builder setOkButton( CharSequence buttonText, OnClickListener listener ) {
+ mParams.mOkButtonText = buttonText;
+ mParams.mOnOkButtonClickListener = listener;
+ return this;
+ }
+
+ public Builder setOkButton( @StringRes int buttonText, OnClickListener listener ) {
+ mParams.mOkButtonText = mContext.getText( buttonText );
+ mParams.mOnOkButtonClickListener = listener;
+ return this;
+ }
+
+ public Builder setCancelButton( CharSequence buttonText, OnClickListener listener ) {
+ mParams.mCancelButtonText = buttonText;
+ mParams.mOnCancelButtonClickListener = listener;
+ return this;
+ }
+
+ public Builder setCancelButton( @StringRes int buttonText, OnClickListener listener ) {
+ mParams.mCancelButtonText = mContext.getText( buttonText );
+ mParams.mOnCancelButtonClickListener = listener;
+ return this;
+ }
+
+ public Builder setOnDialogDismissListener( OnDismissListener onDialogDismissListener ) {
+ mParams.mOnDialogDismissListener = onDialogDismissListener;
+ return this;
+ }
+
+ public WMDialog build() {
+ WMDialog dialog = new WMDialog( mParams );
+ return dialog;
+ }
+ }
+
+ public static class WMDialogParams {
+
+ // public CharSequence mTitle;
+ public CharSequence mOkButtonText;
+ public CharSequence mCancelButtonText;
+ public CharSequence mContent;
+ public OnClickListener mOnOkButtonClickListener;
+ public OnClickListener mOnCancelButtonClickListener;
+ public OnDismissListener mOnDialogDismissListener;
+ public Context mContext;
+ }
+}
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerCardResult.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerCardResult.java
index 1a8e044cf8..be7c7bbe23 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerCardResult.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerCardResult.java
@@ -9,11 +9,12 @@ public class MarkerCardResult implements Serializable {
private List dataType; // 要查询的类型
private List carChat;
- private List exploreWay;
- private List onlineCar;
private List shareMusic;
private List noveltyInfo;
+ private List onlineCar;
+ private List exploreWay;
+
public List getCarChat() {
return carChat;
}
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerExploreWay.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerExploreWay.java
index 073c45bee0..d33c09686d 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerExploreWay.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerExploreWay.java
@@ -9,7 +9,12 @@ import java.util.List;
@SuppressWarnings("unused")
public class MarkerExploreWay implements Serializable {
+ private String infoId;
private String type;//卡片类型,
+ /**
+ * @see MarkerPoiTypeEnum
+ */
+ private String poiType;
private String sn;
private MarkerLocation location;//位置信息
private int direction;//方位角度
@@ -21,6 +26,8 @@ public class MarkerExploreWay implements Serializable {
private double distance;//距离
private MarkerUserInfo userInfo;//用户信息
private List items;//视频地址和图片地址
+ //上报类型:1-用户上报,2-后台上报 3-三方上报
+ private String uploadType;
public String getAddr() {
if (TextUtils.isEmpty(addr)) {
@@ -121,21 +128,48 @@ public class MarkerExploreWay implements Serializable {
this.userInfo = userInfo;
}
+ public String getInfoId() {
+ return infoId;
+ }
+
+ public void setInfoId(String infoId) {
+ this.infoId = infoId;
+ }
+
+ public String getPoiType() {
+ return poiType;
+ }
+
+ public void setPoiType(String poiType) {
+ this.poiType = poiType;
+ }
+
+ public String getUploadType() {
+ return uploadType;
+ }
+
+ public void setUploadType(String uploadType) {
+ this.uploadType = uploadType;
+ }
+
@Override
public String toString() {
return "MarkerExploreWay{" +
- "addr='" + addr + '\'' +
- ", canLive=" + canLive +
- ", cityName='" + cityName + '\'' +
- ", direction=" + direction +
- ", distance=" + distance +
- ", fileType=" + fileType +
- ", generateTime=" + generateTime +
- ", items=" + items +
- ", location=" + location +
+ "type='" + type + '\'' +
+ ", infoId='" + infoId + '\'' +
+ ", poiType='" + poiType + '\'' +
", sn='" + sn + '\'' +
- ", type='" + type + '\'' +
+ ", location=" + location +
+ ", direction=" + direction +
+ ", canLive=" + canLive +
+ ", fileType=" + fileType +
+ ", addr='" + addr + '\'' +
+ ", generateTime=" + generateTime +
+ ", cityName='" + cityName + '\'' +
+ ", distance=" + distance +
", userInfo=" + userInfo +
+ ", items=" + items +
+ ", uploadType='" + uploadType + '\'' +
'}';
}
}
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerPoiTypeEnum.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerPoiTypeEnum.java
index 6060810e56..e57e3270fe 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerPoiTypeEnum.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerPoiTypeEnum.java
@@ -36,4 +36,6 @@ public interface MarkerPoiTypeEnum {
public String FOURS_ACCIDENT = "10013";
//身边
public String FOURS_NEALY = "10014";
+ //实时路况
+ public String FOURS_LIVING = "10015";
}
\ No newline at end of file
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerView.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerView.java
new file mode 100644
index 0000000000..29db8cd8fb
--- /dev/null
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerView.java
@@ -0,0 +1,118 @@
+package com.mogo.module.common.wm;
+
+import android.content.Context;
+import android.graphics.PixelFormat;
+import android.os.Build;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.WindowManager;
+
+import androidx.annotation.IdRes;
+import androidx.annotation.LayoutRes;
+
+import com.mogo.module.common.utils.CarSeries;
+import com.mogo.utils.WindowUtils;
+
+/**
+ * @author congtaowang
+ * @since 2020-05-21
+ *
+ * 往 window manager 添加view
+ */
+public class WindowManagerView {
+
+ private WMViewParams mParams;
+ private boolean mIsShowing;
+ private WindowManager mWindowManager;
+ private WindowManager.LayoutParams mLayoutParams;
+
+ private WindowManagerView( WMViewParams params ) {
+ this.mParams = params;
+ init();
+ }
+
+ private void init() {
+ mWindowManager = ( WindowManager ) mParams.mContext.getApplicationContext().getSystemService( Context.WINDOW_SERVICE );
+ mLayoutParams = new WindowManager.LayoutParams();
+ if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.O ) {
+ mLayoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
+ } else {
+ mLayoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
+ }
+ mLayoutParams.format = PixelFormat.TRANSLUCENT;
+ mLayoutParams.gravity = Gravity.CENTER;
+ mLayoutParams.flags = WindowManager.LayoutParams.FLAG_DIM_BEHIND | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH;
+
+ if ( CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X ) {
+ mLayoutParams.width = 1920;
+ mLayoutParams.height = 1080;
+ } else {
+ mLayoutParams.width = WindowUtils.getScreenWidth( mParams.mContext );
+ mLayoutParams.height = WindowUtils.getScreenHeight( mParams.mContext );
+ }
+ mLayoutParams.dimAmount = 0.5f;
+ mLayoutParams.x = 0;
+ mLayoutParams.y = 0;
+ }
+
+ public boolean isShowing() {
+ return mIsShowing;
+ }
+
+ public < T extends View > T findViewById( @IdRes int id ) {
+ return mParams.mContentView.findViewById( id );
+ }
+
+ public void show() {
+ if ( mIsShowing ) {
+ return;
+ }
+ mIsShowing = true;
+ mWindowManager.addView( mParams.mContentView, mLayoutParams );
+ }
+
+ public void dismiss() {
+ if ( !mIsShowing ) {
+ return;
+ }
+ if ( mParams != null ) {
+ mWindowManager.removeViewImmediate( mParams.mContentView );
+ }
+ mIsShowing = false;
+ }
+
+ public static class Builder {
+
+ private WMViewParams mParams = null;
+
+ public Builder( Context context ) {
+ mParams = new WMViewParams();
+ mParams.mContext = context;
+ }
+
+ public Builder contentView( View contentView ) {
+ mParams.mContentView = contentView;
+ return this;
+ }
+
+ public Builder contentView( @LayoutRes int contentViewId ) {
+ mParams.mContentView = LayoutInflater.from( mParams.mContext ).inflate( contentViewId, null );
+ return this;
+ }
+
+ public WindowManagerView build() {
+ if ( mParams.mContentView == null ) {
+ throw new NullPointerException( "WMViewParams#mContentView must not be null." );
+ }
+ return new WindowManagerView( mParams );
+ }
+
+ }
+
+ public static class WMViewParams {
+
+ public View mContentView;
+ public Context mContext;
+ }
+}
diff --git a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DSVOrientation.java b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DSVOrientation.java
deleted file mode 100644
index ce167a9870..0000000000
--- a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DSVOrientation.java
+++ /dev/null
@@ -1,220 +0,0 @@
-package com.yarolegovich.discretescrollview;
-
-import android.graphics.Point;
-import android.view.View;
-
-/**
- * Created by yarolegovich on 16.03.2017.
- */
-public enum DSVOrientation {
-
- HORIZONTAL {
- @Override
- Helper createHelper() {
- return new HorizontalHelper();
- }
- },
- VERTICAL {
- @Override
- Helper createHelper() {
- return new VerticalHelper();
- }
- };
-
- //Package private
- abstract Helper createHelper();
-
- interface Helper {
-
- int getViewEnd(int recyclerWidth, int recyclerHeight);
-
- int getDistanceToChangeCurrent(int childWidth, int childHeight);
-
- void setCurrentViewCenter(Point recyclerCenter, int scrolled, Point outPoint);
-
- void shiftViewCenter(Direction direction, int shiftAmount, Point outCenter);
-
- int getFlingVelocity(int velocityX, int velocityY);
-
- int getPendingDx(int pendingScroll);
-
- int getPendingDy(int pendingScroll);
-
- void offsetChildren(int amount, RecyclerViewProxy lm);
-
- float getDistanceFromCenter(Point center, int viewCenterX, int viewCenterY);
-
- boolean isViewVisible(Point center, int halfWidth, int halfHeight, int endBound,
- int extraSpace);
-
- boolean hasNewBecomeVisible(DiscreteScrollLayoutManager lm);
-
- boolean canScrollVertically();
-
- boolean canScrollHorizontally();
- }
-
- protected static class HorizontalHelper implements Helper {
-
- @Override
- public int getViewEnd(int recyclerWidth, int recyclerHeight) {
- return recyclerWidth;
- }
-
- @Override
- public int getDistanceToChangeCurrent(int childWidth, int childHeight) {
- return childWidth;
- }
-
- @Override
- public void setCurrentViewCenter(Point recyclerCenter, int scrolled, Point outPoint) {
- int newX = recyclerCenter.x - scrolled;
- outPoint.set(newX, recyclerCenter.y);
- }
-
- @Override
- public void shiftViewCenter(Direction direction, int shiftAmount, Point outCenter) {
- int newX = outCenter.x + direction.applyTo(shiftAmount);
- outCenter.set(newX, outCenter.y);
- }
-
- @Override
- public boolean isViewVisible(
- Point viewCenter, int halfWidth, int halfHeight, int endBound,
- int extraSpace) {
- int viewLeft = viewCenter.x - halfWidth;
- int viewRight = viewCenter.x + halfWidth;
- return viewLeft < (endBound + extraSpace) && viewRight > -extraSpace;
- }
-
- @Override
- public boolean hasNewBecomeVisible(DiscreteScrollLayoutManager lm) {
- View firstChild = lm.getFirstChild(), lastChild = lm.getLastChild();
- int leftBound = -lm.getExtraLayoutSpace();
- int rightBound = lm.getWidth() + lm.getExtraLayoutSpace();
- boolean isNewVisibleFromLeft = lm.getDecoratedLeft(firstChild) > leftBound
- && lm.getPosition(firstChild) > 0;
- boolean isNewVisibleFromRight = lm.getDecoratedRight(lastChild) < rightBound
- && lm.getPosition(lastChild) < lm.getItemCount() - 1;
- return isNewVisibleFromLeft || isNewVisibleFromRight;
- }
-
- @Override
- public void offsetChildren(int amount, RecyclerViewProxy helper) {
- helper.offsetChildrenHorizontal(amount);
- }
-
- @Override
- public float getDistanceFromCenter(Point center, int viewCenterX, int viewCenterY) {
- return viewCenterX - center.x;
- }
-
- @Override
- public int getFlingVelocity(int velocityX, int velocityY) {
- return velocityX;
- }
-
- @Override
- public boolean canScrollHorizontally() {
- return true;
- }
-
- @Override
- public boolean canScrollVertically() {
- return false;
- }
-
- @Override
- public int getPendingDx(int pendingScroll) {
- return pendingScroll;
- }
-
- @Override
- public int getPendingDy(int pendingScroll) {
- return 0;
- }
- }
-
-
- protected static class VerticalHelper implements Helper {
-
- @Override
- public int getViewEnd(int recyclerWidth, int recyclerHeight) {
- return recyclerHeight;
- }
-
- @Override
- public int getDistanceToChangeCurrent(int childWidth, int childHeight) {
- return childHeight;
- }
-
- @Override
- public void setCurrentViewCenter(Point recyclerCenter, int scrolled, Point outPoint) {
- int newY = recyclerCenter.y - scrolled;
- outPoint.set(recyclerCenter.x, newY);
- }
-
- @Override
- public void shiftViewCenter(Direction direction, int shiftAmount, Point outCenter) {
- int newY = outCenter.y + direction.applyTo(shiftAmount);
- outCenter.set(outCenter.x, newY);
- }
-
- @Override
- public void offsetChildren(int amount, RecyclerViewProxy helper) {
- helper.offsetChildrenVertical(amount);
- }
-
- @Override
- public float getDistanceFromCenter(Point center, int viewCenterX, int viewCenterY) {
- return viewCenterY - center.y;
- }
-
- @Override
- public boolean isViewVisible(
- Point viewCenter, int halfWidth, int halfHeight, int endBound,
- int extraSpace) {
- int viewTop = viewCenter.y - halfHeight;
- int viewBottom = viewCenter.y + halfHeight;
- return viewTop < (endBound + extraSpace) && viewBottom > -extraSpace;
- }
-
- @Override
- public boolean hasNewBecomeVisible(DiscreteScrollLayoutManager lm) {
- View firstChild = lm.getFirstChild(), lastChild = lm.getLastChild();
- int topBound = -lm.getExtraLayoutSpace();
- int bottomBound = lm.getHeight() + lm.getExtraLayoutSpace();
- boolean isNewVisibleFromTop = lm.getDecoratedTop(firstChild) > topBound
- && lm.getPosition(firstChild) > 0;
- boolean isNewVisibleFromBottom = lm.getDecoratedBottom(lastChild) < bottomBound
- && lm.getPosition(lastChild) < lm.getItemCount() - 1;
- return isNewVisibleFromTop || isNewVisibleFromBottom;
- }
-
- @Override
- public int getFlingVelocity(int velocityX, int velocityY) {
- return velocityY;
- }
-
- @Override
- public boolean canScrollHorizontally() {
- return false;
- }
-
- @Override
- public boolean canScrollVertically() {
- return true;
- }
-
- @Override
- public int getPendingDx(int pendingScroll) {
- return 0;
- }
-
- @Override
- public int getPendingDy(int pendingScroll) {
- return pendingScroll;
- }
- }
-
-}
diff --git a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/Direction.java b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/Direction.java
deleted file mode 100644
index e4d1c386ce..0000000000
--- a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/Direction.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.yarolegovich.discretescrollview;
-
-/**
- * Created by yarolegovich on 16.03.2017.
- */
-enum Direction {
-
- START {
- @Override
- public int applyTo(int delta) {
- return delta * -1;
- }
-
- @Override
- public boolean sameAs(int direction) {
- return direction < 0;
- }
- },
- END {
- @Override
- public int applyTo(int delta) {
- return delta;
- }
-
- @Override
- public boolean sameAs(int direction) {
- return direction > 0;
- }
- };
-
- public abstract int applyTo(int delta);
-
- public abstract boolean sameAs(int direction);
-
- public static Direction fromDelta(int delta) {
- return delta > 0 ? END : START;
- }
-}
diff --git a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollLayoutManager.java b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollLayoutManager.java
deleted file mode 100644
index 777d950bed..0000000000
--- a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollLayoutManager.java
+++ /dev/null
@@ -1,836 +0,0 @@
-package com.yarolegovich.discretescrollview;
-
-import android.content.Context;
-import android.graphics.Point;
-import android.graphics.PointF;
-import android.os.Bundle;
-import android.os.Parcelable;
-import android.util.DisplayMetrics;
-import android.util.SparseArray;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.accessibility.AccessibilityEvent;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.core.view.accessibility.AccessibilityEventCompat;
-import androidx.core.view.accessibility.AccessibilityRecordCompat;
-import androidx.recyclerview.widget.LinearLayoutManager;
-import androidx.recyclerview.widget.LinearSmoothScroller;
-import androidx.recyclerview.widget.RecyclerView;
-import com.alibaba.idst.nls.internal.utils.L;
-import com.mogo.utils.logger.Logger;
-import com.yarolegovich.discretescrollview.transform.DiscreteScrollItemTransformer;
-
-import java.util.Locale;
-
-/**
- * Created by yarolegovich on 17.02.2017.
- */
-public class DiscreteScrollLayoutManager extends LinearLayoutManager {
-
- static final int NO_POSITION = -1;
-
- private static final String EXTRA_POSITION = "extra_position";
- private static final int DEFAULT_TIME_FOR_ITEM_SETTLE = 300;
- private static final int DEFAULT_FLING_THRESHOLD = 2100; //Decrease to increase sensitivity.
- private static final int DEFAULT_TRANSFORM_CLAMP_ITEM_COUNT = 1;
-
- protected static final float SCROLL_TO_SNAP_TO_ANOTHER_ITEM = 0.6f;
-
- //This field will take value of all visible view's center points during the fill phase
- protected Point viewCenterIterator;
- protected Point recyclerCenter;
- protected Point currentViewCenter;
- protected int childHalfWidth, childHalfHeight;
- protected int extraLayoutSpace;
-
- //Max possible distance a view can travel during one scroll phase
- protected int scrollToChangeCurrent;
- protected int currentScrollState;
-
- protected int scrolled;
- protected int pendingScroll;
- protected int currentPosition;
- protected int pendingPosition;
-
- protected SparseArray detachedCache;
-
- private DSVOrientation.Helper orientationHelper;
-
- protected boolean isFirstOrEmptyLayout;
-
- private Context context;
-
- private int timeForItemSettle;
- private int offscreenItems;
- private int transformClampItemCount;
-
- private boolean dataSetChangeShiftedPosition;
-
- private int flingThreshold;
- private boolean shouldSlideOnFling;
-
- private int viewWidth, viewHeight;
-
- private float ratio=0.5F;
-
- private static final String TAG = "DiscreteScrollLayoutMan";
- @NonNull
- private final ScrollStateListener scrollStateListener;
- private DiscreteScrollItemTransformer itemTransformer;
-
- private RecyclerViewProxy recyclerViewProxy;
-
- public DiscreteScrollLayoutManager(
- @NonNull Context c,
- @NonNull ScrollStateListener scrollStateListener,
- @NonNull DSVOrientation orientation) {
- super(c);
- this.context = c;
- this.timeForItemSettle = DEFAULT_TIME_FOR_ITEM_SETTLE;
- this.pendingPosition = NO_POSITION;
- this.currentPosition = NO_POSITION;
- this.flingThreshold = DEFAULT_FLING_THRESHOLD;
- this.shouldSlideOnFling = false;
- this.recyclerCenter = new Point();
- this.currentViewCenter = new Point();
- this.viewCenterIterator = new Point();
- this.detachedCache = new SparseArray<>();
- this.scrollStateListener = scrollStateListener;
- this.orientationHelper = orientation.createHelper();
- this.recyclerViewProxy = new RecyclerViewProxy(this);
- this.transformClampItemCount = DEFAULT_TRANSFORM_CLAMP_ITEM_COUNT;
- }
-
- @Override
- public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) {
- if (state.getItemCount() == 0) {
- recyclerViewProxy.removeAndRecycleAllViews(recycler);
- currentPosition = pendingPosition = NO_POSITION;
- scrolled = pendingScroll = 0;
- return;
- }
-
- ensureValidPosition(state);
-
- updateRecyclerDimensions(state);
-
- //onLayoutChildren may be called multiple times and this check is required so that the flag
- //won't be cleared until onLayoutCompleted
- if (!isFirstOrEmptyLayout) {
- isFirstOrEmptyLayout = recyclerViewProxy.getChildCount() == 0;
- if (isFirstOrEmptyLayout) {
- initChildDimensions(recycler);
- }
- }
-
- recyclerViewProxy.detachAndScrapAttachedViews(recycler);
-
- fill(recycler);
-
- applyItemTransformToChildren();
- }
-
- private void ensureValidPosition(RecyclerView.State state) {
- if (currentPosition == NO_POSITION || currentPosition >= state.getItemCount()) {
- //currentPosition might have been assigned in onRestoreInstanceState()
- //which can lead to a crash (position out of bounds) when data set
- //is not persisted across rotations
- currentPosition = 0;
- }
- }
-
- public void setRatio(float ratio) {
- this.ratio = ratio;
- }
-
- @Override
- public void onLayoutCompleted(RecyclerView.State state) {
- if (isFirstOrEmptyLayout) {
- scrollStateListener.onCurrentViewFirstLayout();
- isFirstOrEmptyLayout = false;
- } else if (dataSetChangeShiftedPosition) {
- scrollStateListener.onDataSetChangeChangedPosition();
- dataSetChangeShiftedPosition = false;
- }
- }
-
- protected void initChildDimensions(RecyclerView.Recycler recycler) {
- View viewToMeasure = recyclerViewProxy.getMeasuredChildForAdapterPosition(0, recycler);
-
- int childViewWidth = recyclerViewProxy.getMeasuredWidthWithMargin(viewToMeasure);
- int childViewHeight = recyclerViewProxy.getMeasuredHeightWithMargin(viewToMeasure);
-
- childHalfWidth = childViewWidth / 2;
- childHalfHeight = childViewHeight / 2;
-
- scrollToChangeCurrent = orientationHelper.getDistanceToChangeCurrent(
- childViewWidth,
- childViewHeight);
-
- extraLayoutSpace = scrollToChangeCurrent * offscreenItems;
-
- recyclerViewProxy.detachAndScrapView(viewToMeasure, recycler);
- }
-
- protected void updateRecyclerDimensions(RecyclerView.State state) {
- boolean dimensionsChanged = !state.isMeasuring()
- && (recyclerViewProxy.getWidth() != viewWidth
- || recyclerViewProxy.getHeight() != viewHeight);
- if (dimensionsChanged) {
- viewWidth = recyclerViewProxy.getWidth();
- viewHeight = recyclerViewProxy.getHeight();
- recyclerViewProxy.removeAllViews();
- }
- recyclerCenter.set(
- (int) (recyclerViewProxy.getWidth() * ratio),
- recyclerViewProxy.getHeight() / 2);
- }
-
- protected void fill(RecyclerView.Recycler recycler) {
- cacheAndDetachAttachedViews();
-
- orientationHelper.setCurrentViewCenter(recyclerCenter, scrolled, currentViewCenter);
-
- final int endBound = orientationHelper.getViewEnd(
- recyclerViewProxy.getWidth(),
- recyclerViewProxy.getHeight());
-
- //Layout current
- if (isViewVisible(currentViewCenter, endBound)) {
- layoutView(recycler, currentPosition, currentViewCenter);
- }
-
- //Layout items before the current item
- layoutViews(recycler, Direction.START, endBound);
-
- //Layout items after the current item
- layoutViews(recycler, Direction.END, endBound);
-
- recycleDetachedViewsAndClearCache(recycler);
- }
-
- private void layoutViews(RecyclerView.Recycler recycler, Direction direction, int endBound) {
- final int positionStep = direction.applyTo(1);
-
- //Predictive layout is required when we are doing smooth fast scroll towards pendingPosition
- boolean noPredictiveLayoutRequired = pendingPosition == NO_POSITION
- || !direction.sameAs(pendingPosition - currentPosition);
-
- viewCenterIterator.set(currentViewCenter.x, currentViewCenter.y);
- for (int pos = currentPosition + positionStep; isInBounds(pos); pos += positionStep) {
- if (pos == pendingPosition) {
- noPredictiveLayoutRequired = true;
- }
- orientationHelper.shiftViewCenter(direction, scrollToChangeCurrent, viewCenterIterator);
- if (isViewVisible(viewCenterIterator, endBound)) {
- layoutView(recycler, pos, viewCenterIterator);
- } else if (noPredictiveLayoutRequired) {
- break;
- }
- }
- }
-
- protected void layoutView(RecyclerView.Recycler recycler, int position, Point viewCenter) {
- if (position < 0) return;
- View v = detachedCache.get(position);
- if (v == null) {
- v = recyclerViewProxy.getMeasuredChildForAdapterPosition(position, recycler);
- recyclerViewProxy.layoutDecoratedWithMargins(v,
- viewCenter.x - childHalfWidth, viewCenter.y - childHalfHeight,
- viewCenter.x + childHalfWidth, viewCenter.y + childHalfHeight);
- } else {
- recyclerViewProxy.attachView(v);
- detachedCache.remove(position);
- }
- }
-
- protected void cacheAndDetachAttachedViews() {
- detachedCache.clear();
- for (int i = 0; i < recyclerViewProxy.getChildCount(); i++) {
- View child = recyclerViewProxy.getChildAt(i);
- detachedCache.put(recyclerViewProxy.getPosition(child), child);
- }
-
- for (int i = 0; i < detachedCache.size(); i++) {
- recyclerViewProxy.detachView(detachedCache.valueAt(i));
- }
- }
-
- protected void recycleDetachedViewsAndClearCache(RecyclerView.Recycler recycler) {
- for (int i = 0; i < detachedCache.size(); i++) {
- View viewToRemove = detachedCache.valueAt(i);
- recyclerViewProxy.recycleView(viewToRemove, recycler);
- }
- detachedCache.clear();
- }
-
- @Override
- public void onItemsAdded(RecyclerView recyclerView, int positionStart, int itemCount) {
- int newPosition = currentPosition;
- if (currentPosition == NO_POSITION) {
- newPosition = 0;
- } else if (currentPosition >= positionStart) {
- newPosition = Math.min(currentPosition + itemCount, recyclerViewProxy.getItemCount() - 1);
- }
- onNewPosition(newPosition);
- }
-
- @Override
- public void onItemsRemoved(RecyclerView recyclerView, int positionStart, int itemCount) {
- int newPosition = currentPosition;
- if (recyclerViewProxy.getItemCount() == 0) {
- newPosition = NO_POSITION;
- } else if (currentPosition >= positionStart) {
- if (currentPosition < positionStart + itemCount) {
- //If currentPosition is in the removed items, then the new item became current
- currentPosition = NO_POSITION;
- }
- newPosition = Math.max(0, currentPosition - itemCount);
- }
- onNewPosition(newPosition);
- }
-
- @Override
- public void onItemsChanged(RecyclerView recyclerView) {
- //notifyDataSetChanged() was called. We need to ensure that currentPosition is not out of bounds
- currentPosition = Math.min(Math.max(0, currentPosition), recyclerViewProxy.getItemCount() - 1);
- dataSetChangeShiftedPosition = true;
- }
-
- private void onNewPosition(int position) {
- if (currentPosition != position) {
- currentPosition = position;
- dataSetChangeShiftedPosition = true;
- }
- }
-
- @Override
- public int scrollHorizontallyBy(int dx, RecyclerView.Recycler recycler, RecyclerView.State state) {
- return scrollBy(dx, recycler);
- }
-
- @Override
- public int scrollVerticallyBy(int dy, RecyclerView.Recycler recycler, RecyclerView.State state) {
- return scrollBy(dy, recycler);
- }
-
- protected int scrollBy(int amount, RecyclerView.Recycler recycler) {
- if (recyclerViewProxy.getChildCount() == 0) {
- return 0;
- }
-
- Direction direction = Direction.fromDelta(amount);
- int leftToScroll = calculateAllowedScrollIn(direction);
- if (leftToScroll <= 0) {
- return 0;
- }
- int delta = direction.applyTo(Math.min(leftToScroll, Math.abs(amount)));
- Logger.d(TAG,"leftToScroll--》"+leftToScroll+"---amount--》"+amount);
-
- scrolled += delta;
- if (pendingScroll != 0) {
- pendingScroll -= delta;
- }
-
- orientationHelper.offsetChildren(-delta, recyclerViewProxy);
-
- if (orientationHelper.hasNewBecomeVisible(this)) {
- fill(recycler);
- }
-
- notifyScroll();
-
- applyItemTransformToChildren();
-
- return delta;
- }
-
- protected void applyItemTransformToChildren() {
- if (itemTransformer != null) {
- int clampAfterDistance = scrollToChangeCurrent * transformClampItemCount;
- for (int i = 0; i < recyclerViewProxy.getChildCount(); i++) {
- View child = recyclerViewProxy.getChildAt(i);
-
- //RecyclerView.ViewHolder childViewHolder = recyclerView.getChildViewHolder(child);
- float position = getCenterRelativePositionOf(child, clampAfterDistance);
- itemTransformer.transformItem(child,null, position);
- }
- }
- }
-
- @Override
- public void scrollToPosition(int position) {
- if (currentPosition == position) {
- return;
- }
-
- currentPosition = position;
- recyclerViewProxy.requestLayout();
- }
-
- //@Override
- //public void smoothScrollToPosition(RecyclerView recyclerView, RecyclerView.State state, int position) {
- // if (currentPosition == position || pendingPosition != NO_POSITION) {
- // return;
- // }
- // checkTargetPosition(state, position);
- // if (currentPosition == NO_POSITION) {
- // //Layout not happened yet
- // currentPosition = position;
- // } else {
- // startSmoothPendingScroll(position);
- // }
- //}
-
-
- @Override
- public void smoothScrollToPosition(RecyclerView recyclerView, RecyclerView.State state, int position) {
- LinearSmoothScroller smoothScroller =
- new LinearSmoothScroller(recyclerView.getContext()) {
- @Override
- protected float calculateSpeedPerPixel(DisplayMetrics displayMetrics) {
- // 返回:滑过1px时经历的时间(ms)。
- return 10f / displayMetrics.densityDpi;
- }
-
- @Override
- public int calculateDtToFit(int viewStart, int viewEnd, int boxStart, int boxEnd, int snapPreference) {
- return boxStart - viewStart;
- }
- };
-
- smoothScroller.setTargetPosition(position);
- startSmoothScroll(smoothScroller);
- }
-
- @Override
- public boolean canScrollHorizontally() {
- return orientationHelper.canScrollHorizontally();
- }
-
- @Override
- public boolean canScrollVertically() {
- return orientationHelper.canScrollVertically();
- }
-
- @Override
- public void onScrollStateChanged(int state) {
- if (currentScrollState == RecyclerView.SCROLL_STATE_IDLE && currentScrollState != state) {
- scrollStateListener.onScrollStart();
- }
-
- if (state == RecyclerView.SCROLL_STATE_IDLE) {
- //Scroll is not finished until current view is centered
- boolean isScrollEnded = onScrollEnd();
- if (isScrollEnded) {
- scrollStateListener.onScrollEnd();
- } else {
- //Scroll continues and we don't want to set currentScrollState to STATE_IDLE,
- //because this will then trigger .scrollStateListener.onScrollStart()
- return;
- }
- } else if (state == RecyclerView.SCROLL_STATE_DRAGGING) {
- onDragStart();
- }
- currentScrollState = state;
- }
-
- /**
- * @return true if scroll is ended and we don't need to settle items
- */
- private boolean onScrollEnd() {
- if (pendingPosition != NO_POSITION) {
- currentPosition = pendingPosition;
- pendingPosition = NO_POSITION;
- scrolled = 0;
- }
-
- Direction scrollDirection = Direction.fromDelta(scrolled);
- if (Math.abs(scrolled) == scrollToChangeCurrent) {
- currentPosition += scrollDirection.applyTo(1);
- scrolled = 0;
- }
-
- if (isAnotherItemCloserThanCurrent()) {
- pendingScroll = getHowMuchIsLeftToScroll(scrolled);
- } else {
- pendingScroll = -scrolled;
- }
-
- if (pendingScroll == 0) {
- return true;
- } else {
- startSmoothPendingScroll();
- return false;
- }
- }
-
- private void onDragStart() {
- //Here we need to:
- //1. Stop any pending scroll
- //2. Set currentPosition to position of the item that is closest to the center
- boolean isScrollingThroughMultiplePositions = Math.abs(scrolled) > scrollToChangeCurrent;
- if (isScrollingThroughMultiplePositions) {
- int scrolledPositions = scrolled / scrollToChangeCurrent;
- currentPosition += scrolledPositions;
- scrolled -= scrolledPositions * scrollToChangeCurrent;
- }
- if (isAnotherItemCloserThanCurrent()) {
- Direction direction = Direction.fromDelta(scrolled);
- currentPosition += direction.applyTo(1);
- scrolled = -getHowMuchIsLeftToScroll(scrolled);
- }
- pendingPosition = NO_POSITION;
- pendingScroll = 0;
- }
-
- public void onFling(int velocityX, int velocityY) {
- int velocity = orientationHelper.getFlingVelocity(velocityX, velocityY);
- int throttleValue = shouldSlideOnFling ? Math.abs(velocity / flingThreshold) : 1;
- int newPosition = currentPosition + Direction.fromDelta(velocity).applyTo(throttleValue);
- newPosition = checkNewOnFlingPositionIsInBounds(newPosition);
- boolean isInScrollDirection = velocity * scrolled >= 0;
- boolean canFling = isInScrollDirection && isInBounds(newPosition);
- if (canFling) {
- startSmoothPendingScroll(newPosition);
- } else {
- returnToCurrentPosition();
- }
-
- Logger.d(TAG,"onFling"+newPosition);
- }
-
- public void returnToCurrentPosition() {
- pendingScroll = -scrolled;
- if (pendingScroll != 0) {
- startSmoothPendingScroll();
- }
- }
-
- protected int calculateAllowedScrollIn(Direction direction) {
- if (pendingScroll != 0) {
- return Math.abs(pendingScroll);
- }
- int allowedScroll;
- boolean isBoundReached;
- boolean isScrollDirectionAsBefore = direction.applyTo(scrolled) > 0;
- if (direction == Direction.START && currentPosition == 0) {
- //We can scroll to the left when currentPosition == 0 only if we scrolled to the right before
- isBoundReached = scrolled == 0;
- allowedScroll = isBoundReached ? 0 : Math.abs(scrolled);
- } else if (direction == Direction.END && currentPosition == recyclerViewProxy.getItemCount() - 1) {
- //We can scroll to the right when currentPosition == last only if we scrolled to the left before
- isBoundReached = scrolled == 0;
- allowedScroll = isBoundReached ? 0 : Math.abs(scrolled);
- } else {
- isBoundReached = false;
- allowedScroll = isScrollDirectionAsBefore ?
- scrollToChangeCurrent - Math.abs(scrolled) :
- scrollToChangeCurrent + Math.abs(scrolled);
- }
- scrollStateListener.onIsBoundReachedFlagChange(isBoundReached);
- return allowedScroll;
- }
-
- private void startSmoothPendingScroll() {
- LinearSmoothScroller scroller = new DiscreteLinearSmoothScroller(context);
- scroller.setTargetPosition(currentPosition);
- recyclerViewProxy.startSmoothScroll(scroller);
- }
-
- public void startSmoothPendingScroll(int position) {
- if (currentPosition == position) return;
- pendingScroll = -scrolled;
- Direction direction = Direction.fromDelta(position - currentPosition);
- int distanceToScroll = Math.abs(position - currentPosition) * scrollToChangeCurrent;
- pendingScroll += direction.applyTo(distanceToScroll);
- pendingPosition = position;
- startSmoothPendingScroll();
- }
-
-
-
-
- @Override
- public boolean isAutoMeasureEnabled() {
- return true;
- }
-
- @Override
- public int computeVerticalScrollRange(RecyclerView.State state) {
- return computeScrollRange(state);
- }
-
- @Override
- public int computeVerticalScrollOffset(RecyclerView.State state) {
- return computeScrollOffset(state);
- }
-
- @Override
- public int computeVerticalScrollExtent(RecyclerView.State state) {
- return computeScrollExtent(state);
- }
-
- @Override
- public int computeHorizontalScrollRange(RecyclerView.State state) {
- return computeScrollRange(state);
- }
-
- @Override
- public int computeHorizontalScrollOffset(RecyclerView.State state) {
- return computeScrollOffset(state);
- }
-
- @Override
- public int computeHorizontalScrollExtent(RecyclerView.State state) {
- return computeScrollExtent(state);
- }
-
- private int computeScrollOffset(RecyclerView.State state) {
- int scrollbarSize = computeScrollExtent(state);
- int offset = (int) ((scrolled / (float) scrollToChangeCurrent) * scrollbarSize);
- return (currentPosition * scrollbarSize) + offset;
- }
-
- private int computeScrollExtent(RecyclerView.State state) {
- if (getItemCount() == 0) {
- return 0;
- } else {
- return (int) (computeScrollRange(state) / (float) getItemCount());
- }
- }
-
- private int computeScrollRange(RecyclerView.State state) {
- if (getItemCount() == 0) {
- return 0;
- } else {
- return scrollToChangeCurrent * (getItemCount() - 1);
- }
- }
-
- @Override
- public void onAdapterChanged(RecyclerView.Adapter oldAdapter, RecyclerView.Adapter newAdapter) {
- pendingPosition = NO_POSITION;
- scrolled = pendingScroll = 0;
- if (newAdapter instanceof InitialPositionProvider) {
- currentPosition = ((InitialPositionProvider) newAdapter).getInitialPosition();
- } else {
- currentPosition = 0;
- }
- recyclerViewProxy.removeAllViews();
- }
-
- @Override
- public Parcelable onSaveInstanceState() {
- Bundle bundle = new Bundle();
- if (pendingPosition != NO_POSITION) {
- currentPosition = pendingPosition;
- }
- bundle.putInt(EXTRA_POSITION, currentPosition);
- return bundle;
- }
-
- @Override
- public void onRestoreInstanceState(Parcelable state) {
- Bundle bundle = (Bundle) state;
- currentPosition = bundle.getInt(EXTRA_POSITION);
- }
-
- @Override
- public RecyclerView.LayoutParams generateDefaultLayoutParams() {
- return new RecyclerView.LayoutParams(
- ViewGroup.LayoutParams.WRAP_CONTENT,
- ViewGroup.LayoutParams.WRAP_CONTENT);
- }
-
- public int getNextPosition() {
- if (scrolled == 0) {
- return currentPosition;
- } else if (pendingPosition != NO_POSITION) {
- return pendingPosition;
- } else {
- return currentPosition + Direction.fromDelta(scrolled).applyTo(1);
- }
- }
-
- public void setItemTransformer(DiscreteScrollItemTransformer itemTransformer) {
- this.itemTransformer = itemTransformer;
- }
-
- public void setTimeForItemSettle(int timeForItemSettle) {
- this.timeForItemSettle = timeForItemSettle;
- }
-
- public void setOffscreenItems(int offscreenItems) {
- this.offscreenItems = offscreenItems;
- extraLayoutSpace = scrollToChangeCurrent * offscreenItems;
- recyclerViewProxy.requestLayout();
- }
-
- public void setTransformClampItemCount(int transformClampItemCount) {
- this.transformClampItemCount = transformClampItemCount;
- applyItemTransformToChildren();
- }
-
- public void setOrientation(DSVOrientation orientation) {
- orientationHelper = orientation.createHelper();
- recyclerViewProxy.removeAllViews();
- recyclerViewProxy.requestLayout();
- }
-
- public void setShouldSlideOnFling(boolean result) {
- shouldSlideOnFling = result;
- }
-
- public void setSlideOnFlingThreshold(int threshold) {
- flingThreshold = threshold;
- }
-
- public int getCurrentPosition() {
- return currentPosition;
- }
-
- @Override
- public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
- super.onInitializeAccessibilityEvent(event);
- if (recyclerViewProxy.getChildCount() > 0) {
- final AccessibilityRecordCompat record = AccessibilityEventCompat.asRecord(event);
- record.setFromIndex(getPosition(getFirstChild()));
- record.setToIndex(getPosition(getLastChild()));
- }
- }
-
- private float getCenterRelativePositionOf(View v, int maxDistance) {
- float distanceFromCenter = orientationHelper.getDistanceFromCenter(recyclerCenter,
- getDecoratedLeft(v) + childHalfWidth,
- getDecoratedTop(v) + childHalfHeight);
- return Math.min(Math.max(-1f, distanceFromCenter / maxDistance), 1f);
- }
-
- private int checkNewOnFlingPositionIsInBounds(int position) {
- final int itemCount = recyclerViewProxy.getItemCount();
- //The check is required in case slide through multiple items is turned on
- if (currentPosition != 0 && position < 0) {
- //If currentPosition == 0 && position < 0 we forbid scroll to the left,
- //but if currentPosition != 0 we can slide to the first item
- return 0;
- } else if (currentPosition != itemCount - 1 && position >= itemCount) {
- return itemCount - 1;
- }
- return position;
- }
-
- private int getHowMuchIsLeftToScroll(int dx) {
- return Direction.fromDelta(dx).applyTo(scrollToChangeCurrent - Math.abs(scrolled));
- }
-
- private boolean isAnotherItemCloserThanCurrent() {
- return Math.abs(scrolled) >= scrollToChangeCurrent * SCROLL_TO_SNAP_TO_ANOTHER_ITEM;
- }
-
- public View getFirstChild() {
- return recyclerViewProxy.getChildAt(0);
- }
-
- public View getLastChild() {
- return recyclerViewProxy.getChildAt(recyclerViewProxy.getChildCount() - 1);
- }
-
- public int getExtraLayoutSpace() {
- return extraLayoutSpace;
- }
-
- private void notifyScroll() {
- float amountToScroll = pendingPosition != NO_POSITION ?
- Math.abs(scrolled + pendingScroll) :
- scrollToChangeCurrent;
- float position = -Math.min(Math.max(-1f, scrolled / amountToScroll), 1f);
- scrollStateListener.onScroll(position);
- }
-
- private boolean isInBounds(int itemPosition) {
- return itemPosition >= 0 && itemPosition < recyclerViewProxy.getItemCount();
- }
-
- private boolean isViewVisible(Point viewCenter, int endBound) {
- return orientationHelper.isViewVisible(
- viewCenter, childHalfWidth, childHalfHeight,
- endBound, extraLayoutSpace);
- }
-
-
- public void setPendingScroll(int pendingScroll){
- this.pendingScroll=pendingScroll;
- }
-
- private void checkTargetPosition(RecyclerView.State state, int targetPosition) {
- if (targetPosition < 0 || targetPosition >= state.getItemCount()) {
- throw new IllegalArgumentException(String.format(Locale.US,
- "target position out of bounds: position=%d, itemCount=%d",
- targetPosition, state.getItemCount()));
- }
- }
-
- protected void setRecyclerViewProxy(RecyclerViewProxy recyclerViewProxy) {
- this.recyclerViewProxy = recyclerViewProxy;
- }
-
- protected void setOrientationHelper(DSVOrientation.Helper orientationHelper) {
- this.orientationHelper = orientationHelper;
- }
-
- private class DiscreteLinearSmoothScroller extends LinearSmoothScroller {
-
- public DiscreteLinearSmoothScroller(Context context) {
- super(context);
- }
-
- @Override
- public int calculateDxToMakeVisible(View view, int snapPreference) {
- return orientationHelper.getPendingDx(-pendingScroll);
- }
-
- @Override
- public int calculateDyToMakeVisible(View view, int snapPreference) {
- return orientationHelper.getPendingDy(-pendingScroll);
- }
-
- @Override
- protected int calculateTimeForScrolling(int dx) {
- float dist = Math.min(Math.abs(dx), scrollToChangeCurrent);
- return (int) (Math.max(0.01f, dist / scrollToChangeCurrent) * timeForItemSettle);
- }
-
- @Nullable
- @Override
- public PointF computeScrollVectorForPosition(int targetPosition) {
- return new PointF(
- orientationHelper.getPendingDx(pendingScroll),
- orientationHelper.getPendingDy(pendingScroll));
- }
-
- @Override protected float calculateSpeedPerPixel(DisplayMetrics displayMetrics) {
- return 10f / displayMetrics.densityDpi;
- }
- }
-
- public interface ScrollStateListener {
- void onIsBoundReachedFlagChange(boolean isBoundReached);
-
- void onScrollStart();
-
- void onScrollEnd();
-
- void onScroll(float currentViewPosition);
-
- void onCurrentViewFirstLayout();
-
- void onDataSetChangeChangedPosition();
- }
-
- public interface InitialPositionProvider {
- int getInitialPosition();
- }
-}
diff --git a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollView.java b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollView.java
deleted file mode 100644
index bf37a87cd7..0000000000
--- a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/DiscreteScrollView.java
+++ /dev/null
@@ -1,302 +0,0 @@
-package com.yarolegovich.discretescrollview;
-
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.util.AttributeSet;
-import android.view.View;
-
-import androidx.annotation.IntRange;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.recyclerview.widget.RecyclerView;
-import com.mogo.module.common.R;
-import com.yarolegovich.discretescrollview.transform.DiscreteScrollItemTransformer;
-import com.yarolegovich.discretescrollview.util.ScrollListenerAdapter;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Created by yarolegovich on 18.02.2017.
- */
-@SuppressWarnings("unchecked")
-public class DiscreteScrollView extends RecyclerView {
-
- public static final int NO_POSITION = DiscreteScrollLayoutManager.NO_POSITION;
-
- private static final int DEFAULT_ORIENTATION = DSVOrientation.HORIZONTAL.ordinal();
-
- private DiscreteScrollLayoutManager layoutManager;
-
- private List scrollStateChangeListeners;
- private List onItemChangedListeners;
-
- private boolean isOverScrollEnabled;
-
- public DiscreteScrollView(Context context) {
- super(context);
- init(null);
- }
-
- public DiscreteScrollView(Context context, AttributeSet attrs) {
- super(context, attrs);
- init(attrs);
- }
-
- public DiscreteScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- init(attrs);
- }
-
- private void init(AttributeSet attrs) {
- scrollStateChangeListeners = new ArrayList<>();
- onItemChangedListeners = new ArrayList<>();
-
- int orientation = DEFAULT_ORIENTATION;
- if (attrs != null) {
- TypedArray ta = getContext().obtainStyledAttributes(attrs, R.styleable.DiscreteScrollView);
- orientation = ta.getInt(R.styleable.DiscreteScrollView_dsv_orientation, DEFAULT_ORIENTATION);
- ta.recycle();
- }
-
- isOverScrollEnabled = getOverScrollMode() != OVER_SCROLL_NEVER;
-
- layoutManager = new DiscreteScrollLayoutManager(
- getContext(), new ScrollStateListener(),
- DSVOrientation.values()[orientation]);
- setLayoutManager(layoutManager);
- }
-
- public void setRatio(float ratio){
- layoutManager.setRatio(ratio);
- }
-
- @Override
- public void setLayoutManager(LayoutManager layout) {
- if (layout instanceof DiscreteScrollLayoutManager) {
- super.setLayoutManager(layout);
- } else {
- throw new IllegalArgumentException(getContext().getString(R.string.dsv_ex_msg_dont_set_lm));
- }
- }
-
-
- @Override
- public boolean fling(int velocityX, int velocityY) {
- boolean isFling = super.fling(velocityX, velocityY);
- if (isFling) {
- layoutManager.onFling(velocityX, velocityY);
- } else {
- layoutManager.returnToCurrentPosition();
- }
- return isFling;
- }
-
- @Nullable
- public ViewHolder getViewHolder(int position) {
- View view = layoutManager.findViewByPosition(position);
- return view != null ? getChildViewHolder(view) : null;
- }
-
- /**
- * @return adapter position of the current item or -1 if nothing is selected
- */
- public int getCurrentItem() {
- return layoutManager.getCurrentPosition();
- }
-
- public void setItemTransformer(DiscreteScrollItemTransformer transformer) {
- layoutManager.setItemTransformer(transformer);
- }
-
- public void setItemTransitionTimeMillis(@IntRange(from = 10) int millis) {
- layoutManager.setTimeForItemSettle(millis);
- }
-
- public void setSlideOnFling(boolean result){
- layoutManager.setShouldSlideOnFling(result);
- }
-
- public void setSlideOnFlingThreshold(int threshold){
- layoutManager.setSlideOnFlingThreshold(threshold);
- }
-
- public void setOrientation(DSVOrientation orientation) {
- layoutManager.setOrientation(orientation);
- }
-
- public void setOffscreenItems(int items) {
- layoutManager.setOffscreenItems(items);
- }
-
- public void setClampTransformProgressAfter(@IntRange(from = 1) int itemCount) {
- if (itemCount <= 1) {
- throw new IllegalArgumentException("must be >= 1");
- }
- layoutManager.setTransformClampItemCount(itemCount);
- }
-
- public void setOverScrollEnabled(boolean overScrollEnabled) {
- isOverScrollEnabled = overScrollEnabled;
- setOverScrollMode(OVER_SCROLL_NEVER);
- }
-
- public void addScrollStateChangeListener(@NonNull ScrollStateChangeListener> scrollStateChangeListener) {
- scrollStateChangeListeners.add(scrollStateChangeListener);
- }
-
- public void addScrollListener(@NonNull ScrollListener> scrollListener) {
- addScrollStateChangeListener(new ScrollListenerAdapter(scrollListener));
- }
-
- public void addOnItemChangedListener(@NonNull OnItemChangedListener> onItemChangedListener) {
- onItemChangedListeners.add(onItemChangedListener);
- }
-
- public void removeScrollStateChangeListener(@NonNull ScrollStateChangeListener> scrollStateChangeListener) {
- scrollStateChangeListeners.remove(scrollStateChangeListener);
- }
-
- public void removeScrollListener(@NonNull ScrollListener> scrollListener) {
- removeScrollStateChangeListener(new ScrollListenerAdapter<>(scrollListener));
- }
-
- public void removeItemChangedListener(@NonNull OnItemChangedListener> onItemChangedListener) {
- onItemChangedListeners.remove(onItemChangedListener);
- }
-
- private void notifyScrollStart(ViewHolder holder, int current) {
- for (ScrollStateChangeListener listener : scrollStateChangeListeners) {
- listener.onScrollStart(holder, current);
- }
- }
-
- private void notifyScrollEnd(ViewHolder holder, int current) {
- for (ScrollStateChangeListener listener : scrollStateChangeListeners) {
- listener.onScrollEnd(holder, current);
- }
- }
-
- private void notifyScroll(float position,
- int currentIndex, int newIndex,
- ViewHolder currentHolder, ViewHolder newHolder) {
- for (ScrollStateChangeListener listener : scrollStateChangeListeners) {
- listener.onScroll(position, currentIndex, newIndex,
- currentHolder,
- newHolder);
- }
- }
-
- private void notifyCurrentItemChanged(ViewHolder holder, int current) {
- for (OnItemChangedListener listener : onItemChangedListeners) {
- listener.onCurrentItemChanged(holder, current);
- }
- }
-
- private void notifyCurrentItemChanged() {
- if (onItemChangedListeners.isEmpty()) {
- return;
- }
- int current = layoutManager.getCurrentPosition();
- ViewHolder currentHolder = getViewHolder(current);
- notifyCurrentItemChanged(currentHolder, current);
- }
-
- public void setPendingScroll(int PendingScroll ) {
- layoutManager.setPendingScroll(PendingScroll);
- }
-
- private class ScrollStateListener implements DiscreteScrollLayoutManager.ScrollStateListener {
-
- @Override
- public void onIsBoundReachedFlagChange(boolean isBoundReached) {
- if (isOverScrollEnabled) {
- setOverScrollMode(isBoundReached ? OVER_SCROLL_ALWAYS : OVER_SCROLL_NEVER);
- }
- }
-
- @Override
- public void onScrollStart() {
- if (scrollStateChangeListeners.isEmpty()) {
- return;
- }
- int current = layoutManager.getCurrentPosition();
- ViewHolder holder = getViewHolder(current);
- if (holder != null) {
- notifyScrollStart(holder, current);
- }
- }
-
- @Override
- public void onScrollEnd() {
- if (onItemChangedListeners.isEmpty() && scrollStateChangeListeners.isEmpty()) {
- return;
- }
- int current = layoutManager.getCurrentPosition();
- ViewHolder holder = getViewHolder(current);
- if (holder != null) {
- notifyScrollEnd(holder, current);
- notifyCurrentItemChanged(holder, current);
- }
- }
-
- @Override
- public void onScroll(float currentViewPosition) {
- if (scrollStateChangeListeners.isEmpty()) {
- return;
- }
- int currentIndex = getCurrentItem();
- int newIndex = layoutManager.getNextPosition();
- if (currentIndex != newIndex) {
- notifyScroll(currentViewPosition,
- currentIndex, newIndex,
- getViewHolder(currentIndex),
- getViewHolder(newIndex));
- }
- }
-
- @Override
- public void onCurrentViewFirstLayout() {
- post(new Runnable() {
- @Override
- public void run() {
- notifyCurrentItemChanged();
- }
- });
- }
-
- @Override
- public void onDataSetChangeChangedPosition() {
- notifyCurrentItemChanged();
- }
- }
-
- public interface ScrollStateChangeListener {
-
- void onScrollStart(@NonNull T currentItemHolder, int adapterPosition);
-
- void onScrollEnd(@NonNull T currentItemHolder, int adapterPosition);
-
- void onScroll(float scrollPosition,
- int currentPosition,
- int newPosition,
- @Nullable T currentHolder,
- @Nullable T newCurrent);
- }
-
- public interface ScrollListener {
-
- void onScroll(float scrollPosition,
- int currentPosition, int newPosition,
- @Nullable T currentHolder,
- @Nullable T newCurrent);
- }
-
- public interface OnItemChangedListener {
- /*
- * This method will be also triggered when view appears on the screen for the first time.
- * If data set is empty, viewHolder will be null and adapterPosition will be NO_POSITION
- */
- void onCurrentItemChanged(@Nullable T viewHolder, int adapterPosition);
- }
-}
diff --git a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/InfiniteScrollAdapter.java b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/InfiniteScrollAdapter.java
deleted file mode 100644
index 36fb35c94d..0000000000
--- a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/InfiniteScrollAdapter.java
+++ /dev/null
@@ -1,179 +0,0 @@
-package com.yarolegovich.discretescrollview;
-
-import android.view.ViewGroup;
-
-import androidx.annotation.NonNull;
-import androidx.recyclerview.widget.RecyclerView;
-import com.mogo.module.common.R;
-import java.util.Locale;
-
-/**
- * Created by yarolegovich on 28-Apr-17.
- */
-
-public class InfiniteScrollAdapter extends RecyclerView.Adapter
- implements DiscreteScrollLayoutManager.InitialPositionProvider {
-
- private static final int CENTER = Integer.MAX_VALUE / 2;
- private static final int RESET_BOUND = 100;
-
- public static InfiniteScrollAdapter wrap(
- @NonNull RecyclerView.Adapter adapter) {
- return new InfiniteScrollAdapter<>(adapter);
- }
-
- private RecyclerView.Adapter wrapped;
- private DiscreteScrollLayoutManager layoutManager;
-
- public InfiniteScrollAdapter(@NonNull RecyclerView.Adapter wrapped) {
- this.wrapped = wrapped;
- this.wrapped.registerAdapterDataObserver(new DataSetChangeDelegate());
- }
-
- @Override
- public void onAttachedToRecyclerView(@NonNull RecyclerView recyclerView) {
- wrapped.onAttachedToRecyclerView(recyclerView);
- if (recyclerView instanceof DiscreteScrollView) {
- layoutManager = (DiscreteScrollLayoutManager) recyclerView.getLayoutManager();
- } else {
- String msg = recyclerView.getContext().getString(R.string.dsv_ex_msg_adapter_wrong_recycler);
- throw new RuntimeException(msg);
- }
- }
-
- @Override
- public void onDetachedFromRecyclerView(@NonNull RecyclerView recyclerView) {
- wrapped.onDetachedFromRecyclerView(recyclerView);
- layoutManager = null;
- }
-
- @Override
- public @NonNull T onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- return wrapped.onCreateViewHolder(parent, viewType);
- }
-
- @Override
- public void onBindViewHolder(@NonNull T holder, int position) {
- if (isResetRequired(position)) {
- int resetPosition = CENTER + mapPositionToReal(layoutManager.getCurrentPosition());
- setPosition(resetPosition);
- return;
- }
- wrapped.onBindViewHolder(holder, mapPositionToReal(position));
- }
-
- @Override
- public int getItemViewType(int position) {
- return wrapped.getItemViewType(mapPositionToReal(position));
- }
-
- @Override
- public int getItemCount() {
- return isInfinite() ? Integer.MAX_VALUE : wrapped.getItemCount();
- }
-
- public int getRealItemCount() {
- return wrapped.getItemCount();
- }
-
- public int getRealCurrentPosition() {
- return getRealPosition(layoutManager.getCurrentPosition());
- }
-
- public int getRealPosition(int position) {
- return mapPositionToReal(position);
- }
-
- public int getClosestPosition(int position) {
- ensureValidPosition(position);
- int adapterCurrent = layoutManager.getCurrentPosition();
- int current = mapPositionToReal(adapterCurrent);
- if (position == current) {
- return adapterCurrent;
- }
- int delta = position - current;
- int target = adapterCurrent + delta;
- int wraparoundTarget = adapterCurrent + (position > current ?
- delta - wrapped.getItemCount() :
- wrapped.getItemCount() + delta);
- int distance = Math.abs(adapterCurrent - target);
- int wraparoundDistance = Math.abs(adapterCurrent - wraparoundTarget);
- if (distance == wraparoundDistance) {
- //Scroll to the right feels more natural, so prefer it
- return target > adapterCurrent ? target : wraparoundTarget;
- } else {
- return distance < wraparoundDistance ? target : wraparoundTarget;
- }
- }
-
- private int mapPositionToReal(int position) {
- if (position < CENTER) {
- int rem = (CENTER - position) % wrapped.getItemCount();
- return rem == 0 ? 0 : wrapped.getItemCount() - rem;
- } else {
- return (position - CENTER) % wrapped.getItemCount();
- }
- }
-
- private boolean isResetRequired(int requestedPosition) {
- return isInfinite()
- && (requestedPosition <= RESET_BOUND
- || requestedPosition >= (Integer.MAX_VALUE - RESET_BOUND));
- }
-
- private void ensureValidPosition(int position) {
- if (position >= wrapped.getItemCount()) {
- throw new IndexOutOfBoundsException(String.format(Locale.US,
- "requested position is outside adapter's bounds: position=%d, size=%d",
- position, wrapped.getItemCount()));
- }
- }
-
- private boolean isInfinite() {
- return wrapped.getItemCount() > 1;
- }
-
- @Override
- public int getInitialPosition() {
- return isInfinite() ? CENTER : 0;
- }
-
- private void setPosition(int position) {
- layoutManager.scrollToPosition(position);
- }
-
- //TODO: handle proper data set change notifications
- private class DataSetChangeDelegate extends RecyclerView.AdapterDataObserver {
-
- @Override
- public void onChanged() {
- setPosition(getInitialPosition());
- notifyDataSetChanged();
- }
-
- @Override
- public void onItemRangeRemoved(int positionStart, int itemCount) {
- onChanged();
- }
-
- @Override
- public void onItemRangeInserted(int positionStart, int itemCount) {
- onChanged();
- }
-
- @Override
- public void onItemRangeMoved(int fromPosition, int toPosition, int itemCount) {
- onChanged();
- }
-
- @Override
- public void onItemRangeChanged(int positionStart, int itemCount) {
- notifyItemRangeChanged(0, getItemCount());
- }
-
- @Override
- public void onItemRangeChanged(int positionStart, int itemCount, Object payload) {
- notifyItemRangeChanged(0, getItemCount(), payload);
- }
- }
-}
\ No newline at end of file
diff --git a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/RecyclerViewProxy.java b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/RecyclerViewProxy.java
deleted file mode 100644
index cbafbf4f6b..0000000000
--- a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/RecyclerViewProxy.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package com.yarolegovich.discretescrollview;
-
-import android.view.View;
-import android.view.ViewGroup;
-import androidx.annotation.NonNull;
-import androidx.recyclerview.widget.RecyclerView;
-
-/**
- * Created by yarolegovich on 10/25/17.
- */
-public class RecyclerViewProxy {
-
- private RecyclerView.LayoutManager layoutManager;
-
- public RecyclerViewProxy(@NonNull RecyclerView.LayoutManager layoutManager) {
- this.layoutManager = layoutManager;
- }
-
- public void attachView(View view) {
- layoutManager.attachView(view);
- }
-
- public void detachView(View view) {
- layoutManager.detachView(view);
- }
-
- public void detachAndScrapView(View view, RecyclerView.Recycler recycler) {
- layoutManager.detachAndScrapView(view, recycler);
- }
-
- public void detachAndScrapAttachedViews(RecyclerView.Recycler recycler) {
- layoutManager.detachAndScrapAttachedViews(recycler);
- }
-
- public void recycleView(View view, RecyclerView.Recycler recycler) {
- recycler.recycleView(view);
- }
-
- public void removeAndRecycleAllViews(RecyclerView.Recycler recycler) {
- layoutManager.removeAndRecycleAllViews(recycler);
- }
-
- public int getChildCount() {
- return layoutManager.getChildCount();
- }
-
- public int getItemCount() {
- return layoutManager.getItemCount();
- }
-
- public View getMeasuredChildForAdapterPosition(int position, RecyclerView.Recycler recycler) {
- View view = recycler.getViewForPosition(position);
- layoutManager.addView(view);
- layoutManager.measureChildWithMargins(view, 0, 0);
- return view;
- }
-
- public void layoutDecoratedWithMargins(View v, int left, int top, int right, int bottom) {
- layoutManager.layoutDecoratedWithMargins(v, left, top, right, bottom);
- }
-
- public View getChildAt(int index) {
- return layoutManager.getChildAt(index);
- }
-
- public int getPosition(View view) {
- return layoutManager.getPosition(view);
- }
-
- public int getMeasuredWidthWithMargin(View child) {
- ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) child.getLayoutParams();
- return layoutManager.getDecoratedMeasuredWidth(child) + lp.leftMargin + lp.rightMargin;
- }
-
- public int getMeasuredHeightWithMargin(View child) {
- ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) child.getLayoutParams();
- return layoutManager.getDecoratedMeasuredHeight(child) + lp.topMargin + lp.bottomMargin;
- }
-
- public int getWidth() {
- return layoutManager.getWidth();
- }
-
- public int getHeight() {
- return layoutManager.getHeight();
- }
-
- public void offsetChildrenHorizontal(int amount) {
- layoutManager.offsetChildrenHorizontal(amount);
- }
-
- public void offsetChildrenVertical(int amount) {
- layoutManager.offsetChildrenVertical(amount);
- }
-
- public void requestLayout() {
- layoutManager.requestLayout();
- }
-
- public void startSmoothScroll(RecyclerView.SmoothScroller smoothScroller) {
- layoutManager.startSmoothScroll(smoothScroller);
- }
-
- public void removeAllViews() {
- layoutManager.removeAllViews();
- }
-}
diff --git a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/transform/DiscreteScrollItemTransformer.java b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/transform/DiscreteScrollItemTransformer.java
deleted file mode 100644
index 5be48cd737..0000000000
--- a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/transform/DiscreteScrollItemTransformer.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.yarolegovich.discretescrollview.transform;
-
-import android.view.View;
-import androidx.recyclerview.widget.RecyclerView;
-
-/**
- * Created by yarolegovich on 02.03.2017.
- */
-
-public interface DiscreteScrollItemTransformer {
- void transformItem(View item, RecyclerView.ViewHolder childViewHolder,float position);
-}
diff --git a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/transform/Pivot.java b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/transform/Pivot.java
deleted file mode 100644
index fc5fcd11d2..0000000000
--- a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/transform/Pivot.java
+++ /dev/null
@@ -1,116 +0,0 @@
-package com.yarolegovich.discretescrollview.transform;
-
-import android.view.View;
-
-import androidx.annotation.IntDef;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * Created by yarolegovich on 03.03.2017.
- */
-
-public class Pivot {
-
- public static final int AXIS_X = 0;
- public static final int AXIS_Y = 1;
-
- private static final int PIVOT_CENTER = -1;
- private static final int PIVOT_MAX = -2;
-
- private int axis;
- private int pivotPoint;
-
- public Pivot(@Axis int axis, int pivotPoint) {
- this.axis = axis;
- this.pivotPoint = pivotPoint;
- }
-
- public void setOn(View view) {
- if (axis == AXIS_X) {
- switch (pivotPoint) {
- case PIVOT_CENTER:
- view.setPivotX(view.getWidth() * 0.5f);
- break;
- case PIVOT_MAX:
- view.setPivotX(view.getWidth());
- break;
- default:
- view.setPivotX(pivotPoint);
- break;
- }
- return;
- }
-
- if (axis == AXIS_Y) {
- switch (pivotPoint) {
- case PIVOT_CENTER:
- view.setPivotY(view.getHeight() * 0.5f);
- break;
- case PIVOT_MAX:
- view.setPivotY(view.getHeight());
- break;
- default:
- view.setPivotY(pivotPoint);
- break;
- }
- }
- }
-
- @Axis
- public int getAxis() {
- return axis;
- }
-
- public enum X {
- LEFT {
- @Override
- public Pivot create() {
- return new Pivot(AXIS_X, 0);
- }
- },
- CENTER {
- @Override
- public Pivot create() {
- return new Pivot(AXIS_X, PIVOT_CENTER);
- }
- },
- RIGHT {
- @Override
- public Pivot create() {
- return new Pivot(AXIS_X, PIVOT_MAX);
- }
- };
-
- public abstract Pivot create();
- }
-
- public enum Y {
- TOP {
- @Override
- public Pivot create() {
- return new Pivot(AXIS_Y, 0);
- }
- },
- CENTER {
- @Override
- public Pivot create() {
- return new Pivot(AXIS_Y, PIVOT_CENTER);
- }
- },
- BOTTOM {
- @Override
- public Pivot create() {
- return new Pivot(AXIS_Y, PIVOT_MAX);
- }
- };
-
- public abstract Pivot create();
- }
-
- @IntDef({AXIS_X, AXIS_Y})
- @Retention(RetentionPolicy.SOURCE)
- public @interface Axis{
- }
-}
-
diff --git a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/transform/ScaleTransformer.java b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/transform/ScaleTransformer.java
deleted file mode 100644
index 89ec6c9b34..0000000000
--- a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/transform/ScaleTransformer.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package com.yarolegovich.discretescrollview.transform;
-
-import android.view.View;
-import androidx.annotation.FloatRange;
-import androidx.recyclerview.widget.RecyclerView;
-
-/**
- * Created by yarolegovich on 03.03.2017.
- */
-public class ScaleTransformer implements DiscreteScrollItemTransformer {
-
- private Pivot pivotX;
- private Pivot pivotY;
- private float minScale;
- private float maxMinDiff;
-
- public ScaleTransformer() {
- pivotX = Pivot.X.CENTER.create();
- pivotY = Pivot.Y.CENTER.create();
- minScale = 0.8f;
- maxMinDiff = 0.2f;
- }
-
- @Override
- public void transformItem(View item, RecyclerView.ViewHolder childViewHolder, float position) {
- pivotX.setOn(item);
- pivotY.setOn(item);
- float closenessToCenter = 1f - Math.abs(position);
- float scale = minScale + maxMinDiff * closenessToCenter;
- item.setScaleX(scale);
- item.setScaleY(scale);
- }
-
- public static class Builder {
-
- private ScaleTransformer transformer;
- private float maxScale;
-
- public Builder() {
- transformer = new ScaleTransformer();
- 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 ScaleTransformer 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-common/src/main/java/com/yarolegovich/discretescrollview/util/ScrollListenerAdapter.java b/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/util/ScrollListenerAdapter.java
deleted file mode 100644
index 7611c52a18..0000000000
--- a/modules/mogo-module-common/src/main/java/com/yarolegovich/discretescrollview/util/ScrollListenerAdapter.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.yarolegovich.discretescrollview.util;
-
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.recyclerview.widget.RecyclerView;
-import com.yarolegovich.discretescrollview.DiscreteScrollView;
-
-/**
- * Created by yarolegovich on 16.03.2017.
- */
-public class ScrollListenerAdapter implements DiscreteScrollView.ScrollStateChangeListener {
-
- private DiscreteScrollView.ScrollListener adaptee;
-
- public ScrollListenerAdapter(@NonNull DiscreteScrollView.ScrollListener adaptee) {
- this.adaptee = adaptee;
- }
-
- @Override
- public void onScrollStart(@NonNull T currentItemHolder, int adapterPosition) {
-
- }
-
- @Override
- public void onScrollEnd(@NonNull T currentItemHolder, int adapterPosition) {
-
- }
-
- @Override
- public void onScroll(float scrollPosition,
- int currentIndex, int newIndex,
- @Nullable T currentHolder, @Nullable T newCurrentHolder) {
- adaptee.onScroll(scrollPosition, currentIndex, newIndex, currentHolder, newCurrentHolder);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof ScrollListenerAdapter) {
- return adaptee.equals(((ScrollListenerAdapter) obj).adaptee);
- } else {
- return super.equals(obj);
- }
- }
-}
diff --git a/modules/mogo-module-common/src/main/res/drawable/moddule_commons_shape_react_blue_grident.xml b/modules/mogo-module-common/src/main/res/drawable/moddule_commons_shape_react_blue_grident.xml
new file mode 100644
index 0000000000..3c91cb81a9
--- /dev/null
+++ b/modules/mogo-module-common/src/main/res/drawable/moddule_commons_shape_react_blue_grident.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/modules/mogo-module-common/src/main/res/drawable/module_commons_shape_react_gray_grident.xml b/modules/mogo-module-common/src/main/res/drawable/module_commons_shape_react_gray_grident.xml
new file mode 100644
index 0000000000..5d90ff43e3
--- /dev/null
+++ b/modules/mogo-module-common/src/main/res/drawable/module_commons_shape_react_gray_grident.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/modules/mogo-module-common/src/main/res/drawable/module_commons_shape_round_gray.xml b/modules/mogo-module-common/src/main/res/drawable/module_commons_shape_round_gray.xml
new file mode 100644
index 0000000000..37f8498d8c
--- /dev/null
+++ b/modules/mogo-module-common/src/main/res/drawable/module_commons_shape_round_gray.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
diff --git a/modules/mogo-module-common/src/main/res/layout/module_commons_layout_wm_dialog.xml b/modules/mogo-module-common/src/main/res/layout/module_commons_layout_wm_dialog.xml
new file mode 100644
index 0000000000..ae4839f484
--- /dev/null
+++ b/modules/mogo-module-common/src/main/res/layout/module_commons_layout_wm_dialog.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-common/src/main/res/values/strings.xml b/modules/mogo-module-common/src/main/res/values/strings.xml
index f6affe31b5..74f2951c89 100644
--- a/modules/mogo-module-common/src/main/res/values/strings.xml
+++ b/modules/mogo-module-common/src/main/res/values/strings.xml
@@ -1,5 +1,6 @@
mogo-module-common
- You should not set LayoutManager on DiscreteScrollView.class instance. Library uses a special one. Just don\'t call the method.
- InfiniteScrollAdapter is supposed to work only with DiscreteScrollView
+ 确认
+ 取消
+ 是否退出导航?
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java
index eb6788ead6..41dffb39d1 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java
@@ -11,11 +11,6 @@ import androidx.annotation.Nullable;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.mvp.MvpFragment;
-import com.mogo.commons.voice.AIAssist;
-import com.mogo.module.extensions.anim.AnimWrapper;
-import com.mogo.service.MogoServicePaths;
-import com.mogo.service.analytics.IMogoAnalytics;
-import com.mogo.service.fragmentmanager.IMogoFragmentManager;
/**
* @author congtaowang
@@ -29,24 +24,13 @@ public class ExtensionsFragment extends MvpFragment< ExtensionsView, ExtensionsP
public static final int MAX_DISPLAY_MSG_AMOUNT = 99;
- private ImageView mVoiceIcon;
- private AnimWrapper mAnim = new AnimWrapper();
- private TextView mVoiceMsg;
-
- private TextView mTime;
- private TextView mDate;
-
private View mWeatherContainer;
private ImageView mWeatherIcon;
private TextView mWeatherTemp;
- private TextView mWeatherDesc;
private View mMsgContainer;
private TextView mMsgCounter;
- private IMogoAnalytics mAnalytics;
- private IMogoFragmentManager mMogoFragmentManager;
-
@Override
protected int getLayoutId() {
return R.layout.module_ext_layout_extensions;
@@ -54,25 +38,10 @@ public class ExtensionsFragment extends MvpFragment< ExtensionsView, ExtensionsP
@Override
protected void initViews() {
- mVoiceIcon = findViewById( R.id.module_ext_id_voice );
- mAnim.initAnim( mVoiceIcon );
- mVoiceMsg = findViewById( R.id.module_ext_id_voice_msg );
-
- mVoiceIcon.setOnClickListener( view -> {
- mVoiceMsg.performClick();
- } );
- mVoiceMsg.setOnClickListener( view -> {
- AIAssist.startAssistant( getContext() );
- mAnalytics.track( "Launcher_xiaozhi_Click", null );
- } );
-
- mTime = findViewById( R.id.module_ext_id_time );
- mDate = findViewById( R.id.module_ext_id_date );
mWeatherContainer = findViewById( R.id.module_ext_id_weather_container );
mWeatherIcon = findViewById( R.id.module_ext_id_weather_icon );
mWeatherTemp = findViewById( R.id.module_ext_id_weather_temp );
- mWeatherDesc = findViewById( R.id.module_ext_id_weather_desc );
mMsgContainer = findViewById( R.id.module_ext_id_msg );
mMsgContainer.setOnClickListener( view -> {
@@ -90,35 +59,16 @@ public class ExtensionsFragment extends MvpFragment< ExtensionsView, ExtensionsP
@Override
public void onActivityCreated( @Nullable Bundle savedInstanceState ) {
super.onActivityCreated( savedInstanceState );
- mAnalytics = ( IMogoAnalytics ) ARouter.getInstance().build( MogoServicePaths.PATH_UTILS_ANALYTICS ).navigation( getContext() );
- mMogoFragmentManager = ( IMogoFragmentManager ) ARouter.getInstance().build( MogoServicePaths.PATH_FRAGMENT_MANAGER ).navigation( getContext() );
-
- mMogoFragmentManager.addMainFragmentStackTransactionListener( size -> {
- // 主页 fragment 栈变化的时候,改变动画状态
- if ( size == 0 ) {
- mAnim.start();
- } else {
- mAnim.stop();
- }
- } );
}
@Override
public void onResume() {
super.onResume();
- mAnim.start();
}
@Override
public void onStop() {
super.onStop();
- mAnim.stop();
- }
-
- @Override
- public void renderTime( String date, String time ) {
- mDate.setText( date );
- mTime.setText( time );
}
@Override
@@ -134,7 +84,6 @@ public class ExtensionsFragment extends MvpFragment< ExtensionsView, ExtensionsP
hidden |= TextUtils.isEmpty( temp );
hidden |= TextUtils.isEmpty( desc );
mWeatherTemp.setText( temp );
- mWeatherDesc.setText( desc );
mWeatherContainer.setVisibility( hidden ? View.GONE : View.VISIBLE );
}
@@ -143,11 +92,4 @@ public class ExtensionsFragment extends MvpFragment< ExtensionsView, ExtensionsP
mMsgContainer.setVisibility( hasMsg ? View.VISIBLE : View.GONE );
mMsgCounter.setText( amount > MAX_DISPLAY_MSG_AMOUNT ? getString( R.string.module_ext_str_dots ) : String.valueOf( amount ) );
}
-
- @Override
- public void renderAITipWords( String word ) {
- if ( !TextUtils.isEmpty( word ) ) {
- mVoiceMsg.setText( word );
- }
- }
}
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..f779f76aec 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
@@ -1,13 +1,5 @@
package com.mogo.module.extensions;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-
import androidx.annotation.NonNull;
import androidx.lifecycle.LifecycleOwner;
@@ -20,23 +12,6 @@ import com.mogo.module.extensions.weather.WeatherModel;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.statusmanager.IMogoMsgCenter;
import com.mogo.service.statusmanager.IMogoMsgCenterListener;
-import com.mogo.service.statusmanager.IMogoStatusChangedListener;
-import com.mogo.service.statusmanager.IMogoStatusManager;
-import com.mogo.service.statusmanager.StatusDescriptor;
-import com.mogo.utils.UiThreadHandler;
-import com.mogo.utils.WorkThreadHandler;
-import com.mogo.utils.logger.Logger;
-
-import java.util.ArrayDeque;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Queue;
-import java.util.Random;
-import java.util.Set;
/**
@@ -46,136 +21,26 @@ import java.util.Set;
* 描述
*/
public class ExtensionsPresenter extends Presenter< ExtensionsView > implements WeatherCallback,
- IMogoMsgCenterListener,
- IMogoStatusChangedListener {
+ IMogoMsgCenterListener {
private static final String TAG = "ExtensionsPresenter";
- private String[] mWeeks;
-
private WeatherModel mWeatherModel;
- public static final int MSG_SWITCH_AI_TIP_WORDS = 4000;
- public static final long INTERVAL_TIME = 8_000L;
- private String[] mAITipWords;
- private int mCurrentIndex = 0;
- private Handler mHandler = new Handler( Looper.getMainLooper() ) {
- @Override
- public void handleMessage( Message msg ) {
- super.handleMessage( msg );
- if ( msg.what == MSG_SWITCH_AI_TIP_WORDS ) {
- if ( mView != null ) {
- if ( mCurrentIndex < mAITipWords.length ) {
- mView.renderAITipWords( mAITipWords[mCurrentIndex++] );
- } else {
- mCurrentIndex = 0;
- mHasTipWords = generateTipWordsSequence();
- }
- }
- if ( mHasTipWords ) {
- mHandler.sendEmptyMessageDelayed( MSG_SWITCH_AI_TIP_WORDS, INTERVAL_TIME );
- }
- }
- }
- };
- private boolean mHasTipWords = false;
-
- private boolean mHasStarted = false;
-
- /**
- * 接收时间变化的广播
- */
- private BroadcastReceiver mReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive( Context context, Intent intent ) {
- try {
- WorkThreadHandler.getInstance().post( () -> {
- refreshTimeAndDate();
- } );
- } catch ( Exception e ) {
- Logger.e( TAG, e, "error. " );
- }
- }
- };
-
private IMogoMsgCenter mMsgCenter;
- private IMogoStatusManager mStatusManager;
-
- private boolean generateTipWordsSequence() {
- if ( mAITipWords != null && mAITipWords.length > 0 ) {
- Random random = new Random( System.currentTimeMillis() );
- int loop = mAITipWords.length / 2;
- int bound = mAITipWords.length;
- for ( int i = 0; i < loop; i++ ) {
- int target = random.nextInt( bound );
- int sweepTarget = random.nextInt( bound );
- if ( target != sweepTarget ) {
- String targetStr = mAITipWords[target];
- mAITipWords[target] = mAITipWords[sweepTarget];
- mAITipWords[sweepTarget] = targetStr;
- }
- }
- Logger.d( TAG, "next generate sequence: " + mAITipWords );
- return true;
- }
- return false;
- }
-
public ExtensionsPresenter( ExtensionsView view ) {
super( view );
- mWeeks = getContext().getResources().getStringArray( R.array.module_ext_str_arr_week );
- mAITipWords = getContext().getResources().getStringArray( R.array.module_ext_str_arr_ai_tips );
mWeatherModel = new WeatherModel( getContext() );
}
@Override
public void onCreate( @NonNull LifecycleOwner owner ) {
super.onCreate( owner );
- registerTimerReceiver();
mWeatherModel.init( this );
mWeatherModel.queryWeatherInformation();
- refreshTimeAndDate();
mMsgCenter = ( IMogoMsgCenter ) ARouter.getInstance().build( MogoServicePaths.PATH_MSG_CENTER ).navigation();
mMsgCenter.registerMsgCenterListener( this );
- mHasTipWords = generateTipWordsSequence();
-
- mStatusManager = ( IMogoStatusManager ) ARouter.getInstance().build( MogoServicePaths.PATH_STATUS_MANAGER ).navigation();
- mStatusManager.registerStatusChangedListener( TAG, StatusDescriptor.APP_LIST_UI, this );
- mStatusManager.registerStatusChangedListener( TAG, StatusDescriptor.SEARCH_UI, this );
- }
-
- /**
- * 注册时间变化监听
- */
- private void registerTimerReceiver() {
- IntentFilter filter = new IntentFilter();
- filter.addAction( Intent.ACTION_TIME_TICK );
- filter.addAction( Intent.ACTION_TIME_CHANGED );
- filter.addAction( Intent.ACTION_TIMEZONE_CHANGED );
- filter.addAction( Intent.ACTION_CONFIGURATION_CHANGED );
- getContext().registerReceiver( mReceiver, filter );
- }
-
- private void refreshTimeAndDate() {
- Calendar calendar = Calendar.getInstance();
- int hour = calendar.get( Calendar.HOUR_OF_DAY );
- int minute = calendar.get( Calendar.MINUTE );
-
- int month = calendar.get( Calendar.MONTH );
- int day = calendar.get( Calendar.DAY_OF_MONTH );
- int week = calendar.get( Calendar.DAY_OF_WEEK );
-
- String timeStr = getContext().getResources().getString( R.string.module_ext_str_time_format, hour, minute > 9 ? String.valueOf( minute ) : "0" + minute );
- String dateStr = getContext().getResources().getString( R.string.module_ext_str_date_format, month + 1, day, mWeeks[week - 1] );
-
- UiThreadHandler.post( () -> {
- try {
- mView.renderTime( dateStr, timeStr );
- } catch ( Exception e ) {
- e.printStackTrace();
- }
- } );
}
@Override
@@ -197,43 +62,14 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements
}
}
- @Override
- public void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ) {
- switch ( descriptor ) {
- case APP_LIST_UI:
- case SEARCH_UI:
- changeAutoSwitchVoiceTipsWordsStatus( !isTrue );
- break;
- }
- }
-
@Override
public void onResume( @NonNull LifecycleOwner owner ) {
super.onResume( owner );
- changeAutoSwitchVoiceTipsWordsStatus( true );
}
@Override
public void onPause( @NonNull LifecycleOwner owner ) {
super.onPause( owner );
- changeAutoSwitchVoiceTipsWordsStatus( true );
- }
-
- private void changeAutoSwitchVoiceTipsWordsStatus( boolean autoChange ) {
- if ( !mHasTipWords ) {
- return;
- }
- if ( mHasStarted ) {
- return;
- }
- mHasStarted = true;
- if ( autoChange ) {
- mHandler.sendEmptyMessageDelayed( MSG_SWITCH_AI_TIP_WORDS, INTERVAL_TIME );
- Logger.d( TAG, "auto switch" );
- } else {
- mHandler.removeMessages( MSG_SWITCH_AI_TIP_WORDS );
- Logger.d( TAG, "stop auto switch" );
- }
}
@Override
@@ -242,7 +78,6 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements
if ( mWeatherModel != null ) {
mWeatherModel.destroy();
}
- getContext().unregisterReceiver( mReceiver );
if ( mMsgCenter != null ) {
mMsgCenter.unregisterMsgCenterListener( this );
}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsView.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsView.java
index 91f3d5e19c..fa1ef5e128 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsView.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsView.java
@@ -11,14 +11,6 @@ import com.mogo.module.extensions.weather.WeatherInfo;
*/
public interface ExtensionsView extends IView {
- /**
- * 刷新日期、时间
- *
- * @param date 日期
- * @param time 时间
- */
- void renderTime( String date, String time );
-
/**
* 天气信息
*
@@ -35,11 +27,4 @@ public interface ExtensionsView extends IView {
* @param amount 消息数量
*/
void renderMsgInfo( boolean hasMsg, int amount );
-
- /**
- * 更换小智语音提示词
- *
- * @param word
- */
- void renderAITipWords( String word );
}
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..34867b8492 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
@@ -1,12 +1,12 @@
package com.mogo.module.extensions.entrance;
import android.content.Intent;
+import android.graphics.Rect;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.util.Log;
-import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
@@ -17,16 +17,13 @@ import androidx.annotation.Nullable;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.mvp.MvpFragment;
-import com.mogo.map.MogoLatLng;
import com.mogo.map.listener.IMogoMapListener;
import com.mogo.map.location.IMogoLocationClient;
import com.mogo.map.location.MogoLocation;
import com.mogo.map.marker.IMogoMarkerManager;
-import com.mogo.map.model.MogoPoi;
import com.mogo.map.navi.IMogoAimlessModeListener;
import com.mogo.map.navi.IMogoNavi;
import com.mogo.map.navi.IMogoNaviListener;
-import com.mogo.map.navi.MogoCongestionInfo;
import com.mogo.map.navi.MogoNaviInfo;
import com.mogo.map.navi.MogoTraffic;
import com.mogo.map.uicontroller.EnumMapUI;
@@ -34,11 +31,11 @@ import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant;
import com.mogo.module.authorize.authprovider.module.IMogoAcquireAuthorizeListener;
import com.mogo.module.authorize.authprovider.module.IMogoAuthorizeModuleManager;
+import com.mogo.module.common.dialog.WMDialog;
import com.mogo.module.common.map.MapCenterPointStrategy;
import com.mogo.module.common.map.Scene;
import com.mogo.module.extensions.ExtensionsModuleConst;
import com.mogo.module.extensions.R;
-import com.mogo.module.extensions.dialog.NaviNoticeDialog;
import com.mogo.module.extensions.navi.NaviInfoView;
import com.mogo.module.share.ShareControl;
import com.mogo.service.IMogoServiceApis;
@@ -48,11 +45,11 @@ import com.mogo.service.entrance.ButtonIndex;
import com.mogo.service.fragmentmanager.IMogoFragmentManager;
import com.mogo.service.intent.IMogoIntentListener;
import com.mogo.service.map.IMogoMapService;
-import com.mogo.service.module.IMogoAddressManager;
import com.mogo.service.module.IMogoRegisterCenter;
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.service.statusmanager.StatusDescriptor;
+import com.mogo.utils.ResourcesHelper;
import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.logger.Logger;
@@ -77,25 +74,19 @@ 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;
- private View mVRMode;
private View mMove2CurrentLocation;
private NaviInfoView mNaviInfo;
private TextView mExitNavi;
- private View mSpeedLimit;
- private TextView mSpeedLimitValue;
- private View mSpeedLimitUnit;
+
+ private View mDisplayOverview;
+ private ImageView mDisplayOverviewIcon;
+ private TextView mDisplayOverviewText;
private IMogoServiceApis mApis;
private IMogoMapService mService;
@@ -103,7 +94,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
private IMogoLocationClient mMogoLocationClient;
private IMogoNavi mMogoNavi;
private IMogoFragmentManager mMogoFragmentManager;
- private IMogoAddressManager mMogoAddressManager;
private IMogoMarkerManager mMogoMarkerManager;
private IMogoRegisterCenter mMogoRegisterCenter;
@@ -171,6 +161,19 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
public static final int MSG_STOP_ANIM = 308;
public static final long TIME_FRAME_INTERVAL_TIME = 80;
+ private Rect mDisplayOverviewBounds;
+
+ private Runnable mLockCarRunnable = new Runnable() {
+ @Override
+ public void run() {
+ if ( !mStatusManager.isDisplayOverview() ) {
+ return;
+ }
+ mStatusManager.setDisplayOverview( TAG, false );
+ mMApUIController.recoverLockMode();
+ }
+ };
+
@Override
protected int getLayoutId() {
return R.layout.module_ext_layout_entrance;
@@ -184,33 +187,9 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mEntrancePresenter = new EntrancePresenter( getContext(), this, mIMogoAuthorizeModuleManager );
mMogoFragmentManager = mApis.getFragmentManagerApi();
- mMogoAddressManager = mApis.getAddressManagerApi();
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 );
@@ -223,19 +202,35 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
traceData( "1" );
}
} );
- mVRMode = findViewById( R.id.module_entrance_id_vr_mode );
- mVRMode.setOnClickListener( view -> {
+
+ mDisplayOverview = findViewById( R.id.module_ext_id_display_overview );
+ mDisplayOverviewText = findViewById( R.id.module_ext_id_display_overview_text );
+ mDisplayOverviewIcon = findViewById( R.id.module_ext_id_display_overview_icon );
+ mDisplayOverview.setOnClickListener( view -> {
+ if ( !mStatusManager.isDisplayOverview() ) {
+ mMApUIController.displayOverview( mDisplayOverviewBounds );
+ UiThreadHandler.removeCallbacks( mLockCarRunnable );
+ UiThreadHandler.postDelayed( mLockCarRunnable, 20_000 );
+ } else {
+ mMApUIController.recoverLockMode();
+ UiThreadHandler.removeCallbacks( mLockCarRunnable );
+ }
+ mStatusManager.setDisplayOverview( TAG, !mStatusManager.isDisplayOverview() );
} );
mMove2CurrentLocation = findViewById( R.id.module_entrance_id_move2_current_location );
mMove2CurrentLocation.setOnClickListener( view -> {
final MogoLocation location = mMogoLocationClient.getLastKnowLocation();
if ( location != null ) {
- if ( !mMogoStatusManager.isADASShow() ) {
+ if ( !mMogoStatusManager.isV2XShow() ) {
mMogoStatusManager.setUserInteractionStatus( TAG, true, false );
mMApUIController.setLockZoom( 16 );
mMApUIController.changeZoom( 16.0f );
}
+ if ( mStatusManager.isDisplayOverview() ) {
+ mMogoStatusManager.setDisplayOverview( TAG, false );
+ UiThreadHandler.removeCallbacks( mLockCarRunnable );
+ }
mMogoStatusManager.setUserInteractionStatus( TAG, true, false );
mMApUIController.recoverLockMode();
}
@@ -246,8 +241,17 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mExitNavi.setOnClickListener( view -> {
if ( mMogoNavi != null ) {
if ( mIsLock ) {
- NaviNoticeDialog naviNoticeDialog = new NaviNoticeDialog( getContext() );
- naviNoticeDialog.show();
+ new WMDialog.Builder( getContext() )
+ .setOkButton( R.string.module_commons_button_ok, ( dlg, which ) -> {
+ dlg.dismiss();
+ mMogoNavi.stopNavi();
+ } )
+ .setCancelButton( R.string.module_commons_button_cancel, ( dlg, which ) -> {
+ dlg.dismiss();
+ } )
+ .setContent( R.string.module_commons_exit_navi_content )
+ .build()
+ .show();
} else {
MapCenterPointStrategy.setMapCenterPointByScene( mMApUIController, Scene.NAVI );
mMApUIController.recoverLockMode();
@@ -266,10 +270,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mCameraMode.setText( getString( mCameraMode.isSelected() ? R.string.mode_car_up : R.string.mode_north_up ) );
} );
- mSpeedLimit = findViewById( R.id.module_entrance_id_speed_limit_container );
- mSpeedLimitValue = findViewById( R.id.module_entrance_id_speed_limit_value );
- mSpeedLimitUnit = findViewById( R.id.module_entrance_id_speed_limit_unit );
-
mApis.getIntentManagerApi().registerIntentListener( AUTONAVI_STANDARD_BROADCAST_RECV, new IMogoIntentListener() {
@Override
@@ -290,6 +290,12 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
MogoEntranceButtons.save( ButtonIndex.BUTTON1, findViewById( R.id.module_entrance_id_button1 ) );
MogoEntranceButtons.save( ButtonIndex.BUTTON2, findViewById( R.id.module_entrance_id_button2 ) );
+ mDisplayOverviewBounds = new Rect(
+ ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.module_map_display_overview_left_margin ),
+ ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.module_map_display_overview_top_margin ),
+ ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.module_map_display_overview_right_margin ),
+ ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.module_map_display_overview_bottom_margin )
+ );
}
private static final String AUTONAVI_STANDARD_BROADCAST_RECV = "AUTONAVI_STANDARD_BROADCAST_RECV";
@@ -318,6 +324,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mMogoMarkerManager = mService.getMarkerManager( getContext() );
mMogoStatusManager.registerStatusChangedListener( TAG, StatusDescriptor.UPLOADING, this );
+ mMogoStatusManager.registerStatusChangedListener( TAG, StatusDescriptor.DISPLAY_OVERVIEW, this );
}
@Override
@@ -354,14 +361,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,80 +371,30 @@ 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 );
mMApUIController.changeMapMode( mCameraMode.isSelected() ? EnumMapUI.NorthUP_2D : EnumMapUI.CarUp_2D );
MapCenterPointStrategy.setMapCenterPointBySceneAndDelay( mMApUIController, Scene.NAVI, 500, () -> {
return !mMogoNavi.isNaviing();
} );
+ mDisplayOverview.setVisibility( View.VISIBLE );
mApis.getAnalyticsApi().track( "Navigation_begin", new HashMap<>() );
}
@Override
public void onStopNavi() {
- mSearch.setVisibility( View.VISIBLE );
- mCommonAddress.setVisibility( View.VISIBLE );
mNaviInfo.setVisibility( View.GONE );
- mCameraMode.setVisibility( View.GONE );
mExitNavi.setVisibility( View.GONE );
- mSpeedLimit.setVisibility( View.GONE );
mMApUIController.changeMapMode( EnumMapUI.NorthUP_2D );
+ mDisplayOverview.setVisibility( View.GONE );
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 ) {
return;
}
- if ( traffic.getSpeedLimit() <= 0 ) {
- mSpeedLimit.setVisibility( View.INVISIBLE );
- mSpeedLimitValue.setText( "--" );
- } else {
- // 暂时不显示限速,等有好的显示方案在放开
- mSpeedLimit.setVisibility( View.INVISIBLE );
- mSpeedLimitValue.setText( String.valueOf( traffic.getSpeedLimit() ) );
- }
- }
-
- @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
@@ -461,50 +410,12 @@ 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 );
mAnalytics.track( "Launcher_Share_Click", properties );
}
- @Override
- public void showNaviPanelWidgets() {
- if ( !mMogoNavi.isNaviing() ) {
- return;
- }
- mNaviInfo.setVisibility( View.VISIBLE );
- mCameraMode.setVisibility( View.VISIBLE );
- try {
- mApis.getWindowManagerApi().showAll();
- } catch ( Exception e ) {
- Logger.e( TAG, e, "error." );
- }
- }
-
- @Override
- public void hideNaviPanelWidgets() {
- if ( !mMogoNavi.isNaviing() ) {
- return;
- }
- mNaviInfo.setVisibility( View.GONE );
- mCameraMode.setVisibility( View.GONE );
- try {
- mApis.getWindowManagerApi().hideAll();
- } catch ( Exception e ) {
- Logger.e( TAG, e, "error." );
- }
- }
-
@Override
public void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ) {
if ( mUploadRoadCondition == null ) {
@@ -527,6 +438,17 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mUploading.setVisibility( View.GONE );
mUpload.setVisibility( View.VISIBLE );
}
+ } else if ( descriptor == StatusDescriptor.DISPLAY_OVERVIEW ) {
+ if ( !mMogoNavi.isNaviing() ) {
+ return;
+ }
+ if ( isTrue ) {
+ mDisplayOverviewText.setText( "退出全览" );
+ mCameraMode.setVisibility( View.GONE );
+ } else {
+ mDisplayOverviewText.setText( "全览" );
+ mCameraMode.setVisibility( View.VISIBLE );
+ }
}
}
@@ -554,10 +476,10 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
if ( mCurrentUploadFrame == mUploadingFrameRes.length ) {
mCurrentUploadFrame = 12;
}
- mUploading.setImageResource( mUploadingFrameRes[mCurrentUploadFrame++%mUploadingFrameRes.length] );
+ mUploading.setImageResource( mUploadingFrameRes[mCurrentUploadFrame++ % mUploadingFrameRes.length] );
}
mUploadFrameAnimHandler.sendEmptyMessageDelayed( MSG_FRAME_ANIM, TIME_FRAME_INTERVAL_TIME );
- } else if( msg.what == MSG_STOP_ANIM ){
+ } else if ( msg.what == MSG_STOP_ANIM ) {
mStatusManager.setUploadingStatus( TAG, false );
}
}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java
index 2f1d174767..cec48aab5a 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java
@@ -2,7 +2,6 @@ package com.mogo.module.extensions.entrance;
import android.content.Context;
import android.content.Intent;
-import android.net.Uri;
import android.text.TextUtils;
import android.util.Log;
@@ -13,7 +12,6 @@ import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.mvp.Presenter;
import com.mogo.commons.voice.AIAssist;
import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
-import com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant;
import com.mogo.module.authorize.authprovider.module.IMogoAuthorizeModuleManager;
import com.mogo.module.extensions.ExtensionsModuleConst;
import com.mogo.module.share.ShareControl;
@@ -22,11 +20,10 @@ import com.mogo.service.MogoServicePaths;
import com.mogo.service.analytics.IMogoAnalytics;
import com.mogo.service.intent.IMogoIntentListener;
import com.mogo.service.intent.IMogoIntentManager;
-import com.mogo.service.statusmanager.IMogoStatusChangedListener;
import com.mogo.service.statusmanager.IMogoStatusManager;
-import com.mogo.service.statusmanager.StatusDescriptor;
import com.mogo.utils.logger.Logger;
+import org.json.JSONException;
import org.json.JSONObject;
import java.util.HashMap;
@@ -40,7 +37,10 @@ import static com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerCons
*
* 描述
*/
-public class EntrancePresenter extends Presenter< EntranceView > implements IMogoStatusChangedListener {
+public class EntrancePresenter extends Presenter< EntranceView > {
+ private static final String REPORT_TANLU_BLOCK = "10007";
+ private static final String REPORT_TANLU_TRAFFIC_CHECK = "10002";
+ private static final String REPORT_TANLU_CLOSURE = "10003";
private Context mContext;
private IMogoAnalytics mAnalytics;
@@ -82,7 +82,7 @@ public class EntrancePresenter extends Presenter< EntranceView > implements IMog
Log.d( TAG, "免唤醒 mogoVoiceListener needAuthorize = " + mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) + " >>>cmd = " + cmd );
mVoiceCmdType = cmd;
if ( cmd.equals( ExtensionsModuleConst.CANCLE_SHARE )
- /*|| cmd.equals( ExtensionsModuleConst.CLOSE ) */) { //取消分享,关闭页面
+ /*|| cmd.equals( ExtensionsModuleConst.CLOSE ) */ ) { //取消分享,关闭页面
if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
} else {
@@ -129,7 +129,6 @@ public class EntrancePresenter extends Presenter< EntranceView > implements IMog
@Override
public void onCreate( @NonNull LifecycleOwner owner ) {
super.onCreate( owner );
- mStatusManager.registerStatusChangedListener( TAG, StatusDescriptor.DISPLAY_OVERVIEW, this );
}
/**
@@ -203,8 +202,19 @@ public class EntrancePresenter extends Presenter< EntranceView > implements IMog
if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
} else {
- uploadRoadCondition();
- Log.d( TAG, "mogoIntentListener 分享路况 唤醒 ----> " );
+ JSONObject jsonObject = null;
+ try {
+ jsonObject = new JSONObject( data );
+ String typeString = jsonObject.get( "obj" ).toString();
+ Logger.d(TAG, "mogiIntentListener 准备上报拥堵: " + typeString);
+ if("拥堵".equals(typeString)) {
+ uploadRoadCondition();
+ Log.d(TAG, "mogoIntentListener 上报拥堵 唤醒 ----> ");
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+
}
} else if ( intentStr.equals( ExtensionsModuleConst.SHARE_DIALOG_CLOSE ) ) { //关闭分享框 唤醒
if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
@@ -276,26 +286,26 @@ public class EntrancePresenter extends Presenter< EntranceView > implements IMog
}
private void uploadRoadCondition() {
- mStatusManager.setUploadingStatus("CARD_TYPE_ROAD_CONDITION", true);
+ mStatusManager.setUploadingStatus( "CARD_TYPE_ROAD_CONDITION", true );
traceTanluData( "2" );
- sendShareReceiver( "1" );
+ sendShareReceiver( REPORT_TANLU_BLOCK );
Logger.d( "EntrancePresenter", "mogoIntentListener 上报路况 ----> " );
traceTypeData( "1" );
ShareControl.getInstance( mContext ).dismissDialog();
}
private void uploadTrfficCheck() {
- mStatusManager.setUploadingStatus("CARD_TYPE_ROAD_CONDITION", true);
- sendShareReceiver( "2" );
+ mStatusManager.setUploadingStatus( "CARD_TYPE_ROAD_CONDITION", true );
+ sendShareReceiver( REPORT_TANLU_TRAFFIC_CHECK );
Logger.d( "EntrancePresenter", "mogoIntentListener 分享交通检查 ----> " );
traceTypeData( "3" );
ShareControl.getInstance( mContext ).dismissDialog();
}
private void uploadRoadClosed() {
- mStatusManager.setUploadingStatus("CARD_TYPE_ROAD_CONDITION", true);
- sendShareReceiver( "3" );
+ mStatusManager.setUploadingStatus( "CARD_TYPE_ROAD_CONDITION", true );
+ sendShareReceiver( REPORT_TANLU_CLOSURE );
Logger.d( "EntrancePresenter", "mogoIntentListener 分享封路 ----> " );
traceTypeData( "4" );
ShareControl.getInstance( mContext ).dismissDialog();
@@ -321,7 +331,7 @@ public class EntrancePresenter extends Presenter< EntranceView > implements IMog
}
/**
- * 发送广播 1拥堵,2交通检查,3封路
+ * 发送广播 上报路况
*/
private void sendShareReceiver( String type ) {
Logger.d( "EntrancePresenter", "TanluCardViewFragment sendShareReceiver ---->" );
@@ -364,15 +374,4 @@ public class EntrancePresenter extends Presenter< EntranceView > implements IMog
AIAssist.getInstance( mContext ).unregisterUnWakeupCommand( ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK );
AIAssist.getInstance( mContext ).unregisterUnWakeupCommand( ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE );
}
-
- @Override
- public void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ) {
- if ( descriptor == StatusDescriptor.DISPLAY_OVERVIEW ) {
- if ( isTrue ) {
- mView.hideNaviPanelWidgets();
- } else {
- mView.showNaviPanelWidgets();
- }
- }
- }
}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceView.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceView.java
index 6309e1b02c..55f070eb71 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceView.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceView.java
@@ -10,7 +10,4 @@ import com.mogo.commons.mvp.IView;
*/
public interface EntranceView extends IView {
- void showNaviPanelWidgets();
-
- void hideNaviPanelWidgets();
}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/BaseNaviInfoView.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/BaseNaviInfoView.java
index a0c76b7dad..700c23d406 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/BaseNaviInfoView.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/BaseNaviInfoView.java
@@ -51,21 +51,58 @@ public abstract class BaseNaviInfoView extends RelativeLayout {
protected void fillNextCrossDistance( TextView target, TextView unit, int distance ) {
if ( distance >= 1000 ) {
target.setText( String.format( "%.1f", distance / 1000f ) );
- unit.setText( "公里" );
+ unit.setText( "km" );
} else {
target.setText( distance + "" );
- unit.setText( "米" );
+ unit.setText( "m" );
}
}
protected void fillFormatSurplusDistance( int m, StringBuilder builder ) {
if ( m >= 1000 ) {
- builder.append( String.format( "%.1f公里", m / 1000f ) );
+ builder.append( String.format( "%.1fkm", m / 1000f ) );
} else {
- builder.append( m ).append( "米" );
+ builder.append( m ).append( "m" );
}
}
+ protected String getFormatSurplusDistance( int m ) {
+ if ( m >= 1000 ) {
+ mFormatSurplusDistanceUnit = "km";
+ return String.format( "%.1f", m / 1000f );
+ } else {
+ mFormatSurplusDistanceUnit = "m";
+ return String.format( "%d", m );
+ }
+ }
+
+ private String mFormatSurplusDistanceUnit = "";
+
+ protected String getFormatSurplusDistanceUnit() {
+ return mFormatSurplusDistanceUnit;
+ }
+
+ protected String getFormatSurplusTime( int seconds ) {
+ if ( seconds > 60 * 60 ) {
+ mFormatSurplusDistanceUnit = "h";
+ return String.format( "%.1f", ( ( float ) seconds ) / 60 * 60 );
+ }
+
+ if ( seconds > 60 ) {
+ mFormatSurplusTimeUnit = "min";
+ return String.format( "%.1f", ( ( float ) seconds ) / 60 );
+ }
+
+ mFormatSurplusTimeUnit = "s";
+ return String.format( "%d", seconds );
+ }
+
+ private String mFormatSurplusTimeUnit = "";
+
+ protected String getFormatSurplusTimeUnit() {
+ return mFormatSurplusTimeUnit;
+ }
+
protected void fillFormatTime( int seconds, StringBuilder builder ) {
int days = seconds / ( 24 * 60 * 60 );
if ( days > 0 ) {
@@ -81,6 +118,29 @@ public abstract class BaseNaviInfoView extends RelativeLayout {
builder.append( min > 1 ? min : 1 ).append( "分钟" );
}
+ protected String getArriveTime( int seconds ) {
+ int days = seconds / ( 24 * 60 * 60 );
+ if ( days > 0 ) {
+ return String.format( "%d天后", days );
+ } else {
+ seconds -= days * 24 * 60 * 60;
+ int hours = seconds / ( 60 * 60 );
+ seconds -= hours * 60 * 60;
+ int min = seconds / 60;
+ Calendar calendar = Calendar.getInstance();
+ int curHour = calendar.get( Calendar.HOUR_OF_DAY );
+ int curMin = calendar.get( Calendar.MINUTE );
+ if ( curHour + hours + ( curMin + min ) / 60 > 24 ) {
+ return "一天后";
+ } else {
+ calendar.add( Calendar.HOUR_OF_DAY, hours );
+ calendar.add( Calendar.MINUTE, min );
+ SimpleDateFormat dateFormat = new SimpleDateFormat( "HH:mm" );
+ return dateFormat.format( calendar.getTime() );
+ }
+ }
+ }
+
protected void fillArriveTime( int seconds, StringBuilder builder ) {
int days = seconds / ( 24 * 60 * 60 );
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/NaviInfoView.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/NaviInfoView.java
index 8c34869f9c..c15abd7991 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/NaviInfoView.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/NaviInfoView.java
@@ -23,9 +23,12 @@ public class NaviInfoView extends BaseNaviInfoView {
private TextView distance;
private TextView distanceUnit;
private TextView nextRoad;
- private TextView estimateInfo;
- private StringBuilder mBuilder = new StringBuilder();
+ private TextView remainingDistance;
+ private TextView remainingDistanceUnit;
+ private TextView remainingTime;
+ private TextView remainingTimeUnit;
+ private TextView arriveTime;
public NaviInfoView( Context context ) {
this( context, null );
@@ -42,7 +45,12 @@ public class NaviInfoView extends BaseNaviInfoView {
distance = findViewById( R.id.module_map_id_navi_next_info_distance );
distanceUnit = findViewById( R.id.module_map_id_navi_next_info_distance_unit );
nextRoad = findViewById( R.id.module_map_id_navi_next_info_road );
- estimateInfo = findViewById( R.id.module_map_id_navi_arrive_destination_estimate_info );
+
+ remainingDistance = findViewById( R.id.module_map_id_remaining_distance );
+ remainingDistanceUnit = findViewById( R.id.module_map_id_remaining_distance_unit );
+ remainingTime = findViewById( R.id.module_map_id_remaining_time );
+ remainingTimeUnit = findViewById( R.id.module_map_id_remaining_time_unit );
+ arriveTime = findViewById( R.id.module_map_id_arrive_time );
}
@Override
@@ -55,46 +63,12 @@ public class NaviInfoView extends BaseNaviInfoView {
fillNextCrossIconType( turnIcon, naviInfo.getIconResId() );
nextRoad.setText( naviInfo.getNextRoadName() );
- try {
- mBuilder.delete( 0, mBuilder.length() );
- } catch ( Exception e ) {
- e.printStackTrace();
- }
- mBuilder.append( "剩余" );
- fillFormatSurplusDistance( naviInfo.getPathRetainDistance(), mBuilder );
- mBuilder.append( " " );
- fillFormatTime( naviInfo.getPathRetainTime(), mBuilder );
- mBuilder.append( "\n" );
- fillArriveTime( naviInfo.getPathRetainTime(), mBuilder );
+ remainingDistance.setText( getFormatSurplusDistance( naviInfo.getPathRetainDistance() ) );
+ remainingDistanceUnit.setText( getFormatSurplusDistanceUnit() );
- final String text = mBuilder.toString();
- estimateInfo.setText( text );
- }
+ remainingTime.setText( getFormatSurplusTime( naviInfo.getPathRetainTime() ) );
+ remainingTimeUnit.setText( getFormatSurplusTimeUnit() );
- /**
- * 获取当行信息
- *
- * @return
- */
- public String getGuideInfo() {
- StringBuilder builder = new StringBuilder();
- if ( getVisibility() == VISIBLE ) {
- builder.append( distance.getText() );
- builder.append( nextRoad.getText() );
- }
- return builder.toString();
- }
-
- /**
- * 获取剩余里程
- *
- * @return
- */
- public String getPathRetainDistance() {
- StringBuilder builder = new StringBuilder();
- if ( getVisibility() == VISIBLE ) {
- builder.append( estimateInfo.getText() );
- }
- return builder.toString();
+ arriveTime.setText( getArriveTime( naviInfo.getPathRetainTime() ) );
}
}
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_ic_display_overview.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_ic_display_overview.png
new file mode 100755
index 0000000000..df4f12f225
Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_ic_display_overview.png differ
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_ic_message.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_ic_message.png
deleted file mode 100755
index 09af5d28bd..0000000000
Binary files a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_ic_message.png and /dev/null differ
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_ic_navi_info1.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_ic_navi_info1.png
new file mode 100755
index 0000000000..8495a826bc
Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_ic_navi_info1.png differ
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_ic_navi_info2.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_ic_navi_info2.png
new file mode 100755
index 0000000000..797cb5f596
Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_ic_navi_info2.png differ
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_ic_navi_info3.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_ic_navi_info3.png
new file mode 100755
index 0000000000..c62dfd068d
Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_ic_navi_info3.png differ
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_ic_display_overview.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_ic_display_overview.png
new file mode 100644
index 0000000000..9adb3bbe30
Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_ic_display_overview.png differ
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_ic_message.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_ic_message.png
deleted file mode 100644
index ec0f007df5..0000000000
Binary files a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_ic_message.png and /dev/null differ
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_ic_message2.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_ic_message2.png
new file mode 100644
index 0000000000..10f53d3374
Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_ic_message2.png differ
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_ic_navi_info1.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_ic_navi_info1.png
new file mode 100644
index 0000000000..b962d1c80b
Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_ic_navi_info1.png differ
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_ic_navi_info2.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_ic_navi_info2.png
new file mode 100644
index 0000000000..a9ae343af8
Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_ic_navi_info2.png differ
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_ic_navi_info3.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_ic_navi_info3.png
new file mode 100644
index 0000000000..51ba7976b5
Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_ic_navi_info3.png differ
diff --git a/modules/mogo-module-extensions/src/main/res/drawable/module_ext_drawable_msg_bkg.xml b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_drawable_msg_bkg.xml
index 58d86caa09..670765d49a 100644
--- a/modules/mogo-module-extensions/src/main/res/drawable/module_ext_drawable_msg_bkg.xml
+++ b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_drawable_msg_bkg.xml
@@ -1,9 +1,8 @@
-
-
-
-
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-extensions/src/main/res/drawable/module_ext_drawable_msg_container_bkg.xml b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_drawable_msg_container_bkg.xml
new file mode 100644
index 0000000000..12a3b15758
--- /dev/null
+++ b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_drawable_msg_container_bkg.xml
@@ -0,0 +1,8 @@
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-extensions/src/main/res/drawable/module_ext_drawable_weather_bkg.xml b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_drawable_weather_bkg.xml
new file mode 100644
index 0000000000..90fb7a2eaf
--- /dev/null
+++ b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_drawable_weather_bkg.xml
@@ -0,0 +1,9 @@
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-extensions/src/main/res/drawable/module_ext_dw_common_corner_bkg.xml b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_dw_common_corner_bkg.xml
index e90fdc8ce3..9c3715fa3a 100644
--- a/modules/mogo-module-extensions/src/main/res/drawable/module_ext_dw_common_corner_bkg.xml
+++ b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_dw_common_corner_bkg.xml
@@ -1,15 +1,9 @@
- -
+
-
-
-
-
-
- -
-
-
-
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-extensions/src/main/res/drawable/module_ext_dw_navi_info_panel_bkg.xml b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_dw_navi_info_panel_bkg.xml
index f21cba570e..c364a86f0c 100644
--- a/modules/mogo-module-extensions/src/main/res/drawable/module_ext_dw_navi_info_panel_bkg.xml
+++ b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_dw_navi_info_panel_bkg.xml
@@ -2,8 +2,8 @@
-
-
-
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-extensions/src/main/res/drawable/module_ext_dw_upload_road_condition_bkg.xml b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_dw_upload_road_condition_bkg.xml
index 375afdd8f9..16e096724d 100644
--- a/modules/mogo-module-extensions/src/main/res/drawable/module_ext_dw_upload_road_condition_bkg.xml
+++ b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_dw_upload_road_condition_bkg.xml
@@ -1,15 +1,9 @@
- -
-
-
-
-
-
- -
-
-
-
+
-
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-extensions/src/main/res/drawable/shape_react_gray_round.xml b/modules/mogo-module-extensions/src/main/res/drawable/shape_react_gray_round.xml
index bb02f81c07..c2e7581ff4 100644
--- a/modules/mogo-module-extensions/src/main/res/drawable/shape_react_gray_round.xml
+++ b/modules/mogo-module-extensions/src/main/res/drawable/shape_react_gray_round.xml
@@ -1,11 +1,12 @@
-
+
-
+
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..61a9d338d0 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,190 +5,87 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:textSize="@dimen/module_ext_north_textSize"
+ app:layout_constraintRight_toRightOf="@+id/module_entrance_id_upload_road_condition"
+ app:layout_constraintTop_toBottomOf="@+id/module_entrance_id_navi_info_panel"
+ app:layout_goneMarginTop="@dimen/module_ext_north_goneMarginTop" />
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+ app:layout_constraintBottom_toTopOf="@+id/module_entrance_id_move2_current_location"
+ app:layout_constraintRight_toRightOf="@+id/module_entrance_id_move2_current_location"
+ app:layout_goneMarginBottom="@dimen/module_ext_operation_panel_share_goneMarginBottom">
+
+
+ android:textSize="@dimen/module_ext_operation_panel_share_textSize"
+ android:visibility="gone" />
diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml
index 88dd8f5dcd..87b42bda50 100644
--- a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml
+++ b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml
@@ -4,84 +4,21 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="@dimen/module_ext_height"
- android:orientation="vertical"
- android:paddingLeft="@dimen/module_ext_paddingLeft"
- android:paddingRight="@dimen/module_ext_paddingRight">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:orientation="vertical">
+ app:layout_constraintLeft_toLeftOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ tools:visibility="visible">
-
-
-
-
-
+ app:layout_constraintRight_toRightOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ tools:visibility="visible">
+ android:layout_gravity="center"
+ android:scaleType="fitXY"
+ android:src="@drawable/module_ext_ic_message2" />
+ android:background="@drawable/module_ext_dw_navi_info_panel_bkg">
-
+ android:orientation="vertical">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:layout_alignParentRight="true"
+ android:layout_centerVertical="true"
+ android:orientation="horizontal">
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-extensions/src/main/res/values-ldpi/dimens.xml b/modules/mogo-module-extensions/src/main/res/values-ldpi/dimens.xml
index 57dca9bae6..31fec5ee59 100644
--- a/modules/mogo-module-extensions/src/main/res/values-ldpi/dimens.xml
+++ b/modules/mogo-module-extensions/src/main/res/values-ldpi/dimens.xml
@@ -30,37 +30,36 @@
20px
1px
- 58px
+ 66px
20px
34.5px
58px
17px
31.4px
1.2px
- 58px
- 58px
- 58px
+ 66px
+ 66px
+ 66px
21px
- 20px
+ 16px
34.5px
20px
- 64px
- 64px
+ 66px
+ 66px
20px
32px
20px
30px
- 22px
+ 16px
8px
- 64px
+ 66px
32px
32px
- 64px
- 64px
+
22px
28px
22px
@@ -72,14 +71,14 @@
18.48px
16px
22px
- 28px
+ 16px
15px
15px
11.73px
- 244px
- 170px
+ 544px
+ 117px
85px
85px
13px
@@ -87,16 +86,45 @@
20px
32px
7px
- 8px
- 16px
+ 5px
+ 40px
15px
24px
15px
- 9px
- 9px
- 18px
- 18px
- -1px
+ 9px
+ 9px
+ 18px
+ 18px
+ -1px
+
+ 30px
+ 23px
+ 23px
+ 15px
+ 15px
+ 5px
+ 20px
+ 14px
+ 20px
+ 14px
+ 20px
+ 14px
+ 34px
+ 8px
+ 8px
+
+
+ 534px
+ 100px
+ 68px
+ 32px
+ 16px
+ 142px
+ 66px
+ 66px
+ 16px
+ 14px
+ 14px
\ No newline at end of file
diff --git a/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml
index c4c5d9e9a2..fc372e59cf 100644
--- a/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml
+++ b/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml
@@ -29,18 +29,18 @@
32px
2px
- 90px
+ 120px
32px
60px
92px
24px
48px
2px
- 90px
- 90px
- 90px
+ 120px
+ 120px
+ 120px
40px
- 24px
+ 30px
32px
32px
@@ -57,8 +57,6 @@
120px
60px
60px
- 120px
- 120px
32px
48px
80px
@@ -70,14 +68,14 @@
34px
26px
28px
- 28px
+ 30px
30px
30px
20px
- 458px
- 318px
+ 1058px
+ 210px
159px
159px
24px
@@ -85,16 +83,45 @@
40px
60px
12px
- 16px
- 28px
+ 10px
+ 40px
28px
24px
28px
- 17px
- 17px
- 36px
- 36px
- -2px
+ 17px
+ 17px
+ 36px
+ 36px
+ -2px
+
+ 30px
+ 40px
+ 40px
+ 15px
+ 15px
+ 5px
+ 50px
+ 37px
+ 26px
+ 37px
+ 26px
+ 37px
+ 26px
+ 15px
+ 15px
+
+
+ 952px
+ 170px
+ 122px
+ 61px
+ 240px
+ 30px
+ 120px
+ 120px
+ 30px
+ 122px
+ 28px
\ No newline at end of file
diff --git a/modules/mogo-module-extensions/src/main/res/values/dimens.xml b/modules/mogo-module-extensions/src/main/res/values/dimens.xml
index 027c19d25e..d4922bc498 100644
--- a/modules/mogo-module-extensions/src/main/res/values/dimens.xml
+++ b/modules/mogo-module-extensions/src/main/res/values/dimens.xml
@@ -29,18 +29,18 @@
32px
2px
- 90px
+ 120px
32px
60px
92px
24px
48px
2px
- 90px
- 90px
- 90px
+ 120px
+ 120px
+ 120px
40px
- 24px
+ 30px
32px
32px
@@ -57,8 +57,7 @@
120px
60px
60px
- 120px
- 120px
+
32px
48px
80px
@@ -70,14 +69,14 @@
34px
26px
28px
- 28px
+ 30px
30px
30px
20px
- 458px
- 318px
+ 1058px
+ 210px
159px
159px
24px
@@ -85,16 +84,45 @@
10px
60px
12px
- 16px
- 28px
+ 10px
+ 40px
28px
24px
28px
- 17px
- 17px
- 36px
- 36px
- -2px
+ 17px
+ 17px
+ 36px
+ 36px
+ -2px
+
+ 30px
+ 40px
+ 40px
+ 15px
+ 15px
+ 5px
+ 37px
+ 26px
+ 37px
+ 26px
+ 37px
+ 26px
+ 50px
+ 15px
+ 15px
+
+
+ 952px
+ 170px
+ 122px
+ 61px
+ 30px
+ 240px
+ 120px
+ 120px
+ 30px
+ 22px
+ 28px
\ No newline at end of file
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 d6dd637cc9..f4b8d04f5a 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
@@ -23,18 +23,12 @@ import com.mogo.module.common.MogoModule;
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,39 +53,21 @@ 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 mApps;
private View mEntrance;
private FrameLayout mFloatingLayout;
private FrameLayout mCoverUpLayout;
private View mLeftShadowFrame;
- private View mTopShadowFrame;
/**
* 主模块管控定位,可以向各个模块发送统一定位信息
*/
private IMogoLocationClient mLocationClient;
- private int mCurrentPosition = 0;
-
- private ViewPager.OnPageChangeListener mOnPageChangeListener;
-
- /**
- * 手势切换卡片必须为true
- *
- * 业务切换则由业务控制
- */
- private boolean mLockCarStatus = true;
-
@Override
protected int getLayoutId() {
return R.layout.module_main_activity_main;
@@ -102,87 +78,11 @@ 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 );
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 );
// 避免事件穿透导致地图被滑动
@@ -194,23 +94,19 @@ 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 );
}
// 显示布局
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 );
}
@Override
@@ -249,11 +145,11 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
loadContainerModules();
mMogoModuleHandler.loadModules();
mPresenter.delayOperations();
+ mPresenter.initADAS();
hideCoverUpLayout();
// 显示左边遮罩
mLeftShadowFrame.setVisibility( View.VISIBLE );
- mTopShadowFrame.setVisibility( View.VISIBLE );
// 右移地图中心点
mMogoMapUIController = mMogoMapService.getMapUIController();
@@ -264,8 +160,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 ) -> {
@@ -291,17 +185,10 @@ 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 );
- }
- }
-
@Override
public void hideCoverUpLayout() {
mCoverUpLayout.setVisibility( View.GONE );
+ mServiceApis.getAdasControllerApi().showADAS();
}
@Override
@@ -336,30 +223,22 @@ 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
protected void onPause() {
super.onPause();
mMogoStatusManager.setMainPageResumeStatus( TAG, false );
- CardIntroduceConfigs.flush( getApplicationContext() );
+ mServiceApis.getAdasControllerApi().closeADAS();
}
@Override
@@ -400,7 +279,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/SchemeIntent.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/SchemeIntent.java
index 81185341b8..14ec2be9ab 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/SchemeIntent.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/SchemeIntent.java
@@ -125,7 +125,7 @@ public class SchemeIntent implements IMogoStatusChangedListener {
if ( mApis.getMapServiceApi().getNavi( mContext ).isNaviing() ) {
mApis.getMapServiceApi().getNavi( mContext ).naviTo( new MogoLatLng( dlat, dlon ) );
} else {
- mApis.getAddressManagerApi().calculatePath( new MogoLatLng( dlat, dlon ) );
+ mApis.getSearchManagerApi().calculatePath( new MogoLatLng( dlat, dlon ) );
}
} catch ( Exception e ) {
TipToast.shortTip( "目的地异常,不能导航" );
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..5834ab346d 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,18 +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());
- CardIntroduceConfigs.init( getContext(), apis );
+ EventDispatchCenter.getInstance().registerReceiver( apis.getIntentManagerApi() );
}
private Context getContext() {
@@ -88,61 +70,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 +117,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 +130,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 +137,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/module_main_dw_left_frame_bkg.xml b/modules/mogo-module-main/src/main/res/drawable/module_main_dw_left_frame_bkg.xml
index b9d160ac66..08a1055bcc 100644
--- a/modules/mogo-module-main/src/main/res/drawable/module_main_dw_left_frame_bkg.xml
+++ b/modules/mogo-module-main/src/main/res/drawable/module_main_dw_left_frame_bkg.xml
@@ -2,7 +2,13 @@
-
-
+
\ No newline at end of file
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 603a0ecaed..9965a54479 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
@@ -1,5 +1,6 @@
@@ -10,60 +11,36 @@
android:layout_width="match_parent"
android:layout_height="match_parent" />
-
-
+ android:visibility="gone"
+ tools:visibility="visible" />
+
+ android:layout_height="@dimen/module_ext_height"
+ android:layout_marginLeft="@dimen/module_main_header_fragment_container_marginLeft"
+ android:layout_marginTop="@dimen/module_main_header_fragment_container_marginTop" />
+
-
-
-
-
-
-
-
-
-
+ android:padding="@dimen/module_main_apps_fragment_container_padding" />
+ android:padding="@dimen/module_main_entrance_fragment_container_padding"
+ android:layout_marginLeft="@dimen/module_main_id_entrance_fragment_container_marginLeft" />
+ android:background="@drawable/module_main_launcher_bg"
+ android:visibility="visible"
+ tools:visibility="gone" />
\ No newline at end of file
diff --git a/modules/mogo-module-main/src/main/res/values-ldpi/dimens.xml b/modules/mogo-module-main/src/main/res/values-ldpi/dimens.xml
index f94f83a779..0ba4ec9f22 100644
--- a/modules/mogo-module-main/src/main/res/values-ldpi/dimens.xml
+++ b/modules/mogo-module-main/src/main/res/values-ldpi/dimens.xml
@@ -1,7 +1,7 @@
- 384px
+ 300px
8px
352px
370px
@@ -16,4 +16,11 @@
320px
319px
+ 110px
+ 16px
+ 15px
+ 460px
+ 444px
+ 16px
+
\ No newline at end of file
diff --git a/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml
index 05f521641d..ee84bb8039 100644
--- a/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml
+++ b/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml
@@ -1,7 +1,7 @@
- 720px
+ 300px
10px
660px
690px
@@ -15,4 +15,11 @@
600px
599px
+ 200px
+ 30px
+ 30px
+ 830px
+ 800px
+ 30px
+
\ No newline at end of file
diff --git a/modules/mogo-module-main/src/main/res/values/dimens.xml b/modules/mogo-module-main/src/main/res/values/dimens.xml
index 9b62f05a55..af1335b972 100644
--- a/modules/mogo-module-main/src/main/res/values/dimens.xml
+++ b/modules/mogo-module-main/src/main/res/values/dimens.xml
@@ -1,7 +1,7 @@
-
- 720px
+
+ 150px
10px
660px
690px
@@ -12,4 +12,11 @@
15px
270px
352px
+
+ 200px
+ 30px
+ 30px
+ 830px
+ 800px
+ 30px
\ No newline at end of file
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..f71aceddb0 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
@@ -8,6 +8,7 @@ import android.graphics.Rect;
import android.text.TextUtils;
import androidx.annotation.NonNull;
+import androidx.annotation.UiThread;
import androidx.lifecycle.LifecycleOwner;
import com.alibaba.android.arouter.launcher.ARouter;
@@ -20,20 +21,17 @@ 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;
import com.mogo.service.intent.IMogoIntentManager;
import com.mogo.service.launcher.IMogoLauncher;
import com.mogo.service.map.IMogoMapService;
-import com.mogo.service.module.IMogoAddressManager;
import com.mogo.service.module.IMogoRegisterCenter;
import com.mogo.service.module.IMogoSearchManager;
+import com.mogo.service.module.IMogoSettingManager;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.service.strategy.IMogoRefreshStrategyController;
import com.mogo.utils.ResourcesHelper;
@@ -62,9 +60,22 @@ public class MapPresenter extends Presenter< MapView > implements
private IMogoStatusManager mStatusManager;
private IMogoRegisterCenter mRegisterCenter;
private IMogoLauncher mLauncher;
- private IMogoAddressManager mMogoAddressManager;
+ private IMogoSearchManager mMogoSearchManager;
+ private IMogoSettingManager mSettingManager;
private Rect mDisplayOverviewBounds;
+
+ private Runnable mLockCarRunnable = new Runnable() {
+ @Override
+ public void run() {
+ if ( !mStatusManager.isDisplayOverview() ) {
+ return;
+ }
+ mStatusManager.setDisplayOverview( TAG, false );
+ mView.getUIController().recoverLockMode();
+ }
+ };
+
public MapPresenter( MapView view ) {
super( view );
initBroadcast();
@@ -211,7 +222,7 @@ public class MapPresenter extends Presenter< MapView > implements
lon = intent.getDoubleExtra( "LON", 0.0 );
}
- mMogoAddressManager.calculatePath( new MogoLatLng( lat, lon ) );
+ mMogoSearchManager.calculatePath( new MogoLatLng( lat, lon ) );
}
/**
@@ -223,6 +234,7 @@ public class MapPresenter extends Presenter< MapView > implements
mStatusManager.setDisplayOverview( TAG, false );
mView.getUIController().recoverLockMode();
AIAssist.getInstance( getContext() ).speakTTSVoice( "已为您继续导航" );
+ UiThreadHandler.removeCallbacks( mLockCarRunnable );
} else {
mLauncher.backToLauncher( getContext() );
UiThreadHandler.postDelayed( () -> {
@@ -230,6 +242,7 @@ public class MapPresenter extends Presenter< MapView > implements
mStatusManager.setDisplayOverview( TAG, false );
mView.getUIController().recoverLockMode();
AIAssist.getInstance( getContext() ).speakTTSVoice( "已为您继续导航" );
+ UiThreadHandler.removeCallbacks( mLockCarRunnable );
} catch ( Exception e ) {
e.printStackTrace();
}
@@ -242,7 +255,7 @@ public class MapPresenter extends Presenter< MapView > implements
Logger.d( TAG, "未开始导航." );
return;
}
- if ( mStatusManager.isADASShow() ) {
+ if ( mStatusManager.isV2XShow() ) {
Logger.d( TAG, "ADAS模式忽略该请求." );
return;
}
@@ -260,6 +273,8 @@ public class MapPresenter extends Presenter< MapView > implements
AIAssist.getInstance( getContext() ).speakTTSVoice( "展示全程路线" );
}, 2_000L );
}
+
+ UiThreadHandler.postDelayed( mLockCarRunnable, 20_000 );
}
private void zoomMap( boolean zoomIn ) {
@@ -282,15 +297,15 @@ public class MapPresenter extends Presenter< MapView > implements
mMogoMapService.getMapUIController().recoverLockMode();//缩放地图会导致锁车发生改变,这里强制锁车
}, 1_000 );
} else {
- // 20s后锁车刷新
- mRefreshStrategyController.restartAutoRefreshAtTime( 20_000 );
+ // 30s后锁车刷新
+ mRefreshStrategyController.restartAutoRefreshAtTime( 30_000 );
}
}
private void onOpenNavi() {
mLauncher.backToLauncher( getContext() );
if ( !mMogoMapService.getNavi( getContext() ).isNaviing() && !mStatusManager.isSearchUIShow() ) {
- mMogoAddressManager.goSearch();
+ mSearchManager.showSearch();
}
AIAssist.getInstance( getContext() ).speakTTSVoice( "已打开" );
}
@@ -308,7 +323,8 @@ public class MapPresenter extends Presenter< MapView > implements
mRegisterCenter = apis.getRegisterCenterApi();
mRegisterCenter.registerMogoNaviListener( TAG, this );
mLauncher = apis.getLauncherApi();
- mMogoAddressManager = apis.getAddressManagerApi();
+ mMogoSearchManager = apis.getSearchManagerApi();
+ mSettingManager = apis.getSettingManagerApi();
IMogoNavi mogoNavi = mMogoMapService.getNavi( getContext() );
mogoNavi.setCalculatePathDisplayBounds( new Rect(
@@ -421,7 +437,7 @@ public class MapPresenter extends Presenter< MapView > implements
break;
case VoiceConstants.CMD_MAP_STOP_NAVI_MODE_UN_WAKEUP:
case VoiceConstants.CMD_MAP_STOP_NAVI_MODE:
- mSearchManager.showMain();
+ mLauncher.backToLauncher( getContext() );
break;
case VoiceConstants.CMD_MAP_NIGHT_MODE_UN_WAKEUP:
case VoiceConstants.CMD_MAP_NIGHT_MODE:
@@ -446,12 +462,12 @@ public class MapPresenter extends Presenter< MapView > implements
break;
case VoiceConstants.CMD_MAP_SPEAK_DRAFT_MODE:
case VoiceConstants.CMD_MAP_SPEAK_DRAFT_MODE_UN_WAKEUP:
- mSearchManager.speakDraft();
+ mSettingManager.speakDraft();
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
case VoiceConstants.CMD_MAP_SPEAK_DETAIL_MODE:
case VoiceConstants.CMD_MAP_SPEAK_DETAIL_MODE_UN_WAKEUP:
- mSearchManager.speakDetail();
+ mSettingManager.speakDetail();
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
case VoiceConstants.CMD_MAP_SPEAK_REMAIN:
@@ -461,46 +477,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 +491,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/AndroidManifest.xml b/modules/mogo-module-search/src/main/AndroidManifest.xml
index 2d0a21723d..99b0239918 100644
--- a/modules/mogo-module-search/src/main/AndroidManifest.xml
+++ b/modules/mogo-module-search/src/main/AndroidManifest.xml
@@ -6,7 +6,6 @@
-
+ * 描述
+ */
+public class SearchApisHolder {
+
+ private static IMogoServiceApis sApis;
+ private static IMogoMapService sMapServiceApis;
+ private static IMogoMapUIController sUiControllerApis;
+ private static IMogoNavi sNaviApis;
+ private static IMogoMarkerManager sMarkerManagerApis;
+ private static IMogoFragmentManager sFragmentManagerApis;
+ private static IMogoAnalytics sAnalyticsApis;
+ private static IMogoLocationClient sLocationClientApis;
+ private static IMogoStatusManager sStatusManager;
+ private static IMogoRegisterCenter sRegisterCenterApis;
+ private static IMogoIntentManager sIntentManager;
+ private static IGuideShowProvider sGuideShowApis;
+ private static IMogoSettingManager sSettingManager;
+ private static IMogoGpsSimulatorManager sGpsSimulatorManager;
+ private static IMogoSearchManager sSearchManager;
+
+ static {
+ sApis = ARouter.getInstance().navigation( IMogoServiceApis.class );
+ sMapServiceApis = sApis.getMapServiceApi();
+ sUiControllerApis = sMapServiceApis.getMapUIController();
+ sNaviApis = sMapServiceApis.getNavi( AbsMogoApplication.getApp() );
+ sMarkerManagerApis = sMapServiceApis.getMarkerManager( AbsMogoApplication.getApp() );
+ sFragmentManagerApis = sApis.getFragmentManagerApi();
+ sAnalyticsApis = sApis.getAnalyticsApi();
+ sLocationClientApis = sMapServiceApis.getSingletonLocationClient( AbsMogoApplication.getApp() );
+ sStatusManager = sApis.getStatusManagerApi();
+ sRegisterCenterApis = sApis.getRegisterCenterApi();
+ sIntentManager = sApis.getIntentManagerApi();
+ sSettingManager = sApis.getSettingManagerApi();
+ sSearchManager = sApis.getSearchManagerApi();
+ sGpsSimulatorManager = ARouter.getInstance().navigation( IMogoGpsSimulatorManager.class);
+ sGuideShowApis = ARouter.getInstance().navigation( IGuideShowProvider.class );
+ }
+
+ public static IMogoServiceApis getApis() {
+ return sApis;
+ }
+
+ public static IMogoMapService getMapServiceApis() {
+ return sMapServiceApis;
+ }
+
+ public static IMogoMapUIController getUiControllerApis() {
+ return sUiControllerApis;
+ }
+
+ public static IMogoNavi getNaviApis() {
+ return sNaviApis;
+ }
+
+ public static IMogoMarkerManager getMarkerManager() {
+ return sMarkerManagerApis;
+ }
+
+ public static IMogoFragmentManager getFragmentManager() {
+ return sFragmentManagerApis;
+ }
+
+ public static IMogoAnalytics getAnalyticsApis() {
+ return sAnalyticsApis;
+ }
+
+ public static IMogoLocationClient getLocationClientApis() {
+ return sLocationClientApis;
+ }
+
+ public static IMogoStatusManager getStatusManager() {
+ return sStatusManager;
+ }
+
+ public static IMogoRegisterCenter getRegisterCenterApis() {
+ return sRegisterCenterApis;
+ }
+
+ public static IMogoIntentManager getIntentManager() {
+ return sIntentManager;
+ }
+
+ public static IGuideShowProvider getGuideShowApis() {
+ return sGuideShowApis;
+ }
+
+ public static IMogoSettingManager getSettingManager() {
+ return sSettingManager;
+ }
+
+ public static IMogoGpsSimulatorManager getGpsSimulatorManager() {
+ return sGpsSimulatorManager;
+ }
+
+ public static IMogoSearchManager getSearchManager() {
+ return sSearchManager;
+ }
+}
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
deleted file mode 100644
index a74f3e6118..0000000000
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt
+++ /dev/null
@@ -1,82 +0,0 @@
-package com.mogo.module.navi.constants
-
-import android.annotation.SuppressLint
-import android.content.Context
-import androidx.fragment.app.Fragment
-import com.alibaba.android.arouter.launcher.ARouter
-import com.mogo.map.location.IMogoLocationClient
-import com.mogo.map.marker.IMogoMarkerManager
-import com.mogo.map.navi.IMogoNavi
-import com.mogo.map.search.geo.IMogoGeoSearch
-import com.mogo.map.uicontroller.IMogoMapUIController
-import com.mogo.module.common.MogoModulePaths
-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.MogoServicePaths
-import com.mogo.service.analytics.IMogoAnalytics
-import com.mogo.service.fragmentmanager.FragmentDescriptor
-import com.mogo.service.fragmentmanager.IMogoFragmentManager
-import com.mogo.service.intent.IMogoIntentManager
-import com.mogo.service.launcher.IMogoLauncher
-import com.mogo.service.map.IMogoMapService
-import com.mogo.service.module.IMogoRegisterCenter
-import com.mogo.service.statusmanager.IMogoStatusManager
-
-/**
- *@author zyz
- * 2020-01-08.
- */
-@SuppressLint("StaticFieldLeak")
-object SearchServiceHolder {
- // 单例对象,要使用Application Context
- private lateinit var context: Context
-
- val fragmentManager: IMogoFragmentManager = ARouter.getInstance().build(MogoServicePaths.PATH_FRAGMENT_MANAGER).navigation() as IMogoFragmentManager
- val mapService: IMogoMapService = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_MAP).navigation() as IMogoMapService
- val listenerCenter: IMogoRegisterCenter = ARouter.getInstance().build(MogoServicePaths.PATH_REGISTER_CENTER).navigation() as IMogoRegisterCenter
- val statusManager: IMogoStatusManager = ARouter.getInstance().build(MogoServicePaths.PATH_STATUS_MANAGER).navigation() as IMogoStatusManager
- val analyticsManager: IMogoAnalytics = ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_ANALYTICS).navigation() as IMogoAnalytics
- val guideShowProvider: IGuideShowProvider = ARouter.getInstance().build(GuideShowProviderConstant.GUIDE_SHOW_PROVIDER).navigation() as IGuideShowProvider
- 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
-
- var geoSearch: IMogoGeoSearch? = null
- fun init(context: Context) {
- this.context = context
-
- }
-
- fun push(fragment: Fragment, tag: String) {
- val builder = FragmentDescriptor.Builder()
- builder.fragment(fragment)
- val build = builder.tag(tag).build()
- fragmentManager.push(build)
- }
-
- fun getNavi(): IMogoNavi {
- return mapService.getNavi(context)
- }
-
- fun getLocationClient(): IMogoLocationClient {
- return mapService.getLocationClient(context)
- }
-
- fun getMapUIController(): IMogoMapUIController {
- return mapService.mapUIController
- }
-
- fun getMarkerManger(): IMogoMarkerManager {
- return mapService.getMarkerManager(context)
- }
-
- fun getGeoSearcher(): IMogoGeoSearch {
- if (geoSearch == null) {
- geoSearch = mapService.getGeoSearch(context)
- }
- return geoSearch!!
- }
-
-}
\ No newline at end of file
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..85ec044c4a 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
@@ -2,15 +2,15 @@ package com.mogo.module.navi.manager
import android.annotation.SuppressLint
import android.content.Context
+import androidx.fragment.app.Fragment
import com.mogo.map.MogoLatLng
-import com.mogo.module.common.MogoModulePaths
import com.mogo.module.common.map.MapCenterPointStrategy
import com.mogo.module.common.map.Scene
import com.mogo.module.navi.bean.EntityConvertUtils
import com.mogo.module.navi.bean.SearchPoi
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.constants.SearchApisHolder
import com.mogo.module.navi.cp.AddressHelper
import com.mogo.module.navi.dao.SearchPoiDao
import com.mogo.module.navi.database.AppDataBase
@@ -47,14 +47,6 @@ object AddressManager {
return companyAddress != null
}
- private fun choosePoint(type: Int){
- MapCenterPointStrategy.setMapCenterPointByScene(SearchServiceHolder.getMapUIController(), Scene.CHOOSE_POINT)
- val builder = FragmentDescriptor.Builder()
- builder.fragment(SettingAddressFragment.newInstance(type))
- val build = builder.tag(AMapConstants.PATH_FRAGMENT_SETTING_HOME).build()
- SearchServiceHolder.fragmentManager.push(build)
- }
-
private lateinit var context: Context
@SuppressLint("CheckResult")
fun init(context: Context) {
@@ -64,7 +56,7 @@ object AddressManager {
poiDao.companyAddress
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
- .subscribe { t1, t2 ->
+ .subscribe { t1, _ ->
if (t1.size > 0) {
companyAddress = t1[0]
}
@@ -73,7 +65,7 @@ object AddressManager {
poiDao.homeAddress
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
- .subscribe { t1, t2 ->
+ .subscribe { t1, _ ->
if (t1.size > 0) {
homeAddress = t1[0]
}
@@ -90,7 +82,7 @@ object AddressManager {
}
}
- fun deleteHome(context: Context) {
+ fun deleteHome() {
Observable.create(
ObservableOnSubscribe {
poiDao.delete(homeAddress)
@@ -105,7 +97,7 @@ object AddressManager {
}
- fun deleteCompany(context: Context) {
+ fun deleteCompany() {
Observable.create(
ObservableOnSubscribe {
poiDao.delete(companyAddress)
@@ -122,7 +114,6 @@ object AddressManager {
* 回家
*/
fun goHome() {
- SearchServiceHolder.statusManager.setSearchUIShow(TAG, true)
if (homeAddress == null) {
choosePoint(DataConstants.TYPE_HOME_ADDRESS)
} else {
@@ -130,13 +121,18 @@ object AddressManager {
}
}
+ private fun choosePoint(type: Int) {
+ beforePushFragment()
+ MapCenterPointStrategy.setMapCenterPointByScene(SearchApisHolder.getUiControllerApis(), Scene.CHOOSE_POINT)
+ pushFragment(SettingAddressFragment.newInstance(type), AMapConstants.PATH_FRAGMENT_SETTING_HOME, true)
+ }
+
/**
* 去公司
*/
fun goCompany() {
- SearchServiceHolder.statusManager.setSearchUIShow(TAG, true)
if (companyAddress == null) {
- choosePoint( DataConstants.TYPE_COMPANY_ADDRESS)
+ choosePoint(DataConstants.TYPE_COMPANY_ADDRESS)
} else {
calculatePath(EntityConvertUtils.poi2MogoTip(companyAddress).point)
}
@@ -146,13 +142,8 @@ object AddressManager {
* 搜索
*/
fun goSearch() {
- SearchServiceHolder.statusManager.setSearchUIShow(TAG, true)
- SearchServiceHolder.fragmentManager.push(
- FragmentDescriptor.Builder().fragment(SearchFragment())
- .tag(AMapConstants.PATH_FRAGMENT_SEARCH)
- .notifyMainModule(true)
- .build()
- )
+ beforePushFragment()
+ pushFragment(SearchFragment(), AMapConstants.PATH_FRAGMENT_SEARCH, true)
}
/**
@@ -160,25 +151,46 @@ object AddressManager {
*/
fun calculatePath(destination: MogoLatLng?) {
destination?.let {
- var newInstance = ChoosePathFragment.newInstance(destination)
- SearchServiceHolder.push(newInstance, AMapConstants.PATH_FRAGMENT_CHOOSE_PATH)
+ beforePushFragment()
+ MapCenterPointStrategy.setMapCenterPointByScene(SearchApisHolder.getUiControllerApis(), Scene.CALCULATE_PATH)
+ pushFragment(ChoosePathFragment.newInstance(destination), AMapConstants.PATH_FRAGMENT_CHOOSE_PATH, true)
}
}
- fun categorySearch(category: String){
- val searchFragment = CategorySearchFragment.newInstance(category)
- SearchServiceHolder.fragmentManager.push(FragmentDescriptor.Builder().fragment(searchFragment)
- .tag(AMapConstants.PATH_FRAGMENT_SEARCH_CATEGORY)
- .notifyMainModule(true)
- .build())
+ fun categorySearch(category: String) {
+ beforePushFragment()
+ pushFragment(CategorySearchFragment.newInstance(category), AMapConstants.PATH_FRAGMENT_SEARCH_CATEGORY, true)
}
- fun goSettings(){
- val naviSettingFragment = NaviSettingFragment()
- SearchServiceHolder.fragmentManager.push(FragmentDescriptor.Builder().fragment(naviSettingFragment)
- .tag(AMapConstants.PATH_FRAGMENT_NAVI_SETTING)
- .notifyMainModule(true)
- .build())
+ fun goSettings() {
+ beforePushFragment()
+ pushFragment(NaviSettingFragment(), AMapConstants.PATH_FRAGMENT_NAVI_SETTING, true)
}
+ private fun beforePushFragment() {
+ closeADAS()
+ if (!SearchApisHolder.getStatusManager().isSearchUIShow) {
+ SearchApisHolder.getStatusManager().setSearchUIShow(TAG, true)
+ }
+ }
+
+ private fun pushFragment(fragment: Fragment, tag: String, notifyMain: Boolean) {
+ SearchApisHolder.getFragmentManager().push(
+ FragmentDescriptor.Builder()
+ .fragment(fragment)
+ .tag(tag)
+ .notifyMainModule(notifyMain)
+ .build()
+ )
+ }
+
+
+ private fun closeADAS() {
+ try {
+ SearchApisHolder.getApis().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..e5b4c314f6 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,50 +1,59 @@
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;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.module.IMogoAddressManager;
+import com.mogo.service.module.IMogoSearchManager;
+import com.mogo.utils.logger.Logger;
/**
* @author zyz
* 2020-01-12.
+ *
+ * Deprecated, use {@link IMogoSearchManager} instead.
*/
+
+@Deprecated
@Route( path = MogoServicePaths.PATH_ADDRESS_MANAGER )
public class MogoAddressManager implements IMogoAddressManager {
- @Override public void goHome() {
- AddressManager.INSTANCE.goHome();
+ private static final String TAG = "MogoAddressManager";
+
+ @Override
+ public void goHome() {
+ Logger.w( TAG, "Deprecated, use IMogoSearchManager instead." );
}
- @Override public void goCompany() {
- AddressManager.INSTANCE.goCompany();
+ @Override
+ public void goCompany() {
+ Logger.w( TAG, "Deprecated, use IMogoSearchManager instead." );
}
@Override
public void goSearch() {
- AddressManager.INSTANCE.goSearch();
+ Logger.w( TAG, "Deprecated, use IMogoSearchManager instead." );
}
@Override
public void calculatePath( MogoLatLng destination ) {
- AddressManager.INSTANCE.calculatePath( destination );
+ Logger.w( TAG, "Deprecated, use IMogoSearchManager instead." );
}
@Override
public void categorySearch( String category ) {
- AddressManager.INSTANCE.categorySearch( category );
+ Logger.w( TAG, "Deprecated, use IMogoSearchManager instead." );
}
@Override
public void goSettings() {
- AddressManager.INSTANCE.goSettings();
+ Logger.w( TAG, "Deprecated, use IMogoSearchManager instead." );
}
- @Override public void init( Context context) {
- AddressManager.INSTANCE.init(context);
- SearchServiceHolder.INSTANCE.init(context);
- SettingManager.INSTANCE.init(context);
+ @Override
+ public void init( Context context ) {
+ Logger.w( TAG, "Deprecated, use IMogoSearchManager instead." );
}
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/MogoSearchManager.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/MogoSearchManager.java
index 75a749ba67..db988b10af 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/MogoSearchManager.java
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/MogoSearchManager.java
@@ -1,53 +1,55 @@
package com.mogo.module.navi.manager;
import android.content.Context;
-import androidx.fragment.app.Fragment;
+
import com.alibaba.android.arouter.facade.annotation.Route;
-import com.mogo.map.constants.BroadcastMode;
-import com.mogo.module.common.MogoModulePaths;
-import com.mogo.module.navi.constants.AMapConstants;
-import com.mogo.module.navi.constants.SearchServiceHolder;
-import com.mogo.module.navi.ui.search.CategorySearchFragment;
-import com.mogo.module.navi.ui.search.SearchFragment;
+import com.mogo.map.MogoLatLng;
+import com.mogo.module.navi.constants.SearchApisHolder;
import com.mogo.service.MogoServicePaths;
-import com.mogo.service.fragmentmanager.FragmentDescriptor;
import com.mogo.service.module.IMogoSearchManager;
/**
* @author zyz
* 2020-01-13.
*/
-@Route(path = MogoServicePaths.PATH_SEARCH_MANAGER)
+@Route( path = MogoServicePaths.PATH_SEARCH_MANAGER )
public class MogoSearchManager implements IMogoSearchManager {
- @Override public void goHome() {
+ @Override
+ public void goHome() {
AddressManager.INSTANCE.goHome();
}
- @Override public void goCompany() {
+ @Override
+ public void goCompany() {
AddressManager.INSTANCE.goCompany();
}
- @Override public void showSearch() {
+ @Override
+ public void showSearch() {
+ if ( SearchApisHolder.getNaviApis().isNaviing() ) {
+ return;
+ }
AddressManager.INSTANCE.goSearch();
}
- @Override public void showMain() {
- SearchServiceHolder.INSTANCE.getFragmentManager().clearAll();
- }
-
- @Override public void speakDraft() {
- SearchServiceHolder.INSTANCE.getNavi().setBroadcastMode(BroadcastMode.CONCISE);
- }
-
- @Override public void speakDetail() {
- SearchServiceHolder.INSTANCE.getNavi().setBroadcastMode(BroadcastMode.DETAIL);
- }
-
- @Override public void showCategory(String keyword) {
+ @Override
+ public void categorySearch( String keyword ) {
AddressManager.INSTANCE.categorySearch( keyword );
}
- @Override public void init(Context context) {
+ @Override
+ public void calculatePath( MogoLatLng destination ) {
+ AddressManager.INSTANCE.calculatePath( destination );
+ }
+ @Override
+ public void goSettings() {
+ AddressManager.INSTANCE.goSettings();
+ }
+
+ @Override
+ public void init( Context context ) {
+ AddressManager.INSTANCE.init( context );
+ SettingManager.INSTANCE.init( context );
}
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/MogoSettingManager.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/MogoSettingManager.java
index c5272a9e4e..89e2199d60 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/MogoSettingManager.java
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/MogoSettingManager.java
@@ -1,7 +1,7 @@
package com.mogo.module.navi.manager;
import android.content.Context;
-import android.content.SharedPreferences;
+
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.module.IMogoSettingManager;
@@ -14,23 +14,49 @@ import com.mogo.service.module.IMogoSettingManager;
@Route( path = MogoServicePaths.PATH_SETTING_MANAGER )
public class MogoSettingManager implements IMogoSettingManager {
- @Override public int getPathPrefer() {
+ @Override
+ public int getPathPrefer() {
return SettingManager.INSTANCE.getPathPrefer();
}
- @Override public int getVolume() {
+ @Override
+ public int getVolume() {
return SettingManager.INSTANCE.getVolume();
}
- @Override public int getVoiceStyle() {
+ @Override
+ public int getVoiceStyle() {
return SettingManager.INSTANCE.getVoiceStyle();
}
- @Override public int getMapType() {
+ @Override
+ public int getMapType() {
return SettingManager.INSTANCE.getMapType();
}
- @Override public void init(Context context) {
- SettingManager.INSTANCE.init(context);
+ @Override
+ public void init( Context context ) {
+ SettingManager.INSTANCE.init( context );
+ }
+
+
+ @Override
+ public void speakDraft() {
+ SettingManager.INSTANCE.speakDraft();
+ }
+
+ @Override
+ public void speakDetail() {
+ SettingManager.INSTANCE.speakDetail();
+ }
+
+ @Override
+ public void openAimlessMode() {
+ SettingManager.INSTANCE.openAimlessMode();
+ }
+
+ @Override
+ public void closeAimlessMode() {
+ SettingManager.INSTANCE.closeAimlessMode();
}
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/SettingManager.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/SettingManager.kt
index 4237428e43..064460aa8c 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/SettingManager.kt
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/SettingManager.kt
@@ -2,9 +2,9 @@ package com.mogo.module.navi.manager
import android.content.Context
import android.content.SharedPreferences
-import com.mogo.map.navi.MogoNaviConfig
+import com.mogo.map.constants.BroadcastMode
import com.mogo.module.navi.R
-import com.mogo.module.navi.constants.SearchServiceHolder
+import com.mogo.module.navi.constants.SearchApisHolder
import com.mogo.service.module.IMogoSettingManager
/**
@@ -187,7 +187,7 @@ object SettingManager : IMogoSettingManager {
}
private fun updateConfig() {
- SearchServiceHolder.getNavi()
+ SearchApisHolder.getNaviApis()
.naviConfig
.cost(cost)
.avoidSpeed(avoidSpeed)
@@ -195,12 +195,31 @@ object SettingManager : IMogoSettingManager {
.congestion(congestion)
}
- fun setAimlessMode(type: Int){
+ fun setAimlessMode(type: Int) {
settings.edit().putInt(KEY_AIMLESS_MODE_TYPE, type).apply()
}
- fun getAimlessMode():Int {
+ fun getAimlessMode(): Int {
return settings.getInt(KEY_AIMLESS_MODE_TYPE, R.id.aimlessModeClose)
}
+ override fun speakDraft() {
+ voiceStyle = R.id.rb_navi_draft
+ SearchApisHolder.getNaviApis().setBroadcastMode(BroadcastMode.CONCISE)
+ }
+
+ override fun speakDetail() {
+ voiceStyle = R.id.rb_navi_detail
+ SearchApisHolder.getNaviApis().setBroadcastMode(BroadcastMode.DETAIL)
+ }
+
+ override fun openAimlessMode() {
+ setAimlessMode(R.id.aimlessModeOpen)
+ SearchApisHolder.getNaviApis().setAimlessModeStatus(true)
+ }
+
+ override fun closeAimlessMode() {
+ setAimlessMode(R.id.aimlessModeClose)
+ SearchApisHolder.getNaviApis().setAimlessModeStatus(false)
+ }
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/NaviActivity.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/NaviActivity.kt
deleted file mode 100644
index 70eb32f28f..0000000000
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/NaviActivity.kt
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.mogo.module.navi.ui
-
-import android.os.Bundle
-import androidx.fragment.app.Fragment
-import com.alibaba.android.arouter.launcher.ARouter
-import com.mogo.module.navi.R
-import com.mogo.module.navi.ui.base.BaseActivity
-
-class NaviActivity : BaseActivity() {
-
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_navi)
- var fragment = ARouter.getInstance()
- .build("/navi/search")
- .navigation() as Fragment
- supportFragmentManager.beginTransaction().replace(R.id.fl_container,fragment).commitNow()
- }
-}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/base/BaseFragment.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/base/BaseFragment.java
index 73b329da13..4843914c4a 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/base/BaseFragment.java
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/base/BaseFragment.java
@@ -6,12 +6,12 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
+
import androidx.annotation.IdRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
-import com.mogo.module.common.MogoModulePaths;
-import com.mogo.module.navi.constants.SearchServiceHolder;
+
import com.mogo.utils.NetworkUtils;
/**
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/BaseSearchFragment.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/BaseSearchFragment.java
index a1651a052a..59be513933 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/BaseSearchFragment.java
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/BaseSearchFragment.java
@@ -101,10 +101,6 @@ public abstract class BaseSearchFragment extends BaseFragment implements SearchV
return mSearchType;
}
- @Override public void startJumpAnimation() {
-
- }
-
//@Override
//public void renderChoicePointResult( RegeocodeAddress address ) {
// if ( address == null ) {
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategoryPresenter.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategoryPresenter.java
index 4dc1c77384..3e4c2924e5 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategoryPresenter.java
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategoryPresenter.java
@@ -1,41 +1,22 @@
package com.mogo.module.navi.ui.search;
-import android.app.AlertDialog;
-import android.text.Editable;
-import android.text.TextUtils;
-import android.widget.EditText;
+import android.location.Location;
+
import androidx.annotation.NonNull;
import androidx.lifecycle.LifecycleOwner;
-import com.alibaba.android.arouter.launcher.ARouter;
+
+import com.amap.api.maps.model.LatLng;
import com.mogo.commons.mvp.Presenter;
+import com.mogo.map.MogoLatLng;
+import com.mogo.map.location.MogoLocation;
import com.mogo.map.search.geo.MogoPoiItem;
-import com.mogo.map.search.inputtips.IMogoInputtipsListener;
-import com.mogo.map.search.inputtips.IMogoInputtipsSearch;
-import com.mogo.map.search.inputtips.MogoTip;
-import com.mogo.map.search.inputtips.query.MogoInputtipsQuery;
import com.mogo.map.search.poisearch.IMogoPoiSearch;
import com.mogo.map.search.poisearch.IMogoPoiSearchListener;
import com.mogo.map.search.poisearch.MogoPoiResult;
import com.mogo.map.search.poisearch.query.MogoPoiSearchQuery;
-import com.mogo.module.common.TextWatcherAdapter;
-import com.mogo.module.navi.bean.EntityConvertUtils;
-import com.mogo.module.navi.bean.SearchPoi;
-import com.mogo.module.navi.constants.DataConstants;
-import com.mogo.module.navi.constants.SearchServiceHolder;
-import com.mogo.module.navi.database.AppDataBase;
-import com.mogo.service.MogoServicePaths;
-import com.mogo.service.map.IMogoMapService;
-import io.reactivex.Observable;
-import io.reactivex.ObservableEmitter;
-import io.reactivex.ObservableOnSubscribe;
-import io.reactivex.Single;
-import io.reactivex.SingleEmitter;
-import io.reactivex.android.schedulers.AndroidSchedulers;
+import com.mogo.module.navi.constants.SearchApisHolder;
+
import io.reactivex.disposables.CompositeDisposable;
-import io.reactivex.disposables.Disposable;
-import io.reactivex.functions.Consumer;
-import io.reactivex.schedulers.Schedulers;
-import java.util.List;
/**
* @author congtaowang
@@ -43,55 +24,70 @@ import java.util.List;
*
* 搜搜页逻辑处理
*/
-public class CategoryPresenter extends Presenter {
+public class CategoryPresenter extends Presenter< CategoryView > {
private CompositeDisposable mCompositeDisposable;
- private IMogoMapService mMapService;
- public CategoryPresenter(CategoryView view) {
- super(view);
+ public CategoryPresenter( CategoryView view ) {
+ super( view );
mCompositeDisposable = new CompositeDisposable();
}
@Override
- public void onCreate(@NonNull LifecycleOwner owner) {
- super.onCreate(owner);
- mMapService = (IMogoMapService) ARouter.getInstance()
- .build(MogoServicePaths.PATH_SERVICES_MAP)
- .navigation(getContext());
+ public void onCreate( @NonNull LifecycleOwner owner ) {
+ super.onCreate( owner );
}
- public void startSearchLocalPoiByInput(String keyword) {
- MogoPoiSearchQuery mogoInputtipsQuery = new MogoPoiSearchQuery(keyword, keyword);
- mogoInputtipsQuery.setPageSize(10);
- mogoInputtipsQuery.setLocation(
- SearchServiceHolder.INSTANCE.getMapUIController().getWindowCenterLocation());
- IMogoPoiSearch inputtipsSearch =
- mMapService.getPoiSearch(getContext(), mogoInputtipsQuery);
+ public void startSearchLocalPoiByInput( String keyword ) {
- inputtipsSearch.setPoiSearchListener(new IMogoPoiSearchListener() {
- @Override public void onPoiSearched(MogoPoiResult result, int errorCode) {
+ MogoPoiSearchQuery poiSearchQuery = new MogoPoiSearchQuery( keyword, keyword );
+ poiSearchQuery.setPageSize( 10 );
+ poiSearchQuery.setLocation( getCurrentLatLon() );
+ IMogoPoiSearch poiSearch = SearchApisHolder.getMapServiceApis().getPoiSearch( getContext(), poiSearchQuery );
+
+ poiSearch.setPoiSearchListener( new IMogoPoiSearchListener() {
+ @Override
+ public void onPoiSearched( MogoPoiResult result, int errorCode ) {
if ( result != null ) {
- mView.renderSearchPoiResult(result.getPois());
+ mView.renderSearchPoiResult( result.getPois() );
}
}
- @Override public void onPoiItemSearched(MogoPoiItem item, int errorCode) {
+ @Override
+ public void onPoiItemSearched( MogoPoiItem item, int errorCode ) {
}
- });
- inputtipsSearch.searchPOIAsyn();
+ } );
+ poiSearch.searchPOIAsyn();
}
+ private MogoLatLng getCurrentLatLon() {
+ MogoLatLng latLon = SearchApisHolder.getNaviApis().getCarLocation();
+ if ( latLon == null ) {
+ Location location = SearchApisHolder.getNaviApis().getCarLocation2();
+ if ( location != null ) {
+ latLon = new MogoLatLng( location.getLatitude(), location.getLongitude() );
+ }
+ }
+ if ( latLon == null ) {
+ MogoLocation location = SearchApisHolder.getLocationClientApis().getLastKnowLocation();
+ if ( location != null ) {
+ latLon = new MogoLatLng( location.getLatitude(), location.getLongitude() );
+ }
+ }
+ if ( latLon == null ) {
+ latLon = SearchApisHolder.getUiControllerApis().getWindowCenterLocation();
+ }
+ return latLon;
+ }
@Override
- public void onDestroy(@NonNull LifecycleOwner owner) {
- super.onDestroy(owner);
- if (mCompositeDisposable != null && !mCompositeDisposable.isDisposed()) {
+ public void onDestroy( @NonNull LifecycleOwner owner ) {
+ super.onDestroy( owner );
+ if ( mCompositeDisposable != null && !mCompositeDisposable.isDisposed() ) {
mCompositeDisposable.dispose();
mCompositeDisposable = null;
}
- //CameraChangedLiveData.getInstance().removeAllObserver();
}
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt
index 3fbb093871..4dccdb5b3f 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt
@@ -4,7 +4,6 @@ import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.graphics.Rect
import android.os.Bundle
-import android.text.TextUtils
import android.view.View
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.LinearLayoutManager
@@ -15,36 +14,23 @@ import com.mogo.map.marker.IMogoMarker
import com.mogo.map.marker.IMogoMarkerClickListener
import com.mogo.map.marker.MogoMarkerOptions
import com.mogo.map.search.geo.MogoPoiItem
-import com.mogo.map.search.inputtips.MogoTip
-import com.mogo.module.common.MogoModulePaths
import com.mogo.module.common.map.MapCenterPointStrategy
import com.mogo.module.common.map.Scene
+import com.mogo.module.common.utils.CarSeries
import com.mogo.module.navi.R
-import com.mogo.module.navi.bean.SearchPoi
-import com.mogo.module.navi.constants.AMapConstants
-import com.mogo.module.navi.constants.SearchServiceHolder
+import com.mogo.module.navi.constants.SearchApisHolder
import com.mogo.module.navi.manager.AddressManager
import com.mogo.module.navi.ui.adapter.SearchCategoryAdapter
import com.mogo.module.navi.ui.base.BaseFragment
import com.mogo.module.navi.uitls.BitmapUtils
import com.mogo.module.navi.uitls.StringUtils
-import com.mogo.utils.UiThreadHandler
-import kotlinx.android.synthetic.main.fragment_search_category.cv_search_result
-import kotlinx.android.synthetic.main.fragment_search_category.et_navi_search
-import kotlinx.android.synthetic.main.fragment_search_category.iv_navi_back
-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.fragment_search_category.*
/**
* @author zyz
* 2020-01-09.
*/
class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBack, IMogoMarkerClickListener {
-// override fun onMarkerClicked(marker: IMogoMarker?): Boolean {
-//
-// return true
-// }
override fun onCmdSelected(cmd: String?) {
if (cmd?.startsWith("position") == true) {
@@ -55,24 +41,13 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa
}
}
- override fun onCmdAction(speakText: String?) {
- }
-
- override fun onCmdCancel(speakText: String?) {
- }
-
- override fun onSpeakEnd(speakText: String?) {
- }
-
- override fun onSpeakSelectTimeOut(speakText: String?) {
- }
-
private val TAG: String = "CategorySearchFragment"
private var addMarkers: ArrayList = ArrayList()
var arrayList = ArrayList()
var locationList = ArrayList()
private lateinit var cmds: ArrayList
+
override fun renderSearchPoiResult(datums: List?) {
mAdapter.setDatas(datums)
cv_search_result.visibility = View.VISIBLE
@@ -99,7 +74,9 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa
// .anchor(0.5f, 1f)
.longitude(datums[index].point?.lng ?: 0.0)
arrayList.add(options)
- locationList.add(datums[index].point)
+ if( locationList.size < 3 ){
+ locationList.add(datums[index].point)
+ }
var int2String = StringUtils.int2String(index + 1)
AIAssist.getInstance(context).registerUnWakeupCommand("position${index}", arrayOf("第${int2String}个", "第${int2String}条"), this)
@@ -112,15 +89,15 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa
private fun addMarkers() {
addMarkers.clear()
var marginBounder = resources.getDimensionPixelSize(R.dimen.dp_60) * 2
- SearchServiceHolder.getMapUIController().showBounds(TAG,
- null,
+ SearchApisHolder.getUiControllerApis().showBounds(TAG,
+ locationList[0],
locationList,
Rect(cv_search_result.width + marginBounder, marginBounder, marginBounder, marginBounder),
- false
+ true
)
for (options in arrayList) {
- var addMarker = SearchServiceHolder.getMarkerManger().addMarker(TAG, options)
+ var addMarker = SearchApisHolder.getMarkerManager().addMarker(TAG, options)
addMarker.onMarkerClickListener = this
addMarkers.add(addMarker)
}
@@ -180,7 +157,7 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa
iv_navi_back.setOnClickListener {
- SearchServiceHolder.fragmentManager.pop()
+ SearchApisHolder.getFragmentManager().pop()
}
tv_navi_navi.setOnClickListener {
@@ -210,8 +187,8 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa
arrayList.get(mAdapter.lastPosition).icon(getMarkerIcon(mAdapter.lastPosition))
arrayList.get(mAdapter.current).icon(getMarkerIcon(mAdapter.current))
if (moveToCenter) {
- SearchServiceHolder.statusManager.setUserInteractionStatus(TAG, true, false)
- SearchServiceHolder.getMapUIController().moveToCenter(current.position)
+ SearchApisHolder.getStatusManager().setUserInteractionStatus(TAG, true, false)
+ SearchApisHolder.getUiControllerApis().moveToCenter(current.position, CarSeries.CAR_SERIES_F80X == CarSeries.getSeries())
}
}
@@ -236,7 +213,7 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa
super.onDestroyView()
mSearchPresenter.onDestroy(viewLifecycleOwner)
lifecycle.removeObserver(mSearchPresenter)
- SearchServiceHolder.getMarkerManger().removeMarkers(TAG)
+ SearchApisHolder.getMarkerManager().removeMarkers(TAG)
unRegisterVoice()
}
@@ -247,13 +224,9 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa
}
}
- override fun onDestroy() {
- super.onDestroy()
- }
-
companion object {
fun newInstance(category: String): Fragment {
- MapCenterPointStrategy.setMapCenterPointByScene(SearchServiceHolder.getMapUIController(), Scene.CATEGORY_SEARCH)
+ MapCenterPointStrategy.setMapCenterPointByScene(SearchApisHolder.getUiControllerApis(), Scene.CATEGORY_SEARCH)
var bundle = Bundle()
bundle.putString("category", category)
var categorySerachFragment = CategorySearchFragment()
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategoryView.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategoryView.java
index fad125dcb7..d18de66647 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategoryView.java
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategoryView.java
@@ -19,6 +19,4 @@ public interface CategoryView extends IView {
* @param datums
*/
void renderSearchPoiResult(List datums);
-
-
}
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 750335c1be..c3d8767760 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,13 +11,10 @@ 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.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.constants.SearchApisHolder
import com.mogo.module.navi.manager.SettingManager
import com.mogo.module.navi.ui.adapter.CalculatePathAdapter
import com.mogo.module.navi.ui.base.BaseFragment
@@ -38,8 +35,8 @@ import org.json.JSONObject
*/
class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallBack, IMogoIntentListener {
- var mTimeShortestPosition = -1
- var mDistanceShortestPosition = -1
+ private var mTimeShortestPosition = -1
+ private var mDistanceShortestPosition = -1
override fun onCmdSelected(cmd: String?) {
when (cmd) {
@@ -72,7 +69,7 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
retry()
}
"cancel" -> {
- SearchServiceHolder.fragmentManager.clearAll()
+ SearchApisHolder.getFragmentManager().clearAll()
}
}
}
@@ -84,7 +81,7 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
}
override fun onCalculateSuccess() {
- var calculatedStrategies = SearchServiceHolder.getNavi().calculatedStrategies
+ var calculatedStrategies = SearchApisHolder.getNaviApis().calculatedStrategies
if (calculatedStrategies != null && calculatedStrategies.size > 0) {
mAdapter.setDatas(calculatedStrategies)
mAdapter.selectTag = calculatedStrategies[0].tagId
@@ -95,7 +92,9 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
if (calculatedStrategies.isNullOrEmpty()) {
return@postDelayed
}
- SearchServiceHolder.getNavi().itemClickInteraction.onItemClicked(calculatedStrategies[0].tagId)
+ if (SearchApisHolder.getNaviApis().itemClickInteraction != null) {
+ SearchApisHolder.getNaviApis().itemClickInteraction.onItemClicked(calculatedStrategies[0].tagId)
+ }
if (calculatedStrategies.size == 1) {
// 一条路线,自动开启导航
@@ -157,16 +156,16 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
super.onViewCreated(view, savedInstanceState)
iv_navi_back.setOnClickListener {
- SearchServiceHolder.fragmentManager.pop()
+ SearchApisHolder.getFragmentManager().pop()
}
tv_navi_navi.text = getString(R.string.start_navi)
et_navi_search.setText(getString(R.string.choose_path))
et_navi_search.isEnabled = false
- SearchServiceHolder.getNavi().naviTo(mogoTip)
+ SearchApisHolder.getNaviApis().naviTo(mogoTip)
- SearchServiceHolder.listenerCenter.registerMogoNaviListener(AMapConstants.PATH_FRAGMENT_CHOOSE_PATH, this)
+ SearchApisHolder.getRegisterCenterApis().registerMogoNaviListener(AMapConstants.PATH_FRAGMENT_CHOOSE_PATH, this)
var arrayList = ArrayList()
mAdapter = CalculatePathAdapter(activity, arrayList)
@@ -181,7 +180,7 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
}
}
- SearchServiceHolder.getNavi().setLineClickInteraction {
+ SearchApisHolder.getNaviApis().setLineClickInteraction {
mAdapter.selectTag = it
}
@@ -190,7 +189,7 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
selectPath(item)
}
- SearchServiceHolder.getMarkerManger().removeMarkers()
+ SearchApisHolder.getMarkerManager().removeMarkers()
DataConstants.sCmds.entries.filter {
it != null && !TextUtils.isEmpty(it.key) && (it.value?.isNotEmpty() ?: false)
@@ -198,8 +197,8 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
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)
+ SearchApisHolder.getIntentManager().registerIntentListener(AMapConstants.COMMAND_START_NAVI, this)
+ SearchApisHolder.getIntentManager().registerIntentListener(AMapConstants.COMMAND_CHOOSE_PATH, this)
}
private fun registerRetryVoice() {
@@ -211,7 +210,7 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
}
private fun retry() {
- SearchServiceHolder.getNavi().naviTo(mogoTip)
+ SearchApisHolder.getNaviApis().naviTo(mogoTip)
pb_path.visibility = View.VISIBLE
group_path.visibility = View.GONE
}
@@ -221,28 +220,30 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
return
}
- SearchServiceHolder.getNavi().startNavi(!SettingManager.isMonitor())
- SearchServiceHolder.getMapUIController().recoverLockMode()
+ SearchApisHolder.getNaviApis().startNavi(!SettingManager.isMonitor())
+ SearchApisHolder.getUiControllerApis().recoverLockMode()
- if (SearchServiceHolder.guideShowProvider.isPlayingVideo()) {
- SearchServiceHolder.guideShowProvider.closeGuideShowView()
+ if (SearchApisHolder.getGuideShowApis().isPlayingVideo()) {
+ SearchApisHolder.getGuideShowApis().closeGuideShowView()
}
isStartedNavi = true
- SearchServiceHolder.fragmentManager.clearAll()
+ SearchApisHolder.getFragmentManager().clearAll()
}
private fun selectPath(item: MogoCalculatePath?) {
item?.let {
mAdapter.setSelectTag(item.tagId)
- SearchServiceHolder.getNavi().itemClickInteraction.onItemClicked(item.tagId)
+ if (SearchApisHolder.getNaviApis().itemClickInteraction != null) {
+ SearchApisHolder.getNaviApis().itemClickInteraction.onItemClicked(item.tagId)
+ }
}
}
override fun onDestroyView() {
super.onDestroyView()
- SearchServiceHolder.listenerCenter.unregisterMogoNaviListener(AMapConstants.PATH_FRAGMENT_CHOOSE_PATH)
+ SearchApisHolder.getRegisterCenterApis().unregisterMogoNaviListener(AMapConstants.PATH_FRAGMENT_CHOOSE_PATH)
if (!isStartedNavi) {
- SearchServiceHolder.getNavi().clearCalculatePaths()
+ SearchApisHolder.getNaviApis().clearCalculatePaths()
}
DataConstants.sCmds.entries.filter {
@@ -251,8 +252,8 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
AIAssist.getInstance(mContext).unregisterUnWakeupCommand(it.key)
}
- SearchServiceHolder.intentManager.unregisterIntentListener(AMapConstants.COMMAND_START_NAVI, this)
- SearchServiceHolder.intentManager.unregisterIntentListener(AMapConstants.COMMAND_CHOOSE_PATH, this)
+ SearchApisHolder.getIntentManager().unregisterIntentListener(AMapConstants.COMMAND_START_NAVI, this)
+ SearchApisHolder.getIntentManager().unregisterIntentListener(AMapConstants.COMMAND_CHOOSE_PATH, this)
}
override fun onIntentReceived(intentStr: String?, intent: Intent?) {
@@ -270,45 +271,18 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
var dataJsonStr = intent?.getStringExtra("data") ?: ""
try {
var jsonObj = JSONObject(dataJsonStr)
- var routePlan = jsonObj.optString("route_plan", " ")
+ var routePlan = jsonObj.optString("route_choice", " ")
when (routePlan) {
- "最快" -> {
+ "fastest" -> {
// 时间最短
selectItem(mTimeShortestPosition)
startNavi()
}
- "不走高速" -> {
- // 仅在导航场景下,⽀持第三⽅进⾏路线偏好的重新选择。
- // 避免收费 | 1
- // 多策略算路 | 2
- // 不走高速 | 3
- // 躲避拥堵 | 4
- // 不走高速且避免收费 | 5
- // 不走高速且躲避拥堵 | 6
- // 躲避收费和拥堵 | 7
- // 不走高速躲避收费和拥堵 | 8
- // 高速优先 | 20
- // 躲避拥堵且高速优先 | 24
- var prefer = 3
- val config = MogoNaviConfig().congestion(prefer == 4)
- .cost(prefer == 1 || prefer == 7)
- .highSpeed(prefer == 20)
- .avoidSpeed(prefer == 3)
- SearchServiceHolder.getNavi().reCalculateRoute(config)
- }
- "最近" -> {
+ "nearest" -> {
// 路程最短
selectItem(mDistanceShortestPosition)
startNavi()
}
- "躲避拥堵" -> {
- var prefer = 4
- val config = MogoNaviConfig().congestion(prefer == 4)
- .cost(prefer == 1 || prefer == 7)
- .highSpeed(prefer == 20)
- .avoidSpeed(prefer == 3)
- SearchServiceHolder.getNavi().reCalculateRoute(config)
- }
}
} catch (e: Exception) {
@@ -321,7 +295,6 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
val TAG: String = "ChoosePathFragment"
fun newInstance(searchPoi: MogoLatLng): Fragment {
- MapCenterPointStrategy.setMapCenterPointByScene(SearchServiceHolder.getMapUIController(), Scene.CALCULATE_PATH)
var bundle = Bundle()
bundle.putParcelable(AMapConstants.KEY_PARCELABLE, searchPoi)
var choosePathFragment = ChoosePathFragment()
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java
index 00a7321047..6e2d965b2f 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java
@@ -2,34 +2,29 @@ package com.mogo.module.navi.ui.search;
import android.content.Context;
import android.os.Bundle;
-import android.os.health.ServiceHealthStats;
import android.text.TextUtils;
import android.view.View;
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.facade.annotation.Route;
-import com.mogo.commons.analytics.AnalyticsUtils;
+
import com.mogo.commons.voice.AIAssist;
import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
import com.mogo.map.search.inputtips.MogoTip;
-import com.mogo.module.common.MogoModulePaths;
import com.mogo.module.navi.R;
import com.mogo.module.navi.bean.EntityConvertUtils;
import com.mogo.module.navi.bean.SearchPoi;
-import com.mogo.module.navi.constants.AMapConstants;
+import com.mogo.module.navi.constants.SearchApisHolder;
import com.mogo.module.navi.manager.AddressManager;
-import com.mogo.module.navi.constants.SearchServiceHolder;
import com.mogo.module.navi.ui.adapter.HistoryPoiAdapter;
import com.mogo.module.navi.ui.adapter.SearchPoiAdapter;
import com.mogo.module.navi.ui.base.UiController;
-import com.mogo.module.navi.ui.setting.NaviSettingFragment;
import com.mogo.module.navi.uitls.StringUtils;
-import com.mogo.service.fragmentmanager.FragmentDescriptor;
import com.mogo.service.fragmentmanager.FragmentStackTransactionListener;
+
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -45,8 +40,8 @@ import java.util.List;
* {@link SearchConstants#SEARCH_TYPE_MULTI_HOME}
*/
public class SearchFragment extends BaseSearchFragment
- implements SearchView, View.OnClickListener, IMogoVoiceCmdCallBack,
- FragmentStackTransactionListener {
+ implements SearchView, View.OnClickListener, IMogoVoiceCmdCallBack,
+ FragmentStackTransactionListener {
public static final String TAG = "search";
@@ -72,14 +67,15 @@ public class SearchFragment extends BaseSearchFragment
private TextView tvEmpty;
@Override
- public void onAttach(Context context) {
- super.onAttach(context);
- if (context instanceof UiController) {
+ public void onAttach( Context context ) {
+ super.onAttach( context );
+ if ( context instanceof UiController ) {
}
}
- @Override public void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
+ @Override
+ public void onCreate( @Nullable Bundle savedInstanceState ) {
+ super.onCreate( savedInstanceState );
}
@Override
@@ -88,114 +84,117 @@ public class SearchFragment extends BaseSearchFragment
}
@Override
- public void onActivityCreated(@Nullable Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- SearchServiceHolder.INSTANCE.getMarkerManger().removeMarkers();
- SearchServiceHolder.INSTANCE.getMapUIController().showMyLocation(false);
+ public void onActivityCreated( @Nullable Bundle savedInstanceState ) {
+ super.onActivityCreated( savedInstanceState );
+ SearchApisHolder.getMarkerManager().removeMarkers();
+ SearchApisHolder.getUiControllerApis().showMyLocation( false );
}
- @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- super.onViewCreated(view, savedInstanceState);
- mSearchResult = view.findViewById(R.id.rv_navi_search);
- rvHistory = view.findViewById(R.id.rv_navi_history);
- rlHistory = view.findViewById(R.id.rl_navi_history);
+ @Override
+ public void onViewCreated( @NonNull View view, @Nullable Bundle savedInstanceState ) {
+ super.onViewCreated( view, savedInstanceState );
+ mSearchResult = view.findViewById( R.id.rv_navi_search );
+ rvHistory = view.findViewById( R.id.rv_navi_history );
+ rlHistory = view.findViewById( R.id.rl_navi_history );
LinearLayoutManager linearManager =
- new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
+ new LinearLayoutManager( getActivity(), LinearLayoutManager.VERTICAL, false );
- rvHistory.setLayoutManager(linearManager);
+ rvHistory.setLayoutManager( linearManager );
LinearLayoutManager linearLayoutManager =
- new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
- mSearchResult.setLayoutManager(linearLayoutManager);
+ new LinearLayoutManager( getActivity(), LinearLayoutManager.VERTICAL, false );
+ mSearchResult.setLayoutManager( linearLayoutManager );
- mPoiAdapter = new SearchPoiAdapter(getActivity(), new ArrayList<>());
- mSearchResult.setAdapter(mPoiAdapter);
+ mPoiAdapter = new SearchPoiAdapter( getActivity(), new ArrayList<>() );
+ mSearchResult.setAdapter( mPoiAdapter );
- mHistoryAdapter = new HistoryPoiAdapter(getActivity(), new ArrayList<>());
- rvHistory.setAdapter(mHistoryAdapter);
+ mHistoryAdapter = new HistoryPoiAdapter( getActivity(), new ArrayList<>() );
+ rvHistory.setAdapter( mHistoryAdapter );
- tvEmpty = findViewById(R.id.tv_navi_list_empty);
+ tvEmpty = findViewById( R.id.tv_navi_list_empty );
- findViewById(R.id.iv_navi_back).setOnClickListener(new View.OnClickListener() {
- @Override public void onClick(View v) {
- SearchServiceHolder.INSTANCE.getFragmentManager().pop();
+ findViewById( R.id.iv_navi_back ).setOnClickListener( v -> {
+ SearchApisHolder.getFragmentManager().pop();
+ } );
+
+ mHistoryAdapter.setOnClickListener( new View.OnClickListener() {
+ @Override
+ public void onClick( View v ) {
+ SearchApisHolder.getAnalyticsApis().track( "Navigation_History_destination", new HashMap< String, Object >() );
+ SearchPoi item = ( SearchPoi ) v.getTag( R.id.tag_item );
+ goHistory( item );
}
- });
+ } );
- mHistoryAdapter.setOnClickListener(new View.OnClickListener() {
- @Override public void onClick(View v) {
- SearchServiceHolder.INSTANCE.getAnalyticsManager()
- .track("Navigation_History_destination", new HashMap());
- SearchPoi item = (SearchPoi) v.getTag(R.id.tag_item);
- goHistory(item);
+ mPoiAdapter.setOnClickListener( new View.OnClickListener() {
+ @Override
+ public void onClick( View v ) {
+ MogoTip tag = ( MogoTip ) v.getTag( R.id.tag_position );
+ goResult( tag );
}
- });
+ } );
- mPoiAdapter.setOnClickListener(new View.OnClickListener() {
- @Override public void onClick(View v) {
- MogoTip tag = (MogoTip) v.getTag(R.id.tag_position);
- goResult(tag);
- }
- });
-
- findViewById(R.id.tv_navi_history_clear).setOnClickListener(new View.OnClickListener() {
- @Override public void onClick(View v) {
+ findViewById( R.id.tv_navi_history_clear ).setOnClickListener( new View.OnClickListener() {
+ @Override
+ public void onClick( View v ) {
mSearchPresenter.deleteAllCachedPoi();
}
- });
+ } );
- findViewById(R.id.tv_navi_setting).setOnClickListener(new View.OnClickListener() {
- @Override public void onClick(View v) {
+ findViewById( R.id.tv_navi_setting ).setOnClickListener( new View.OnClickListener() {
+ @Override
+ public void onClick( View v ) {
goSetting();
}
- });
+ } );
- findViewById(R.id.tv_navi_company).setOnClickListener(new View.OnClickListener() {
- @Override public void onClick(View v) {
+ findViewById( R.id.tv_navi_company ).setOnClickListener( new View.OnClickListener() {
+ @Override
+ public void onClick( View v ) {
AddressManager.INSTANCE.goCompany();
}
- });
+ } );
- findViewById(R.id.tv_navi_home).setOnClickListener(new View.OnClickListener() {
- @Override public void onClick(View v) {
+ findViewById( R.id.tv_navi_home ).setOnClickListener( new View.OnClickListener() {
+ @Override
+ public void onClick( View v ) {
AddressManager.INSTANCE.goHome();
}
- });
+ } );
- findViewById(R.id.tv_navi_wash).setOnClickListener(this);
- findViewById(R.id.tv_navi_toilet).setOnClickListener(this);
- findViewById(R.id.tv_navi_gas).setOnClickListener(this);
- findViewById(R.id.tv_navi_restaurant).setOnClickListener(this);
- findViewById(R.id.tv_navi_park).setOnClickListener(this);
+ findViewById( R.id.tv_navi_wash ).setOnClickListener( this );
+ findViewById( R.id.tv_navi_toilet ).setOnClickListener( this );
+ findViewById( R.id.tv_navi_gas ).setOnClickListener( this );
+ findViewById( R.id.tv_navi_restaurant ).setOnClickListener( this );
+ findViewById( R.id.tv_navi_park ).setOnClickListener( this );
- findViewById(R.id.tv_navi_search).setOnClickListener(new View.OnClickListener() {
- @Override public void onClick(View v) {
- SearchServiceHolder.INSTANCE.getAnalyticsManager()
- .track("Navigation_button_search", new HashMap());
-
- mSearchPresenter.startSearchPoiByInput(mSearchBox.getText().toString());
+ findViewById( R.id.tv_navi_search ).setOnClickListener( new View.OnClickListener() {
+ @Override
+ public void onClick( View v ) {
+ SearchApisHolder.getAnalyticsApis().track( "Navigation_button_search", new HashMap< String, Object >() );
+ mSearchPresenter.startSearchPoiByInput( mSearchBox.getText().toString() );
}
- });
+ } );
- registerVoidCmd();
+ registerVoidCmd();
}
- private void goResult(MogoTip tag) {
- SearchPoi searchPoi = EntityConvertUtils.tipToPoi(tag);
- if (tag.getPoint() == null) {
- goCategory(tag.getName());
+ private void goResult( MogoTip tag ) {
+ SearchPoi searchPoi = EntityConvertUtils.tipToPoi( tag );
+ if ( tag.getPoint() == null ) {
+ goCategory( tag.getName() );
} else {
- mSearchPresenter.insert(searchPoi);
+ mSearchPresenter.insert( searchPoi );
AddressManager.INSTANCE.calculatePath( tag.getPoint() );
}
}
private void goSetting() {
- SearchServiceHolder.INSTANCE.getAnalyticsManager().track("Navigation_button_setting", new HashMap());
+ SearchApisHolder.getAnalyticsApis().track( "Navigation_button_setting", new HashMap< String, Object >() );
AddressManager.INSTANCE.goSettings();
}
- private void goHistory(SearchPoi item) {
- MogoTip mogoTip = EntityConvertUtils.poi2MogoTip(item);
+ private void goHistory( SearchPoi item ) {
+ MogoTip mogoTip = EntityConvertUtils.poi2MogoTip( item );
AddressManager.INSTANCE.calculatePath( mogoTip.getPoint() );
}
@@ -211,99 +210,95 @@ public class SearchFragment extends BaseSearchFragment
private void registerVoidCmd() {
- AIAssist.getInstance(getContext())
- .registerUnWakeupCommand(GO_HOME_CMD, new String[] { "回家" }, this);
- AIAssist.getInstance(getContext())
- .registerUnWakeupCommand(GO_COMPANY_CMD, new String[] { "去公司" }, this);
- AIAssist.getInstance(getContext())
- .registerUnWakeupCommand(GAS_CMD, new String[] { "加油站" }, this);
- AIAssist.getInstance(getContext())
- .registerUnWakeupCommand(RESTAURANT_CMD, new String[] { "餐馆" }, this);
- AIAssist.getInstance(getContext())
- .registerUnWakeupCommand(TOILET_CMD, new String[] { "卫生间", "厕所" }, this);
- AIAssist.getInstance(getContext())
- .registerUnWakeupCommand(PARK_CMD, new String[] { "停车场" }, this);
- AIAssist.getInstance(getContext())
- .registerUnWakeupCommand(NAVI_SETTING_CMD, new String[] { "导航设置" }, this);
- AIAssist.getInstance(getContext())
- .registerUnWakeupCommand(CLEAN_CMD, new String[] { "清空历史目的地" }, this);
- AIAssist.getInstance(getContext())
- .registerUnWakeupCommand(WASH_CMD, new String[] { "洗车" }, this);
+ AIAssist.getInstance( getContext() )
+ .registerUnWakeupCommand( GO_HOME_CMD, new String[]{"回家"}, this );
+ AIAssist.getInstance( getContext() )
+ .registerUnWakeupCommand( GO_COMPANY_CMD, new String[]{"去公司"}, this );
+ AIAssist.getInstance( getContext() )
+ .registerUnWakeupCommand( GAS_CMD, new String[]{"加油站"}, this );
+ AIAssist.getInstance( getContext() )
+ .registerUnWakeupCommand( RESTAURANT_CMD, new String[]{"餐馆"}, this );
+ AIAssist.getInstance( getContext() )
+ .registerUnWakeupCommand( TOILET_CMD, new String[]{"卫生间", "厕所"}, this );
+ AIAssist.getInstance( getContext() )
+ .registerUnWakeupCommand( PARK_CMD, new String[]{"停车场"}, this );
+ AIAssist.getInstance( getContext() )
+ .registerUnWakeupCommand( NAVI_SETTING_CMD, new String[]{"导航设置"}, this );
+ AIAssist.getInstance( getContext() )
+ .registerUnWakeupCommand( CLEAN_CMD, new String[]{"清空历史目的地"}, this );
+ AIAssist.getInstance( getContext() )
+ .registerUnWakeupCommand( WASH_CMD, new String[]{"洗车"}, this );
}
@Override
- public void renderSearchPoiResult(List datums, boolean showDelete) {
- if (datums == null || datums.isEmpty()) {
- showEmpty(getString(R.string.search_empty));
+ public void renderSearchPoiResult( List< MogoTip > datums, boolean showDelete ) {
+ if ( datums == null || datums.isEmpty() ) {
+ showEmpty( getString( R.string.search_empty ) );
return;
}
showResult();
- mPoiAdapter.setDatas(datums);
+ mPoiAdapter.setDatas( datums );
registerResult();
}
- @Override public void showHistory(List datums) {
+ @Override
+ public void showHistory( List< SearchPoi > datums ) {
- if (datums == null || datums.isEmpty()) {
- showEmpty(getString(R.string.history_empty));
+ if ( datums == null || datums.isEmpty() ) {
+ showEmpty( getString( R.string.history_empty ) );
return;
}
showHistory();
- mHistoryAdapter.setDatas(datums);
+ mHistoryAdapter.setDatas( datums );
registerHistory();
}
private void registerHistory() {
- List datums = mHistoryAdapter.getList();
- for (int i = 0; i < datums.size(); i++) {
- String s = StringUtils.int2String(i + 1);
- AIAssist.getInstance(getContext())
- .registerUnWakeupCommand("history" + i,
- new String[] { "第" + s + "个", "第" + s + "条" }, this);
- if (cmds.contains("history" + i)) {
+ List< SearchPoi > datums = mHistoryAdapter.getList();
+ for ( int i = 0; i < datums.size(); i++ ) {
+ String s = StringUtils.int2String( i + 1 );
+ AIAssist.getInstance( getContext() )
+ .registerUnWakeupCommand( "history" + i,
+ new String[]{"第" + s + "个", "第" + s + "条"}, this );
+ if ( cmds.contains( "history" + i ) ) {
continue;
}
- cmds.add("history" + i);
+ cmds.add( "history" + i );
}
}
private void registerResult() {
- List datums = mPoiAdapter.getList();
- for (int i = 0; i < datums.size(); i++) {
- String s = StringUtils.int2String(i + 1);
- AIAssist.getInstance(getContext())
- .registerUnWakeupCommand("history" + i,
- new String[] { "第" + s + "个", "第" + s + "条" }, this);
- if (cmds.contains("history" + i)) {
+ List< MogoTip > datums = mPoiAdapter.getList();
+ for ( int i = 0; i < datums.size(); i++ ) {
+ String s = StringUtils.int2String( i + 1 );
+ AIAssist.getInstance( getContext() )
+ .registerUnWakeupCommand( "history" + i,
+ new String[]{"第" + s + "个", "第" + s + "条"}, this );
+ if ( cmds.contains( "history" + i ) ) {
continue;
}
- cmds.add("history" + i);
+ cmds.add( "history" + i );
}
}
- private List cmds = new ArrayList();
+ private List< String > cmds = new ArrayList< String >();
@Override
public int getSearchType() {
return mSearchType;
}
- @Override public void startJumpAnimation() {
-
- }
-
-
/**
* 退出搜索,进行清理
*/
private void exitSearch() {
- switch (mSearchType) {
+ switch ( mSearchType ) {
case SearchConstants.SEARCH_TYPE_COMMON:
try {
- } catch (Exception e) {
+ } catch ( Exception e ) {
e.printStackTrace();
}
break;
@@ -313,97 +308,79 @@ public class SearchFragment extends BaseSearchFragment
}
private void showResult() {
- rlHistory.setVisibility(View.GONE);
- mSearchResult.setVisibility(View.VISIBLE);
- tvEmpty.setVisibility(View.GONE);
+ rlHistory.setVisibility( View.GONE );
+ mSearchResult.setVisibility( View.VISIBLE );
+ tvEmpty.setVisibility( View.GONE );
}
private void showHistory() {
- rlHistory.setVisibility(View.VISIBLE);
- mSearchResult.setVisibility(View.GONE);
- tvEmpty.setVisibility(View.GONE);
+ rlHistory.setVisibility( View.VISIBLE );
+ mSearchResult.setVisibility( View.GONE );
+ tvEmpty.setVisibility( View.GONE );
}
- private void showEmpty(String str) {
- rlHistory.setVisibility(View.GONE);
- tvEmpty.setText(str);
- mSearchResult.setVisibility(View.GONE);
- tvEmpty.setVisibility(View.VISIBLE);
+ private void showEmpty( String str ) {
+ rlHistory.setVisibility( View.GONE );
+ tvEmpty.setText( str );
+ mSearchResult.setVisibility( View.GONE );
+ tvEmpty.setVisibility( View.VISIBLE );
}
- private boolean isHistory(){
- return rlHistory.getVisibility()==View.VISIBLE;
+ private boolean isHistory() {
+ return rlHistory.getVisibility() == View.VISIBLE;
}
/**
* 类别
*/
- @Override public void onClick(View v) {
- TextView category = (TextView) v;
+ @Override
+ public void onClick( View v ) {
+ TextView category = ( TextView ) v;
String text = category.getText().toString();
- goCategory(text);
+ goCategory( text );
}
- private void goCategory(String text) {
+ private void goCategory( String text ) {
AddressManager.INSTANCE.categorySearch( text );
}
- @Override public void onResume() {
+ @Override
+ public void onResume() {
super.onResume();
}
- @Override public void onPause() {
+ @Override
+ public void onPause() {
super.onPause();
}
@Override
public void onDestroyView() {
super.onDestroyView();
- SearchServiceHolder.INSTANCE.getMapUIController().showMyLocation(true);
-// moveMapToRight();
+ SearchApisHolder.getUiControllerApis().showMyLocation( true );
unRegisterVoice();
}
private void unRegisterVoice() {
- //private static final String GO_HOME_CMD="goHome";
- //private static final String GO_COMPANY_CMD="goCompany";
- //private static final String GAS_CMD="gas";
- //private static final String RESTAURANT_CMD="restaurant";
- //private static final String TOILET_CMD="toilet";
- //private static final String PARK_CMD="park";
- //private static final String WASH_CMD="wash";
- //private static final String NAVI_SETTING_CMD="setting";
- //private static final String CLEAN_CMD="clean";
- //private static final String BACK_CMD="back";
- AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(GO_HOME_CMD);
- AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(GO_COMPANY_CMD);
- AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(GAS_CMD);
- AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(RESTAURANT_CMD);
- AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(TOILET_CMD);
- AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(PARK_CMD);
- AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(WASH_CMD);
- AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(NAVI_SETTING_CMD);
- AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(CLEAN_CMD);
- for (String cmd : cmds) {
- AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(cmd);
+ AIAssist.getInstance( getContext() ).unregisterUnWakeupCommand( GO_HOME_CMD );
+ AIAssist.getInstance( getContext() ).unregisterUnWakeupCommand( GO_COMPANY_CMD );
+ AIAssist.getInstance( getContext() ).unregisterUnWakeupCommand( GAS_CMD );
+ AIAssist.getInstance( getContext() ).unregisterUnWakeupCommand( RESTAURANT_CMD );
+ AIAssist.getInstance( getContext() ).unregisterUnWakeupCommand( TOILET_CMD );
+ AIAssist.getInstance( getContext() ).unregisterUnWakeupCommand( PARK_CMD );
+ AIAssist.getInstance( getContext() ).unregisterUnWakeupCommand( WASH_CMD );
+ AIAssist.getInstance( getContext() ).unregisterUnWakeupCommand( NAVI_SETTING_CMD );
+ AIAssist.getInstance( getContext() ).unregisterUnWakeupCommand( CLEAN_CMD );
+ for ( String cmd : cmds ) {
+ AIAssist.getInstance( getContext() ).unregisterUnWakeupCommand( cmd );
}
}
- //@Override public void onPause() {
- // super.onPause();
- // unRegisterVoice();
- //}
- //
- //@Override public void onResume() {
- // super.onResume();
- // registerVoidCmd();
- // registerHistory();
- //}
-
- @Override public void onHiddenChanged(boolean hidden) {
- super.onHiddenChanged(hidden);
- if (hidden) {
+ @Override
+ public void onHiddenChanged( boolean hidden ) {
+ super.onHiddenChanged( hidden );
+ if ( hidden ) {
unRegisterVoice();
} else {
registerVoidCmd();
@@ -411,36 +388,37 @@ public class SearchFragment extends BaseSearchFragment
}
}
- @Override public void onCmdSelected(String cmd) {
- if (!TextUtils.isEmpty(cmd) && cmd.startsWith("history")) {
- String index = cmd.substring(7);
- Integer integer = Integer.valueOf(index);
- if (isHistory()){
- if (integer < mHistoryAdapter.getItemCount()) {
- SearchPoi item = mHistoryAdapter.getItem(integer);
- goHistory(item);
- }
- }else {
- if (integer < mPoiAdapter.getItemCount()) {
- MogoTip item = mPoiAdapter.getItem(integer);
- goResult(item);
+ @Override
+ public void onCmdSelected( String cmd ) {
+ if ( !TextUtils.isEmpty( cmd ) && cmd.startsWith( "history" ) ) {
+ String index = cmd.substring( 7 );
+ Integer integer = Integer.valueOf( index );
+ if ( isHistory() ) {
+ if ( integer < mHistoryAdapter.getItemCount() ) {
+ SearchPoi item = mHistoryAdapter.getItem( integer );
+ goHistory( item );
+ }
+ } else {
+ if ( integer < mPoiAdapter.getItemCount() ) {
+ MogoTip item = mPoiAdapter.getItem( integer );
+ goResult( item );
}
}
return;
}
- switch (cmd) {
+ switch ( cmd ) {
case CLEAN_CMD:
mSearchPresenter.deleteAllCachedPoi();
- AIAssist.getInstance(getContext())
- .speakQAndACmd(getString(R.string.notice_clean_history),
- new String[] { "确定","立即清空" }, new String[] { "取消" }, this);
+ AIAssist.getInstance( getContext() )
+ .speakQAndACmd( getString( R.string.notice_clean_history ),
+ new String[]{"确定", "立即清空"}, new String[]{"取消"}, this );
break;
case GAS_CMD:
- goCategory(getString(R.string.navi_gas));
+ goCategory( getString( R.string.navi_gas ) );
break;
case GO_COMPANY_CMD:
@@ -455,20 +433,20 @@ public class SearchFragment extends BaseSearchFragment
break;
case PARK_CMD:
- goCategory(getString(R.string.navi_park));
+ goCategory( getString( R.string.navi_park ) );
break;
case RESTAURANT_CMD:
- goCategory(getString(R.string.navi_restrant));
+ goCategory( getString( R.string.navi_restrant ) );
break;
case TOILET_CMD:
- goCategory(getString(R.string.navi_toilet));
+ goCategory( getString( R.string.navi_toilet ) );
break;
case WASH_CMD:
- goCategory(getString(R.string.navi_wash));
+ goCategory( getString( R.string.navi_wash ) );
break;
@@ -477,26 +455,31 @@ public class SearchFragment extends BaseSearchFragment
}
}
- @Override public void onCmdAction(String speakText) {
+ @Override
+ public void onCmdAction( String speakText ) {
mSearchPresenter.hideDialog();
mSearchPresenter.deleteAllCachedPoiImpl();
}
- @Override public void onCmdCancel(String speakText) {
+ @Override
+ public void onCmdCancel( String speakText ) {
mSearchPresenter.hideDialog();
}
- @Override public void onSpeakEnd(String speakText) {
+ @Override
+ public void onSpeakEnd( String speakText ) {
}
- @Override public void onSpeakSelectTimeOut(String speakText) {
+ @Override
+ public void onSpeakSelectTimeOut( String speakText ) {
}
- @Override public void onTransaction(int size) {
+ @Override
+ public void onTransaction( int size ) {
}
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchPresenter.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchPresenter.java
index c50fde48ec..d6ebbb5cfc 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchPresenter.java
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchPresenter.java
@@ -1,39 +1,36 @@
package com.mogo.module.navi.ui.search;
-import android.app.AlertDialog;
import android.text.Editable;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
+
import androidx.annotation.NonNull;
import androidx.lifecycle.LifecycleOwner;
+
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.mvp.Presenter;
import com.mogo.map.location.MogoLocation;
-import com.mogo.map.search.geo.MogoPoiItem;
import com.mogo.map.search.inputtips.IMogoInputtipsListener;
import com.mogo.map.search.inputtips.IMogoInputtipsSearch;
import com.mogo.map.search.inputtips.MogoTip;
import com.mogo.map.search.inputtips.query.MogoInputtipsQuery;
-import com.mogo.map.search.poisearch.IMogoPoiSearch;
-import com.mogo.map.search.poisearch.IMogoPoiSearchListener;
-import com.mogo.map.search.poisearch.MogoPoiResult;
-import com.mogo.map.search.poisearch.query.MogoPoiSearchQuery;
import com.mogo.module.common.TextWatcherAdapter;
import com.mogo.module.navi.R;
import com.mogo.module.navi.bean.EntityConvertUtils;
import com.mogo.module.navi.bean.SearchPoi;
import com.mogo.module.navi.constants.DataConstants;
-import com.mogo.module.navi.constants.SearchServiceHolder;
+import com.mogo.module.navi.constants.SearchApisHolder;
import com.mogo.module.navi.database.AppDataBase;
import com.mogo.module.navi.dialog.NoticeDialog;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.map.IMogoMapService;
+
+import java.util.List;
+
import io.reactivex.Observable;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
-import io.reactivex.Observer;
-import io.reactivex.Scheduler;
import io.reactivex.Single;
import io.reactivex.SingleEmitter;
import io.reactivex.android.schedulers.AndroidSchedulers;
@@ -41,7 +38,6 @@ import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers;
-import java.util.List;
/**
* @author congtaowang
@@ -105,8 +101,7 @@ public class SearchPresenter extends Presenter {
MogoInputtipsQuery mogoInputtipsQuery = new MogoInputtipsQuery();
mogoInputtipsQuery.setKeyword(keyword);
- MogoLocation lastKnowLocation =
- SearchServiceHolder.INSTANCE.getLocationClient().getLastKnowLocation();
+ MogoLocation lastKnowLocation = SearchApisHolder.getLocationClientApis().getLastKnowLocation();
mogoInputtipsQuery.setCity(lastKnowLocation.getCityName());
mogoInputtipsQuery.setCityLimit(true);
IMogoInputtipsSearch inputtipsSearch =
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchUtils.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchUtils.java
deleted file mode 100644
index 976a5e209e..0000000000
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchUtils.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.mogo.module.navi.ui.search;
-
-/**
- * @author congtaowang
- * @since 2019-12-08
- *
- * 搜索工具类
- */
-public class SearchUtils {
-
- /**
- * @param searchType
- * @return
- */
- public static int checkAndResetSearchType( int searchType ) {
- switch ( searchType ) {
- case SearchConstants.SEARCH_TYPE_COMMON:
- case SearchConstants.SEARCH_TYPE_MULTI_HOME:
- case SearchConstants.SEARCH_TYPE_MULTI_COMPANY:
- break;
- default:
- searchType = SearchConstants.SEARCH_TYPE_COMMON;
- break;
- }
- return searchType;
- }
-
- public static String getSearchTypeActionName( int searchType ) {
- switch ( searchType ) {
- case SearchConstants.SEARCH_TYPE_COMMON:
- return null;
- case SearchConstants.SEARCH_TYPE_MULTI_HOME:
- return "设为家";
- case SearchConstants.SEARCH_TYPE_MULTI_COMPANY:
- return "设为公司";
- }
- return null;
- }
-}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchView.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchView.java
index 633435465e..0153a600ef 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchView.java
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchView.java
@@ -1,9 +1,11 @@
package com.mogo.module.navi.ui.search;
import android.widget.EditText;
+
import com.mogo.commons.mvp.IView;
import com.mogo.map.search.inputtips.MogoTip;
import com.mogo.module.navi.bean.SearchPoi;
+
import java.util.List;
/**
@@ -20,25 +22,11 @@ public interface SearchView extends IView {
* @param datums
* @param showDelete 是否显示清空历史记录项
*/
- void renderSearchPoiResult(List datums, boolean showDelete);
+ void renderSearchPoiResult( List< MogoTip > datums, boolean showDelete );
- void showHistory(List datums);
+ void showHistory( List< SearchPoi > datums );
int getSearchType();
-
-
- ///**
- // * 显示逆地理位置编码结果
- // *
- // * @param address
- // */
- //void renderChoicePointResult(RegeocodeAddress address);
-
- /**
- * 选点完毕后marker动画
- */
- void startJumpAnimation();
-
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt
index ac06e82a34..1c2ccc322d 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt
@@ -4,25 +4,19 @@ import android.os.Bundle
import android.view.View
import android.widget.CompoundButton
import android.widget.CompoundButton.OnCheckedChangeListener
-import android.widget.CompoundButton.VISIBLE
import android.widget.SeekBar
import android.widget.SeekBar.OnSeekBarChangeListener
-import com.alibaba.android.arouter.facade.annotation.Route
import com.mogo.commons.debug.DebugConfig
import com.mogo.commons.voice.AIAssist
-import com.mogo.map.constants.BroadcastMode
import com.mogo.map.uicontroller.EnumMapUI
-import com.mogo.module.common.MogoModulePaths
import com.mogo.module.navi.R
import com.mogo.module.navi.bean.SearchPoi
import com.mogo.module.navi.constants.DataConstants
-import com.mogo.module.navi.constants.SearchServiceHolder
-import com.mogo.module.navi.cp.AddressHelper
+import com.mogo.module.navi.constants.SearchApisHolder
import com.mogo.module.navi.manager.AddressManager
import com.mogo.module.navi.manager.SettingManager
import com.mogo.module.navi.manager.VolumeManager
import com.mogo.module.navi.ui.base.BaseFragment
-import com.mogo.utils.UiThreadHandler
import kotlinx.android.synthetic.main.fragment_navi_setting.*
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
@@ -66,7 +60,7 @@ class NaviSettingFragment : BaseFragment(), OnCheckedChangeListener {
}
if (isChecked) {
- SearchServiceHolder.analyticsManager.track("Navigation_preference", mapOf("type" to type))
+ SearchApisHolder.getAnalyticsApis().track("Navigation_preference", mapOf("type" to type))
}
}
@@ -109,7 +103,7 @@ class NaviSettingFragment : BaseFragment(), OnCheckedChangeListener {
private fun initEvent() {
rl_navi_setting_title.setOnClickListener {
- SearchServiceHolder.fragmentManager.pop()
+ SearchApisHolder.getFragmentManager().pop()
}
iv_sound_plus.setOnClickListener {
VolumeManager.getInstance(context).incVolume()
@@ -134,8 +128,7 @@ class NaviSettingFragment : BaseFragment(), OnCheckedChangeListener {
sb_navi_volume_progress.setOnSeekBarChangeListener(object : OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
if (fromUser) {
- VolumeManager.getInstance(context)
- .setSysVolume(progress)
+ VolumeManager.getInstance(context).setSysVolume(progress)
SettingManager.volume = sb_navi_volume_progress.progress
}
@@ -156,39 +149,37 @@ class NaviSettingFragment : BaseFragment(), OnCheckedChangeListener {
SettingManager.mapType = checkedId
when (checkedId) {
R.id.rb_navi_day -> {
- SearchServiceHolder.getMapUIController().changeMapMode(EnumMapUI.Type_Light)
+ SearchApisHolder.getUiControllerApis().changeMapMode(EnumMapUI.Type_Light)
}
R.id.rb_navi_night -> {
- SearchServiceHolder.getMapUIController().changeMapMode(EnumMapUI.Type_Night)
+ SearchApisHolder.getUiControllerApis().changeMapMode(EnumMapUI.Type_Night)
}
R.id.rb_navi_auto -> {
- SearchServiceHolder.getMapUIController().changeMapMode(EnumMapUI.Type_AUTO_LIGHT_Night)
+ SearchApisHolder.getUiControllerApis().changeMapMode(EnumMapUI.Type_AUTO_LIGHT_Night)
}
}
}
rg_navi_sound_type.setOnCheckedChangeListener { group, checkedId ->
- SettingManager.voiceStyle = checkedId
- SearchServiceHolder.getNavi().setBroadcastMode(
- if (checkedId == R.id.rb_navi_detail) BroadcastMode.DETAIL else BroadcastMode.CONCISE
- )
-
- if (checkedId == R.id.rb_navi_detail) {
- SearchServiceHolder.analyticsManager.track("Navigation_guide_type", mapOf("type" to 1))
- } else {
- SearchServiceHolder.analyticsManager.track("Navigation_guide_type", mapOf("type" to 2))
+ when (checkedId) {
+ R.id.rb_navi_detail -> {
+ SearchApisHolder.getSettingManager().speakDetail()
+ SearchApisHolder.getAnalyticsApis().track("Navigation_guide_type", mapOf("type" to 1))
+ }
+ R.id.rb_navi_draft -> {
+ SearchApisHolder.getSettingManager().speakDraft()
+ SearchApisHolder.getAnalyticsApis().track("Navigation_guide_type", mapOf("type" to 2))
+ }
}
}
aimlessModeGroup.setOnCheckedChangeListener { group, checkedId ->
-
- SettingManager.setAimlessMode(checkedId)
- when (checkedId){
+ when (checkedId) {
R.id.aimlessModeClose -> {
- SearchServiceHolder.getNavi().setAimlessModeStatus(false)
+ SearchApisHolder.getSettingManager().closeAimlessMode()
AIAssist.getInstance(mContext).speakTTSVoice("已为您关闭巡航模式")
}
R.id.aimlessModeOpen -> {
- SearchServiceHolder.getNavi().setAimlessModeStatus(true)
+ SearchApisHolder.getSettingManager().openAimlessMode()
AIAssist.getInstance(mContext).speakTTSVoice("已为您开启巡航模式")
}
}
@@ -196,24 +187,24 @@ class NaviSettingFragment : BaseFragment(), OnCheckedChangeListener {
tv_navi_clear_home_address.setOnClickListener {
- AddressManager.deleteHome(context!!)
+ AddressManager.deleteHome()
clearHome()
}
tv_navi_clear_company_address.setOnClickListener {
- AddressManager.deleteCompany(context!!)
+ AddressManager.deleteCompany()
clearCompany()
}
tv_navi_company_address.setOnClickListener {
if (!AddressManager.hasCompany()) {
- AddressManager.goCompany()
+ SearchApisHolder.getSearchManager().goCompany()
}
}
tv_navi_home_address.setOnClickListener {
if (!AddressManager.hasHome()) {
- AddressManager.goHome()
+ SearchApisHolder.getSearchManager().goHome()
}
}
@@ -231,9 +222,9 @@ class NaviSettingFragment : BaseFragment(), OnCheckedChangeListener {
SettingManager.setGpsSimulator(isChecked)
if (isChecked) {
- SearchServiceHolder.gpsSimulator.open()
+ SearchApisHolder.getGpsSimulatorManager().open()
} else {
- SearchServiceHolder.gpsSimulator.close()
+ SearchApisHolder.getGpsSimulatorManager().close()
}
}
tb_navi.isChecked = SettingManager.isMonitor()
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt
index 099248bac1..b6eb204bd9 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt
@@ -9,6 +9,7 @@ import com.mogo.map.MogoLatLng
import com.mogo.map.listener.IMogoMapListener
import com.mogo.map.marker.IMogoMarker
import com.mogo.map.marker.MogoMarkerOptions
+import com.mogo.map.search.geo.IMogoGeoSearch
import com.mogo.map.search.geo.IMogoGeoSearchListener
import com.mogo.map.search.geo.MogoGeocodeResult
import com.mogo.map.search.geo.MogoRegeocodeResult
@@ -20,7 +21,7 @@ import com.mogo.module.navi.bean.EntityConvertUtils
import com.mogo.module.navi.bean.SearchPoi
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.constants.SearchApisHolder
import com.mogo.module.navi.cp.AddressHelper
import com.mogo.module.navi.database.AppDataBase
import com.mogo.module.navi.manager.AddressManager
@@ -37,6 +38,8 @@ import kotlinx.android.synthetic.main.fragment_setting_address.*
* 2020-01-07.
*/
class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener {
+
+
override fun onRegeocodeSearched(regeocodeResult: MogoRegeocodeResult?) {
et_navi_search.setText(regeocodeResult?.regeocodeAddress?.formatAddress)
var formatAddress = regeocodeResult?.regeocodeAddress?.formatAddress
@@ -58,6 +61,8 @@ class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener {
private var style: Int = DataConstants.TYPE_HOME_ADDRESS
var addMarker: IMogoMarker? = null
+ private lateinit var mGeoSearch: IMogoGeoSearch
+
private var selectPoi: SearchPoi? = null
private var mapListener: IMogoMapListener = object : MogoMapListenerAdapter() {
override fun onMapChanged(
@@ -69,7 +74,7 @@ class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener {
selectPoi = EntityConvertUtils.geoToPoi(latLng?.lat ?: 0.0, latLng?.lng ?: 0.0, style)
var mogoRegeocodeQuery = MogoRegeocodeQuery()
mogoRegeocodeQuery.point = latLng
- SearchServiceHolder.getGeoSearcher().getFromLocationAsyn(mogoRegeocodeQuery)
+ mGeoSearch.getFromLocationAsyn(mogoRegeocodeQuery)
addMarker?.startJumpAnimation(
150f,
600,
@@ -86,12 +91,13 @@ class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- style = arguments?.getInt(AMapConstants.KEY_SET_HOME_COMPONY)
- ?: DataConstants.TYPE_HOME_ADDRESS
- SearchServiceHolder.listenerCenter.registerMogoMapListener(AMapConstants.PATH_FRAGMENT_SETTING_HOME, mapListener)
- SearchServiceHolder.getMapUIController().showMyLocation(false)
- SearchServiceHolder.getGeoSearcher().setGeoSearchListener(this)
- SearchServiceHolder.getMarkerManger().removeMarkers()
+ style = arguments?.getInt(AMapConstants.KEY_SET_HOME_COMPONY) ?: DataConstants.TYPE_HOME_ADDRESS
+ SearchApisHolder.getRegisterCenterApis().registerMogoMapListener(AMapConstants.PATH_FRAGMENT_SETTING_HOME, mapListener)
+ SearchApisHolder.getUiControllerApis().showMyLocation(false)
+ SearchApisHolder.getMarkerManager().removeMarkers()
+
+ mGeoSearch = SearchApisHolder.getMapServiceApis().getGeoSearch(context)
+ mGeoSearch.setGeoSearchListener(this)
}
override fun getLayoutId(): Int {
@@ -119,7 +125,7 @@ class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener {
}
iv_navi_back.setOnClickListener {
- SearchServiceHolder.fragmentManager.pop()
+ SearchApisHolder.getFragmentManager().pop()
}
tv_set_as_home.setOnClickListener {
if (selectPoi == null) {
@@ -127,12 +133,12 @@ class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener {
return@setOnClickListener
}
insert(selectPoi!!)
- SearchServiceHolder.fragmentManager.pop()
+ SearchApisHolder.getFragmentManager().pop()
}
et_navi_search.isEnabled = false
et_navi_search.setText(getString(string.drag_map_to_choose))
- var location = SearchServiceHolder.getMapUIController().windowCenterLocation
+ var location = SearchApisHolder.getUiControllerApis().windowCenterLocation
UiThreadHandler.postDelayed({
if (!isAdded) {
@@ -145,10 +151,9 @@ class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener {
.owner(TAG)
.anchor(0.5f, 1f)
.longitude(location?.lng ?: 0.0)
- addMarker = SearchServiceHolder.getMarkerManger()
- .addMarker(AMapConstants.PATH_FRAGMENT_SETTING_HOME, options)
+ addMarker = SearchApisHolder.getMarkerManager().addMarker(AMapConstants.PATH_FRAGMENT_SETTING_HOME, options)
- var locationPointInScreen = SearchServiceHolder.getMapUIController().getLocationPointInScreen(location)
+ var locationPointInScreen = SearchApisHolder.getUiControllerApis().getLocationPointInScreen(location)
addMarker?.setPositionByPixels(locationPointInScreen)
}, 500L)
}
@@ -169,9 +174,7 @@ class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener {
override fun onDestroyView() {
super.onDestroyView()
- SearchServiceHolder.listenerCenter.unregisterMogoMapListener(
- AMapConstants.PATH_FRAGMENT_SETTING_HOME
- )
+ SearchApisHolder.getRegisterCenterApis().unregisterMogoMapListener(AMapConstants.PATH_FRAGMENT_SETTING_HOME)
addMarker?.destroy()
}
diff --git a/modules/mogo-module-search/src/main/res/layout/activity_navi.xml b/modules/mogo-module-search/src/main/res/layout/activity_navi.xml
deleted file mode 100644
index dbec94d82e..0000000000
--- a/modules/mogo-module-search/src/main/res/layout/activity_navi.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java
index a1774a2d4a..b2f2391ff6 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java
@@ -26,6 +26,7 @@ import com.mogo.service.map.IMogoMapService;
import com.mogo.service.module.IMogoActionManager;
import com.mogo.service.module.IMogoRegisterCenter;
import com.mogo.service.statusmanager.IMogoStatusManager;
+import com.mogo.utils.logger.Logger;
import com.zhidao.carchattingprovider.CallChattingProviderConstant;
/**
@@ -195,11 +196,9 @@ public class MarkerServiceHandler {
/**
* 对指定类型高亮处理
* 建议使用
- *
- * @see MapMarkerManager#highlightedMarker(String, boolean)
*/
@Deprecated
public static void highlightedMarker( String typeTag ) {
- getMapMarkerManager().highlightedMarker( typeTag, false );
+ Logger.w( TAG, "do not invoke this method any more." );
}
}
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..ed01a0a9e2 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;
@@ -509,13 +493,15 @@ public class MogoServices implements IMogoMapListener,
if ( mStatusManager.isUserInteracted() ) {
mLastCustomRefreshCenterLocation = latLng;
mLastZoomLevel = zoom;
+ Logger.d( TAG, "user interacted" );
return;
}
// v2x // adas 状态下不做任何操作
- if ( mStatusManager.isADASShow() ) {
+ if ( mStatusManager.isV2XShow() ) {
mLastCustomRefreshCenterLocation = latLng;
mLastZoomLevel = zoom;
+ Logger.d( TAG, "user v2x show" );
return;
}
@@ -523,6 +509,7 @@ public class MogoServices implements IMogoMapListener,
if ( mStatusManager.isSearchUIShow() ) {
mLastCustomRefreshCenterLocation = latLng;
mLastZoomLevel = zoom;
+ Logger.d( TAG, "user search Ui show" );
return;
}
@@ -571,7 +558,7 @@ public class MogoServices implements IMogoMapListener,
}
float distance = Utils.calculateLineDistance( latLng, mLastCustomRefreshCenterLocation );
Logger.d( TAG, "move distance = %s, factor = %s", distance, factor );
- return distance > factor;
+ return distance > factor / 2;
} catch ( Exception e ) {
Logger.e( TAG, e, "warming. " );
return false;
@@ -585,7 +572,7 @@ public class MogoServices implements IMogoMapListener,
@Override
public void onCarLocationChanged2( Location latLng ) {
- if ( mStatusManager.isADASShow() ) {
+ if ( mStatusManager.isV2XShow() ) {
return;
}
@@ -637,28 +624,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 +640,7 @@ public class MogoServices implements IMogoMapListener,
} else {
// 搜索后,打开打点策略
if ( mAutoRefreshCallback != null ) {
- mAutoRefreshCallback.onSuccess(null);
+ mAutoRefreshCallback.onSuccess( null );
}
}
break;
@@ -722,15 +687,13 @@ public class MogoServices implements IMogoMapListener,
private void onAdasOn() {
// ADAS 时,不在自动刷新打点策略
stopAutoRefreshStrategy();
- // 清除所有的打点信息记录
- MarkerServiceHandler.getMapMarkerManager().alreadySmallMarker.clear();
}
private void onAdasClosed() {
refreshStrategy();
// ADAS关闭后,打开打点策略
if ( mAutoRefreshCallback != null ) {
- mAutoRefreshCallback.onSuccess(null);
+ mAutoRefreshCallback.onSuccess( null );
}
}
@@ -756,21 +719,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 ) {
@@ -803,10 +751,13 @@ public class MogoServices implements IMogoMapListener,
mStatusManager.setADASUIShow( ServiceConst.TYPE, status == 1 );
} else if ( Intent.ACTION_POWER_CONNECTED.equals( command ) ) {
mStatusManager.setAccStatus( ServiceConst.TYPE, true );
+ Logger.d( TAG, "acc status: %s", true );
} else if ( Intent.ACTION_POWER_DISCONNECTED.equals( command ) ) {
mStatusManager.setAccStatus( ServiceConst.TYPE, false );
+ Logger.d( TAG, "acc status: %s", false );
} else if ( MogoReceiver.ACTION_NWD_ACC.equals( command ) ) {
int state = intent.getByteExtra( MogoReceiver.PARAM_ACC_STATUS, ( byte ) 0 );
+ Logger.d( TAG, "acc status: %s", state == 1 );
mStatusManager.setAccStatus( ServiceConst.TYPE, state == 1 );
} else if ( MogoReceiver.ACTION_VOICE_UI.equals( command ) ) {
String val = intent.getStringExtra( MogoReceiver.PARRAM_WAKE_STATUS );
@@ -816,9 +767,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 +860,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 +872,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 +885,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 +899,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/ServiceConst.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java
index 304c284b98..41282ef6bc 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java
@@ -85,7 +85,7 @@ public class ServiceConst {
/**
* 20 s
*/
- public static final int DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT = 20 * 1_000;
+ public static final int DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT = 30 * 1_000;
/**
* 所有卡片显示的每类点的最大数据量
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java
index 108ba2ec75..ff9a355949 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java
@@ -9,9 +9,20 @@ import android.view.View;
import android.widget.TextView;
import com.mogo.commons.debug.DebugConfig;
+import com.mogo.map.MogoLatLng;
+import com.mogo.map.search.geo.IMogoGeoSearch;
+import com.mogo.map.search.geo.IMogoGeoSearchListener;
+import com.mogo.map.search.geo.MogoGeocodeResult;
+import com.mogo.map.search.geo.MogoRegeocodeResult;
+import com.mogo.map.search.geo.query.MogoRegeocodeQuery;
+import com.mogo.module.common.dialog.WMDialog;
import com.mogo.module.service.MarkerServiceHandler;
+import com.mogo.module.service.MogoServiceProvider;
+import com.mogo.module.service.R;
import com.mogo.service.entrance.ButtonIndex;
import com.mogo.utils.TipToast;
+import com.mogo.utils.logger.Logger;
+import com.mogo.utils.network.utils.GsonUtil;
/**
* @author congtaowang
@@ -71,10 +82,10 @@ public class MockIntentHandler implements IntentHandler {
button11.setVisibility( View.VISIBLE );
button11.setBackgroundColor( Color.RED );
button11.setOnClickListener( view -> {
- Intent intent1 = new Intent( );
+ Intent intent1 = new Intent();
intent1.setAction( Intent.ACTION_VIEW );
intent1.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
- intent1.setData( Uri.parse("wechathelper://com.zhidao.wechathelper/main/transform?type=navi&lon=116.327007&lat=39.977639&from=os2.0") );
+ intent1.setData( Uri.parse( "wechathelper://com.zhidao.wechathelper/main/transform?type=navi&lon=116.327007&lat=39.977639&from=os2.0" ) );
try {
view.setOnClickListener( null );
view.getContext().startActivity( intent1 );
@@ -89,6 +100,40 @@ public class MockIntentHandler implements IntentHandler {
float bearing = intent.getFloatExtra( "bearing", 0 );
MarkerServiceHandler.getMapUIController().changeBearing( bearing );
break;
+ case 9:
+ new WMDialog.Builder( context )
+ .setOkButton( "确认", ( dlg, which ) -> {
+ dlg.dismiss();
+ } )
+ .setCancelButton( "取消", ( dlg, which ) -> {
+ dlg.dismiss();
+ } )
+ .setContent( "内容内容内容内容内容内容内容内容" )
+ .build()
+ .show();
+ break;
+ case 10:
+ IMogoGeoSearch geoSearch = MarkerServiceHandler.getMapService().getGeoSearch( context );
+ geoSearch.setGeoSearchListener( new IMogoGeoSearchListener() {
+ @Override
+ public void onRegeocodeSearched( MogoRegeocodeResult regeocodeResult ) {
+ Logger.d( TAG, GsonUtil.jsonFromObject( regeocodeResult ) );
+ }
+
+ @Override
+ public void onGeocodeSearched( MogoGeocodeResult geocodeResult ) {
+
+ }
+ } );
+ MogoRegeocodeQuery query = new MogoRegeocodeQuery();
+ query.setLatlngType( "autonavi" );
+ query.setPoint( new MogoLatLng( intent.getFloatExtra( "lat", 39.917366f ), intent.getFloatExtra( "lon", 116.39962f ) ) );
+ query.setRadius( 1000 );
+ geoSearch.getFromLocationAsyn( query );
+ break;
+ case 11:
+ MarkerServiceHandler.getADASController().setSettingStatus( intent.getBooleanExtra( "status", false ) );
+ break;
}
}
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java
index d272ae9046..bb991fdae9 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java
@@ -12,6 +12,7 @@ import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.mogo.map.marker.MogoMarkerOptions;
+import com.mogo.module.common.entity.MarkerExploreWay;
import com.mogo.module.common.entity.MarkerNoveltyInfo;
import com.mogo.module.common.entity.MarkerOnlineCar;
import com.mogo.module.common.entity.MarkerPoiTypeEnum;
@@ -36,193 +37,145 @@ public class MapMarkerInfoView extends MapMarkerBaseView {
private ConstraintLayout clMarkerContent;
private ImageView ivReverseTriangle;
- public MapMarkerInfoView(Context context) {
- super(context);
+ public MapMarkerInfoView( Context context ) {
+ super( context );
}
- public MapMarkerInfoView(Context context, @Nullable AttributeSet attrs) {
- super(context, attrs);
+ public MapMarkerInfoView( Context context, @Nullable AttributeSet attrs ) {
+ super( context, attrs );
}
- public MapMarkerInfoView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
+ public MapMarkerInfoView( Context context, @Nullable AttributeSet attrs, int defStyleAttr ) {
+ super( context, attrs, defStyleAttr );
}
- public MapMarkerInfoView(Context context, MarkerShowEntity markerShowEntity, MogoMarkerOptions options) {
- super(context);
+ public MapMarkerInfoView( Context context, MarkerShowEntity markerShowEntity, MogoMarkerOptions options ) {
+ super( context );
mOptions = options;
- updateView(markerShowEntity);
+ updateView( markerShowEntity );
}
- protected void initView(Context context) {
- LayoutInflater.from(context).inflate(R.layout.view_map_marker_info, this);
- ivUserHead = findViewById(R.id.ivUserHead);
- ivIcon = findViewById(R.id.ivIcon);
- clMarkerContent = findViewById(R.id.clMarkerContent);
- ivReverseTriangle = findViewById(R.id.ivReverseTriangle);
- ivCar = findViewById(R.id.ivCar);
- tvMarkerContent = findViewById(R.id.tvMarkerContent);
+ protected void initView( Context context ) {
+ LayoutInflater.from( context ).inflate( R.layout.view_map_marker_info, this );
+ ivUserHead = findViewById( R.id.ivUserHead );
+ ivIcon = findViewById( R.id.ivIcon );
+ clMarkerContent = findViewById( R.id.clMarkerContent );
+ ivReverseTriangle = findViewById( R.id.ivReverseTriangle );
+ ivCar = findViewById( R.id.ivCar );
+ tvMarkerContent = findViewById( R.id.tvMarkerContent );
}
- public void updateView(MarkerShowEntity markerShowEntity) {
+ public void updateView( MarkerShowEntity markerShowEntity ) {
try {
Object bindObj = markerShowEntity.getBindObj();
- switch (markerShowEntity.getMarkerType()) {
+ ivCar.setImageResource( R.drawable.icon_map_marker_location_yellow );
+ clMarkerContent.setBackgroundResource( R.drawable.bg_map_marker_yellow_info );
+ ivReverseTriangle.setImageResource( R.drawable.bg_shape_reverse_yellow );
+ switch ( markerShowEntity.getMarkerType() ) {
case ServiceConst.CARD_TYPE_CARS_CHATTING:
case ServiceConst.CARD_TYPE_USER_DATA:
- ivUserHead.setVisibility(View.VISIBLE);
- ivIcon.setVisibility(View.INVISIBLE);
- loadImageWithMarker(markerShowEntity);
- ivCar.setImageResource(R.drawable.icon_map_marker_car_gray);
+ ivUserHead.setVisibility( View.VISIBLE );
+ ivIcon.setVisibility( View.INVISIBLE );
+ loadImageWithMarker( markerShowEntity );
+ ivCar.setImageResource( R.drawable.icon_map_marker_car_gray );
//ivCar.setRotation(new Random().nextInt(360));
- ivCar.setRotation((float) markerShowEntity.getMarkerLocation().getAngle());
-
- if (bindObj instanceof MarkerOnlineCar) {
- if (((MarkerOnlineCar) bindObj).getUserInfo().getGenderValue() == 0) {
- clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_blue_info);
- ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_blue);
- } else {
- clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_purple_info);
- ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_purple);
- }
- }
-
+ ivCar.setRotation( ( float ) markerShowEntity.getMarkerLocation().getAngle() );
break;
case ServiceConst.CARD_TYPE_ROAD_CONDITION:
- ivUserHead.setVisibility(View.INVISIBLE);
- ivIcon.setVisibility(View.VISIBLE);
-
- ivIcon.setImageResource(R.drawable.icon_map_marker_road_block_up);
- clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_blue_info);
- ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_blue);
- ivCar.setImageResource(R.drawable.icon_map_marker_location_blue);
- break;
case ServiceConst.CARD_TYPE_NOVELTY:
- ivUserHead.setVisibility(View.INVISIBLE);
- ivIcon.setVisibility(View.VISIBLE);
- ivCar.setImageResource(R.drawable.icon_map_marker_location_blue);
+ ivUserHead.setVisibility( View.INVISIBLE );
+ ivIcon.setVisibility( View.VISIBLE );
- if (bindObj instanceof MarkerNoveltyInfo) {
- switch (((MarkerNoveltyInfo) bindObj).getPoiType()) {
+ if ( bindObj instanceof MarkerExploreWay ) {
+ switch ( ( ( MarkerExploreWay ) bindObj ).getPoiType() ) {
case MarkerPoiTypeEnum.GAS_STATION:
- ivIcon.setImageResource(R.drawable.icon_map_marker_refuel);
- clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_orange_info);
- ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_orange);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_refuel );
break;
case MarkerPoiTypeEnum.TRAFFIC_CHECK:
- ivIcon.setImageResource(R.drawable.icon_map_marker_road_check);
- clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_green_info);
- ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_green);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_road_check2_light );
break;
case MarkerPoiTypeEnum.ROAD_CLOSED:
- ivIcon.setImageResource(R.drawable.icon_map_marker_road_block_off);
- clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_dark_blue_info);
- ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_dark_blue);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_road_block_off2_light );
break;
case MarkerPoiTypeEnum.SHOP_DISCOUNT:
- ivIcon.setImageResource(R.drawable.icon_map_marker_shop_discount);
- clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_red_info);
- ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_red);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_shop_discount );
break;
case MarkerPoiTypeEnum.FOURS_4S:
- ivIcon.setImageResource(R.drawable.icon_map_marker_4s);
- clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_dark_blue_info);
- ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_dark_blue);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_4s );
break;
case MarkerPoiTypeEnum.FOURS_ROAD_WORK:
- ivIcon.setImageResource(R.drawable.icon_map_marker_road_work);
- clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_dark_blue_info);
- ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_dark_blue);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_road_work2_light );
break;
case MarkerPoiTypeEnum.FOURS_BLOCK_UP:
- ivIcon.setImageResource(R.drawable.icon_map_marker_road_block_up);
- clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_blue_info);
- ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_blue);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_road_block_up2_light );
break;
case MarkerPoiTypeEnum.FOURS_PONDING:
- ivIcon.setImageResource(R.drawable.icon_map_marker_pondingl);
- clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_blue_info);
- ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_blue);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_pondingl2_light );
break;
case MarkerPoiTypeEnum.FOURS_SHOP_FREE:
- ivIcon.setImageResource(R.drawable.icon_map_marker_shop);
- clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_dark_green_info);
- ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_dark_green);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_shop );
break;
case MarkerPoiTypeEnum.FOURS_FOG:
- ivIcon.setImageResource(R.drawable.module_service_ic_rc_dark_frog2);
- clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_grey_info);
- ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_grey);
+ ivIcon.setImageResource( R.drawable.module_service_ic_rc_dark_frog2_light );
break;
case MarkerPoiTypeEnum.FOURS_ICE:
- ivIcon.setImageResource(R.drawable.module_service_ic_rc_freeze2);
- clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_blue_info);
- ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_blue);
+ ivIcon.setImageResource( R.drawable.module_service_ic_rc_freeze2_light );
break;
case MarkerPoiTypeEnum.FOURS_PARKING:
- ivIcon.setImageResource(R.drawable.module_service_ic_rc_parking2);
- clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_dark_blue_info);
- ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_dark_blue);
+ ivIcon.setImageResource( R.drawable.module_service_ic_rc_parking2 );
break;
case MarkerPoiTypeEnum.FOURS_ACCIDENT:
- ivIcon.setImageResource(R.drawable.module_service_ic_rc_accident2);
- clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_red_info);
- ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_red);
+ ivIcon.setImageResource( R.drawable.module_service_ic_rc_accident3_light );
break;
case MarkerPoiTypeEnum.FOURS_NEALY:
- ivIcon.setImageResource(R.drawable.icon_map_marker_shear_news);
- clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_blue_info);
- ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_blue);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_shear_news );
+ break;
+ case MarkerPoiTypeEnum.FOURS_LIVING:
+ ivIcon.setImageResource( R.drawable.icon_map_marker_living_light );
break;
default:
- ivIcon.setImageResource(R.drawable.icon_map_marker_shear_news);
- clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_dark_blue_info);
- ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_dark_blue);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_shear_news );
break;
}
}
break;
case ServiceConst.CARD_TYPE_SHARE_MUSIC:
- ivUserHead.setVisibility(View.INVISIBLE);
- ivIcon.setVisibility(View.VISIBLE);
+ ivUserHead.setVisibility( View.INVISIBLE );
+ ivIcon.setVisibility( View.VISIBLE );
- clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_purple_info);
- ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_purple);
- ivCar.setImageResource(R.drawable.icon_map_marker_location_blue);
-
- if (bindObj instanceof MarkerShareMusic) {
+ if ( bindObj instanceof MarkerShareMusic ) {
// 2 为书籍听书,3 为新闻,1 为qq音乐,int
- switch (((MarkerShareMusic) bindObj).getShareType()) {
+ switch ( ( ( MarkerShareMusic ) bindObj ).getShareType() ) {
case 1:
- ivIcon.setImageResource(R.drawable.icon_map_marker_misic);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_misic );
break;
case 2:
- ivIcon.setImageResource(R.drawable.icon_map_marker_book);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_book );
break;
case 3:
- ivIcon.setImageResource(R.drawable.icon_map_marker_news);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_news );
break;
default:
- ivIcon.setImageResource(R.drawable.icon_map_marker_misic);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_misic );
break;
}
}
break;
}
- if (!TextUtils.isEmpty(markerShowEntity.getTextContent())) {
+ if ( !TextUtils.isEmpty( markerShowEntity.getTextContent() ) ) {
String content;
- if (markerShowEntity.getTextContent().length() > 8) {
- content = markerShowEntity.getTextContent().substring(0, 7) + "...";
+ if ( markerShowEntity.getTextContent().length() > 8 ) {
+ content = markerShowEntity.getTextContent().substring( 0, 7 ) + "...";
} else {
content = markerShowEntity.getTextContent();
}
- tvMarkerContent.setText(content);
+ tvMarkerContent.setText( content );
}
- } catch (Exception e) {
+ } catch ( Exception e ) {
e.printStackTrace();
}
}
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 77024d794b..9f5a90088b 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
@@ -1,19 +1,13 @@
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;
import com.mogo.map.MogoLatLng;
-import com.mogo.map.location.MogoLocation;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.IMogoMarkerClickListener;
import com.mogo.map.marker.IMogoMarkerManager;
import com.mogo.map.marker.MogoMarkerOptions;
-import com.mogo.map.marker.MogoMarkersHandler;
import com.mogo.module.common.ModuleNames;
import com.mogo.module.common.entity.MarkerCarPois;
import com.mogo.module.common.entity.MarkerCardResult;
@@ -30,7 +24,6 @@ import com.mogo.module.service.Utils;
import com.mogo.module.service.network.RefreshCallback;
import com.mogo.module.service.network.RefreshModel;
import com.mogo.module.service.utils.ViewUtils;
-import com.mogo.service.cardmanager.IMogoCardChangedListener;
import com.mogo.service.connection.IMogoOnMessageListener;
import com.mogo.service.module.IMogoBizActionDoneListener;
import com.mogo.utils.ThreadPoolService;
@@ -54,28 +47,18 @@ import java.util.Map;
* version: 1.0
*/
public class MapMarkerManager implements IMogoMarkerClickListener,
- IMogoOnMessageListener< MarkerResponse >, IMogoCardChangedListener,
+ IMogoOnMessageListener< MarkerResponse >,
IMogoBizActionDoneListener {
private static final String TAG = "MapMarkerManager";
- // 是否选中在线卡片及气泡,语音搜索触发
- private boolean mIsAISearchOnlineData = false;
private Context mContext;
// 最后一次选中的气泡
private IMogoMarker mLastCheckMarker;
private static MapMarkerManager mMarkerManager;
- private String mCurrentModuleName = ServiceConst.CARD_TYPE_BUSINESS_OPERATION;
- // 记录其它已经缩小的Marker
- public ArrayList< String > alreadySmallMarker = new ArrayList<>();
- // 存储所有汽车marker
-// public ArrayList carMarkers = new ArrayList<>();
- // 距离用户最近的Marker
- private IMogoMarker mNearlyMarker = null;
// 记录上次请求数据,切换卡片时做数据处理
private MarkerCardResult mLastDataResult;
- private boolean mIsMarkerClicked = false;
private RefreshModel mRefreshModel;
private MogoLatLng mCarLatLng;
// 平滑移动事件间隔(单位:秒)
@@ -105,8 +88,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
// 长连接
MarkerServiceHandler.getMogoSocketManager().registerOnMessageListener( 401001, this );
- MarkerServiceHandler.getMogoCardManager().registerCardChangedListener(
- "LAUNCHER_MARKER_MODULE", this );
MarkerServiceHandler.getActionManager().registerBizActionDoneListener( this );
}
@@ -116,30 +97,11 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
Logger.e( TAG, "do not invoke anymore." );
}
- @Override
- public void onSwitched( int position, String moduleName ) {
- Logger.d( TAG, "当前C位卡片:" + moduleName );
- if ( ( TextUtils.isEmpty( mCurrentModuleName ) || TextUtils.equals( mCurrentModuleName,
- ServiceConst.CARD_TYPE_BUSINESS_OPERATION ) ) && mIsMarkerClicked ) {
- mIsMarkerClicked = false;
- // 在广告位(默认位置)点击marker造成卡片切换的,还是现实全部marker 【需求:os2.0.2-2.5-4】
- highlightedMarker( moduleName, false );
- mCurrentModuleName = moduleName;
- } else {
- mCurrentModuleName = moduleName;
- runOnTargetThread( () -> {
- MarkerServiceHandler.getMarkerManager().removeMarkersExcept( ModuleNames.CARD_TYPE_USER_DATA );
- drawMarkerByCurrentType( mLastDataResult );
- } );
- }
- }
-
/**
* 地图上的Marker点击回调
*/
@Override
public boolean onMarkerClicked( IMogoMarker marker ) {
- mIsMarkerClicked = true;
Logger.d( TAG, "onMarkerClicked 点击了大而全中的Marker:" + marker );
try {
boolean result = switchMarkerOpenStatus( marker );
@@ -174,90 +136,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
return true;
}
-
- // 对指定类型高亮处理
- public synchronized void highlightedMarker( final String typeTag ) {
- highlightedMarker( typeTag, false );
- }
-
- public synchronized void highlightedMarker( final String typeTag, final boolean netDataRefresh ) {
- try {
- Logger.e( TAG, "上一次选中的卡片类型:mCurrentModuleName==" + mCurrentModuleName );
- if ( !TextUtils.isEmpty( mCurrentModuleName ) && TextUtils.equals( mCurrentModuleName,
- typeTag ) && !netDataRefresh ) {
- return;
- }
- // 从已经缩小的记录删除
- alreadySmallMarker.remove( typeTag );
- List< IMogoMarker > currentHighLightList =
- MarkerServiceHandler.getMarkerManager().getMarkers( typeTag );
-
- if ( currentHighLightList == null || currentHighLightList.size() == 0 ) {
- alreadySmallMarker.clear();
- // 放大所有的气泡
- Map< String, List< IMogoMarker > > lastHighLightList =
- MarkerServiceHandler.getMarkerManager().getAllMarkers();
- for ( String markerName : lastHighLightList.keySet() ) {
- setMarkersBig( lastHighLightList.get( markerName ) );
- }
- } else {
- // 缩小其他的气泡
- Map< String, List< IMogoMarker > > lastHighLightList =
- MarkerServiceHandler.getMarkerManager().getAllMarkers();
- for ( String markerName : lastHighLightList.keySet() ) {
- if ( !markerName.equals( typeTag ) ) {
- if ( !alreadySmallMarker.contains( markerName ) ) {
- alreadySmallMarker.add( markerName );
- setMarkersSmall( lastHighLightList.get( markerName ) );
- }
- }
- }
-
- // 将当前卡片选中的气泡放大
- setMarkersBig( currentHighLightList );
- }
-
- } catch ( Exception e ) {
- e.printStackTrace();
- }
- }
-
- private static void setMarkersBig( List< IMogoMarker > markers ) {
- if ( markers == null || markers.isEmpty() ) {
- return;
- }
- for ( IMogoMarker mogoMarker : markers ) {
- if ( mogoMarker == null || mogoMarker.isDestroyed() ) {
- continue;
- }
- try {
- mogoMarker.startScaleAnimation( 0.6f, 1f, 0.6f, 1f, 1000, new BounceInterpolator() );
- } catch ( Exception e ) {
- Logger.e( TAG, e, "error." );
- }
- }
- }
-
- private static void setMarkersSmall( List< IMogoMarker > markers ) {
- if ( markers == null || markers.isEmpty() ) {
- return;
- }
- for ( IMogoMarker mogoMarker : markers ) {
- smallMarker( mogoMarker );
- }
- }
-
- private static void smallMarker( IMogoMarker mogoMarker ) {
- if ( mogoMarker == null || mogoMarker.isDestroyed() ) {
- return;
- }
- try {
- mogoMarker.startScaleAnimation( 1f, 0.6f, 1f, 0.6f, 300, new OvershootInterpolator() );
- } catch ( Exception e ) {
- Logger.e( TAG, e, "error." );
- }
- }
-
// 展开气泡
private void openMarker( IMogoMarker mogoMarker ) {
if ( mogoMarker == null ) {
@@ -269,6 +147,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 {
@@ -298,7 +178,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
}
// 在线车辆点击使用infoWindow
if ( TextUtils.equals( mogoMarker.getOwner(), ModuleNames.CARD_TYPE_USER_DATA ) ) {
-// mogoMarker.hideInfoWindow();
+ mogoMarker.hideInfoWindow();
Logger.d( TAG, "关闭info window" );
} else {
Object object = mogoMarker.getObject();
@@ -338,37 +218,10 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
dispatchDataToBiz();
} );
- // 语音触发的在线车辆搜索,采用增量的形式绘制
- if ( mIsAISearchOnlineData = isOnlineCarDataOnly( mLastDataResult ) ) {
- MarkerServiceHandler.getMarkerManager().removeMarkers( ServiceConst.CARD_TYPE_USER_DATA );
- MarkerServiceHandler.getMogoCardManager().switch2( ServiceConst.CARD_TYPE_USER_DATA );
- } else {
- mLastCheckMarker = null;
- // 清空所有地图上绘制的Marker
- MarkerServiceHandler.getMarkerManager().removeMarkersExcept( ModuleNames.CARD_TYPE_USER_DATA );
- }
-
drawMarkerByCurrentType( mLastDataResult );
- // 同步新绘制的气泡状态
- alreadySmallMarker.clear();
-// highlightedMarker( mCurrentModuleName, true );
-
trackData( mLastDataResult );
}
- /**
- * 是否是语音搜索的在线车辆数据:目前根据返回数据判断
- *
- * @param markerCardResult
- * @return
- */
- private boolean isOnlineCarDataOnly( MarkerCardResult markerCardResult ) {
- if ( markerCardResult != null && markerCardResult.getDataType() != null && markerCardResult.getDataType().size() == 1 && markerCardResult.getDataType().contains( ServiceConst.CARD_TYPE_USER_DATA ) ) {
- return true;
- }
- return false;
- }
-
/**
* 根据类型绘制
*
@@ -384,11 +237,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
return;
}
- if ( TextUtils.isEmpty( mCurrentModuleName ) ) {
- // 默认大而全
- mCurrentModuleName = ServiceConst.CARD_TYPE_BUSINESS_OPERATION;
- }
-
drawAllMarker( markerCardResult );
}
@@ -398,15 +246,9 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
* @param markerCardResult
*/
private void drawAllMarker( MarkerCardResult markerCardResult ) {
-// List onlineCarList = markerCardResult.getOnlineCar();
List< MarkerExploreWay > exploreWayList = markerCardResult.getExploreWay();
- List< MarkerShareMusic > shareMusicList = markerCardResult.getShareMusic();
- List< MarkerNoveltyInfo > noveltyInfoList = markerCardResult.getNoveltyInfo();
-// drawOnlineCarMarkers(onlineCarList, ServiceConst.MAX_AMOUNT_ALL);
drawRoadConditionMarker( exploreWayList, ServiceConst.MAX_AMOUNT_ALL );
- drawShareMusicMarker( shareMusicList, ServiceConst.MAX_AMOUNT_ALL );
- drawNoveltyMarker( noveltyInfoList, ServiceConst.MAX_AMOUNT_ALL );
}
/**
@@ -420,10 +262,9 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
return;
}
- double nearlyDistance = Float.MAX_VALUE;
int size = getAppropriateSize( maxAmount, onlineCarList );
- Map< String, IMogoMarker > existCarMap = purgeCarsData( onlineCarList );
+ Map< String, IMogoMarker > existCarMap = purgeMarkerData( onlineCarList, ModuleNames.CARD_TYPE_USER_DATA );
for ( int i = 0; i < size; i++ ) {
MarkerOnlineCar markerOnlineCar = onlineCarList.get( i );
@@ -438,119 +279,13 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
markerShowEntity.setIconUrl( markerOnlineCar.getUserInfo().getUserHead() );
}
- if ( markerOnlineCar.getUserInfo() == null || TextUtils.isEmpty( markerOnlineCar.getUserInfo().getSn() ) ) {
- continue;
- }
- IMogoMarker mogoMarker = existCarMap.get( markerOnlineCar.getUserInfo().getSn() );
+ String sn = getCarSnFromEntity( markerOnlineCar );
+ IMogoMarker mogoMarker = existCarMap.get( sn );
if ( mogoMarker == null ) {
- Logger.d( TAG, "car [%s] need be create.", markerOnlineCar.getUserInfo().getSn() );
mogoMarker = drawMapMarker( markerShowEntity );
}
startSmooth( mogoMarker, markerOnlineCar, markerLocation );
-
- // 计算在线车辆距离当前车辆的距离,每次都与最后一次距离最近的进行比较,保留距离最近的车辆,进行卡片展示
- try {
- // 当前车辆的位置
- MogoLocation currentLocation = MarkerServiceHandler.getMogoLocationClient().getLastKnowLocation();
-
- // 计算车辆距离指定气泡的距离
- float calculateDistance =
- Utils.calculateLineDistance( new MogoLatLng( markerLocation.getLat(),
- markerLocation.getLon() ),
- new MogoLatLng( currentLocation.getLatitude(),
- currentLocation.getLongitude() ) );
-
- // 进行比较,保留最近的一个数据
- if ( calculateDistance < nearlyDistance ) {
- nearlyDistance = calculateDistance;
- mNearlyMarker = mogoMarker;
- }
-
- } catch ( Exception e ) {
- e.printStackTrace();
- }
}
- Logger.d( TAG, "距离当前车辆位置最近的距离为:" + nearlyDistance );
-
- try {
- // 在ACC on 之后第一次获取到了在线车辆数据,选中最近的一个Marker
- if ( !mIsAISearchOnlineData ) {
- return;
- }
- if ( mNearlyMarker == null ) {
- return;
- }
- Logger.d( TAG, "语音搜索触发,默认选中最近的在线车辆:" + mNearlyMarker );
- // 移动地图到指定位置
- MarkerServiceHandler.getMogoStatusManager().setUserInteractionStatus( ServiceConst.TYPE, true, false );
- MarkerServiceHandler.getMapUIController().moveToCenter( mNearlyMarker.getPosition() );
- onMarkerClicked( mNearlyMarker );
- MogoMarkersHandler.getInstance().onMarkerClicked( mNearlyMarker );
- mIsAISearchOnlineData = false;
-
- } catch ( Exception e ) {
- e.printStackTrace();
- }
- }
-
- /**
- * 根据新的在线车辆列表,选出已存在的在线车辆,并从视图和内存中移除不存在的在线车辆
- *
- * @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();
}
/**
@@ -561,9 +296,12 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
private void drawRoadConditionMarker( List< MarkerExploreWay > exploreWayList, int maxAmount ) {
// 将数据同步给探路,避免探路每次 perform 的时候去拉取,造成消耗
if ( exploreWayList == null || exploreWayList.isEmpty() ) {
+ MarkerServiceHandler.getMarkerManager().removeMarkers( ModuleNames.CARD_TYPE_ROAD_CONDITION );
return;
}
int size = getAppropriateSize( maxAmount, exploreWayList );
+ Map< String, IMogoMarker > existCarMap = purgeMarkerData( exploreWayList, ModuleNames.CARD_TYPE_ROAD_CONDITION );
+ Logger.i( TAG, "existCarMap: size = %d", existCarMap.size() );
for ( int i = 0; i < size; i++ ) {
MarkerExploreWay markerExploreWay = exploreWayList.get( i );
if ( !markerExploreWay.getCanLive() ) {
@@ -575,21 +313,29 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
markerShowEntity.setMarkerType( markerExploreWay.getType() );
markerShowEntity.setTextContent( markerExploreWay.getAddr() );
- drawMapMarker( markerShowEntity );
+ String sn = getCarSnFromEntity( markerExploreWay );
+ IMogoMarker mogoMarker = existCarMap.get( sn );
+ if ( mogoMarker == null ) {
+ Logger.d( TAG, "draw road condition, sn = %s", sn );
+ drawMapMarker( markerShowEntity );
+ }
}
}
}
+
/**
* 共享音乐
*
* @param shareMusicList
*/
private void drawShareMusicMarker( List< MarkerShareMusic > shareMusicList, int maxAmount ) {
- if ( shareMusicList == null ) {
+ if ( shareMusicList == null || shareMusicList.isEmpty() ) {
+ MarkerServiceHandler.getMarkerManager().removeMarkers( ModuleNames.CARD_TYPE_SHARE_MUSIC );
return;
}
int size = getAppropriateSize( maxAmount, shareMusicList );
+ Map< String, IMogoMarker > existCarMap = purgeMarkerData( shareMusicList, ModuleNames.CARD_TYPE_SHARE_MUSIC );
for ( int i = 0; i < size; i++ ) {
MarkerShareMusic markerShareMusic = shareMusicList.get( i );
MarkerLocation markerLocation = markerShareMusic.getLocation();
@@ -600,7 +346,11 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
markerShowEntity.setTextContent( markerShareMusic.getMediaName() );
markerShowEntity.setIconUrl( markerShareMusic.getMediaImg() );
- drawMapMarker( markerShowEntity );
+ String sn = getCarSnFromEntity( markerShareMusic );
+ IMogoMarker mogoMarker = existCarMap.get( sn );
+ if ( mogoMarker == null ) {
+ drawMapMarker( markerShowEntity );
+ }
}
}
@@ -610,10 +360,12 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
* @param noveltyInfoList
*/
private void drawNoveltyMarker( List< MarkerNoveltyInfo > noveltyInfoList, int maxAmount ) {
- if ( noveltyInfoList == null ) {
+ if ( noveltyInfoList == null || noveltyInfoList.isEmpty() ) {
+ MarkerServiceHandler.getMarkerManager().removeMarkers( ModuleNames.CARD_TYPE_NOVELTY );
return;
}
int size = getAppropriateSize( maxAmount, noveltyInfoList );
+ Map< String, IMogoMarker > existCarMap = purgeMarkerData( noveltyInfoList, ModuleNames.CARD_TYPE_NOVELTY );
for ( int i = 0; i < size; i++ ) {
MarkerNoveltyInfo noveltyInfo = noveltyInfoList.get( i );
MarkerLocation markerLocation = noveltyInfo.getLocation();
@@ -627,10 +379,83 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
} else {
markerShowEntity.setTextContent( noveltyInfo.getContentData().getTitle() );
}
- drawMapMarker( markerShowEntity );
+ String sn = getCarSnFromEntity( noveltyInfo );
+ IMogoMarker mogoMarker = existCarMap.get( sn );
+ if ( mogoMarker == null ) {
+ drawMapMarker( markerShowEntity );
+ }
}
}
+ /**
+ * S = (A ∩ B) ∪ B
+ * (A ∩ B)作为旧列表需要保留的部分
+ *
+ * @param newList
+ * @return
+ */
+ private Map< String, IMogoMarker > purgeMarkerData( List newList, String markerType ) {
+
+ final long start = System.currentTimeMillis();
+ Map< String, IMogoMarker > existMap = new HashMap<>();
+ List< IMogoMarker > allCarsList = MarkerServiceHandler.getMarkerManager().getMarkers( markerType );
+ if ( allCarsList == null || allCarsList.isEmpty() ) {
+ return existMap;
+ }
+ if ( newList == null || newList.isEmpty() ) {
+ return existMap;
+ }
+
+ Map< String, IMogoMarker > allMap = new HashMap<>();
+ for ( IMogoMarker marker : allCarsList ) {
+ String sn = getCarSnFromMarker( marker );
+ allMap.put( sn, marker );
+ }
+ for ( Object entity : newList ) {
+ String sn = getCarSnFromEntity( entity );
+ if ( allMap.containsKey( sn ) ) {
+ existMap.put( sn, allMap.get( sn ) );
+ }
+ }
+ for ( String sn : allMap.keySet() ) {
+ if ( !existMap.containsKey( sn ) ) {
+ IMogoMarker dirtyMarker = allMap.get( sn );
+ allCarsList.remove( dirtyMarker );
+ dirtyMarker.destroy();
+ }
+ }
+ allMap.clear();
+ Logger.i( "timer", "purge data cost " + ( System.currentTimeMillis() - start ) + "ms" );
+ return existMap;
+ }
+
+ private String getCarSnFromEntity( Object entity ) {
+ try {
+ if ( entity instanceof MarkerOnlineCar ) {
+ return ( ( MarkerOnlineCar ) entity ).getUserInfo().getSn();
+ } else if ( entity instanceof MarkerShareMusic ) {
+ return ( ( MarkerShareMusic ) entity ).getUserInfo().getSn();
+ } else if ( entity instanceof MarkerNoveltyInfo ) {
+ return ( ( MarkerNoveltyInfo ) entity ).getSn();
+ } else if ( entity instanceof MarkerExploreWay ) {
+ return ( ( MarkerExploreWay ) entity ).getInfoId();
+ }
+ } catch ( Exception e ) {
+
+ }
+ return "";
+ }
+
+ private String getCarSnFromMarker( IMogoMarker marker ) {
+ if ( marker == null || marker.getObject() == null || marker.isDestroyed() ) {
+ return null;
+ }
+ if ( !( marker.getObject() instanceof MarkerShowEntity ) ) {
+ return null;
+ }
+ return getCarSnFromEntity( ( ( MarkerShowEntity ) marker.getObject() ).getBindObj() );
+ }
+
/**
* @param maxAmount 展示的最大数量
* @param list
@@ -654,76 +479,12 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
return;
}
JSONArray array = new JSONArray();
- List< MarkerOnlineCar > onlineCarList = markerCardResult.getOnlineCar();
List< MarkerExploreWay > exploreWayList = markerCardResult.getExploreWay();
- List< MarkerShareMusic > shareMusicList = markerCardResult.getShareMusic();
- List< MarkerNoveltyInfo > noveltyInfoList = markerCardResult.getNoveltyInfo();
- int size = onlineCarList == null ? 0 : onlineCarList.size();
- fillPoiTypeTrackBody( array, ModuleNames.CARD_TYPE_USER_DATA, size );
+ int size = 0;
size = exploreWayList == null ? 0 : exploreWayList.size();
fillPoiTypeTrackBody( array, ModuleNames.CARD_TYPE_ROAD_CONDITION, size );
- size = noveltyInfoList == null ? 0 : noveltyInfoList.size();
- JSONObject novelty = fillPoiTypeTrackBody( array, ModuleNames.CARD_TYPE_NOVELTY, size );
- if ( noveltyInfoList != null ) {
- Map< String, Integer > counter = new HashMap<>();
- for ( MarkerNoveltyInfo markerNoveltyInfo : noveltyInfoList ) {
- if ( markerNoveltyInfo == null ) {
- continue;
- }
- String childType = markerNoveltyInfo.getPoiType();
- if ( !counter.containsKey( childType ) ) {
- counter.put( childType, 0 );
- }
- int s = counter.get( childType ).intValue();
- counter.put( childType, s + 1 );
- }
- if ( !counter.isEmpty() ) {
- JSONArray onlineCarJsonArray = new JSONArray();
- for ( Map.Entry< String, Integer > entry : counter.entrySet() ) {
- fillPoiChildTypeTrackBody( onlineCarJsonArray, entry.getKey(), entry.getValue() );
- }
- if ( onlineCarJsonArray.length() > 0 ) {
- try {
- novelty.put( "content", onlineCarJsonArray );
- } catch ( JSONException e ) {
- e.printStackTrace();
- }
- }
- }
- }
-
- size = shareMusicList == null ? 0 : shareMusicList.size();
- JSONObject shareMusic = fillPoiTypeTrackBody( array, ModuleNames.CARD_TYPE_SHARE_MUSIC, size );
- if ( shareMusicList != null ) {
- Map< String, Integer > counter = new HashMap<>();
- for ( MarkerShareMusic markerShareMusic : shareMusicList ) {
- if ( markerShareMusic == null ) {
- continue;
- }
- String childType = markerShareMusic.getShareType() + "";
- if ( !counter.containsKey( childType ) ) {
- counter.put( childType, 0 );
- }
- int s = counter.get( childType ).intValue();
- counter.put( childType, s + 1 );
- }
- if ( !counter.isEmpty() ) {
- JSONArray shareMusicJsonArray = new JSONArray();
- for ( Map.Entry< String, Integer > entry : counter.entrySet() ) {
- fillPoiChildTypeTrackBody( shareMusicJsonArray, entry.getKey(), entry.getValue() );
- }
- if ( shareMusicJsonArray.length() > 0 ) {
- try {
- shareMusic.put( "content", shareMusicJsonArray );
- } catch ( JSONException e ) {
- e.printStackTrace();
- }
- }
- }
- }
-
try {
if ( array.length() == 0 ) {
return;
@@ -745,12 +506,8 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
if ( mLastDataResult == null ) {
return;
}
-// List onlineCarList = mLastDataResult.getOnlineCar();
List< MarkerExploreWay > exploreWayList = mLastDataResult.getExploreWay();
- List< MarkerNoveltyInfo > noveltyInfoList = mLastDataResult.getNoveltyInfo();
-// dispatchDataToBis(ServiceConst.CARD_TYPE_USER_DATA, onlineCarList == null ?new ArrayList<>() : onlineCarList);
dispatchDataToBis( ServiceConst.CARD_TYPE_ROAD_CONDITION, exploreWayList == null ? new ArrayList<>() : exploreWayList );
- dispatchDataToBis( ServiceConst.CARD_TYPE_NOVELTY, noveltyInfoList == null ? new ArrayList<>() : noveltyInfoList );
}
/**
@@ -810,18 +567,14 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
*/
public synchronized IMogoMarker drawMapMarker( MarkerShowEntity markerShowEntity ) {
try {
- return drawMapMarker( markerShowEntity, isSmallType() );
+ return drawMapMarkerImpl( markerShowEntity );
} catch ( Exception e ) {
e.printStackTrace();
return null;
}
}
- private boolean isSmallType() {
- return !TextUtils.isEmpty( mCurrentModuleName ) && mLastCheckMarker != null && !mLastCheckMarker.isDestroyed() && TextUtils.equals( mCurrentModuleName, mLastCheckMarker.getOwner() );
- }
-
- private IMogoMarker drawMapMarker( MarkerShowEntity markerShowEntity, boolean isSmall ) {
+ private IMogoMarker drawMapMarkerImpl( MarkerShowEntity markerShowEntity ) {
if ( markerShowEntity == null || markerShowEntity.getMarkerLocation() == null ) {
return null;
}
@@ -842,12 +595,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
marker.setOwner( markerShowEntity.getMarkerType() );
markerView.setMarker( marker );
marker.setOnMarkerClickListener( this );
-
- if ( isSmall ) {
- List< IMogoMarker > markers = new ArrayList<>();
- markers.add( marker );
- setMarkersSmall( markers );
- }
markerShowEntity.setMarker( marker );
return marker;
}
@@ -905,9 +652,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
}
List< MarkerOnlineCar > onlineCarList = result.getOnlineCar();
- if ( !MarkerServiceHandler.getMogoStatusManager().isADASShow() ) {
- dispatchDataToBis( ServiceConst.CARD_TYPE_USER_DATA, onlineCarList == null ? new ArrayList<>() : onlineCarList );
- }
if ( MarkerServiceHandler.getMogoStatusManager().isSearchUIShow() ) {
return;
}
@@ -932,15 +676,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
if ( MarkerServiceHandler.getMogoStatusManager().isSearchUIShow() ) {
return true;
}
- if ( MarkerServiceHandler.getMogoStatusManager().isADASShow() ) {
- return false;
- }
- if ( TextUtils.equals( ServiceConst.CARD_TYPE_USER_DATA, mCurrentModuleName )
- || TextUtils.equals( ServiceConst.CARD_TYPE_BUSINESS_OPERATION, mCurrentModuleName )
- || TextUtils.equals( ServiceConst.CARD_TYPE_CARS_CHATTING, mCurrentModuleName ) ) {
- return false;
- }
- return true;
+ return false;
}
private void removeCarMarkers() {
@@ -1015,7 +751,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
}
public String getCurrentModuleName() {
- return mCurrentModuleName;
+ return "";
}
@Override
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java
index 7679c23839..6479b123ab 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java
@@ -9,6 +9,7 @@ import android.widget.ImageView;
import androidx.annotation.Nullable;
import com.mogo.map.marker.MogoMarkerOptions;
+import com.mogo.module.common.entity.MarkerExploreWay;
import com.mogo.module.common.entity.MarkerNoveltyInfo;
import com.mogo.module.common.entity.MarkerOnlineCar;
import com.mogo.module.common.entity.MarkerPoiTypeEnum;
@@ -31,156 +32,137 @@ public class MapMarkerView extends MapMarkerBaseView {
private ImageView ivBg;
- public MapMarkerView(Context context) {
- super(context);
+ public MapMarkerView( Context context ) {
+ super( context );
}
- public MapMarkerView(Context context, @Nullable AttributeSet attrs) {
- super(context, attrs);
+ public MapMarkerView( Context context, @Nullable AttributeSet attrs ) {
+ super( context, attrs );
}
- public MapMarkerView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
+ public MapMarkerView( Context context, @Nullable AttributeSet attrs, int defStyleAttr ) {
+ super( context, attrs, defStyleAttr );
}
- public MapMarkerView(Context context, MarkerShowEntity markerShowEntity, MogoMarkerOptions options) {
- super(context);
+ public MapMarkerView( Context context, MarkerShowEntity markerShowEntity, MogoMarkerOptions options ) {
+ super( context );
mOptions = options;
- updateView(markerShowEntity);
+ updateView( markerShowEntity );
}
- protected void initView(Context context) {
- LayoutInflater.from(context).inflate(R.layout.view_map_marker, this);
- ivUserHead = findViewById(R.id.ivUserHead);
- ivIcon = findViewById(R.id.ivIcon);
- ivCar = findViewById(R.id.ivCar);
- ivBg = findViewById(R.id.ivBg);
- clMarkerTopView = findViewById(R.id.clMarkerTopView);
+ protected void initView( Context context ) {
+ LayoutInflater.from( context ).inflate( R.layout.view_map_marker, this );
+ ivUserHead = findViewById( R.id.ivUserHead );
+ ivIcon = findViewById( R.id.ivIcon );
+ ivCar = findViewById( R.id.ivCar );
+ ivBg = findViewById( R.id.ivBg );
+ clMarkerTopView = findViewById( R.id.clMarkerTopView );
}
- public void updateView(MarkerShowEntity markerShowEntity) {
+ public void updateView( MarkerShowEntity markerShowEntity ) {
try {
Object bindObj = markerShowEntity.getBindObj();
- switch (markerShowEntity.getMarkerType()) {
+ ivBg.setImageResource( R.drawable.bg_map_marker_dark );
+ switch ( markerShowEntity.getMarkerType() ) {
case ServiceConst.CARD_TYPE_CARS_CHATTING:
case ServiceConst.CARD_TYPE_USER_DATA:
- ivUserHead.setVisibility(View.VISIBLE);
- ivIcon.setVisibility(View.INVISIBLE);
- loadImageWithMarker(markerShowEntity);
- ivCar.setImageResource(R.drawable.icon_map_marker_car_gray);
- ivCar.setRotation((float) markerShowEntity.getMarkerLocation().getAngle());
+ ivUserHead.setVisibility( View.VISIBLE );
+ ivIcon.setVisibility( View.INVISIBLE );
+ loadImageWithMarker( markerShowEntity );
+ ivCar.setImageResource( R.drawable.icon_map_marker_car_gray );
+ ivCar.setRotation( ( float ) markerShowEntity.getMarkerLocation().getAngle() );
// ivCar.setRotation(new Random().nextInt(360));
- clMarkerTopView.setVisibility(View.GONE);
- if (bindObj instanceof MarkerOnlineCar) {
- if (((MarkerOnlineCar) bindObj).getUserInfo().getGenderValue() == 0) {
- ivBg.setImageResource(R.drawable.bg_map_marker_blue);
+ clMarkerTopView.setVisibility( View.GONE );
+ if ( bindObj instanceof MarkerOnlineCar ) {
+ if ( ( ( MarkerOnlineCar ) bindObj ).getUserInfo().getGenderValue() == 0 ) {
} else {
- ivBg.setImageResource(R.drawable.bg_map_marker_purple);
}
}
break;
case ServiceConst.CARD_TYPE_ROAD_CONDITION:
- ivUserHead.setVisibility(View.INVISIBLE);
- ivIcon.setVisibility(View.VISIBLE);
-
- ivIcon.setImageResource(R.drawable.icon_map_marker_road_block_up);
- ivBg.setImageResource(R.drawable.bg_map_marker_blue);
- ivCar.setImageResource(R.drawable.icon_map_marker_location_blue);
- break;
case ServiceConst.CARD_TYPE_NOVELTY:
- ivUserHead.setVisibility(View.INVISIBLE);
- ivIcon.setVisibility(View.VISIBLE);
+ ivUserHead.setVisibility( View.INVISIBLE );
+ ivIcon.setVisibility( View.VISIBLE );
- ivCar.setImageResource(R.drawable.icon_map_marker_location_blue);
+ ivCar.setImageResource( R.drawable.icon_map_marker_location_yellow );
- if (bindObj instanceof MarkerNoveltyInfo) {
- switch (((MarkerNoveltyInfo) bindObj).getPoiType()) {
+ if ( bindObj instanceof MarkerExploreWay ) {
+ switch ( ( ( MarkerExploreWay ) bindObj ).getPoiType() ) {
case MarkerPoiTypeEnum.GAS_STATION:
- ivIcon.setImageResource(R.drawable.icon_map_marker_refuel);
- ivBg.setImageResource(R.drawable.bg_map_marker_oragne);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_refuel );
break;
case MarkerPoiTypeEnum.TRAFFIC_CHECK:
- ivIcon.setImageResource(R.drawable.icon_map_marker_road_check);
- ivBg.setImageResource(R.drawable.bg_map_marker_green);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_road_check2 );
break;
case MarkerPoiTypeEnum.ROAD_CLOSED:
- ivIcon.setImageResource(R.drawable.icon_map_marker_road_block_off);
- ivBg.setImageResource(R.drawable.bg_map_marker_blue_dark);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_road_block_off2 );
break;
case MarkerPoiTypeEnum.SHOP_DISCOUNT:
- ivIcon.setImageResource(R.drawable.icon_map_marker_shop_discount);
- ivBg.setImageResource(R.drawable.bg_map_marker_red);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_shop_discount );
break;
case MarkerPoiTypeEnum.FOURS_4S:
- ivIcon.setImageResource(R.drawable.icon_map_marker_4s);
- ivBg.setImageResource(R.drawable.bg_map_marker_blue);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_4s );
break;
case MarkerPoiTypeEnum.FOURS_ROAD_WORK:
- ivIcon.setImageResource(R.drawable.icon_map_marker_road_work);
- ivBg.setImageResource(R.drawable.bg_map_marker_blue_dark);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_road_work2 );
break;
case MarkerPoiTypeEnum.FOURS_BLOCK_UP:
- ivIcon.setImageResource(R.drawable.icon_map_marker_road_block_up);
- ivBg.setImageResource(R.drawable.bg_map_marker_blue);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_road_block_up2 );
break;
case MarkerPoiTypeEnum.FOURS_PONDING:
- ivIcon.setImageResource(R.drawable.icon_map_marker_pondingl);
- ivBg.setImageResource(R.drawable.bg_map_marker_blue);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_pondingl2 );
break;
case MarkerPoiTypeEnum.FOURS_SHOP_FREE:
- ivIcon.setImageResource(R.drawable.icon_map_marker_shop);
- ivBg.setImageResource(R.drawable.bg_map_marker_green_dark);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_shop );
break;
case MarkerPoiTypeEnum.FOURS_FOG:
- ivBg.setImageResource(R.drawable.module_service_ic_rc_dark_frog);
+ ivIcon.setImageResource( R.drawable.module_service_ic_rc_dark_frog2 );
break;
case MarkerPoiTypeEnum.FOURS_ICE:
- ivBg.setImageResource(R.drawable.module_service_ic_rc_freeze);
- break;
- case MarkerPoiTypeEnum.FOURS_PARKING:
- ivBg.setImageResource(R.drawable.module_service_ic_rc_parking);
+ ivIcon.setImageResource( R.drawable.module_service_ic_rc_freeze2 );
break;
case MarkerPoiTypeEnum.FOURS_ACCIDENT:
- ivBg.setImageResource(R.drawable.module_service_ic_rc_accident);
+ ivIcon.setImageResource( R.drawable.module_service_ic_rc_accident3 );
break;
case MarkerPoiTypeEnum.FOURS_NEALY:
- ivIcon.setImageResource(R.drawable.icon_map_marker_shear_news);
- ivBg.setImageResource(R.drawable.bg_map_marker_blue);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_shear_news );
break;
+ case MarkerPoiTypeEnum.FOURS_LIVING:
+ ivIcon.setImageResource( R.drawable.icon_map_marker_living );
+ break;
+ case MarkerPoiTypeEnum.FOURS_PARKING:
default:
- ivIcon.setImageResource(R.drawable.icon_map_marker_shear_news);
- ivBg.setImageResource(R.drawable.bg_map_marker_blue_dark);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_shear_news );
break;
}
}
break;
case ServiceConst.CARD_TYPE_SHARE_MUSIC:
- ivUserHead.setVisibility(View.INVISIBLE);
- ivIcon.setVisibility(View.VISIBLE);
- ivBg.setImageResource(R.drawable.bg_map_marker_purple);
- ivCar.setImageResource(R.drawable.icon_map_marker_location_blue);
+ ivUserHead.setVisibility( View.INVISIBLE );
+ ivIcon.setVisibility( View.VISIBLE );
+ ivCar.setImageResource( R.drawable.icon_map_marker_location_yellow );
- if (bindObj instanceof MarkerShareMusic) {
+ if ( bindObj instanceof MarkerShareMusic ) {
// 2 为书籍听书,3 为新闻,1 为qq音乐,int
- switch (((MarkerShareMusic) bindObj).getShareType()) {
+ switch ( ( ( MarkerShareMusic ) bindObj ).getShareType() ) {
case 1:
- ivIcon.setImageResource(R.drawable.icon_map_marker_misic);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_misic );
break;
case 2:
- ivIcon.setImageResource(R.drawable.icon_map_marker_book);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_book );
break;
case 3:
- ivIcon.setImageResource(R.drawable.icon_map_marker_news);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_news );
break;
default:
- ivIcon.setImageResource(R.drawable.icon_map_marker_misic);
+ ivIcon.setImageResource( R.drawable.icon_map_marker_misic );
break;
}
}
break;
}
- } catch (Exception e) {
+ } catch ( Exception e ) {
e.printStackTrace();
}
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/UserDataMarkerInfoWindowAdapter.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/UserDataMarkerInfoWindowAdapter.java
index 31768b6763..39965debba 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/UserDataMarkerInfoWindowAdapter.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/UserDataMarkerInfoWindowAdapter.java
@@ -9,6 +9,7 @@ import android.widget.ImageView;
import android.widget.TextView;
import com.alibaba.android.arouter.launcher.ARouter;
+import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.network.SubscribeImpl;
import com.mogo.map.marker.IMogoInfoWindowAdapter;
import com.mogo.map.marker.IMogoMarker;
@@ -110,6 +111,10 @@ public class UserDataMarkerInfoWindowAdapter implements IMogoInfoWindowAdapter {
}
mCall.setOnClickListener( view -> {
if ( markerShowEntity.getBindObj() instanceof MarkerOnlineCar ) {
+ if ( DebugConfig.getNetMode() != DebugConfig.NET_MODE_DEMO ) {
+ callToFactUser( markerShowEntity );
+ return;
+ }
sRefreshApiService.getMockUsers().subscribeOn( Schedulers.io() )
.observeOn( AndroidSchedulers.mainThread() )
.subscribe( new SubscribeImpl< DemoUserInfoEntity >( RequestOptions.create( mContext ) ) {
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshBody.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshBody.java
index 769aa2c6a1..d1a5384490 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshBody.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshBody.java
@@ -19,6 +19,7 @@ public class RefreshBody {
public String sn;
public boolean onlyFocus; // 是否仅查询已关注的好友
public boolean onlySameCity; // 是否仅查询注册城市相同的同城用户
+ public boolean viewPush; // 是否走V2X通道 ,true-401011,false -401001
public static class LatLon {
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/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_living.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_living.png
new file mode 100755
index 0000000000..f66b3e8176
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_living.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_living_light.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_living_light.png
new file mode 100755
index 0000000000..b52aab6bad
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_living_light.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_location_yellow.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_location_yellow.png
new file mode 100755
index 0000000000..f8da53f346
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_location_yellow.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_pondingl2.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_pondingl2.png
new file mode 100755
index 0000000000..61bb224ffc
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_pondingl2.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_pondingl2_light.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_pondingl2_light.png
new file mode 100755
index 0000000000..85de6dcee6
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_pondingl2_light.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_block_off2.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_block_off2.png
new file mode 100755
index 0000000000..a29d82adb4
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_block_off2.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_block_off2_light.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_block_off2_light.png
new file mode 100755
index 0000000000..3241e2adf4
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_block_off2_light.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_block_up2.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_block_up2.png
new file mode 100755
index 0000000000..a51384a08e
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_block_up2.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_block_up2_light.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_block_up2_light.png
new file mode 100755
index 0000000000..33fbef70c4
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_block_up2_light.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_check2.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_check2.png
new file mode 100755
index 0000000000..45fac29f3f
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_check2.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_check2_light.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_check2_light.png
new file mode 100755
index 0000000000..4b7288d976
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_check2_light.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_work2.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_work2.png
new file mode 100755
index 0000000000..4e721b457e
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_work2.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_work2_light.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_work2_light.png
new file mode 100755
index 0000000000..5e63a96978
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-ldpi/icon_map_marker_road_work2_light.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_accident3.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_accident3.png
new file mode 100755
index 0000000000..3ceef9aa09
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_accident3.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_accident3_light.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_accident3_light.png
new file mode 100755
index 0000000000..cea530e6d2
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_accident3_light.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_dark_frog2.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_dark_frog2.png
old mode 100644
new mode 100755
index ad2cfca0c4..1222b2b6c7
Binary files a/modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_dark_frog2.png and b/modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_dark_frog2.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_dark_frog2_light.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_dark_frog2_light.png
new file mode 100755
index 0000000000..45b9e35622
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_dark_frog2_light.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_freeze2.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_freeze2.png
old mode 100644
new mode 100755
index e9befa363b..c363e5feda
Binary files a/modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_freeze2.png and b/modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_freeze2.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_freeze2_light.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_freeze2_light.png
new file mode 100755
index 0000000000..70419c886f
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_freeze2_light.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/bg_map_marker_dark.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/bg_map_marker_dark.png
new file mode 100755
index 0000000000..c1ef274cbe
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/bg_map_marker_dark.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_living.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_living.png
new file mode 100755
index 0000000000..3780ecf9b9
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_living.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_living_light.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_living_light.png
new file mode 100755
index 0000000000..ae94e4bc3d
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_living_light.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_location_yellow.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_location_yellow.png
new file mode 100644
index 0000000000..f05356795e
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_location_yellow.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_pondingl2.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_pondingl2.png
new file mode 100755
index 0000000000..478232ac79
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_pondingl2.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_pondingl2_light.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_pondingl2_light.png
new file mode 100755
index 0000000000..700226f150
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_pondingl2_light.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_block_off2.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_block_off2.png
new file mode 100755
index 0000000000..2fb4ef553e
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_block_off2.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_block_off2_light.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_block_off2_light.png
new file mode 100755
index 0000000000..9b424494ee
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_block_off2_light.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_block_up2.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_block_up2.png
new file mode 100755
index 0000000000..e62fd5ec03
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_block_up2.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_block_up2_light.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_block_up2_light.png
new file mode 100755
index 0000000000..0ac89f4dec
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_block_up2_light.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_check2.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_check2.png
new file mode 100755
index 0000000000..001974ba87
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_check2.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_check2_light.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_check2_light.png
new file mode 100755
index 0000000000..5baea2a41b
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_check2_light.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_work2.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_work2.png
new file mode 100755
index 0000000000..c11e911f15
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_work2.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_work2_light.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_work2_light.png
new file mode 100755
index 0000000000..7875086c3e
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_road_work2_light.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_accident3.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_accident3.png
new file mode 100755
index 0000000000..fe68bc7cba
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_accident3.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_accident3_light.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_accident3_light.png
new file mode 100755
index 0000000000..911bee2df4
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_accident3_light.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_dark_frog2.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_dark_frog2.png
old mode 100644
new mode 100755
index 107ac5bce6..787101fbb1
Binary files a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_dark_frog2.png and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_dark_frog2.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_dark_frog2_light.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_dark_frog2_light.png
new file mode 100755
index 0000000000..b6164bcfdd
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_dark_frog2_light.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_freeze2.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_freeze2.png
old mode 100644
new mode 100755
index c7f02cd852..d34779845e
Binary files a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_freeze2.png and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_freeze2.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_freeze2_light.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_freeze2_light.png
new file mode 100755
index 0000000000..353cfefec6
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_freeze2_light.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable/bg_map_marker_yellow_info.xml b/modules/mogo-module-service/src/main/res/drawable/bg_map_marker_yellow_info.xml
new file mode 100644
index 0000000000..b2be8e312e
--- /dev/null
+++ b/modules/mogo-module-service/src/main/res/drawable/bg_map_marker_yellow_info.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-service/src/main/res/drawable/bg_shape_reverse_yellow.xml b/modules/mogo-module-service/src/main/res/drawable/bg_shape_reverse_yellow.xml
new file mode 100644
index 0000000000..6bc80c96dc
--- /dev/null
+++ b/modules/mogo-module-service/src/main/res/drawable/bg_shape_reverse_yellow.xml
@@ -0,0 +1,17 @@
+
+
+ -
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/mogo-module-share/build.gradle b/modules/mogo-module-share/build.gradle
index 41c1cbc2ec..e355181036 100644
--- a/modules/mogo-module-share/build.gradle
+++ b/modules/mogo-module-share/build.gradle
@@ -34,6 +34,7 @@ dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation rootProject.ext.dependencies.kotlinstdlibjdk7
implementation rootProject.ext.dependencies.androidxappcompat
+ implementation rootProject.ext.dependencies.androidxrecyclerview
implementation rootProject.ext.dependencies.androidxccorektx
implementation rootProject.ext.dependencies.androidxconstraintlayout
implementation rootProject.ext.dependencies.arouter
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareVoiceCmdReceiver.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareVoiceCmdReceiver.kt
index 5a0d662a84..6c4593b685 100644
--- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareVoiceCmdReceiver.kt
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareVoiceCmdReceiver.kt
@@ -4,22 +4,57 @@ import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import com.mogo.module.share.constant.ShareConstants
-import com.mogo.module.share.constant.ShareConstants.VOICE_CMD_PUB_TROUBLE_HELP
+import com.mogo.module.share.constant.ShareConstants.*
+import com.mogo.module.share.manager.UploadHelper
import com.mogo.utils.logger.Logger
+import org.json.JSONObject
/**
* 用于接收唤醒词指令,现在只接收 com.zhidao.speech.awake.notify 这一条广播
*/
class ShareVoiceCmdReceiver : BroadcastReceiver() {
+ private val TAG = "ShareVoiceCmdReceiver"
override fun onReceive(context: Context, intent: Intent) {
// 接收唤醒词指令
- val command = intent.getStringExtra("command")
- Logger.d("ShareCmdReceiver", "收到唤醒词指令: $command")
- if (command == VOICE_CMD_PUB_TROUBLE_HELP) {
- // 开启服务,准备上报求助
- val seekHelp = Intent(context, VoiceCmdService::class.java)
- seekHelp.putExtra(ShareConstants.VOICE_CMD_SERVICE_EVENT_KEY, ShareConstants.VOICE_CMD_SERVICE_SEEK_HELP)
- context.startService(seekHelp)
+ val command = intent.getStringExtra("command")?:""
+ Logger.d(TAG, "收到唤醒词指令: $command")
+ when (command) {
+ VOICE_CMD_PUB_TROUBLE_HELP -> {
+ // 开启服务,准备上报求助
+ val seekHelp = Intent(context, VoiceCmdService::class.java)
+ seekHelp.putExtra(ShareConstants.VOICE_CMD_SERVICE_EVENT_KEY, ShareConstants.VOICE_CMD_SERVICE_SEEK_HELP)
+ context.startService(seekHelp)
+ }
+ VOICE_CMD_GO_TO_SHARE ->{
+ val ob = JSONObject(intent.getStringExtra("data") ?: "").opt("ob")
+ Logger.d(TAG, "ob: $ob")
+ when (ob) {
+ "积水"->{
+ UploadHelper.upload(context, TYPE_STAGNANT_WATER)
+ }
+ "积冰"->{
+ UploadHelper.upload(context, TYPE_ROAD_ICY)
+ }
+ "雾"->{
+ UploadHelper.upload(context, TYPE_DENSE_FOG)
+ }
+ "交通事故"->{
+ UploadHelper.upload(context, TYPE_ACCIDENT)
+ }
+ "施工"->{
+ UploadHelper.upload(context, TYPE_ROAD_CONSTRUCTION)
+ }
+ }
+ }
+ VOICE_CMD_PUB_ROAD_CONDITION->{
+ val ob = JSONObject(intent.getStringExtra("data") ?: "").opt("obj")
+ Logger.d(TAG, "ob: $ob")
+ if(ob == "路况") {
+ // 上报实时路况
+ Logger.d(TAG, "分享框准备触发上报实时路况")
+ UploadHelper.upload(context, TYPE_REAL_TIME_TRAFFIC)
+ }
+ }
}
}
}
\ No newline at end of file
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/constant/ShareConstants.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/constant/ShareConstants.java
index a0134b5feb..30d347f4a6 100644
--- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/constant/ShareConstants.java
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/constant/ShareConstants.java
@@ -19,5 +19,22 @@ public class ShareConstants {
public static final String VOICE_CMD_SERVICE_EVENT_KEY = "type";
public static final int VOICE_CMD_SERVICE_SEEK_HELP = 1;
+ // 此处只记录了事故、实时路况、道路积水、道路结冰、浓雾,至于拥堵、交通检查和封路是在extention模块里面管理
public static final String VOICE_CMD_PUB_TROUBLE_HELP = "com.zhidao.auxiliaryDriving.pubTroubleHelp";
+ public static final String VOICE_CMD_GO_TO_SHARE = "com.zhidao.share";
+ /**
+ * 这个是实时路况,不是拥堵,拥堵放在了extention模块里面处理
+ */
+ public static final String VOICE_CMD_PUB_ROAD_CONDITION = "com.zhidao.pathfinder.report.roadCondition";
+
+ public static final String TYPE_BLOCK = "10007";
+ public static final String TYPE_TRAFFIC_CHECK = "10002";
+ public static final String TYPE_CLOSURE = "10003";
+ public static final String TYPE_ACCIDENT = "10013";
+ public static final String TYPE_REAL_TIME_TRAFFIC = "10015";
+ public static final String TYPE_SEEK_HELP = "6";
+ public static final String TYPE_STAGNANT_WATER = "10008";
+ public static final String TYPE_ROAD_ICY = "10011";
+ public static final String TYPE_DENSE_FOG = "10010";
+ public static final String TYPE_ROAD_CONSTRUCTION = "10006";
}
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java
index 6337780fac..d876d6c3e2 100644
--- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java
@@ -20,6 +20,7 @@ import com.mogo.module.share.ShareControl;
import com.mogo.module.share.constant.ShareConstants;
import com.mogo.module.share.manager.ISeekHelpListener;
import com.mogo.module.share.manager.SeekHelpManager;
+import com.mogo.module.share.manager.UploadHelper;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.analytics.IMogoAnalytics;
@@ -47,12 +48,19 @@ public class LaucherShareDialog implements View.OnClickListener {
private TextView tvTrafficCheck;
private TextView tvClosure;
private TextView tvNeedHelp;
+
+ private TextView tvAccident;
+ private TextView tvRealTimeTraffic;
+ private TextView tvStagnantWater;
+ private TextView tvRoadIcy;
+ private TextView tvDenseFog;
+ private TextView tvConstruction;
+
private Context mContext;
private IMogoAnalytics mAnalytics;
private IMogoStatusManager mStatusManager;
private IMogoServiceApis mApis;
-
private WindowManager windowManager;
public LaucherShareDialog(@NonNull Context context) {
@@ -72,19 +80,34 @@ public class LaucherShareDialog implements View.OnClickListener {
dismiss();
}
});
+
+
tvBlock = body.findViewById(R.id.tvBlock);
tvTrafficCheck = body.findViewById(R.id.tvTrafficCheck);
tvClosure = body.findViewById(R.id.tvClosure);
- tvNeedHelp = body.findViewById(R.id.tvNeedHelp);
+ tvNeedHelp = body.findViewById(R.id.tvSeekHelp);
+
+ tvAccident = body.findViewById(R.id.tvAccident);
+ tvRealTimeTraffic = body.findViewById(R.id.tvRealTimeTraffic);
+ tvStagnantWater = body.findViewById(R.id.tvStagnantWater);
+ tvRoadIcy = body.findViewById(R.id.tvRoadIcy);
+ tvDenseFog = body.findViewById(R.id.tvDenseFog);
+ tvConstruction = body.findViewById(R.id.tvConstruction);
}
private void initListener() {
-
tvBlock.setOnClickListener(this);
tvNeedHelp.setOnClickListener(this);
tvTrafficCheck.setOnClickListener(this);
tvClosure.setOnClickListener(this);
+
+ tvAccident.setOnClickListener(this);
+ tvRealTimeTraffic.setOnClickListener(this);
+ tvStagnantWater.setOnClickListener(this);
+ tvRoadIcy.setOnClickListener(this);
+ tvDenseFog.setOnClickListener(this);
+ tvConstruction.setOnClickListener(this);
}
@Override
@@ -94,7 +117,7 @@ public class LaucherShareDialog implements View.OnClickListener {
if (id == R.id.tvBlock) {
//拥堵
traceTanluData("1");
- sendShareReceiver("1");
+ sendShareReceiver(ShareConstants.TYPE_BLOCK);
traceTypeData("1");
dismiss();
} else if (id == R.id.oil_price_layout) {
@@ -108,18 +131,43 @@ public class LaucherShareDialog implements View.OnClickListener {
} else if (id == R.id.tvTrafficCheck) {
//交通检查
traceData("1");
- sendShareReceiver("2");
+ sendShareReceiver(ShareConstants.TYPE_TRAFFIC_CHECK);
traceTypeData("3");
dismiss();
} else if (id == R.id.tvClosure) {
//封路
traceData("1");
- sendShareReceiver("3");
+ sendShareReceiver(ShareConstants.TYPE_CLOSURE);
traceTypeData("4");
dismiss();
- } else if (id == R.id.tvNeedHelp) {
+ } else if (id == R.id.tvSeekHelp) {
// 故障求助
SeekHelpManager.INSTANCE.seekHelp(mContext,seekListener,true);
+ dismiss();
+ } else if (id == R.id.tvAccident) {
+ // 事故
+ sendShareReceiver(ShareConstants.TYPE_ACCIDENT);
+ dismiss();
+ } else if (id == R.id.tvConstruction) {
+ // 道路施工
+ sendShareReceiver(ShareConstants.TYPE_ROAD_CONSTRUCTION);
+ dismiss();
+ } else if (id == R.id.tvRealTimeTraffic) {
+ // 实时路况
+ sendShareReceiver(ShareConstants.TYPE_REAL_TIME_TRAFFIC);
+ dismiss();
+ } else if (id == R.id.tvStagnantWater) {
+ // 道路积水
+ sendShareReceiver(ShareConstants.TYPE_STAGNANT_WATER);
+ dismiss();
+ } else if (id == R.id.tvRoadIcy) {
+ // 道路结冰
+ sendShareReceiver(ShareConstants.TYPE_ROAD_ICY);
+ dismiss();
+ } else if (id == R.id.tvDenseFog) {
+ // 浓雾
+ sendShareReceiver(ShareConstants.TYPE_DENSE_FOG);
+ dismiss();
}
}
@@ -144,15 +192,7 @@ public class LaucherShareDialog implements View.OnClickListener {
* 发送广播 1拥堵,2交通检查,3封路
*/
private void sendShareReceiver(String type) {
- mStatusManager.setUploadingStatus("CARD_TYPE_ROAD_CONDITION", true);
-
- Logger.d("LaucherShareDialog", "LaucherShareDialog sendShareReceiver ---->");
- Intent intent = new Intent();
- intent.setAction("com.zhidao.roadcondition.share");
- intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
- intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
- intent.putExtra("type", type);
- mContext.sendBroadcast(intent);
+ UploadHelper.INSTANCE.upload(mContext, type);
}
/**
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/UploadHelper.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/UploadHelper.kt
new file mode 100644
index 0000000000..906c291da8
--- /dev/null
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/UploadHelper.kt
@@ -0,0 +1,23 @@
+package com.mogo.module.share.manager
+
+import android.content.Context
+import android.content.Intent
+import com.mogo.module.share.ShareControl
+import com.mogo.module.share.dialog.LaucherShareDialog
+import com.mogo.utils.logger.Logger
+
+/**
+ * 上报工具类
+ */
+object UploadHelper {
+ fun upload(context:Context, type: String) {
+ ShareControl.getInstance(context).mogoServiceApis.statusManagerApi.setUploadingStatus("CARD_TYPE_ROAD_CONDITION", true)
+ Logger.d("UploadHelper", "upload ----> $type")
+ val intent = Intent()
+ intent.action = "com.zhidao.roadcondition.share"
+ intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND)
+ intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES)
+ intent.putExtra("type", type)
+ context.sendBroadcast(intent)
+ }
+}
\ No newline at end of file
diff --git a/modules/mogo-module-share/src/main/res/drawable-ldpi/share_accident.png b/modules/mogo-module-share/src/main/res/drawable-ldpi/share_accident.png
new file mode 100644
index 0000000000..9dd6d425c9
Binary files /dev/null and b/modules/mogo-module-share/src/main/res/drawable-ldpi/share_accident.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-ldpi/share_block_up.png b/modules/mogo-module-share/src/main/res/drawable-ldpi/share_block_up.png
index d2f7197cce..b504cffe87 100644
Binary files a/modules/mogo-module-share/src/main/res/drawable-ldpi/share_block_up.png and b/modules/mogo-module-share/src/main/res/drawable-ldpi/share_block_up.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-ldpi/share_dense_fog.png b/modules/mogo-module-share/src/main/res/drawable-ldpi/share_dense_fog.png
new file mode 100644
index 0000000000..6a16103d0e
Binary files /dev/null and b/modules/mogo-module-share/src/main/res/drawable-ldpi/share_dense_fog.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-ldpi/share_real_time_traffic.png b/modules/mogo-module-share/src/main/res/drawable-ldpi/share_real_time_traffic.png
new file mode 100644
index 0000000000..7defe6986d
Binary files /dev/null and b/modules/mogo-module-share/src/main/res/drawable-ldpi/share_real_time_traffic.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-ldpi/share_road_closure.png b/modules/mogo-module-share/src/main/res/drawable-ldpi/share_road_closure.png
index f6e8d2b499..d20dacee3a 100644
Binary files a/modules/mogo-module-share/src/main/res/drawable-ldpi/share_road_closure.png and b/modules/mogo-module-share/src/main/res/drawable-ldpi/share_road_closure.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-ldpi/share_road_construction.png b/modules/mogo-module-share/src/main/res/drawable-ldpi/share_road_construction.png
new file mode 100644
index 0000000000..3c2ba1225c
Binary files /dev/null and b/modules/mogo-module-share/src/main/res/drawable-ldpi/share_road_construction.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-ldpi/share_road_icy.png b/modules/mogo-module-share/src/main/res/drawable-ldpi/share_road_icy.png
new file mode 100644
index 0000000000..53585d40d1
Binary files /dev/null and b/modules/mogo-module-share/src/main/res/drawable-ldpi/share_road_icy.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-ldpi/share_seek_help.png b/modules/mogo-module-share/src/main/res/drawable-ldpi/share_seek_help.png
index c87f75fd0d..30f26921aa 100644
Binary files a/modules/mogo-module-share/src/main/res/drawable-ldpi/share_seek_help.png and b/modules/mogo-module-share/src/main/res/drawable-ldpi/share_seek_help.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-ldpi/share_stagnant_water.png b/modules/mogo-module-share/src/main/res/drawable-ldpi/share_stagnant_water.png
new file mode 100644
index 0000000000..f125b9f22e
Binary files /dev/null and b/modules/mogo-module-share/src/main/res/drawable-ldpi/share_stagnant_water.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-ldpi/share_traffic_check.png b/modules/mogo-module-share/src/main/res/drawable-ldpi/share_traffic_check.png
index 737a4c75a8..1b5af5fe54 100644
Binary files a/modules/mogo-module-share/src/main/res/drawable-ldpi/share_traffic_check.png and b/modules/mogo-module-share/src/main/res/drawable-ldpi/share_traffic_check.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_accident.png b/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_accident.png
new file mode 100644
index 0000000000..cfcb9eb87f
Binary files /dev/null and b/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_accident.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_block_up.png b/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_block_up.png
index 0d33d14d6c..0a54b48bad 100644
Binary files a/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_block_up.png and b/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_block_up.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_dense_fog.png b/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_dense_fog.png
new file mode 100644
index 0000000000..160cdee6a6
Binary files /dev/null and b/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_dense_fog.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_real_time_traffic.png b/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_real_time_traffic.png
new file mode 100644
index 0000000000..d9434fe5f1
Binary files /dev/null and b/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_real_time_traffic.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_road_closure.png b/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_road_closure.png
index 0356075b5d..a050e2b61c 100644
Binary files a/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_road_closure.png and b/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_road_closure.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_road_construction.png b/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_road_construction.png
new file mode 100644
index 0000000000..4b82b87aa7
Binary files /dev/null and b/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_road_construction.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_road_icy.png b/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_road_icy.png
new file mode 100644
index 0000000000..9edf8ac119
Binary files /dev/null and b/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_road_icy.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_seek_help.png b/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_seek_help.png
index 018f787003..6ac62048b6 100644
Binary files a/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_seek_help.png and b/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_seek_help.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_stagnant_water.png b/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_stagnant_water.png
new file mode 100644
index 0000000000..de26656f73
Binary files /dev/null and b/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_stagnant_water.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_traffic_check.png b/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_traffic_check.png
index d9139b14e3..a4660d5e0b 100644
Binary files a/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_traffic_check.png and b/modules/mogo-module-share/src/main/res/drawable-xhdpi/share_traffic_check.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable/shape_bg_222533_20px.xml b/modules/mogo-module-share/src/main/res/drawable/shape_bg_222533_20px.xml
index 0fa61ad26e..1b1f5226d5 100644
--- a/modules/mogo-module-share/src/main/res/drawable/shape_bg_222533_20px.xml
+++ b/modules/mogo-module-share/src/main/res/drawable/shape_bg_222533_20px.xml
@@ -1,5 +1,8 @@
-
-
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-share/src/main/res/layout/item_share_btn.xml b/modules/mogo-module-share/src/main/res/layout/item_share_btn.xml
new file mode 100644
index 0000000000..c732a3e2e5
--- /dev/null
+++ b/modules/mogo-module-share/src/main/res/layout/item_share_btn.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-share/src/main/res/layout/launcher_dialog_share_2.xml b/modules/mogo-module-share/src/main/res/layout/launcher_dialog_share_2.xml
index 7c4e60d6bc..d88e11d825 100644
--- a/modules/mogo-module-share/src/main/res/layout/launcher_dialog_share_2.xml
+++ b/modules/mogo-module-share/src/main/res/layout/launcher_dialog_share_2.xml
@@ -36,77 +36,133 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableTop="@drawable/share_block_up"
- android:drawablePadding="@dimen/share_module_tv_margin_top"
- android:gravity="center"
- android:text="上报拥堵"
+ android:text="拥堵"
+ android:textSize="@dimen/dp_32"
+ android:textColor="#fff"
app:layout_constraintHorizontal_chainStyle="spread_inside"
- android:layout_marginStart="@dimen/dp_76"
- android:textColor="@color/white"
- android:textSize="@dimen/share_module_item"
- android:textStyle="bold"
- android:layout_marginTop="@dimen/dp_64"
- app:layout_constraintLeft_toLeftOf="@+id/vBg"
+ android:gravity="center"
+ app:layout_constraintTop_toBottomOf="@+id/btn_share_title"
app:layout_constraintRight_toLeftOf="@+id/tvTrafficCheck"
- app:layout_constraintTop_toBottomOf="@+id/btn_share_title" />
-
+ app:layout_constraintLeft_toLeftOf="@+id/vBg"
+ android:layout_marginStart="@dimen/dp_116"
+ android:layout_marginTop="@dimen/dp_78"
+ android:drawablePadding="@dimen/dp_30" />
-
+ android:drawablePadding="@dimen/dp_30" />
-
+ app:layout_constraintRight_toLeftOf="@+id/tvAccident"
+ android:textColor="#fff"
+ android:gravity="center"
+ android:drawablePadding="@dimen/dp_30" />
+
+
+
-
-
+ app:layout_constraintTop_toBottomOf="@+id/tvTrafficCheck"
+ app:layout_constraintLeft_toLeftOf="@+id/tvTrafficCheck"
+ android:layout_marginTop="@dimen/dp_62"
+ android:drawablePadding="@dimen/dp_30" />
+ android:drawableTop="@drawable/share_stagnant_water"
+ android:text="道路积水"
+ android:textSize="@dimen/dp_32"
+ android:textColor="#fff"
+ android:gravity="center"
+ app:layout_constraintTop_toBottomOf="@+id/tvClosure"
+ app:layout_constraintLeft_toLeftOf="@+id/tvClosure"
+ android:layout_marginTop="@dimen/dp_62"
+ android:drawablePadding="@dimen/dp_30" />
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-share/src/main/res/values-ldpi/dimens.xml b/modules/mogo-module-share/src/main/res/values-ldpi/dimens.xml
index d28bf549bd..e74470a9b8 100644
--- a/modules/mogo-module-share/src/main/res/values-ldpi/dimens.xml
+++ b/modules/mogo-module-share/src/main/res/values-ldpi/dimens.xml
@@ -1,8 +1,8 @@
- 693px
- 320px
+ 776px
+ 428px
34px
43px
100px
diff --git a/modules/mogo-module-share/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-share/src/main/res/values-xhdpi/dimens.xml
index ba3a919930..c50ed40d1e 100644
--- a/modules/mogo-module-share/src/main/res/values-xhdpi/dimens.xml
+++ b/modules/mogo-module-share/src/main/res/values-xhdpi/dimens.xml
@@ -1,7 +1,7 @@
- 1300px
- 600px
+ 1464px
+ 808px
64px
80px
200px
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java b/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java
index b2c827db12..346667562f 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java
@@ -160,9 +160,11 @@ public interface IMogoServiceApis extends IProvider {
/**
* 地址操作
+ * Deprecated, use {@link IMogoSearchManager} instead.
*
* @return
*/
+ @Deprecated
IMogoAddressManager getAddressManagerApi();
/**
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..7be4dd6e4e 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,23 @@ public interface IMogoADASController extends IProvider {
/**
* 打开adas
*/
+ @Deprecated
void openADAS();
/**
- * 关闭adas
+ * 隐藏adas
*/
void closeADAS();
+ /**
+ * 显示
+ */
+ void showADAS();
+
+ /**
+ * 关闭
+ */
+ void killADAS();
+
+ void setSettingStatus(boolean show);
}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/map/IMogoMapService.java b/services/mogo-service-api/src/main/java/com/mogo/service/map/IMogoMapService.java
index d4a794ea16..dce52487ec 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/map/IMogoMapService.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/map/IMogoMapService.java
@@ -41,6 +41,7 @@ public interface IMogoMapService extends IProvider {
* @param context
* @return 定位实例
*/
+ @Deprecated
IMogoLocationClient getLocationClient( Context context );
/**
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoAddressManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoAddressManager.java
index 617023ea53..cd83a54470 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoAddressManager.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoAddressManager.java
@@ -6,22 +6,28 @@ import com.mogo.map.MogoLatLng;
/**
* @author zyz
* 2020-01-12.
+ *
+ * Deprecated, use {@link IMogoSearchManager} instead."
*/
+@Deprecated
public interface IMogoAddressManager extends IProvider {
/**
* 回家
*/
+ @Deprecated
void goHome();
/**
* 去公司
*/
+ @Deprecated
void goCompany();
/**
* 打开搜索
*/
+ @Deprecated
void goSearch();
/**
@@ -29,12 +35,15 @@ public interface IMogoAddressManager extends IProvider {
*
* @param destination 目的地
*/
+ @Deprecated
void calculatePath( MogoLatLng destination );
/**
* 分类搜索
*/
- void categorySearch(String category);
+ @Deprecated
+ void categorySearch( String category );
+ @Deprecated
void goSettings();
}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleLifecycle.java b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleLifecycle.java
index dc2dad5741..7234996fbe 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleLifecycle.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleLifecycle.java
@@ -22,4 +22,5 @@ public interface IMogoModuleLifecycle {
* accOn 事件回调
*/
void accOn();
+
}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoSearchManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoSearchManager.java
index c477e5ecf0..92b1fe5067 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoSearchManager.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoSearchManager.java
@@ -1,6 +1,7 @@
package com.mogo.service.module;
import com.alibaba.android.arouter.facade.template.IProvider;
+import com.mogo.map.MogoLatLng;
/**
* @author zyz
@@ -8,11 +9,35 @@ import com.alibaba.android.arouter.facade.template.IProvider;
*/
public interface IMogoSearchManager extends IProvider {
+ /**
+ * 回家
+ */
void goHome();
+
+ /**
+ * 去公司
+ */
void goCompany();
+
+ /**
+ * 打开搜索
+ */
void showSearch();
- void showMain();
- void speakDraft();
- void speakDetail();
- void showCategory(String keyword);
+
+ /**
+ * 规划路线
+ *
+ * @param destination 目的地
+ */
+ void calculatePath( MogoLatLng destination );
+
+ /**
+ * 分类搜索
+ */
+ void categorySearch( String keyword );
+
+ /**
+ * 打开导航设置
+ */
+ void goSettings();
}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoSettingManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoSettingManager.java
index 5c7bacd731..f043179468 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoSettingManager.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoSettingManager.java
@@ -8,8 +8,51 @@ import com.alibaba.android.arouter.facade.template.IProvider;
*/
public interface IMogoSettingManager extends IProvider {
+ /**
+ * 路线偏好
+ *
+ * @return
+ */
int getPathPrefer();
+
+ /**
+ * 音量
+ *
+ * @return
+ */
int getVolume();
+
+ /**
+ * 获取播报模式
+ *
+ * @return
+ */
int getVoiceStyle();
+
+ /**
+ * 日夜墨水
+ *
+ * @return
+ */
int getMapType();
+
+ /**
+ * 简洁播报
+ */
+ void speakDraft();
+
+ /**
+ * 详细播报
+ */
+ void speakDetail();
+
+ /**
+ * 打开巡航模式
+ */
+ void openAimlessMode();
+
+ /**
+ * 关闭巡航模式
+ */
+ void closeAimlessMode();
}
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..1b26b1e000 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
@@ -47,6 +48,7 @@ dependencies {
implementation rootProject.ext.dependencies.mogocommons
implementation rootProject.ext.dependencies.mogoserviceapi
implementation rootProject.ext.dependencies.mogoconnection
+ implementation rootProject.ext.dependencies.modulecommon
} else {
api project(":libraries:mogo-map")
implementation project(":libraries:mogo-map-api")
@@ -54,6 +56,7 @@ dependencies {
implementation project(":foudations:mogo-commons")
implementation project(":services:mogo-service-api")
implementation project(":foudations:mogo-connection")
+ implementation project(":modules:mogo-module-common")
}
}
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..019e4c91c1 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
@@ -1,22 +1,30 @@
package com.mogo.service.impl.adas;
+import android.app.ActivityManager;
import android.app.Application;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.os.RemoteException;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.map.MogoOverlayManager;
+import com.mogo.module.common.utils.CarSeries;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.adas.IMogoADASController;
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;
+import java.util.List;
+
/**
* @author congtaowang
* @since 2020-03-10
@@ -28,7 +36,7 @@ public class MogoADASController implements IMogoADASController {
private static final String TAG = "MogoADASController";
- public static final String ACTION = "com.zhidao.speech.awake.notify";
+ public static final String ACTION = "com.zhidao.autopilot.ACTION_BOOT";
public static final String PARAM_COMMAND = "command";
public static final String VAL_COMMAND = "system.application.operation";
public static final String PARAM_DATA = "data";
@@ -38,49 +46,76 @@ 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" );
+ if ( !isProcessRunning( AbsMogoApplication.getApp(), getPackageUid( AbsMogoApplication.getApp(), "com.zhidiao.autopilot" ) ) ) {
+ init( AbsMogoApplication.getApp() );
+ }
+
+ int delay = CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X ? 0 : 500;
+
+ 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." );
+ }
+ }
+ }, delay );
+ }
+
@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 +130,45 @@ public class MogoADASController implements IMogoADASController {
@Override
public void init( Context context ) {
+ AutopilotServiceManage.getInstance().init( context );
+ }
+ //获取已安装应用的 uid,-1 表示未安装此应用或程序异常
+ public static int getPackageUid( Context context, String packageName ) {
+ try {
+ ApplicationInfo applicationInfo = context.getPackageManager().getApplicationInfo( packageName, 0 );
+ if ( applicationInfo != null ) {
+ return applicationInfo.uid;
+ }
+ } catch ( Exception e ) {
+ return -1;
+ }
+ return -1;
+ }
+
+ /**
+ * 判断某一 uid 的程序是否有正在运行的进程,即是否存活
+ * Created by cafeting on 2017/2/4.
+ *
+ * @param context 上下文
+ * @param uid 已安装应用的 uid
+ * @return true 表示正在运行,false 表示没有运行
+ */
+ public static boolean isProcessRunning( Context context, int uid ) {
+ ActivityManager am = ( ActivityManager ) context.getSystemService( Context.ACTIVITY_SERVICE );
+ List< ActivityManager.RunningServiceInfo > runningServiceInfos = am.getRunningServices( 200 );
+ if ( runningServiceInfos.size() > 0 ) {
+ for ( ActivityManager.RunningServiceInfo appProcess : runningServiceInfos ) {
+ if ( uid == appProcess.uid ) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public void setSettingStatus( boolean show ) {
+ AutopilotServiceManage.getInstance().setSettingStatus( show );
}
}
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 );
}