From 92bc1bbebe0c718a1ae8f8a969a6fb8d37bff72a Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Thu, 19 Nov 2020 18:11:23 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E4=B8=8Eadas=E8=81=94=E8=B0=83=E8=87=AA?= =?UTF-8?q?=E8=BD=A6=E5=9B=BE=E6=A0=87=E9=85=8D=E7=BD=AE=EF=BC=9B=202.=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=87=AA=E8=BD=A6=E5=8A=A8=E7=94=BB=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E4=BD=8D=E7=BD=AE=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.gradle | 2 +- .../map/impl/amap/AMapNaviViewWrapper.java | 182 ++++-------------- .../module_map_amap_my_location_icon.png | Bin 6992 -> 0 bytes .../map-amap/src/main/res/values/dimens.xml | 4 +- .../module/common/map/MyLocationUtil.java | 107 ++++++++++ .../module_map_amap_my_location_icon.png | Bin 0 -> 3097 bytes .../module_map_amap_my_location_icon.png | Bin 0 -> 3097 bytes .../res/layout/module_common_my_location.xml | 15 ++ .../extensions/entrance/EntranceFragment.java | 36 +++- .../entrance/EntrancePresenter.java | 1 + .../java/com/mogo/module/map/MapFragment.java | 4 + .../service/impl/adas/MogoADASController.java | 23 ++- 12 files changed, 217 insertions(+), 157 deletions(-) delete mode 100644 libraries/map-amap/src/main/res/drawable-xhdpi/module_map_amap_my_location_icon.png create mode 100644 modules/mogo-module-common/src/main/java/com/mogo/module/common/map/MyLocationUtil.java create mode 100644 modules/mogo-module-common/src/main/res/drawable-ldpi/module_map_amap_my_location_icon.png create mode 100644 modules/mogo-module-common/src/main/res/drawable-mdpi/module_map_amap_my_location_icon.png create mode 100644 modules/mogo-module-common/src/main/res/layout/module_common_my_location.xml diff --git a/config.gradle b/config.gradle index d8372e74c5..1b35de82ec 100644 --- a/config.gradle +++ b/config.gradle @@ -154,7 +154,7 @@ targetSdkVersion : 22, gpssimulatordebug : "com.mogo.module:module-gps-simulator-debug:${MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION}", gpssimulatornoop : "com.mogo.module:module-gps-simulator-noop:${MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION}", - adasapi : "com.zhidao.autopilot.support:adas:1.0.6.3", + adasapi : "com.zhidao.autopilot.support:adas:1.0.6.5", adasconfigapi : "com.zhidao.adasconfig:adasconfig:1.1.5", // 个人中心的SDK 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 20095d285f..1653a18a3c 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 @@ -1,27 +1,17 @@ package com.mogo.map.impl.amap; import android.content.Context; -import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Color; import android.graphics.Point; import android.graphics.Rect; -import android.graphics.drawable.Drawable; import android.location.Location; import android.os.Bundle; -import android.os.Handler; -import android.os.Looper; -import android.os.Message; import android.os.SystemClock; import android.os.Trace; -import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.animation.Interpolator; -import android.widget.ImageView; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import com.amap.api.maps.AMap; import com.amap.api.maps.AMapUtils; @@ -35,15 +25,13 @@ import com.amap.api.maps.model.MyLocationStyle; import com.amap.api.maps.model.Poi; import com.amap.api.maps.model.Polyline; import com.amap.api.maps.model.animation.Animation; +import com.amap.api.maps.model.animation.ScaleAnimation; import com.amap.api.maps.model.animation.TranslateAnimation; import com.amap.api.navi.AMapNaviView; import com.amap.api.navi.AMapNaviViewListener; import com.amap.api.navi.AMapNaviViewOptions; import com.amap.api.navi.enums.AMapNaviViewShowMode; import com.amap.api.navi.model.NaviInfo; -import com.bumptech.glide.request.RequestOptions; -import com.bumptech.glide.request.target.SimpleTarget; -import com.bumptech.glide.request.transition.Transition; import com.mogo.map.IMogoMap; import com.mogo.map.IMogoMapView; import com.mogo.map.MogoLatLng; @@ -62,11 +50,8 @@ import com.mogo.map.uicontroller.EnumMapUI; import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.map.uicontroller.MapCameraPosition; import com.mogo.map.uicontroller.MapControlResult; -import com.mogo.utils.UiThreadHandler; import com.mogo.utils.WindowUtils; -import com.mogo.utils.glide.GlideApp; import com.mogo.utils.logger.Logger; -import com.mogo.utils.storage.SharedPrefsMgr; import java.util.List; @@ -87,8 +72,7 @@ public class AMapNaviViewWrapper implements IMogoMapView, AMapNaviViewListener, AMapMessageListener, AMap.OnCameraChangeListener, - AMap.OnMyLocationChangeListener, - Handler.Callback{ + AMap.OnMyLocationChangeListener{ private static final String TAG = "AMapNaviViewWrapper"; @@ -137,7 +121,6 @@ public class AMapNaviViewWrapper implements IMogoMapView, // 设置路线相关的配置属性,如:路线的路况颜色,路线上是否显示摄像头气泡等。 // options.setRouteOverlayOptions( MapStyleUtils.getRouteOverlayOptions() ); // 设置自车的图片对象 - checkDefaultOption(); options.setCarBitmap( BitmapFactory.decodeResource( getContext().getResources(), DEFAULT_OPTION.getNaviCursorRes() ) ); // 设置指南针图标否在导航界面显示,默认显示。true,显示;false,隐藏。 options.setCompassEnabled( false ); @@ -565,18 +548,38 @@ public class AMapNaviViewWrapper implements IMogoMapView, mMapView.getMap().setMyLocationStyle( style ); if ( visible ) { // 强制刷新一遍车标 - setCarCursorOption(null); + setCarCursorOption(mCarCursorOption); // style.myLocationIcon( BitmapDescriptorFactory.fromResource( mCarCursorOption.getCarCursorRes() ) ); } } } - private boolean isInEmphasizeAnim = false; - @Override public void emphasizeMyLocation() { - isInEmphasizeAnim = true; - setCarCursorOption(null); + if (mMyLocationMarker == null) { + initMyLocationMarker(); + } + + ScaleAnimation animation = new ScaleAnimation(1f, 1.2f, 1f, 1.2f); + animation.setDuration(250); + + mMyLocationMarker.setAnimation(animation); +// mMyLocationMarker.setAnimationListener(new Animation.AnimationListener() { +// @Override +// public void onAnimationStart() { +// +// } +// +// @Override +// public void onAnimationEnd() { +// mMyLocationMarker.setAnimationListener(null); +// ScaleAnimation animation = new ScaleAnimation(1.5f, 1f, 1.5f, 1f); +// animation.setDuration(250); +// mMyLocationMarker.setAnimation(animation); +// mMyLocationMarker.startAnimation(); +// } +// }); + mMyLocationMarker.startAnimation(); } @Override @@ -939,42 +942,25 @@ public class AMapNaviViewWrapper implements IMogoMapView, return mIsCarLocked; } - private String myLocationConfigCache = null; - private boolean isUseDefaultOption = false; - - private void checkDefaultOption(){ - String myLocationConfig = SharedPrefsMgr.getInstance(getContext()).getString( - "MY_LOCATION_CONFIG", ""); - if (myLocationConfigCache == null || !myLocationConfigCache.equals(myLocationConfig)) { - // 内存缓存的地址为空,或者内存缓存的地址和sp保存的config不一致,那得重新获取bitmap - loadMyLocationIcon(myLocationConfig); - } else if (isInEmphasizeAnim) { - DEFAULT_OPTION.setCarCursorBmp(inflateMyLocation(myLocationBitmap)); - } - - } - @Override public void setCarCursorOption( CarCursorOption option ) { if (!isVisible) { // 当前自车图标没有显示,所以先不走下面的流程 return; } - if ( mCarCursorOption != null && mCarCursorOption != DEFAULT_OPTION ) { - mCarCursorOption.destroy(); - } - checkDefaultOption(); - if ( option != null ) { - try { - isUseDefaultOption = false; - mCarCursorOption = option.clone(); - } catch ( Exception e ) { - isUseDefaultOption = true; +// if ( mCarCursorOption != null && mCarCursorOption != DEFAULT_OPTION) { +// mCarCursorOption.destroy(); +// } + if(option != mCarCursorOption) { + if (option != null) { + try { + mCarCursorOption = option.clone(); + } catch (Exception e) { + mCarCursorOption = DEFAULT_OPTION; + } + } else { mCarCursorOption = DEFAULT_OPTION; } - } else { - isUseDefaultOption = true; - mCarCursorOption = DEFAULT_OPTION; } if ( !checkAMapView() ) { return; @@ -1032,96 +1018,4 @@ public class AMapNaviViewWrapper implements IMogoMapView, mMapView.getMap().moveCamera( CameraUpdateFactory.changeBearing( bearing ) ); } } - - protected void loadMyLocationIcon(String url) { - if ( Looper.myLooper() != Looper.getMainLooper() ) { - UiThreadHandler.post( ()-> loadMyLocationIconInUiThread(url)); - } else { - loadMyLocationIconInUiThread(url); - } - } - - private void loadMyLocationIconInUiThread(String url) { - - if (!url.isEmpty()) { - RequestOptions options = new RequestOptions() - .placeholder( DEFAULT_OPTION.getCarCursorRes() ) - .error( DEFAULT_OPTION.getCarCursorRes() ) - .dontAnimate(); - GlideApp.with( getContext() ) - .asBitmap() - .load( url ) - .apply( options ) - .into( new SimpleTarget< Bitmap >() { - @Override - public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition< ? super Bitmap > transition ) { - if (isUseDefaultOption) { - myLocationConfigCache = url; - myLocationBitmap = resource; - DEFAULT_OPTION.setCarCursorBmp(inflateMyLocation(resource)); - setCarCursorOption(null); - } - } - - @Override - public void onLoadStarted( @Nullable Drawable placeholder ) { - } - - @Override - public void onLoadCleared( @Nullable Drawable placeholder ) { - } - - @Override - public void onLoadFailed( @Nullable Drawable errorDrawable ) { - } - } ); - } - } - - private float emphasizeAnimOffset = 1f; - - private Bitmap inflateMyLocation(Bitmap res) { - if (res == null) { - throw new IllegalArgumentException("inflate myLocation bitmap can not be null!"); - } - View root = - LayoutInflater.from(getContext()).inflate(R.layout.module_map_amap_my_location, null, false); - ImageView iv = root.findViewById(R.id.module_map_amap_my_location_iv); - iv.setImageBitmap(res); - if (isInEmphasizeAnim) { - iv.setScaleX(emphasizeAnimOffset); - iv.setScaleY(emphasizeAnimOffset); - handler.sendEmptyMessageDelayed(MSG_CONTINUE_EMPHASIZE_ANIM, EMPHASIZE_ANIM_DELAY); - } - return BitmapDescriptorFactory.fromView(root).getBitmap(); - } - - /** - * 目前仅用于强调动画 - */ - private Handler handler = new Handler(this); - private static final int MSG_CONTINUE_EMPHASIZE_ANIM = 1001; - private static final long EMPHASIZE_ANIM_DELAY = 80; - private int emphasizeAnimProgress = 0; - private Bitmap myLocationBitmap; - - @Override - public boolean handleMessage(Message msg) { - if (msg.what == MSG_CONTINUE_EMPHASIZE_ANIM) { - if (emphasizeAnimProgress < 5) { - emphasizeAnimOffset += 0.1; - emphasizeAnimProgress++; - }else if(emphasizeAnimProgress<10){ - emphasizeAnimOffset -= 0.1; - emphasizeAnimProgress++; - } else if (emphasizeAnimProgress == 10) { - isInEmphasizeAnim = false; - emphasizeAnimProgress = 0; - emphasizeAnimOffset = 1; - } - setCarCursorOption(null); - return true; - } - return false; - } } diff --git a/libraries/map-amap/src/main/res/drawable-xhdpi/module_map_amap_my_location_icon.png b/libraries/map-amap/src/main/res/drawable-xhdpi/module_map_amap_my_location_icon.png deleted file mode 100644 index b71e0a3b1de74b2020130c1d7758358457e7be13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6992 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 X5Z>DqlCl3PGBkB%owqfL;PC$g@jG;` diff --git a/libraries/map-amap/src/main/res/values/dimens.xml b/libraries/map-amap/src/main/res/values/dimens.xml index 6898799649..21d58bd9ed 100644 --- a/libraries/map-amap/src/main/res/values/dimens.xml +++ b/libraries/map-amap/src/main/res/values/dimens.xml @@ -1,7 +1,7 @@ 60px - 78px - 120px + 44px + 66px 146px \ No newline at end of file diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/MyLocationUtil.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/MyLocationUtil.java new file mode 100644 index 0000000000..347447f467 --- /dev/null +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/MyLocationUtil.java @@ -0,0 +1,107 @@ +package com.mogo.module.common.map; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.drawable.Drawable; +import android.os.Looper; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.ImageView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.amap.api.maps.model.BitmapDescriptorFactory; +import com.bumptech.glide.request.RequestOptions; +import com.bumptech.glide.request.target.SimpleTarget; +import com.bumptech.glide.request.transition.Transition; +import com.mogo.map.uicontroller.CarCursorOption; +import com.mogo.module.common.MogoApisHandler; +import com.mogo.module.common.R; +import com.mogo.utils.UiThreadHandler; +import com.mogo.utils.glide.GlideApp; + +/** + * 自车图标工具类 + * + * @author tongchenfei + */ +public class MyLocationUtil { + + private static boolean isLoadingIcon = false; + private static boolean needEmphasizeMyLocation = false; + + public static void emphasizeMyLocation(){ + if (!isLoadingIcon) { + MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().emphasizeMyLocation(); + }else{ + needEmphasizeMyLocation = true; + } + } + + private static final CarCursorOption DEFAULT_OPTION = new CarCursorOption.Builder() + .build(); + + public static void setMyLocationIconUrl(Context context, String url) { + if (url == null || url.isEmpty()) { + return; + } + + if (Looper.myLooper() != Looper.getMainLooper()) { + UiThreadHandler.post(() -> loadMyLocationIconInUiThread(context, url)); + } else { + loadMyLocationIconInUiThread(context, url); + } + } + + private static void loadMyLocationIconInUiThread(Context context, String url) { + if (!url.isEmpty()) { + isLoadingIcon = true; + RequestOptions options = new RequestOptions() + .placeholder(DEFAULT_OPTION.getCarCursorRes()) + .error(DEFAULT_OPTION.getCarCursorRes()) + .dontAnimate(); + GlideApp.with(context) + .asBitmap() + .load(url) + .apply(options) + .into(new SimpleTarget() { + @Override + public void onResourceReady(@NonNull Bitmap resource, + @Nullable Transition transition) { + DEFAULT_OPTION.setCarCursorBmp(inflateMyLocation(context, resource)); + MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().setCarCursorOption(DEFAULT_OPTION); + if (needEmphasizeMyLocation) { + needEmphasizeMyLocation = false; + MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().emphasizeMyLocation(); + } + isLoadingIcon = false; + } + + @Override + public void onLoadStarted(@Nullable Drawable placeholder) { + } + + @Override + public void onLoadCleared(@Nullable Drawable placeholder) { + } + + @Override + public void onLoadFailed(@Nullable Drawable errorDrawable) { + } + }); + } + } + + private static Bitmap inflateMyLocation(Context context, Bitmap res) { + if (res == null) { + throw new IllegalArgumentException("inflate myLocation bitmap can not be null!"); + } + View root = + LayoutInflater.from(context).inflate(R.layout.module_map_amap_my_location, null, false); + ImageView iv = + root.findViewById(R.id.module_map_amap_my_location_iv); + iv.setImageBitmap(res); + return BitmapDescriptorFactory.fromView(root).getBitmap(); + } +} diff --git a/modules/mogo-module-common/src/main/res/drawable-ldpi/module_map_amap_my_location_icon.png b/modules/mogo-module-common/src/main/res/drawable-ldpi/module_map_amap_my_location_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7538da98b2b5a190b50e63f29a80cb588b720e6e GIT binary patch literal 3097 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 literal 0 HcmV?d00001 diff --git a/modules/mogo-module-common/src/main/res/drawable-mdpi/module_map_amap_my_location_icon.png b/modules/mogo-module-common/src/main/res/drawable-mdpi/module_map_amap_my_location_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7538da98b2b5a190b50e63f29a80cb588b720e6e GIT binary patch literal 3097 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 literal 0 HcmV?d00001 diff --git a/modules/mogo-module-common/src/main/res/layout/module_common_my_location.xml b/modules/mogo-module-common/src/main/res/layout/module_common_my_location.xml new file mode 100644 index 0000000000..690f7b6c48 --- /dev/null +++ b/modules/mogo-module-common/src/main/res/layout/module_common_my_location.xml @@ -0,0 +1,15 @@ + + + + + \ 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 52e86d3716..28b1bccd75 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java @@ -1,11 +1,15 @@ package com.mogo.module.extensions.entrance; import android.content.Intent; +import android.graphics.Color; import android.graphics.Rect; import android.os.Bundle; import android.os.Debug; import android.os.Handler; +import android.text.SpannableString; +import android.text.Spanned; import android.text.TextUtils; +import android.text.style.ForegroundColorSpan; import android.util.TypedValue; import android.view.LayoutInflater; import android.view.MotionEvent; @@ -21,6 +25,7 @@ import androidx.constraintlayout.widget.ConstraintSet; import androidx.constraintlayout.widget.Group; import com.alibaba.android.arouter.launcher.ARouter; +import com.amap.api.maps.model.MyLocationStyle; import com.bumptech.glide.request.RequestOptions; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.debug.DebugConfig; @@ -42,6 +47,7 @@ import com.mogo.module.common.dialog.WMDialog; import com.mogo.module.common.glide.SkinAbleBitmapTarget; import com.mogo.module.common.map.CustomNaviInterrupter; import com.mogo.module.common.map.MapCenterPointStrategy; +import com.mogo.module.common.map.MyLocationUtil; import com.mogo.module.common.map.Scene; import com.mogo.module.common.view.OnPreventFastClickListener; import com.mogo.module.extensions.ExtensionsModuleConst; @@ -836,7 +842,10 @@ public class EntranceFragment extends MvpFragment { - MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().emphasizeMyLocation(); + MyLocationUtil.emphasizeMyLocation(); // View v = LayoutInflater.from(getContext()).inflate(R.layout.demo_top, null); // TextView tv = v.findViewById(R.id.tvIndex); // tv.setText("sub view height: " + currentHeight + ": " + v); @@ -879,7 +888,12 @@ public class EntranceFragment extends MvpFragment TipToast.tip("分享成功")); + findViewById(R.id.btnShowTextTip).setOnClickListener(v-> TipToast.tip("分享成功分享成功分享成功分享成功分享成功分享成功分享成功分享成功分享成功")); findViewById(R.id.btnShowDrawableTip).setOnClickListener(v->{ mMsgContainer.setVisibility(View.VISIBLE); @@ -928,9 +942,17 @@ public class EntranceFragment extends MvpFragment{ mMsgContainer.setVisibility(View.GONE); - TipDrawable drawable = - new TipDrawable(getResources().getDrawable(R.drawable.model_ext_default_user_head)); - TipToast.tip("分享成功",drawable); + + + String enthusiasmIndex = "一般的字加粗的字一般的字"; + SpannableString spannableStringUnSelectCountStr = new SpannableString(enthusiasmIndex); + ForegroundColorSpan foregroundColorSpanUnSelectCount = new ForegroundColorSpan(Color.RED); + spannableStringUnSelectCountStr.setSpan(foregroundColorSpanUnSelectCount, 4, 7, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + + TipToast.tip(spannableStringUnSelectCountStr.toString()); +// TipDrawable drawable = +// new TipDrawable(getResources().getDrawable(R.drawable.model_ext_default_user_head)); +// TipToast.tip("分享成功",drawable); }); } diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java index 457428d4b4..31ac15568d 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java @@ -244,6 +244,7 @@ public class EntrancePresenter extends Presenter implements Weathe private void requestCarModelList() { Map params = new HashMap<>(8); params.put("sn", Utils.getSn()); +// params.put("sn", "ZD802B1932L00617"); mNetWork.create(UserInfoNetApiServices.class, DztHttpConstant.getBaseUrl()). requestCarModelList(params). subscribeOn(Schedulers.io()). diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapFragment.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapFragment.java index 0ad88b5e6e..90e40bb097 100644 --- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapFragment.java +++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapFragment.java @@ -12,11 +12,13 @@ import com.mogo.map.IMogoUiSettings; import com.mogo.map.MogoMapView; import com.mogo.map.uicontroller.EnumMapUI; import com.mogo.map.uicontroller.IMogoMapUIController; +import com.mogo.module.common.map.MyLocationUtil; import com.mogo.service.MogoServicePaths; import com.mogo.service.statusmanager.IMogoStatusChangedListener; import com.mogo.service.statusmanager.IMogoStatusManager; import com.mogo.service.statusmanager.StatusDescriptor; import com.mogo.utils.logger.Logger; +import com.mogo.utils.storage.SharedPrefsMgr; /** * @author congtaowang @@ -50,6 +52,8 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter > implements mMogoMap = mMogoMapView.getMap(); mMogoMap.getUIController().showMyLocation( true ); mMogoMap.getUIController().recoverLockMode();// 启动锁车 + // 根据本地配置设置自车图标 + MyLocationUtil.setMyLocationIconUrl(getContext(), SharedPrefsMgr.getInstance(getContext()).getString("MY_LOCATION_CONFIG", "")); } @NonNull 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 7770ed5df4..4da127db85 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 @@ -9,12 +9,14 @@ import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.context.ContextHolderUtil; import com.mogo.map.uicontroller.EnumMapUI; import com.mogo.module.common.MogoApisHandler; +import com.mogo.module.common.map.MyLocationUtil; import com.mogo.module.common.utils.CarSeries; import com.mogo.service.MogoServicePaths; import com.mogo.service.adas.IMogoADASController; import com.mogo.service.adas.IMogoAdasDataCallback; import com.mogo.service.impl.singleton.SingletonsHolder; import com.mogo.service.statusmanager.IMogoStatusManager; +import com.mogo.utils.TipToast; import com.mogo.utils.UiThreadHandler; import com.mogo.utils.logger.Logger; import com.mogo.utils.storage.SharedPrefsMgr; @@ -74,6 +76,8 @@ public class MogoADASController implements IMogoADASController { } } + private volatile boolean needEmphasizeMyLocation = false; + @Override public void showADAS() { if ( !SharedPrefsMgr.getInstance( AbsMogoApplication.getApp() ).getBoolean( getSpGuide(), false ) ) { @@ -109,10 +113,10 @@ public class MogoADASController implements IMogoADASController { @Override public void selectCarModelUrl(String carStyleUrl) { Logger.d(TAG,"selectCarModelUrl: "+carStyleUrl); - // todo 修改自车图标展示 + needEmphasizeMyLocation = true; + // 修改自车图标展示 SharedPrefsMgr.getInstance(context).putString("MY_LOCATION_CONFIG", carStyleUrl); - MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().setCarCursorOption(null); -// MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().showMyLocation(); + MyLocationUtil.setMyLocationIconUrl(context, carStyleUrl); } @Override @@ -122,6 +126,19 @@ public class MogoADASController implements IMogoADASController { AutopilotServiceManage.getInstance().settingCarModelListInfo(SharedPrefsMgr.getInstance(context).getString( "CAR_MODEL_LIST", "default-value")); } + + @Override + public void clickSettingBack() { + if (needEmphasizeMyLocation) { + MyLocationUtil.emphasizeMyLocation(); + } + needEmphasizeMyLocation = false; + } + + @Override + public void showToast(String msg) { + UiThreadHandler.post(() -> TipToast.tip(msg)); + } }); }