From e1a83c6b8ffe62c488e3c047d700f228fd54afaf Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Thu, 21 May 2020 14:49:30 +0800 Subject: [PATCH] add product manager --- app/build.gradle | 21 ++- .../com/mogo/launcher/MogoApplication.java | 2 +- gradle.properties | 8 +- .../map/impl/amap/AMapNaviViewWrapper.java | 1 - .../com/mogo/module/apps/AppsFragment.java | 2 +- .../mogo/module/apps/AppsListActivity.java | 9 +- .../mogo/module/apps/model/NavigatorApps.java | 2 + .../apps/receiver/AppInstallReceiver.java | 8 + .../src/main/res/values-ldpi/dimens.xml | 10 +- .../module/back/BackToMainHomeManager.java | 20 +- .../common/entity/MarkerCardResult.java | 5 +- .../common/entity/MarkerExploreWay.java | 16 ++ .../common/entity/MarkerPoiTypeEnum.java | 2 + .../extensions/entrance/EntranceFragment.java | 19 ++ .../module_ext_drawable_weather_bkg.xml | 2 +- .../res/layout/module_ext_layout_entrance.xml | 40 ++-- .../src/main/res/values-ldpi/dimens.xml | 37 ++-- .../src/main/res/values-xhdpi/dimens.xml | 13 ++ .../src/main/res/values/dimens.xml | 3 + .../src/main/res/values-ldpi/dimens.xml | 14 +- .../src/main/res/values-xhdpi/dimens.xml | 2 +- .../src/main/res/values/dimens.xml | 2 +- .../com/mogo/module/map/MapPresenter.java | 17 ++ .../com/mogo/module/service/MogoServices.java | 3 + .../com/mogo/module/service/ServiceConst.java | 2 +- .../service/marker/MapMarkerInfoView.java | 173 +++++++----------- .../service/marker/MapMarkerManager.java | 91 +-------- .../module/service/marker/MapMarkerView.java | 140 ++++++-------- .../module_service_ic_rc_dark_frog2.png | Bin 360 -> 682 bytes .../module_service_ic_rc_freeze2.png | Bin 1488 -> 1385 bytes .../module_service_ic_rc_dark_frog2.png | Bin 551 -> 1912 bytes .../module_service_ic_rc_freeze2.png | Bin 3247 -> 5568 bytes .../service/module/IMogoModuleLifecycle.java | 1 + services/mogo-service/build.gradle | 2 + .../service/impl/adas/MogoADASController.java | 46 ++++- 35 files changed, 360 insertions(+), 353 deletions(-) mode change 100644 => 100755 modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_dark_frog2.png mode change 100644 => 100755 modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_freeze2.png mode change 100644 => 100755 modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_dark_frog2.png mode change 100644 => 100755 modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_freeze2.png diff --git a/app/build.gradle b/app/build.gradle index 9172cdd059..cfece5f7c6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -188,10 +188,25 @@ dependencies { } } +//android.applicationVariants.all { variant -> +// variant.outputs.all { //这里修改apk文件名 +// outputFileName = "Launcher2.0_V${android.defaultConfig.versionName}_${getCurrentDate()}_${variant.name}_${getGitCommit()}.apk" +// println outputFileName +// } +//} + android.applicationVariants.all { variant -> - variant.outputs.all { //这里修改apk文件名 - outputFileName = "Launcher2.0_V${android.defaultConfig.versionName}_${getCurrentDate()}_${variant.name}_${getGitCommit()}.apk" - println outputFileName + def buildTime = new Date().format("yyyyMMdd", TimeZone.getTimeZone("GMT+08:00")) + def flavor = variant.productFlavors.collect { it.name }.join('-') + + variant.outputs.all { output -> + outputFileName = [ + rootProject.applicationName, + "v${variant.versionName}", + buildTime, + flavor.length() > 0 ? "[${flavor}]" : "", + variant.buildType.name + ].findAll { it.length() > 0 }.join('_') << ".apk" } } diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index 3b339d9a2d..b2c9f7f484 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -55,7 +55,7 @@ public class MogoApplication extends AbsMogoApplication { MogoModulePaths.addModule(new MogoModule(AdCardConstants.TAG, AdCardConstants.MODULE_NAME)); MogoModulePaths.addModule(new MogoModule(MediaConstants.TAG, MediaConstants.MODULE_TYPE)); MogoModulePaths.addModule(new MogoModule(CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME)); - MogoModulePaths.addModule(new MogoModule(TanluConstants.TAG, TanluConstants.MODEL_NAME)); +// MogoModulePaths.addModule(new MogoModule(TanluConstants.TAG, TanluConstants.MODEL_NAME)); MogoModulePaths.addModule(new MogoModule(OnLineCarConstants.TAG, OnLineCarConstants.MODULE_NAME)); MogoModulePaths.addModule(new MogoModule(V2XConst.PATH_V2X_UI, V2XConst.PATH_V2X_UI)); diff --git a/gradle.properties b/gradle.properties index bf7b67a9c8..84350bc66e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -72,4 +72,10 @@ MOGO_MODULE_MEDIA_VERSION=1.0.4.3 # 推送 MOGO_MODULE_PUSH_VERSION=1.0.1 # 广告资源位 -MOGO_MODULE_AD_CARD_VERSION=1.0.1 \ No newline at end of file +MOGO_MODULE_AD_CARD_VERSION=1.0.1 + +## 产品库必备配置 +applicationId=com.mogo.launcer +applicationName=Launcer2.0 +appVersionCode=1 +appVersionName=1.0.0 \ No newline at end of file diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java index 5c62d54fd3..341fc8b0c4 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java @@ -17,7 +17,6 @@ import android.view.animation.Interpolator; import com.amap.api.maps.AMap; import com.amap.api.maps.AMapUtils; import com.amap.api.maps.CameraUpdateFactory; -import com.amap.api.maps.LocationSource; import com.amap.api.maps.model.BitmapDescriptorFactory; import com.amap.api.maps.model.CameraPosition; import com.amap.api.maps.model.LatLng; diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragment.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragment.java index 9e7fc0f6ce..ed3de2b4a8 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragment.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragment.java @@ -50,7 +50,7 @@ public class AppsFragment extends MvpFragment< AppsView, AppsPresenter > impleme mExit.setOnClickListener( view -> { if ( getActivity() != null ) { getActivity().finish(); - getActivity().overridePendingTransition( R.anim.module_apps_anim_enter, R.anim.module_apps_anim_exit); + getActivity().overridePendingTransition( 0, R.anim.module_apps_anim_exit); } } ); // mAppsList = findViewById( R.id.module_apps_id_apps ); diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsListActivity.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsListActivity.java index 82c116ec6f..d72b53e10a 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsListActivity.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsListActivity.java @@ -2,9 +2,11 @@ package com.mogo.module.apps; import android.app.Activity; import android.content.Intent; +import android.os.Bundle; import android.view.View; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.alibaba.android.arouter.launcher.ARouter; import com.google.android.material.bottomsheet.BottomSheetBehavior; @@ -27,7 +29,12 @@ public class AppsListActivity extends MvpActivity< AppsListView, AppsListPresent public static void start( Activity context ) { Intent starter = new Intent( context, AppsListActivity.class ); context.startActivity( starter ); - context.overridePendingTransition( R.anim.module_apps_anim_enter, R.anim.module_apps_anim_exit); + } + + @Override + protected void onCreate( @Nullable Bundle savedInstanceState ) { + overridePendingTransition( R.anim.module_apps_anim_enter, 0); + super.onCreate( savedInstanceState ); } @Override diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApps.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApps.java index 1bb4271c82..1b64ff1bb8 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApps.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApps.java @@ -14,6 +14,7 @@ import java.util.List; public class NavigatorApps { private static AppInfo app = new AppInfo( "导航", "com.mogo.launcher.navi.search", "", 0, null, R.drawable.module_apps_ic_navigator_navi ); + private static AppInfo app_ = new AppInfo( "导航", "com.mogo.launcher.navi.search", "", 0, null, R.drawable.module_apps_ic_navigator_navi_disable ); private static AppInfo app2 = new AppInfo( "音乐", "com.pvetec.musics", "", 0, null, R.drawable.module_apps_ic_navigator_media ); private static AppInfo app3 = new AppInfo( "个人中心", "com.zhidao.auto.personal", "", 0, null, R.drawable.module_apps_ic_navigator_personcenter ); private static AppInfo app4 = new AppInfo( "全部应用", "com.mogo.launcher.applist", "", 0, null, R.drawable.module_apps_ic_navigator_applist ); @@ -29,6 +30,7 @@ public class NavigatorApps { public static List< AppInfo > getAppsWithoutNavigation() { List< AppInfo > sApps = new ArrayList<>(); + sApps.add( app_ ); sApps.add( app2 ); sApps.add( app3 ); sApps.add( app4 ); diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/receiver/AppInstallReceiver.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/receiver/AppInstallReceiver.java index e3e599243f..1ea5fa4216 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/receiver/AppInstallReceiver.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/receiver/AppInstallReceiver.java @@ -4,7 +4,9 @@ package com.mogo.module.apps.receiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.text.TextUtils; +import com.mogo.module.apps.AppServiceHandler; import com.mogo.module.apps.model.AppsModel; public class AppInstallReceiver extends BroadcastReceiver { @@ -14,6 +16,9 @@ public class AppInstallReceiver extends BroadcastReceiver { if ( intent.getAction().equals( Intent.ACTION_PACKAGE_ADDED ) ) { String packageName = intent.getData().getSchemeSpecificPart(); AppsModel.getInstance( context ).appAdded( packageName ); + if ( TextUtils.equals( packageName, "com.zhidao.autopilot" ) ) { + AppServiceHandler.getApis().getAdasControllerApi().showADAS(); + } } if ( intent.getAction().equals( Intent.ACTION_PACKAGE_REMOVED ) ) { String packageName = intent.getData().getSchemeSpecificPart(); @@ -21,6 +26,9 @@ public class AppInstallReceiver extends BroadcastReceiver { } if ( intent.getAction().equals( Intent.ACTION_PACKAGE_REPLACED ) ) { String packageName = intent.getData().getSchemeSpecificPart(); + if ( TextUtils.equals( packageName, "com.zhidao.autopilot" ) ) { + AppServiceHandler.getApis().getAdasControllerApi().showADAS(); + } } if ( intent.getAction().equals( Intent.ACTION_PACKAGE_CHANGED ) ) { String packageName = intent.getData().getSchemeSpecificPart(); diff --git a/modules/mogo-module-apps/src/main/res/values-ldpi/dimens.xml b/modules/mogo-module-apps/src/main/res/values-ldpi/dimens.xml index faac054011..fb55520395 100644 --- a/modules/mogo-module-apps/src/main/res/values-ldpi/dimens.xml +++ b/modules/mogo-module-apps/src/main/res/values-ldpi/dimens.xml @@ -21,9 +21,9 @@ 50px 50px - 140px - 140px - 30px - 64px - 64px + 78px + 78px + 16px + 78px + 78px \ No newline at end of file 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 b356e030de..20818c844d 100644 --- a/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToMainHomeManager.java +++ b/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToMainHomeManager.java @@ -72,7 +72,11 @@ public class BackToMainHomeManager { params.x = AbsMogoApplication.getApp().getResources().getDimensionPixelOffset( R.dimen.module_back_main_home_icon_left ); params.y = AbsMogoApplication.getApp().getResources().getDimensionPixelOffset( R.dimen.module_back_main_home_icon_top ); params.gravity = Gravity.LEFT | Gravity.CENTER; - params.type = getFitWindowParamsType(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + params.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY; + } else { + params.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; + } params.format = PixelFormat.RGBA_8888; params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON; windowManager.addView( mBackView, params ); @@ -83,18 +87,4 @@ public class BackToMainHomeManager { WindowManagerViewHelper.removeView( mBackView ); } - private static int getFitWindowParamsType() { - int type; - if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1 ) { - // Need request permission. - type = WindowManager.LayoutParams.TYPE_PHONE; - } else if ( Build.MODEL.equalsIgnoreCase( "MI 5" ) ) { - // MI 5 phone not display crawler dot in android 7.0 - type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; - } else { - // It's will be dismissed automatically 3s after showing in Android 25. - type = WindowManager.LayoutParams.TYPE_TOAST; - } - return type; - } } diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerCardResult.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerCardResult.java index 1a8e044cf8..be7c7bbe23 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerCardResult.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerCardResult.java @@ -9,11 +9,12 @@ public class MarkerCardResult implements Serializable { private List dataType; // 要查询的类型 private List carChat; - private List exploreWay; - private List onlineCar; private List shareMusic; private List noveltyInfo; + private List onlineCar; + private List exploreWay; + public List getCarChat() { return carChat; } diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerExploreWay.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerExploreWay.java index 073c45bee0..00fdbf8552 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerExploreWay.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerExploreWay.java @@ -9,6 +9,7 @@ import java.util.List; @SuppressWarnings("unused") public class MarkerExploreWay implements Serializable { + private String infoId; private String type;//卡片类型, private String sn; private MarkerLocation location;//位置信息 @@ -20,6 +21,7 @@ public class MarkerExploreWay implements Serializable { private String cityName;//:"城市名称", private double distance;//距离 private MarkerUserInfo userInfo;//用户信息 + private String poiType; private List items;//视频地址和图片地址 public String getAddr() { @@ -121,6 +123,20 @@ public class MarkerExploreWay implements Serializable { this.userInfo = userInfo; } + public String getPoiType() { + return poiType; + } + + + public String getInfoId() { + return infoId; + } + + public MarkerExploreWay setInfoId( String infoId ) { + this.infoId = infoId; + return this; + } + @Override public String toString() { return "MarkerExploreWay{" + diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerPoiTypeEnum.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerPoiTypeEnum.java index 6060810e56..e57e3270fe 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerPoiTypeEnum.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerPoiTypeEnum.java @@ -36,4 +36,6 @@ public interface MarkerPoiTypeEnum { public String FOURS_ACCIDENT = "10013"; //身边 public String FOURS_NEALY = "10014"; + //实时路况 + public String FOURS_LIVING = "10015"; } \ No newline at end of file diff --git a/modules/mogo-module-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 bc82a3cdc3..34867b8492 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java @@ -50,6 +50,7 @@ import com.mogo.service.statusmanager.IMogoStatusChangedListener; import com.mogo.service.statusmanager.IMogoStatusManager; import com.mogo.service.statusmanager.StatusDescriptor; import com.mogo.utils.ResourcesHelper; +import com.mogo.utils.UiThreadHandler; import com.mogo.utils.logger.Logger; import java.util.HashMap; @@ -162,6 +163,17 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent private Rect mDisplayOverviewBounds; + private Runnable mLockCarRunnable = new Runnable() { + @Override + public void run() { + if ( !mStatusManager.isDisplayOverview() ) { + return; + } + mStatusManager.setDisplayOverview( TAG, false ); + mMApUIController.recoverLockMode(); + } + }; + @Override protected int getLayoutId() { return R.layout.module_ext_layout_entrance; @@ -197,8 +209,11 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mDisplayOverview.setOnClickListener( view -> { if ( !mStatusManager.isDisplayOverview() ) { mMApUIController.displayOverview( mDisplayOverviewBounds ); + UiThreadHandler.removeCallbacks( mLockCarRunnable ); + UiThreadHandler.postDelayed( mLockCarRunnable, 20_000 ); } else { mMApUIController.recoverLockMode(); + UiThreadHandler.removeCallbacks( mLockCarRunnable ); } mStatusManager.setDisplayOverview( TAG, !mStatusManager.isDisplayOverview() ); } ); @@ -212,6 +227,10 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mMApUIController.setLockZoom( 16 ); mMApUIController.changeZoom( 16.0f ); } + if ( mStatusManager.isDisplayOverview() ) { + mMogoStatusManager.setDisplayOverview( TAG, false ); + UiThreadHandler.removeCallbacks( mLockCarRunnable ); + } mMogoStatusManager.setUserInteractionStatus( TAG, true, false ); mMApUIController.recoverLockMode(); } diff --git a/modules/mogo-module-extensions/src/main/res/drawable/module_ext_drawable_weather_bkg.xml b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_drawable_weather_bkg.xml index 700b8df8e0..90fb7a2eaf 100644 --- a/modules/mogo-module-extensions/src/main/res/drawable/module_ext_drawable_weather_bkg.xml +++ b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_drawable_weather_bkg.xml @@ -3,7 +3,7 @@ - + \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml index 77d36f91e1..ab7a83b8e4 100644 --- a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml +++ b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml @@ -15,9 +15,9 @@ - - - - - + @@ -89,8 +82,8 @@ android:layout_width="@dimen/module_ext_operation_panel_share_width" android:layout_height="@dimen/module_ext_operation_panel_share_height" android:layout_marginBottom="@dimen/module_ext_operation_panel_share_marginBottom" - app:layout_constraintBottom_toTopOf="@+id/module_entrance_id_operation_panel" - app:layout_constraintRight_toRightOf="@+id/module_entrance_id_operation_panel" + app:layout_constraintBottom_toTopOf="@+id/module_entrance_id_move2_current_location" + app:layout_constraintRight_toRightOf="@+id/module_entrance_id_move2_current_location" app:layout_goneMarginBottom="@dimen/module_ext_operation_panel_share_goneMarginBottom"> 20px 1px - 58px + 66px 20px 34.5px 58px @@ -38,16 +38,16 @@ 31.4px 1.2px 58px - 58px - 58px + 66px + 66px 21px 20px 34.5px 20px - 64px - 64px + 66px + 66px 20px 32px 20px @@ -56,7 +56,7 @@ 8px - 64px + 66px 32px 32px @@ -71,14 +71,14 @@ 18.48px 16px 22px - 28px + 16px 15px 15px 11.73px - 1058px - 210px + 544px + 117px 85px 85px 13px @@ -100,16 +100,29 @@ -1px 30px - 40px - 40px + 23px + 23px 15px 15px 5px + 20px + 14px + 20px + 14px + 20px + 14px + 34px + 8px + 8px 534px 100px 68px 32px - 240px + 16px + 142px + 66px + 66px + 16px \ 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 b062b26c4a..7b89df54dc 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 @@ -101,6 +101,15 @@ 15px 15px 5px + 50px + 37px + 26px + 37px + 26px + 37px + 26px + 15px + 15px 952px @@ -108,5 +117,9 @@ 122px 61px 240px + 30px + 120px + 120px + 30px \ 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 65fd20b2ac..e30e6f8ee9 100644 --- a/modules/mogo-module-extensions/src/main/res/values/dimens.xml +++ b/modules/mogo-module-extensions/src/main/res/values/dimens.xml @@ -119,5 +119,8 @@ 61px 30px 240px + 120px + 120px + 30px \ No newline at end of file diff --git a/modules/mogo-module-main/src/main/res/values-ldpi/dimens.xml b/modules/mogo-module-main/src/main/res/values-ldpi/dimens.xml index 410eaa7f32..0ba4ec9f22 100644 --- a/modules/mogo-module-main/src/main/res/values-ldpi/dimens.xml +++ b/modules/mogo-module-main/src/main/res/values-ldpi/dimens.xml @@ -1,7 +1,7 @@ - 200px + 300px 8px 352px 370px @@ -16,11 +16,11 @@ 320px 319px - 200px - 30px - 30px - 830px - 800px - 30px + 110px + 16px + 15px + 460px + 444px + 16px \ No newline at end of file diff --git a/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml index 4d1f9fdb5b..ee84bb8039 100644 --- a/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml +++ b/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml @@ -1,7 +1,7 @@ - 200px + 300px 10px 660px 690px 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 3589fe1e5d..af1335b972 100644 --- a/modules/mogo-module-main/src/main/res/values/dimens.xml +++ b/modules/mogo-module-main/src/main/res/values/dimens.xml @@ -1,7 +1,7 @@ - 200px + 150px 10px 660px 690px 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 4b740e501a..f71aceddb0 100644 --- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java +++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java @@ -8,6 +8,7 @@ import android.graphics.Rect; import android.text.TextUtils; import androidx.annotation.NonNull; +import androidx.annotation.UiThread; import androidx.lifecycle.LifecycleOwner; import com.alibaba.android.arouter.launcher.ARouter; @@ -63,6 +64,18 @@ public class MapPresenter extends Presenter< MapView > implements private IMogoSettingManager mSettingManager; private Rect mDisplayOverviewBounds; + + private Runnable mLockCarRunnable = new Runnable() { + @Override + public void run() { + if ( !mStatusManager.isDisplayOverview() ) { + return; + } + mStatusManager.setDisplayOverview( TAG, false ); + mView.getUIController().recoverLockMode(); + } + }; + public MapPresenter( MapView view ) { super( view ); initBroadcast(); @@ -221,6 +234,7 @@ public class MapPresenter extends Presenter< MapView > implements mStatusManager.setDisplayOverview( TAG, false ); mView.getUIController().recoverLockMode(); AIAssist.getInstance( getContext() ).speakTTSVoice( "已为您继续导航" ); + UiThreadHandler.removeCallbacks( mLockCarRunnable ); } else { mLauncher.backToLauncher( getContext() ); UiThreadHandler.postDelayed( () -> { @@ -228,6 +242,7 @@ public class MapPresenter extends Presenter< MapView > implements mStatusManager.setDisplayOverview( TAG, false ); mView.getUIController().recoverLockMode(); AIAssist.getInstance( getContext() ).speakTTSVoice( "已为您继续导航" ); + UiThreadHandler.removeCallbacks( mLockCarRunnable ); } catch ( Exception e ) { e.printStackTrace(); } @@ -258,6 +273,8 @@ public class MapPresenter extends Presenter< MapView > implements AIAssist.getInstance( getContext() ).speakTTSVoice( "展示全程路线" ); }, 2_000L ); } + + UiThreadHandler.postDelayed( mLockCarRunnable, 20_000 ); } private void zoomMap( boolean zoomIn ) { 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 cf67cd97c5..ed01a0a9e2 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java @@ -751,10 +751,13 @@ public class MogoServices implements IMogoMapListener, mStatusManager.setADASUIShow( ServiceConst.TYPE, status == 1 ); } else if ( Intent.ACTION_POWER_CONNECTED.equals( command ) ) { mStatusManager.setAccStatus( ServiceConst.TYPE, true ); + Logger.d( TAG, "acc status: %s", true ); } else if ( Intent.ACTION_POWER_DISCONNECTED.equals( command ) ) { mStatusManager.setAccStatus( ServiceConst.TYPE, false ); + Logger.d( TAG, "acc status: %s", false ); } else if ( MogoReceiver.ACTION_NWD_ACC.equals( command ) ) { int state = intent.getByteExtra( MogoReceiver.PARAM_ACC_STATUS, ( byte ) 0 ); + Logger.d( TAG, "acc status: %s", state == 1 ); mStatusManager.setAccStatus( ServiceConst.TYPE, state == 1 ); } else if ( MogoReceiver.ACTION_VOICE_UI.equals( command ) ) { String val = intent.getStringExtra( MogoReceiver.PARRAM_WAKE_STATUS ); diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java index 304c284b98..41282ef6bc 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java @@ -85,7 +85,7 @@ public class ServiceConst { /** * 20 s */ - public static final int DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT = 20 * 1_000; + public static final int DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT = 30 * 1_000; /** * 所有卡片显示的每类点的最大数据量 diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java index d272ae9046..bb991fdae9 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java @@ -12,6 +12,7 @@ import androidx.annotation.Nullable; import androidx.constraintlayout.widget.ConstraintLayout; import com.mogo.map.marker.MogoMarkerOptions; +import com.mogo.module.common.entity.MarkerExploreWay; import com.mogo.module.common.entity.MarkerNoveltyInfo; import com.mogo.module.common.entity.MarkerOnlineCar; import com.mogo.module.common.entity.MarkerPoiTypeEnum; @@ -36,193 +37,145 @@ public class MapMarkerInfoView extends MapMarkerBaseView { private ConstraintLayout clMarkerContent; private ImageView ivReverseTriangle; - public MapMarkerInfoView(Context context) { - super(context); + public MapMarkerInfoView( Context context ) { + super( context ); } - public MapMarkerInfoView(Context context, @Nullable AttributeSet attrs) { - super(context, attrs); + public MapMarkerInfoView( Context context, @Nullable AttributeSet attrs ) { + super( context, attrs ); } - public MapMarkerInfoView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); + public MapMarkerInfoView( Context context, @Nullable AttributeSet attrs, int defStyleAttr ) { + super( context, attrs, defStyleAttr ); } - public MapMarkerInfoView(Context context, MarkerShowEntity markerShowEntity, MogoMarkerOptions options) { - super(context); + public MapMarkerInfoView( Context context, MarkerShowEntity markerShowEntity, MogoMarkerOptions options ) { + super( context ); mOptions = options; - updateView(markerShowEntity); + updateView( markerShowEntity ); } - protected void initView(Context context) { - LayoutInflater.from(context).inflate(R.layout.view_map_marker_info, this); - ivUserHead = findViewById(R.id.ivUserHead); - ivIcon = findViewById(R.id.ivIcon); - clMarkerContent = findViewById(R.id.clMarkerContent); - ivReverseTriangle = findViewById(R.id.ivReverseTriangle); - ivCar = findViewById(R.id.ivCar); - tvMarkerContent = findViewById(R.id.tvMarkerContent); + protected void initView( Context context ) { + LayoutInflater.from( context ).inflate( R.layout.view_map_marker_info, this ); + ivUserHead = findViewById( R.id.ivUserHead ); + ivIcon = findViewById( R.id.ivIcon ); + clMarkerContent = findViewById( R.id.clMarkerContent ); + ivReverseTriangle = findViewById( R.id.ivReverseTriangle ); + ivCar = findViewById( R.id.ivCar ); + tvMarkerContent = findViewById( R.id.tvMarkerContent ); } - public void updateView(MarkerShowEntity markerShowEntity) { + public void updateView( MarkerShowEntity markerShowEntity ) { try { Object bindObj = markerShowEntity.getBindObj(); - switch (markerShowEntity.getMarkerType()) { + ivCar.setImageResource( R.drawable.icon_map_marker_location_yellow ); + clMarkerContent.setBackgroundResource( R.drawable.bg_map_marker_yellow_info ); + ivReverseTriangle.setImageResource( R.drawable.bg_shape_reverse_yellow ); + switch ( markerShowEntity.getMarkerType() ) { case ServiceConst.CARD_TYPE_CARS_CHATTING: case ServiceConst.CARD_TYPE_USER_DATA: - ivUserHead.setVisibility(View.VISIBLE); - ivIcon.setVisibility(View.INVISIBLE); - loadImageWithMarker(markerShowEntity); - ivCar.setImageResource(R.drawable.icon_map_marker_car_gray); + ivUserHead.setVisibility( View.VISIBLE ); + ivIcon.setVisibility( View.INVISIBLE ); + loadImageWithMarker( markerShowEntity ); + ivCar.setImageResource( R.drawable.icon_map_marker_car_gray ); //ivCar.setRotation(new Random().nextInt(360)); - ivCar.setRotation((float) markerShowEntity.getMarkerLocation().getAngle()); - - if (bindObj instanceof MarkerOnlineCar) { - if (((MarkerOnlineCar) bindObj).getUserInfo().getGenderValue() == 0) { - clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_blue_info); - ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_blue); - } else { - clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_purple_info); - ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_purple); - } - } - + ivCar.setRotation( ( float ) markerShowEntity.getMarkerLocation().getAngle() ); break; case ServiceConst.CARD_TYPE_ROAD_CONDITION: - ivUserHead.setVisibility(View.INVISIBLE); - ivIcon.setVisibility(View.VISIBLE); - - ivIcon.setImageResource(R.drawable.icon_map_marker_road_block_up); - clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_blue_info); - ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_blue); - ivCar.setImageResource(R.drawable.icon_map_marker_location_blue); - break; case ServiceConst.CARD_TYPE_NOVELTY: - ivUserHead.setVisibility(View.INVISIBLE); - ivIcon.setVisibility(View.VISIBLE); - ivCar.setImageResource(R.drawable.icon_map_marker_location_blue); + ivUserHead.setVisibility( View.INVISIBLE ); + ivIcon.setVisibility( View.VISIBLE ); - if (bindObj instanceof MarkerNoveltyInfo) { - switch (((MarkerNoveltyInfo) bindObj).getPoiType()) { + if ( bindObj instanceof MarkerExploreWay ) { + switch ( ( ( MarkerExploreWay ) bindObj ).getPoiType() ) { case MarkerPoiTypeEnum.GAS_STATION: - ivIcon.setImageResource(R.drawable.icon_map_marker_refuel); - clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_orange_info); - ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_orange); + ivIcon.setImageResource( R.drawable.icon_map_marker_refuel ); break; case MarkerPoiTypeEnum.TRAFFIC_CHECK: - ivIcon.setImageResource(R.drawable.icon_map_marker_road_check); - clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_green_info); - ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_green); + ivIcon.setImageResource( R.drawable.icon_map_marker_road_check2_light ); break; case MarkerPoiTypeEnum.ROAD_CLOSED: - ivIcon.setImageResource(R.drawable.icon_map_marker_road_block_off); - clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_dark_blue_info); - ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_dark_blue); + ivIcon.setImageResource( R.drawable.icon_map_marker_road_block_off2_light ); break; case MarkerPoiTypeEnum.SHOP_DISCOUNT: - ivIcon.setImageResource(R.drawable.icon_map_marker_shop_discount); - clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_red_info); - ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_red); + ivIcon.setImageResource( R.drawable.icon_map_marker_shop_discount ); break; case MarkerPoiTypeEnum.FOURS_4S: - ivIcon.setImageResource(R.drawable.icon_map_marker_4s); - clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_dark_blue_info); - ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_dark_blue); + ivIcon.setImageResource( R.drawable.icon_map_marker_4s ); break; case MarkerPoiTypeEnum.FOURS_ROAD_WORK: - ivIcon.setImageResource(R.drawable.icon_map_marker_road_work); - clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_dark_blue_info); - ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_dark_blue); + ivIcon.setImageResource( R.drawable.icon_map_marker_road_work2_light ); break; case MarkerPoiTypeEnum.FOURS_BLOCK_UP: - ivIcon.setImageResource(R.drawable.icon_map_marker_road_block_up); - clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_blue_info); - ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_blue); + ivIcon.setImageResource( R.drawable.icon_map_marker_road_block_up2_light ); break; case MarkerPoiTypeEnum.FOURS_PONDING: - ivIcon.setImageResource(R.drawable.icon_map_marker_pondingl); - clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_blue_info); - ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_blue); + ivIcon.setImageResource( R.drawable.icon_map_marker_pondingl2_light ); break; case MarkerPoiTypeEnum.FOURS_SHOP_FREE: - ivIcon.setImageResource(R.drawable.icon_map_marker_shop); - clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_dark_green_info); - ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_dark_green); + ivIcon.setImageResource( R.drawable.icon_map_marker_shop ); break; case MarkerPoiTypeEnum.FOURS_FOG: - ivIcon.setImageResource(R.drawable.module_service_ic_rc_dark_frog2); - clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_grey_info); - ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_grey); + ivIcon.setImageResource( R.drawable.module_service_ic_rc_dark_frog2_light ); break; case MarkerPoiTypeEnum.FOURS_ICE: - ivIcon.setImageResource(R.drawable.module_service_ic_rc_freeze2); - clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_blue_info); - ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_blue); + ivIcon.setImageResource( R.drawable.module_service_ic_rc_freeze2_light ); break; case MarkerPoiTypeEnum.FOURS_PARKING: - ivIcon.setImageResource(R.drawable.module_service_ic_rc_parking2); - clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_dark_blue_info); - ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_dark_blue); + ivIcon.setImageResource( R.drawable.module_service_ic_rc_parking2 ); break; case MarkerPoiTypeEnum.FOURS_ACCIDENT: - ivIcon.setImageResource(R.drawable.module_service_ic_rc_accident2); - clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_red_info); - ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_red); + ivIcon.setImageResource( R.drawable.module_service_ic_rc_accident3_light ); break; case MarkerPoiTypeEnum.FOURS_NEALY: - ivIcon.setImageResource(R.drawable.icon_map_marker_shear_news); - clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_blue_info); - ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_blue); + ivIcon.setImageResource( R.drawable.icon_map_marker_shear_news ); + break; + case MarkerPoiTypeEnum.FOURS_LIVING: + ivIcon.setImageResource( R.drawable.icon_map_marker_living_light ); break; default: - ivIcon.setImageResource(R.drawable.icon_map_marker_shear_news); - clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_dark_blue_info); - ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_dark_blue); + ivIcon.setImageResource( R.drawable.icon_map_marker_shear_news ); break; } } break; case ServiceConst.CARD_TYPE_SHARE_MUSIC: - ivUserHead.setVisibility(View.INVISIBLE); - ivIcon.setVisibility(View.VISIBLE); + ivUserHead.setVisibility( View.INVISIBLE ); + ivIcon.setVisibility( View.VISIBLE ); - clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_purple_info); - ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_purple); - ivCar.setImageResource(R.drawable.icon_map_marker_location_blue); - - if (bindObj instanceof MarkerShareMusic) { + if ( bindObj instanceof MarkerShareMusic ) { // 2 为书籍听书,3 为新闻,1 为qq音乐,int - switch (((MarkerShareMusic) bindObj).getShareType()) { + switch ( ( ( MarkerShareMusic ) bindObj ).getShareType() ) { case 1: - ivIcon.setImageResource(R.drawable.icon_map_marker_misic); + ivIcon.setImageResource( R.drawable.icon_map_marker_misic ); break; case 2: - ivIcon.setImageResource(R.drawable.icon_map_marker_book); + ivIcon.setImageResource( R.drawable.icon_map_marker_book ); break; case 3: - ivIcon.setImageResource(R.drawable.icon_map_marker_news); + ivIcon.setImageResource( R.drawable.icon_map_marker_news ); break; default: - ivIcon.setImageResource(R.drawable.icon_map_marker_misic); + ivIcon.setImageResource( R.drawable.icon_map_marker_misic ); break; } } break; } - if (!TextUtils.isEmpty(markerShowEntity.getTextContent())) { + if ( !TextUtils.isEmpty( markerShowEntity.getTextContent() ) ) { String content; - if (markerShowEntity.getTextContent().length() > 8) { - content = markerShowEntity.getTextContent().substring(0, 7) + "..."; + if ( markerShowEntity.getTextContent().length() > 8 ) { + content = markerShowEntity.getTextContent().substring( 0, 7 ) + "..."; } else { content = markerShowEntity.getTextContent(); } - tvMarkerContent.setText(content); + tvMarkerContent.setText( content ); } - } catch (Exception e) { + } catch ( Exception e ) { e.printStackTrace(); } } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java index b8a97d8206..c67685661c 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java @@ -222,19 +222,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener, trackData( mLastDataResult ); } - /** - * 是否是语音搜索的在线车辆数据:目前根据返回数据判断 - * - * @param markerCardResult - * @return - */ - private boolean isOnlineCarDataOnly( MarkerCardResult markerCardResult ) { - if ( markerCardResult != null && markerCardResult.getDataType() != null && markerCardResult.getDataType().size() == 1 && markerCardResult.getDataType().contains( ServiceConst.CARD_TYPE_USER_DATA ) ) { - return true; - } - return false; - } - /** * 根据类型绘制 * @@ -260,12 +247,8 @@ public class MapMarkerManager implements IMogoMarkerClickListener, */ private void drawAllMarker( MarkerCardResult markerCardResult ) { List< MarkerExploreWay > exploreWayList = markerCardResult.getExploreWay(); -// List< MarkerShareMusic > shareMusicList = markerCardResult.getShareMusic(); - List< MarkerNoveltyInfo > noveltyInfoList = markerCardResult.getNoveltyInfo(); drawRoadConditionMarker( exploreWayList, ServiceConst.MAX_AMOUNT_ALL ); -// drawShareMusicMarker( shareMusicList, ServiceConst.MAX_AMOUNT_ALL ); - drawNoveltyMarker( noveltyInfoList, ServiceConst.MAX_AMOUNT_ALL ); } /** @@ -318,6 +301,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, } int size = getAppropriateSize( maxAmount, exploreWayList ); Map< String, IMogoMarker > existCarMap = purgeMarkerData( exploreWayList, ModuleNames.CARD_TYPE_ROAD_CONDITION ); + Logger.i( TAG, "existCarMap: size = %d", existCarMap.size() ); for ( int i = 0; i < size; i++ ) { MarkerExploreWay markerExploreWay = exploreWayList.get( i ); if ( !markerExploreWay.getCanLive() ) { @@ -332,6 +316,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, String sn = getCarSnFromEntity( markerExploreWay ); IMogoMarker mogoMarker = existCarMap.get( sn ); if ( mogoMarker == null ) { + Logger.d( TAG, "draw road condition, sn = %s", sn ); drawMapMarker( markerShowEntity ); } } @@ -453,7 +438,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, } else if ( entity instanceof MarkerNoveltyInfo ) { return ( ( MarkerNoveltyInfo ) entity ).getSn(); } else if ( entity instanceof MarkerExploreWay ) { - return ( ( MarkerExploreWay ) entity ).getUserInfo().getSn(); + return ( ( MarkerExploreWay ) entity ).getInfoId(); } } catch ( Exception e ) { @@ -494,76 +479,12 @@ public class MapMarkerManager implements IMogoMarkerClickListener, return; } JSONArray array = new JSONArray(); - List< MarkerOnlineCar > onlineCarList = markerCardResult.getOnlineCar(); List< MarkerExploreWay > exploreWayList = markerCardResult.getExploreWay(); - List< MarkerShareMusic > shareMusicList = markerCardResult.getShareMusic(); - List< MarkerNoveltyInfo > noveltyInfoList = markerCardResult.getNoveltyInfo(); - int size = onlineCarList == null ? 0 : onlineCarList.size(); - fillPoiTypeTrackBody( array, ModuleNames.CARD_TYPE_USER_DATA, size ); + int size = 0; size = exploreWayList == null ? 0 : exploreWayList.size(); fillPoiTypeTrackBody( array, ModuleNames.CARD_TYPE_ROAD_CONDITION, size ); - size = noveltyInfoList == null ? 0 : noveltyInfoList.size(); - JSONObject novelty = fillPoiTypeTrackBody( array, ModuleNames.CARD_TYPE_NOVELTY, size ); - if ( noveltyInfoList != null ) { - Map< String, Integer > counter = new HashMap<>(); - for ( MarkerNoveltyInfo markerNoveltyInfo : noveltyInfoList ) { - if ( markerNoveltyInfo == null ) { - continue; - } - String childType = markerNoveltyInfo.getPoiType(); - if ( !counter.containsKey( childType ) ) { - counter.put( childType, 0 ); - } - int s = counter.get( childType ).intValue(); - counter.put( childType, s + 1 ); - } - if ( !counter.isEmpty() ) { - JSONArray onlineCarJsonArray = new JSONArray(); - for ( Map.Entry< String, Integer > entry : counter.entrySet() ) { - fillPoiChildTypeTrackBody( onlineCarJsonArray, entry.getKey(), entry.getValue() ); - } - if ( onlineCarJsonArray.length() > 0 ) { - try { - novelty.put( "content", onlineCarJsonArray ); - } catch ( JSONException e ) { - e.printStackTrace(); - } - } - } - } - - size = shareMusicList == null ? 0 : shareMusicList.size(); - JSONObject shareMusic = fillPoiTypeTrackBody( array, ModuleNames.CARD_TYPE_SHARE_MUSIC, size ); - if ( shareMusicList != null ) { - Map< String, Integer > counter = new HashMap<>(); - for ( MarkerShareMusic markerShareMusic : shareMusicList ) { - if ( markerShareMusic == null ) { - continue; - } - String childType = markerShareMusic.getShareType() + ""; - if ( !counter.containsKey( childType ) ) { - counter.put( childType, 0 ); - } - int s = counter.get( childType ).intValue(); - counter.put( childType, s + 1 ); - } - if ( !counter.isEmpty() ) { - JSONArray shareMusicJsonArray = new JSONArray(); - for ( Map.Entry< String, Integer > entry : counter.entrySet() ) { - fillPoiChildTypeTrackBody( shareMusicJsonArray, entry.getKey(), entry.getValue() ); - } - if ( shareMusicJsonArray.length() > 0 ) { - try { - shareMusic.put( "content", shareMusicJsonArray ); - } catch ( JSONException e ) { - e.printStackTrace(); - } - } - } - } - try { if ( array.length() == 0 ) { return; @@ -585,12 +506,8 @@ public class MapMarkerManager implements IMogoMarkerClickListener, if ( mLastDataResult == null ) { return; } -// List onlineCarList = mLastDataResult.getOnlineCar(); List< MarkerExploreWay > exploreWayList = mLastDataResult.getExploreWay(); - List< MarkerNoveltyInfo > noveltyInfoList = mLastDataResult.getNoveltyInfo(); -// dispatchDataToBis(ServiceConst.CARD_TYPE_USER_DATA, onlineCarList == null ?new ArrayList<>() : onlineCarList); dispatchDataToBis( ServiceConst.CARD_TYPE_ROAD_CONDITION, exploreWayList == null ? new ArrayList<>() : exploreWayList ); - dispatchDataToBis( ServiceConst.CARD_TYPE_NOVELTY, noveltyInfoList == null ? new ArrayList<>() : noveltyInfoList ); } /** diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java index 7679c23839..6479b123ab 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java @@ -9,6 +9,7 @@ import android.widget.ImageView; import androidx.annotation.Nullable; import com.mogo.map.marker.MogoMarkerOptions; +import com.mogo.module.common.entity.MarkerExploreWay; import com.mogo.module.common.entity.MarkerNoveltyInfo; import com.mogo.module.common.entity.MarkerOnlineCar; import com.mogo.module.common.entity.MarkerPoiTypeEnum; @@ -31,156 +32,137 @@ public class MapMarkerView extends MapMarkerBaseView { private ImageView ivBg; - public MapMarkerView(Context context) { - super(context); + public MapMarkerView( Context context ) { + super( context ); } - public MapMarkerView(Context context, @Nullable AttributeSet attrs) { - super(context, attrs); + public MapMarkerView( Context context, @Nullable AttributeSet attrs ) { + super( context, attrs ); } - public MapMarkerView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); + public MapMarkerView( Context context, @Nullable AttributeSet attrs, int defStyleAttr ) { + super( context, attrs, defStyleAttr ); } - public MapMarkerView(Context context, MarkerShowEntity markerShowEntity, MogoMarkerOptions options) { - super(context); + public MapMarkerView( Context context, MarkerShowEntity markerShowEntity, MogoMarkerOptions options ) { + super( context ); mOptions = options; - updateView(markerShowEntity); + updateView( markerShowEntity ); } - protected void initView(Context context) { - LayoutInflater.from(context).inflate(R.layout.view_map_marker, this); - ivUserHead = findViewById(R.id.ivUserHead); - ivIcon = findViewById(R.id.ivIcon); - ivCar = findViewById(R.id.ivCar); - ivBg = findViewById(R.id.ivBg); - clMarkerTopView = findViewById(R.id.clMarkerTopView); + protected void initView( Context context ) { + LayoutInflater.from( context ).inflate( R.layout.view_map_marker, this ); + ivUserHead = findViewById( R.id.ivUserHead ); + ivIcon = findViewById( R.id.ivIcon ); + ivCar = findViewById( R.id.ivCar ); + ivBg = findViewById( R.id.ivBg ); + clMarkerTopView = findViewById( R.id.clMarkerTopView ); } - public void updateView(MarkerShowEntity markerShowEntity) { + public void updateView( MarkerShowEntity markerShowEntity ) { try { Object bindObj = markerShowEntity.getBindObj(); - switch (markerShowEntity.getMarkerType()) { + ivBg.setImageResource( R.drawable.bg_map_marker_dark ); + switch ( markerShowEntity.getMarkerType() ) { case ServiceConst.CARD_TYPE_CARS_CHATTING: case ServiceConst.CARD_TYPE_USER_DATA: - ivUserHead.setVisibility(View.VISIBLE); - ivIcon.setVisibility(View.INVISIBLE); - loadImageWithMarker(markerShowEntity); - ivCar.setImageResource(R.drawable.icon_map_marker_car_gray); - ivCar.setRotation((float) markerShowEntity.getMarkerLocation().getAngle()); + ivUserHead.setVisibility( View.VISIBLE ); + ivIcon.setVisibility( View.INVISIBLE ); + loadImageWithMarker( markerShowEntity ); + ivCar.setImageResource( R.drawable.icon_map_marker_car_gray ); + ivCar.setRotation( ( float ) markerShowEntity.getMarkerLocation().getAngle() ); // ivCar.setRotation(new Random().nextInt(360)); - clMarkerTopView.setVisibility(View.GONE); - if (bindObj instanceof MarkerOnlineCar) { - if (((MarkerOnlineCar) bindObj).getUserInfo().getGenderValue() == 0) { - ivBg.setImageResource(R.drawable.bg_map_marker_blue); + clMarkerTopView.setVisibility( View.GONE ); + if ( bindObj instanceof MarkerOnlineCar ) { + if ( ( ( MarkerOnlineCar ) bindObj ).getUserInfo().getGenderValue() == 0 ) { } else { - ivBg.setImageResource(R.drawable.bg_map_marker_purple); } } break; case ServiceConst.CARD_TYPE_ROAD_CONDITION: - ivUserHead.setVisibility(View.INVISIBLE); - ivIcon.setVisibility(View.VISIBLE); - - ivIcon.setImageResource(R.drawable.icon_map_marker_road_block_up); - ivBg.setImageResource(R.drawable.bg_map_marker_blue); - ivCar.setImageResource(R.drawable.icon_map_marker_location_blue); - break; case ServiceConst.CARD_TYPE_NOVELTY: - ivUserHead.setVisibility(View.INVISIBLE); - ivIcon.setVisibility(View.VISIBLE); + ivUserHead.setVisibility( View.INVISIBLE ); + ivIcon.setVisibility( View.VISIBLE ); - ivCar.setImageResource(R.drawable.icon_map_marker_location_blue); + ivCar.setImageResource( R.drawable.icon_map_marker_location_yellow ); - if (bindObj instanceof MarkerNoveltyInfo) { - switch (((MarkerNoveltyInfo) bindObj).getPoiType()) { + if ( bindObj instanceof MarkerExploreWay ) { + switch ( ( ( MarkerExploreWay ) bindObj ).getPoiType() ) { case MarkerPoiTypeEnum.GAS_STATION: - ivIcon.setImageResource(R.drawable.icon_map_marker_refuel); - ivBg.setImageResource(R.drawable.bg_map_marker_oragne); + ivIcon.setImageResource( R.drawable.icon_map_marker_refuel ); break; case MarkerPoiTypeEnum.TRAFFIC_CHECK: - ivIcon.setImageResource(R.drawable.icon_map_marker_road_check); - ivBg.setImageResource(R.drawable.bg_map_marker_green); + ivIcon.setImageResource( R.drawable.icon_map_marker_road_check2 ); break; case MarkerPoiTypeEnum.ROAD_CLOSED: - ivIcon.setImageResource(R.drawable.icon_map_marker_road_block_off); - ivBg.setImageResource(R.drawable.bg_map_marker_blue_dark); + ivIcon.setImageResource( R.drawable.icon_map_marker_road_block_off2 ); break; case MarkerPoiTypeEnum.SHOP_DISCOUNT: - ivIcon.setImageResource(R.drawable.icon_map_marker_shop_discount); - ivBg.setImageResource(R.drawable.bg_map_marker_red); + ivIcon.setImageResource( R.drawable.icon_map_marker_shop_discount ); break; case MarkerPoiTypeEnum.FOURS_4S: - ivIcon.setImageResource(R.drawable.icon_map_marker_4s); - ivBg.setImageResource(R.drawable.bg_map_marker_blue); + ivIcon.setImageResource( R.drawable.icon_map_marker_4s ); break; case MarkerPoiTypeEnum.FOURS_ROAD_WORK: - ivIcon.setImageResource(R.drawable.icon_map_marker_road_work); - ivBg.setImageResource(R.drawable.bg_map_marker_blue_dark); + ivIcon.setImageResource( R.drawable.icon_map_marker_road_work2 ); break; case MarkerPoiTypeEnum.FOURS_BLOCK_UP: - ivIcon.setImageResource(R.drawable.icon_map_marker_road_block_up); - ivBg.setImageResource(R.drawable.bg_map_marker_blue); + ivIcon.setImageResource( R.drawable.icon_map_marker_road_block_up2 ); break; case MarkerPoiTypeEnum.FOURS_PONDING: - ivIcon.setImageResource(R.drawable.icon_map_marker_pondingl); - ivBg.setImageResource(R.drawable.bg_map_marker_blue); + ivIcon.setImageResource( R.drawable.icon_map_marker_pondingl2 ); break; case MarkerPoiTypeEnum.FOURS_SHOP_FREE: - ivIcon.setImageResource(R.drawable.icon_map_marker_shop); - ivBg.setImageResource(R.drawable.bg_map_marker_green_dark); + ivIcon.setImageResource( R.drawable.icon_map_marker_shop ); break; case MarkerPoiTypeEnum.FOURS_FOG: - ivBg.setImageResource(R.drawable.module_service_ic_rc_dark_frog); + ivIcon.setImageResource( R.drawable.module_service_ic_rc_dark_frog2 ); break; case MarkerPoiTypeEnum.FOURS_ICE: - ivBg.setImageResource(R.drawable.module_service_ic_rc_freeze); - break; - case MarkerPoiTypeEnum.FOURS_PARKING: - ivBg.setImageResource(R.drawable.module_service_ic_rc_parking); + ivIcon.setImageResource( R.drawable.module_service_ic_rc_freeze2 ); break; case MarkerPoiTypeEnum.FOURS_ACCIDENT: - ivBg.setImageResource(R.drawable.module_service_ic_rc_accident); + ivIcon.setImageResource( R.drawable.module_service_ic_rc_accident3 ); break; case MarkerPoiTypeEnum.FOURS_NEALY: - ivIcon.setImageResource(R.drawable.icon_map_marker_shear_news); - ivBg.setImageResource(R.drawable.bg_map_marker_blue); + ivIcon.setImageResource( R.drawable.icon_map_marker_shear_news ); break; + case MarkerPoiTypeEnum.FOURS_LIVING: + ivIcon.setImageResource( R.drawable.icon_map_marker_living ); + break; + case MarkerPoiTypeEnum.FOURS_PARKING: default: - ivIcon.setImageResource(R.drawable.icon_map_marker_shear_news); - ivBg.setImageResource(R.drawable.bg_map_marker_blue_dark); + ivIcon.setImageResource( R.drawable.icon_map_marker_shear_news ); break; } } break; case ServiceConst.CARD_TYPE_SHARE_MUSIC: - ivUserHead.setVisibility(View.INVISIBLE); - ivIcon.setVisibility(View.VISIBLE); - ivBg.setImageResource(R.drawable.bg_map_marker_purple); - ivCar.setImageResource(R.drawable.icon_map_marker_location_blue); + ivUserHead.setVisibility( View.INVISIBLE ); + ivIcon.setVisibility( View.VISIBLE ); + ivCar.setImageResource( R.drawable.icon_map_marker_location_yellow ); - if (bindObj instanceof MarkerShareMusic) { + if ( bindObj instanceof MarkerShareMusic ) { // 2 为书籍听书,3 为新闻,1 为qq音乐,int - switch (((MarkerShareMusic) bindObj).getShareType()) { + switch ( ( ( MarkerShareMusic ) bindObj ).getShareType() ) { case 1: - ivIcon.setImageResource(R.drawable.icon_map_marker_misic); + ivIcon.setImageResource( R.drawable.icon_map_marker_misic ); break; case 2: - ivIcon.setImageResource(R.drawable.icon_map_marker_book); + ivIcon.setImageResource( R.drawable.icon_map_marker_book ); break; case 3: - ivIcon.setImageResource(R.drawable.icon_map_marker_news); + ivIcon.setImageResource( R.drawable.icon_map_marker_news ); break; default: - ivIcon.setImageResource(R.drawable.icon_map_marker_misic); + ivIcon.setImageResource( R.drawable.icon_map_marker_misic ); break; } } break; } - } catch (Exception e) { + } catch ( Exception e ) { e.printStackTrace(); } } diff --git a/modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_dark_frog2.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/module_service_ic_rc_dark_frog2.png old mode 100644 new mode 100755 index ad2cfca0c44dbd3827b9383e2b141474433e0d38..1222b2b6c7c8c92829c768c72eac6182be11717f GIT binary patch literal 682 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 literal 551 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1|+Ti+$;i8jKx9jP7LeL$-D%zA9}hthGek5 zow?DA*-@aac+xSEu3n9Zh>javN{bZ2esMINPg>gBuV9vx`jYtvgWzkEFgHc9vMfQv zq(5e^8+N?7bN1e`NAW)b^^8BCubFVycJ0+IE)Fc{=z!mX`|sB;$iCvbGMxQza>(}b zHyuY-G`_pI-TL8xN=zb|1T;b(n9@(Y4I=6}?JNzwaqs!+byC%BNYbC+t68 zJF$lK$ES0G)lJ(jEHTv&ifOlc9yx8U+p6V8N(xLs^nX&r&xlQB=Rb&V2 zl}zY*%k%DbUDrgK+q}={MY&(&K6~OASIq~fH=@nkbuA60qYoD_A6=6 z@y%v)UF*Adk7%5@eBfl?(|=#hNMDc+agiqH6e}x>Iw_N#U5C7#xmdKI;Vst0LHcQE&u=k diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_freeze2.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_rc_freeze2.png old mode 100644 new mode 100755 index c7f02cd85212c9220d7a1121592c2903a72ea6c3..d34779845ed9e0d24671e307be510d8af2f65107 GIT binary patch literal 5568 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 diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleLifecycle.java b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleLifecycle.java index dc2dad5741..7234996fbe 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleLifecycle.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleLifecycle.java @@ -22,4 +22,5 @@ public interface IMogoModuleLifecycle { * accOn 事件回调 */ void accOn(); + } diff --git a/services/mogo-service/build.gradle b/services/mogo-service/build.gradle index 3cd53dffe6..1b26b1e000 100644 --- a/services/mogo-service/build.gradle +++ b/services/mogo-service/build.gradle @@ -48,6 +48,7 @@ dependencies { implementation rootProject.ext.dependencies.mogocommons implementation rootProject.ext.dependencies.mogoserviceapi implementation rootProject.ext.dependencies.mogoconnection + implementation rootProject.ext.dependencies.modulecommon } else { api project(":libraries:mogo-map") implementation project(":libraries:mogo-map-api") @@ -55,6 +56,7 @@ dependencies { implementation project(":foudations:mogo-commons") implementation project(":services:mogo-service-api") implementation project(":foudations:mogo-connection") + implementation project(":modules:mogo-module-common") } } diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java index cadd1e446f..c38edf1b56 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java @@ -1,13 +1,16 @@ package com.mogo.service.impl.adas; +import android.app.ActivityManager; import android.app.Application; import android.content.Context; import android.content.Intent; +import android.content.pm.ApplicationInfo; import android.os.RemoteException; import com.alibaba.android.arouter.facade.annotation.Route; import com.mogo.commons.AbsMogoApplication; import com.mogo.map.MogoOverlayManager; +import com.mogo.module.common.utils.CarSeries; import com.mogo.service.MogoServicePaths; import com.mogo.service.adas.IMogoADASController; import com.mogo.service.impl.MogoServiceApis; @@ -20,6 +23,8 @@ import com.zhidao.autopilot.support.api.AutopilotServiceManage; import org.json.JSONObject; +import java.util.List; + /** * @author congtaowang * @since 2020-03-10 @@ -61,6 +66,11 @@ public class MogoADASController implements IMogoADASController { public void showADAS() { Logger.d( TAG, "show adas" ); + if ( !isProcessRunning( AbsMogoApplication.getApp(), getPackageUid( AbsMogoApplication.getApp(), "com.zhidiao.autopilot" ) ) ) { + init( AbsMogoApplication.getApp() ); + } + + int delay = CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X ? 0 : 500; UiThreadHandler.postDelayed( () -> { try { @@ -84,7 +94,7 @@ public class MogoADASController implements IMogoADASController { Logger.e( TAG, e1, "error." ); } } - }, 500 ); + }, delay ); } @Override @@ -122,4 +132,38 @@ public class MogoADASController implements IMogoADASController { public void init( Context context ) { AutopilotServiceManage.getInstance().init( context ); } + + //获取已安装应用的 uid,-1 表示未安装此应用或程序异常 + public static int getPackageUid( Context context, String packageName ) { + try { + ApplicationInfo applicationInfo = context.getPackageManager().getApplicationInfo( packageName, 0 ); + if ( applicationInfo != null ) { + return applicationInfo.uid; + } + } catch ( Exception e ) { + return -1; + } + return -1; + } + + /** + * 判断某一 uid 的程序是否有正在运行的进程,即是否存活 + * Created by cafeting on 2017/2/4. + * + * @param context 上下文 + * @param uid 已安装应用的 uid + * @return true 表示正在运行,false 表示没有运行 + */ + public static boolean isProcessRunning( Context context, int uid ) { + ActivityManager am = ( ActivityManager ) context.getSystemService( Context.ACTIVITY_SERVICE ); + List< ActivityManager.RunningServiceInfo > runningServiceInfos = am.getRunningServices( 200 ); + if ( runningServiceInfos.size() > 0 ) { + for ( ActivityManager.RunningServiceInfo appProcess : runningServiceInfos ) { + if ( uid == appProcess.uid ) { + return true; + } + } + } + return false; + } }