From eb511fa3c12b559f07fef69a582de7c83c6dd0fb Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Tue, 22 Sep 2020 20:22:48 +0800 Subject: [PATCH] stash --- .idea/misc.xml | 2 +- app/build.gradle | 24 +- app/functions/skin.gradle | 24 +- app/functions/widgets.gradle | 2 + .../com/mogo/launcher/MogoApplication.java | 6 +- .../com/mogo/commons/debug/DebugConfig.java | 15 +- .../com/mogo/commons/storage/SpStorage.java | 8 + .../impl/automap/navi/AutoNaviReceiver.java | 6 + .../independent/MainIndependentActivity.java | 6 +- .../src/main/res/values/dimens.xml | 2 +- .../mogo/module/apps/AppServiceHandler.java | 6 +- .../back/BackToLauncherModuleProvider.java | 10 +- .../module/back/BackToMainHomeManager.java | 2 +- modules/mogo-module-common/build.gradle | 1 + .../mogo/module/common/MogoApisHandler.java | 52 +++ .../common/widget/CustomCircleImageView.java | 337 ++++++++++++++++++ .../module/common/wm/IWindowManagerView.java | 2 +- .../module/common/wm/WindowManagerImpl.java | 5 +- .../module_common_default_user_head.png | Bin 0 -> 1604 bytes .../module_common_default_user_head.png | Bin 0 -> 1604 bytes .../module_common_default_user_head.png | Bin 0 -> 3861 bytes .../module_common_default_user_head.png | Bin 0 -> 1604 bytes .../src/main/res/values/attr.xml | 7 + .../extensions/ExtensionsPresenter.java | 4 +- .../extensions/entrance/EntranceFragment.java | 20 +- .../entrance/EntrancePresenter.java | 4 +- .../module_ext_destination_online_car_dw.png | Bin 0 -> 1055 bytes .../module_ext_destination_online_car_dw.png | Bin 0 -> 1055 bytes .../module_ext_destination_online_car_dw.png | Bin 0 -> 1985 bytes .../module_ext_destination_online_car_dw.png | Bin 0 -> 1985 bytes .../res/layout/module_ext_layout_entrance.xml | 26 +- .../src/main/res/values-mdpi/dimens.xml | 3 + .../res/values-xhdpi-1920x1000/dimens.xml | 3 + .../src/main/res/values-xhdpi/dimens.xml | 3 + .../src/main/res/values/dimens.xml | 3 + .../src/main/res/values/strings.xml | 1 + .../com/mogo/module/main/MainActivity.java | 7 +- .../com/mogo/module/main/SchemeIntent.java | 22 +- .../module/main/service/MogoMainService.java | 41 ++- .../src/main/res/values/dimens.xml | 2 +- .../mogo/module/map/MapBroadCastHelper.java | 5 +- .../com/mogo/module/map/MapPresenter.java | 5 +- .../module/media/presenter/KwPresenter.java | 6 +- .../media/presenter/WeCarFlowPresenter.java | 9 +- .../module/monitor/MogoMonitorProvider.java | 6 +- .../module/push/PushHistoryUiProvider.java | 2 +- .../navi/constants/SearchApisHolder.java | 9 +- modules/mogo-module-service/build.gradle | 5 + .../module/service/MarkerServiceHandler.java | 4 +- .../com/mogo/module/service/MogoServices.java | 62 +++- .../com/mogo/module/service/ServiceConst.java | 9 +- .../service/intent/IntentHandlerFactory.java | 1 + .../intent/OnlineCarPanelIntentHandler.java | 29 ++ .../launchercard/LauncherCardRefresher.java | 2 +- .../service/network/RefreshApiService.java | 5 + .../module/service/network/RefreshModel.java | 47 +-- .../bean/HomeCompanyDistanceForPushData.java | 14 + .../HomeCompanyDistanceForPushResponse.java | 19 + .../onlinecar/panel/ContainerHandler.java | 15 + .../onlinecar/panel/IOnlineCarPanelView.java | 23 ++ .../onlinecar/panel/NavigationTargetInfo.java | 85 +++++ .../panel/OnlineCarListPanelProvider.java | 77 ++++ .../panel/OnlineCarPanelAdapter.java | 109 ++++++ .../panel/OnlineCarPanelFragment.java | 94 +++++ .../panel/OnlineCarPanelPresenter.java | 83 +++++ .../onlinecar/panel/OnlineCarStrategy.java | 27 ++ .../drawable-ldpi/module_services_close.png | Bin 0 -> 434 bytes ...services_online_car_panel_background.9.png | Bin 0 -> 583 bytes ...e_services_online_car_panel_empty_icon.png | Bin 0 -> 53203 bytes .../drawable-mdpi/module_services_close.png | Bin 0 -> 434 bytes ...services_online_car_panel_background.9.png | Bin 0 -> 583 bytes ...e_services_online_car_panel_empty_icon.png | Bin 0 -> 53203 bytes .../drawable-xhdpi/module_services_close.png | Bin 0 -> 1188 bytes ...services_online_car_panel_background.9.png | Bin 0 -> 1131 bytes ...e_services_online_car_panel_empty_icon.png | Bin 0 -> 147660 bytes .../res/drawable/module_services_close.png | Bin 0 -> 434 bytes ...services_online_car_panel_background.9.png | Bin 0 -> 583 bytes .../module_services_panel_item_bkg.xml | 9 + .../module_services_panel_item_detail_bkg.xml | 9 + ...ule_services_panel_strategy_button_bkg.xml | 9 + ...ule_services_fragment_online_car_panel.xml | 114 ++++++ .../module_services_online_car_panel_item.xml | 66 ++++ .../src/main/res/values-ldpi/dimens.xml | 31 ++ .../src/main/res/values-mdpi/dimens.xml | 31 ++ .../res/values-xhdpi-1920x1000/dimens.xml | 31 ++ .../src/main/res/values-xhdpi/dimens.xml | 31 ++ .../src/main/res/values/colors.xml | 7 + .../src/main/res/values/dimens.xml | 31 ++ .../src/main/res/values/strings.xml | 4 + .../module/widgets/AutoNaviIntentHandler.java | 79 +++- .../mogo/module/widgets/MogoWidgetManger.java | 6 +- .../module_widgets_app_entrance_img_bkg.png | Bin 1432 -> 0 bytes .../drawable/module_widgets_app_body_bkg.xml | 9 + .../module_widgets_app_entrance_img_bkg.png | Bin 1432 -> 0 bytes .../module_widgets_app_handler_bkg.xml | 9 + .../layout/module_widgets_app_entrance.xml | 65 +++- .../src/main/res/values-ldpi/dimens.xml | 7 +- .../src/main/res/values-mdpi/dimens.xml | 7 +- .../res/values-xhdpi-1920x1000/dimens.xml | 5 +- .../src/main/res/values-xhdpi/dimens.xml | 5 +- .../src/main/res/values/colors.xml | 4 + .../src/main/res/values/dimens.xml | 7 +- .../src/main/res/values/strings.xml | 5 +- .../com/mogo/service/IMogoServiceApis.java | 7 + .../com/mogo/service/MogoServicePaths.java | 5 + .../IMogoOnlineCarListPanelProvider.java | 26 ++ .../mogo/service/impl/MogoServiceApis.java | 6 + 107 files changed, 1850 insertions(+), 183 deletions(-) create mode 100644 modules/mogo-module-common/src/main/java/com/mogo/module/common/MogoApisHandler.java create mode 100644 modules/mogo-module-common/src/main/java/com/mogo/module/common/widget/CustomCircleImageView.java create mode 100644 modules/mogo-module-common/src/main/res/drawable-ldpi/module_common_default_user_head.png create mode 100644 modules/mogo-module-common/src/main/res/drawable-mdpi/module_common_default_user_head.png create mode 100644 modules/mogo-module-common/src/main/res/drawable-xhdpi/module_common_default_user_head.png create mode 100644 modules/mogo-module-common/src/main/res/drawable/module_common_default_user_head.png create mode 100644 modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_destination_online_car_dw.png create mode 100644 modules/mogo-module-extensions/src/main/res/drawable-mdpi/module_ext_destination_online_car_dw.png create mode 100644 modules/mogo-module-extensions/src/main/res/drawable-xhdpi-1920x1000/module_ext_destination_online_car_dw.png create mode 100644 modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_destination_online_car_dw.png create mode 100644 modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/OnlineCarPanelIntentHandler.java create mode 100644 modules/mogo-module-service/src/main/java/com/mogo/module/service/network/bean/HomeCompanyDistanceForPushData.java create mode 100644 modules/mogo-module-service/src/main/java/com/mogo/module/service/network/bean/HomeCompanyDistanceForPushResponse.java create mode 100644 modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/ContainerHandler.java create mode 100644 modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/IOnlineCarPanelView.java create mode 100644 modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/NavigationTargetInfo.java create mode 100644 modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarListPanelProvider.java create mode 100644 modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelAdapter.java create mode 100644 modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelFragment.java create mode 100644 modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelPresenter.java create mode 100644 modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarStrategy.java create mode 100755 modules/mogo-module-service/src/main/res/drawable-ldpi/module_services_close.png create mode 100644 modules/mogo-module-service/src/main/res/drawable-ldpi/module_services_online_car_panel_background.9.png create mode 100644 modules/mogo-module-service/src/main/res/drawable-ldpi/module_services_online_car_panel_empty_icon.png create mode 100755 modules/mogo-module-service/src/main/res/drawable-mdpi/module_services_close.png create mode 100644 modules/mogo-module-service/src/main/res/drawable-mdpi/module_services_online_car_panel_background.9.png create mode 100644 modules/mogo-module-service/src/main/res/drawable-mdpi/module_services_online_car_panel_empty_icon.png create mode 100755 modules/mogo-module-service/src/main/res/drawable-xhdpi/module_services_close.png create mode 100644 modules/mogo-module-service/src/main/res/drawable-xhdpi/module_services_online_car_panel_background.9.png create mode 100644 modules/mogo-module-service/src/main/res/drawable-xhdpi/module_services_online_car_panel_empty_icon.png create mode 100755 modules/mogo-module-service/src/main/res/drawable/module_services_close.png create mode 100644 modules/mogo-module-service/src/main/res/drawable/module_services_online_car_panel_background.9.png create mode 100644 modules/mogo-module-service/src/main/res/drawable/module_services_panel_item_bkg.xml create mode 100644 modules/mogo-module-service/src/main/res/drawable/module_services_panel_item_detail_bkg.xml create mode 100644 modules/mogo-module-service/src/main/res/drawable/module_services_panel_strategy_button_bkg.xml create mode 100644 modules/mogo-module-service/src/main/res/layout/module_services_fragment_online_car_panel.xml create mode 100644 modules/mogo-module-service/src/main/res/layout/module_services_online_car_panel_item.xml delete mode 100644 modules/mogo-module-widgets/src/main/res/drawable-ldpi/module_widgets_app_entrance_img_bkg.png create mode 100644 modules/mogo-module-widgets/src/main/res/drawable/module_widgets_app_body_bkg.xml delete mode 100644 modules/mogo-module-widgets/src/main/res/drawable/module_widgets_app_entrance_img_bkg.png create mode 100644 modules/mogo-module-widgets/src/main/res/drawable/module_widgets_app_handler_bkg.xml create mode 100644 modules/mogo-module-widgets/src/main/res/values/colors.xml create mode 100644 services/mogo-service-api/src/main/java/com/mogo/service/strategy/IMogoOnlineCarListPanelProvider.java diff --git a/.idea/misc.xml b/.idea/misc.xml index cd77a1f062..21e99e2dc0 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -4,7 +4,7 @@ - + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index fe41377686..536d5ac6c6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -113,6 +113,8 @@ android { buildConfigField 'boolean', 'LOAD_GUIDE_MODULE', 'false' // 是否支持换肤 buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'true' + // 是否支持查询导航目的地车友 + buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true' } // f系列-分体机 f80x { @@ -131,6 +133,8 @@ android { buildConfigField 'boolean', 'LOAD_GUIDE_MODULE', 'false' // 是否支持换肤 buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'true' + // 是否支持查询导航目的地车友 + buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true' } // e系列,采用Launcher方案 e8xx { @@ -149,6 +153,8 @@ android { buildConfigField 'boolean', 'LOAD_GUIDE_MODULE', 'false' // 是否支持换肤 buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'true' + // 是否支持查询导航目的地车友 + buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true' } // 同上 em4 { @@ -167,6 +173,8 @@ android { buildConfigField 'boolean', 'LOAD_GUIDE_MODULE', 'false' // 是否支持换肤 buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'true' + // 是否支持查询导航目的地车友 + buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true' } // e系列-2+32,对标D系列2+32,采用独立app的形式 em3 { @@ -185,6 +193,8 @@ android { buildConfigField 'boolean', 'LOAD_GUIDE_MODULE', 'false' // 是否支持换肤 buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'false' + // 是否支持查询导航目的地车友 + buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true' } // e系列-1+16,对标D系列1+16,采用独立app形式 em1 { @@ -203,6 +213,8 @@ android { buildConfigField 'boolean', 'LOAD_GUIDE_MODULE', 'false' // 是否支持换肤 buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'false' + // 是否支持查询导航目的地车友 + buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true' } // d系列 d8xx { @@ -220,7 +232,9 @@ android { // 是否加载引导模块 buildConfigField 'boolean', 'LOAD_GUIDE_MODULE', 'true' // 是否支持换肤 - buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'false' + buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'true' + // 是否支持查询导航目的地车友 + buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true' } // d系列 2 + 32 d80x { @@ -238,7 +252,9 @@ android { // 是否加载引导模块 buildConfigField 'boolean', 'LOAD_GUIDE_MODULE', 'true' // 是否支持换肤 - buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'false' + buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'true' + // 是否支持查询导航目的地车友 + buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true' } // d系列 1+16 版本 d82x { @@ -257,6 +273,8 @@ android { buildConfigField 'boolean', 'LOAD_GUIDE_MODULE', 'true' // 是否支持换肤 buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'false' + // 是否支持查询导航目的地车友 + buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true' } // 比亚迪 bydauto { @@ -275,6 +293,8 @@ android { buildConfigField 'boolean', 'LOAD_GUIDE_MODULE', 'false' // 是否支持换肤 buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'false' + // 是否支持查询导航目的地车友 + buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'false' } qa { dimension "env" diff --git a/app/functions/skin.gradle b/app/functions/skin.gradle index 5945ee7e4c..12cf97f10c 100644 --- a/app/functions/skin.gradle +++ b/app/functions/skin.gradle @@ -1,13 +1,11 @@ -project.dependencies { - - if (Boolean.valueOf(RELEASE)) { +if (Boolean.valueOf(RELEASE)) { bydautoImplementation rootProject.ext.dependencies.skinsupportnoop - d8xxImplementation rootProject.ext.dependencies.skinsupportnoop d82xImplementation rootProject.ext.dependencies.skinsupportnoop em1Implementation rootProject.ext.dependencies.skinsupportnoop - d80xImplementation rootProject.ext.dependencies.skinsupportnoop em3Implementation rootProject.ext.dependencies.skinsupportnoop + d8xxImplementation rootProject.ext.dependencies.skinsupportimpl + d80xImplementation rootProject.ext.dependencies.skinsupportimpl f8xxImplementation rootProject.ext.dependencies.skinsupportimpl f80xImplementation rootProject.ext.dependencies.skinsupportimpl em4Implementation rootProject.ext.dependencies.skinsupportimpl @@ -17,19 +15,21 @@ project.dependencies { f80xImplementation rootProject.ext.dependencies.skinsupportlight em4Implementation rootProject.ext.dependencies.skinsupportlight e8xxImplementation rootProject.ext.dependencies.skinsupportlight -// d8xxImplementation rootProject.ext.dependencies.skinsupportlight + d8xxImplementation rootProject.ext.dependencies.skinsupportlight + d80xImplementation rootProject.ext.dependencies.skinsupportlight // d82xImplementation rootProject.ext.dependencies.skinsupportlight // em1Implementation rootProject.ext.dependencies.skinsupportlight -// d80xImplementation rootProject.ext.dependencies.skinsupportlight // em3Implementation rootProject.ext.dependencies.skinsupportlight - } else { +} else { + project.dependencies { + bydautoImplementation project(':skin:mogo-skin-support-noop') - d8xxImplementation project(':skin:mogo-skin-support-noop') d82xImplementation project(':skin:mogo-skin-support-noop') em1Implementation project(':skin:mogo-skin-support-noop') - d80xImplementation project(':skin:mogo-skin-support-noop') em3Implementation project(':skin:mogo-skin-support-noop') + d8xxImplementation project(':skin:mogo-skin-support-impl') + d80xImplementation project(':skin:mogo-skin-support-impl') f8xxImplementation project(':skin:mogo-skin-support-impl') f80xImplementation project(':skin:mogo-skin-support-impl') em4Implementation project(':skin:mogo-skin-support-impl') @@ -39,10 +39,10 @@ project.dependencies { f80xImplementation project(':skin:mogo-skin-light') em4Implementation project(':skin:mogo-skin-light') e8xxImplementation project(':skin:mogo-skin-light') -// d8xxImplementation project(':skin:mogo-skin-light') + d8xxImplementation project(':skin:mogo-skin-light') + d80xImplementation project(':skin:mogo-skin-light') // d82xImplementation project(':skin:mogo-skin-light') // em1Implementation project(':skin:mogo-skin-light') -// d80xImplementation project(':skin:mogo-skin-light') // em3Implementation project(':skin:mogo-skin-light') } } \ No newline at end of file diff --git a/app/functions/widgets.gradle b/app/functions/widgets.gradle index cc816fc4c2..7309852d9e 100644 --- a/app/functions/widgets.gradle +++ b/app/functions/widgets.gradle @@ -3,7 +3,9 @@ project.dependencies { if (Boolean.valueOf(RELEASE)) { independentImplementation rootProject.ext.dependencies.mogomodulewidgets + implementation rootProject.ext.dependencies.mogomodulewidgets } else { independentImplementation project(':modules:mogo-module-widgets') + implementation project(':modules:mogo-module-widgets') } } \ No newline at end of file diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index f7ff196ea7..7abefd176e 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -14,6 +14,7 @@ import com.mogo.commons.network.Utils; import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant; import com.mogo.module.back.BackToLauncherConst; import com.mogo.module.carchatting.card.CallChatConstant; +import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.MogoModule; import com.mogo.module.common.MogoModulePaths; import com.mogo.module.main.service.MogoMainService; @@ -74,8 +75,8 @@ public class MogoApplication extends AbsMogoApplication { MogoModulePaths.addModule( new MogoModule( BackToLauncherConst.MODULE_PATH, BackToLauncherConst.MODULE_NAME ) ); MogoModulePaths.addModule( new MogoModule( MediaConstants.TAG, MediaConstants.MODULE_TYPE ) ); } else { - MogoModulePaths.addBaseModule( new MogoModule( MogoServicePaths.PATH_WIDGETS, MogoServicePaths.PATH_WIDGETS ) ); } + MogoModulePaths.addBaseModule( new MogoModule( MogoServicePaths.PATH_WIDGETS, MogoServicePaths.PATH_WIDGETS ) ); if ( DebugConfig.getCarMachineType() != DebugConfig.CAR_MACHINE_TYPE_BYD ) { MogoModulePaths.addModule( new MogoModule( CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME ) ); } @@ -130,6 +131,7 @@ public class MogoApplication extends AbsMogoApplication { DebugConfig.setRoadEventAnimated( BuildConfig.ROAD_EVENT_ANIMATED ); DebugConfig.setLoadGuideModule( BuildConfig.LOAD_GUIDE_MODULE ); DebugConfig.setSkinSupported( BuildConfig.IS_SKIN_SUPPORTED ); + DebugConfig.setSupportedSearchDestinationOnlineCarList( BuildConfig.IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST ); } @Override @@ -140,7 +142,7 @@ public class MogoApplication extends AbsMogoApplication { @Override protected void init() { super.init(); - final IMogoServiceApis apis = ARouter.getInstance().navigation( IMogoServiceApis.class ); + final IMogoServiceApis apis = MogoApisHandler.getInstance().getApis(); prepareBaseService( apis, 2_000L ); // installSkinManager( this, apis ); } diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java index 4f9761ca27..91bcb237ec 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java @@ -264,7 +264,7 @@ public class DebugConfig { private static String SP_GUIDE = "SP_GUIDE_2020_09_09"; - public static String getSpGuide(){ + public static String getSpGuide() { return SP_GUIDE; } @@ -277,4 +277,17 @@ public class DebugConfig { public static boolean isSkinSupported() { return isSkinSupported; } + + /** + * 是否支持支持查询导航目的地车友信息 + */ + private static boolean isSupportedSearchDestinationOnlineCarList = false; + + public static void setSupportedSearchDestinationOnlineCarList( boolean isSupportedSearchDestinationOnlineCarList ) { + DebugConfig.isSupportedSearchDestinationOnlineCarList = isSupportedSearchDestinationOnlineCarList; + } + + public static boolean isSupportedSearchDestinationOnlineCarList() { + return isSupportedSearchDestinationOnlineCarList; + } } diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/storage/SpStorage.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/storage/SpStorage.java index 0fbca06a32..6971ebd8d4 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/storage/SpStorage.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/storage/SpStorage.java @@ -18,4 +18,12 @@ public class SpStorage { public static void setTicket( String ticket ) { SharedPrefsMgr.getInstance( AbsMogoApplication.getApp() ).putString( "ticket", ticket ); } + + public static String getNavigationTarget(){ + return SharedPrefsMgr.getInstance( AbsMogoApplication.getApp() ).getString( "naviTarget" ); + } + + public static void setNavigationTarget( String naviTarget ) { + SharedPrefsMgr.getInstance( AbsMogoApplication.getApp() ).putString( "naviTarget", naviTarget ); + } } diff --git a/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviReceiver.java b/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviReceiver.java index 516be8652e..9bcd3e772c 100644 --- a/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviReceiver.java +++ b/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviReceiver.java @@ -6,6 +6,7 @@ import android.content.Intent; import android.content.IntentFilter; import android.text.TextUtils; +import com.mogo.commons.storage.SpStorage; import com.mogo.map.impl.amap.utils.IconTypeUtils; import com.mogo.map.navi.MogoNaviInfo; import com.mogo.map.navi.MogoNaviListenerHandler; @@ -66,6 +67,11 @@ public class AutoNaviReceiver extends BroadcastReceiver { int state = intent.getIntExtra( "EXTRA_STATE", -1 ); handleMapStatusChanged( state ); break; + case 10056: + String json = intent.getStringExtra( "EXTRA_ROAD_INFO" ); + SpStorage.setNavigationTarget(json); + Logger.d( TAG, json ); + break; } } diff --git a/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java b/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java index f3ae390679..0b6ecceac5 100644 --- a/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java +++ b/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java @@ -39,6 +39,11 @@ public class MainIndependentActivity extends MainActivity { eventPanelParams.leftMargin = getResources().getDimensionPixelSize( R.dimen.module_main_entrance_fragment_container_marginLeft ); mEntrance.setLayoutParams( eventPanelParams ); + // 事件面板 + FrameLayout.LayoutParams historyMessagePanelParams = ( ( FrameLayout.LayoutParams ) mEventPanel.getLayoutParams() ); + historyMessagePanelParams.leftMargin = getResources().getDimensionPixelSize( R.dimen.module_main_entrance_fragment_container_marginLeft ); + mHistoryMessagePanel.setLayoutParams( historyMessagePanelParams ); + mLeftShadowFrame.setVisibility(View.VISIBLE); mApps.setVisibility( View.GONE ); } @@ -58,7 +63,6 @@ public class MainIndependentActivity extends MainActivity { } } - @Override protected void onPause() { super.onPause(); diff --git a/main-extensions/mogo-module-main-independent/src/main/res/values/dimens.xml b/main-extensions/mogo-module-main-independent/src/main/res/values/dimens.xml index 7c6006c413..d25f1c125d 100644 --- a/main-extensions/mogo-module-main-independent/src/main/res/values/dimens.xml +++ b/main-extensions/mogo-module-main-independent/src/main/res/values/dimens.xml @@ -1,5 +1,5 @@ - 350px + 358px 366px \ No newline at end of file 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 4df55c25b6..faa3baec81 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,9 +1,7 @@ package com.mogo.module.apps; -import com.alibaba.android.arouter.launcher.ARouter; -import com.mogo.commons.AbsMogoApplication; +import com.mogo.module.common.MogoApisHandler; import com.mogo.service.IMogoServiceApis; -import com.mogo.service.MogoServicePaths; /** * author : zyz @@ -20,7 +18,7 @@ public class AppServiceHandler { public static IMogoServiceApis getApis() { if ( mApis == null ) { - mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( AbsMogoApplication.getApp() ); + mApis = MogoApisHandler.getInstance().getApis(); } return mApis; } 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 c03d6944b3..29b64c6c25 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 @@ -8,15 +8,9 @@ import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import com.alibaba.android.arouter.facade.annotation.Route; -import com.alibaba.android.arouter.launcher.ARouter; -import com.mogo.map.listener.IMogoMapListener; -import com.mogo.map.location.IMogoLocationListener; -import com.mogo.map.marker.IMogoMarkerClickListener; -import com.mogo.map.navi.IMogoNaviListener; +import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.utils.CarSeries; import com.mogo.service.IMogoServiceApis; -import com.mogo.service.MogoServicePaths; -import com.mogo.service.module.IMogoModuleLifecycle; import com.mogo.service.module.IMogoModuleProvider; import com.mogo.service.module.ModuleType; @@ -59,7 +53,7 @@ public class BackToLauncherModuleProvider implements IMogoModuleProvider { if ( CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X ) { BackToMainHomeManager.addMainHomeView(); } - mServiceApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation(); + mServiceApis = MogoApisHandler.getInstance().getApis(); BackToMainHomeManager.init( mServiceApis ); } } 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 ea748c53fe..26dbe1f40e 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 @@ -63,7 +63,7 @@ public class BackToMainHomeManager { .size( WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT ) .gravity( Gravity.LEFT | Gravity.TOP ) .showInWindowManager(); - mWindowManagerView.attachTouchEvent( view -> { + mWindowManagerView.attachTouchEvent( (view, xPos, yPos) -> { backToLauncher(); } ); } diff --git a/modules/mogo-module-common/build.gradle b/modules/mogo-module-common/build.gradle index c3f39b9c50..3a8b6d5986 100644 --- a/modules/mogo-module-common/build.gradle +++ b/modules/mogo-module-common/build.gradle @@ -32,6 +32,7 @@ dependencies { implementation rootProject.ext.dependencies.androidxappcompat implementation rootProject.ext.dependencies.androidxrecyclerview implementation rootProject.ext.dependencies.androidxconstraintlayout + implementation rootProject.ext.dependencies.arouter if (Boolean.valueOf(RELEASE)) { api rootProject.ext.dependencies.mogomap api rootProject.ext.dependencies.mogomapapi diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/MogoApisHandler.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/MogoApisHandler.java new file mode 100644 index 0000000000..1fc4db92be --- /dev/null +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/MogoApisHandler.java @@ -0,0 +1,52 @@ +package com.mogo.module.common; + +import com.alibaba.android.arouter.launcher.ARouter; +import com.mogo.service.IMogoServiceApis; + +/** + * @author congtaowang + * @since 2020/9/21 + *

+ * 描述 + */ +public final class MogoApisHandler { + + private IMogoServiceApis sApis; + + private static volatile MogoApisHandler sInstance; + + private MogoApisHandler() { + sApis = ARouter.getInstance().navigation( IMogoServiceApis.class ); + } + + public static MogoApisHandler getInstance() { + if ( sInstance == null ) { + synchronized ( MogoApisHandler.class ) { + if ( sInstance == null ) { + sInstance = new MogoApisHandler(); + } + } + } + return sInstance; + } + + public synchronized void release() { + sInstance = null; + } + + private Object readResolve() { + // 阻止反序列化,必须实现 Serializable 接口 + return sInstance; + } + + public IMogoServiceApis getApis() { + if ( sApis == null ) { + synchronized ( this ) { + if ( sApis != null ) { + sApis = ARouter.getInstance().navigation( IMogoServiceApis.class ); + } + } + } + return sApis; + } +} diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/widget/CustomCircleImageView.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/widget/CustomCircleImageView.java new file mode 100644 index 0000000000..c743b08a24 --- /dev/null +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/widget/CustomCircleImageView.java @@ -0,0 +1,337 @@ +package com.mogo.module.common.widget; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Bitmap; +import android.graphics.BitmapShader; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.ColorFilter; +import android.graphics.Matrix; +import android.graphics.Paint; +import android.graphics.RectF; +import android.graphics.Shader; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; +import android.net.Uri; +import android.util.AttributeSet; +import android.widget.ImageView; + +import androidx.annotation.ColorInt; +import androidx.annotation.ColorRes; +import androidx.annotation.DrawableRes; + +import com.mogo.module.common.R; + +@SuppressLint("AppCompatCustomView") +public class CustomCircleImageView extends ImageView { + + private static final ScaleType SCALE_TYPE = ScaleType.CENTER_CROP; + + private static final Bitmap.Config BITMAP_CONFIG = Bitmap.Config.ARGB_8888; + private static final int COLORDRAWABLE_DIMENSION = 2; + + private static final int DEFAULT_BORDER_WIDTH = 0; + private static final int DEFAULT_BORDER_COLOR = Color.BLACK; + private static final int DEFAULT_FILL_COLOR = Color.TRANSPARENT; + private static final boolean DEFAULT_BORDER_OVERLAY = false; + + private final RectF mDrawableRect = new RectF(); + private final RectF mBorderRect = new RectF(); + + private final Matrix mShaderMatrix = new Matrix(); + private final Paint mBitmapPaint = new Paint(); + private final Paint mBorderPaint = new Paint(); + private final Paint mFillPaint = new Paint(); + + private int mBorderColor = DEFAULT_BORDER_COLOR; + private int mBorderWidth = DEFAULT_BORDER_WIDTH; + private int mFillColor = DEFAULT_FILL_COLOR; + + private Bitmap mBitmap; + private BitmapShader mBitmapShader; + private int mBitmapWidth; + private int mBitmapHeight; + + private float mDrawableRadius; + private float mBorderRadius; + + private ColorFilter mColorFilter; + + private boolean mReady; + private boolean mSetupPending; + private boolean mBorderOverlay; + + public CustomCircleImageView( Context context) { + super(context); + + init(); + } + + public CustomCircleImageView( Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public CustomCircleImageView( Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + + TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CustomCircleImageView, defStyle, 0); + + mBorderWidth = a.getDimensionPixelSize(R.styleable.CustomCircleImageView_civ_border_width, DEFAULT_BORDER_WIDTH); + mBorderColor = a.getColor(R.styleable.CustomCircleImageView_civ_border_color, DEFAULT_BORDER_COLOR); + mBorderOverlay = a.getBoolean(R.styleable.CustomCircleImageView_civ_border_overlay, DEFAULT_BORDER_OVERLAY); + mFillColor = a.getColor(R.styleable.CustomCircleImageView_civ_fill_color, DEFAULT_FILL_COLOR); + + a.recycle(); + + init(); + } + + private void init() { + super.setScaleType(SCALE_TYPE); + mReady = true; + + if (mSetupPending) { + setup(); + mSetupPending = false; + } + } + + @Override + public ScaleType getScaleType() { + return SCALE_TYPE; + } + + @Override + public void setScaleType(ScaleType scaleType) { + if (scaleType != SCALE_TYPE) { + throw new IllegalArgumentException(String.format("ScaleType %s not supported.", scaleType)); + } + } + + @Override + public void setAdjustViewBounds(boolean adjustViewBounds) { + if (adjustViewBounds) { + throw new IllegalArgumentException("adjustViewBounds not supported."); + } + } + + @Override + protected void onDraw(Canvas canvas) { + if (mBitmap == null) { + return; + } + + if (mFillColor != Color.TRANSPARENT) { + canvas.drawCircle(getWidth() / 2.0f, getHeight() / 2.0f, mDrawableRadius, mFillPaint); + } + canvas.drawCircle(getWidth() / 2.0f, getHeight() / 2.0f, mDrawableRadius, mBitmapPaint); + if (mBorderWidth != 0) { + canvas.drawCircle(getWidth() / 2.0f, getHeight() / 2.0f, mBorderRadius, mBorderPaint); + } + } + + @Override + protected void onSizeChanged(int w, int h, int oldw, int oldh) { + super.onSizeChanged(w, h, oldw, oldh); + setup(); + } + + public int getBorderColor() { + return mBorderColor; + } + + public void setBorderColor(@ColorInt int borderColor) { + if (borderColor == mBorderColor) { + return; + } + + mBorderColor = borderColor; + mBorderPaint.setColor(mBorderColor); + invalidate(); + } + + public void setBorderColorResource(@ColorRes int borderColorRes) { + setBorderColor(getContext().getResources().getColor(borderColorRes)); + } + + public int getFillColor() { + return mFillColor; + } + + public void setFillColor(@ColorInt int fillColor) { + if (fillColor == mFillColor) { + return; + } + + mFillColor = fillColor; + mFillPaint.setColor(fillColor); + invalidate(); + } + + public void setFillColorResource(@ColorRes int fillColorRes) { + setFillColor(getContext().getResources().getColor(fillColorRes)); + } + + public int getBorderWidth() { + return mBorderWidth; + } + + public void setBorderWidth(int borderWidth) { + if (borderWidth == mBorderWidth) { + return; + } + + mBorderWidth = borderWidth; + setup(); + } + + public boolean isBorderOverlay() { + return mBorderOverlay; + } + + public void setBorderOverlay(boolean borderOverlay) { + if (borderOverlay == mBorderOverlay) { + return; + } + + mBorderOverlay = borderOverlay; + setup(); + } + + @Override + public void setImageBitmap(Bitmap bm) { + super.setImageBitmap(bm); + mBitmap = bm; + setup(); + } + + @Override + public void setImageDrawable(Drawable drawable) { + super.setImageDrawable(drawable); + mBitmap = getBitmapFromDrawable(drawable); + setup(); + } + + @Override + public void setImageResource(@DrawableRes int resId) { + super.setImageResource(resId); + mBitmap = getBitmapFromDrawable(getDrawable()); + setup(); + } + + @Override + public void setImageURI(Uri uri) { + super.setImageURI(uri); + mBitmap = uri != null ? getBitmapFromDrawable(getDrawable()) : null; + setup(); + } + + @Override + public void setColorFilter(ColorFilter cf) { + if (cf == mColorFilter) { + return; + } + + mColorFilter = cf; + mBitmapPaint.setColorFilter(mColorFilter); + invalidate(); + } + + private Bitmap getBitmapFromDrawable(Drawable drawable) { + if (drawable == null) { + return null; + } + + if (drawable instanceof BitmapDrawable) { + return ((BitmapDrawable) drawable).getBitmap(); + } + + try { + Bitmap bitmap; + + if (drawable instanceof ColorDrawable) { + bitmap = Bitmap.createBitmap(COLORDRAWABLE_DIMENSION, COLORDRAWABLE_DIMENSION, BITMAP_CONFIG); + } else { + bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), BITMAP_CONFIG); + } + + Canvas canvas = new Canvas(bitmap); + drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); + drawable.draw(canvas); + return bitmap; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + private void setup() { + if (!mReady) { + mSetupPending = true; + return; + } + + if (getWidth() == 0 && getHeight() == 0) { + return; + } + + if (mBitmap == null) { + invalidate(); + return; + } + + mBitmapShader = new BitmapShader(mBitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP); + + mBitmapPaint.setAntiAlias(true); + mBitmapPaint.setShader(mBitmapShader); + + mBorderPaint.setStyle(Paint.Style.STROKE); + mBorderPaint.setAntiAlias(true); + mBorderPaint.setColor(mBorderColor); + mBorderPaint.setStrokeWidth(mBorderWidth); + + mFillPaint.setStyle(Paint.Style.FILL); + mFillPaint.setAntiAlias(true); + mFillPaint.setColor(mFillColor); + + mBitmapHeight = mBitmap.getHeight(); + mBitmapWidth = mBitmap.getWidth(); + + mBorderRect.set(0, 0, getWidth(), getHeight()); + mBorderRadius = Math.min((mBorderRect.height() - mBorderWidth) / 2.0f, (mBorderRect.width() - mBorderWidth) / 2.0f); + + mDrawableRect.set(mBorderRect); + if (!mBorderOverlay) { + mDrawableRect.inset(mBorderWidth, mBorderWidth); + } + mDrawableRadius = Math.min(mDrawableRect.height() / 2.0f, mDrawableRect.width() / 2.0f); + + updateShaderMatrix(); + invalidate(); + } + + private void updateShaderMatrix() { + float scale; + float dx = 0; + float dy = 0; + + mShaderMatrix.set(null); + + if (mBitmapWidth * mDrawableRect.height() > mDrawableRect.width() * mBitmapHeight) { + scale = mDrawableRect.height() / (float) mBitmapHeight; + dx = (mDrawableRect.width() - mBitmapWidth * scale) * 0.5f; + } else { + scale = mDrawableRect.width() / (float) mBitmapWidth; + dy = (mDrawableRect.height() - mBitmapHeight * scale) * 0.5f; + } + + mShaderMatrix.setScale(scale, scale); + mShaderMatrix.postTranslate((int) (dx + 0.5f) + mDrawableRect.left, (int) (dy + 0.5f) + mDrawableRect.top); + + mBitmapShader.setLocalMatrix(mShaderMatrix); + } + +} diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/IWindowManagerView.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/IWindowManagerView.java index 14891ed7d6..cab1b77605 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/IWindowManagerView.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/IWindowManagerView.java @@ -33,6 +33,6 @@ interface IWindowManagerView { void hide(); interface OnViewClickListener { - void onClick( View view ); + void onClick( View view, float xPos, float yPos ); } } diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerImpl.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerImpl.java index d4314d4106..d810e6033f 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerImpl.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerImpl.java @@ -64,7 +64,10 @@ class WindowManagerImpl implements IWindowManagerView { // 只要按钮一动位置不是很大,就认为是点击事件 if ( Math.abs( mOldOffsetX - newOffsetX ) <= 20 && Math.abs( mOldOffsetY - newOffsetY ) <= 20 ) { - listener.onClick( mParams.mContentView ); + if ( listener != null ) { + listener.onClick( mParams.mContentView, x, y ); + } + return false; } mOldOffsetX = newOffsetX; mOldOffsetY = newOffsetY; diff --git a/modules/mogo-module-common/src/main/res/drawable-ldpi/module_common_default_user_head.png b/modules/mogo-module-common/src/main/res/drawable-ldpi/module_common_default_user_head.png new file mode 100644 index 0000000000000000000000000000000000000000..726124020add2d7039ad9ea0bb9e6c85d1cb51fc GIT binary patch literal 1604 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 + + + + + + + \ No newline at end of file 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 11aa6dee90..8a26258914 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 @@ -8,6 +8,7 @@ import androidx.lifecycle.LifecycleOwner; import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.mvp.Presenter; import com.mogo.commons.network.Utils; +import com.mogo.module.common.MogoApisHandler; import com.mogo.module.extensions.net.UserInfoNetApiServices; import com.mogo.module.extensions.userinfo.UserInfo; import com.mogo.module.extensions.userinfo.UserInfoConstant; @@ -53,8 +54,7 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements public ExtensionsPresenter( ExtensionsView view ) { super( view ); mWeatherModel = new WeatherModel( getContext() ); - mNetWork = - ((IMogoServiceApis) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(view.getContext())).getNetworkApi(); + mNetWork = MogoApisHandler.getInstance().getApis().getNetworkApi(); } @Override 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 d1f640ec5a..e310869dfa 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 @@ -32,6 +32,7 @@ import com.mogo.map.navi.MogoNaviInfo; import com.mogo.map.navi.MogoTraffic; import com.mogo.map.uicontroller.EnumMapUI; import com.mogo.map.uicontroller.IMogoMapUIController; +import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.dialog.WMDialog; import com.mogo.module.common.glide.SkinAbleBitmapTarget; import com.mogo.module.common.map.CustomNaviInterrupter; @@ -45,7 +46,6 @@ import com.mogo.module.extensions.utils.EntranceViewHolder; import com.mogo.module.extensions.utils.TopViewAnimHelper; import com.mogo.module.share.manager.ServiceApisManager; import com.mogo.service.IMogoServiceApis; -import com.mogo.service.MogoServicePaths; import com.mogo.service.analytics.IMogoAnalytics; import com.mogo.service.entrance.ButtonIndex; import com.mogo.service.fragmentmanager.IFragmentProvider; @@ -135,6 +135,8 @@ public class EntranceFragment extends MvpFragment { + MogoApisHandler.getInstance().getApis().getOnlineCarPanelApi().showPanel(); + Map properties = new HashMap<>(); + properties.put( "type", 1 ); + MogoApisHandler.getInstance().getApis().getAnalyticsApi().track( "APP_Find_Mogoer", properties ); + } ); + dealWeatherContainer(); debugTopView(); @@ -429,6 +439,11 @@ public class EntranceFragment extends MvpFragment()); + if ( DebugConfig.isSupportedSearchDestinationOnlineCarList() ) { + mOnlineCarEntrance.setVisibility( View.VISIBLE ); + } else { + mOnlineCarEntrance.setVisibility( View.GONE ); + } } @Override @@ -438,6 +453,7 @@ public class EntranceFragment extends MvpFragment implements Weathe public EntrancePresenter(Context context, EntranceView view) { super(view); mWeatherModel = new WeatherModel( getContext() ); - mNetWork = - ((IMogoServiceApis) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(view.getContext())).getNetworkApi(); + mNetWork = MogoApisHandler.getInstance().getApis().getNetworkApi(); } @Override diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_destination_online_car_dw.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_destination_online_car_dw.png new file mode 100644 index 0000000000000000000000000000000000000000..36a731a81434ae5c966fbad873f9a62a57ec83b2 GIT binary patch literal 1055 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 T + + + + tools:visibility="gone"> 10px 2px 2px + 4px + 14px + 14px \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/values-xhdpi-1920x1000/dimens.xml b/modules/mogo-module-extensions/src/main/res/values-xhdpi-1920x1000/dimens.xml index d34d1a739a..a30623fe52 100644 --- a/modules/mogo-module-extensions/src/main/res/values-xhdpi-1920x1000/dimens.xml +++ b/modules/mogo-module-extensions/src/main/res/values-xhdpi-1920x1000/dimens.xml @@ -150,4 +150,7 @@ 30px 20px 20px + 8px + 21px + 31px \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml index c06db31dd1..aa75703d09 100644 --- a/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml +++ b/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml @@ -152,4 +152,7 @@ 30px 20px 20px + 8px + 21px + 31px \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/values/dimens.xml b/modules/mogo-module-extensions/src/main/res/values/dimens.xml index 37328f34fd..8d6484ba10 100644 --- a/modules/mogo-module-extensions/src/main/res/values/dimens.xml +++ b/modules/mogo-module-extensions/src/main/res/values/dimens.xml @@ -157,4 +157,7 @@ 10px 2px 2px + 4px + 14px + 14px \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/values/strings.xml b/modules/mogo-module-extensions/src/main/res/values/strings.xml index def8fbcd0e..48600136b3 100644 --- a/modules/mogo-module-extensions/src/main/res/values/strings.xml +++ b/modules/mogo-module-extensions/src/main/res/values/strings.xml @@ -22,6 +22,7 @@ 退出全览 车头 正北 + 目的地车友 你好小智,播放音乐 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 85a097bb79..a7c0f71916 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 @@ -19,6 +19,7 @@ import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.IMogoMarkerClickListener; import com.mogo.map.uicontroller.EnumMapUI; import com.mogo.map.uicontroller.IMogoMapUIController; +import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.map.MapCenterPointStrategy; import com.mogo.module.common.map.Scene; import com.mogo.module.main.cards.MogoModulesManager; @@ -135,7 +136,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme private void init() { if ( mServiceApis == null ) { - mServiceApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation(); + mServiceApis = MogoApisHandler.getInstance().getApis(); } mServiceApis.getShareManager().resetContext( this ); mServiceApis.getAuthManagerApi().showAuth( this ); @@ -189,6 +190,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme mMogoFragmentManager = mServiceApis.getFragmentManagerApi(); mMogoFragmentManager.init( this, R.id.module_main_id_search_fragment ); mMogoFragmentManager.initMessageHistoryContainerId( R.id.module_main_id_message_history_fragment_container ); + mServiceApis.getOnlineCarPanelApi().initContainer( R.id.module_main_id_message_history_fragment_container, this ); mMogoFragmentManager.registerMainFragmentStackTransactionListener( ( size ) -> { if ( size == 0 ) { showLayout(); @@ -332,7 +334,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme @Override public IMogoServiceApis getApis() { if ( mServiceApis == null ) { - mServiceApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation(); + mServiceApis = MogoApisHandler.getInstance().getApis(); } return mServiceApis; } @@ -350,5 +352,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme Logger.d( TAG, "destroy." ); mServiceApis.getRefreshStrategyControllerApi().clearAllData(); AIAssist.getInstance( this ).release(); + mServiceApis.getOnlineCarPanelApi().clear(); } } diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/SchemeIntent.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/SchemeIntent.java index d8e6e15f60..c6199eac00 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/SchemeIntent.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/SchemeIntent.java @@ -41,6 +41,8 @@ public class SchemeIntent implements IMogoStatusChangedListener { public static final String TYPE_LAUNCH = "launch"; + public static final String TYPE_SHOW_ONLINE_CAR_PANEL = "showOnlineCarPanel"; + private IMogoServiceApis mApis; private Context mContext; @@ -125,21 +127,23 @@ public class SchemeIntent implements IMogoStatusChangedListener { handleLaunchIntent( target ); break; case TYPE_SEARCH_ROAD_CONDITION: - handleSearchRoadCondition(target); + handleSearchRoadCondition( target ); break; + case TYPE_SHOW_ONLINE_CAR_PANEL: + handleShowOnlineCarPanel( target ); default: break; } } - private void handleSearchRoadCondition(Uri target) { - if (mApis == null) { + private void handleSearchRoadCondition( Uri target ) { + if ( mApis == null ) { return; } - mApis.getTanluUiApi().searchRoadCondition(target.getQueryParameter("intentStr"), - target.getQueryParameter("data"), target.getQueryParameter("city"), - target.getQueryParameter("keywords")); + mApis.getTanluUiApi().searchRoadCondition( target.getQueryParameter( "intentStr" ), + target.getQueryParameter( "data" ), target.getQueryParameter( "city" ), + target.getQueryParameter( "keywords" ) ); } private void handleSwitchCardIntent( String type ) { @@ -153,8 +157,6 @@ public class SchemeIntent implements IMogoStatusChangedListener { String lon = naviUri.getQueryParameter( "lon" ); String lat = naviUri.getQueryParameter( "lat" ); - // TODO: 2020-04-20 补充场景 - try { double dlon = Double.valueOf( lon ); double dlat = Double.valueOf( lat ); @@ -178,6 +180,10 @@ public class SchemeIntent implements IMogoStatusChangedListener { mApis.getAnalyticsApi().track( "appenterfront", properties ); } + private void handleShowOnlineCarPanel( Uri uri ) { + mApis.getOnlineCarPanelApi().showPanel(); + } + @Override public void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ) { if ( descriptor == StatusDescriptor.MAIN_PAGE_RESUME ) { diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/service/MogoMainService.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/service/MogoMainService.java index b7c220f00b..149ffad5e7 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/service/MogoMainService.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/service/MogoMainService.java @@ -7,15 +7,14 @@ import android.os.IBinder; import androidx.annotation.Nullable; import com.alibaba.android.arouter.facade.annotation.Route; -import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.AbsMogoApplication; import com.mogo.map.location.IMogoLocationClient; import com.mogo.map.location.IMogoLocationListener; import com.mogo.map.location.MogoLocation; +import com.mogo.module.common.MogoApisHandler; import com.mogo.module.main.EventDispatchCenter; import com.mogo.module.main.cards.MogoModulesManager; import com.mogo.service.IMogoServiceApis; -import com.mogo.service.MogoServicePaths; import com.mogo.utils.UiThreadHandler; import com.mogo.utils.logger.Logger; @@ -26,7 +25,7 @@ public * * 描述 */ -@Route(path = "/service/base/info") +@Route( path = "/service/base/info" ) class MogoMainService extends Service implements IMogoLocationListener { private static final String TAG = "MogoMainService"; @@ -39,10 +38,10 @@ class MogoMainService extends Service implements IMogoLocationListener { @Override public void onCreate() { - Logger.d(TAG, "基本服务启动"); - mServiceApis = (IMogoServiceApis) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(); + Logger.d( TAG, "基本服务启动" ); + mServiceApis = MogoApisHandler.getInstance().getApis(); initAndStartLocation(); - UiThreadHandler.postDelayed(() -> { + UiThreadHandler.postDelayed( () -> { loadBaseModules(); startTanluService(); initADAS(); @@ -53,53 +52,53 @@ class MogoMainService extends Service implements IMogoLocationListener { @Nullable @Override - public IBinder onBind(Intent intent) { + public IBinder onBind( Intent intent ) { return null; } @Override - public int onStartCommand(Intent intent, int flags, int startId) { + public int onStartCommand( Intent intent, int flags, int startId ) { return START_STICKY; } private void initAndStartLocation() { - Logger.d(TAG, "开始定位"); - mLocationClient = mServiceApis.getMapServiceApi().getSingletonLocationClient(AbsMogoApplication.getApp()); - mLocationClient.addLocationListener(this); - mLocationClient.start(2_000L); + Logger.d( TAG, "开始定位" ); + mLocationClient = mServiceApis.getMapServiceApi().getSingletonLocationClient( AbsMogoApplication.getApp() ); + mLocationClient.addLocationListener( this ); + mLocationClient.start( 2_000L ); } private void initGpsSimulatorListener() { - mServiceApis.getMapServiceApi().getNavi(this).registerCarLocationChangedListener(EventDispatchCenter.getInstance()); + mServiceApis.getMapServiceApi().getNavi( this ).registerCarLocationChangedListener( EventDispatchCenter.getInstance() ); } private void loadBaseModules() { - Logger.d(TAG, "加载基本模块"); + Logger.d( TAG, "加载基本模块" ); MogoModulesManager.getInstance().loadBaseModule(); } private void startTanluService() { - UiThreadHandler.postDelayed(() -> { - Logger.d(TAG, "startTanluService ---------- "); + UiThreadHandler.postDelayed( () -> { + Logger.d( TAG, "startTanluService ---------- " ); mServiceApis.getTanluApi().startTanluService(); }, 2_000L ); } private void initADAS() { - mServiceApis.getAdasControllerApi().init(AbsMogoApplication.getApp()); + mServiceApis.getAdasControllerApi().init( AbsMogoApplication.getApp() ); } @Override - public void onLocationChanged(MogoLocation location) { - EventDispatchCenter.getInstance().onLocationChanged(location); + public void onLocationChanged( MogoLocation location ) { + EventDispatchCenter.getInstance().onLocationChanged( location ); } @Override public void onDestroy() { super.onDestroy(); - if (mLocationClient != null) { - mLocationClient.removeLocationListener(this); + if ( mLocationClient != null ) { + mLocationClient.removeLocationListener( this ); mLocationClient.stop(); mLocationClient.destroy(); mLocationClient = null; diff --git a/modules/mogo-module-main/src/main/res/values/dimens.xml b/modules/mogo-module-main/src/main/res/values/dimens.xml index 3cf1f1ee39..d27dfc19e4 100644 --- a/modules/mogo-module-main/src/main/res/values/dimens.xml +++ b/modules/mogo-module-main/src/main/res/values/dimens.xml @@ -26,6 +26,6 @@ 16px 658px 8px - 10px + 2px \ No newline at end of file diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapBroadCastHelper.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapBroadCastHelper.java index 8eef0ad064..8b8dac214a 100644 --- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapBroadCastHelper.java +++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapBroadCastHelper.java @@ -4,11 +4,10 @@ import android.content.Context; import android.content.Intent; import android.util.Log; -import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.map.navi.MogoNaviInfo; +import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.map.CustomNaviInterrupter; import com.mogo.service.IMogoServiceApis; -import com.mogo.service.MogoServicePaths; import com.mogo.service.statusmanager.IMogoStatusChangedListener; import com.mogo.service.statusmanager.StatusDescriptor; import com.mogo.utils.AppUtils; @@ -31,7 +30,7 @@ public class MapBroadCastHelper implements IMogoStatusChangedListener { private MapBroadCastHelper( Context context ) { this.mContext = context; - IMogoServiceApis api = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( context ); + IMogoServiceApis api = MogoApisHandler.getInstance().getApis(); api.getStatusManagerApi().registerStatusChangedListener( TAG, StatusDescriptor.AI_ASSIST_READY, this ); } 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 f0316ac8e9..f96ca3c162 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 @@ -9,7 +9,6 @@ import android.text.TextUtils; import androidx.annotation.NonNull; import androidx.lifecycle.LifecycleOwner; -import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.mvp.Presenter; import com.mogo.commons.voice.AIAssist; import com.mogo.commons.voice.IMogoVoiceCmdCallBack; @@ -21,9 +20,9 @@ import com.mogo.map.navi.MogoNaviConfig; import com.mogo.map.navi.MogoNaviInfo; import com.mogo.map.uicontroller.EnumMapUI; import com.mogo.map.uicontroller.MapControlResult; +import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.map.CustomNaviInterrupter; import com.mogo.service.IMogoServiceApis; -import com.mogo.service.MogoServicePaths; import com.mogo.service.adas.IMogoADASControlStatusChangedListener; import com.mogo.service.intent.IMogoIntentListener; import com.mogo.service.intent.IMogoIntentManager; @@ -248,7 +247,7 @@ public class MapPresenter extends Presenter< MapView > implements public void onCreate( @NonNull LifecycleOwner owner ) { super.onCreate( owner ); - mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( getContext() ); + mApis = MogoApisHandler.getInstance().getApis(); mMogoMapService = mApis.getMapServiceApi(); mMogoIntentManager = mApis.getIntentManagerApi(); mSearchManager = mApis.getSearchManagerApi(); diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/KwPresenter.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/KwPresenter.java index 60810062c4..6d40bafb55 100644 --- a/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/KwPresenter.java +++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/KwPresenter.java @@ -5,13 +5,12 @@ import android.os.Handler; import android.os.Message; import android.util.Log; -import com.alibaba.android.arouter.launcher.ARouter; +import com.mogo.module.common.MogoApisHandler; import com.mogo.module.media.MediaConstants; import com.mogo.module.media.constants.MusicConstant; import com.mogo.module.media.model.MediaInfoData; import com.mogo.module.media.view.IMusicView; import com.mogo.service.IMogoServiceApis; -import com.mogo.service.MogoServicePaths; import com.mogo.service.statusmanager.IMogoStatusChangedListener; import com.mogo.service.statusmanager.StatusDescriptor; @@ -108,8 +107,7 @@ public class KwPresenter extends BaseMediaPresenter { } }); - IMogoServiceApis serviceApis = - (IMogoServiceApis) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(context); + IMogoServiceApis serviceApis = MogoApisHandler.getInstance().getApis(); serviceApis.getStatusManagerApi().registerStatusChangedListener(MediaConstants.MODULE_TYPE, StatusDescriptor.MAIN_PAGE_RESUME, new IMogoStatusChangedListener() { @Override diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/WeCarFlowPresenter.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/WeCarFlowPresenter.java index 4aa6dd259c..570964a4b2 100644 --- a/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/WeCarFlowPresenter.java +++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/WeCarFlowPresenter.java @@ -2,16 +2,12 @@ package com.mogo.module.media.presenter; import android.content.Context; -import androidx.annotation.NonNull; -import androidx.lifecycle.LifecycleOwner; - -import com.alibaba.android.arouter.launcher.ARouter; +import com.mogo.module.common.MogoApisHandler; import com.mogo.module.media.MediaConstants; import com.mogo.module.media.constants.MusicConstant; import com.mogo.module.media.model.MediaInfoData; import com.mogo.module.media.view.IMusicView; import com.mogo.service.IMogoServiceApis; -import com.mogo.service.MogoServicePaths; import com.mogo.service.statusmanager.IMogoStatusChangedListener; import com.mogo.service.statusmanager.StatusDescriptor; import com.mogo.utils.logger.Logger; @@ -77,8 +73,7 @@ public class WeCarFlowPresenter extends BaseMediaPresenter { this.context = context; currentMedia = new MediaInfoData(); - serviceApis = - (IMogoServiceApis) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(context); + serviceApis = MogoApisHandler.getInstance().getApis(); serviceApis.getStatusManagerApi().registerStatusChangedListener(MediaConstants.MODULE_TYPE, StatusDescriptor.MAIN_PAGE_RESUME, new IMogoStatusChangedListener() { @Override diff --git a/modules/mogo-module-monitor/src/main/java/com/zhidao/mogo/module/monitor/MogoMonitorProvider.java b/modules/mogo-module-monitor/src/main/java/com/zhidao/mogo/module/monitor/MogoMonitorProvider.java index 133fd25bd5..4f1c08f5aa 100644 --- a/modules/mogo-module-monitor/src/main/java/com/zhidao/mogo/module/monitor/MogoMonitorProvider.java +++ b/modules/mogo-module-monitor/src/main/java/com/zhidao/mogo/module/monitor/MogoMonitorProvider.java @@ -8,10 +8,9 @@ import android.os.Message; import android.widget.Toast; import com.alibaba.android.arouter.facade.annotation.Route; -import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.debug.DebugConfig; +import com.mogo.module.common.MogoApisHandler; import com.mogo.service.IMogoServiceApis; -import com.mogo.service.MogoServicePaths; import com.mogo.service.connection.IMogoOnMessageListener; import com.mogo.service.monitor.IMogoMonitorProvider; import com.mogo.utils.logger.LogLevel; @@ -49,8 +48,7 @@ public class MogoMonitorProvider implements IMogoMonitorProvider, @Override public void init(Context context) { this.context = context; - IMogoServiceApis apis = - (IMogoServiceApis) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(context); + IMogoServiceApis apis = MogoApisHandler.getInstance().getApis(); apis.getSocketManagerApi(context).registerOnMessageListener(MogoMonitorConst.LOG_PUSH_TYPE, this); startRemoteCtrl(); } diff --git a/modules/mogo-module-push/src/main/java/com/mogo/module/push/PushHistoryUiProvider.java b/modules/mogo-module-push/src/main/java/com/mogo/module/push/PushHistoryUiProvider.java index dd389a6bdb..b2f7ac35cd 100644 --- a/modules/mogo-module-push/src/main/java/com/mogo/module/push/PushHistoryUiProvider.java +++ b/modules/mogo-module-push/src/main/java/com/mogo/module/push/PushHistoryUiProvider.java @@ -26,7 +26,7 @@ class PushHistoryUiProvider implements IFragmentProvider { Fragment fragment = new MessageHistoryFragment(); activity.getSupportFragmentManager() .beginTransaction() - .add( containerId, fragment, PushUIConstants.Push_MESSAGE_ACTIVITY_PATH ) + .replace( containerId, fragment, PushUIConstants.Push_MESSAGE_ACTIVITY_PATH ) .show( fragment ) .commitNowAllowingStateLoss(); return fragment; diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchApisHolder.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchApisHolder.java index 1062a25fe7..6584886e78 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchApisHolder.java +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchApisHolder.java @@ -6,6 +6,7 @@ import com.mogo.map.location.IMogoLocationClient; import com.mogo.map.marker.IMogoMarkerManager; import com.mogo.map.navi.IMogoNavi; import com.mogo.map.uicontroller.IMogoMapUIController; +import com.mogo.module.common.MogoApisHandler; import com.mogo.module.gps.simulator.IMogoGpsSimulatorManager; import com.mogo.module.navi.cp.PersonalInfoManagerImpl; import com.mogo.service.IMogoServiceApis; @@ -34,15 +35,9 @@ public class SearchApisHolder { private static PersonalInfoManagerImpl mPersonalInfoManager; - static { - Logger.d( TAG, "static block init." ); - sApis = ARouter.getInstance().navigation( IMogoServiceApis.class ); - sGpsSimulatorManager = ARouter.getInstance().navigation( IMogoGpsSimulatorManager.class ); - } - public static IMogoServiceApis getApis() { if ( sApis == null ) { - sApis = ARouter.getInstance().navigation( IMogoServiceApis.class ); + sApis = MogoApisHandler.getInstance().getApis(); } return sApis; } diff --git a/modules/mogo-module-service/build.gradle b/modules/mogo-module-service/build.gradle index 01bf8f3eaa..ed661cc3b0 100644 --- a/modules/mogo-module-service/build.gradle +++ b/modules/mogo-module-service/build.gradle @@ -35,6 +35,10 @@ android { targetCompatibility 1.8 } + lintOptions { + abortOnError false + } + } dependencies { @@ -47,6 +51,7 @@ dependencies { implementation rootProject.ext.dependencies.rxjava implementation rootProject.ext.dependencies.rxandroid implementation rootProject.ext.dependencies.carcallprovider + implementation rootProject.ext.dependencies.androidxrecyclerview if (Boolean.valueOf(RELEASE)) { api rootProject.ext.dependencies.mogomap diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java index caaf67dd12..0e34398d47 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java @@ -9,12 +9,12 @@ import com.mogo.map.marker.IMogoMarkerManager; import com.mogo.map.navi.IMogoNavi; import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.module.carchattingprovider.ICarsChattingProvider; +import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.entity.MarkerResponse; import com.mogo.module.common.entity.MarkerShowEntity; import com.mogo.module.gps.simulator.IMogoGpsSimulatorManager; import com.mogo.module.service.marker.MapMarkerManager; import com.mogo.service.IMogoServiceApis; -import com.mogo.service.MogoServicePaths; import com.mogo.service.adas.IMogoADASController; import com.mogo.service.analytics.IMogoAnalytics; import com.mogo.service.cardmanager.IMogoCardManager; @@ -69,7 +69,7 @@ public class MarkerServiceHandler { return; } - sApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( context ); + sApis = MogoApisHandler.getInstance().getApis(); sMapService = sApis.getMapServiceApi(); sImageloader = sApis.getImageLoaderApi(); sMogoStatusManager = sApis.getStatusManagerApi(); 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 37d8c41c8d..27ab6142e5 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 @@ -15,6 +15,9 @@ import android.view.MotionEvent; import androidx.annotation.NonNull; import com.mogo.commons.debug.DebugConfig; +import com.mogo.commons.network.ParamsProvider; +import com.mogo.commons.network.SubscribeImpl; +import com.mogo.commons.storage.SpStorage; import com.mogo.commons.voice.AIAssist; import com.mogo.commons.voice.IMogoVoiceCmdCallBack; import com.mogo.map.MogoLatLng; @@ -38,6 +41,9 @@ import com.mogo.module.service.launchercard.LauncherCardRefresher; import com.mogo.module.service.marker.MapMarkerManager; import com.mogo.module.service.network.RefreshCallback; import com.mogo.module.service.network.RefreshModel; +import com.mogo.module.service.network.bean.HomeCompanyDistanceForPushData; +import com.mogo.module.service.network.bean.HomeCompanyDistanceForPushResponse; +import com.mogo.module.service.onlinecar.panel.NavigationTargetInfo; import com.mogo.module.service.receiver.MogoReceiver; import com.mogo.module.service.refresh.AutoRefreshStrategy; import com.mogo.module.service.refresh.CustomRefreshStrategy; @@ -60,10 +66,16 @@ import com.mogo.service.statusmanager.StatusDescriptor; import com.mogo.utils.UiThreadHandler; import com.mogo.utils.WorkThreadHandler; import com.mogo.utils.logger.Logger; +import com.mogo.utils.network.RequestOptions; +import com.mogo.utils.network.utils.GsonUtil; import org.json.JSONObject; import java.util.List; +import java.util.Map; + +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.schedulers.Schedulers; /** * @author congtaowang @@ -243,7 +255,7 @@ public class MogoServices implements IMogoMapListener, /** * 自动刷新回调 */ - private RefreshCallback mAutoRefreshCallback = new RefreshCallback() { + private RefreshCallback mAutoRefreshCallback = new RefreshCallback< MarkerResponse >() { @Override public void onSuccess( MarkerResponse o ) { MapMarkerManager.getInstance().onSyncMarkerResponse( o ); @@ -390,6 +402,7 @@ public class MogoServices implements IMogoMapListener, mIntentManager.registerIntentListener( MogoReceiver.ACTION_AUTO_NAVI_RECEIVER, this ); mIntentManager.registerIntentListener( MogoReceiver.ACTION_AUTO_NAVI_SEND, this ); mIntentManager.registerIntentListener( MogoReceiver.ACTION_MOGO, this ); + mIntentManager.registerIntentListener( ServiceConst.COMMAND_ONLINE_CAR_PANEL, this ); mADASController = MarkerServiceHandler.getADASController(); mLauncher = MarkerServiceHandler.getLauncher(); @@ -484,7 +497,7 @@ public class MogoServices implements IMogoMapListener, filter.addAction( MogoReceiver.ACTION_AUTO_NAVI_RECEIVER ); filter.addAction( MogoReceiver.ACTION_AUTO_NAVI_SEND ); filter.addAction( MogoReceiver.ACTION_MOGO ); - filter.addAction(MogoReceiver.ACTION_TXZ_BLOCK_SEARCH); + filter.addAction( MogoReceiver.ACTION_TXZ_BLOCK_SEARCH ); try { context.getApplicationContext().registerReceiver( mAIAssistReceiver, filter ); Logger.i( TAG, "register voice receiver." ); @@ -842,6 +855,7 @@ public class MogoServices implements IMogoMapListener, @Override public void onIntentReceived( String command, Intent intent ) { + if ( ServiceConst.COMMAND_NEXT.equals( command ) ) { onActionDone( MogoAction.Next ); } else if ( ServiceConst.COMMAND_PREVIOUS.equals( command ) ) { @@ -925,4 +939,48 @@ public class MogoServices implements IMogoMapListener, AIAssist.getInstance( mContext ).registerUnWakeupCommand( ServiceConst.CMD_BACK, ServiceConst.CMD_BACK_WORDS, this ); } } + + @Override + public void onStartNavi() { + String json = SpStorage.getNavigationTarget(); + if ( !TextUtils.isEmpty( json ) ) { + try { + NavigationTargetInfo info = GsonUtil.objectFromJson( json, NavigationTargetInfo.class ); + + Logger.d( TAG, "info = %s", info ); + + HomeCompanyDistanceForPushData data = new HomeCompanyDistanceForPushData(); + data.lat = Double.valueOf( info.getToPoiLatitude() ); + data.lon = Double.valueOf( info.getToPoiLongitude() ); + + final Map< String, Object > query = new ParamsProvider.Builder( mContext ).build(); + query.put( "data", GsonUtil.jsonFromObject( data ) ); + mRefreshModel.getRefreshApiService().calculationNotHomeCompanyDistanceForPush( query ) + .subscribeOn( Schedulers.io() ) + .observeOn( AndroidSchedulers.mainThread() ) + .subscribe( new SubscribeImpl< HomeCompanyDistanceForPushResponse >( RequestOptions.create( mContext ) ) { + @Override + public void onSuccess( HomeCompanyDistanceForPushResponse o ) { + super.onSuccess( o ); + if ( o != null && o.result != null ) { + Logger.d( TAG, "calculationNotHomeCompanyDistanceForPush result %s", o.result.pushFlag ); + } + } + + @Override + public void onError( Throwable e ) { + super.onError( e ); + } + + @Override + public void onError( String message, int code ) { + super.onError( message, code ); + } + } ); + } catch ( Exception e ) { + Logger.e( TAG, e, "onStartNavi" ); + } + + } + } } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java index b07aad4f99..8fccd82812 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java @@ -108,7 +108,6 @@ public class ServiceConst { public static final int MSG_REQUEST_DATA = 0x201; /** - * * 锁车消息 */ public static final int MSG_LOCK_CAR = 0x202; @@ -159,7 +158,7 @@ public class ServiceConst { }; public static final String CMD_BACK = "back"; - public static final String[] CMD_BACK_WORDS = new String[]{"关闭", "返回"}; + public static final String[] CMD_BACK_WORDS = new String[]{"关闭", "返回"}; /** @@ -203,4 +202,10 @@ public class ServiceConst { public static final int ONLINE_SEARCH_LIMIT = 20; public static final int ONLINE_SEARCH_RADIUS = 2_000; + + /** + * 查找目的地车友 + */ + public static final String COMMAND_ONLINE_CAR_PANEL = "com.zhidao.search.riders"; + } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/IntentHandlerFactory.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/IntentHandlerFactory.java index 1f9939807f..0124379b5d 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/IntentHandlerFactory.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/IntentHandlerFactory.java @@ -38,6 +38,7 @@ public class IntentHandlerFactory { mHandlers.put( MogoReceiver.ACTION_VOICE_READY, new AIAssistIntentHandler() ); mHandlers.put( ServiceConst.COMMAND_BACK, WholeVoiceCommandIntentHandler.getInstance() ); mHandlers.put( MogoReceiver.ACTION_MOGO, new MogoControllerIntentHandler() ); + mHandlers.put( ServiceConst.COMMAND_ONLINE_CAR_PANEL, new OnlineCarPanelIntentHandler() ); } private static final class InstanceHolder { diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/OnlineCarPanelIntentHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/OnlineCarPanelIntentHandler.java new file mode 100644 index 0000000000..e48297bf71 --- /dev/null +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/OnlineCarPanelIntentHandler.java @@ -0,0 +1,29 @@ +package com.mogo.module.service.intent; + +import android.content.Context; +import android.content.Intent; +import android.net.Uri; + +import com.mogo.module.service.MarkerServiceHandler; + +public +/** + * @author congtaowang + * @since 2020/9/21 + * + * 描述 + */ +class OnlineCarPanelIntentHandler implements IntentHandler { + + @Override + public void handle( Context context, Intent intent ) { + if ( MarkerServiceHandler.getMogoStatusManager().isMainPageOnResume() ) { + MarkerServiceHandler.getApis().getOnlineCarPanelApi().showPanel(); + } else { + Intent start = new Intent( Intent.ACTION_VIEW ); + start.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK ); + start.setData( Uri.parse( "mogo://launcher/main/switch2?type=showOnlineCarPanel" ) ); + context.startActivity( start ); + } + } +} diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/launchercard/LauncherCardRefresher.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/launchercard/LauncherCardRefresher.java index 73fe2a4801..17a0c4a293 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/launchercard/LauncherCardRefresher.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/launchercard/LauncherCardRefresher.java @@ -243,7 +243,7 @@ class LauncherCardRefresher { } private void handleRefreshExplorerWayOrOnlineCarData( MogoLatLng latLng, LauncherCardRefreshType type ) { - mRefreshModel.refreshDataSync( latLng, + mRefreshModel.refreshLauncherCardDataSync( latLng, mRefreshStrategy.getRadius(), mRefreshStrategy.getLimit(), new RefreshCallback< MarkerResponse >() { diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshApiService.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshApiService.java index 8f58de2d68..3076af4be6 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshApiService.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshApiService.java @@ -3,6 +3,7 @@ package com.mogo.module.service.network; import com.mogo.commons.data.BaseData; import com.mogo.module.common.entity.MarkerResponse; import com.mogo.module.service.network.bean.DemoUserInfoEntity; +import com.mogo.module.service.network.bean.HomeCompanyDistanceForPushResponse; import java.util.Map; @@ -37,4 +38,8 @@ public interface RefreshApiService { */ @GET( "/yycp-launcherSnapshot/mock/getMockUserInfos" ) Observable< DemoUserInfoEntity > getMockUsers(); + + @FormUrlEncoded + @POST("/yycp-travel-condition/trajectoryPrediction/calculationNotHomeCompanyDistanceForPush") + Observable< HomeCompanyDistanceForPushResponse > calculationNotHomeCompanyDistanceForPush( @FieldMap Map< String, Object > parameters); } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java index c368ec6956..16fc3e91a2 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java @@ -65,51 +65,6 @@ public class RefreshModel { } } - public void refreshData( MogoLatLng latLng, int radius, int limit, final RefreshCallback callback ) { - if ( mRefreshApiService != null ) { - final Map< String, Object > query = new ParamsProvider.Builder( mContext ).build(); - final RefreshBody refreshBody = new RefreshBody(); - refreshBody.limit = limit; - refreshBody.location = new RefreshBody.LatLon( latLng.lat, latLng.lng ); - refreshBody.radius = radius; - refreshBody.dataType.add( ServiceConst.CARD_TYPE_ROAD_CONDITION ); - - String data = GsonUtil.jsonFromObject( refreshBody ); - query.put( "data", data ); - Logger.d( TAG, data ); - - - mRefreshApiService.refreshData( query ) - .subscribeOn( Schedulers.io() ) - .observeOn( AndroidSchedulers.mainThread() ) - .subscribe( new SubscribeImpl< BaseData >( RequestOptions.create( mContext ) ) { - @Override - public void onSuccess( BaseData o ) { - super.onSuccess( o ); - if ( callback != null ) { - callback.onSuccess( o ); - } - } - - @Override - public void onError( Throwable e ) { - super.onError( e ); - if ( callback != null ) { - callback.onFail(); - } - } - - @Override - public void onError( String message, int code ) { - super.onError( message, code ); - if ( callback != null ) { - callback.onFail(); - } - } - } ); - } - } - public void refreshExplorerWayData( MogoLatLng latLng, int radius, int limit, final RefreshCallback callback ) { if ( mRefreshApiService != null ) { final Map< String, Object > query = new ParamsProvider.Builder( mContext ).build(); @@ -155,7 +110,7 @@ public class RefreshModel { } } - public void refreshDataSync( MogoLatLng latLng, int radius, int limit, final RefreshCallback callback ) { + public void refreshLauncherCardDataSync( MogoLatLng latLng, int radius, int limit, final RefreshCallback callback ) { if ( mRefreshApiService != null ) { final Map< String, Object > query = new ParamsProvider.Builder( mContext ).build(); final RefreshBody refreshBody = new RefreshBody(); diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/bean/HomeCompanyDistanceForPushData.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/bean/HomeCompanyDistanceForPushData.java new file mode 100644 index 0000000000..574627da0b --- /dev/null +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/bean/HomeCompanyDistanceForPushData.java @@ -0,0 +1,14 @@ +package com.mogo.module.service.network.bean; + +public +/** + * @author congtaowang + * @since 2020/9/22 + * + * 描述 + */ +class HomeCompanyDistanceForPushData { + + public double lon; + public double lat; +} diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/bean/HomeCompanyDistanceForPushResponse.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/bean/HomeCompanyDistanceForPushResponse.java new file mode 100644 index 0000000000..c825712ef7 --- /dev/null +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/bean/HomeCompanyDistanceForPushResponse.java @@ -0,0 +1,19 @@ +package com.mogo.module.service.network.bean; + +import com.mogo.commons.data.BaseData; + +public +/** + * @author congtaowang + * @since 2020/9/22 + * + * 描述 + */ +class HomeCompanyDistanceForPushResponse extends BaseData { + + public HomeCompanyDistanceForPushResult result; + + public static class HomeCompanyDistanceForPushResult { + public boolean pushFlag; + } +} diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/ContainerHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/ContainerHandler.java new file mode 100644 index 0000000000..b09def3289 --- /dev/null +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/ContainerHandler.java @@ -0,0 +1,15 @@ +package com.mogo.module.service.onlinecar.panel; + +import androidx.fragment.app.FragmentActivity; + +/** + * @author congtaowang + * @since 2020/9/21 + *

+ * 描述 + */ +class ContainerHandler { + + public static int sContainerId = 0; + public static FragmentActivity sAttachContext; +} diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/IOnlineCarPanelView.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/IOnlineCarPanelView.java new file mode 100644 index 0000000000..749ef4d10a --- /dev/null +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/IOnlineCarPanelView.java @@ -0,0 +1,23 @@ +package com.mogo.module.service.onlinecar.panel; + +import com.mogo.commons.mvp.IView; +import com.mogo.module.common.entity.MarkerOnlineCar; + +import java.util.List; + +/** + * @author congtaowang + * @since 2020/9/21 + *

+ * 描述 + */ +interface IOnlineCarPanelView extends IView { + + void renderOnlineCarList( List< MarkerOnlineCar > onlineCars ); + + void renderEmptyUi( OnlineCarStrategy strategy ); + + void renderNoNavigationInfoUi(); + + void renderErrorUi(); +} diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/NavigationTargetInfo.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/NavigationTargetInfo.java new file mode 100644 index 0000000000..a8c5635cd9 --- /dev/null +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/NavigationTargetInfo.java @@ -0,0 +1,85 @@ +package com.mogo.module.service.onlinecar.panel; + +public +/** + * @author congtaowang + * @since 2020/9/21 + *

+ * 描述 + */ +class NavigationTargetInfo { + + + /** + * FromPoiName : 东城区小黄庄北街2号 + * FromPoiAddr : 在中国银行(北京安贞桥支行)附近 + * FromPoiLongitude : 116.41082763671875 + * FromPoiLatitude : 39.96831130981445 + * ToPoiName : 北京市北京市北小营镇宏大工业开发中心A座7号 + * ToPoiLongitude : 116.74490356445312 + * ToPoiLatitude : 40.19820785522461 + */ + private String FromPoiName; + private String FromPoiAddr; + private String FromPoiLongitude; + private String FromPoiLatitude; + private String ToPoiName; + private String ToPoiLongitude; + private String ToPoiLatitude; + + public String getFromPoiName() { + return FromPoiName; + } + + public void setFromPoiName( String FromPoiName ) { + this.FromPoiName = FromPoiName; + } + + public String getFromPoiAddr() { + return FromPoiAddr; + } + + public void setFromPoiAddr( String FromPoiAddr ) { + this.FromPoiAddr = FromPoiAddr; + } + + public String getFromPoiLongitude() { + return FromPoiLongitude; + } + + public void setFromPoiLongitude( String FromPoiLongitude ) { + this.FromPoiLongitude = FromPoiLongitude; + } + + public String getFromPoiLatitude() { + return FromPoiLatitude; + } + + public void setFromPoiLatitude( String FromPoiLatitude ) { + this.FromPoiLatitude = FromPoiLatitude; + } + + public String getToPoiName() { + return ToPoiName; + } + + public void setToPoiName( String ToPoiName ) { + this.ToPoiName = ToPoiName; + } + + public String getToPoiLongitude() { + return ToPoiLongitude; + } + + public void setToPoiLongitude( String ToPoiLongitude ) { + this.ToPoiLongitude = ToPoiLongitude; + } + + public String getToPoiLatitude() { + return ToPoiLatitude; + } + + public void setToPoiLatitude( String ToPoiLatitude ) { + this.ToPoiLatitude = ToPoiLatitude; + } +} diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarListPanelProvider.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarListPanelProvider.java new file mode 100644 index 0000000000..ec0a404644 --- /dev/null +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarListPanelProvider.java @@ -0,0 +1,77 @@ +package com.mogo.module.service.onlinecar.panel; + +import android.content.Context; + +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; + +import com.alibaba.android.arouter.facade.annotation.Route; +import com.mogo.service.MogoServicePaths; +import com.mogo.service.strategy.IMogoOnlineCarListPanelProvider; +import com.mogo.utils.logger.Logger; + +public +/** + * @author congtaowang + * @since 2020/9/21 + * + * 描述 + */ +@Route( path = MogoServicePaths.PATH_ONLINE_CAR_PANEL ) +class OnlineCarListPanelProvider implements IMogoOnlineCarListPanelProvider { + + private static final String TAG = "OnlineCarListPanelProvider"; + + @Override + public void initContainer( int containerId, FragmentActivity activity ) { + ContainerHandler.sContainerId = containerId; + ContainerHandler.sAttachContext = activity; + } + + @Override + public void showPanel() { + if ( isFragmentExist( ContainerHandler.sAttachContext ) ) { + return; + } + Fragment fragment = new OnlineCarPanelFragment(); + ContainerHandler.sAttachContext + .getSupportFragmentManager() + .beginTransaction() + .replace( ContainerHandler.sContainerId, fragment, TAG ) + .commitNowAllowingStateLoss(); + } + + private boolean isFragmentExist( Context context ) { + if ( !( context instanceof FragmentActivity ) ) { + Logger.w( TAG, "context is not a instance of FragmentActivity" ); + return false; + } + Fragment fragment = null; + return ( fragment = ( ( FragmentActivity ) context ) + .getSupportFragmentManager() + .findFragmentByTag( TAG ) ) != null && fragment.isAdded(); + } + + @Override + public void hidePanel() { + Fragment fragment = ContainerHandler.sAttachContext.getSupportFragmentManager().findFragmentByTag( TAG ); + if ( fragment != null ) { + ContainerHandler.sAttachContext + .getSupportFragmentManager() + .beginTransaction() + .remove( fragment ) + .commitNowAllowingStateLoss(); + } + } + + @Override + public void clear() { + ContainerHandler.sContainerId = 0; + ContainerHandler.sAttachContext = null; + } + + @Override + public void init( Context context ) { + + } +} diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelAdapter.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelAdapter.java new file mode 100644 index 0000000000..c003f218b7 --- /dev/null +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelAdapter.java @@ -0,0 +1,109 @@ +package com.mogo.module.service.onlinecar.panel; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.bumptech.glide.request.RequestOptions; +import com.mogo.map.location.MogoLocation; +import com.mogo.module.common.MogoApisHandler; +import com.mogo.module.common.entity.MarkerLocation; +import com.mogo.module.common.entity.MarkerOnlineCar; +import com.mogo.module.common.glide.SkinAbleBitmapTarget; +import com.mogo.module.service.MarkerServiceHandler; +import com.mogo.module.service.R; +import com.mogo.module.service.Utils; +import com.mogo.utils.ResourcesHelper; +import com.mogo.utils.WindowUtils; +import com.mogo.utils.glide.GlideApp; + +import java.util.List; + +/** + * @author congtaowang + * @since 2020/9/21 + *

+ * 描述 + */ +class OnlineCarPanelAdapter extends RecyclerView.Adapter< OnlineCarPanelAdapter.VH > { + + private List< MarkerOnlineCar > mDatums; + + public OnlineCarPanelAdapter( List< MarkerOnlineCar > mDatums ) { + this.mDatums = mDatums; + } + + public void setDatums( List< MarkerOnlineCar > mDatums ) { + this.mDatums = mDatums; + notifyDataSetChanged(); + } + + @NonNull + @Override + public OnlineCarPanelAdapter.VH onCreateViewHolder( @NonNull ViewGroup parent, int viewType ) { + return new VH( LayoutInflater.from( parent.getContext() ).inflate( R.layout.module_services_online_car_panel_item, null ) ); + } + + @Override + public void onBindViewHolder( @NonNull OnlineCarPanelAdapter.VH holder, int position ) { + holder.bind( mDatums.get( position ) ); + } + + @Override + public int getItemCount() { + return mDatums == null ? 0 : mDatums.size(); + } + + public static class VH extends RecyclerView.ViewHolder { + + private ImageView avatar; + private TextView nickname; + private TextView distance; + private TextView detail; + + public VH( @NonNull View itemView ) { + super( itemView ); + RecyclerView.LayoutParams params = new RecyclerView.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT ); + params.bottomMargin = ResourcesHelper.getDimensionPixelSize( itemView.getContext(), R.dimen.module_services_panel_item_marginBottom ); + itemView.setLayoutParams( params ); + avatar = itemView.findViewById( R.id.module_services_id_panel_item_avatar ); + nickname = itemView.findViewById( R.id.module_services_id_panel_item_nickname ); + distance = itemView.findViewById( R.id.module_services_id_panel_item_distance ); + detail = itemView.findViewById( R.id.module_services_id_panel_item_detail ); + } + + public void bind( MarkerOnlineCar car ) { + RequestOptions options = new RequestOptions().circleCrop().placeholder( R.drawable.module_common_default_user_head ).error( R.drawable.module_common_default_user_head ); + GlideApp.with( itemView.getContext() ).asBitmap().apply( options ).load( car.getUserInfo().getUserHead() ).into( new SkinAbleBitmapTarget( avatar, options ) ); + nickname.setText( car.getUserInfo().getUserName() ); + String content = getDistanceStr( car.getLocation() ); + distance.setText( content ); + detail.setOnClickListener( view -> { + MogoApisHandler.getInstance().getApis().getAnalyticsApi().track( "Mogoer_List_click", null ); + } ); + } + + private String getDistanceStr( MarkerLocation location ) { + MogoLocation mogoLocation = MarkerServiceHandler.getApis().getMapServiceApi().getSingletonLocationClient( itemView.getContext() ).getLastKnowLocation(); + if ( location == null ) { + return ""; + } + if ( mogoLocation == null ) { + return ""; + } + float distance = Utils.calculateLineDistance( location.getLon(), location.getLat(), mogoLocation.getLongitude(), mogoLocation.getLatitude() ); + if ( distance >= 1000 ) { + return String.format( "%.1fKM", distance / 1000 ); + } else { + return String.format( "%.1fM", distance ); + } + } + } + + +} diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelFragment.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelFragment.java new file mode 100644 index 0000000000..c425a3e37d --- /dev/null +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelFragment.java @@ -0,0 +1,94 @@ +package com.mogo.module.service.onlinecar.panel; + +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.mogo.commons.mvp.MvpFragment; +import com.mogo.commons.voice.AIAssist; +import com.mogo.module.common.MogoApisHandler; +import com.mogo.module.common.entity.MarkerOnlineCar; +import com.mogo.module.service.MarkerServiceHandler; +import com.mogo.module.service.R; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author congtaowang + * @since 2020/9/21 + *

+ * 描述 + */ +public class OnlineCarPanelFragment extends MvpFragment< IOnlineCarPanelView, OnlineCarPanelPresenter > implements IOnlineCarPanelView { + + private RecyclerView mList; + private View mRefreshPanel; + private View mErrorPanel; + + private OnlineCarPanelAdapter mOnlineCarPanelAdapter; + + @Override + protected int getLayoutId() { + return R.layout.module_services_fragment_online_car_panel; + } + + @Override + protected void initViews() { + findViewById( R.id.module_services_id_close ).setOnClickListener( view -> { + MarkerServiceHandler.getApis().getOnlineCarPanelApi().hidePanel(); + } ); + mList = findViewById( R.id.module_services_id_recycler_view ); + mRefreshPanel = findViewById( R.id.module_services_id_load_strategy_container ); + mErrorPanel = findViewById( R.id.module_services_id_error_container ); + + mList.setLayoutManager( new LinearLayoutManager( getContext(), LinearLayoutManager.VERTICAL, false ) ); + } + + @NonNull + @Override + protected OnlineCarPanelPresenter createPresenter() { + return new OnlineCarPanelPresenter( this ); + } + + @Override + public void renderOnlineCarList( List< MarkerOnlineCar > onlineCars ) { + mRefreshPanel.setVisibility( View.GONE ); + mErrorPanel.setVisibility( View.GONE ); + mList.setVisibility( View.VISIBLE ); + if ( mOnlineCarPanelAdapter == null ) { + mOnlineCarPanelAdapter = new OnlineCarPanelAdapter( onlineCars ); + mList.setAdapter( mOnlineCarPanelAdapter ); + } else { + mOnlineCarPanelAdapter.setDatums( onlineCars ); + } + AIAssist.getInstance( getContext() ).speakTTSVoice( String.format( "为您找到%s个车友", onlineCars.size() ) ); + Map< String, Object > properties = new HashMap<>(); + properties.put( "number", onlineCars.size() ); + MogoApisHandler.getInstance().getApis().getAnalyticsApi().track( "Mogoer_List_number", properties ); + } + + @Override + public void renderEmptyUi( OnlineCarStrategy strategy ) { + mErrorPanel.setVisibility( View.GONE ); + mList.setVisibility( View.GONE ); + mRefreshPanel.setVisibility( View.VISIBLE ); + } + + @Override + public void renderNoNavigationInfoUi() { + mList.setVisibility( View.GONE ); + mRefreshPanel.setVisibility( View.GONE ); + mErrorPanel.setVisibility( View.VISIBLE ); + } + + @Override + public void renderErrorUi() { + mList.setVisibility( View.GONE ); + mRefreshPanel.setVisibility( View.GONE ); + mErrorPanel.setVisibility( View.VISIBLE ); + } +} diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelPresenter.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelPresenter.java new file mode 100644 index 0000000000..b51e1943f8 --- /dev/null +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelPresenter.java @@ -0,0 +1,83 @@ +package com.mogo.module.service.onlinecar.panel; + +import android.text.TextUtils; + +import androidx.annotation.NonNull; +import androidx.lifecycle.LifecycleOwner; + +import com.mogo.commons.mvp.Presenter; +import com.mogo.commons.storage.SpStorage; +import com.mogo.map.MogoLatLng; +import com.mogo.module.common.entity.MarkerResponse; +import com.mogo.module.service.network.RefreshCallback; +import com.mogo.module.service.network.RefreshModel; +import com.mogo.utils.network.utils.GsonUtil; + +/** + * @author congtaowang + * @since 2020/9/21 + *

+ * 描述 + */ +class OnlineCarPanelPresenter extends Presenter< IOnlineCarPanelView > implements RefreshCallback< MarkerResponse > { + + public static final int LIMIT = 20; + private RefreshModel mRefreshModel; + private OnlineCarStrategy mStrategy; + private NavigationTargetInfo mNavigationTargetInfo; + + public OnlineCarPanelPresenter( IOnlineCarPanelView view ) { + super( view ); + mRefreshModel = new RefreshModel( getContext() ); + mStrategy = OnlineCarStrategy.Default; + } + + @Override + public void onCreate( @NonNull LifecycleOwner owner ) { + super.onCreate( owner ); + String json = SpStorage.getNavigationTarget(); + if ( TextUtils.isEmpty( json ) ) { + mView.renderNoNavigationInfoUi(); + return; + } + mNavigationTargetInfo = GsonUtil.objectFromJson( json, NavigationTargetInfo.class ); + loadOnlineCar(); + } + + public void loadOnlineCar() { + if ( mNavigationTargetInfo == null ) { + return; + } + try { + double toLat = Double.valueOf( mNavigationTargetInfo.getToPoiLatitude() ); + double toLon = Double.valueOf( mNavigationTargetInfo.getToPoiLongitude() ); + mRefreshModel.queryOnLineCarWithRoute( new MogoLatLng( toLat, toLon ), + false, + false, + mStrategy.getRadius(), + LIMIT, + this + ); + } catch ( Exception e ) { + mView.renderNoNavigationInfoUi(); + } + } + + @Override + public void onSuccess( MarkerResponse o ) { + if ( o == null || o.getResult() == null ) { + mView.renderErrorUi(); + } else { + if ( o.getResult().getOnlineCar() == null || o.getResult().getOnlineCar().isEmpty() ) { + mView.renderEmptyUi( mStrategy ); + } else { + mView.renderOnlineCarList( o.getResult().getOnlineCar() ); + } + } + } + + @Override + public void onFail() { + mView.renderErrorUi(); + } +} diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarStrategy.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarStrategy.java new file mode 100644 index 0000000000..b80c4062aa --- /dev/null +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarStrategy.java @@ -0,0 +1,27 @@ +package com.mogo.module.service.onlinecar.panel; + +/** + * @author congtaowang + * @since 2020/9/21 + *

+ * 描述 + */ +enum OnlineCarStrategy { + + Strategy3( 40_000, null ), + Strategy2( 20_000, Strategy3 ), + Default( 10_000, Strategy2 ), + ; + + private int radius; + private OnlineCarStrategy next; + + OnlineCarStrategy( int radius, OnlineCarStrategy next ) { + this.radius = radius; + this.next = next; + } + + public int getRadius() { + return radius; + } +} diff --git a/modules/mogo-module-service/src/main/res/drawable-ldpi/module_services_close.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/module_services_close.png new file mode 100755 index 0000000000000000000000000000000000000000..c1381dc44c160b4fea26e24f9a9401e435a8ae61 GIT binary patch literal 434 zcmeAS@N?(olHy`uVBq!ia0vp^Iv~u!3?wz9Rv7~+zW|>QS0MfW|NogYXKvoSdDW^_ z>%d^^)~!2s?AW+*wya;je%rQfKoOv_GiT1+x^?UN_3Llmy!rR<-`~G~ zfg}(B&3W7Btq(L&vLwhan1PX%i$_>YLQ+ajUP)P5Mb*g8KIh@1N1u;dsjvVQ{ql5i z46!&pb?R-QW(6LXk9E^EqMrV*-y*g(*Ft1|IHUE;M9c^>6=Gyr(lh>De%F;@tWj0By**bag z*)2Nl&T@My?(VqQC%fBOvbc_m-8b#`hrKbODi?*kr>^o`q&h8YssHzz`%|WEVOYP= zRl8y;j@C}ATZqgPe^2a|) Y`#(zJziIr|3m6Ivp00i_>zopr07u@*r2qf` literal 0 HcmV?d00001 diff --git a/modules/mogo-module-service/src/main/res/drawable-ldpi/module_services_online_car_panel_background.9.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/module_services_online_car_panel_background.9.png new file mode 100644 index 0000000000000000000000000000000000000000..80ab4b841fa6a267a65f093ca9af66207e660912 GIT binary patch literal 583 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VB+(1aSW-r_4clP&>;tzqlMbJ zz7lS$6}*nVFx)Y%{J`TIm26S|3xcAPu65SCNt|fo75uSh=Jn0*XTRB`dGGy`CAPYJ zXI#MGzyITpKTOWIPqxut_Pp}rjHgG}e2ISf-L~|{+szxMZCJKp+lFKH;x+s0OJ}Aw zx34j;xcPX)Ys)noW3nTPpC9aZTfF(x$sPLjH~u_mj{jz}#x~``-QfA+{_YZg;_cu5 z$vvUB?)|2?k2-(W=dL`Xw0q~>yOZ_*OcjW#7d}*%emio%tm{0^!udN_GlyTumNCj= zbtrvtu657P`+-NoLgWuT|6lX)TJg-#AclwE%0;HHX_>xtmiaT+vwQ0;1asa*8q85) z3Giu^s+I76&2+r-#1l!v!({PpW>d%pG8ua0aMIVHQ9W%g}XQuYax+0*Mb!$evnx8r=#58n14CiAc4 z_FO%`ZS&C&^WM5Gm434AtHO4Z&98cm-bfsHFTFW&9whd5Uw(9Aj*EQN(I*q?!n7ZO OJm~4_=d#Wzp$Pz%iS)Ao literal 0 HcmV?d00001 diff --git a/modules/mogo-module-service/src/main/res/drawable-ldpi/module_services_online_car_panel_empty_icon.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/module_services_online_car_panel_empty_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0befdbd823dff0add01e2eaa0e05df871ed751dd GIT binary patch literal 53203 zcmV(*K;FNJP)Pyg07*naRCodGy$8HqRhd4#PCvKj=BC_qAR!5L`lnpokO^1SAPHq!N;lkX~=TMhIXL6Avp>yV(x8GW+0J7p4&s6w;A5SL6%X81&cRjs_bB85#=A3!Ah7k@# zBpkME*@K59I3S_9=U#KIS234(C?}^R5sbQ$@&> z%~ezn2m#(R#ZsaD{XKQJWlJS7d_0SRH&kUYPCgW6BJWPayE1q{|n2>KHQCSFq zC&Y{?tsA_dXT+IonbC_rE6n_iui98?{g-7a&qD zl}*IvYf&8~ArVH#VHYnQgGBjC%tYIIdO8;dM2tx#YFZ+(NP1M*$O$J*zGTC?=S^LGt^5@V9-ehjWz?in>9@S&nh#z=!J@_!)v91tq4`|4Er&lE zfCNb-oldo;({-)2_!E7Q3%Fb^Zx%fIp!v$bf6~;|)tdbsz4F}Ew#Mw;w*_jv#awa4 zd(R)*(tJMQHP=PVUR0pN)NaU1*=$=Z5=|u%@n#{2A3+Zy*<9|x)z@A(Yxxpr6z`Pa zKfiUO88UpN={&gKG&Q%FVj*va4jo|@Jbn*p6!{b5&(0m|{?s~Z;>AR#40|S(Ob(TN zgeWo=t(c_Prav5bR7DWw`BPvth&}3?AYEi6EPiA|} z;%9#^!l*=qK!r#mv;zt+R0pjx3{jb$t~N@>99M$a!-o%snrh7FZv2|*=;$^#ee+AE zv8mZK4{bHMOs`3lOXkHj%ZSx?HuD*?Y{`Syr_yO;*+UZ{)vn&0`TKXho7ImQHFBtd zaAww-Z#HAcA7>JYr1?Zmhk0Si6PvP`@}l+Yp7ZNcpAbn8ZW?{1u;AMSDy*$*O{db3 zl8QyHy!STmp?6vNTsY*BdeE6x#S@;?8#;i&e-sUPn`PPprg&>TiVTi|Mw%ab<3Kr zc&z@RNG#Qk+M;dSmgoN6;pDR)AqLKyH!rq&&Hn!mY605KlM+wDl~Oqef*rZszW0EB zDxRo&5Y^pw$(y56H|%)&=`8Vt-GGD~z~sqi-5Rd`lc}Vr(DNvzXYz$&N3m4Ox%zC! zwk5BubK(fO=cGw<-iuDkn3|Kg&rI@rJH^RQ|oXBS@hkyLm0 zuJ6&W>OsxS0tL}n=IUxvAAkJuyLuRMD0fIAbLU?9kH}#sNOc5k&PHJZqA-a=ZmM{j zmoEMN*9RgrAd$1qzUKc3TrL*c)20%i5-kp0Qi|_B6an@pAQXfvn-wb_?w1Lw3Mk>& z`{9#@jiT@N!1r(bhxzHk#kTbLbziu{;s{WS(`UY1XVDU%1g^8V_TwKnUByySI*Wo0 zdCIDY5}^M!N9#cdLeB7i>hyD~dZoT3P6BNb2w1%YHL zJtv8}jS@Hl&URC#p6wIziBLuCqfsA{i{LGTvm0{tKpvZivhO(w;t}bU*5|Ul3(-C; z>`Q>EWuJmL>BR8Wy-x78ITh{s|>jK?+){Wf%~AQ(HlreN~zv;q5SqQYpZ(MzK2lybd^blqU7 zSOH2EvfsvJeuE}R5P(iaQ{0Ou2wceLj*mplBLobxDWybTAfLr30^Qws3U)%DEm@Od zFO-hIy_NvqW3y*pc?R0^nT&}nhG_zYNsW2f89Tdr21eZ?NwnE>+ zD4Sy2WDYYjR!cZtwF;ExUYTZzb+}{3T7V&oP6?Nvv6V7oHgh2`K=>{m^**@ zgF6!OSc@=JD!0eRjhnKzSS(Jdl!`qtc0F;TEToZP51=o+T4VxJc0SOy*OLI<{_nKm{WZDmQnBLyD8JAxA_Y+nuF9$VA7;FqYdhm8ioT@#*P`RJ84cY!<63vx}iw~aOKB7=_KF~^Lr|MJ&?S{7Zi`YFM0)dl29 z?VSV?L`_d`my}qovnrX8fwf}TC(Q;dw#li(hu+cL!=U4w0--MYa9_@T`qu)j;q5+fQs|LAv12Kx2LUK zsYEe|zHY-8J{ezr@}=hY|M?~J+hr?JUUsdF#TpmKqY-agpDt2AA|%E}$5rbw6GtPc$E>aNtn5F z=lyG`VvhD{qs*#aZ3xVzH@#ROBBCFSF4vqFy%mAaSR(aw1M?RoP`~Uh(^^NM=AD8$6 z%EZkzo%7iRLqEiPtk`mw&oL5^trF%~nRXyc03Z@g#AcK8Qn|Fy)zLyr62LNuQ>PdR zvu5?52F!l_ggNW1E7_O1Nb|A9QzZnD;@xKsARjC3n!hJezw#Ge(<*cY(P&!2s$ctx z&LmP|-lygLVx(3NsxGd*L1_+q)3K_53S@B%ilB^V!# z#nQ=CYLKr*NfcSWY{~sMiWfgsWyTkzN(fNFyJJaMfo9^-R7*5ciB!0X&&>y)pFbn<6MO z0l22){CI!?X+z1y3moXY?k|@yg=Xn(eCa7EL%wCGS>J_(kZEp~0j7i?3WZtBLTNun zo~Vh;LJ4zR;YDGDw7dkVh(iI2GBwiglH-=oZQp zZ9bnt!G!}rUrQ)qi4}y@83v<6Bhd)*Ct?wRAoJFXuAXbWXyb}yPd&SH*XBJ;!2zm8 zDhLFZQyN1oJy->{g21DS^>a}8-W0=BgfUf_xcZ?o9W45_>x6m9M9gYIpL%; zPMLJviKZ9fy}jM-o$Wi9u35WclZZ@dFknInsew+@;3#V%rChnBOE)%~dCvpvc#J>y zWAr9dCnT&67%-GbVx58SkP34R*@YN}TFvxYI6M$XdYU#8NvG4p8Ne_tE1r4N$x|+Q z`#U}))iL#hYzFiZlTIZti=P6o5p(?U6UKkfX#*G_s2Dq2;8-;xL`#z3kqb#hDFUP!U-9Z&*v~v5HshWe~t10CVqa$_a8zQyMXwsgb|V~?BcAJLwPifL8uPU6v8f0 zTHZxh%Dc^uP7vb7vPRpC8I$J|yG+_ZBUDOT+di=dFB=P)t=9vdX4qq4s&YJbsTS-iW5}8z^s#pmin4wU7y0Sq( z3a_;s;B0o|TmhqQ{qgPdvsm`Z=Zog4MUR;mo?ilsvh;YS8`CSyT6CO0XdXPobaiTT z!?3|v-`TNk14ie=O$l>DsEF_^Vm=N}{5e4+J%5~=HRsYXOco=0`t$JfdGmL^416j~GMVIj ztgthB+yrPJb6-{fGS6~aDi<;BHrlLOxzNOlrN3Lg=E(;ofse(#;d#<|^P0*Bd;SAc zH<Q3Ia;n_7I)`Kz=4y6B- z)8Fk{cOpz!KGad{#k%aI63MS5TKTW;;$T>5vIIlP|s$Y8#ZY}TY}hM+2qGYh)aan5hjiJU0az1fVE6)FS!2nJ`f9p`NQ z`e!li;+YQATAR+CXa4l)W9EVj-eMkj@G(jEhu{9pOgQ!g$v!)GZt9MhSa&p@+!Tu? zx1gTP5PvKZS-5rUb9c}`kUOj}F2T&17o3S@v3Ci(ws5;RS=Pjh6la&uggx}bAR}~+ zAx&P|0cae{1D)r5;o|dJ-}9yuW%BC4o;~K;-#ucswqs_w;+6A-%I_1g)Lv8um`GKG zQ4{;)wr$V;+R;4J^N55AC+4Du-x@Ol7IH+>spJss){q{A)D^Pm2tlQ~2OxMWR?0o4 ze6a^zqI4nGb!IFU--{h3FQ5wrv{m&ZYOzBvPKJ4M{#PuFOUUQcsdMX#<;u53BD}Ln zat$lvX*I5fi_<(v*?q^LJgkQG6{*5775upk8y4;J0bZf!H3@S#T2rUaOXl-C=c0c% z8D**ojAHx}S&K68;PcNv9O?rd4$J>fn>YM2<9XHc~ye=tHCcLgs`nL zLAY?ehJ>iqT$G^Es!td{+~!pQ7~tm>34$rvA7Lg_s!TttSTo4OS3R2#EfdUI(r@zx zvFzK1*2cn!@acbH6GO++vZa6c&;UFS7-R<<1IASa+RYaY5$qg5H=Wi7(;fb7&B@b0r^-ksZe z0X0!XCu`hSziQC!O@@Uaqz{bLP|V{5{`?GtXv3pD0f&v z+{8E&SG-btrBdtwC%&6hn{G&q8il@8#ccY=G-JGuS$+l!C-CqEfA$qSQ|qH~j7Fld zDPhJ$Py|>oQj}=^hPNL{p#AA5$oc2b8_YOAuk!^^K2jS&<_eW^M-OUamXU9jnjRob z7!H$=wV1BOrfh?)G>8cSQ2*Eo!=1_|p5V@9rRfVHh_qCZ1&&ain>_PeDOc{D&when zhsM{!0O4xZX~xA9^{0x1Z=*%F7rmVtPL_l%2Zp7EWMdqgi5TG6NyK6h5Objrgij53 zv3^n{s1Bo`HL*lBj{vW#39x+k9+ZRA!`aCv9x@U2r!(deqjyh5q; zYu1|rN4RhK{y3v8s8^jU^aq1$is;ibDA5LFS-BYj)a|J)mIEX zPZys>;L{FeC&oJ=NC<`dwneE?L%6JnO=OIYi9Ngu_PIuqqN@NAeI1^(HVG4n+za)#3g) z?m%T!p;YX~PBVXc(J?Bt><{)0HDmYRAbkz+rD26QYd-Md7!8*N?BKZG;R&*qszkyC zm9KiD3Cct~rmJ2`&JtzXNCX?$@&_fv)=)MUsj<6IPULX2Q%Vj3gwTsFz$kVxV=H6D zD`K4wv+~d~tf2U`yFwvU5nMsY_Z0F4*%TI$p_@JoypLgW*UloF3HaYZ!| zPiPs#+9R2Eqbj$m9Pm}azRzx1SyMg`1AG`#v*vQAkOFYW2!W&60U52>>2$m+l$;3} zjMf;dOpz&Ee?d45XMw~b zid57kaOh`ZBP_=pHkr$-rkpF4%01YyGX?v$B$D&IlBEFaz(rNCgu}?EZ!x9%jmhfnlqh!cpvqvf0UE352kOQ#gSo1s8D6T9>}7Egn2tbdOH&B%m1a?FRuL)L22n;sOl4%gZOed;RI;(abI7A;Rfu3tUwAvGkB~HuW zB$toWGD|$-b*jXR93c~AC<_pR*=PQTKXr*L(_vYT`_#`m=kiN-ZrieU*@{0cQpGDm z-wMPFURZ{)CE8I@i?BBG89~W#5|e3Em#wI2WX7G$#beRaQMI%X2D^{+EEK}UfhKDp zr)8(gSR!7VilrJk-QeQB^!1xA;mR*pfN{oDgy14jvY0T#M~pu1tj4z=7mXIyJ@(jr z3w-qC9l0_ViPe>3%r9OqwmZlif-NJiMTHP_F0XGa{_`)KYAS6ngaf?g!j~H zlPF@VcEL=VJNNB4065ItamV+6!frqELk)Tv=r_kuUzX~$!j#Egyms{dn1YVHVv2!0L|EhSmHStij~PQ|=|#hd^My4- z3COg*oq*u@6DGg)#TS-EUs&;snKttj?i@lr!CKEV2M>0e)?w_WM9snWE?Hls5IlBC zEi7LAd$W1-n#g6B{{8sY)-jEnHmvpAl=g$$e@>+B9ax;wz*BXe2pt%G+*%go{~ z3334E`abp*Tw#GVl^l$XYDs|rLQP24UFLybBhkPGWrFzf#d6QlM~|3|EgfT6$O%W# zJ$v>^RZ7PA_x=z3i|l22En4Yj5L$EO<`>&*2Z{*<};+UupPP~1jA|B zJ;ZECVVIF8PCD6a>+Fgⅇ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Π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 Y`#(zJziIr|3m6Ivp00i_>zopr07u@*r2qf` literal 0 HcmV?d00001 diff --git a/modules/mogo-module-service/src/main/res/drawable-mdpi/module_services_online_car_panel_background.9.png b/modules/mogo-module-service/src/main/res/drawable-mdpi/module_services_online_car_panel_background.9.png new file mode 100644 index 0000000000000000000000000000000000000000..80ab4b841fa6a267a65f093ca9af66207e660912 GIT binary patch literal 583 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VB+(1aSW-r_4clP&>;tzqlMbJ zz7lS$6}*nVFx)Y%{J`TIm26S|3xcAPu65SCNt|fo75uSh=Jn0*XTRB`dGGy`CAPYJ zXI#MGzyITpKTOWIPqxut_Pp}rjHgG}e2ISf-L~|{+szxMZCJKp+lFKH;x+s0OJ}Aw zx34j;xcPX)Ys)noW3nTPpC9aZTfF(x$sPLjH~u_mj{jz}#x~``-QfA+{_YZg;_cu5 z$vvUB?)|2?k2-(W=dL`Xw0q~>yOZ_*OcjW#7d}*%emio%tm{0^!udN_GlyTumNCj= zbtrvtu657P`+-NoLgWuT|6lX)TJg-#AclwE%0;HHX_>xtmiaT+vwQ0;1asa*8q85) z3Giu^s+I76&2+r-#1l!v!({PpW>d%pG8ua0aMIVHQ9W%g}XQuYax+0*Mb!$evnx8r=#58n14CiAc4 z_FO%`ZS&C&^WM5Gm434AtHO4Z&98cm-bfsHFTFW&9whd5Uw(9Aj*EQN(I*q?!n7ZO OJm~4_=d#Wzp$Pz%iS)Ao literal 0 HcmV?d00001 diff --git a/modules/mogo-module-service/src/main/res/drawable-mdpi/module_services_online_car_panel_empty_icon.png b/modules/mogo-module-service/src/main/res/drawable-mdpi/module_services_online_car_panel_empty_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0befdbd823dff0add01e2eaa0e05df871ed751dd GIT binary patch literal 53203 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ⅇ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Π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 literal 0 HcmV?d00001 diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_services_online_car_panel_background.9.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_services_online_car_panel_background.9.png new file mode 100644 index 0000000000000000000000000000000000000000..d4a88036840921c27ec60a53b6d3e62f32a3aa22 GIT binary patch literal 1131 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

XwUW@anh`< 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 Y`#(zJziIr|3m6Ivp00i_>zopr07u@*r2qf` literal 0 HcmV?d00001 diff --git a/modules/mogo-module-service/src/main/res/drawable/module_services_online_car_panel_background.9.png b/modules/mogo-module-service/src/main/res/drawable/module_services_online_car_panel_background.9.png new file mode 100644 index 0000000000000000000000000000000000000000..80ab4b841fa6a267a65f093ca9af66207e660912 GIT binary patch literal 583 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VB+(1aSW-r_4clP&>;tzqlMbJ zz7lS$6}*nVFx)Y%{J`TIm26S|3xcAPu65SCNt|fo75uSh=Jn0*XTRB`dGGy`CAPYJ zXI#MGzyITpKTOWIPqxut_Pp}rjHgG}e2ISf-L~|{+szxMZCJKp+lFKH;x+s0OJ}Aw zx34j;xcPX)Ys)noW3nTPpC9aZTfF(x$sPLjH~u_mj{jz}#x~``-QfA+{_YZg;_cu5 z$vvUB?)|2?k2-(W=dL`Xw0q~>yOZ_*OcjW#7d}*%emio%tm{0^!udN_GlyTumNCj= zbtrvtu657P`+-NoLgWuT|6lX)TJg-#AclwE%0;HHX_>xtmiaT+vwQ0;1asa*8q85) z3Giu^s+I76&2+r-#1l!v!({PpW>d%pG8ua0aMIVHQ9W%g}XQuYax+0*Mb!$evnx8r=#58n14CiAc4 z_FO%`ZS&C&^WM5Gm434AtHO4Z&98cm-bfsHFTFW&9whd5Uw(9Aj*EQN(I*q?!n7ZO OJm~4_=d#Wzp$Pz%iS)Ao literal 0 HcmV?d00001 diff --git a/modules/mogo-module-service/src/main/res/drawable/module_services_panel_item_bkg.xml b/modules/mogo-module-service/src/main/res/drawable/module_services_panel_item_bkg.xml new file mode 100644 index 0000000000..08e5f85a0a --- /dev/null +++ b/modules/mogo-module-service/src/main/res/drawable/module_services_panel_item_bkg.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/drawable/module_services_panel_item_detail_bkg.xml b/modules/mogo-module-service/src/main/res/drawable/module_services_panel_item_detail_bkg.xml new file mode 100644 index 0000000000..536a7a8e09 --- /dev/null +++ b/modules/mogo-module-service/src/main/res/drawable/module_services_panel_item_detail_bkg.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/drawable/module_services_panel_strategy_button_bkg.xml b/modules/mogo-module-service/src/main/res/drawable/module_services_panel_strategy_button_bkg.xml new file mode 100644 index 0000000000..265d98a08c --- /dev/null +++ b/modules/mogo-module-service/src/main/res/drawable/module_services_panel_strategy_button_bkg.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/layout/module_services_fragment_online_car_panel.xml b/modules/mogo-module-service/src/main/res/layout/module_services_fragment_online_car_panel.xml new file mode 100644 index 0000000000..3e39b0146f --- /dev/null +++ b/modules/mogo-module-service/src/main/res/layout/module_services_fragment_online_car_panel.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/layout/module_services_online_car_panel_item.xml b/modules/mogo-module-service/src/main/res/layout/module_services_online_car_panel_item.xml new file mode 100644 index 0000000000..429a88d5a0 --- /dev/null +++ b/modules/mogo-module-service/src/main/res/layout/module_services_online_car_panel_item.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/values-ldpi/dimens.xml b/modules/mogo-module-service/src/main/res/values-ldpi/dimens.xml index fd1066746d..98ffc07076 100644 --- a/modules/mogo-module-service/src/main/res/values-ldpi/dimens.xml +++ b/modules/mogo-module-service/src/main/res/values-ldpi/dimens.xml @@ -22,4 +22,35 @@ 64px 6.5px 10px + + 2px + 2px + 8px + 28px + 16px + + 20px + 28px + 20px + 84px + 18px + 58px + 14px + 16px + 18px + 5px + 20px + 13px + 42px + 8.89px + 13px + 16px + 25px + 13px + 26px + 20px + 18px + 17px + 60px + 12.5px \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/values-mdpi/dimens.xml b/modules/mogo-module-service/src/main/res/values-mdpi/dimens.xml index fd1066746d..e0ef017da6 100644 --- a/modules/mogo-module-service/src/main/res/values-mdpi/dimens.xml +++ b/modules/mogo-module-service/src/main/res/values-mdpi/dimens.xml @@ -22,4 +22,35 @@ 64px 6.5px 10px + + 2px + 2px + 8px + 28px + 16px + + 20px + 28px + 20px + 84px + 18px + 58px + 14px + 16px + 18px + 5px + 20px + 13px + 42px + 8.89px + 13px + 16px + 25px + 13px + 26px + 40px + 18px + 28px + 108px + 12.5px \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/values-xhdpi-1920x1000/dimens.xml b/modules/mogo-module-service/src/main/res/values-xhdpi-1920x1000/dimens.xml index 341706179d..6e500351ca 100644 --- a/modules/mogo-module-service/src/main/res/values-xhdpi-1920x1000/dimens.xml +++ b/modules/mogo-module-service/src/main/res/values-xhdpi-1920x1000/dimens.xml @@ -22,4 +22,35 @@ 20px 120px 20px + + 20px + 20px + 20px + 50px + 28px + + 36px + 50px + 36px + 151px + 33px + 102px + 26px + 30px + 34px + 9px + 40px + 20px + 70px + 16px + 21px + 28px + 45px + 22px + 42px + 40px + 34px + 17px + 108px + 22.5px \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-service/src/main/res/values-xhdpi/dimens.xml index 341706179d..717e486bf5 100644 --- a/modules/mogo-module-service/src/main/res/values-xhdpi/dimens.xml +++ b/modules/mogo-module-service/src/main/res/values-xhdpi/dimens.xml @@ -22,4 +22,35 @@ 20px 120px 20px + + 20px + 20px + 20px + 50px + 28px + + 36px + 50px + 36px + 151px + 33px + 102px + 26px + 30px + 34px + 9px + 40px + 20px + 70px + 16px + 21px + 28px + 45px + 22px + 42px + 20px + 34px + 28px + 60px + 22.5px \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/values/colors.xml b/modules/mogo-module-service/src/main/res/values/colors.xml index e5cc33f8fa..f770bfe69f 100644 --- a/modules/mogo-module-service/src/main/res/values/colors.xml +++ b/modules/mogo-module-service/src/main/res/values/colors.xml @@ -1,4 +1,11 @@ #ffffff + #FFFFFFFF + #FFFFFF + #FFFFFF + #7FFFFFFF + #FFFFFF + #3081A4DC + #B2FFFFFF \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/values/dimens.xml b/modules/mogo-module-service/src/main/res/values/dimens.xml index 341706179d..3364dbceac 100644 --- a/modules/mogo-module-service/src/main/res/values/dimens.xml +++ b/modules/mogo-module-service/src/main/res/values/dimens.xml @@ -22,4 +22,35 @@ 20px 120px 20px + + 2px + 2px + 8px + 28px + 16px + + 20px + 28px + 20px + 84px + 18px + 58px + 14px + 16px + 18px + 5px + 20px + 13px + 42px + 8.89px + 13px + 16px + 25px + 13px + 26px + 20px + 18px + 17px + 60px + 12.5px \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/values/strings.xml b/modules/mogo-module-service/src/main/res/values/strings.xml index 78e8c3f560..dfbd56bf85 100644 --- a/modules/mogo-module-service/src/main/res/values/strings.xml +++ b/modules/mogo-module-service/src/main/res/values/strings.xml @@ -4,4 +4,8 @@ 你的周围有%d个%s,请点击查看,你也可以对我说打开蘑菇出行 周围有%d个%s 建议开启蘑菇出行,守护你的每一段行程,你可以直接对我说,打开蘑菇出行 + 扩大到20KM半径 + 扩大到40KM半径 + 距离导航目的地 + 查看车友信息 diff --git a/modules/mogo-module-widgets/src/main/java/com/mogo/module/widgets/AutoNaviIntentHandler.java b/modules/mogo-module-widgets/src/main/java/com/mogo/module/widgets/AutoNaviIntentHandler.java index 9602906ce0..3be64289d6 100644 --- a/modules/mogo-module-widgets/src/main/java/com/mogo/module/widgets/AutoNaviIntentHandler.java +++ b/modules/mogo-module-widgets/src/main/java/com/mogo/module/widgets/AutoNaviIntentHandler.java @@ -2,18 +2,26 @@ package com.mogo.module.widgets; import android.content.Context; import android.content.Intent; +import android.graphics.Rect; +import android.net.Uri; import android.text.TextUtils; import android.view.Gravity; +import android.view.View; import android.view.WindowManager; +import android.widget.TextView; +import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.voice.AIAssist; import com.mogo.commons.voice.IMogoVoiceCmdCallBack; +import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.wm.WindowManagerView; +import com.mogo.service.IMogoServiceApis; import com.mogo.utils.CommonUtils; import com.mogo.utils.LaunchUtils; import com.mogo.utils.ResourcesHelper; +import com.mogo.utils.TipToast; import com.mogo.utils.logger.Logger; import java.util.HashMap; @@ -50,6 +58,12 @@ class AutoNaviIntentHandler implements IMogoVoiceCmdCallBack { private WindowManagerView mWindowManagerView; private Map< String, Object > mProperties = new HashMap<>(); + private TextView mEnterApp; + private TextView mConsult; + private View mHandler; + + private boolean mLargeStyle = true; + public synchronized void release() { sInstance = null; } @@ -97,9 +111,12 @@ class AutoNaviIntentHandler implements IMogoVoiceCmdCallBack { .gravity( Gravity.LEFT | Gravity.TOP ) .position( ResourcesHelper.getDimensionPixelSize( context, R.dimen.module_widgets_app_entrance_x ), ResourcesHelper.getDimensionPixelSize( AbsMogoApplication.getApp(), R.dimen.module_widgets_app_entrance_y ) ) .showInWindowManager(); - mWindowManagerView.attachTouchEvent( view -> { - enterApp( context ); + mWindowManagerView.attachTouchEvent( ( view, xPos, yPos ) -> { + chooseAction( view, xPos, yPos ); } ); + mEnterApp = mWindowManagerView.findViewById( R.id.module_widgets_app_entrance ); + mConsult = mWindowManagerView.findViewById( R.id.module_widgets_app_consult ); + mHandler = mWindowManagerView.findViewById( R.id.module_widgets_app_handler ); } try { if ( mWindowManagerView.isShowing() ) { @@ -113,6 +130,62 @@ class AutoNaviIntentHandler implements IMogoVoiceCmdCallBack { } } + private void chooseAction( View root, float xPos, float yPos ) { + if ( isInViewArea( mEnterApp, xPos, yPos ) ) { + enterApp( root.getContext() ); + } else if ( isInViewArea( mHandler, xPos, yPos ) ) { + handleStyle( mHandler.getContext() ); + } else if ( isInViewArea( mConsult, xPos, yPos ) ) { + consultUser( root.getContext() ); + } + } + + private boolean isInViewArea( View target, float xPos, float yPos ) { + if ( xPos >= target.getLeft() + && xPos <= target.getRight() + && yPos >= target.getTop() + && yPos <= target.getBottom() ) { + return true; + } + return false; + } + + /** + * 咨询用户 + * + * @param context + */ + private void consultUser( Context context ) { + Map properties = new HashMap<>(); + properties.put( "type", 1 ); + MogoApisHandler.getInstance().getApis().getAnalyticsApi().track( "NAVI_Find_Mogoer", properties ); + if ( MogoApisHandler.getInstance().getApis().getStatusManagerApi().isMainPageOnResume() ) { + MogoApisHandler.getInstance().getApis().getOnlineCarPanelApi().showPanel(); + } else { + Intent start = new Intent( Intent.ACTION_VIEW ); + start.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK ); + start.setData( Uri.parse( "mogo://launcher/main/switch2?type=showOnlineCarPanel" ) ); + context.startActivity( start ); + } + } + + private void handleStyle( Context context ) { + if ( mLargeStyle ) { + mEnterApp.setText( R.string.module_widgets_app_entrance_short ); + mConsult.setText( R.string.module_widgets_app_consult_short ); + mLargeStyle = false; + } else { + mEnterApp.setText( R.string.module_widgets_app_entrance_text ); + mConsult.setText( R.string.module_widgets_app_entrance_consult ); + mLargeStyle = true; + } + } + + /** + * 进入app + * + * @param context + */ private void enterApp( Context context ) { try { if ( DebugConfig.isLauncher() ) { @@ -162,7 +235,7 @@ class AutoNaviIntentHandler implements IMogoVoiceCmdCallBack { @Override public void onCmdSelected( String cmd ) { if ( TextUtils.equals( OPEN, cmd ) ) { - Logger.d(TAG, "recognized open command."); + Logger.d( TAG, "recognized open command." ); enterApp( AbsMogoApplication.getApp() ); } } diff --git a/modules/mogo-module-widgets/src/main/java/com/mogo/module/widgets/MogoWidgetManger.java b/modules/mogo-module-widgets/src/main/java/com/mogo/module/widgets/MogoWidgetManger.java index 289c0a30ca..ab99a79fd5 100644 --- a/modules/mogo-module-widgets/src/main/java/com/mogo/module/widgets/MogoWidgetManger.java +++ b/modules/mogo-module-widgets/src/main/java/com/mogo/module/widgets/MogoWidgetManger.java @@ -3,8 +3,9 @@ package com.mogo.module.widgets; import android.content.Context; import android.content.Intent; -import com.alibaba.android.arouter.launcher.ARouter; +import com.mogo.commons.storage.SpStorage; import com.mogo.map.navi.IMogoNaviListener2; +import com.mogo.module.common.MogoApisHandler; import com.mogo.service.IMogoServiceApis; import com.mogo.service.intent.IMogoIntentListener; import com.mogo.service.statusmanager.IMogoStatusChangedListener; @@ -60,7 +61,7 @@ class MogoWidgetManger implements IMogoNaviListener2, IMogoIntentListener, IMogo public void init( Context context ) { mContext = context; - mApis = ARouter.getInstance().navigation( IMogoServiceApis.class ); + mApis = MogoApisHandler.getInstance().getApis(); initMapStatusListener(); initStatusListener(); initIntentListener(); @@ -82,6 +83,7 @@ class MogoWidgetManger implements IMogoNaviListener2, IMogoIntentListener, IMogo @Override public void onStopNavi() { + SpStorage.setNavigationTarget( "" ); AutoNaviIntentHandler.getInstance().closeEntrance(); } diff --git a/modules/mogo-module-widgets/src/main/res/drawable-ldpi/module_widgets_app_entrance_img_bkg.png b/modules/mogo-module-widgets/src/main/res/drawable-ldpi/module_widgets_app_entrance_img_bkg.png deleted file mode 100644 index 0af1eeda0184e2205a394d4ab336c5f49231a21f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1432 zcmV;J1!ww+P)002%10{{R3kYDZX0001cP)t-sUteD< zD=RuDCo3u{DJUo{BO@#%Br!2DEGa4dqZj?f12HEjf@2ygB_+R$6DlJk>X;Ymy94;3 z82G*i|D+cGv}LvJd~N6aTmi|Go(Sun_;c3je$b|F#VO!Ug}V692^m z|E3oI#03Az0sqGX|H=Vf9K&k>000zpQchC>1q~M^Ge8O-?CcstIVUE#xU8)G61DvR z00g*6L_t(&-qo6EcG^G?goA{G*o+rqa4=>O0^k3H;n6d$hYEFRaDG6a;Ct13&-}U< z>)f2x@Or)MrmWX9#EAF!(w{2Zoox1Pf6cZhn{VeQTLybS*`IG)n=Q;f%~oa~!QP^6 zHk-lgBM^^#jK_S22)tk(9|+I+7RDD0d>}j`9tk5~_A+f@=K_My2+fF33J5~boveDz z0%0f1A)u$=8Q%zZzABSKau&Rb8VW*cD zZ5_-J2tELkg3yooK32pR0gK!KGXSOvxD6>14RoBsAXF&~z$^fEr`lRXU`;+Hpjoqk zRW||9^aCOINI+2oMG@S@2qZvdDK!R!3`qJl3Rn`L6p%bjcq||T0uc@dVc-)kRw)8J zB7BeLI(Sv{FlUGYOz*-Rfhf{Cg_*ESbTJn}S3m$dDdI$6qJmQrurUOw2)60M+(m?f zNdoE;!x;j)i+qWIlp)TXB|O~Jg*in^0u&B*1SG!XK{c8KDE$l5Da;Wl0673tTzpx; zNGNg`a~1~aPc2|sY6XEer6yv0qQ-C&p(0341QI3yPDKjKIdHAU7>o&Uu>{ns2tqL8 zErF*~SY(IYe!1BO= zdQcUUzADn%!5iaa1@)A`T~2sd>~dzTpK@`!fMJ)@9_Av=V*&&`NEctfD(Nn_a>j(J zlnR1RuS#&R9<=l_3_PhIQW!>f4j}NHa}10kkN`yhY5`e44aoW-1X}@85o85ZYK$0T zDs&MEh$g&Kn}~aG176EXI^wl-ak7A78P-jtiVkk0pfjk>&ud^>3JU=v;hq6?7lDKI zIfgStPx^3iO9g=^+Hm?k>*Ama{e*(xbGwL>A;QCNb-)UM2lKG6;EuWotxD3t?m31- z&`KZ#lnUyLYElI1a|{4W2ILG$t1)^N5h+Z31W1G`MV4u+h`(&21WFgf!RpaL-^@7z zy*6AzK&ha6u~g4;B%r7B}(i2v7(}d_TQs@fZXBEJFy;({CnD zzT%$6H+_B-sfVBdlwAaT;$|*uU?c>dR&a+RNO;tRQ^tf3_t60vq5yRY>s^i$3WLwNX915Cl!GcJ zeSI%ltkvfZ-b5Jiivay)*a2(`K=teujK&zla{$Gls^8@jBM^W}L0w~Xk>(H-&vL|P z8A1w*lX*%6f=@&s-;0nTdk>J7;cIregm**m0g)8+ZsyyoRwean!!@P^9wmv_M6P;O z;-`OhFjAOnjHjUJa{ql$F-7Kun9h$ zBFGRBJ{JM7mlvb{rI&x_UgR#r{5i(iHP1pY(47DWqxiY3mkqn4r#=_yMgc+i^OG;n zsfPDF>e}}_^YP?iJpO${HXc7r%)=&OUUVl9H)WGla99-G8?vGp8lM3k3A6mh mEIaab?&YKR9ekC)VfzO*A5ys&CVMde0000 + + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-widgets/src/main/res/drawable/module_widgets_app_entrance_img_bkg.png b/modules/mogo-module-widgets/src/main/res/drawable/module_widgets_app_entrance_img_bkg.png deleted file mode 100644 index 0af1eeda0184e2205a394d4ab336c5f49231a21f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1432 zcmV;J1!ww+P)002%10{{R3kYDZX0001cP)t-sUteD< zD=RuDCo3u{DJUo{BO@#%Br!2DEGa4dqZj?f12HEjf@2ygB_+R$6DlJk>X;Ymy94;3 z82G*i|D+cGv}LvJd~N6aTmi|Go(Sun_;c3je$b|F#VO!Ug}V692^m z|E3oI#03Az0sqGX|H=Vf9K&k>000zpQchC>1q~M^Ge8O-?CcstIVUE#xU8)G61DvR z00g*6L_t(&-qo6EcG^G?goA{G*o+rqa4=>O0^k3H;n6d$hYEFRaDG6a;Ct13&-}U< z>)f2x@Or)MrmWX9#EAF!(w{2Zoox1Pf6cZhn{VeQTLybS*`IG)n=Q;f%~oa~!QP^6 zHk-lgBM^^#jK_S22)tk(9|+I+7RDD0d>}j`9tk5~_A+f@=K_My2+fF33J5~boveDz z0%0f1A)u$=8Q%zZzABSKau&Rb8VW*cD zZ5_-J2tELkg3yooK32pR0gK!KGXSOvxD6>14RoBsAXF&~z$^fEr`lRXU`;+Hpjoqk zRW||9^aCOINI+2oMG@S@2qZvdDK!R!3`qJl3Rn`L6p%bjcq||T0uc@dVc-)kRw)8J zB7BeLI(Sv{FlUGYOz*-Rfhf{Cg_*ESbTJn}S3m$dDdI$6qJmQrurUOw2)60M+(m?f zNdoE;!x;j)i+qWIlp)TXB|O~Jg*in^0u&B*1SG!XK{c8KDE$l5Da;Wl0673tTzpx; zNGNg`a~1~aPc2|sY6XEer6yv0qQ-C&p(0341QI3yPDKjKIdHAU7>o&Uu>{ns2tqL8 zErF*~SY(IYe!1BO= zdQcUUzADn%!5iaa1@)A`T~2sd>~dzTpK@`!fMJ)@9_Av=V*&&`NEctfD(Nn_a>j(J zlnR1RuS#&R9<=l_3_PhIQW!>f4j}NHa}10kkN`yhY5`e44aoW-1X}@85o85ZYK$0T zDs&MEh$g&Kn}~aG176EXI^wl-ak7A78P-jtiVkk0pfjk>&ud^>3JU=v;hq6?7lDKI zIfgStPx^3iO9g=^+Hm?k>*Ama{e*(xbGwL>A;QCNb-)UM2lKG6;EuWotxD3t?m31- z&`KZ#lnUyLYElI1a|{4W2ILG$t1)^N5h+Z31W1G`MV4u+h`(&21WFgf!RpaL-^@7z zy*6AzK&ha6u~g4;B%r7B}(i2v7(}d_TQs@fZXBEJFy;({CnD zzT%$6H+_B-sfVBdlwAaT;$|*uU?c>dR&a+RNO;tRQ^tf3_t60vq5yRY>s^i$3WLwNX915Cl!GcJ zeSI%ltkvfZ-b5Jiivay)*a2(`K=teujK&zla{$Gls^8@jBM^W}L0w~Xk>(H-&vL|P z8A1w*lX*%6f=@&s-;0nTdk>J7;cIregm**m0g)8+ZsyyoRwean!!@P^9wmv_M6P;O z;-`OhFjAOnjHjUJa{ql$F-7Kun9h$ zBFGRBJ{JM7mlvb{rI&x_UgR#r{5i(iHP1pY(47DWqxiY3mkqn4r#=_yMgc+i^OG;n zsfPDF>e}}_^YP?iJpO${HXc7r%)=&OUUVl9H)WGla99-G8?vGp8lM3k3A6mh mEIaab?&YKR9ekC)VfzO*A5ys&CVMde0000 + + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-widgets/src/main/res/layout/module_widgets_app_entrance.xml b/modules/mogo-module-widgets/src/main/res/layout/module_widgets_app_entrance.xml index 5ea9b7fe2a..50c79786b3 100644 --- a/modules/mogo-module-widgets/src/main/res/layout/module_widgets_app_entrance.xml +++ b/modules/mogo-module-widgets/src/main/res/layout/module_widgets_app_entrance.xml @@ -1,17 +1,66 @@ - + android:layout_height="wrap_content" + android:background="@drawable/module_widgets_app_handler_bkg"> + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-widgets/src/main/res/values-ldpi/dimens.xml b/modules/mogo-module-widgets/src/main/res/values-ldpi/dimens.xml index bbd70cad6e..3b9f47b99b 100644 --- a/modules/mogo-module-widgets/src/main/res/values-ldpi/dimens.xml +++ b/modules/mogo-module-widgets/src/main/res/values-ldpi/dimens.xml @@ -1,11 +1,12 @@ - 20px + 22px 15px 2px 505px 501px - 10px - 15px + 20px + 27px 71px + 4px \ No newline at end of file diff --git a/modules/mogo-module-widgets/src/main/res/values-mdpi/dimens.xml b/modules/mogo-module-widgets/src/main/res/values-mdpi/dimens.xml index bbd70cad6e..3b9f47b99b 100644 --- a/modules/mogo-module-widgets/src/main/res/values-mdpi/dimens.xml +++ b/modules/mogo-module-widgets/src/main/res/values-mdpi/dimens.xml @@ -1,11 +1,12 @@ - 20px + 22px 15px 2px 505px 501px - 10px - 15px + 20px + 27px 71px + 4px \ No newline at end of file diff --git a/modules/mogo-module-widgets/src/main/res/values-xhdpi-1920x1000/dimens.xml b/modules/mogo-module-widgets/src/main/res/values-xhdpi-1920x1000/dimens.xml index e4fc6151e3..2914119343 100644 --- a/modules/mogo-module-widgets/src/main/res/values-xhdpi-1920x1000/dimens.xml +++ b/modules/mogo-module-widgets/src/main/res/values-xhdpi-1920x1000/dimens.xml @@ -5,7 +5,8 @@ 4px 48px 1000px - 10px - 15px + 37px + 50px 71px + 8px \ No newline at end of file diff --git a/modules/mogo-module-widgets/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-widgets/src/main/res/values-xhdpi/dimens.xml index e4fc6151e3..2914119343 100644 --- a/modules/mogo-module-widgets/src/main/res/values-xhdpi/dimens.xml +++ b/modules/mogo-module-widgets/src/main/res/values-xhdpi/dimens.xml @@ -5,7 +5,8 @@ 4px 48px 1000px - 10px - 15px + 37px + 50px 71px + 8px \ No newline at end of file diff --git a/modules/mogo-module-widgets/src/main/res/values/colors.xml b/modules/mogo-module-widgets/src/main/res/values/colors.xml new file mode 100644 index 0000000000..8184cc697b --- /dev/null +++ b/modules/mogo-module-widgets/src/main/res/values/colors.xml @@ -0,0 +1,4 @@ + + + #FFFFFF + \ No newline at end of file diff --git a/modules/mogo-module-widgets/src/main/res/values/dimens.xml b/modules/mogo-module-widgets/src/main/res/values/dimens.xml index e4fc6151e3..bf234e4ac3 100644 --- a/modules/mogo-module-widgets/src/main/res/values/dimens.xml +++ b/modules/mogo-module-widgets/src/main/res/values/dimens.xml @@ -1,11 +1,12 @@ - 40px + 22px 30px 4px 48px 1000px - 10px - 15px + 20px + 27px 71px + 4px \ No newline at end of file diff --git a/modules/mogo-module-widgets/src/main/res/values/strings.xml b/modules/mogo-module-widgets/src/main/res/values/strings.xml index d824f729d5..1207c6ab0b 100644 --- a/modules/mogo-module-widgets/src/main/res/values/strings.xml +++ b/modules/mogo-module-widgets/src/main/res/values/strings.xml @@ -1,4 +1,7 @@ mogo-module-service - 切换辅助驾驶 + 辅助驾驶模式 + 咨询终点车友 + + diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java b/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java index 66aecbd070..25fd02c006 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java @@ -30,6 +30,7 @@ import com.mogo.service.passport.IMogoPassportManager; import com.mogo.service.share.IMogoShareManager; import com.mogo.service.statusmanager.IMogoMsgCenter; import com.mogo.service.statusmanager.IMogoStatusManager; +import com.mogo.service.strategy.IMogoOnlineCarListPanelProvider; import com.mogo.service.strategy.IMogoRefreshStrategyController; import com.mogo.service.tanlu.IMogoTanluProvider; import com.mogo.service.tanlu.IMogoTanluUiProvider; @@ -270,4 +271,10 @@ public interface IMogoServiceApis extends IProvider { * @return */ IMogoSkinSupportInstaller getSkinSupportInstallerApi(); + + /** + * 在线车辆面板 + * @return + */ + IMogoOnlineCarListPanelProvider getOnlineCarPanelApi(); } diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java b/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java index 71b5fae096..bca6a29631 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java @@ -255,4 +255,9 @@ public class MogoServicePaths { * 悬浮小控件 */ public static final String PATH_WIDGETS = "/widgets/provider"; + + /** + * 在线好友面板 + */ + public static final String PATH_ONLINE_CAR_PANEL = "/onlinecar/panel"; } diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/strategy/IMogoOnlineCarListPanelProvider.java b/services/mogo-service-api/src/main/java/com/mogo/service/strategy/IMogoOnlineCarListPanelProvider.java new file mode 100644 index 0000000000..16f68b3e74 --- /dev/null +++ b/services/mogo-service-api/src/main/java/com/mogo/service/strategy/IMogoOnlineCarListPanelProvider.java @@ -0,0 +1,26 @@ +package com.mogo.service.strategy; + +import android.content.Context; + +import androidx.annotation.IdRes; +import androidx.fragment.app.FragmentActivity; + +import com.alibaba.android.arouter.facade.template.IProvider; + +public +/** + * @author congtaowang + * @since 2020/9/21 + * + * 描述 + */ +interface IMogoOnlineCarListPanelProvider extends IProvider { + + void initContainer( @IdRes int containerId, FragmentActivity activity ); + + void showPanel(); + + void hidePanel(); + + void clear(); +} diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java b/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java index add6d7a185..7f0ca8cec1 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java @@ -38,6 +38,7 @@ import com.mogo.service.passport.IMogoPassportManager; import com.mogo.service.share.IMogoShareManager; import com.mogo.service.statusmanager.IMogoMsgCenter; import com.mogo.service.statusmanager.IMogoStatusManager; +import com.mogo.service.strategy.IMogoOnlineCarListPanelProvider; import com.mogo.service.strategy.IMogoRefreshStrategyController; import com.mogo.service.tanlu.IMogoTanluProvider; import com.mogo.service.tanlu.IMogoTanluUiProvider; @@ -232,6 +233,11 @@ public class MogoServiceApis implements IMogoServiceApis { return getApiInstance( IMogoSkinSupportInstaller.class, SkinSupportInstallerConstants.PATH); } + @Override + public IMogoOnlineCarListPanelProvider getOnlineCarPanelApi() { + return getApiInstance( IMogoOnlineCarListPanelProvider.class, MogoServicePaths.PATH_ONLINE_CAR_PANEL); + } + private static < T extends IProvider > T getApiInstance( Class< T > clazz, String path ) { T inst = SingletonsHolder.get( clazz ); if ( inst == null ) {