From 866f919eb21c4a121089f8208c8fc0e6021a5f78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Mon, 2 Nov 2020 16:16:36 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=9B=B4=E6=92=AD?= =?UTF-8?q?=E5=BC=B9=E7=AA=97=E8=B0=83=E7=94=A8=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=E4=B8=8E=E5=AF=BC=E8=88=AA=E5=B8=83=E5=B1=80=E6=97=A0?= =?UTF-8?q?=E8=81=94=E5=8A=A8=E7=9A=84=E5=BC=B9=E7=AA=97=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extensions/entrance/EntranceFragment.java | 5 + .../extensions/utils/TopViewManager.java | 34 ++ .../utils/TopViewNoLinkageAnimHelper.java | 535 ++++++++++++++++++ .../res/layout/module_ext_layout_entrance.xml | 13 + .../scene/livecar/V2XPushLiveCarScenario.java | 55 +- .../scene/livecar/V2XPushLiveCarWindow.java | 8 +- .../scene/livecar/V2XRoadLiveCarScenario.java | 26 +- .../scene/livecar/V2XRoadLiveCarWindow.java | 6 +- .../module/v2x/view/V2XLiveGSYVideoView.java | 2 +- .../main/res/layout/item_v2x_live_video.xml | 8 +- .../res/layout/item_v2x_push_live_video.xml | 4 +- .../layout/item_v2x_road_live_car_detail.xml | 7 +- .../windowview/IMogoTopViewManager.java | 47 ++ 13 files changed, 688 insertions(+), 62 deletions(-) create mode 100644 modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewNoLinkageAnimHelper.java 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 2afba379f1..9f691ddd29 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 @@ -48,6 +48,7 @@ import com.mogo.module.extensions.navi.NaviInfoView; import com.mogo.module.extensions.userinfo.UserInfo; import com.mogo.module.extensions.utils.EntranceViewHolder; import com.mogo.module.extensions.utils.TopViewAnimHelper; +import com.mogo.module.extensions.utils.TopViewNoLinkageAnimHelper; import com.mogo.module.share.manager.ServiceApisManager; import com.mogo.service.IMogoServiceApis; import com.mogo.service.analytics.IMogoAnalytics; @@ -255,6 +256,7 @@ public class EntranceFragment extends MvpFragment viewCaches = new ArrayList<>(); + private Map statusListenerMap = new ArrayMap<>(); + + private View currentAnimatingView = null; + + public void addSubView(View subView, LayoutParams params, + IMogoTopViewStatusListener statusListener) { + if (isTopViewOut || topContainerNoLinkage.getChildCount() == 0) { + throw new IllegalStateException("no base view in top view"); + } + if (subView == null) { + throw new IllegalArgumentException("method addTopView params view is null"); + } + if (params == null) { + throw new IllegalArgumentException("method addTopView params LayoutParams is null"); + } + + // 是在已经添加过view之后,才能添加sub view,所以直接走增加小view的逻辑就行 + if (!viewCaches.contains(subView)) { + viewCaches.add(subView); + statusListenerMap.put(subView, statusListener); + subView.setTranslationY(0); + subView.setTranslationY(-(params.height)); + topContainerNoLinkage.addView(subView, params); + Logger.d(TAG, "添加subView: " + subView.getTranslationY() + " height:" + + " " + subView.getHeight() + " paramsHeight: " + params.height); + if (statusListenerMap.get(subView) != null) { + statusListenerMap.get(subView).beforeViewAddAnim(subView); + } + subView.animate().translationY(0).setDuration(500).setListener(new Animator.AnimatorListener() { + @Override + public void onAnimationStart(Animator animation) { + + } + + @Override + public void onAnimationEnd(Animator animation) { + IMogoTopViewStatusListener listener = statusListenerMap.get(subView); + if (listener != null) { + listener.onViewAdded(subView); + } + } + + @Override + public void onAnimationCancel(Animator animation) { + + } + + + @Override + public void onAnimationRepeat(Animator animation) { + + } + }).start(); + } + + } + + public void removeSubView(View subView) { + if (topContainerNoLinkage.getChildCount() < 2) { + throw new IllegalStateException("view count not enough"); + } + Logger.d(TAG, + "小view退出: " + subView.getTranslationY() + " height: " + subView.getHeight()); + if (statusListenerMap.get(subView) != null) { + statusListenerMap.get(subView).beforeViewRemoveAnim(subView); + } + subView.animate().translationY(-(subView.getHeight())).setDuration(500).setListener(new Animator.AnimatorListener() { + @Override + public void onAnimationStart(Animator animation) { + + } + + @Override + public void onAnimationEnd(Animator animation) { + Logger.d(TAG, "onAnimationEnd: " + subView); + viewCaches.remove(subView); + topContainerNoLinkage.removeView(subView); + IMogoTopViewStatusListener listener = statusListenerMap.remove(subView); + if (listener != null) { + listener.onViewRemoved(subView); + } else { + Logger.d(TAG, "listener is null"); + } + } + + @Override + public void onAnimationCancel(Animator animation) { + viewCaches.remove(subView); + topContainerNoLinkage.removeView(subView); + } + + @Override + public void onAnimationRepeat(Animator animation) { + + } + }).start(); + } + + public void startTopInAnim(View view, LayoutParams params, + IMogoTopViewStatusListener statusListener) { + + if (topMotionLayout == null) { + return; + } + + Logger.d(TAG, "startTopInAnim=====" + isTopViewOut); + if (view == null) { + throw new IllegalArgumentException("method addTopView params view is null"); + } + if (params == null) { + throw new IllegalArgumentException("method addTopView params LayoutParams is null"); + } + if (!viewCaches.contains(view)) { + // 判断此view是否已经增加到了顶部view,如果增加过就不增加了 + view.setTranslationY(0); + statusListenerMap.put(view, statusListener); + Logger.d(TAG, "开始执行"); + isTopViewOut = false; + if (topContainerNoLinkage.getChildCount() > 0) { + // 顶部view已经有了内容,新增内容无需整体布局变化,只是新增布局加个动画 + viewCaches.add(view); + + // 生硬的删掉之前的view + int lastCount = topContainerNoLinkage.getChildCount(); + Logger.d(TAG, "进入动画,lastCount: " + lastCount); + for (int i = 0; i < lastCount; i++) { + View lastView = topContainerNoLinkage.getChildAt(i); + if (statusListenerMap.get(lastView) != null) { + statusListenerMap.get(lastView).beforeViewRemoveAnim(lastView); + } + viewCaches.remove(lastView); + if (statusListenerMap.get(lastView) != null) { + statusListenerMap.remove(lastView).onViewRemoved(lastView); + } + } + Logger.d(TAG, "生硬的删掉了之前的view: " + viewCaches.size()); + topContainerNoLinkage.removeAllViews(); + // 同时设置一下隐藏状态 + MogoApisHandler.getInstance().getApis().getStatusManagerApi().setTopViewShow(ExtensionsModuleConst.TYPE_ENTRANCE, false); + + // 如果高度变化,生硬的变化一下高度 + Logger.d(TAG, "container.height: " + topContainerNoLinkage.getHeight()); + if (topContainerNoLinkage.getHeight() != params.height) { + constraintSet.clone(topMotionLayout); + LayoutParams p = topContainerNoLinkage.getLayoutParams(); + p.height = params.height; + topContainerNoLinkage.setLayoutParams(p); + constraintSet.connect(naviBg.getId(), ConstraintSet.TOP, + R.id.module_entrance_id_top_motion_layout, ConstraintSet.TOP, + computeNaviMarginTop(params.height)); + constraintSet.applyTo(topMotionLayout); + Logger.d(TAG, "改变container的高度==="); + } + + view.setTranslationY(-(params.height)); + topContainerNoLinkage.addView(view, params); + Logger.d(TAG, "顶部view已经有布局了,增加新增view滑入动画: " + view.getTranslationY() + " height:" + + " " + view.getHeight() + " paramsHeight: " + params.height); + if (statusListenerMap.get(view) != null) { + statusListenerMap.get(view).beforeViewAddAnim(view); + } + view.animate().translationY(0).setDuration(500).setListener(new Animator.AnimatorListener() { + @Override + public void onAnimationStart(Animator animation) { + + } + + @Override + public void onAnimationEnd(Animator animation) { + IMogoTopViewStatusListener listener = statusListenerMap.get(view); + if (listener != null) { + listener.onViewAdded(view); + } + } + + @Override + public void onAnimationCancel(Animator animation) { + + } + + + @Override + public void onAnimationRepeat(Animator animation) { + + } + }).start(); + } else { + // 顶部view还没有内容,需要整体下移 + currentAnimatingView = view; + viewCaches.add(view); + topContainerNoLinkage.addView(view, params); + Logger.d(TAG, "整体进入==== view.visibility: " + view.getVisibility() + " view" + + ".position: (" + view.getX() + ", " + view.getY() + ") params.width: " + params.width + " params.height: " + params.height); + if (statusListenerMap.get(view) != null) { + statusListenerMap.get(view).beforeViewAddAnim(view); + } + topContainerNoLinkage.setChildAddedListener(child -> { + topContainerNoLinkage.setChildAddedListener(null); + constraintSet.clone(topMotionLayout); + + constraintSet.clear(R.id.module_entrance_id_top_container_no_linkage, + ConstraintSet.BOTTOM); + constraintSet.connect(R.id.module_entrance_id_top_container_no_linkage, ConstraintSet.TOP, + R.id.module_entrance_id_top_motion_layout, ConstraintSet.TOP); + TransitionManager.beginDelayedTransition(topMotionLayout, transition); + checkCameraModePosition(false); + + constraintSet.applyTo(topMotionLayout); + + int scene = Scene.AIMLESS_WITH_ROAD_EVENT; + Logger.d(TAG, "show top setMapCenterPointByScene: " + scene); + MapCenterPointStrategy.setMapCenterPointByScene(mogoMapUIController, scene); + }); + } + } + + MogoApisHandler.getInstance().getApis().getStatusManagerApi().setTopViewShow(ExtensionsModuleConst.TYPE_ENTRANCE, true); + } + + /** + * 退出最新的(也就是最上面的)view + */ + private void startLatestTopOutAnim() { + if (topContainerNoLinkage.getChildCount() > 1) { + removeSubView(topContainerNoLinkage.getChildAt(topContainerNoLinkage.getChildCount() - 1)); + } else if (topContainerNoLinkage.getChildCount() > 0) { + startTopOutAnim(topContainerNoLinkage.getChildAt(topContainerNoLinkage.getChildCount() - 1)); + } + } + + public void startTopOutAnim(View view) { + if (topMotionLayout == null) { + return; + } + Logger.d(TAG, "startTopOutAnim====="); + if (!isTopViewOut && viewCaches.contains(view)) { + // 顶部view仅剩一个view,需要整体上移 + if (statusListenerMap.get(view) != null) { + statusListenerMap.get(view).beforeViewRemoveAnim(view); + } + isTopViewOut = true; + constraintSet.clone(topMotionLayout); + + constraintSet.clear(R.id.module_entrance_id_top_container_no_linkage, ConstraintSet.TOP); + constraintSet.connect(R.id.module_entrance_id_top_container_no_linkage, ConstraintSet.BOTTOM, + R.id.module_entrance_id_top_motion_layout, ConstraintSet.TOP); + TransitionManager.beginDelayedTransition(topMotionLayout, transition); + checkCameraModePosition(false); + + constraintSet.applyTo(topMotionLayout); + + int scene = Scene.AIMLESS; + Logger.d(TAG, "hide top setMapCenterPointByScene: " + scene); + MapCenterPointStrategy.setMapCenterPointByScene(mogoMapUIController, scene); + MogoApisHandler.getInstance().getApis().getStatusManagerApi().setTopViewShow(ExtensionsModuleConst.TYPE_ENTRANCE, false); + } + } + + public void hideNaviView() { + if (topMotionLayout == null) { + return; + } + + Logger.d(TAG, "hideNaviView====="); + setNaviVisibility(View.GONE); + remainDistanceGroup.setVisibility(View.GONE); + remainTimeGroup.setVisibility(View.GONE); + arriveTimeGroup.setVisibility(View.GONE); + int scene = 0; + if (isTopViewOut) { + scene = Scene.AIMLESS; + } else { + scene = Scene.AIMLESS_WITH_ROAD_EVENT; + } + Logger.d(TAG, "hide navi setMapCenterPointByScene: " + scene); + MapCenterPointStrategy.setMapCenterPointByScene(mogoMapUIController, scene); + checkCameraModePosition(true); + } + + private void checkCameraModePosition(boolean isNeedClone) { + if (isNeedClone) { + constraintSet.clone(topMotionLayout); + } + if (naviBg.getVisibility() == View.VISIBLE) { + constraintSet.connect(cameraMode.getId(), ConstraintSet.TOP, naviBg.getId(), + ConstraintSet.BOTTOM, (int) getDimen(R.dimen.dp_30)); + } else { + if (isTopViewOut) { + constraintSet.connect(cameraMode.getId(), ConstraintSet.TOP, naviBg.getId(), + ConstraintSet.BOTTOM, + (int) getDimen(R.dimen.module_ext_north_goneMarginTop)); + } else { + constraintSet.connect(cameraMode.getId(), ConstraintSet.TOP, + R.id.module_entrance_id_top_container_no_linkage, + ConstraintSet.BOTTOM, + (int) getDimen(R.dimen.dp_30)); + } + } + if (isNeedClone) { + constraintSet.applyTo(topMotionLayout); + } + } + + private float getDimen(int resId) { + return (int) topMotionLayout.getContext().getResources().getDimensionPixelSize(resId); + } + + private int computeNaviMarginTop(int height) { + int result = (int) (height - (getDimen(R.dimen.module_ext_top_over_navi_height)) - getDimen(R.dimen.module_common_shadow_width_pos)); + Logger.d(TAG, "computeNaviMarginTop: " + height + " result: " + result); + return result; + } + + interface OnTopViewAnimSimpleListener { + void onAnimStart(); + + void onAnimEnd(); + } + + public boolean isViewAdded(View view) { + return viewCaches.contains(view); + } + + private void setNaviVisibility(int visibility) { + ivTurnIcon.setVisibility(visibility); + tvNextRoad.setVisibility(visibility); + tvNextDistance.setVisibility(visibility); + remainTimeGroup.setVisibility(visibility); + remainDistanceGroup.setVisibility(visibility); + arriveTimeGroup.setVisibility(visibility); + naviBg.setVisibility(visibility); + tvNextDistanceUnit.setVisibility(visibility); + tvTurnInfo.setVisibility(visibility); + } + + public void removeAllView() { + Logger.d(TAG, "remove all view"); + isTopViewOut = true; + int lastCount = topContainerNoLinkage.getChildCount(); + for (int i = 0; i < lastCount; i++) { + View child = topContainerNoLinkage.getChildAt(i); + viewCaches.remove(child); + IMogoTopViewStatusListener listener = statusListenerMap.remove(child); + if (listener != null) { + listener.beforeViewRemoveAnim(child); + listener.onViewRemoved(child); + } + } + topContainerNoLinkage.removeAllViews(); + hideNaviView(); + MapCenterPointStrategy.setMapCenterPointByScene(mogoMapUIController, Scene.AIMLESS); + } + + public void clear() { + topMotionLayout = null; + remainTimeGroup = null; + remainDistanceGroup = null; + arriveTimeGroup = null; + naviBg = null; + ivTurnIcon = null; + tvNextDistance = null; + tvNextRoad = null; + tvNextDistanceUnit = null; + tvTurnInfo = null; + topContainerNoLinkage = null; + cameraMode = null; + transition = null; + } +} 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 290f28af62..9f26af1456 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 @@ -59,6 +59,8 @@ app:layout_goneMarginTop="@dimen/module_ext_north_goneMarginTop" tools:visibility="visible" /> + + + + + @Override public void init(@Nullable V2XMessageEntity v2XMessageEntity) { - boolean isWindowShow = V2XServiceManager.getMoGoV2XStatusManager().isLeftLiveVideoShow(); - if (isWindowShow) { - close(); - } - setV2XMessageEntity(v2XMessageEntity); - if (v2XMessageEntity != null && - (v2XMessageEntity.getContent().getVideoSn() != null || - !TextUtils.isEmpty(v2XMessageEntity.getContent().getVideoUrl()))) { - show(); + if (!isSameScenario(v2XMessageEntity) + && V2XServiceManager.getMoGoStatusManager().isMainPageLaunched()) { + boolean isWindowShow = V2XServiceManager.getMoGoV2XStatusManager().isLeftLiveVideoShow(); + if (isWindowShow) { + close(); + } + setV2XMessageEntity(v2XMessageEntity); + if (v2XMessageEntity != null && + (v2XMessageEntity.getContent().getVideoSn() != null || + !TextUtils.isEmpty(v2XMessageEntity.getContent().getVideoUrl()))) { + show(); + } else { + TipToast.shortTip("附近没有可直播车机"); + Logger.e(V2XConst.MODULE_NAME, "直播地址为null"); + } } else { - TipToast.shortTip("附近没有可直播车机"); - Logger.e(V2XConst.MODULE_NAME, "直播地址为null"); + setV2XMessageEntity(v2XMessageEntity); + Logger.w(V2XConst.MODULE_NAME, "要处理的场景已经存在,丢弃这次初始化"); } -// if (!isSameScenario(v2XMessageEntity) -// && V2XServiceManager.getMoGoStatusManager().isMainPageLaunched()) { -// } else { -// setV2XMessageEntity(v2XMessageEntity); -// Logger.w(V2XConst.MODULE_NAME, "要处理的场景已经存在,丢弃这次初始化"); -// } } @Override @@ -77,21 +77,16 @@ public class V2XPushLiveCarScenario extends AbsV2XScenario @Override public void showWindow() { if (getV2XWindow() != null) { -// ViewGroup.LayoutParams layoutParams = -// new ViewGroup.LayoutParams( -// ViewGroup.LayoutParams.MATCH_PARENT, -// (int) V2XUtils.getApp().getResources().getDimension(R.dimen.module_v2x_event_window_height)); -// V2XServiceManager -// .getMogoTopViewManager() -// .addView(getV2XWindow().getView(), layoutParams, this); -// getV2XWindow().show(getV2XMessageEntity().getContent()); -// V2XServiceManager.getMoGoV2XStatusManager().setLiveCarWindowShow(TAG, true); - + ViewGroup.LayoutParams layoutParams = + new ViewGroup.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + (int) V2XUtils.getApp().getResources() + .getDimension(R.dimen.v2x_video_window_height)); V2XServiceManager - .getIMogoWindowManager() - .addView(getV2XWindow().getView(), 0, 0, false); + .getMogoTopViewManager() + .addViewNoLinkage(getV2XWindow().getView(), layoutParams, this); getV2XWindow().show(getV2XMessageEntity().getContent()); - V2XServiceManager.getMoGoV2XStatusManager().setV2XAnimationWindowShow(TAG, true); + V2XServiceManager.getMoGoV2XStatusManager().setLiveCarWindowShow(TAG, true); } } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XPushLiveCarWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XPushLiveCarWindow.java index 0b31e6ca8c..5943f0d32a 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XPushLiveCarWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XPushLiveCarWindow.java @@ -70,8 +70,8 @@ public class V2XPushLiveCarWindow extends RelativeLayout implements IV2XWindow { //移除窗体 V2XServiceManager - .getIMogoWindowManager() - .removeView(this); + .getMogoTopViewManager() + .removeViewNoLinkage(this); }); } @@ -144,8 +144,8 @@ public class V2XPushLiveCarWindow extends RelativeLayout implements IV2XWindow v2XRoadEventEntity = v2XMessageEntity.getContent(); if (v2XRoadEventEntity != null) { - if (!isSameScenario(v2XMessageEntity) - && V2XServiceManager.getMoGoStatusManager().isMainPageLaunched()) { + if (v2XMessageEntity.isShowState()) { mV2XRoadLiveCarScenario.setV2XWindow(new V2XRoadLiveCarWindow()); setV2XMessageEntity(v2XMessageEntity); show(); } else { - setV2XMessageEntity(v2XMessageEntity); - Logger.w(V2XConst.MODULE_NAME, "要处理的场景已经存在,丢弃这次初始化"); + close(); } - - } else { - close(); - } } catch (Exception e) { e.printStackTrace(); @@ -78,11 +73,16 @@ public class V2XRoadLiveCarScenario extends AbsV2XScenario + android:layout_height="wrap_content" + android:background="@drawable/v2x_alert_window_bg" + android:clipToPadding="false"> + app:layout_constraintTop_toTopOf="parent" + app:roundLayoutRadius="@dimen/dp_30" /> + + android:clipToPadding="false"> Date: Mon, 2 Nov 2020 16:38:20 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/map/impl/automap/navi/AutoNaviClient.java | 2 +- .../src/main/java/com/mogo/module/apps/AppFilterImpl.java | 4 ++-- .../com/mogo/module/service/marker/MapMarkerBaseView.java | 6 +----- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviClient.java b/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviClient.java index 9a8e553254..39bd15bb19 100644 --- a/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviClient.java +++ b/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviClient.java @@ -56,7 +56,7 @@ public class AutoNaviClient implements IMogoNavi { private final Context mContext; private AutoNaviClient( Context context ) { - mContext = context; + mContext = context.getApplicationContext(); } public static AutoNaviClient getInstance( Context context ) { diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppFilterImpl.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppFilterImpl.java index 424749795d..7029ae106b 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppFilterImpl.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppFilterImpl.java @@ -5,7 +5,7 @@ import android.content.pm.PackageInfo; import android.text.TextUtils; import com.mogo.commons.AbsMogoApplication; -import com.mogo.module.common.utils.CarSeries; +import com.mogo.commons.debug.DebugConfig; import java.io.BufferedReader; import java.io.File; @@ -29,7 +29,7 @@ public class AppFilterImpl { private static List< String > sExternalConfigPackages = new ArrayList<>(); static { - if ( CarSeries.getSeries() != CarSeries.CAR_SERIES_F80X ) { + if ( !DebugConfig.getProductFlavor().startsWith( "f8" ) ) { final String[] values = AbsMogoApplication.getApp().getResources().getStringArray( R.array.module_apps_array_filter_packages ); if ( values != null ) { mFilterPackages = new ArrayList( Arrays.asList( values ) ); diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerBaseView.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerBaseView.java index 4ffecc4c40..0e51579ecc 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerBaseView.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerBaseView.java @@ -93,6 +93,7 @@ public abstract class MapMarkerBaseView extends LinearLayout implements IMarkerV } private void loadPoiTypeIconInUiThread(String url,int res) { + ivIcon.setImageResource(res); if (!url.isEmpty()) { ivIcon.setPlaceHolder(res); ivIcon.setFailureHolder(res); @@ -118,11 +119,6 @@ public abstract class MapMarkerBaseView extends LinearLayout implements IMarkerV Logger.e(TAG, "loadImageWithMarker onFailure."); } }); - }else{ - ivIcon.setImageResource(res); - } - if (mMarker != null) { - mMarker.setIcon(fromView(MapMarkerBaseView.this)); } } From 5dae299f8755dcf2db682d6c3273ac0219a05172 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Mon, 2 Nov 2020 16:47:33 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=A1=B5=E9=9D=A2UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/res/layout/item_v2x_live_video.xml | 2 +- .../src/main/res/layout/item_v2x_push_live_video.xml | 2 +- .../src/main/res/layout/item_v2x_road_live_car_detail.xml | 2 +- modules/mogo-module-v2x/src/main/res/values-ldpi/dimens.xml | 3 ++- modules/mogo-module-v2x/src/main/res/values-mdpi/dimens.xml | 1 + modules/mogo-module-v2x/src/main/res/values-xhdpi/dimens.xml | 1 + 6 files changed, 7 insertions(+), 4 deletions(-) diff --git a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_live_video.xml b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_live_video.xml index a239f59969..e170be569a 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_live_video.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_live_video.xml @@ -10,7 +10,7 @@ 460px + 464px 474px - + diff --git a/modules/mogo-module-v2x/src/main/res/values-mdpi/dimens.xml b/modules/mogo-module-v2x/src/main/res/values-mdpi/dimens.xml index f3a326f52a..33f9e7b3ae 100644 --- a/modules/mogo-module-v2x/src/main/res/values-mdpi/dimens.xml +++ b/modules/mogo-module-v2x/src/main/res/values-mdpi/dimens.xml @@ -106,6 +106,7 @@ 460px + 464px 474px diff --git a/modules/mogo-module-v2x/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-v2x/src/main/res/values-xhdpi/dimens.xml index f3f01b22e6..8968abfbcb 100644 --- a/modules/mogo-module-v2x/src/main/res/values-xhdpi/dimens.xml +++ b/modules/mogo-module-v2x/src/main/res/values-xhdpi/dimens.xml @@ -103,6 +103,7 @@ 830px + 664px 674px From cbc575ccf313ef89eb1955698b72b847621c4747 Mon Sep 17 00:00:00 2001 From: liujing Date: Mon, 2 Nov 2020 17:25:27 +0800 Subject: [PATCH 4/4] =?UTF-8?q?v2x=E8=A7=86=E9=A2=91=E6=92=AD=E6=94=BE?= =?UTF-8?q?=E5=99=A8=E7=99=BD=E5=8A=A0=E9=BB=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/res/layout/window_road_video_layout.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_road_video_layout.xml b/modules/mogo-module-v2x/src/main/res/layout/window_road_video_layout.xml index ec3e8626d3..4eb87eec93 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/window_road_video_layout.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/window_road_video_layout.xml @@ -14,7 +14,7 @@ android:layout_marginTop="@dimen/dp_30" android:layout_marginRight="@dimen/dp_30" android:layout_marginBottom="@dimen/dp_327" - android:background="#D9FFFFFF" + android:background="@drawable/module_v2x_shadow_bkg" app:roundLayoutRadius="@dimen/dp_28">