diff --git a/.idea/misc.xml b/.idea/misc.xml
index 707ee6e613..2dc54c489f 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/20200610172423.png b/20200610172423.png
new file mode 100644
index 0000000000..8ab96d5919
Binary files /dev/null and b/20200610172423.png differ
diff --git a/app/build.gradle b/app/build.gradle
index bea2e83e38..bda52bb550 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -86,9 +86,9 @@ android {
// 是否启动位置服务
buildConfigField 'boolean', 'LAUNCH_LOCATION_SERVICE', 'true'
// 是否使用自定义导航
- buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'false'
+ buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'true'
// 是否作为 launcher 运行
- buildConfigField 'boolean', 'IS_LAUNCHER', 'true'
+ buildConfigField 'boolean', 'IS_LAUNCHER', 'false'
}
// f系列-分体机全系列,未细分
f8xx{
@@ -196,6 +196,7 @@ dependencies {
debugImplementation rootProject.ext.dependencies.gpssimulatordebug
releaseImplementation rootProject.ext.dependencies.gpssimulatornoop
implementation rootProject.ext.dependencies.modulemedia
+ implementation rootProject.ext.dependencies.moduleservice
} else {
launcherImplementation project(':main-extensions:mogo-module-main-launcher')
// launcherImplementation project(':modules:mogo-module-main')
@@ -208,6 +209,7 @@ dependencies {
debugImplementation project(':modules:mogo-module-gps-simulator-debug')
releaseImplementation project(':modules:mogo-module-gps-simulator-noop')
implementation project(':modules:mogo-module-media')
+ implementation project(':modules:mogo-module-service')
}
}
@@ -235,6 +237,7 @@ android.applicationVariants.all { variant ->
def getMonthAndDay() {
+
SimpleDateFormat sdf = new SimpleDateFormat("MMddHH")
return sdf.format(new Date())
}
diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java
index 7a864b552b..b88728dc57 100644
--- a/app/src/main/java/com/mogo/launcher/MogoApplication.java
+++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java
@@ -15,7 +15,7 @@ import com.mogo.module.carchatting.card.CallChatConstant;
import com.mogo.module.common.MogoModule;
import com.mogo.module.common.MogoModulePaths;
import com.mogo.module.media.MediaConstants;
-import com.mogo.module.push.PushUIConstants;
+import com.mogo.module.service.ServiceConst;
import com.mogo.module.tanlu.constant.TanluConstants;
import com.mogo.module.v2x.V2XConst;
import com.mogo.service.MogoServicePaths;
@@ -35,37 +35,39 @@ public class MogoApplication extends AbsMogoApplication {
@Override
public void onCreate() {
- DebugConfig.setNetMode(BuildConfig.NET_ENV);
- DebugConfig.setDebug(BuildConfig.DEBUG);
- DebugConfig.setAIType(BuildConfig.AIType);
+ DebugConfig.setNetMode( BuildConfig.NET_ENV );
+ DebugConfig.setDebug( BuildConfig.DEBUG );
+ DebugConfig.setAIType( BuildConfig.AIType );
DebugConfig.setLaunchLocationService( BuildConfig.LAUNCH_LOCATION_SERVICE );
DebugConfig.setUseCustomNavi( BuildConfig.USE_CUSTOM_NAVI );
DebugConfig.setLauncher( BuildConfig.IS_LAUNCHER );
super.onCreate();
// Crash 日志收集
final long start = System.currentTimeMillis();
- CrashSystem crashSystem = CrashSystem.getInstance(this);
+ CrashSystem crashSystem = CrashSystem.getInstance( this );
crashSystem.init();
//设置debug模式,日志不上传
- crashSystem.setDebug(BuildConfig.DEBUG);
- Logger.init(BuildConfig.DEBUG ? LogLevel.DEBUG : LogLevel.OFF);
+ crashSystem.setDebug( BuildConfig.DEBUG );
+ Logger.init( BuildConfig.DEBUG ? LogLevel.DEBUG : LogLevel.OFF );
// MogoModulePaths.addModule(new MogoModule(PATH_GUIDE_FRAGMENT, PATH_GUIDE_MODULE_NAME));
- MogoModulePaths.addModule(new MogoModule( AuthorizeConstant.PATH_AGREEMENT_FRAGMENT, AuthorizeConstant.PATH_AGREEMENT_MODULE_NAME));
+ MogoModulePaths.addModule( new MogoModule( AuthorizeConstant.PATH_AGREEMENT_FRAGMENT, AuthorizeConstant.PATH_AGREEMENT_MODULE_NAME ) );
//运营位卡片,需要默认显示,放在第一个加载
- MogoModulePaths.addModule(new MogoModule(AdCardConstants.TAG, AdCardConstants.MODULE_NAME));
- if(DebugConfig.isLauncher()) {
- MogoModulePaths.addModule(new MogoModule(MediaConstants.TAG, MediaConstants.MODULE_TYPE));
+ MogoModulePaths.addModule( new MogoModule( AdCardConstants.TAG, AdCardConstants.MODULE_NAME ) );
+ if ( DebugConfig.isLauncher() ) {
+ 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( V2XConst.PATH_V2X_UI, V2XConst.PATH_V2X_UI));
- MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_SHARE, "ShareControl"));
+ MogoModulePaths.addModule( new MogoModule( CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME ) );
+ MogoModulePaths.addModule( new MogoModule( TanluConstants.TAG, TanluConstants.MODEL_NAME ) );
+ MogoModulePaths.addModule( new MogoModule( MogoServicePaths.PATH_SHARE, "ShareControl" ) );
+
+ MogoModulePaths.addBaseModule( new MogoModule( ServiceConst.PATH_REFRESH_STRATEGY, ServiceConst.PATH_REFRESH_STRATEGY ) );
+ MogoModulePaths.addBaseModule( new MogoModule( V2XConst.PATH_V2X_UI, V2XConst.PATH_V2X_UI ) );
// 暂时去掉推送
// MogoModulePaths.addModule(new MogoModule(PushUIConstants.TAG, PushUIConstants.TAG));
- Log.i("timer", "cost " + (System.currentTimeMillis() - start) + "ms");
+ Log.i( "timer", "cost " + ( System.currentTimeMillis() - start ) + "ms" );
}
@Override
@@ -73,15 +75,15 @@ public class MogoApplication extends AbsMogoApplication {
super.init();
IMogoSocketManager mMogoSocketManager = ARouter.getInstance().navigation( IMogoSocketManager.class );
if ( mMogoSocketManager != null ) {
- mMogoSocketManager.init(getApplicationContext(), "com.mogo.launcher");
+ mMogoSocketManager.init( getApplicationContext(), "com.mogo.launcher" );
} else {
Logger.e( TAG, "init socket server error." );
}
}
@Override
- protected void attachBaseContext(Context base) {
- super.attachBaseContext(base);
- MultiDex.install(base);
+ protected void attachBaseContext( Context base ) {
+ super.attachBaseContext( base );
+ MultiDex.install( base );
}
}
diff --git a/config.gradle b/config.gradle
index db122db547..359e636a21 100644
--- a/config.gradle
+++ b/config.gradle
@@ -1,13 +1,15 @@
ext {
+ time = ""
+
android = [
// applicationId : "com.mogo.launcher",
// zhidadoApplicationId: "com.zhidao.launcher",
- launcherApplicationId: "com.mogo.launcher",
+ launcherApplicationId : "com.mogo.launcher",
independentApplicationId: "com.mogo.launcher.app",
- compileSdkVersion : 28,
- buildToolsVersion : "29.0.2",
- minSdkVersion : 19,
- targetSdkVersion : 22,
+ compileSdkVersion : 28,
+ buildToolsVersion : "29.0.2",
+ minSdkVersion : 19,
+ targetSdkVersion : 22,
]
dependencies = [
@@ -147,9 +149,10 @@ ext {
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.1-SNAPSHOT",
+ adasapi : "com.zhidao.autopilot.support:adas:1.0.1",
// 个人中心的SDK
personalsdk : "com.zhidaoauto.person.info:data:1.0.1",
+ tanluupload : "com.mogo.module:module-tanlu-upload:${TANLULIB_VERSION}",
]
}
\ No newline at end of file
diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java
index b0711f000d..b1e7afd023 100644
--- a/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java
+++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java
@@ -105,7 +105,7 @@ public class AbsMogoApplication extends Application {
Analytics.getInstance().setAppKey( "6bbe7e0e1ecd8e2f8dc336e1678a2791" );
// 0 - debug 近实时上报,积累一条埋点上报,或者积累3秒上报一次。
// 2 - 本地缓存,聚合上报,积累30条埋点上报,或者积累60秒上报一次。
- AnalyticsConfig.getInstance( sApp ).setMode( DebugConfig.isDebug() ? 2 : 2 );
+ AnalyticsConfig.getInstance( sApp ).setMode( DebugConfig.isDebug() ? 0 : 2 );
AnalyticsConfig.getInstance( sApp ).shouldLog( DebugConfig.isDebug() );
Devices.checkBindState();
@@ -119,7 +119,7 @@ public class AbsMogoApplication extends Application {
mode = DebugConfig.NET_MODE_QA;
}
AccountClientManager.init( sApp, mode, NetEnvironManager.OS_2C, "os2.0-launcher" );
- AccountClientManager.getTicket( new TicketInfoCallback() {
+ getTicket( new TicketInfoCallback() {
@Override
public void onSuccess( String ticket ) {
SpStorage.setTicket( ticket );
@@ -133,6 +133,14 @@ public class AbsMogoApplication extends Application {
} );
}
+ private static void getTicket(TicketInfoCallback callback){
+ if ( DebugConfig.isLauncher() ) {
+ AccountClientManager.getTicket(callback);
+ } else {
+ AccountClientManager.getAppTicket( callback );
+ }
+ }
+
private static void initNetConfig() {
try {
diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/AIAssist.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/AIAssist.java
index 655a831c92..e752812148 100644
--- a/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/AIAssist.java
+++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/AIAssist.java
@@ -361,6 +361,7 @@ public class AIAssist implements VoiceClient.VoiceCmdCallBack, OnTtsListener {
intent.setAction( "pvetec.intent.action.txz.switch" );
intent.putExtra( "window_start_cancel", status );
intent.putExtra( "extra_switch_type", "window_start_cancel" );
+ Logger.d( TAG, "status = %d", status );
context.sendBroadcast( intent );
}
diff --git a/gradle.properties b/gradle.properties
index d0ca0fd0cf..e47b270df9 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -60,9 +60,9 @@ MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.0.0.1
# 探路
MOGO_MODULE_TANLU_VERSION=1.1.0.1-SNAPSHOT
# 车聊聊
-CARCHATTING_VERSION=1.0.4-SNAPSHOT
+CARCHATTING_VERSION=1.0.6-SNAPSHOT
# 车聊聊接口
-CARCHATTINGPROVIDER_VERSION=1.0.4-SNAPSHOT
+CARCHATTINGPROVIDER_VERSION=1.0.6-SNAPSHOT
# 视频引导
MOGO_MODULE_GUIDESHOW_VERSION=1.0.2-SNAPSHOT
# 视频引导接口
@@ -70,13 +70,15 @@ 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.32
+MOGO_MODULE_V2X_VERSION=1.1.2
# 媒体卡片
MOGO_MODULE_MEDIA_VERSION=1.0.4.11
# 推送
MOGO_MODULE_PUSH_VERSION=1.0.1
# 广告资源位
MOGO_MODULE_AD_CARD_VERSION=1.0.1
+# 探路上报和分享模块
+TANLULIB_VERSION=1.0.2-SNAPSHOT
## 产品库必备配置
applicationId=com.mogo.launcer
diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java
index e9a150116b..82b151c0a2 100644
--- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java
+++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java
@@ -342,6 +342,9 @@ public class NaviClient implements IMogoNavi {
public void setUseExtraGPSData( boolean use ) {
Logger.d( TAG, "设置外部gps源状态 %s", use );
mAMapNavi.setIsUseExtraGPSData( use );
+ if ( AMapWrapper.getAMap() == null ) {
+ return;
+ }
if ( use ) {
AMapWrapper.getAMap().setLocationSource( new LocationSource() {
@Override
diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/search/RoadSearchClient.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/search/RoadSearchClient.java
index 71ff552352..55dc81ad65 100644
--- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/search/RoadSearchClient.java
+++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/search/RoadSearchClient.java
@@ -59,9 +59,10 @@ public class RoadSearchClient implements IMogoRoadSearch, RouteSearch.OnRouteSea
}
}
- RouteSearch.DriveRouteQuery searchQuery = new RouteSearch.DriveRouteQuery( fromAndTo, RouteSearch.DRIVING_SINGLE_SHORTEST, latLonPointWays, null, "" );
+ RouteSearch.DriveRouteQuery searchQuery = new RouteSearch.DriveRouteQuery( fromAndTo, RouteSearch.DRIVING_MULTI_CHOICE_AVOID_CONGESTION, latLonPointWays, null, "" );
if ( mRouteSearch == null ) {
mRouteSearch = new RouteSearch( context );
+ mRouteSearch.setRouteSearchListener(this);
}
mRouteSearch.calculateDriveRouteAsyn( searchQuery );
}
@@ -94,14 +95,18 @@ public class RoadSearchClient implements IMogoRoadSearch, RouteSearch.OnRouteSea
return;
}
List< MogoLatLng > points = new ArrayList<>();
-
+ Logger.d(TAG,"onDriveRouteSearched i : " + i);
if ( driveRouteResult == null
|| driveRouteResult.getPaths() == null
|| driveRouteResult.getPaths().isEmpty() ) {
+ Logger.d(TAG,"onDriveRouteSearched result is null");
mListener.onDrivePathSearched( null );
return;
}
DrivePath drivePath = driveRouteResult.getPaths().get( 0 );
+ int size = driveRouteResult.getPaths().size();
+ Logger.d(TAG,"onDriveRouteSearched driveRouteResult size : " + size);
+
List< DriveStep > steps = drivePath.getSteps();
if ( steps == null || steps.isEmpty() ) {
mListener.onDrivePathSearched( null );
diff --git a/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java b/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java
index 63c9099486..92368debb3 100644
--- a/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java
+++ b/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java
@@ -15,10 +15,10 @@ import com.mogo.module.main.MainActivity;
*/
public class MainIndependentActivity extends MainActivity {
@Override
- protected void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
+ protected void onCreate( @Nullable Bundle savedInstanceState ) {
+ super.onCreate( savedInstanceState );
// 独立app需要在onCreate里面增加处理scheme的情况
- mPresenter.handleSchemeIntent(getIntent());
+ mPresenter.handleSchemeIntent( getIntent() );
}
@Override
@@ -34,4 +34,18 @@ public class MainIndependentActivity extends MainActivity {
mApps.setVisibility( View.GONE );
}
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ if ( mCoverUpLayout.getVisibility() != View.VISIBLE ) {
+ mServiceApis.getAdasControllerApi().setUseAlgorithm( true );
+ }
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ mServiceApis.getAdasControllerApi().setUseAlgorithm( false );
+ }
}
diff --git a/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java b/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java
index 4e50009a24..59f382ce6a 100644
--- a/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java
+++ b/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java
@@ -11,6 +11,7 @@ import com.mogo.module.common.MogoModulePaths;
import com.mogo.module.common.utils.CarSeries;
import com.mogo.module.extensions.utils.ExtensionsConfig;
import com.mogo.module.main.MainActivity;
+import com.mogo.module.main.cards.MogoModulesManager;
import com.mogo.utils.logger.Logger;
/**
@@ -28,10 +29,7 @@ public class MainLauncherActivity extends MainActivity {
@Override
protected void addModule() {
super.addModule();
- // F 车机添加返回桌面浮窗
- if ( CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X ) {
- MogoModulePaths.addModule( new MogoModule( BackToLauncherConst.MODULE_PATH, BackToLauncherConst.MODULE_NAME ) );
- }
+ MogoModulePaths.addModule( new MogoModule( BackToLauncherConst.MODULE_PATH, BackToLauncherConst.MODULE_NAME ) );
}
@Override
@@ -39,7 +37,7 @@ public class MainLauncherActivity extends MainActivity {
super.loadContainerModules();
// 显示左边遮罩
mLeftShadowFrame.setVisibility( View.VISIBLE );
- mMogoModuleHandler.loadAppsListModule( com.mogo.module.main.R.id.module_main_id_apps_fragment_container );
+ MogoModulesManager.getInstance().loadAppsListModule( com.mogo.module.main.R.id.module_main_id_apps_fragment_container );
}
@Override
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
index d4a957ba1f..721d801fce 100644
--- 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
@@ -8,6 +8,7 @@ import com.mogo.module.apps.AppServiceHandler;
import com.mogo.module.apps.AppsListActivity;
import com.mogo.module.apps.model.AppInfo;
import com.mogo.module.common.map.CustomNaviInterrupter;
+import com.mogo.utils.LaunchUtils;
/**
* @author congtaowang
@@ -28,11 +29,11 @@ public class InternalFunctionLauncher extends BaseAppLauncher {
switch ( appInfo.getPackageName() ) {
case "com.mogo.launcher.navi.search":
if ( CustomNaviInterrupter.getInstance().interrupt() ) {
- Intent intent = new Intent();
- intent.setAction( "AUTONAVI_STANDARD_BROADCAST_RECV" );
- intent.putExtra( "KEY_TYPE", 10034 );
- intent.putExtra( "SOURCE_APP", "Third App" );
- context.sendBroadcast( intent );
+ try {
+ LaunchUtils.launchByPkg( context, "com.autonavi.amapauto" );
+ } catch ( Exception e ) {
+ e.printStackTrace();
+ }
} else {
AppServiceHandler.getApis().getSearchManagerApi().showSearch();
}
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 7c9565f081..700564dce6 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
@@ -15,13 +15,15 @@ public class NavigatorApps {
private static AppInfo app = new AppInfo( "导航", "com.mogo.launcher.navi.search", "", 0, null, R.drawable.module_apps_ic_navigator_navi, 1 );
private static AppInfo app_ = new AppInfo( "导航", "com.mogo.launcher.navi.search", "", 0, null, R.drawable.module_apps_ic_navigator_navi_disable, 1 );
- private static AppInfo app2 = new AppInfo( "音乐", "com.pvetec.musics", "", 0, null, R.drawable.module_apps_ic_navigator_media, 2 );
+ private static AppInfo app2 = new AppInfo( "音乐", "com.tencent.wecarflow", "", 0, null, R.drawable.module_apps_ic_navigator_media, 2 );
+ private static AppInfo app3 = new AppInfo( "车聊聊", "com.zhidao.imdemo", "", 0, null, R.drawable.module_apps_ic_navigator_im, 6 );
private static AppInfo app4 = new AppInfo( "全部应用", "com.mogo.launcher.applist", "", 0, null, R.drawable.module_apps_ic_navigator_applist, 4 );
public static List< AppInfo > getApps() {
List< AppInfo > sApps = new ArrayList<>();
sApps.add( app );
sApps.add( app2 );
+ sApps.add( app3 );
sApps.add( app4 );
return sApps;
}
@@ -30,6 +32,7 @@ public class NavigatorApps {
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/res/drawable-xhdpi/module_apps_ic_navigator_im.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_navigator_im.png
new file mode 100755
index 0000000000..3ee3703675
Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_navigator_im.png differ
diff --git a/modules/mogo-module-apps/src/main/res/drawable/module_apps_ic_navigator_im.png b/modules/mogo-module-apps/src/main/res/drawable/module_apps_ic_navigator_im.png
new file mode 100755
index 0000000000..7a959f1ca1
Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable/module_apps_ic_navigator_im.png differ
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 74c6826eed..a92fcecdee 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
@@ -1,7 +1,6 @@
package com.mogo.module.back;
import android.content.Context;
-import android.content.Intent;
import android.os.Bundle;
import android.view.View;
@@ -14,14 +13,12 @@ import com.mogo.map.listener.IMogoMapListener;
import com.mogo.map.location.IMogoLocationListener;
import com.mogo.map.marker.IMogoMarkerClickListener;
import com.mogo.map.navi.IMogoNaviListener;
+import com.mogo.module.common.utils.CarSeries;
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.module.IMogoModuleLifecycle;
import com.mogo.service.module.IMogoModuleProvider;
import com.mogo.service.module.ModuleType;
-import com.mogo.utils.logger.Logger;
/**
* @author congtaowang
@@ -30,12 +27,9 @@ import com.mogo.utils.logger.Logger;
* 描述
*/
@Route( path = BackToLauncherConst.MODULE_PATH )
-public class BackToLauncherModuleProvider implements IMogoModuleProvider, IMogoIntentListener {
+public class BackToLauncherModuleProvider implements IMogoModuleProvider {
private IMogoServiceApis mServiceApis;
- private IMogoIntentManager mIntentManager;
-
- public static final String COMMAND_BACK = "com.ileja.launcher.back";
private static final String TAG = "BackToLauncherModuleProvider";
@@ -97,18 +91,10 @@ public class BackToLauncherModuleProvider implements IMogoModuleProvider, IMogoI
@Override
public void init( Context context ) {
- BackToMainHomeManager.addMainHomeView();
+ if ( CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X ) {
+ BackToMainHomeManager.addMainHomeView();
+ }
mServiceApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation();
- mIntentManager = mServiceApis.getIntentManagerApi();
- mIntentManager.registerIntentListener( COMMAND_BACK, this );
BackToMainHomeManager.init( mServiceApis );
}
-
- @Override
- public void onIntentReceived( String intentStr, Intent intent ) {
- if ( COMMAND_BACK.equals( intentStr ) ) {
- Logger.d( TAG, "received back to home command." );
- BackToMainHomeManager.backToLauncher();
- }
- }
}
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/MogoModulePaths.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/MogoModulePaths.java
index 22d5495a51..bf8dcba003 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/MogoModulePaths.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/MogoModulePaths.java
@@ -17,6 +17,9 @@ public class MogoModulePaths {
private static List< MogoModule > mMogoModules = new ArrayList<>();
+ // 不需要启动APP也能运行的模块
+ private static List< MogoModule > mMogoBaseModules = new ArrayList<>();
+
/**
* 地图模块 fragment 路径
*/
@@ -50,7 +53,23 @@ public class MogoModulePaths {
mMogoModules.add( module );
}
+ /**
+ * 添加卡片模块
+ *
+ * @param module
+ */
+ public static void addBaseModule( MogoModule module ) {
+ if ( module == null || TextUtils.isEmpty( module.getPath().replace( " ", "" ) ) ) {
+ throw new IllegalArgumentException( "module path can't be empty or null or blank" );
+ }
+ mMogoBaseModules.add( module );
+ }
+
public static List< MogoModule > getModules() {
return mMogoModules;
}
+
+ public static List< MogoModule > getBaseModules() {
+ return mMogoBaseModules;
+ }
}
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 e14d0aff51..8943d08b6a 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
@@ -17,6 +17,8 @@ import com.mogo.utils.LaunchUtils;
import com.mogo.utils.glide.GlideApp;
import com.mogo.utils.logger.Logger;
+import retrofit2.http.HEAD;
+
/**
* 天气,消息,个人头像
*
@@ -116,7 +118,9 @@ public class ExtensionsFragment extends MvpFragment< ExtensionsView, ExtensionsP
@Override
public void renderUserInfo(UserInfo userInfo) {
- Logger.d(TAG, "renderUserInfo: " + userInfo);
- GlideApp.with(getContext()).load(userInfo.getHeadImgurl()).circleCrop().into(mUserHeadImg);
+ if(userInfo != null){
+ Logger.d(TAG, "renderUserInfo: " + userInfo);
+ GlideApp.with(getContext()).load(userInfo.getHeadImgurl()).circleCrop().into(mUserHeadImg);
+ }
}
}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsModuleConst.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsModuleConst.java
index aab4fbee5b..4c5a0fe623 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsModuleConst.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsModuleConst.java
@@ -65,9 +65,9 @@ public class ExtensionsModuleConst {
//埋点
//分享分类 1:路况,2:油价,3:交通检查,4:封路
- public static final String LAUNCHER_SHARE_TYPE = "Launcher_Share_type";
+ public static final String LAUNCHER_SHARE_TYPE = "v2x_share_type";
//分享/上报按钮点击 from=1 手动点击 from=2 语音打开
- public static final String LAUNCHER_SHARE_CLICK = "Launcher_Share_Click";
+ public static final String LAUNCHER_SHARE_CLICK = "v2x_share_click";
public static final String CARNET_USER_UPLOAD = "CarNet_user_upload";
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 43c603bbf7..9648fe49a8 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
@@ -17,6 +17,7 @@ import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.alibaba.android.arouter.launcher.ARouter;
+import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.mvp.MvpFragment;
import com.mogo.map.listener.IMogoMapListener;
import com.mogo.map.location.IMogoLocationClient;
@@ -48,6 +49,8 @@ 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.AppUtils;
+import com.mogo.utils.LaunchUtils;
import com.mogo.utils.ResourcesHelper;
import com.mogo.utils.UiThreadHandler;
@@ -63,7 +66,7 @@ import java.util.Map;
*
* 描述
*/
-public class EntranceFragment extends MvpFragment
+public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresenter >
implements EntranceView,
IMogoNaviListener,
IMogoMapListener,
@@ -166,10 +169,10 @@ public class EntranceFragment extends MvpFragment demoCache = new ArrayList<>();
+ private List< View > demoCache = new ArrayList<>();
@Override
protected void initViews() {
- mApis = (IMogoServiceApis) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(getContext());
+ mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( getContext() );
- mEntrancePresenter = new EntrancePresenter(getContext(), this);
+ mEntrancePresenter = new EntrancePresenter( getContext(), this );
mMogoFragmentManager = mApis.getFragmentManagerApi();
mStatusManager = mApis.getStatusManagerApi();
- 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);
- mUploadRoadCondition.setOnClickListener(view -> {
+ 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 );
+ mUploadRoadCondition.setOnClickListener( view -> {
// // todo 测试动画
// View v = LayoutInflater.from(getContext()).inflate(R.layout.demo_top, null);
// TextView tv = v.findViewById(R.id.tvIndex);
@@ -212,25 +215,25 @@ public class EntranceFragment extends MvpFragment {
- if (!mStatusManager.isDisplayOverview()) {
- mMApUIController.displayOverview(mDisplayOverviewBounds);
- UiThreadHandler.removeCallbacks(mLockCarRunnable);
- UiThreadHandler.postDelayed(mLockCarRunnable, 20_000);
+ 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);
+ UiThreadHandler.removeCallbacks( mLockCarRunnable );
}
- mStatusManager.setDisplayOverview(TAG, !mStatusManager.isDisplayOverview());
- });
+ mStatusManager.setDisplayOverview( TAG, !mStatusManager.isDisplayOverview() );
+ } );
- mMove2CurrentLocation = findViewById(R.id.module_entrance_id_move2_current_location);
- mMove2CurrentLocation.setOnClickListener(view -> {
+ mMove2CurrentLocation = findViewById( R.id.module_entrance_id_move2_current_location );
+ mMove2CurrentLocation.setOnClickListener( view -> {
// // todo 测试动画
// if(!toggle) {
// TopViewAnimHelper.getInstance().showNaviView();
@@ -246,105 +249,120 @@ public class EntranceFragment extends MvpFragment {
+ mApis.getSearchManagerApi().goSettings();
+ return true;
+ } );
}
- mExitNavi = findViewById(R.id.module_entrance_id_exit_navi);
- mExitNavi.setOnClickListener(view -> {
- if (mMogoNavi != null) {
- if (mIsLock) {
- new WMDialog.Builder(getContext())
- .setOkButton(R.string.module_commons_button_ok, (dlg, which) -> {
+// mNaviInfo = findViewById( R.id.module_entrance_id_navi_info_panel );
+ ConstraintLayout rootView = findViewById( R.id.module_entrance_id_top_motion_layout );
+ if ( rootView != null ) {
+ TopViewAnimHelper.getInstance().init( rootView );
+ }
+
+ mExitNavi = findViewById( R.id.module_entrance_id_exit_navi );
+ mExitNavi.setOnClickListener( view -> {
+ if ( mMogoNavi != null ) {
+ if ( mIsLock ) {
+ 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)
+ } )
+ .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);
+ MapCenterPointStrategy.setMapCenterPointByScene( mMApUIController, Scene.NAVI );
mMApUIController.recoverLockMode();
}
}
- });
+ } );
- mCameraMode = findViewById(R.id.module_ext_id_north);
- mCameraMode.setOnClickListener(view -> {
- if (mCameraMode.isSelected()) {
- mMApUIController.changeMapMode(EnumMapUI.CarUp_2D);
+ mCameraMode = findViewById( R.id.module_ext_id_north );
+ mCameraMode.setOnClickListener( view -> {
+ if ( mCameraMode.isSelected() ) {
+ mMApUIController.changeMapMode( EnumMapUI.CarUp_2D );
} else {
- mMApUIController.changeMapMode(EnumMapUI.NorthUP_2D);
+ mMApUIController.changeMapMode( EnumMapUI.NorthUP_2D );
}
- mCameraMode.setSelected(!mCameraMode.isSelected());
- mCameraMode.setText(getString(mCameraMode.isSelected() ? R.string.mode_car_up :
- R.string.mode_north_up));
- });
+ mCameraMode.setSelected( !mCameraMode.isSelected() );
+ mCameraMode.setText( getString( mCameraMode.isSelected() ? R.string.mode_car_up :
+ R.string.mode_north_up ) );
+ } );
- mApis.getIntentManagerApi().registerIntentListener(AUTONAVI_STANDARD_BROADCAST_RECV,
+ mApis.getIntentManagerApi().registerIntentListener( AUTONAVI_STANDARD_BROADCAST_RECV,
new IMogoIntentListener() {
- @Override
- public void onIntentReceived(String intentStr, Intent intent) {
- int key_type = intent.getIntExtra("KEY_TYPE", 0);
- int type = intent.getIntExtra("EXTRA_TYPE", -1);
- int opera_type = intent.getIntExtra("EXTRA_OPERA", -1);
- if (key_type == 10027) {
- if (opera_type == 0) {
- mCameraMode.setSelected(false);
- } else if (opera_type == 1) {
- mCameraMode.setSelected(true);
+ @Override
+ public void onIntentReceived( String intentStr, Intent intent ) {
+ int key_type = intent.getIntExtra( "KEY_TYPE", 0 );
+ int type = intent.getIntExtra( "EXTRA_TYPE", -1 );
+ int opera_type = intent.getIntExtra( "EXTRA_OPERA", -1 );
+ if ( key_type == 10027 ) {
+ if ( opera_type == 0 ) {
+ mCameraMode.setSelected( false );
+ } else if ( opera_type == 1 ) {
+ mCameraMode.setSelected( true );
+ }
+ mCameraMode.setText( getString( mCameraMode.isSelected() ?
+ R.string.mode_car_up : R.string.mode_north_up ) );
+ }
}
- mCameraMode.setText(getString(mCameraMode.isSelected() ?
- R.string.mode_car_up : R.string.mode_north_up));
- }
- }
- });
- MogoEntranceButtons.save(ButtonIndex.BUTTON1,
- findViewById(R.id.module_entrance_id_button1));
- MogoEntranceButtons.save(ButtonIndex.BUTTON2,
- findViewById(R.id.module_entrance_id_button2));
+ } );
+ 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)
+ 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 )
);
mNaviInfo = new NaviInfoView();
- mNaviInfo.inflate(rootView);
+ mNaviInfo.inflate( rootView );
+
+ findViewById( R.id.module_map_id_navi_bg ).setOnClickListener( view -> {
+ try {
+ LaunchUtils.launchByPkg( getContext(), "com.autonavi.amapauto" );
+ } catch ( Exception e ) {
+ e.printStackTrace();
+ }
+ } );
}
public void showShareDialog() {
isClickShare = true;
mApis.getShareManager().showShareDialog();
- traceData("1");
+ traceData( "1" );
}
private static final String AUTONAVI_STANDARD_BROADCAST_RECV =
@@ -357,27 +375,27 @@ public class EntranceFragment extends MvpFragment {
- return !mMogoNavi.isNaviing();
- });
- if (CustomNaviInterrupter.getInstance().interrupt()) {
- mDisplayOverview.setVisibility(View.GONE);
- mCameraMode.setVisibility(View.GONE);
- mExitNavi.setVisibility(View.GONE);
+ return !mMogoNavi.isNaviing();
+ } );
+ if ( CustomNaviInterrupter.getInstance().interrupt() ) {
+ mDisplayOverview.setVisibility( View.GONE );
+ mCameraMode.setVisibility( View.GONE );
+ mExitNavi.setVisibility( View.GONE );
} else {
- mExitNavi.setVisibility(View.VISIBLE);
- mDisplayOverview.setVisibility(View.VISIBLE);
- mCameraMode.setVisibility(View.VISIBLE);
+ mExitNavi.setVisibility( View.VISIBLE );
+ mDisplayOverview.setVisibility( View.VISIBLE );
+ mCameraMode.setVisibility( View.VISIBLE );
}
- mApis.getAnalyticsApi().track("Navigation_begin", new HashMap<>());
+ mApis.getAnalyticsApi().track( "Navigation_begin", new HashMap<>() );
}
@Override
public void onStopNavi() {
TopViewAnimHelper.getInstance().hideNaviView();
- mExitNavi.setVisibility(View.GONE);
- mMApUIController.changeMapMode(EnumMapUI.NorthUP_2D);
- mDisplayOverview.setVisibility(View.GONE);
- mCameraMode.setVisibility(View.GONE);
- MapCenterPointStrategy.setMapCenterPointByScene(mMApUIController, Scene.AIMLESS);
+ mExitNavi.setVisibility( View.GONE );
+ mMApUIController.changeMapMode( EnumMapUI.NorthUP_2D );
+ mDisplayOverview.setVisibility( View.GONE );
+ mCameraMode.setVisibility( View.GONE );
+ MapCenterPointStrategy.setMapCenterPointByScene( mMApUIController, Scene.AIMLESS );
}
@Override
- public void onUpdateTraffic2(MogoTraffic traffic) {
- if (traffic == null) {
+ public void onUpdateTraffic2( MogoTraffic traffic ) {
+ if ( traffic == null ) {
return;
}
}
@Override
- public void onLockMap(boolean isLock) {
+ public void onLockMap( boolean isLock ) {
mIsLock = isLock;
- if (isLock) {
- mExitNavi.setText(R.string.module_ext_str_exit_navi);
- if (mMogoStatusManager.isDisplayOverview()) {
- mMogoStatusManager.setDisplayOverview(TAG, false);
+ if ( isLock ) {
+ mExitNavi.setText( R.string.module_ext_str_exit_navi );
+ if ( mMogoStatusManager.isDisplayOverview() ) {
+ mMogoStatusManager.setDisplayOverview( TAG, false );
}
} else {
- mExitNavi.setText(R.string.module_ext_str_continue_navi);
+ mExitNavi.setText( R.string.module_ext_str_continue_navi );
}
}
- private void traceData(String from) {
- Map properties = new HashMap<>();
- properties.put("from", from);
- mAnalytics.track("Launcher_Share_Click", properties);
+ private void traceData( String from ) {
+ Map< String, Object > properties = new HashMap<>();
+ properties.put( "from", from );
+ mAnalytics.track( "v2x_share_click", properties );
}
@Override
- public void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) {
- if (mUploadRoadCondition == null) {
+ public void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ) {
+ if ( mUploadRoadCondition == null ) {
return;
}
- if (descriptor == StatusDescriptor.UPLOADING) {
- if (isTrue) {
- mUploading.setVisibility(View.VISIBLE);
- mUpload.setVisibility(View.GONE);
- if (mUploadFrameAnimHandler != null) {
- mUploadFrameAnimHandler.removeMessages(MSG_STOP_ANIM);
- mUploadFrameAnimHandler.removeMessages(MSG_FRAME_ANIM);
+ if ( descriptor == StatusDescriptor.UPLOADING ) {
+ if ( isTrue ) {
+ mUploading.setVisibility( View.VISIBLE );
+ mUpload.setVisibility( View.GONE );
+ if ( mUploadFrameAnimHandler != null ) {
+ mUploadFrameAnimHandler.removeMessages( MSG_STOP_ANIM );
+ mUploadFrameAnimHandler.removeMessages( MSG_FRAME_ANIM );
}
doFrameAnimOnUploadButton();
} else {
mCurrentUploadFrame = 0;
- if (mUploadFrameAnimHandler != null) {
- mUploadFrameAnimHandler.removeMessages(MSG_FRAME_ANIM);
+ if ( mUploadFrameAnimHandler != null ) {
+ mUploadFrameAnimHandler.removeMessages( MSG_FRAME_ANIM );
}
- mUploading.setVisibility(View.GONE);
- mUpload.setVisibility(View.VISIBLE);
+ mUploading.setVisibility( View.GONE );
+ mUpload.setVisibility( View.VISIBLE );
}
- } else if (descriptor == StatusDescriptor.DISPLAY_OVERVIEW) {
- if (!mMogoNavi.isNaviing()) {
+ } else if ( descriptor == StatusDescriptor.DISPLAY_OVERVIEW ) {
+ if ( !mMogoNavi.isNaviing() ) {
return;
}
- if (isTrue) {
- mDisplayOverviewText.setText("退出全览");
- mDisplayOverviewText.setTextSize(TypedValue.COMPLEX_UNIT_PX,
- getResources().getDimensionPixelSize(R.dimen.module_ext_display_overview_textSize));
- mCameraMode.setVisibility(View.GONE);
+ if ( isTrue ) {
+ mDisplayOverviewText.setText( "退出全览" );
+ mDisplayOverviewText.setTextSize( TypedValue.COMPLEX_UNIT_PX,
+ getResources().getDimensionPixelSize( R.dimen.module_ext_display_overview_textSize ) );
+ mCameraMode.setVisibility( View.GONE );
} else {
- mDisplayOverviewText.setText("全览");
- mDisplayOverviewText.setTextSize(TypedValue.COMPLEX_UNIT_PX,
- getResources().getDimensionPixelSize(R.dimen.module_ext_display_overview_textSize_large));
- if (CustomNaviInterrupter.getInstance().interrupt()) {
- mCameraMode.setVisibility(View.GONE);
+ mDisplayOverviewText.setText( "全览" );
+ mDisplayOverviewText.setTextSize( TypedValue.COMPLEX_UNIT_PX,
+ getResources().getDimensionPixelSize( R.dimen.module_ext_display_overview_textSize_large ) );
+ if ( CustomNaviInterrupter.getInstance().interrupt() ) {
+ mCameraMode.setVisibility( View.GONE );
} else {
- mCameraMode.setVisibility(View.VISIBLE);
+ mCameraMode.setVisibility( View.VISIBLE );
}
}
}
}
private void doFrameAnimOnUploadButton() {
- if (mUploadFrameAnimHandler == null) {
- mUploadFrameAnimHandler = new Handler(Looper.getMainLooper()) {
+ if ( mUploadFrameAnimHandler == null ) {
+ mUploadFrameAnimHandler = new Handler( Looper.getMainLooper() ) {
@Override
- public void handleMessage(Message msg) {
- super.handleMessage(msg);
- if (msg.what == MSG_FRAME_ANIM) {
- if (mUploadingFrameRes == null || mUploadingFrameRes.length == 0) {
- if (mUploading != null) {
- mUploading.setVisibility(View.GONE);
+ public void handleMessage( Message msg ) {
+ super.handleMessage( msg );
+ if ( msg.what == MSG_FRAME_ANIM ) {
+ if ( mUploadingFrameRes == null || mUploadingFrameRes.length == 0 ) {
+ if ( mUploading != null ) {
+ mUploading.setVisibility( View.GONE );
}
- if (mUpload != null) {
- mUpload.setVisibility(View.VISIBLE);
+ if ( mUpload != null ) {
+ mUpload.setVisibility( View.VISIBLE );
}
return;
}
- if (!mMogoStatusManager.isUploading()) {
+ if ( !mMogoStatusManager.isUploading() ) {
mCurrentUploadFrame = 0;
return;
}
- if (mUploading != null) {
- if (mCurrentUploadFrame == mUploadingFrameRes.length) {
+ if ( mUploading != null ) {
+ 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) {
- mStatusManager.setUploadingStatus(TAG, false);
+ mUploadFrameAnimHandler.sendEmptyMessageDelayed( MSG_FRAME_ANIM,
+ TIME_FRAME_INTERVAL_TIME );
+ } else if ( msg.what == MSG_STOP_ANIM ) {
+ mStatusManager.setUploadingStatus( TAG, false );
}
}
};
}
- mUploadFrameAnimHandler.sendEmptyMessage(MSG_FRAME_ANIM);
+ mUploadFrameAnimHandler.sendEmptyMessage( MSG_FRAME_ANIM );
// 30s 后无论成功与否,停止动画
- mUploadFrameAnimHandler.sendEmptyMessageDelayed(MSG_STOP_ANIM, 30_000);
+ mUploadFrameAnimHandler.sendEmptyMessageDelayed( MSG_STOP_ANIM, 30_000 );
}
}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java
index 4815bccb32..0b6ebc03de 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java
@@ -160,6 +160,11 @@ public class TopViewAnimHelper {
public void startTopInAnim(View view, ViewGroup.LayoutParams params,
IMogoTopViewStatusListener statusListener) {
+
+ if ( topMotionLayout == null ) {
+ return;
+ }
+
Logger.d(TAG, "startTopInAnim=====" + isTopViewOut);
if (view == null) {
throw new IllegalArgumentException("method addTopView params view is null");
@@ -284,6 +289,11 @@ public class TopViewAnimHelper {
}
public void startTopOutAnim(View view) {
+
+ if ( topMotionLayout == null ) {
+ return;
+ }
+
Logger.d("TopViewAnimHelper", "startTopOutAnim=====");
if (!isTopViewOut && viewCaches.contains(view)) {
if (topContainer.getChildCount() > 1) {
@@ -379,6 +389,11 @@ public class TopViewAnimHelper {
}
public void showNaviView() {
+
+ if ( topMotionLayout == null ) {
+ return;
+ }
+
Logger.d("TopViewAnimHelper", "showNaviView=====");
setNaviVisibility(View.VISIBLE);
int scene = 0;
@@ -446,6 +461,11 @@ public class TopViewAnimHelper {
}
public void hideNaviView() {
+
+ if ( topMotionLayout == null ) {
+ return;
+ }
+
Logger.d("TopViewAnimHelper", "hideNaviView=====");
setNaviVisibility(View.GONE);
remainDistanceGroup.setVisibility(View.GONE);
diff --git a/modules/mogo-module-gps-simulator-debug/src/main/java/com/mogo/module/gps/simulator/WebSocketManager.java b/modules/mogo-module-gps-simulator-debug/src/main/java/com/mogo/module/gps/simulator/WebSocketManager.java
index a0d21778b6..f5564894eb 100644
--- a/modules/mogo-module-gps-simulator-debug/src/main/java/com/mogo/module/gps/simulator/WebSocketManager.java
+++ b/modules/mogo-module-gps-simulator-debug/src/main/java/com/mogo/module/gps/simulator/WebSocketManager.java
@@ -3,6 +3,7 @@ package com.mogo.module.gps.simulator;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.map.MogoLatLng;
+import com.mogo.map.location.IMogoLocationListener;
import com.mogo.map.location.MogoLocation;
import com.mogo.map.navi.IMogoCarLocationChangedListener;
import com.mogo.map.navi.IMogoNavi;
@@ -17,6 +18,7 @@ import org.java_websocket.handshake.ServerHandshake;
import org.json.JSONObject;
import java.net.URI;
+import java.util.Iterator;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -101,6 +103,18 @@ public class WebSocketManager {
realTimeLocationVo.getDirection(),
realTimeLocationVo.getLocationTime()
);
+ Iterator< IMogoLocationListener > listeners = mServiceApis.getRegisterCenterApi().getLocationListeners();
+ MogoLocation location = new MogoLocation();
+ location.setLatitude( realTimeLocationVo.getLat() );
+ location.setLongitude( realTimeLocationVo.getLon() );
+ location.setSpeed( realTimeLocationVo.getVehicleSpeed() );
+ location.setAccuracy( 1 );
+ location.setTime( realTimeLocationVo.getLocationTime() );
+ if ( listeners != null ) {
+ while ( listeners.hasNext() ) {
+ listeners.next().onLocationChanged( location );
+ }
+ }
} );
}
}
diff --git a/modules/mogo-module-main/build.gradle b/modules/mogo-module-main/build.gradle
index 69449eb0f9..e06cc617ba 100644
--- a/modules/mogo-module-main/build.gradle
+++ b/modules/mogo-module-main/build.gradle
@@ -39,6 +39,7 @@ dependencies {
implementation rootProject.ext.dependencies.androidxappcompat
implementation rootProject.ext.dependencies.androidxconstraintlayout
implementation rootProject.ext.dependencies.arouter
+ implementation rootProject.ext.dependencies.tanluupload
annotationProcessor rootProject.ext.dependencies.aroutercompiler
if (Boolean.valueOf(RELEASE)) {
api rootProject.ext.dependencies.mogoutils
diff --git a/modules/mogo-module-main/src/main/AndroidManifest.xml b/modules/mogo-module-main/src/main/AndroidManifest.xml
index e490d96a29..90e40ed1eb 100644
--- a/modules/mogo-module-main/src/main/AndroidManifest.xml
+++ b/modules/mogo-module-main/src/main/AndroidManifest.xml
@@ -2,6 +2,13 @@
package="com.mogo.module.main">
-
+
+
+
+
+
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/EventDispatchCenter.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/EventDispatchCenter.java
index 89a2f42f41..48a0812257 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/EventDispatchCenter.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/EventDispatchCenter.java
@@ -157,6 +157,7 @@ public class EventDispatchCenter implements
@Override
public void onCarLocationChanged2( Location latLng ) {
+
Iterator< IMogoCarLocationChangedListener > iterator = MogoRegisterCenterHandler.getInstance().getCarLocationChangedListener();
if ( iterator == null ) {
return;
@@ -370,7 +371,6 @@ public class EventDispatchCenter implements
public void onStartNavi() {
Iterator< IMogoNaviListener > iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners();
-
if ( iterator == null ) {
return;
}
@@ -447,6 +447,7 @@ public class EventDispatchCenter implements
@Override
public void onLocationChanged( MogoLocation location ) {
+
final long start = System.currentTimeMillis();
Iterator< IMogoLocationListener > iterator = MogoRegisterCenterHandler.getInstance().getLocationListeners();
if ( iterator == null ) {
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 43a0b53ef9..3ef61ea88e 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
@@ -26,6 +26,7 @@ import com.mogo.module.common.map.MapCenterPointStrategy;
import com.mogo.module.common.map.Scene;
import com.mogo.module.main.cards.MogoModulesHandler;
import com.mogo.module.main.cards.MogoModulesManager;
+import com.mogo.module.main.service.MogoMainService;
import com.mogo.module.main.windowview.FloatingViewHandler;
import com.mogo.module.service.ServiceConst;
import com.mogo.service.IMogoServiceApis;
@@ -35,6 +36,9 @@ import com.mogo.service.map.IMogoMapService;
import com.mogo.service.module.IMogoModuleProvider;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.utils.logger.Logger;
+import com.zhidao.autopilot.support.api.AutopilotServiceManage;
+
+import org.aspectj.lang.annotation.Around;
import java.util.List;
@@ -53,7 +57,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
protected IMogoServiceApis mServiceApis;
protected IMogoMapService mMogoMapService;
protected IMogoMapUIController mMogoMapUIController;
- protected MogoModulesHandler mMogoModuleHandler;
protected IMogoFragmentManager mMogoFragmentManager;
protected IMogoStatusManager mMogoStatusManager;
@@ -64,11 +67,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
protected FrameLayout mCoverUpLayout;
protected View mLeftShadowFrame;
- /**
- * 主模块管控定位,可以向各个模块发送统一定位信息
- */
- private IMogoLocationClient mLocationClient;
-
@Override
protected int getLayoutId() {
return R.layout.module_main_activity_main;
@@ -118,20 +116,20 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
mServiceApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation();
}
mMogoStatusManager = mServiceApis.getStatusManagerApi();
+ AutopilotServiceManage.getInstance().init( getContext() );
}
@Override
public void loadModules() {
final long start = System.currentTimeMillis();
- mMogoModuleHandler = new MogoModulesManager( this, getApis() );
+ MogoModulesManager.getInstance().init( this, getApis() );
mMogoMapService = mServiceApis.getMapServiceApi();
if ( mMogoMapService != null ) {
mMogoMapService.getHostListenerRegister().registerHostMapListener( EventDispatchCenter.getInstance() );
mMogoMapService.getHostListenerRegister().registerHostNaviListener( EventDispatchCenter.getInstance() );
mMogoMapService.getHostListenerRegister().registerHostAimlessModeListener( EventDispatchCenter.getInstance() );
mMogoMapService.getHostListenerRegister().registerMarkerClickListener( this );
- mMogoMapService.getNavi( this ).registerCarLocationChangedListener( EventDispatchCenter.getInstance() );
}
EventDispatchCenter.getInstance().setMapLoadedCallback( () -> {
@@ -139,19 +137,17 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
// 加载地图,触发地图加载完毕回调,在初始化其他卡片模块,保证卡片模块可以正确获取地图相关服务。
addModule();
loadContainerModules();
- mMogoModuleHandler.loadModules();
+ MogoModulesManager.getInstance().loadModules();
mPresenter.delayOperations();
- mPresenter.initADAS();
- hideCoverUpLayout();
// 右移地图中心点
mMogoMapUIController = mMogoMapService.getMapUIController();
MapCenterPointStrategy.setMapCenterPointByScene( mMogoMapUIController, Scene.AIMLESS );
- // 开启定位
- startLocation();
+ // 启动一些基本的服务:定位等
+ startBaseService();
} );
- mMogoModuleHandler.loadMapModule( R.id.module_main_id_map_fragment_container );
+ MogoModulesManager.getInstance().loadMapModule( R.id.module_main_id_map_fragment_container );
mMogoFragmentManager = mServiceApis.getFragmentManagerApi();
mMogoFragmentManager.init( this, R.id.module_main_id_search_fragment );
@@ -166,22 +162,21 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
Log.i( "timer", "cost " + ( System.currentTimeMillis() - start ) + "ms" );
}
+ private void startBaseService() {
+ Intent intent = new Intent( this, MogoMainService.class );
+ startService( intent );
+ }
+
/**
* 添加模块
*/
- protected void addModule(){
- MogoModulePaths.addModule( new MogoModule( ServiceConst.PATH_REFRESH_STRATEGY, ServiceConst.PATH_REFRESH_STRATEGY ) );
- }
+ protected void addModule() {
- private void startLocation() {
- mLocationClient = mMogoMapService.getSingletonLocationClient( getApplicationContext() );
- mLocationClient.addLocationListener( this );
- mLocationClient.start( 2_000L );
}
protected void loadContainerModules() {
- mMogoModuleHandler.loadExtensionsModule( R.id.module_main_id_header_fragment_container );
- mMogoModuleHandler.loadEntrancesModule( R.id.module_main_id_entrance_fragment_container );
+ MogoModulesManager.getInstance().loadExtensionsModule( R.id.module_main_id_header_fragment_container );
+ MogoModulesManager.getInstance().loadEntrancesModule( R.id.module_main_id_entrance_fragment_container );
}
@Override
@@ -193,7 +188,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
@Override
public void loadCardModules() {
- List< IMogoModuleProvider > providers = mMogoModuleHandler.loadCardsModule();
+ List< IMogoModuleProvider > providers = MogoModulesManager.getInstance().loadCardsModule();
// mCardModulesAdapter = new CardModulesAdapter( this, providers );
// mCardsContainer.setOffscreenPageLimit( providers.size() );
// mCardsContainer.setPageTransformer( true, mTransformer );
@@ -214,16 +209,9 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
@Override
public boolean onMarkerClicked( IMogoMarker marker ) {
EventDispatchCenter.getInstance().onMarkerClicked( marker );
- if ( !mMogoStatusManager.isADASShow() ) {
- switch2Card( marker.getOwner(), false );
- }
return false;
}
- @Override
- public void switch2Card( String cardType, boolean lockCar ) {
- }
-
@Override
protected void onResume() {
super.onResume();
@@ -243,13 +231,14 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
@Override
public void onBackPressed() {
if ( mMogoFragmentManager.getStackSize() == 0 ) {
- if(DebugConfig.isLauncher()) {
+ if ( DebugConfig.isLauncher() ) {
return;
- }else{
+ } else {
super.onBackPressed();
}
}
- if ( mMogoFragmentManager != null ) {
+ if ( mMogoFragmentManager != null
+ && mMogoFragmentManager.getStackSize() > 0 ) {
mMogoFragmentManager.pop();
}
}
@@ -271,18 +260,10 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
@Override
protected void onDestroy() {
super.onDestroy();
- if ( mLocationClient != null ) {
- mLocationClient.removeLocationListener( this );
- mLocationClient.destroy();
- }
- mLocationClient = null;
- if ( mMogoModuleHandler != null ) {
- mMogoModuleHandler.destroy();
- }
- mMogoModuleHandler = null;
mMogoMapService = null;
mMogoMapUIController = null;
mMogoFragmentManager = null;
+ mServiceApis.getAdasControllerApi().release();
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 9d15afb925..66fbdfc738 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
@@ -16,6 +16,7 @@ import com.mogo.module.main.livedata.CardSwitchLiveData;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.analytics.IMogoAnalytics;
import com.mogo.service.module.IMogoModuleProvider;
+import com.zhidao.roadcondition.service.MainService;
import java.util.HashMap;
import java.util.Map;
@@ -28,9 +29,6 @@ import java.util.Map;
*/
public class MainPresenter extends Presenter< MainView > {
- // 埋点接口
- private IMogoAnalytics mAnalytics;
-
private Handler mMsgHandler = new Handler( Looper.getMainLooper() ) {
@Override
public void handleMessage( Message msg ) {
@@ -57,13 +55,6 @@ public class MainPresenter extends Presenter< MainView > {
@Override
public void onCreate( @NonNull LifecycleOwner owner ) {
super.onCreate( owner );
- CardSwitchLiveData.getInstance().observeForever( cardInfo -> {
- if ( TextUtils.isEmpty( cardInfo.mCardName ) ) {
- return;
- }
- mView.switch2Card( cardInfo.mCardName, cardInfo.mLockCar );
- } );
- mAnalytics = ( IMogoAnalytics ) ARouter.getInstance().build( MogoServicePaths.PATH_UTILS_ANALYTICS ).navigation( getContext() );
}
/**
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 ec93570a23..e2b33db244 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
@@ -11,13 +11,6 @@ import com.mogo.service.IMogoServiceApis;
*/
public interface MainView extends IView {
- /**
- * 切换卡片
- *
- * @param cardType
- */
- void switch2Card( String cardType, boolean lockCar );
-
/**
* 加载卡片
*/
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 ed57a10838..799a0d9377 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
@@ -53,7 +53,10 @@ public interface MogoModulesHandler {
void loadEntrancesModule( int containerId );
/**
- * 销毁
+ * 加载基本服务模块,需要不启动页面就能运行
+ *
+ * 1. v2x
+ * 2. mogo-module-service
*/
- void destroy();
+ void loadBaseModule();
}
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 5834ab346d..876d4c01d2 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
@@ -35,8 +35,27 @@ public class MogoModulesManager implements MogoModulesHandler {
private Map< MogoModule, IMogoModuleProvider > mModuleProviders = new HashMap<>();
// 空间换效率
private Map< String, IMogoModuleProvider > mModuleNameProviders = new HashMap<>();
+
+ private static volatile MogoModulesManager sInstance;
+
+ private MogoModulesManager(){}
+
+ public static MogoModulesManager getInstance(){
+ if( sInstance == null ){
+ synchronized( MogoModulesManager.class ) {
+ if( sInstance == null ){
+ sInstance = new MogoModulesManager();
+ }
+ }
+ }
+ return sInstance;
+ }
+
+ public synchronized void release(){
+ sInstance = null;
+ }
- public MogoModulesManager( MainActivity activity, IMogoServiceApis apis ) {
+ public void init( MainActivity activity, IMogoServiceApis apis ) {
if ( activity == null ) {
throw new NullPointerException( "activity can't be null." );
}
@@ -111,6 +130,18 @@ public class MogoModulesManager implements MogoModulesHandler {
addFragment( provider, containerId );
}
+ @Override
+ public void loadBaseModule() {
+ List baseModules = MogoModulePaths.getBaseModules();
+ for ( MogoModule baseModule : baseModules ) {
+ if ( baseModule == null ) {
+ continue;
+ }
+ Logger.d( TAG, "加载基本模块:%s", baseModule.getPath() );
+ load( baseModule.getPath() );
+ }
+ }
+
private IMogoModuleProvider load( String path ) {
return ( IMogoModuleProvider ) ARouter.getInstance().build( path ).navigation( getContext() );
}
@@ -129,13 +160,4 @@ public class MogoModulesManager implements MogoModulesHandler {
.add( containerId, fragment, provider.getModuleName() )
.commitAllowingStateLoss();
}
-
- @Override
- public void destroy() {
- mActivity = null;
- if ( mModuleProviders != null ) {
- mModuleProviders.clear();
- }
- mModuleProviders = null;
- }
}
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/registercenter/MogoRegisterCenter.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/registercenter/MogoRegisterCenter.java
index 8ab4a9e5b4..eee8c3ec08 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/registercenter/MogoRegisterCenter.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/registercenter/MogoRegisterCenter.java
@@ -13,6 +13,9 @@ import com.mogo.service.MogoServicePaths;
import com.mogo.service.module.IMogoModuleLifecycle;
import com.mogo.service.module.IMogoRegisterCenter;
+import java.util.Iterator;
+import java.util.List;
+
/**
* @author congtaowang
* @since 2020-01-09
@@ -57,6 +60,11 @@ public class MogoRegisterCenter implements IMogoRegisterCenter {
MogoRegisterCenterHandler.getInstance().registerMogoLocationListener( moduleName, listener );
}
+ @Override
+ public Iterator< IMogoLocationListener > getLocationListeners() {
+ return MogoRegisterCenterHandler.getInstance().getLocationListeners();
+ }
+
@Override
public void unregisterMogoLocationListener( String moduleName ) {
MogoRegisterCenterHandler.getInstance().unregisterMogoLocationListener( moduleName );
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/registercenter/MogoRegisterCenterHandler.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/registercenter/MogoRegisterCenterHandler.java
index 8a15cf5679..ca0e33a72a 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/registercenter/MogoRegisterCenterHandler.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/registercenter/MogoRegisterCenterHandler.java
@@ -158,6 +158,7 @@ public class MogoRegisterCenterHandler implements IMogoRegisterCenter {
return mNavi.values().iterator();
}
+ @Override
public Iterator< IMogoLocationListener > getLocationListeners() {
return mLocation.values().iterator();
}
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/service/MogoMainService.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/service/MogoMainService.java
new file mode 100644
index 0000000000..b367177ad7
--- /dev/null
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/service/MogoMainService.java
@@ -0,0 +1,99 @@
+package com.mogo.module.main.service;
+
+import android.app.Service;
+import android.content.Intent;
+import android.os.IBinder;
+
+import androidx.annotation.Nullable;
+
+import com.alibaba.android.arouter.facade.annotation.Route;
+import com.alibaba.android.arouter.launcher.ARouter;
+import com.mogo.commons.AbsMogoApplication;
+import com.mogo.map.location.IMogoLocationClient;
+import com.mogo.map.location.IMogoLocationListener;
+import com.mogo.map.location.MogoLocation;
+import com.mogo.module.main.EventDispatchCenter;
+import com.mogo.module.main.cards.MogoModulesManager;
+import com.mogo.service.IMogoServiceApis;
+import com.mogo.service.MogoServicePaths;
+import com.mogo.utils.logger.Logger;
+import com.zhidao.roadcondition.service.MainService;
+
+public
+/**
+ * @author congtaowang
+ * @since 2020/6/10
+ *
+ * 描述
+ */
+@Route( path = "/service/base/info" )
+class MogoMainService extends Service implements IMogoLocationListener {
+
+ private static final String TAG = "MogoMainService";
+ private IMogoServiceApis mServiceApis;
+
+ /**
+ * 主模块管控定位,可以向各个模块发送统一定位信息
+ */
+ private IMogoLocationClient mLocationClient;
+
+
+ @Nullable
+ @Override
+ public IBinder onBind( Intent intent ) {
+ return null;
+ }
+
+ @Override
+ public int onStartCommand( Intent intent, int flags, int startId ) {
+ Logger.d( TAG, "基本服务启动" );
+ mServiceApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation();
+ initAndStartLocation();
+ initGpsSimulatorListener();
+ loadBaseModules();
+ startTanluService();
+ initADAS();
+ return START_STICKY;
+ }
+
+ private void initAndStartLocation() {
+ Logger.d( TAG, "开始定位" );
+ mLocationClient = mServiceApis.getMapServiceApi().getSingletonLocationClient( AbsMogoApplication.getApp() );
+ mLocationClient.addLocationListener( this );
+ mLocationClient.start( 2_000L );
+ }
+
+ private void initGpsSimulatorListener() {
+ mServiceApis.getMapServiceApi().getNavi( this ).registerCarLocationChangedListener( EventDispatchCenter.getInstance() );
+ }
+
+ private void loadBaseModules() {
+ Logger.d( TAG, "加载基本模块" );
+ MogoModulesManager.getInstance().loadBaseModule();
+ }
+
+ private void startTanluService() {
+ MainService.Companion.launchService( getApplicationContext(), "0" );
+ }
+
+ private void initADAS() {
+ mServiceApis.getAdasControllerApi().init( AbsMogoApplication.getApp() );
+ }
+
+ @Override
+ public void onLocationChanged( MogoLocation location ) {
+ EventDispatchCenter.getInstance().onLocationChanged( location );
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ if ( mLocationClient != null ) {
+ mLocationClient.removeLocationListener( this );
+ mLocationClient.stop();
+ mLocationClient.destroy();
+ mLocationClient = null;
+ }
+ mServiceApis = null;
+ }
+}
diff --git a/modules/mogo-module-service/build.gradle b/modules/mogo-module-service/build.gradle
index 6c15a6d379..56451b4364 100644
--- a/modules/mogo-module-service/build.gradle
+++ b/modules/mogo-module-service/build.gradle
@@ -54,6 +54,7 @@ dependencies {
api rootProject.ext.dependencies.mogocommons
api rootProject.ext.dependencies.mogoserviceapi
implementation rootProject.ext.dependencies.modulecommon
+ implementation rootProject.ext.dependencies.gpssimulator
} else {
api project(":libraries:mogo-map")
api project(":libraries:mogo-map-api")
@@ -61,6 +62,7 @@ dependencies {
api project(":foudations:mogo-commons")
api project(':services:mogo-service-api')
implementation project(':modules:mogo-module-common')
+ implementation project(':modules:mogo-module-gps-simulator')
}
}
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 c88d8206ac..960153e1b1 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
@@ -11,6 +11,7 @@ import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.module.carchattingprovider.ICarsChattingProvider;
import com.mogo.module.common.entity.MarkerResponse;
import com.mogo.module.common.entity.MarkerShowEntity;
+import com.mogo.module.gps.simulator.IMogoGpsSimulatorManager;
import com.mogo.module.service.marker.MapMarkerManager;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
@@ -60,6 +61,7 @@ public class MarkerServiceHandler {
private static IMogoLauncher sLauncher;
private static IMogoFragmentManager sFragmentManager;
private static ICarsChattingProvider sCarChatting;
+ private static IMogoGpsSimulatorManager sGpsSimulatorManager;
private static MapMarkerManager sMapMarkerManager;
@@ -87,6 +89,8 @@ public class MarkerServiceHandler {
sMapMarkerManager = MapMarkerManager.getInstance();
sMapMarkerManager.init( context );
+
+ sGpsSimulatorManager = ARouter.getInstance().navigation( IMogoGpsSimulatorManager.class );
}
public static IMogoServiceApis getApis(){
@@ -169,6 +173,9 @@ public class MarkerServiceHandler {
return sCarChatting;
}
+ public static IMogoGpsSimulatorManager getGpsSimulatorManager() {
+ return sGpsSimulatorManager;
+ }
//TODO -------------以下方法是临时过度使用的,后面统一使用,getMapMarkerManager进行调用
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 8174510733..0fbcaa89bb 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
@@ -312,6 +312,7 @@ public class MogoServices implements IMogoMapListener,
mIntentManager.registerIntentListener( ServiceConst.COMMAND_ZHIDAO_NEARBY_FRIEND, this );
mIntentManager.registerIntentListener( ServiceConst.COMMAND_ZHIDAO_NEARBY_USER_ONLINE, this );
mIntentManager.registerIntentListener( ServiceConst.COMMAND_ZHIDAO_NEARBY_FRIEND_BYLOCATION, this );
+ mIntentManager.registerIntentListener( ServiceConst.COMMAND_BACK, this );
mADASController = MarkerServiceHandler.getADASController();
mLauncher = MarkerServiceHandler.getLauncher();
@@ -566,8 +567,8 @@ public class MogoServices implements IMogoMapListener,
return false;
}
float distance = Utils.calculateLineDistance( latLng, mLastCustomRefreshCenterLocation );
- Logger.d( TAG, "move distance = %s, factor = %s", distance, factor );
- return distance > factor / 2;
+ Logger.d( TAG, "move distance = %s, factor = %s", distance, ( factor / 2 ) );
+ return distance > ( factor / 2 );
} catch ( Exception e ) {
Logger.e( TAG, e, "warming. " );
return false;
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 e1de1cfacd..ab0ccef734 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
@@ -90,7 +90,7 @@ public class ServiceConst {
/**
* 所有卡片显示的每类点的最大数据量
*/
- public static final int MAX_AMOUNT_ALL = 5;
+ public static final int MAX_AMOUNT_ALL = Integer.MAX_VALUE;
/**
* 单个卡片显示时的最大数据量
@@ -193,5 +193,8 @@ public class ServiceConst {
*/
public static final String COMMAND_ZHIDAO_NEARBY_FRIEND_BYLOCATION = "com.zhidao.nearby.friend.bylocation";
-
+ /**
+ * 返回桌面
+ */
+ public static final String COMMAND_BACK = "com.ileja.launcher.back";
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/AppOperationIntentHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/AppOperationIntentHandler.java
index 66ca68b304..aaa1fa14d3 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/AppOperationIntentHandler.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/AppOperationIntentHandler.java
@@ -5,10 +5,15 @@ import android.content.Intent;
import android.text.TextUtils;
import com.mogo.module.service.ServiceConst;
+import com.mogo.utils.LaunchUtils;
+import com.mogo.utils.TipToast;
import org.json.JSONException;
import org.json.JSONObject;
+import java.util.HashMap;
+import java.util.Map;
+
/**
* @author congtaowang
* @since 2020-04-17
@@ -17,24 +22,26 @@ import org.json.JSONObject;
*/
public class AppOperationIntentHandler implements IntentHandler {
+ public final Map< String, String > sAppPackages = new HashMap<>();
+
+ public AppOperationIntentHandler() {
+ sAppPackages.put( "车聊聊", "com.zhidao.imdemo" );
+ }
+
@Override
public void handle( Context context, Intent intent ) {
try {
JSONObject object = new JSONObject( intent.getStringExtra( "data" ) );
String app = object.optString( "object" );
String operation = object.optString( "operation" );
- if ( TextUtils.equals( app, "车聊聊" ) ) {
- if ( TextUtils.equals( "打开", operation ) ) {
- SwitchCardIntentHandler.switchCard2( context, ServiceConst.CARD_TYPE_CARS_CHATTING );
- }
- } else {
- if ( TextUtils.equals( app, "探路" ) ) {
- if ( TextUtils.equals( "打开", operation ) ) {
- SwitchCardIntentHandler.switchCard2( context, ServiceConst.CARD_TYPE_ROAD_CONDITION );
- }
+ if ( TextUtils.equals( "打开", operation ) ) {
+ try {
+ LaunchUtils.launchByPkg( context, sAppPackages.get( app ) );
+ } catch ( Exception e ) {
+ TipToast.shortTip( "应用程序未安装" );
}
}
- } catch ( JSONException e ) {
+ } catch ( Exception e ) {
e.printStackTrace();
}
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/IntentHandlerFactory.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/IntentHandlerFactory.java
index 7e79d98584..d67957cb8f 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/IntentHandlerFactory.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/IntentHandlerFactory.java
@@ -35,6 +35,7 @@ public class IntentHandlerFactory {
mHandlers.put( MogoReceiver.ACTION_ADAS_STATUS, ADASStatusIntentHandler.getInstance() );
mHandlers.put( MogoReceiver.ACTIION_ADAS, ADASStatusIntentHandler.getInstance() );
mHandlers.put( MogoReceiver.ACTION_VOICE_READY, new AIAssistIntentHandler() );
+ mHandlers.put( ServiceConst.COMMAND_BACK, WholeVoiceCommandIntentHandler.getInstance() );
}
private static final class InstanceHolder {
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 e836349303..ecda1f1e95 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
@@ -70,7 +70,6 @@ public class MockIntentHandler implements IntentHandler {
button1.setVisibility( View.VISIBLE );
button1.setBackgroundColor( Color.RED );
button1.setOnClickListener( view -> {
- TipToast.shortTip( "测试" );
} );
}
break;
@@ -276,11 +275,17 @@ public class MockIntentHandler implements IntentHandler {
IMogoMarker marker = MarkerServiceHandler.getMarkerManager().addMarker( TAG, options );
MarkerServiceHandler.getMogoStatusManager().setUserInteractionStatus( TAG, true, false );
MarkerServiceHandler.getMapUIController().moveToCenter( mogoLatLngs.get( 0 ) );
- WorkThreadHandler.getInstance().post( ()->{
+ WorkThreadHandler.getInstance().post( () -> {
marker.startSmooth( mogoLatLngs, duration );
} );
}
break;
+ case 15:
+ MarkerServiceHandler.getGpsSimulatorManager().open();
+ break;
+ case 16:
+ MarkerServiceHandler.getGpsSimulatorManager().close();
+ break;
}
}
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/WholeVoiceCommandIntentHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/WholeVoiceCommandIntentHandler.java
new file mode 100644
index 0000000000..e7f77292d1
--- /dev/null
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/WholeVoiceCommandIntentHandler.java
@@ -0,0 +1,57 @@
+package com.mogo.module.service.intent;
+
+import android.content.Context;
+import android.content.Intent;
+import android.text.TextUtils;
+
+import com.mogo.module.service.MarkerServiceHandler;
+import com.mogo.module.service.ServiceConst;
+import com.mogo.module.service.receiver.MogoReceiver;
+
+public
+/**
+ * @author congtaowang
+ * @since 2020/6/11
+ *
+ * 描述
+ */
+class WholeVoiceCommandIntentHandler implements IntentHandler {
+
+ private static volatile WholeVoiceCommandIntentHandler sInstance;
+
+ private WholeVoiceCommandIntentHandler() {
+ }
+
+ public static WholeVoiceCommandIntentHandler getInstance() {
+ if ( sInstance == null ) {
+ synchronized ( WholeVoiceCommandIntentHandler.class ) {
+ if ( sInstance == null ) {
+ sInstance = new WholeVoiceCommandIntentHandler();
+ }
+ }
+ }
+ return sInstance;
+ }
+
+ public synchronized void release() {
+ sInstance = null;
+ }
+
+ private Object readResolve() {
+ // 阻止反序列化,必须实现 Serializable 接口
+ return sInstance;
+ }
+
+ @Override
+ public void handle( Context context, Intent intent ) {
+ String command = intent.getStringExtra( MogoReceiver.PARAM_COMMAND );
+ if ( TextUtils.isEmpty( command ) ) {
+ return;
+ }
+ switch ( command ) {
+ case ServiceConst.COMMAND_BACK:
+ MarkerServiceHandler.getLauncher().backToLauncher( context );
+ 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 31825c7c11..d564a1757d 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
@@ -136,7 +136,7 @@ public class MapMarkerInfoView extends MapMarkerBaseView {
ivIcon.setImageResource( R.drawable.icon_map_marker_living_light );
break;
default:
- ivIcon.setImageResource( R.drawable.icon_map_marker_shear_news );
+ ivIcon.setImageResource( R.drawable.icon_map_marker_road_block_up2_light );
break;
}
}
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 0be8fff665..8e704eedf7 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
@@ -240,7 +240,11 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
} );
drawMarkerByCurrentType( mLastDataResult );
- trackData( mLastDataResult );
+
+ // 在首页时才埋点
+ if ( MarkerServiceHandler.getMogoStatusManager().isMainPageOnResume() ) {
+ trackData( mLastDataResult );
+ }
}
/**
@@ -716,7 +720,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
}
};
- public void stopAutoRefresh(){
+ public void stopAutoRefresh() {
UiThreadHandler.removeCallbacks( runnable );
}
@@ -747,7 +751,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
return;
}
- mRefreshModel.queryOnLineCarWithRoute( latLng, onlyFocus, onlySameCity, limit, radius, new RefreshCallback() {
+ mRefreshModel.queryOnLineCarWithRoute( latLng, onlyFocus, onlySameCity, radius, limit, new RefreshCallback() {
@Override
public void onSuccess( Object o ) {
MarkerResponse data = ( MarkerResponse ) o;
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 db970da316..1c83655149 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
@@ -103,7 +103,7 @@ public class MapMarkerView extends MapMarkerBaseView {
break;
case MarkerPoiTypeEnum.FOURS_PARKING:
default:
- ivIcon.setImageResource( R.drawable.icon_map_marker_shear_news );
+ ivIcon.setImageResource( R.drawable.icon_map_marker_road_block_up2 );
break;
}
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java
index e6c3f1cde1..33d1fd0cc1 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java
@@ -13,6 +13,7 @@ import com.mogo.module.common.entity.MarkerResponse;
import com.mogo.module.service.ServiceConst;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.network.IMogoNetwork;
+import com.mogo.utils.logger.Logger;
import com.mogo.utils.network.RequestOptions;
import com.mogo.utils.network.utils.GsonUtil;
@@ -30,6 +31,8 @@ import io.reactivex.schedulers.Schedulers;
*/
public class RefreshModel {
+ private static final String TAG = "RefreshModel";
+
public static final String HOST_DEV = "http://dzt-test.zhidaohulian.com";
public static final String HOST_TEST = "http://dzt-test.zhidaohulian.com";
public static final String HOST_DEMO = "http://dzt-show.zhidaohulian.com";
@@ -69,7 +72,12 @@ public class RefreshModel {
refreshBody.dataType.add( ServiceConst.CARD_TYPE_SHARE_MUSIC );
// refreshBody.dataType.add(ServiceConst.CARD_TYPE_USER_DATA);
refreshBody.dataType.add( ServiceConst.CARD_TYPE_NOVELTY );
- query.put( "data", GsonUtil.jsonFromObject( refreshBody ) );
+
+ String data = GsonUtil.jsonFromObject( refreshBody );
+ query.put( "data", data );
+ Logger.d( TAG, data );
+
+
mRefreshApiService.refreshData( query )
.subscribeOn( Schedulers.io() )
.observeOn( AndroidSchedulers.mainThread() )
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 2e49900c62..58b2102045 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
@@ -11,7 +11,7 @@ public class ShareConstants {
/**
* 分享分类
*/
- public static final String LAUNCHER_SHARE_TYPE = "Launcher_Share_type";
+ public static final String LAUNCHER_SHARE_TYPE = "v2x_share_type";
/**
* 分享/上报按钮点击
*/
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 7be4dd6e4e..c6b6553840 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
@@ -31,5 +31,19 @@ public interface IMogoADASController extends IProvider {
*/
void killADAS();
- void setSettingStatus(boolean show);
+ /**
+ * adas 设置页面控制
+ *
+ * @param show
+ */
+ void setSettingStatus( boolean show );
+
+ /**
+ * 控制算法
+ *
+ * @param open
+ */
+ void setUseAlgorithm( boolean open );
+
+ void release();
}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoRegisterCenter.java b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoRegisterCenter.java
index 30cf128fb6..634009b667 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoRegisterCenter.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoRegisterCenter.java
@@ -8,6 +8,8 @@ import com.mogo.map.navi.IMogoAimlessModeListener;
import com.mogo.map.navi.IMogoCarLocationChangedListener;
import com.mogo.map.navi.IMogoNaviListener;
+import java.util.Iterator;
+
/**
* @author congtaowang
* @since 2020-01-09
@@ -72,6 +74,13 @@ public interface IMogoRegisterCenter extends IProvider {
*/
void registerMogoLocationListener( String tag, IMogoLocationListener listener );
+ /**
+ * 返回点位监听
+ *
+ * @return
+ */
+ Iterator< IMogoLocationListener > getLocationListeners();
+
/**
* 注销定位监听函数
*
diff --git a/services/mogo-service/build.gradle b/services/mogo-service/build.gradle
index 1b26b1e000..2a95b0f6c7 100644
--- a/services/mogo-service/build.gradle
+++ b/services/mogo-service/build.gradle
@@ -40,7 +40,7 @@ dependencies {
implementation rootProject.ext.dependencies.arouter
annotationProcessor rootProject.ext.dependencies.aroutercompiler
- implementation rootProject.ext.dependencies.adasapi
+ api rootProject.ext.dependencies.adasapi
if (Boolean.valueOf(RELEASE)) {
api rootProject.ext.dependencies.mogomap
implementation rootProject.ext.dependencies.mogomapapi
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java
index f44ab838d0..8e1839fde8 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
@@ -6,6 +6,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.os.RemoteException;
+import android.util.Log;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.commons.AbsMogoApplication;
@@ -48,6 +49,8 @@ public class MogoADASController implements IMogoADASController {
private IMogoStatusManager mStatusManager = SingletonsHolder.get( IMogoStatusManager.class );
+ private boolean mIsReleased = true;
+
@Override
public void openADAS() {
showADAS();
@@ -65,10 +68,11 @@ public class MogoADASController implements IMogoADASController {
@Override
public void showADAS() {
- Logger.d( TAG, "show adas" );
- if ( !isProcessRunning( AbsMogoApplication.getApp(), getPackageUid( AbsMogoApplication.getApp(), "com.zhidiao.autopilot" ) ) ) {
+ Logger.d( TAG, Log.getStackTraceString( new Throwable() ) );
+ if ( !isProcessRunning( AbsMogoApplication.getApp(), getPackageUid( AbsMogoApplication.getApp(), "com.zhidiao.autopilot" ) )
+ || mIsReleased ) {
+ init( AbsMogoApplication.getApp() );
}
- init( AbsMogoApplication.getApp() );
if ( mStatusManager.isSearchUIShow() ) {
return;
@@ -132,6 +136,7 @@ public class MogoADASController implements IMogoADASController {
@Override
public void init( Context context ) {
AutopilotServiceManage.getInstance().init( context );
+ mIsReleased = false;
}
//获取已安装应用的 uid,-1 表示未安装此应用或程序异常
@@ -172,4 +177,15 @@ public class MogoADASController implements IMogoADASController {
public void setSettingStatus( boolean show ) {
AutopilotServiceManage.getInstance().setSettingStatus( show );
}
+
+ @Override
+ public void setUseAlgorithm( boolean open ) {
+ AutopilotServiceManage.getInstance().setUseAlgorithm( open );
+ }
+
+ @Override
+ public void release() {
+ mIsReleased = true;
+ AutopilotServiceManage.getInstance().release();
+ }
}
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/fragmentmanager/FragmentStack.java b/services/mogo-service/src/main/java/com/mogo/service/impl/fragmentmanager/FragmentStack.java
index cd397a17bb..0aea3f824d 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/fragmentmanager/FragmentStack.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/fragmentmanager/FragmentStack.java
@@ -69,6 +69,10 @@ public class FragmentStack {
return;
}
+ if ( mFragmentManager == null ) {
+ return;
+ }
+
FragmentTransaction mFragmentTransaction = mFragmentManager.beginTransaction();
if ( mCurrentFragment != null ) {
@@ -100,6 +104,9 @@ public class FragmentStack {
invokeCallback();
return;
}
+ if ( mFragmentManager == null ) {
+ return;
+ }
FragmentTransaction mFragmentTransaction = mFragmentManager.beginTransaction();
@@ -163,6 +170,10 @@ public class FragmentStack {
public void clearAll() {
+ if ( mFragmentManager == null ) {
+ return;
+ }
+
if ( mFragmentStack.isEmpty() ) {
invokeCallback();
return;
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java b/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java
index 7def67c3e6..3d4940d28b 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java
@@ -168,7 +168,9 @@ public class MogoStatusManager implements IMogoStatusManager {
@Override
public void setMainPageResumeStatus( String tag, boolean resume ) {
+ final long start = System.currentTimeMillis();
doSetStatus( tag, StatusDescriptor.MAIN_PAGE_RESUME, resume );
+ Logger.i( TAG, "setMainPageResumeStatus " + resume + " cost " + ( System.currentTimeMillis() - start ) + "ms" );
}
@Override
@@ -191,7 +193,7 @@ public class MogoStatusManager implements IMogoStatusManager {
doSetStatus( tag, StatusDescriptor.UPLOADING, uploading );
}
- private void doSetStatus(String tag, StatusDescriptor target, boolean value){
+ private void doSetStatus( String tag, StatusDescriptor target, boolean value ) {
mStatus.put( target, value );
invokeStatusChangedListener( target, value );
recordStatusModifier( tag, target );