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/config.gradle b/config.gradle
index e1158d2fd3..1b33af44ee 100644
--- a/config.gradle
+++ b/config.gradle
@@ -143,5 +143,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 b6a4fe9fdd..7e35f360fc 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -56,9 +56,9 @@ MOGO_MODULE_GUIDE_VERSION=1.0.3.12
# 探路
MOGO_MODULE_TANLU_VERSION=1.0.5.6
# 车聊聊
-CARCHATTING_VERSION=1.0.3.2-SNAPSHOT
+CARCHATTING_VERSION=1.0.4-SNAPSHOT
# 车聊聊接口
-CARCHATTINGPROVIDER_VERSION=1.0.3.2-SNAPSHOT
+CARCHATTINGPROVIDER_VERSION=1.0.4-SNAPSHOT
# 视频引导
MOGO_MODULE_GUIDESHOW_VERSION=1.0.2-SNAPSHOT
# 视频引导接口
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/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/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..a1c65890ef 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java
@@ -1,37 +1,20 @@
package com.mogo.module.apps;
import android.os.Bundle;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
-import com.alibaba.android.arouter.launcher.ARouter;
+
import com.mogo.commons.mvp.MvpFragment;
import com.mogo.module.apps.adapter.AppIndicatorAdapter;
-import com.mogo.module.apps.adapter.base.RecycleViewHolder;
-import com.mogo.module.apps.model.NavigatorApp;
+import com.mogo.module.apps.applaunch.AppLauncher;
+import com.mogo.module.apps.applaunch.BaseAppLauncher;
+import com.mogo.module.apps.applaunch.InternalFunctionLauncher;
import com.mogo.module.apps.model.NavigatorApps;
-import com.mogo.module.apps.utils.CardScaleTransformer;
-import com.mogo.module.common.MogoModulePaths;
-import com.mogo.service.MogoServicePaths;
-import com.mogo.service.analytics.IMogoAnalytics;
-import com.mogo.service.cardmanager.IMogoCardChangedListener;
-import com.mogo.service.fragmentmanager.FragmentDescriptor;
-import com.mogo.service.fragmentmanager.IMogoFragmentManager;
-import com.mogo.service.module.IMogoModuleProvider;
-import com.mogo.utils.logger.Logger;
-import com.yarolegovich.discretescrollview.DiscreteScrollLayoutManager;
-import com.yarolegovich.discretescrollview.DiscreteScrollView;
-import java.util.ArrayList;
+
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
/**
@@ -40,27 +23,14 @@ import java.util.Map;
*
* 描述
*/
-public class AppNavigatorFragment extends MvpFragment
- implements AppNavigatorView, DiscreteScrollView.OnItemChangedListener,
- DiscreteScrollView.ScrollStateChangeListener,
- IMogoCardChangedListener {
+public class AppNavigatorFragment extends MvpFragment< AppNavigatorView, AppNavigatorPresenter > implements AppNavigatorView {
private static final String TAG = "AppNavigatorFragment";
- private View mApps;
- private IMogoFragmentManager mMogoFragmentManager;
- List apps;
+ private RecyclerView mNavigatorAppsList;
+ private AppIndicatorAdapter mAppIndicatorAdapter;
- /**
- * 搜索莫模块
- */
- private IMogoModuleProvider mSearchProvider;
-
- private IMogoAnalytics mMogoAnalytics;
-// private DiscreteScrollView scroller;
-
- private static int CARD_SIZE = 6;
- private AppIndicatorAdapter appIndicatorAdapter;
+ private BaseAppLauncher mLauncher;
@Override
protected int getLayoutId() {
@@ -69,228 +39,49 @@ public class AppNavigatorFragment extends MvpFragment {
+// openAppsPanel();
+// trackNavigatorClickEvent( 4 );
+// } );
+ mLauncher = new InternalFunctionLauncher( getActivity() );
+ mLauncher.setNext( new AppLauncher() );
- mMogoFragmentManager = (IMogoFragmentManager) ARouter.getInstance()
- .build(MogoServicePaths.PATH_FRAGMENT_MANAGER)
- .navigation();
-
- mApps = findViewById(R.id.module_apps_id_apps);
-
-// scroller = findViewById(R.id.module_apps_id_scroller);
-//
-// scroller.setRatio(330 / 523F);
-// //scroller.setRatio(176/279F);
-// scroller.setSlideOnFling(true);
-// scroller.addOnItemChangedListener(this);
-// scroller.addScrollStateChangeListener(this);
-// //scroller.setItemTransitionTimeMillis(DiscreteScrollViewOptions.getTransitionTime());
-// apps = NavigatorApps.getApps();
-// CARD_SIZE = apps.size();
-// scroller.setItemTransformer(new CardScaleTransformer.Builder()
-// .setMinScale(0.84f)
-// .build());
-
- appIndicatorAdapter = new AppIndicatorAdapter(getContext(), apps);
-
- appIndicatorAdapter.setOnClickListener(new View.OnClickListener() {
- @Override public void onClick(View v) {
- NavigatorApp item = (NavigatorApp) v.getTag();
- AppServiceHandler.getMogoCardManager().switch2(item.mModuleType);
- }
- });
-
-// scroller.setAdapter(appIndicatorAdapter);
-// scroller.scrollToPosition(Integer.MAX_VALUE / 2 - 1);
- //mNavigation.setOnClickListener( view -> {
- // openSearchPanel();
- // trackNavigatorClickEvent( 1 );
- //} );
- //mMediaCenter.setOnClickListener( view -> {
- // try {
- // LaunchUtils.launchByPkg( getContext(), AppsConst.APP_PKG_MUSIC );
- // trackNavigatorClickEvent( 2 );
- // } catch ( Exception e ) {
- // TipToast.shortTip( R.string.module_apps_str_no_app );
- // }
- //} );
- //mCarSettings.setOnClickListener( view -> {
- // try {
- // LaunchUtils.launchByPkg( getContext(), AppsConst.APP_PKG_CAR_SETTINGS );
- // trackNavigatorClickEvent( 3 );
- // } catch ( Exception e ) {
- // TipToast.shortTip( R.string.module_apps_str_no_app );
- // }
- //} );
- mApps.setOnClickListener(view -> {
- openAppsPanel();
-
- //AppServiceHandler.getMogoCardManager()
- // .switch2(apps.get((int) (Math.random() * 6)).mModuleType);
-
- trackNavigatorClickEvent(4);
- });
- AppServiceHandler.init(getContext());
-
- AppServiceHandler.getMogoCardManager().registerCardChangedListener(TAG, this);
- }
-
- private void scrollToCenter(int index) {
-
+ mNavigatorAppsList = findViewById( R.id.module_apps_id_apps_list );
+ mNavigatorAppsList.setLayoutManager( new LinearLayoutManager( getActivity(), RecyclerView.VERTICAL, false ) );
+ mAppIndicatorAdapter = new AppIndicatorAdapter( getContext(), NavigatorApps.getApps() );
+ mAppIndicatorAdapter.setOnItemClickedListener( ( data, position ) -> {
+ mLauncher.launch( getContext(), data );
+ } );
+ mNavigatorAppsList.setAdapter( mAppIndicatorAdapter );
}
@NonNull
@Override
protected AppNavigatorPresenter createPresenter() {
- return new AppNavigatorPresenter(this);
+ return new AppNavigatorPresenter( this );
}
@Override
- public void onActivityCreated(@Nullable Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- mMogoFragmentManager = (IMogoFragmentManager) ARouter.getInstance()
- .build(MogoServicePaths.PATH_FRAGMENT_MANAGER)
- .navigation(getContext());
- mMogoAnalytics = (IMogoAnalytics) ARouter.getInstance()
- .build(MogoServicePaths.PATH_UTILS_ANALYTICS)
- .navigation(getContext());
+ public void onActivityCreated( @Nullable Bundle savedInstanceState ) {
+ super.onActivityCreated( savedInstanceState );
}
@Override
public void openAppsPanel() {
- AppsListActivity.start(getActivity());
+ AppsListActivity.start( getActivity() );
}
- private void trackNavigatorClickEvent(int type) {
- final Map properties = new HashMap<>();
- properties.put("type", type);
- mMogoAnalytics.track("Launcher_APP_Icon", properties);
+ private void trackNavigatorClickEvent( int type ) {
+ final Map< String, Object > properties = new HashMap<>();
+ properties.put( "type", type );
+ AppServiceHandler.getMogoAnalytics().track( "Launcher_APP_Icon", properties );
}
@Override
public void onDestroyView() {
super.onDestroyView();
- if (mPresenter != null) {
- mPresenter.onDestroy(getViewLifecycleOwner());
+ if ( mPresenter != null ) {
+ mPresenter.onDestroy( getViewLifecycleOwner() );
}
}
-
- @Override
- public void onCurrentItemChanged(@Nullable RecycleViewHolder viewHolder, int i) {
- Logger.d(TAG, "onCurrentItemChanged--position--" + i % CARD_SIZE);
- int currentPosition = (i - 2) % CARD_SIZE;
-
- //if (!scroller.isComputingLayout()) {
- // appIndicatorAdapter.setCurrentPos(i);
- //}
- //this.currentPosition=currentPosition;
- AppServiceHandler.getMogoCardManager().switch2(apps.get(i % CARD_SIZE).mModuleType, true);
-
- //holder.showText();
-
- //ImageView view = viewHolder.getView(R.id.module_apps_id_app_icon);
- //view.setImageResource(apps.get(currentPosition).getmIconId());
- //
- //TextView tvTitle = viewHolder.getView(R.id.module_apps_id_app_name);
- //tvTitle.setTextColor(getResources().getColor(R.color.white));
-
- }
-
- @Override public void onScrollStart(@NonNull RecycleViewHolder viewHolder, int i) {
- int currentPosition = i % CARD_SIZE - 2;
- //
- //ImageView view = viewHolder.getView(R.id.module_apps_id_app_icon);
- //
- //
- //view.setImageResource(apps.get(currentPosition).mUncheckedIconId);
- //TextView tvTitle = viewHolder.getView(R.id.module_apps_id_app_name);
- //tvTitle.setTextColor(getResources().getColor(R.color.white_80));
-
- }
-
- @Override public void onScrollEnd(@NonNull RecycleViewHolder viewHolder, int i) {
-
- }
-
- @Override
- public void onScroll(float v, int i, int i1, @Nullable RecycleViewHolder viewHolder,
- @Nullable RecycleViewHolder t1) {
-
- }
-
- //private int currentPosition = 0;
-
- @Override public void onSwitched(int position, String moduleName) {
- //int index = (position - scroller.getCurrentItem() % CARD_SIZE + 2) % CARD_SIZE;
- //int i = scroller.getCurrentItem() + index;
-// DiscreteScrollLayoutManager layoutManager =
-// (DiscreteScrollLayoutManager) scroller.getLayoutManager();
-//
-// int currentPosition = (scroller.getCurrentItem() - 2) % CARD_SIZE;
-//
-// int index = position - currentPosition;
-//
-// if (index == 0) {
-// return;
-// }
-// if (index <= -3) {
-// index += CARD_SIZE;
-// } else if (index >= 3) {
-// index = index - CARD_SIZE;
-// }
-// //RecyclerView 的特性,如果是否在屏幕内
-// //if (index < 0) {
-// // index -= 2;
-// //}
-//
-// Logger.d(TAG, "position--"
-// + position
-// + "index--"
-// + index
-// + "scroll-->"
-// + scroller.getCurrentItem()
-// + index);
-//
-// //scroller.setPendingScroll(getResources().getDimensionPixelSize(R.dimen.dp_137)*index);
-// //layoutManager.scrollToPositionWithOffset(scroller.getCurrentItem() + index,0);
-// //scroller.smoothScrollBy(getResources().getDimensionPixelSize(R.dimen.dp_137)*index,0);
-//
-// if (Math.abs(index) == 1) {
-// scroller.smoothScrollBy(getResources().getDimensionPixelSize(R.dimen.dp_137) * index,
-// 0, null, 10);
-// } else {
-// layoutManager.startSmoothPendingScroll(layoutManager.getCurrentPosition() + index);
-// }
- //layoutManager.smoothScrollToPosition(scroller.getCurrentItem() + index);
- //currentPosition = position;
- }
-
- private void printIds(View view) {
- System.out.println(view.getId());
- if (view instanceof ViewGroup) {
- int childCount = ((ViewGroup) view).getChildCount();
- for (int i = 0; i < childCount; i++) {
- printIds(((ViewGroup) view).getChildAt(i));
- }
- }
- }
-
- private void print(View view) {
-
- ArrayList views = new ArrayList<>();
- views.add(view);
-
- while (views.size() > 0) {
- System.out.println(view.getId());
- View remove = views.remove(0);
-
- if (remove instanceof ViewGroup) {
-
- int childCount = ((ViewGroup) view).getChildCount();
- for (int i = 0; i < childCount; i++) {
- views.add(((ViewGroup) view).getChildAt(i));
- }
- }
- }
-
- }
}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorPresenter.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorPresenter.java
index 378522b10b..6dbdc52ac9 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorPresenter.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorPresenter.java
@@ -40,8 +40,8 @@ public class AppNavigatorPresenter extends Presenter< AppNavigatorView > impleme
@Override
public void onCreate( @NonNull LifecycleOwner owner ) {
super.onCreate( owner );
- mIntentManager = ( IMogoIntentManager ) ARouter.getInstance().build( MogoServicePaths.PATH_INTENT_MANAGER ).navigation( getContext() );
- mMogoStatusManager = ( IMogoStatusManager ) ARouter.getInstance().build( MogoServicePaths.PATH_STATUS_MANAGER ).navigation( getContext() );
+ mIntentManager = AppServiceHandler.getApis().getIntentManagerApi();
+ mMogoStatusManager = AppServiceHandler.getApis().getStatusManagerApi();
// 预加载应用列表,空间换时间
AppsModel.getInstance( getContext() ).load( null );
}
@@ -68,6 +68,7 @@ public class AppNavigatorPresenter extends Presenter< AppNavigatorView > impleme
return;
}
try {
+ AppServiceHandler.getApis().getAdasControllerApi().closeADAS();
JSONObject object = new JSONObject( intent.getStringExtra( "data" ) );
String app = object.optString( "object" );
String operation = object.optString( "operation" );
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppServiceHandler.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppServiceHandler.java
index 7dc4ce40d3..9bf52fd3b0 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppServiceHandler.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppServiceHandler.java
@@ -1,7 +1,9 @@
package com.mogo.module.apps;
import android.content.Context;
+
import com.alibaba.android.arouter.launcher.ARouter;
+import com.mogo.commons.AbsMogoApplication;
import com.mogo.map.location.IMogoLocationClient;
import com.mogo.map.marker.IMogoMarkerManager;
import com.mogo.map.navi.IMogoNavi;
@@ -27,6 +29,7 @@ import com.mogo.service.statusmanager.IMogoStatusManager;
* version: 1.0
*/
public class AppServiceHandler {
+
private static final String TAG = "AppServiceHandler";
private static IMogoServiceApis mApis;
@@ -34,17 +37,18 @@ public class AppServiceHandler {
private static IMogoAnalytics mMogoAnalytics;
private static IGuideShowProvider mMogoGuideShow;
-
public static void init( final Context context ) {
mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( context );
mMogoCardManager = mApis.getCardManagerApi();
mMogoAnalytics = mApis.getAnalyticsApi();
- mMogoGuideShow = (IGuideShowProvider) ARouter.getInstance().build(GuideShowProviderConstant.GUIDE_SHOW_PROVIDER).navigation(context);
+ mMogoGuideShow = ( IGuideShowProvider ) ARouter.getInstance().build( GuideShowProviderConstant.GUIDE_SHOW_PROVIDER ).navigation( context );
}
+
public static IMogoCardManager getMogoCardManager() {
return mMogoCardManager;
}
+
public static IMogoAnalytics getMogoAnalytics() {
return mMogoAnalytics;
}
@@ -52,4 +56,11 @@ public class AppServiceHandler {
public static IGuideShowProvider getMogoGuideShow() {
return mMogoGuideShow;
}
+
+ public static IMogoServiceApis getApis() {
+ if ( mApis == null ) {
+ mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( AbsMogoApplication.getApp() );
+ }
+ return mApis;
+ }
}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragmentProvider.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragmentProvider.java
index 054707c758..1f0dc91f16 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragmentProvider.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragmentProvider.java
@@ -74,7 +74,7 @@ public class AppsFragmentProvider implements IMogoModuleProvider {
@Override
public void init( Context context ) {
-
+ AppServiceHandler.init( context );
}
@Override
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java
index 54f42368d3..306c626b83 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java
@@ -6,6 +6,7 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LifecycleOwner;
import com.alibaba.android.arouter.launcher.ARouter;
+import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.mvp.Presenter;
import com.mogo.module.apps.applaunch.AppLaunchFilter;
import com.mogo.module.apps.applaunch.AppLauncher;
@@ -36,7 +37,7 @@ import java.util.Set;
*
* 描述
*/
-public class AppsPresenter extends Presenter {
+public class AppsPresenter extends Presenter< AppsView > {
private static final String TAG = "AppsPresenter";
@@ -48,61 +49,62 @@ public class AppsPresenter extends Presenter {
private IMogoCardManager mCardManager;
private IMogoStatusManager mMogoStatusManager;
- public AppsPresenter(AppsView view) {
- super(view);
- mApis = (IMogoServiceApis)ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation(getContext());
+ public AppsPresenter( AppsView view ) {
+ super( view );
+ mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( getContext() );
mCardManager = mApis.getCardManagerApi();
- CardAppLauncher cardAppLauncher = new CardAppLauncher(this, mCardManager);
- GuideShowLauncher guideShowLauncher = new GuideShowLauncher(mApis.getMapServiceApi().getNavi( getContext() ));
- cardAppLauncher.setNext(guideShowLauncher);
- guideShowLauncher.setNext(new AppLauncher());
+ CardAppLauncher cardAppLauncher = new CardAppLauncher( this, mCardManager );
+ GuideShowLauncher guideShowLauncher = new GuideShowLauncher( mApis.getMapServiceApi().getNavi( getContext() ) );
+ cardAppLauncher.setNext( guideShowLauncher );
+ guideShowLauncher.setNext( new AppLauncher() );
mLauncher = cardAppLauncher;
}
@Override
- public void onCreate(@NonNull LifecycleOwner owner) {
- super.onCreate(owner);
+ public void onCreate( @NonNull LifecycleOwner owner ) {
+ super.onCreate( owner );
renderAppsList();
- AppsListChangedLiveData.getInstance().observeForever(bool -> {
- if (mView != null) {
+ AppsListChangedLiveData.getInstance().observeForever( bool -> {
+ if ( mView != null ) {
renderAppsList();
}
- });
+ } );
mAnalytics = mApis.getAnalyticsApi();
mMogoStatusManager = mApis.getStatusManagerApi();
- mMogoStatusManager.setAppListUIShow(TAG, true);
+ mMogoStatusManager.setAppListUIShow( TAG, true );
}
private void renderAppsList() {
- ThreadPoolService.execute(() -> {
- AppsModel.getInstance(getContext()).load(appInfoList -> {
+ ThreadPoolService.execute( () -> {
+ AppsModel.getInstance( getContext() ).load( appInfoList -> {
- Logger.d(TAG, "apps: %s", appInfoList);
- final Map> result = addOthersEntrances( appInfoList );
- UiThreadHandler.post(() -> {
- if (mView != null) {
+ Logger.d( TAG, "apps: %s", appInfoList );
+ final Map< Integer, List< AppInfo > > result = addOthersEntrances( appInfoList );
+ UiThreadHandler.post( () -> {
+ if ( mView != null ) {
mView.renderApps( result );
}
- });
- });
+ } );
+ } );
- });
+ } );
}
/**
* 新增入口
+ *
* @param appInfoMap
* @return
*/
- private Map> addOthersEntrances( Map> appInfoMap) {
- Map> result = new HashMap<>();
+ private Map< Integer, List< AppInfo > > addOthersEntrances( Map< Integer, List< AppInfo > > appInfoMap ) {
+ Map< Integer, List< AppInfo > > result = new HashMap<>();
if ( appInfoMap != null && !appInfoMap.isEmpty() ) {
// val deep copy
- Set keys = appInfoMap.keySet();
+ Set< Integer > keys = appInfoMap.keySet();
for ( Integer key : keys ) {
- List val = appInfoMap.get( key );
+ List< AppInfo > val = appInfoMap.get( key );
try {
result.put( key, new ArrayList<>( val ) );
} catch ( Exception e ) {
@@ -112,16 +114,16 @@ public class AppsPresenter extends Presenter {
}
// 手动添加无法识别到的app
- List apps = UnScannedApps.getUnScannedApps();
+ List< AppInfo > apps = UnScannedApps.getUnScannedApps();
if ( apps != null && !apps.isEmpty() ) {
for ( AppInfo app : apps ) {
if ( app == null ) {
continue;
}
- Set keys = result.keySet();
+ Set< Integer > keys = result.keySet();
boolean addFlag = true;
for ( Integer key : keys ) {
- List val = result.get( key );
+ List< AppInfo > val = result.get( key );
// 无法扫描到蓝牙电话app,这里手动添加
for ( AppInfo appInfo : val ) {
if ( appInfo == null ) {
@@ -137,71 +139,77 @@ public class AppsPresenter extends Presenter {
}
}
if ( addFlag ) {
- growthCapacity(result);
- result.get(result.size() - 1).add(app);
+ growthCapacity( result );
+ result.get( result.size() - 1 ).add( app );
}
}
}
- growthCapacity(result);
+ growthCapacity( result );
// 添加介绍入口
- result.get(result.size() - 1).add(new AppInfo(GuideShowLauncher.APP_INFO_NAME_GUIDE_SHOW, getContext().getPackageName(), null, 0, null, R.drawable.module_apps_ic_guide_show));
+ result.get( result.size() - 1 ).add( new AppInfo( GuideShowLauncher.APP_INFO_NAME_GUIDE_SHOW, getContext().getPackageName(), null, 0, null, R.drawable.module_apps_ic_guide_show ) );
+ if ( DebugConfig.isDebug() ) {
+ // 添加测试入口
+ growthCapacity( result );
+ result.get( result.size() - 1 ).add( new AppInfo( "包管理程序", "com.mogo.packages.manager", null, 0, null, -1 ) );
+ }
return result;
}
/**
* 扩容
+ *
* @param target
*/
- private void growthCapacity( Map> target ){
+ private void growthCapacity( Map< Integer, List< AppInfo > > target ) {
if ( target == null ) {
return;
}
- if (target.isEmpty()) {
- target.put(0, new ArrayList<>());
- } else if (target.get(target.size() - 1) == null) {
- target.put(target.size() - 1, new ArrayList<>());
- } else if (target.get(target.size() - 1).size() == AppsConst.TOTAL_SIZE_EACH_PAGE) {
- target.put(target.size(), new ArrayList<>());
+ if ( target.isEmpty() ) {
+ target.put( 0, new ArrayList<>() );
+ } else if ( target.get( target.size() - 1 ) == null ) {
+ target.put( target.size() - 1, new ArrayList<>() );
+ } else if ( target.get( target.size() - 1 ).size() == AppsConst.TOTAL_SIZE_EACH_PAGE ) {
+ target.put( target.size(), new ArrayList<>() );
}
}
- public void launch(AppInfo appInfo) {
- if (appInfo == null) {
+ public void launch( AppInfo appInfo ) {
+ if ( appInfo == null ) {
return;
}
- trackAppClicked(appInfo);
+ trackAppClicked( appInfo );
try {
- mLauncher.launch(getContext(), appInfo);
- } catch (Exception e) {
+ mLauncher.launch( getContext(), appInfo );
+ } catch ( Exception e ) {
}
}
- private void trackAppClicked(AppInfo appInfo) {
- if (appInfo == null) {
+ private void trackAppClicked( AppInfo appInfo ) {
+ if ( appInfo == null ) {
return;
}
- Map properties = new HashMap<>();
- properties.put("appname", appInfo.getName());
- properties.put("packagename", appInfo.getPackageName());
- properties.put("appversion", appInfo.getVersionName());
- properties.put("from", 1);
- mAnalytics.track("appenterfront", properties);
+ Map< String, Object > properties = new HashMap<>();
+ properties.put( "appname", appInfo.getName() );
+ properties.put( "packagename", appInfo.getPackageName() );
+ properties.put( "appversion", appInfo.getVersionName() );
+ properties.put( "from", 1 );
+ mAnalytics.track( "appenterfront", properties );
}
@Override
- public void onDestroy(@NonNull LifecycleOwner owner) {
- super.onDestroy(owner);
- mMogoStatusManager.setAppListUIShow(TAG, false);
+ public void onDestroy( @NonNull LifecycleOwner owner ) {
+ super.onDestroy( owner );
+ mMogoStatusManager.setAppListUIShow( TAG, false );
AppsListChangedLiveData.getInstance().release();
mView = null;
mLauncher.destroy();
}
public void exit() {
- if (mView != null) {
+ if ( mView != null ) {
mView.exit();
}
}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/AppIndicatorAdapter.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/AppIndicatorAdapter.java
index 9b78d95c2e..dfd77cce0c 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/AppIndicatorAdapter.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/AppIndicatorAdapter.java
@@ -1,62 +1,34 @@
package com.mogo.module.apps.adapter;
import android.content.Context;
-import android.view.View;
import android.widget.ImageView;
-import android.widget.TextView;
-import androidx.core.content.ContextCompat;
+
import com.mogo.module.apps.R;
import com.mogo.module.apps.adapter.base.RecycleBaseAdapter;
import com.mogo.module.apps.adapter.base.RecycleViewHolder;
+import com.mogo.module.apps.model.AppInfo;
import com.mogo.module.apps.model.NavigatorApp;
+
import java.util.List;
/**
* @author zyz
* 2020-03-09.
*/
-public class AppIndicatorAdapter extends RecycleBaseAdapter {
+public class AppIndicatorAdapter extends RecycleBaseAdapter< AppInfo > {
-
- private int currentPos;
-
- private View.OnClickListener onClickListener;
- /**
- *
- */
- public AppIndicatorAdapter(Context context, List list
- ) {
- super(context, list, R.layout.module_apps_item_app_indicator);
+ public AppIndicatorAdapter( Context context, List< AppInfo > list ) {
+ super( context, list, R.layout.module_apps_item_app_indicator );
}
- @Override public int getItemCount() {
- return Integer.MAX_VALUE;
- }
-
- @Override public void onBindViewHolder(RecycleViewHolder holder, NavigatorApp integer) {
- ImageView ivIndicator = holder.getView(R.id.module_apps_id_app_icon);
- ivIndicator.setImageResource(integer.getmIconId());
- holder.setText(R.id.module_apps_id_app_name,integer.getmName() );
-
- TextView tvTitle = holder.getView(R.id.module_apps_id_app_name);
- if (currentPos==holder.getLayoutPosition()) {
- ivIndicator.setImageResource(integer.getmIconId());
- tvTitle.setTextColor(ContextCompat.getColor(context,R.color.white));
- }else {
- tvTitle.setTextColor(ContextCompat.getColor(context,R.color.white_80));
- ivIndicator.setImageResource(integer.getmUncheckedIconId());
- }
- holder.itemView.setTag(integer);
- holder.itemView.setOnClickListener(onClickListener);
-
- }
-
- public void setOnClickListener(View.OnClickListener onClickListener) {
- this.onClickListener = onClickListener;
- }
-
- public void setCurrentPos(int currentPos){
- this.currentPos=currentPos;
- notifyDataSetChanged();
+ @Override
+ public void onBindViewHolder( RecycleViewHolder holder, AppInfo app, int position ) {
+ ImageView ivIndicator = holder.getView( R.id.module_apps_id_app_icon );
+ ivIndicator.setImageResource( app.getIconResId() );
+ holder.itemView.setOnClickListener( view -> {
+ if ( getOnItemClickedListener() != null ) {
+ getOnItemClickedListener().onItemClicked( app, position );
+ }
+ } );
}
}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/base/RecycleBaseAdapter.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/base/RecycleBaseAdapter.java
index 2a8cc64079..d39ca569b9 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/base/RecycleBaseAdapter.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/base/RecycleBaseAdapter.java
@@ -5,7 +5,9 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
+
import androidx.recyclerview.widget.RecyclerView;
+
import java.util.List;
/**
@@ -21,20 +23,19 @@ import java.util.List;
*
*
*/
-public abstract class RecycleBaseAdapter extends
- RecyclerView.Adapter
-{
+public abstract class RecycleBaseAdapter< T > extends
+ RecyclerView.Adapter< RecycleViewHolder > {
protected Context context;
- protected List list;
+ protected List< T > list;
private int resourceID;
- private Toast toast;
+
+ protected OnItemClickListener mOnItemClickedListener;
/**
* @param context
*/
- public RecycleBaseAdapter(Context context, List list, int resourceID)
- {
+ public RecycleBaseAdapter( Context context, List< T > list, int resourceID ) {
super();
this.context = context;
this.list = list;
@@ -42,81 +43,75 @@ public abstract class RecycleBaseAdapter extends
}
@Override
- public RecycleViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType)
- {
- View v = LayoutInflater.from(context).inflate(resourceID, viewGroup,
- false);
+ public RecycleViewHolder onCreateViewHolder( ViewGroup viewGroup, int viewType ) {
+ View v = LayoutInflater.from( context ).inflate( resourceID, viewGroup,
+ false );
RecycleViewHolder holder = RecycleViewHolder
- .get(v);
+ .get( v );
- initHolder(holder);
+ initHolder( holder );
return holder;
}
@Override
- public void onBindViewHolder(
- RecycleViewHolder viewHolder, int position)
- {
- onBindViewHolder(viewHolder, list.get(position % list.size()));
+ public void onBindViewHolder( RecycleViewHolder viewHolder, int position ) {
+ onBindViewHolder( viewHolder, list.get( position % list.size()), position );
}
@Override
- public int getItemCount()
- {
+ public int getItemCount() {
return list == null ? 0 : list.size();
}
- public abstract void onBindViewHolder(
- RecycleViewHolder holder, T t);
+ public abstract void onBindViewHolder( RecycleViewHolder holder, T t, int position );
- public void initHolder(RecycleViewHolder holder)
- {
+ public void initHolder( RecycleViewHolder holder ) {
}
- public void setDatas(List list)
- {
- setDatas(list, false);
+
+ public void setDatas( List< T > list ) {
+ setDatas( list, false );
}
- public void setDatas(List list, boolean add)
- {
- if (add)
- {
- this.list.addAll(list);
- }
- else
- {
+ public void setDatas( List< T > list, boolean add ) {
+ if ( add ) {
+ this.list.addAll( list );
+ } else {
this.list = list;
}
notifyDataSetChanged();
}
- public void clear(){
- if (list != null) {
+
+ public void clear() {
+ if ( list != null ) {
list.clear();
notifyDataSetChanged();
}
}
- public void messageShow(String mes)
- {
- if (toast==null){
- toast= Toast.makeText(context,mes, Toast.LENGTH_LONG);
- }
- else{
- toast.setText(mes);
- }
- toast.show();
- }
- public T getItem(int position){
- if (list==null||list.size()==0){
+ public T getItem( int position ) {
+ if ( list == null || list.size() == 0 ) {
return null;
}
- return list.get(position);
+ return list.get( position );
}
- public List getList() {
+ public List< T > getList() {
return list;
}
+
+ public interface OnItemClickListener< T > {
+ void onItemClicked( T data, int position );
+ }
+
+ public RecycleBaseAdapter< T > setOnItemClickedListener( OnItemClickListener< T > onItemClickedListener ) {
+ this.mOnItemClickedListener = onItemClickedListener;
+ return this;
+ }
+
+ public OnItemClickListener< T > getOnItemClickedListener() {
+ return mOnItemClickedListener;
+ }
}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/AppLauncher.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/AppLauncher.java
index 0ce9ae3b23..fe9e34b244 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/AppLauncher.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/AppLauncher.java
@@ -2,6 +2,7 @@ package com.mogo.module.apps.applaunch;
import android.content.Context;
+import com.mogo.module.apps.AppServiceHandler;
import com.mogo.module.apps.R;
import com.mogo.module.apps.model.AppInfo;
import com.mogo.module.apps.utils.LaunchUtils;
@@ -21,6 +22,7 @@ public class AppLauncher extends BaseAppLauncher {
@Override
public void launch( Context context, AppInfo appInfo ) {
try {
+ AppServiceHandler.getApis().getAdasControllerApi().closeADAS();
LaunchUtils.launchByPkg( context, appInfo.getPackageName() );
} catch ( Exception e ) {
Logger.e( TAG, e, "error." );
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/InternalFunctionLauncher.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/InternalFunctionLauncher.java
new file mode 100644
index 0000000000..5db46d1315
--- /dev/null
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/InternalFunctionLauncher.java
@@ -0,0 +1,47 @@
+package com.mogo.module.apps.applaunch;
+
+import android.app.Activity;
+import android.content.Context;
+
+import com.mogo.module.apps.AppServiceHandler;
+import com.mogo.module.apps.AppsListActivity;
+import com.mogo.module.apps.model.AppInfo;
+
+/**
+ * @author congtaowang
+ * @since 2020-05-14
+ *
+ * 描述
+ */
+public class InternalFunctionLauncher extends BaseAppLauncher {
+
+ private Activity mActivity;
+
+ public InternalFunctionLauncher( Activity activity ) {
+ this.mActivity = activity;
+ }
+
+ @Override
+ public void launch( Context context, AppInfo appInfo ) {
+ switch ( appInfo.getPackageName() ) {
+ case "com.mogo.launcher.navi.search":
+ AppServiceHandler.getApis().getSearchManagerApi().showSearch();
+ break;
+ case "com.mogo.launcher.applist":
+ AppServiceHandler.getApis().getAdasControllerApi().closeADAS();
+ AppsListActivity.start( mActivity );
+ break;
+ default:
+ if ( getNext() != null ) {
+ getNext().launch( context, appInfo );
+ }
+ }
+ }
+
+ @Override
+ public void destroy() {
+ if ( getNext() != null ) {
+ getNext().destroy();
+ }
+ }
+}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApp.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApp.java
index d5f7df5b9b..9681af74b6 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApp.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApp.java
@@ -15,44 +15,18 @@ public class NavigatorApp {
@DrawableRes
public int mUncheckedIconId;
public String mName;
- public String mModuleType;
- public NavigatorApp( int mIconId,int mUncheckedIconId, String mName, String mModuleType ) {
+ public NavigatorApp( int mIconId, int mUncheckedIconId, String mName ) {
this.mIconId = mIconId;
this.mUncheckedIconId = mUncheckedIconId;
this.mName = mName;
- this.mModuleType = mModuleType;
}
- public int getmIconId() {
+ public int getIconId() {
return mIconId;
}
- public void setmIconId(int mIconId) {
- this.mIconId = mIconId;
- }
-
- public int getmUncheckedIconId() {
- return mUncheckedIconId;
- }
-
- public void setmUncheckedIconId(int mUncheckedIconId) {
- this.mUncheckedIconId = mUncheckedIconId;
- }
-
- public String getmName() {
+ public String getName() {
return mName;
}
-
- public void setmName(String mName) {
- this.mName = mName;
- }
-
- public String getmModuleType() {
- return mModuleType;
- }
-
- public void setmModuleType(String mModuleType) {
- this.mModuleType = mModuleType;
- }
}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApps.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApps.java
index 3ff8bc8b09..9e5a98be45 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApps.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApps.java
@@ -1,9 +1,6 @@
package com.mogo.module.apps.model;
import com.mogo.module.apps.R;
-import com.mogo.module.common.ModuleNames;
-import com.mogo.module.common.MogoModule;
-import com.mogo.module.common.MogoModulePaths;
import java.util.ArrayList;
import java.util.List;
@@ -16,48 +13,15 @@ import java.util.List;
*/
public class NavigatorApps {
- public static List< NavigatorApp > getApps() {
- List< NavigatorApp > apps = new ArrayList<>();
- apps.add( new NavigatorApp( R.drawable.module_apps_ic_online_car,R.drawable.module_apps_ic_online_car_unchecked, "在线车辆", ModuleNames.CARD_TYPE_USER_DATA ) );
- apps.add( new NavigatorApp( R.drawable.module_apps_ic_interest, R.drawable.module_apps_ic_interest_unchecked,"新鲜事", ModuleNames.CARD_TYPE_NOVELTY ) );
- apps.add( new NavigatorApp( R.drawable.module_apps_ic_news,R.drawable.module_apps_ic_news_unchecked, "首页", ModuleNames.CARD_TYPE_BUSINESS_OPERATION ) );
- apps.add( new NavigatorApp( R.drawable.module_apps_ic_media_center, R.drawable.module_apps_ic_media_center_checked, "媒体中心", ModuleNames.CARD_TYPE_SHARE_MUSIC ) );
- apps.add( new NavigatorApp( R.drawable.module_apps_ic_chat_icon, R.drawable.module_apps_ic_chat_unchecked,"车聊聊", ModuleNames.CARD_TYPE_CARS_CHATTING ) );
- apps.add( new NavigatorApp( R.drawable.module_apps_ic_tanlu, R.drawable.module_apps_ic_tanlu_unchecked,"探路", ModuleNames.CARD_TYPE_ROAD_CONDITION ) );
- return apps;
- }
+ private static List< AppInfo > sApps = new ArrayList<>();
-// public static List< NavigatorApp > getApps() {
-// List< NavigatorApp > apps = new ArrayList<>();
-// List< MogoModule > modules = MogoModulePaths.getModules();
-// for ( MogoModule module : modules ) {
-// NavigatorApp app = getApp( module );
-// if ( app == null ) {
-// continue;
-// }
-// apps.add( app );
-// }
-// return apps;
-// }
-//
-// private static NavigatorApp getApp( MogoModule module ) {
-// if ( module == null ) {
-// return null;
-// }
-// switch ( module.getName() ) {
-// case ModuleNames.CARD_TYPE_USER_DATA:
-// return new NavigatorApp( R.drawable.module_apps_ic_online_car, R.drawable.module_apps_ic_online_car_unchecked, "在线车辆", ModuleNames.CARD_TYPE_USER_DATA );
-// case ModuleNames.CARD_TYPE_NOVELTY:
-// return new NavigatorApp( R.drawable.module_apps_ic_interest, R.drawable.module_apps_ic_interest_unchecked, "新鲜事", ModuleNames.CARD_TYPE_NOVELTY );
-// case ModuleNames.CARD_TYPE_BUSINESS_OPERATION:
-// return new NavigatorApp( R.drawable.module_apps_ic_news, R.drawable.module_apps_ic_news_unchecked, "首页", ModuleNames.CARD_TYPE_BUSINESS_OPERATION );
-// case ModuleNames.CARD_TYPE_SHARE_MUSIC:
-// return new NavigatorApp( R.drawable.module_apps_ic_media_center, R.drawable.module_apps_ic_media_center_checked, "媒体中心", ModuleNames.CARD_TYPE_SHARE_MUSIC );
-// case ModuleNames.CARD_TYPE_CARS_CHATTING:
-// return new NavigatorApp( R.drawable.module_apps_ic_chat_icon, R.drawable.module_apps_ic_chat_unchecked, "车聊聊", ModuleNames.CARD_TYPE_CARS_CHATTING );
-// case ModuleNames.CARD_TYPE_ROAD_CONDITION:
-// return new NavigatorApp( R.drawable.module_apps_ic_tanlu, R.drawable.module_apps_ic_tanlu_unchecked, "探路", ModuleNames.CARD_TYPE_ROAD_CONDITION );
-// }
-// return null;
-// }
+ public static List< AppInfo > getApps() {
+ if ( sApps.isEmpty() ) {
+ sApps.add( new AppInfo( "导航", "com.mogo.launcher.navi.search", "", 0, null, R.drawable.module_apps_ic_apps ) );
+ sApps.add( new AppInfo( "音乐", "com.pvetec.musics", "", 0, null, R.drawable.module_apps_ic_apps ) );
+ sApps.add( new AppInfo( "个人中心", "com.zhidao.auto.personal", "", 0, null, R.drawable.module_apps_ic_apps ) );
+ sApps.add( new AppInfo( "全部应用", "com.mogo.launcher.applist", "", 0, null, R.drawable.module_apps_ic_apps ) );
+ }
+ return sApps;
+ }
}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/utils/CardScaleTransformer.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/utils/CardScaleTransformer.java
deleted file mode 100644
index 771fc71f2d..0000000000
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/utils/CardScaleTransformer.java
+++ /dev/null
@@ -1,122 +0,0 @@
-package com.mogo.module.apps.utils;
-
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.TextView;
-import androidx.annotation.FloatRange;
-import androidx.core.content.ContextCompat;
-import androidx.recyclerview.widget.RecyclerView;
-import com.mogo.module.apps.R;
-import com.mogo.module.apps.model.NavigatorApp;
-import com.yarolegovich.discretescrollview.transform.DiscreteScrollItemTransformer;
-import com.yarolegovich.discretescrollview.transform.Pivot;
-import com.yarolegovich.discretescrollview.transform.ScaleTransformer;
-import java.util.List;
-
-/**
- * @author zyz
- * 2020-03-11.
- */
-public class CardScaleTransformer implements DiscreteScrollItemTransformer {
-
- private Pivot pivotX;
- private Pivot pivotY;
- private float minScale;
- private float maxMinDiff;
- private static final int CARD_SIZE = 6;
-
- List apps;
-
- public CardScaleTransformer() {
- pivotX = Pivot.X.CENTER.create();
- pivotY = Pivot.Y.BOTTOM.create();
- minScale = 0.8f;
- maxMinDiff = 0.2f;
- }
-
- public void setApps(List apps) {
- this.apps = apps;
- }
-
- @Override
- public void transformItem(View item, RecyclerView.ViewHolder childViewHolder, float position) {
-
- ImageView ivItem = item.findViewById(R.id.module_apps_id_app_icon);
-
- TextView tvTitle = item.findViewById(R.id.module_apps_id_app_name);
- NavigatorApp tag = (NavigatorApp) item.getTag();
-
- pivotX.setOn(ivItem);
- pivotY.setOn(ivItem);
- float closenessToCenter = 1f - Math.abs(position);
- float scale = minScale + maxMinDiff * closenessToCenter;
- ivItem.setScaleX(scale);
- ivItem.setScaleY(scale);
-
- if (tag != null) {
- if (scale == 1) {
- ivItem.setImageResource(tag.getmIconId());
- tvTitle.setTextColor(ContextCompat.getColor(item.getContext(),R.color.white));
- } else {
- ivItem.setImageResource(tag.getmUncheckedIconId());
- tvTitle.setTextColor(ContextCompat.getColor(item.getContext(),R.color.white_80));
- }
-
- }
-
- //int currentPosition = (position - 2) % CARD_SIZE;
-
- }
-
- public static class Builder {
-
- private CardScaleTransformer transformer;
- private float maxScale;
-
- public Builder() {
- transformer = new CardScaleTransformer();
- maxScale = 1f;
- }
-
- public Builder setMinScale(@FloatRange(from = 0.01) float scale) {
- transformer.minScale = scale;
- return this;
- }
-
- public Builder setMaxScale(@FloatRange(from = 0.01) float scale) {
- maxScale = scale;
- return this;
- }
-
- public Builder setPivotX(Pivot.X pivotX) {
- return setPivotX(pivotX.create());
- }
-
- public Builder setPivotX(Pivot pivot) {
- assertAxis(pivot, Pivot.AXIS_X);
- transformer.pivotX = pivot;
- return this;
- }
-
- public Builder setPivotY(Pivot.Y pivotY) {
- return setPivotY(pivotY.create());
- }
-
- public Builder setPivotY(Pivot pivot) {
- assertAxis(pivot, Pivot.AXIS_Y);
- transformer.pivotY = pivot;
- return this;
- }
-
- public CardScaleTransformer build() {
- transformer.maxMinDiff = maxScale - transformer.minScale;
- return transformer;
- }
-
- private void assertAxis(Pivot pivot, @Pivot.Axis int axis) {
- if (pivot.getAxis() != axis) {
- throw new IllegalArgumentException("You passed a Pivot for wrong axis.");
- }
- }
- }
-}
diff --git a/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml b/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml
index 1a0b739e7f..2ea21751a8 100644
--- a/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml
+++ b/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml
@@ -1,47 +1,16 @@
+ android:paddingBottom="@dimen/module_apps_navigation_icon_paddingBottom">
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/modules/mogo-module-apps/src/main/res/layout/module_apps_item_app_indicator.xml b/modules/mogo-module-apps/src/main/res/layout/module_apps_item_app_indicator.xml
index 8e02e01c0e..3e37557a76 100644
--- a/modules/mogo-module-apps/src/main/res/layout/module_apps_item_app_indicator.xml
+++ b/modules/mogo-module-apps/src/main/res/layout/module_apps_item_app_indicator.xml
@@ -2,23 +2,13 @@
-
-
+ android:layout_width="@dimen/module_apps_all_icon_width"
+ android:layout_height="@dimen/module_apps_all_icon_height"
+ android:scaleType="fitXY" />
\ No newline at end of file
diff --git a/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToLauncherModuleProvider.java b/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToLauncherModuleProvider.java
index c7fc69be71..74c6826eed 100644
--- a/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToLauncherModuleProvider.java
+++ b/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToLauncherModuleProvider.java
@@ -10,15 +10,12 @@ import androidx.fragment.app.Fragment;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
-import com.alibaba.idst.nls.internal.utils.L;
-import com.mogo.commons.AbsMogoApplication;
import com.mogo.map.listener.IMogoMapListener;
import com.mogo.map.location.IMogoLocationListener;
import com.mogo.map.marker.IMogoMarkerClickListener;
import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
-import com.mogo.service.fragmentmanager.IMogoFragmentManager;
import com.mogo.service.intent.IMogoIntentListener;
import com.mogo.service.intent.IMogoIntentManager;
import com.mogo.service.module.IMogoModuleLifecycle;
@@ -104,7 +101,7 @@ public class BackToLauncherModuleProvider implements IMogoModuleProvider, IMogoI
mServiceApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation();
mIntentManager = mServiceApis.getIntentManagerApi();
mIntentManager.registerIntentListener( COMMAND_BACK, this );
- BackToMainHomeManager.init( mServiceApis.getFragmentManagerApi(), mServiceApis.getStatusManagerApi() );
+ BackToMainHomeManager.init( mServiceApis );
}
@Override
diff --git a/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToMainHomeManager.java b/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToMainHomeManager.java
index 64fb84055d..93a1eec5d3 100644
--- a/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToMainHomeManager.java
+++ b/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToMainHomeManager.java
@@ -11,6 +11,7 @@ import android.view.WindowManager;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.module.back.utils.WindowManagerViewHelper;
+import com.mogo.service.IMogoServiceApis;
import com.mogo.service.fragmentmanager.IMogoFragmentManager;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.utils.AppUtils;
@@ -24,10 +25,12 @@ public class BackToMainHomeManager {
private static IMogoFragmentManager mFragmentManager;
private static IMogoStatusManager mStatusManager;
+ private static IMogoServiceApis mApis;
- public static void init( IMogoFragmentManager manager, IMogoStatusManager statusManager ) {
- mFragmentManager = manager;
- mStatusManager = statusManager;
+ public static void init( IMogoServiceApis apis ) {
+ mApis = apis;
+ mFragmentManager = apis.getFragmentManagerApi();
+ mStatusManager = apis.getStatusManagerApi();
}
public static void backToLauncher() {
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java
index 3581fa2353..6621be43bd 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java
@@ -202,7 +202,7 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements
switch ( descriptor ) {
case APP_LIST_UI:
case SEARCH_UI:
- changeAutoSwitchVoiceTipsWordsStatus( !isTrue );
+// changeAutoSwitchVoiceTipsWordsStatus( !isTrue );
break;
}
}
@@ -210,13 +210,13 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements
@Override
public void onResume( @NonNull LifecycleOwner owner ) {
super.onResume( owner );
- changeAutoSwitchVoiceTipsWordsStatus( true );
+// changeAutoSwitchVoiceTipsWordsStatus( true );
}
@Override
public void onPause( @NonNull LifecycleOwner owner ) {
super.onPause( owner );
- changeAutoSwitchVoiceTipsWordsStatus( true );
+// changeAutoSwitchVoiceTipsWordsStatus( true );
}
private void changeAutoSwitchVoiceTipsWordsStatus( boolean autoChange ) {
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
index e5aeabede9..7d95097c3e 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
@@ -77,12 +77,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
private static final String TAG = "EntranceFragment";
- private View mSearch;
-
- private View mCommonAddress;
- private View mHome;
- private View mCompany;
-
private View mUploadRoadCondition;
private TextView mUpload;
private ImageView mUploading;
@@ -188,29 +182,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mStatusManager = mApis.getStatusManagerApi();
- mCommonAddress = findViewById( R.id.module_entrance_id_common_address );
-
- mSearch = findViewById( R.id.module_entrance_id_search );
-
- mSearch.setOnClickListener( view -> {
- mApis.getAddressManagerApi().goSearch();
- mApis.getAdasControllerApi().closeADAS();
- } );
-
- mHome = findViewById( R.id.module_entrance_id_home );
- mHome.setOnClickListener( view -> {
- mMogoAddressManager.goHome();
- mApis.getAdasControllerApi().closeADAS();
-
- } );
-
- mCompany = findViewById( R.id.module_entrance_id_company );
- mCompany.setOnClickListener( view -> {
- mMogoAddressManager.goCompany();
- mApis.getAdasControllerApi().closeADAS();
-
- } );
-
mUploadRoadCondition = findViewById( R.id.module_entrance_id_upload_road_condition );
mUpload = findViewById( R.id.module_entrance_id_upload );
mUploading = findViewById( R.id.module_entrance_id_uploading );
@@ -354,14 +325,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
}
- @Override
- public void onInitNaviFailure() {
- }
-
- @Override
- public void onInitNaviSuccess() {
- }
-
@Override
public void onNaviInfoUpdate( MogoNaviInfo naviinfo ) {
if ( naviinfo == null ) {
@@ -372,8 +335,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
@Override
public void onStartNavi() {
- mSearch.setVisibility( View.GONE );
- mCommonAddress.setVisibility( View.GONE );
mNaviInfo.setVisibility( View.VISIBLE );
mCameraMode.setVisibility( View.VISIBLE );
mExitNavi.setVisibility( View.VISIBLE );
@@ -386,8 +347,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
@Override
public void onStopNavi() {
- mSearch.setVisibility( View.VISIBLE );
- mCommonAddress.setVisibility( View.VISIBLE );
mNaviInfo.setVisibility( View.GONE );
mCameraMode.setVisibility( View.GONE );
mExitNavi.setVisibility( View.GONE );
@@ -396,18 +355,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
MapCenterPointStrategy.setMapCenterPointByScene( mMApUIController, Scene.AIMLESS );
}
- @Override
- public void onCalculateSuccess() {
- }
-
- @Override
- public void onoCalculateFailed() {
- }
-
- @Override
- public void onUpdateTraffic( MogoTraffic traffic ) {
- }
-
@Override
public void onUpdateTraffic2( MogoTraffic traffic ) {
if ( traffic == null ) {
@@ -423,31 +370,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
}
}
- @Override
- public void onUpdateCongestion( MogoCongestionInfo info ) {
-
- }
-
- @Override
- public void onMapLoaded() {
-
- }
-
- @Override
- public void onTouch( MotionEvent motionEvent ) {
-
- }
-
- @Override
- public void onPOIClick( MogoPoi poi ) {
-
- }
-
- @Override
- public void onMapClick( MogoLatLng latLng ) {
-
- }
-
@Override
public void onLockMap( boolean isLock ) {
mIsLock = isLock;
@@ -461,16 +383,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
}
}
- @Override
- public void onMapModeChanged( EnumMapUI ui ) {
-
- }
-
- @Override
- public void onMapChanged( MogoLatLng latLng, float zoom, float tilt, float bearing ) {
-
- }
-
private void traceData( String from ) {
Map< String, Object > properties = new HashMap<>();
properties.put( "from", from );
diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml
index 42400dbae6..6e91ac92d1 100644
--- a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml
+++ b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml
@@ -5,73 +5,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ app:layout_goneMarginRight="@dimen/module_ext_operation_panel_share_goneMarginRight">
+
+
+ android:textSize="@dimen/module_ext_operation_panel_share_textSize"
+ android:visibility="gone" />
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java
index d6dd637cc9..debafa9007 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java
@@ -24,17 +24,12 @@ import com.mogo.module.common.MogoModulePaths;
import com.mogo.module.common.map.MapCenterPointStrategy;
import com.mogo.module.common.map.Scene;
import com.mogo.module.main.cards.CardIntroduceConfigs;
-import com.mogo.module.main.cards.CardModulesAdapter;
-import com.mogo.module.main.cards.HorizentalStackTransformer;
import com.mogo.module.main.cards.MogoModulesHandler;
import com.mogo.module.main.cards.MogoModulesManager;
-import com.mogo.module.main.cards.OnPageChangeListenerAdapter;
-import com.mogo.module.main.cards.OrientedViewPager;
import com.mogo.module.main.windowview.FloatingViewHandler;
import com.mogo.module.service.ServiceConst;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
-import com.mogo.service.cardmanager.IMogoCardManager;
import com.mogo.service.fragmentmanager.IMogoFragmentManager;
import com.mogo.service.map.IMogoMapService;
import com.mogo.service.module.IMogoModuleProvider;
@@ -59,16 +54,10 @@ 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;
@@ -102,82 +91,7 @@ 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 );
@@ -194,7 +108,6 @@ 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 );
@@ -205,7 +118,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
// 显示布局
private void showLayout() {
mHeader.setVisibility( View.VISIBLE );
- mCards.setVisibility( View.VISIBLE );
mApps.setVisibility( View.VISIBLE );
mEntrance.setVisibility( View.VISIBLE );
mFloatingLayout.setVisibility( View.VISIBLE );
@@ -249,6 +161,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
loadContainerModules();
mMogoModuleHandler.loadModules();
mPresenter.delayOperations();
+ mPresenter.initADAS();
hideCoverUpLayout();
// 显示左边遮罩
@@ -264,8 +177,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
} );
mMogoModuleHandler.loadMapModule( R.id.module_main_id_map_fragment_container );
- mMogoCardManager = mServiceApis.getCardManagerApi();
-
mMogoFragmentManager = mServiceApis.getFragmentManagerApi();
mMogoFragmentManager.init( this, R.id.module_main_id_search_fragment );
mMogoFragmentManager.registerMainFragmentStackTransactionListener( ( size ) -> {
@@ -291,17 +202,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,23 +240,15 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
@Override
public void switch2Card( String cardType, boolean lockCar ) {
- if ( mCardModulesAdapter == null ) {
- return;
- }
- mLockCarStatus = lockCar;
- int position = mCardModulesAdapter.getProviderPosition( cardType );
- if ( position != -1 ) {
- int lastFactPosition = mCardModulesAdapter.getFactPosition( mCurrentPosition );
- mCardsContainer.setCurrentItem( mCurrentPosition + position - lastFactPosition, Math.abs( lastFactPosition - position ) == 1 );
- } else {
- Logger.e( TAG, "Can't find type of %s's position", cardType );
- }
}
@Override
protected void onResume() {
super.onResume();
mMogoStatusManager.setMainPageResumeStatus( TAG, true );
+ if ( mCoverUpLayout.getVisibility() == View.VISIBLE ) {
+ mServiceApis.getAdasControllerApi().showADAS();
+ }
}
@Override
@@ -360,6 +256,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
super.onPause();
mMogoStatusManager.setMainPageResumeStatus( TAG, false );
CardIntroduceConfigs.flush( getApplicationContext() );
+ mServiceApis.getAdasControllerApi().closeADAS();
}
@Override
@@ -400,7 +297,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
mMogoModuleHandler = null;
mMogoMapService = null;
mMogoMapUIController = null;
- mMogoCardManager = null;
mMogoFragmentManager = null;
AIAssist.getInstance( this ).release();
}
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainPresenter.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainPresenter.java
index 9b002249ca..9d15afb925 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainPresenter.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainPresenter.java
@@ -1,7 +1,6 @@
package com.mogo.module.main;
import android.content.Intent;
-import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
@@ -12,7 +11,6 @@ import androidx.lifecycle.LifecycleOwner;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.mvp.Presenter;
-import com.mogo.map.navi.IMogoNavi;
import com.mogo.module.main.constants.MainConstants;
import com.mogo.module.main.livedata.CardSwitchLiveData;
import com.mogo.service.MogoServicePaths;
@@ -33,8 +31,6 @@ public class MainPresenter extends Presenter< MainView > {
// 埋点接口
private IMogoAnalytics mAnalytics;
- private long mCardStartShowTime = 0;
-
private Handler mMsgHandler = new Handler( Looper.getMainLooper() ) {
@Override
public void handleMessage( Message msg ) {
@@ -42,16 +38,6 @@ public class MainPresenter extends Presenter< MainView > {
switch ( msg.what ) {
case MainConstants.MSG_LOAD_CARD_MODULES:
mView.loadCardModules();
- mMsgHandler.sendEmptyMessageDelayed( MainConstants.MSG_LOAD_INVOKE_FIRST_CARD_PERFORM_EVENT, 1_000L );
- break;
- case MainConstants.MSG_LOAD_INVOKE_FIRST_CARD_PERFORM_EVENT:
- mView.postPickFirstCardEvent();
- break;
- case MainConstants.MSG_TRACK_LAST_CARD_DISPLAY_EVENT:
- trackLastCardShowEvent( ( IMogoModuleProvider ) msg.obj );
- break;
- case MainConstants.MSG_TRACK_CARD_FLIP_EVENT:
- trackCardFlipEvent( ( IMogoModuleProvider ) msg.obj );
break;
case MainConstants.MSG_HIDE_MAP_COVER_FRAME:
mView.hideCoverUpLayout();
@@ -65,7 +51,6 @@ public class MainPresenter extends Presenter< MainView > {
public MainPresenter( MainView view ) {
super( view );
- mCardStartShowTime = System.currentTimeMillis();
SchemeIntent.getInstance().init( getContext(), mView.getApis() );
}
@@ -81,38 +66,6 @@ public class MainPresenter extends Presenter< MainView > {
mAnalytics = ( IMogoAnalytics ) ARouter.getInstance().build( MogoServicePaths.PATH_UTILS_ANALYTICS ).navigation( getContext() );
}
- /**
- * 卡片展示时长埋点
- *
- * @param provider
- */
- public void trackLastCardShowEvent( IMogoModuleProvider provider ) {
- if ( provider == null ) {
- return;
- }
- Map< String, Object > properties = new HashMap<>();
- properties.put( "appname", provider.getAppName() );
- properties.put( "packagename", provider.getAppPackage() );
- properties.put( "activeTime", System.currentTimeMillis() - mCardStartShowTime );
- properties.put( "type", provider.getModuleName() );
- mAnalytics.track( "Launcher_Card_Show", properties );
- mCardStartShowTime = System.currentTimeMillis();
- }
-
- /**
- * 卡片滑动埋点,WTF
- */
- public void trackCardFlipEvent( IMogoModuleProvider provider ) {
- if ( provider == null ) {
- return;
- }
- Map< String, Object > properties = new HashMap<>();
- properties.put( "appname", provider.getAppName() );
- properties.put( "packagename", provider.getAppPackage() );
- properties.put( "type", provider.getModuleName() );
- mAnalytics.track( "Launcher_Card_Slide", properties );
- }
-
/**
* 延时操作
*/
@@ -121,20 +74,6 @@ public class MainPresenter extends Presenter< MainView > {
mMsgHandler.sendEmptyMessageDelayed( MainConstants.MSG_HIDE_MAP_COVER_FRAME, 150L );
}
- public void postTrackLastCardShowEvent( IMogoModuleProvider provider ) {
- Message msg = Message.obtain();
- msg.what = MainConstants.MSG_TRACK_LAST_CARD_DISPLAY_EVENT;
- msg.obj = provider;
- mMsgHandler.sendMessage( msg );
- }
-
- public void postTrackCardFlipEvent( IMogoModuleProvider provider ) {
- Message msg = Message.obtain();
- msg.what = MainConstants.MSG_TRACK_CARD_FLIP_EVENT;
- msg.obj = provider;
- mMsgHandler.sendMessage( msg );
- }
-
public void postLoadModuleMsg() {
Message msg = Message.obtain();
msg.what = MainConstants.MSG_LOAD_MODULES;
@@ -144,4 +83,8 @@ public class MainPresenter extends Presenter< MainView > {
public void handleSchemeIntent( Intent intent ) {
SchemeIntent.getInstance().handle( intent );
}
+
+ public void initADAS(){
+
+ }
}
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainView.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainView.java
index 8ab476a7c4..ec93570a23 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainView.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainView.java
@@ -23,11 +23,6 @@ public interface MainView extends IView {
*/
void loadCardModules();
- /**
- * 触发第一张卡片选中
- */
- void postPickFirstCardEvent();
-
/**
* 隐藏背景
*/
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java
index b42e719706..ed57a10838 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java
@@ -1,21 +1,9 @@
package com.mogo.module.main.cards;
-import com.mogo.map.listener.IMogoMapListener;
-import com.mogo.map.location.IMogoLocationClient;
-import com.mogo.map.location.IMogoLocationListener;
-import com.mogo.map.marker.IMogoMarker;
-import com.mogo.map.marker.IMogoMarkerClickListener;
-import com.mogo.map.navi.IMogoAimlessModeListener;
-import com.mogo.map.navi.IMogoCarLocationChangedListener;
-import com.mogo.map.navi.IMogoCarLocationChangedListener2;
-import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.service.module.IMogoModuleProvider;
-import java.util.Collection;
import java.util.List;
-import javax.security.auth.callback.Callback;
-
/**
* @author congtaowang
* @since 2019-12-24
@@ -64,22 +52,8 @@ public interface MogoModulesHandler {
*/
void loadEntrancesModule( int containerId );
- /**
- * 设置某一个module可用
- *
- * @param module
- */
- void setModuleEnable( String module );
-
/**
* 销毁
*/
void destroy();
-
- /**
- * 当前卡片名称
- *
- * @return
- */
- String getCurrentModuleName();
}
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java
index be86c4e7ad..bc4f9ae071 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java
@@ -1,7 +1,6 @@
package com.mogo.module.main.cards;
import android.content.Context;
-import android.text.TextUtils;
import androidx.fragment.app.Fragment;
@@ -11,24 +10,13 @@ import com.mogo.module.common.MogoModulePaths;
import com.mogo.module.extensions.ExtensionsModuleConst;
import com.mogo.module.main.EventDispatchCenter;
import com.mogo.module.main.MainActivity;
-import com.mogo.module.main.registercenter.MogoRegisterCenterHandler;
import com.mogo.service.IMogoServiceApis;
-import com.mogo.service.MogoServicePaths;
-import com.mogo.service.intent.IMogoIntentManager;
-import com.mogo.service.module.IMogoModuleLifecycle;
import com.mogo.service.module.IMogoModuleProvider;
-import com.mogo.service.module.ModuleType;
import com.mogo.utils.ResourcesHelper;
import com.mogo.utils.logger.Logger;
-import com.mogo.utils.network.utils.GsonUtil;
-import com.mogo.utils.storage.SharedPrefsMgr;
-
-import org.json.JSONArray;
-import org.json.JSONException;
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -38,7 +26,7 @@ import java.util.Map;
*
* 卡片加载
*/
-public class MogoModulesManager implements MogoModulesHandler{
+public class MogoModulesManager implements MogoModulesHandler {
private static final String TAG = "MogoModulesManager";
@@ -48,17 +36,12 @@ public class MogoModulesManager implements MogoModulesHandler{
// 空间换效率
private Map< String, IMogoModuleProvider > mModuleNameProviders = new HashMap<>();
- private String mEnableModuleName = null;
-
- public static final String KEY_SORTED_CARD_MODULES = "sortedCards";
- private List< String > mSortedCards = new ArrayList<>();
-
- public MogoModulesManager( MainActivity activity , IMogoServiceApis apis) {
+ public MogoModulesManager( MainActivity activity, IMogoServiceApis apis ) {
if ( activity == null ) {
throw new NullPointerException( "activity can't be null." );
}
this.mActivity = activity;
- EventDispatchCenter.getInstance().registerReceiver(apis.getIntentManagerApi());
+ EventDispatchCenter.getInstance().registerReceiver( apis.getIntentManagerApi() );
CardIntroduceConfigs.init( getContext(), apis );
}
@@ -88,61 +71,13 @@ public class MogoModulesManager implements MogoModulesHandler{
@Override
public List< IMogoModuleProvider > loadCardsModule() {
- String sortedJson = SharedPrefsMgr.getInstance( getContext() ).getString( KEY_SORTED_CARD_MODULES );
- try {
- JSONArray array = new JSONArray( sortedJson );
- mSortedCards = new ArrayList<>( array.length() );
- for ( int i = 0; i < array.length(); i++ ) {
- mSortedCards.add( array.getString( i ) );
- }
- Logger.d( TAG, "Last cache card: %s", mSortedCards );
- } catch ( JSONException e ) {
- e.printStackTrace();
- }
-
final List< MogoModule > modules = MogoModulePaths.getModules();
final ArrayList< IMogoModuleProvider > providers = new ArrayList<>();
for ( MogoModule module : modules ) {
IMogoModuleProvider provider = mModuleProviders.get( module );
- if ( provider.getType() == ModuleType.TYPE_CARD_FRAGMENT ) {
- if ( mEnableModuleName == null ) {
- mEnableModuleName = provider.getModuleName();
- }
- providers.add( provider );
- }
+ providers.add( provider );
}
return providers;
-// return sort( providers ); v2.0.2暂不支持变顺序
- }
-
- private List< IMogoModuleProvider > sort( List< IMogoModuleProvider > modules ) {
- if ( modules == null || modules.size() == 0 ) {
- return modules;
- }
- if ( mSortedCards == null ) {
- mSortedCards = new ArrayList<>();
- }
- List< IMogoModuleProvider > sortedList = new ArrayList<>( modules.size() );
-
- for ( String sortedCard : mSortedCards ) {
- for ( IMogoModuleProvider module : modules ) {
- if ( TextUtils.equals( module.getModuleName(), sortedCard ) ) {
- sortedList.add( module );
- Logger.d( TAG, "%s sorted.", sortedCard );
- break;
- }
- }
- }
- for ( IMogoModuleProvider module : modules ) {
- if ( !sortedList.contains( module ) ) {
- sortedList.add( module );
- }
- }
- mSortedCards.clear();
- for ( IMogoModuleProvider provider : sortedList ) {
- mSortedCards.add( provider.getModuleName() );
- }
- return sortedList;
}
@Override
@@ -183,14 +118,12 @@ public class MogoModulesManager implements MogoModulesHandler{
private void addFragment( IMogoModuleProvider provider, int containerId ) {
if ( provider == null ) {
- Logger.e( TAG, "add fragment fail cause provider == null, container is %s",
- ResourcesHelper.getResNameById( getApplicationContext(), containerId ) );
+ Logger.e( TAG, "add fragment fail cause provider == null, container is %s", ResourcesHelper.getResNameById( getApplicationContext(), containerId ) );
return;
}
final Fragment fragment = provider.createFragment( getContext(), null );
if ( fragment == null ) {
- Logger.e( TAG, "add fragment fail cause fragment == null, container is %s",
- ResourcesHelper.getResNameById( getApplicationContext(), containerId ) );
+ Logger.e( TAG, "add fragment fail cause fragment == null, container is %s", ResourcesHelper.getResNameById( getApplicationContext(), containerId ) );
return;
}
mActivity.getSupportFragmentManager().beginTransaction()
@@ -198,52 +131,6 @@ public class MogoModulesManager implements MogoModulesHandler{
.commitAllowingStateLoss();
}
- @Override
- public void setModuleEnable( String module ) {
- final long start1 = System.currentTimeMillis();
- // 仅操作上一个模块和当前模块
- Iterator< IMogoModuleProvider > iterator = mModuleProviders.values().iterator();
- int counter = 0;
-
- // 上一个卡片设置为 disable
- IMogoModuleProvider prev = mModuleNameProviders.get( mEnableModuleName );
- if ( prev != null ) {
- final IMogoModuleLifecycle lifecycle = MogoRegisterCenterHandler.getInstance().getLifecycleListener( mEnableModuleName );
- if ( lifecycle != null ) {
- try {
- final long start = System.currentTimeMillis();
- lifecycle.onDisable();
- Logger.i( TAG, "set %s module disable event cost " + ( System.currentTimeMillis() - start ) + "ms", mEnableModuleName );
- } catch ( Exception e ) {
- Logger.e( TAG, e, "error." );
- }
- }
- }
-
- // 当前卡片设置为 perform
- IMogoModuleProvider current = mModuleNameProviders.get( module );
- if ( current != null ) {
- final IMogoModuleLifecycle lifecycle = MogoRegisterCenterHandler.getInstance().getLifecycleListener( module );
- if ( lifecycle != null ) {
- try {
- final long start = System.currentTimeMillis();
- lifecycle.onPerform();
- Logger.i( TAG, "set %s module perform event cost " + ( System.currentTimeMillis() - start ) + "ms", module );
- } catch ( Exception e ) {
- Logger.e( TAG, e, "error." );
- }
- }
- }
-
- mEnableModuleName = module;
- mSortedCards.remove( mEnableModuleName );
- mSortedCards.add( 0, mEnableModuleName );
- SharedPrefsMgr.getInstance( getContext() ).putString( KEY_SORTED_CARD_MODULES, GsonUtil.jsonFromObject( mSortedCards ) );
- Logger.i( TAG, "enable & disable card cost " + ( System.currentTimeMillis() - start1 ) + "ms" );
-
- CardIntroduceConfigs.broadcastCardIntroduce( mActivity, mEnableModuleName );
- }
-
@Override
public void destroy() {
mActivity = null;
@@ -251,11 +138,5 @@ public class MogoModulesManager implements MogoModulesHandler{
mModuleProviders.clear();
}
mModuleProviders = null;
- mEnableModuleName = null;
- }
-
- @Override
- public String getCurrentModuleName() {
- return mEnableModuleName;
}
}
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/constants/MainConstants.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/constants/MainConstants.java
index 5689102e6d..deb859893a 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/constants/MainConstants.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/constants/MainConstants.java
@@ -13,21 +13,6 @@ public class MainConstants {
*/
public static final int MSG_LOAD_CARD_MODULES = 5000;
- /**
- * 消息:触发第一张卡片的onPerform 时间
- */
- public static final int MSG_LOAD_INVOKE_FIRST_CARD_PERFORM_EVENT = 5001;
-
- /**
- * 消息:卡片展示事件
- */
- public static final int MSG_TRACK_LAST_CARD_DISPLAY_EVENT = 5002;
-
- /**
- * 消息:卡片滑动事件
- */
- public static final int MSG_TRACK_CARD_FLIP_EVENT = 5003;
-
/**
* 消息:隐藏地图遮罩(避免地图加载白屏)
*/
diff --git a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml
index 603a0ecaed..9ba1c6ea16 100644
--- a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml
+++ b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml
@@ -37,19 +37,10 @@
android:layout_marginLeft="@dimen/module_main_card_container_marginLeft"
android:layout_marginTop="@dimen/module_main_card_container_marginTop">
-
-
diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java
index 127ad28b9e..a1cec4be2c 100644
--- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java
+++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java
@@ -20,11 +20,8 @@ import com.mogo.map.navi.IMogoNavi;
import com.mogo.map.navi.IMogoNaviListener2;
import com.mogo.map.navi.MogoNaviConfig;
import com.mogo.map.navi.MogoNaviInfo;
-import com.mogo.map.navi.MogoTraffic;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.MapControlResult;
-import com.mogo.module.common.map.MapCenterPointStrategy;
-import com.mogo.module.common.map.Scene;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.intent.IMogoIntentListener;
@@ -242,7 +239,7 @@ public class MapPresenter extends Presenter< MapView > implements
Logger.d( TAG, "未开始导航." );
return;
}
- if ( mStatusManager.isADASShow() ) {
+ if ( mStatusManager.isV2XShow() ) {
Logger.d( TAG, "ADAS模式忽略该请求." );
return;
}
@@ -282,8 +279,8 @@ public class MapPresenter extends Presenter< MapView > implements
mMogoMapService.getMapUIController().recoverLockMode();//缩放地图会导致锁车发生改变,这里强制锁车
}, 1_000 );
} else {
- // 20s后锁车刷新
- mRefreshStrategyController.restartAutoRefreshAtTime( 20_000 );
+ // 30s后锁车刷新
+ mRefreshStrategyController.restartAutoRefreshAtTime( 30_000 );
}
}
@@ -461,46 +458,6 @@ public class MapPresenter extends Presenter< MapView > implements
}
}
- @Override
- public void onCmdAction( String speakText ) {
-
- }
-
- @Override
- public void onCmdCancel( String speakText ) {
-
- }
-
- @Override
- public void onSpeakEnd( String speakText ) {
-
- }
-
- @Override
- public void onSpeakSelectTimeOut( String speakText ) {
-
- }
-
- @Override
- public void onArriveDestination() {
-
- }
-
- @Override
- public void onEndEmulatorNavi() {
-
- }
-
- @Override
- public void onInitNaviFailure() {
-
- }
-
- @Override
- public void onInitNaviSuccess() {
-
- }
-
@Override
public void onNaviInfoUpdate( MogoNaviInfo naviinfo ) {
MapBroadCastHelper.getInstance( getContext() ).notifyXiaozhi( naviinfo );
@@ -515,19 +472,4 @@ public class MapPresenter extends Presenter< MapView > implements
public void onStopNavi() {
MapBroadCastHelper.getInstance( getContext() ).stopNavi();
}
-
- @Override
- public void onCalculateSuccess() {
-
- }
-
- @Override
- public void onoCalculateFailed() {
-
- }
-
- @Override
- public void onUpdateTraffic( MogoTraffic traffic ) {
-
- }
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/AMapConstants.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/AMapConstants.java
index a3a709ce12..375936ee6b 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/AMapConstants.java
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/AMapConstants.java
@@ -47,6 +47,6 @@ public class AMapConstants {
*/
public static final String COMMAND_START_NAVI = "com.ileja.navi.route.confirm";
- public static final String COMMAND_CHOOSE_PATH = "com.zhidao.route.plan";
+ public static final String COMMAND_CHOOSE_PATH = "com.zhidao.route.choice";
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt
index a74f3e6118..ace72751bb 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt
@@ -14,6 +14,7 @@ import com.mogo.module.gps.simulator.GpsSimulatorConstants
import com.mogo.module.gps.simulator.IMogoGpsSimulatorManager
import com.mogo.module.guideshow.provider.GuideShowProviderConstant
import com.mogo.module.guideshow.provider.IGuideShowProvider
+import com.mogo.service.IMogoServiceApis
import com.mogo.service.MogoServicePaths
import com.mogo.service.analytics.IMogoAnalytics
import com.mogo.service.fragmentmanager.FragmentDescriptor
@@ -42,7 +43,7 @@ object SearchServiceHolder {
val mogoLauncher: IMogoLauncher = ARouter.getInstance().build(MogoServicePaths.PATH_LAUNCHER_API).navigation() as IMogoLauncher
val gpsSimulator = ARouter.getInstance().build(GpsSimulatorConstants.API_PATH).navigation() as IMogoGpsSimulatorManager
val intentManager = ARouter.getInstance().build(MogoServicePaths.PATH_INTENT_MANAGER).navigation() as IMogoIntentManager
-
+ val apis = ARouter.getInstance().navigation(IMogoServiceApis::class.java)
var geoSearch: IMogoGeoSearch? = null
fun init(context: Context) {
this.context = context
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/AddressManager.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/AddressManager.kt
index 7e57736dad..1817c3163b 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/AddressManager.kt
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/AddressManager.kt
@@ -122,6 +122,7 @@ object AddressManager {
* 回家
*/
fun goHome() {
+ closeADAS()
SearchServiceHolder.statusManager.setSearchUIShow(TAG, true)
if (homeAddress == null) {
choosePoint(DataConstants.TYPE_HOME_ADDRESS)
@@ -134,6 +135,7 @@ object AddressManager {
* 去公司
*/
fun goCompany() {
+ closeADAS()
SearchServiceHolder.statusManager.setSearchUIShow(TAG, true)
if (companyAddress == null) {
choosePoint( DataConstants.TYPE_COMPANY_ADDRESS)
@@ -146,6 +148,7 @@ object AddressManager {
* 搜索
*/
fun goSearch() {
+ closeADAS()
SearchServiceHolder.statusManager.setSearchUIShow(TAG, true)
SearchServiceHolder.fragmentManager.push(
FragmentDescriptor.Builder().fragment(SearchFragment())
@@ -160,12 +163,14 @@ object AddressManager {
*/
fun calculatePath(destination: MogoLatLng?) {
destination?.let {
+ closeADAS()
var newInstance = ChoosePathFragment.newInstance(destination)
SearchServiceHolder.push(newInstance, AMapConstants.PATH_FRAGMENT_CHOOSE_PATH)
}
}
fun categorySearch(category: String){
+ closeADAS()
val searchFragment = CategorySearchFragment.newInstance(category)
SearchServiceHolder.fragmentManager.push(FragmentDescriptor.Builder().fragment(searchFragment)
.tag(AMapConstants.PATH_FRAGMENT_SEARCH_CATEGORY)
@@ -174,6 +179,7 @@ object AddressManager {
}
fun goSettings(){
+ closeADAS()
val naviSettingFragment = NaviSettingFragment()
SearchServiceHolder.fragmentManager.push(FragmentDescriptor.Builder().fragment(naviSettingFragment)
.tag(AMapConstants.PATH_FRAGMENT_NAVI_SETTING)
@@ -181,4 +187,13 @@ object AddressManager {
.build())
}
+
+ private fun closeADAS() {
+ try {
+ SearchServiceHolder.apis.adasControllerApi.closeADAS()
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+
+ }
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/MogoAddressManager.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/MogoAddressManager.java
index 6c290d1675..8c2204f9f8 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/MogoAddressManager.java
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/MogoAddressManager.java
@@ -1,6 +1,7 @@
package com.mogo.module.navi.manager;
import android.content.Context;
+
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.map.MogoLatLng;
import com.mogo.module.navi.constants.SearchServiceHolder;
@@ -14,11 +15,13 @@ import com.mogo.service.module.IMogoAddressManager;
@Route( path = MogoServicePaths.PATH_ADDRESS_MANAGER )
public class MogoAddressManager implements IMogoAddressManager {
- @Override public void goHome() {
+ @Override
+ public void goHome() {
AddressManager.INSTANCE.goHome();
}
- @Override public void goCompany() {
+ @Override
+ public void goCompany() {
AddressManager.INSTANCE.goCompany();
}
@@ -42,9 +45,10 @@ public class MogoAddressManager implements IMogoAddressManager {
AddressManager.INSTANCE.goSettings();
}
- @Override public void init( Context context) {
- AddressManager.INSTANCE.init(context);
- SearchServiceHolder.INSTANCE.init(context);
- SettingManager.INSTANCE.init(context);
+ @Override
+ public void init( Context context ) {
+ AddressManager.INSTANCE.init( context );
+ SearchServiceHolder.INSTANCE.init( context );
+ SettingManager.INSTANCE.init( context );
}
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt
index 750335c1be..0abd48fc46 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt
@@ -38,8 +38,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) {
@@ -270,45 +270,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) {
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java
index 8b72b40756..88f0bf02e7 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java
@@ -172,7 +172,7 @@ public class MogoServices implements IMogoMapListener,
super.handleMessage( msg );
switch ( msg.what ) {
case ServiceConst.MSG_TYPE_REFRESH_DECREASE:
- if ( mStatusManager.isSearchUIShow() || mStatusManager.isADASShow() ) {
+ if ( mStatusManager.isSearchUIShow() || mStatusManager.isV2XShow() ) {
stopAutoRefreshStrategy();
return;
}
@@ -185,7 +185,7 @@ public class MogoServices implements IMogoMapListener,
}
break;
case ServiceConst.MSG_LOOP_REQUEST:
- if ( mStatusManager.isSearchUIShow() || mStatusManager.isADASShow() ) {
+ if ( mStatusManager.isSearchUIShow() || mStatusManager.isV2XShow() ) {
return;
}
if ( mLoopRequest ) {
@@ -200,7 +200,7 @@ public class MogoServices implements IMogoMapListener,
* 自动刷新:锁车、缩放比例:16、半径 2KM
*/
private void invokeAutoRefresh() {
- if ( mStatusManager.isSearchUIShow() || mStatusManager.isADASShow() ) {
+ if ( mStatusManager.isSearchUIShow() || mStatusManager.isV2XShow() ) {
mStatusManager.setUserInteractionStatus( TAG, true, false );
mUiController.recoverLockMode();
return;
@@ -230,7 +230,7 @@ public class MogoServices implements IMogoMapListener,
*/
private RefreshCallback mCustomRefreshCallback = new RefreshCallback() {
@Override
- public void onSuccess(Object o) {
+ public void onSuccess( Object o ) {
mLoopRequest = false;
// 用户手动操作地图刷新成功后,设置状态为 true,引发延时策略
mStatusManager.setUserInteractionStatus( ServiceConst.TYPE, true, true );
@@ -248,7 +248,7 @@ public class MogoServices implements IMogoMapListener,
*/
private RefreshCallback mAutoRefreshCallback = new RefreshCallback() {
@Override
- public void onSuccess(Object o) {
+ public void onSuccess( Object o ) {
mLoopRequest = false;
Logger.d( TAG, "request Success." );
invokeAutoRefreshStrategy();
@@ -348,11 +348,11 @@ public class MogoServices implements IMogoMapListener,
if ( msg.obj instanceof RefreshObject ) {
RefreshObject ro = ( ( RefreshObject ) msg.obj );
mRefreshModel.refreshData( ro.mLonLat, ro.mRadius, ro.mAmount, ro.mCallback );
- MapMarkerManager.getInstance().getOnlineCarData(ro.mLonLat);
+ MapMarkerManager.getInstance().getOnlineCarData( ro.mLonLat );
Logger.i( TAG, "刷新半径 = %s, 点 = %s, zoomLevel = %s, amount = %s", ro.mRadius, ro.mLonLat, mLastZoomLevel, ro.mAmount );
}
- } else if( msg.what == ServiceConst.MSG_LOCK_CAR ){
+ } else if ( msg.what == ServiceConst.MSG_LOCK_CAR ) {
if ( mStatusManager.isSearchUIShow() ) {
return;
}
@@ -436,8 +436,7 @@ public class MogoServices implements IMogoMapListener,
*/
private float getMapCameraFactHeight() {
try {
- return Utils.calculateLineDistance( mCameraSouthWestPosition,
- new MogoLatLng( mCameraNorthEastPosition.lat, mCameraSouthWestPosition.lng ) );
+ return Utils.calculateLineDistance( mCameraSouthWestPosition, new MogoLatLng( mCameraNorthEastPosition.lat, mCameraSouthWestPosition.lng ) );
} catch ( Exception e ) {
return ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS;
}
@@ -468,16 +467,6 @@ public class MogoServices implements IMogoMapListener,
mHandler.removeMessages( ServiceConst.MSG_TYPE_REFRESH_DECREASE );
}
- @Override
- public void onPOIClick( MogoPoi poi ) {
-
- }
-
- @Override
- public void onMapClick( MogoLatLng latLng ) {
-
- }
-
@Override
public void onLockMap( boolean isLock ) {
mThreadHandler.removeMessages( ServiceConst.MSG_LOCK_CAR );
@@ -486,15 +475,10 @@ public class MogoServices implements IMogoMapListener,
}
}
- @Override
- public void onMapModeChanged( EnumMapUI ui ) {
-
- }
-
@Override
public void onMapChanged( MogoLatLng latLng, float zoom, float tilt, float bearing ) {
- MapMarkerManager.getInstance().syncLocation( latLng.lon, latLng. lat );
+ MapMarkerManager.getInstance().syncLocation( latLng.lon, latLng.lat );
if ( mIsCameraInited ) {
mLastZoomLevel = zoom;
@@ -513,7 +497,7 @@ public class MogoServices implements IMogoMapListener,
}
// v2x // adas 状态下不做任何操作
- if ( mStatusManager.isADASShow() ) {
+ if ( mStatusManager.isV2XShow() ) {
mLastCustomRefreshCenterLocation = latLng;
mLastZoomLevel = zoom;
return;
@@ -585,7 +569,7 @@ public class MogoServices implements IMogoMapListener,
@Override
public void onCarLocationChanged2( Location latLng ) {
- if ( mStatusManager.isADASShow() ) {
+ if ( mStatusManager.isV2XShow() ) {
return;
}
@@ -637,28 +621,6 @@ public class MogoServices implements IMogoMapListener,
mThreadHandler.sendMessage( msg );
}
- @Override
- public void onInitNaviFailure() {
-
- }
-
- @Override
- public void onInitNaviSuccess() {
-
- }
-
- @Override
- public void onNaviInfoUpdate( MogoNaviInfo naviinfo ) {
- }
-
- @Override
- public void onStartNavi() {
- }
-
- @Override
- public void onStopNavi() {
- }
-
@Override
public void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ) {
//Logger.d( TAG, "状态发生改变---descriptor---" + descriptor + "----isTrue---" + isTrue );
@@ -675,7 +637,7 @@ public class MogoServices implements IMogoMapListener,
} else {
// 搜索后,打开打点策略
if ( mAutoRefreshCallback != null ) {
- mAutoRefreshCallback.onSuccess(null);
+ mAutoRefreshCallback.onSuccess( null );
}
}
break;
@@ -730,7 +692,7 @@ public class MogoServices implements IMogoMapListener,
refreshStrategy();
// ADAS关闭后,打开打点策略
if ( mAutoRefreshCallback != null ) {
- mAutoRefreshCallback.onSuccess(null);
+ mAutoRefreshCallback.onSuccess( null );
}
}
@@ -756,21 +718,6 @@ public class MogoServices implements IMogoMapListener,
notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback );
}
- @Override
- public void onCalculateSuccess() {
-
- }
-
- @Override
- public void onoCalculateFailed() {
-
- }
-
- @Override
- public void onUpdateTraffic( MogoTraffic traffic ) {
-
- }
-
@Override
public void onUpdateTraffic2( MogoTraffic traffic ) {
@@ -816,9 +763,9 @@ public class MogoServices implements IMogoMapListener,
mStatusManager.setVoiceUIShow( TAG, true );
}
} else if ( ServiceConst.COMMAND_NEXT.equals( command ) ) {
- onActionDown( MogoAction.Next );
+ onActionDone( MogoAction.Next );
} else if ( ServiceConst.COMMAND_PREVIOUS.equals( command ) ) {
- onActionDown( MogoAction.Prev );
+ onActionDone( MogoAction.Prev );
} else if ( ServiceConst.COMMAND_SWITCH_CARD.equals( command ) ) {
IntentHandlerFactory.getInstance().handle( mContext, command, intent );
} else if ( MogoReceiver.ACTION_ADAS_STATUS.equals( command ) ) {
@@ -909,9 +856,9 @@ public class MogoServices implements IMogoMapListener,
@Override
public void onCmdSelected( String cmd ) {
if ( TextUtils.equals( ServiceConst.CMD_UN_WAKE_PREV, cmd ) ) {
- onActionDown( MogoAction.Prev );
+ onActionDone( MogoAction.Prev );
} else if ( TextUtils.equals( ServiceConst.CMD_UN_WAKE_NEXT, cmd ) ) {
- onActionDown( MogoAction.Next );
+ onActionDone( MogoAction.Next );
} else if ( TextUtils.equals( ServiceConst.CMD_UN_WAKEUP_MY_LOCATION, cmd ) ) {
if ( mStatusManager.isMainPageOnResume() ) {
mUiController.recoverLockMode();
@@ -921,11 +868,11 @@ public class MogoServices implements IMogoMapListener,
}
}
- private void onActionDown(MogoAction action){
+ private void onActionDone( MogoAction action ) {
if ( !mStatusManager.isMainPageOnResume() ) {
return;
}
- if ( mStatusManager.isADASShow() ) {
+ if ( mStatusManager.isV2XShow() ) {
// 分发到V2X
mActionManager.invoke( "V2X_UI", action );
} else {
@@ -934,26 +881,6 @@ public class MogoServices implements IMogoMapListener,
}
}
- @Override
- public void onCmdAction( String speakText ) {
-
- }
-
- @Override
- public void onCmdCancel( String speakText ) {
-
- }
-
- @Override
- public void onSpeakEnd( String speakText ) {
-
- }
-
- @Override
- public void onSpeakSelectTimeOut( String speakText ) {
-
- }
-
@Override
public void onTransaction( int size ) {
if ( size == 0 ) {
@@ -968,6 +895,7 @@ public class MogoServices implements IMogoMapListener,
MapCenterPointStrategy.setMapCenterPointByScene( mUiController, Scene.AIMLESS );
}
mUiController.recoverLockMode();
+ mADASController.showADAS();
} else {
mUiController.showMyLocation( false );
AIAssist.getInstance( mContext ).registerUnWakeupCommand( ServiceConst.CMD_BACK, ServiceConst.CMD_BACK_WORDS, this );
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java
index 77024d794b..806a4d37a8 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java
@@ -105,8 +105,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
// 长连接
MarkerServiceHandler.getMogoSocketManager().registerOnMessageListener( 401001, this );
- MarkerServiceHandler.getMogoCardManager().registerCardChangedListener(
- "LAUNCHER_MARKER_MODULE", this );
+ MarkerServiceHandler.getMogoCardManager().registerCardChangedListener( TAG, this );
MarkerServiceHandler.getActionManager().registerBizActionDoneListener( this );
}
@@ -269,6 +268,8 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
if ( !mogoMarker.isDestroyed() ) {
mogoMarker.setInfoWindowAdapter( UserDataMarkerInfoWindowAdapter.getInstance( mContext ) );
mogoMarker.showInfoWindow();
+ MarkerServiceHandler.getMogoStatusManager().setUserInteractionStatus( TAG, true, false );
+ MarkerServiceHandler.getMapUIController().moveToCenter( mogoMarker.getPosition() );
Logger.d( TAG, "打开info window" );
}
} else {
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java
index cdb891aed0..ede5636b6e 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java
@@ -71,6 +71,7 @@ public class MogoReceiver extends BroadcastReceiver {
if (TextUtils.equals(VOICE_ACTION, action)) {
String cmd = intent.getStringExtra(PARAM_COMMAND);
if (!TextUtils.isEmpty(cmd)) {
+ Logger.d( TAG, "receive command: %s", cmd );
mMogoIntentManager.invoke(cmd, intent);
}
} else {
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/refresh/AutoRefreshStrategy.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/refresh/AutoRefreshStrategy.java
index 47d96799f4..ba15e2424f 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/refresh/AutoRefreshStrategy.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/refresh/AutoRefreshStrategy.java
@@ -13,12 +13,12 @@ public class AutoRefreshStrategy {
/**
* 距离(米)
*/
- private int distance = 2_000;
+ private int distance = 1_000;
/**
* 时间间距(s)
*/
- private long interval = 3 * ONE_MINUTE;
+ private long interval = 3 * ONE_MINUTE / 6;
/**
* 用户打断后的延时(s)【2.0.2后不再延时】
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java
index 5a6f90560d..468c965b26 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java
@@ -13,11 +13,22 @@ public interface IMogoADASController extends IProvider {
/**
* 打开adas
*/
+ @Deprecated
void openADAS();
/**
- * 关闭adas
+ * 隐藏adas
*/
void closeADAS();
+ /**
+ * 显示
+ */
+ void showADAS();
+
+ /**
+ * 关闭
+ */
+ void killADAS();
+
}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java
index c5126c1a0a..07930bc5fb 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java
@@ -22,16 +22,14 @@ public interface IMogoStatusManager extends IProvider {
*
* @return
*/
+ @Deprecated
boolean isADASShow();
/**
* v2x UI 是否在展示
- *
- * Deprecated, use {@link #isADASShow()} instead.
*
* @return
*/
- @Deprecated
boolean isV2XShow();
/**
@@ -119,18 +117,16 @@ public interface IMogoStatusManager extends IProvider {
* @param tag 业务类型
* @param show true - 显示 false - 隐藏
*/
+ @Deprecated
void setADASUIShow( String tag, boolean show );
/**
* 设置 V2X UI 状态
*
- *
- * Deprecated, use {@link #setADASUIShow} instead.
*
* @param tag 业务类型
* @param show true - 显示 false - 隐藏
*/
- @Deprecated
void setV2XUIShow( String tag, boolean show );
/**
diff --git a/services/mogo-service/build.gradle b/services/mogo-service/build.gradle
index 66f2a244d6..3cd53dffe6 100644
--- a/services/mogo-service/build.gradle
+++ b/services/mogo-service/build.gradle
@@ -40,6 +40,7 @@ dependencies {
implementation rootProject.ext.dependencies.arouter
annotationProcessor rootProject.ext.dependencies.aroutercompiler
+ implementation rootProject.ext.dependencies.adasapi
if (Boolean.valueOf(RELEASE)) {
api rootProject.ext.dependencies.mogomap
implementation rootProject.ext.dependencies.mogomapapi
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java
index f2d6092c5e..cadd1e446f 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java
@@ -3,6 +3,7 @@ package com.mogo.service.impl.adas;
import android.app.Application;
import android.content.Context;
import android.content.Intent;
+import android.os.RemoteException;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.commons.AbsMogoApplication;
@@ -13,7 +14,9 @@ import com.mogo.service.impl.MogoServiceApis;
import com.mogo.service.impl.singleton.SingletonsHolder;
import com.mogo.service.impl.statusmanager.MogoStatusManager;
import com.mogo.service.statusmanager.IMogoStatusManager;
+import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.logger.Logger;
+import com.zhidao.autopilot.support.api.AutopilotServiceManage;
import org.json.JSONObject;
@@ -38,49 +41,71 @@ public class MogoADASController implements IMogoADASController {
public static final String VAL_OPEN = "打开";
public static final String VAL_CLOSE = "关闭";
- private MogoStatusManager mStatusManager = SingletonsHolder.get( IMogoStatusManager.class );
+ private IMogoStatusManager mStatusManager = SingletonsHolder.get( IMogoStatusManager.class );
@Override
public void openADAS() {
+ showADAS();
+ }
- if ( mStatusManager.isADASShow() ) {
- return;
- }
-
- Logger.d( TAG, "open adas" );
-
- Intent intent = new Intent( ACTION );
- intent.putExtra( PARAM_COMMAND, VAL_COMMAND );
- JSONObject object = new JSONObject();
+ @Override
+ public void killADAS() {
try {
- object.put( PARAM_OBJECT, VAL_OBJECT );
- object.put( PARAM_OPERATION, VAL_OPEN );
- intent.putExtra( PARAM_DATA, object.toString() );
- sendBroadcast( intent );
+ AutopilotServiceManage.getInstance().kill();
} catch ( Exception e ) {
- Logger.e( TAG, e, "error." );
+
}
}
+ @Override
+ public void showADAS() {
+
+ Logger.d( TAG, "show adas" );
+
+ UiThreadHandler.postDelayed( () -> {
+ try {
+ if ( mStatusManager.isSearchUIShow() ) {
+ return;
+ }
+ if ( !mStatusManager.isMainPageOnResume() ) {
+ return;
+ }
+ AutopilotServiceManage.getInstance().showAdas();
+ } catch ( Exception e ) {
+ Intent intent = new Intent( ACTION );
+ intent.putExtra( PARAM_COMMAND, VAL_COMMAND );
+ JSONObject object = new JSONObject();
+ try {
+ object.put( PARAM_OBJECT, VAL_OBJECT );
+ object.put( PARAM_OPERATION, VAL_OPEN );
+ intent.putExtra( PARAM_DATA, object.toString() );
+ sendBroadcast( intent );
+ } catch ( Exception e1 ) {
+ Logger.e( TAG, e1, "error." );
+ }
+ }
+ }, 500 );
+ }
+
@Override
public void closeADAS() {
- if ( !mStatusManager.isADASShow() ) {
- return;
- }
-
Logger.d( TAG, "close adas" );
- Intent intent = new Intent( ACTION );
- intent.putExtra( PARAM_COMMAND, VAL_COMMAND );
- JSONObject object = new JSONObject();
try {
- object.put( PARAM_OBJECT, VAL_OBJECT );
- object.put( PARAM_OPERATION, VAL_CLOSE );
- intent.putExtra( PARAM_DATA, object.toString() );
- sendBroadcast( intent );
+ AutopilotServiceManage.getInstance().hideAdas();
} catch ( Exception e ) {
- Logger.e( TAG, e, "error." );
+ Intent intent = new Intent( ACTION );
+ intent.putExtra( PARAM_COMMAND, VAL_COMMAND );
+ JSONObject object = new JSONObject();
+ try {
+ object.put( PARAM_OBJECT, VAL_OBJECT );
+ object.put( PARAM_OPERATION, VAL_CLOSE );
+ intent.putExtra( PARAM_DATA, object.toString() );
+ sendBroadcast( intent );
+ } catch ( Exception e1 ) {
+ Logger.e( TAG, e1, "error." );
+ }
}
}
@@ -95,6 +120,6 @@ public class MogoADASController implements IMogoADASController {
@Override
public void init( Context context ) {
-
+ AutopilotServiceManage.getInstance().init( context );
}
}
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/map/MogoMapService.java b/services/mogo-service/src/main/java/com/mogo/service/impl/map/MogoMapService.java
index 2f454add44..87a3ae0491 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/map/MogoMapService.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/map/MogoMapService.java
@@ -4,7 +4,6 @@ import android.content.Context;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.map.MogoGeoSearch;
-import com.mogo.map.MogoInitor;
import com.mogo.map.MogoInputtipsSearch;
import com.mogo.map.MogoLocationClient;
import com.mogo.map.MogoMapUIController;
@@ -88,6 +87,5 @@ public class MogoMapService implements IMogoMapService {
@Override
public void init( Context context ) {
- MogoInitor.init( context );
}
}
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/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 );
}