From 220674f5103838eb6a8bdeab78ecad3b4795ddd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Fri, 29 May 2020 21:01:00 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=8D=87=E7=BA=A7V2X=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 2 +- foudations/build/jrebel/project-cleaned.marker | 0 gradle.properties | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 foudations/build/jrebel/project-cleaned.marker diff --git a/.idea/misc.xml b/.idea/misc.xml index 2dc54c489f..707ee6e613 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/foudations/build/jrebel/project-cleaned.marker b/foudations/build/jrebel/project-cleaned.marker deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/gradle.properties b/gradle.properties index 95294f0192..b4058bc8c5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -66,7 +66,7 @@ MOGO_MODULE_GUIDESHOW_PROVIDER_VERSION=1.0.2-SNAPSHOT # 在线车辆F MOGO_MODULE_ONLINECAR_VERSION=1.0.3.2 # v2x -MOGO_MODULE_V2X_VERSION=1.0.8 +MOGO_MODULE_V2X_VERSION=1.0.9 # 媒体卡片 MOGO_MODULE_MEDIA_VERSION=1.0.4.4 # 推送 From 2a2d5e4d99dd65a2d22ac6321ef6b1af60fb0c08 Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Mon, 1 Jun 2020 10:45:46 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=8A=A8=E7=94=BB?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/module/extensions/navi/TopView.java | 31 ++++++- .../extensions/utils/TopViewAnimHelper.java | 88 +++++++++++-------- 2 files changed, 79 insertions(+), 40 deletions(-) diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/TopView.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/TopView.java index 8e13c5bd79..a4ef3f3a3e 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/TopView.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/TopView.java @@ -3,9 +3,13 @@ package com.mogo.module.extensions.navi; import android.content.Context; import android.util.AttributeSet; import android.view.MotionEvent; +import android.view.View; import android.view.ViewConfiguration; +import android.view.ViewTreeObserver; import android.widget.FrameLayout; +import com.mogo.utils.logger.Logger; + /** * 顶部view封装,用于处理手指滑动 */ @@ -23,6 +27,7 @@ public class TopView extends FrameLayout { } private OnTopViewSlideListener slideListener; + private OnChildAddedListener childAddedListener; @Override public boolean onTouchEvent(MotionEvent event) { @@ -55,10 +60,34 @@ public class TopView extends FrameLayout { this.slideListener = slideListener; } - public interface OnTopViewSlideListener{ + public void setChildAddedListener(OnChildAddedListener childAddedListener) { + this.childAddedListener = childAddedListener; + } + + public interface OnTopViewSlideListener { /** * 监听到view上滑 */ void onSlideUp(); } + + @Override + public void onViewAdded(View child) { + super.onViewAdded(child); + Logger.d("TopView", "onViewAdded==" + child); + child.post(() -> { + if (childAddedListener != null) { + childAddedListener.onChildAdded(child); + } + }); + } + + public interface OnChildAddedListener { + /** + * 子view添加完成,但是并不确定已经绘制完成 + * + * @param child + */ + void onChildAdded(View child); + } } diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java index 18d03c828d..b3e06f0569 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java @@ -1,6 +1,7 @@ package com.mogo.module.extensions.utils; import android.animation.Animator; +import android.os.Handler; import android.transition.AutoTransition; import android.transition.Transition; import android.transition.TransitionManager; @@ -53,6 +54,8 @@ public class TopViewAnimHelper { private Transition transition = new AutoTransition(); private TextView cameraMode; + private Handler handler = new Handler(); + private TopViewAnimHelper() { } @@ -195,6 +198,7 @@ public class TopViewAnimHelper { } + @Override public void onAnimationRepeat(Animator animation) { @@ -206,48 +210,54 @@ public class TopViewAnimHelper { viewCaches.add(view); topContainer.addView(view, params); - if (naviBg.getVisibility() == View.VISIBLE) { - remainDistanceGroup.setVisibility(View.GONE); - remainTimeGroup.setVisibility(View.GONE); - arriveTimeGroup.setVisibility(View.GONE); - } + topContainer.setChildAddedListener(child -> { + if (naviBg.getVisibility() == View.VISIBLE) { + remainDistanceGroup.setVisibility(View.GONE); + remainTimeGroup.setVisibility(View.GONE); + arriveTimeGroup.setVisibility(View.GONE); + } - constraintSet.clone(topMotionLayout); + constraintSet.clone(topMotionLayout); - constraintSet.clear(R.id.module_entrance_id_top_container, ConstraintSet.BOTTOM); - constraintSet.connect(R.id.module_entrance_id_top_container, ConstraintSet.TOP, - R.id.module_entrance_id_top_motion_layout, ConstraintSet.TOP); - if (CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X) { + constraintSet.clear(R.id.module_entrance_id_top_container, ConstraintSet.BOTTOM); + constraintSet.connect(R.id.module_entrance_id_top_container, ConstraintSet.TOP, + R.id.module_entrance_id_top_motion_layout, ConstraintSet.TOP); +// if (CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X) { TransitionManager.beginDelayedTransition(topMotionLayout, transition); - } - checkCameraModePosition(false); - if (naviBg.getVisibility() == View.VISIBLE) { - // 约束设置需要在applyTo()方法之前执行,visiable设置需要在applyTo() - // 方法之后执行才能生效,所以分开了两个判断,至于为什么这么做才能生效,不得而知 - constraintSet.connect(tvNextDistance.getId(), ConstraintSet.BOTTOM, - ivTurnIcon.getId(), ConstraintSet.BOTTOM); - constraintSet.clear(tvNextRoad.getId(), ConstraintSet.BOTTOM); - constraintSet.connect(tvNextRoad.getId(), ConstraintSet.BASELINE, - tvNextDistance.getId(), ConstraintSet.BASELINE); - constraintSet.connect(tvNextRoad.getId(), ConstraintSet.LEFT, - R.id.module_map_id_navi_next_info_turn_info, ConstraintSet.RIGHT, - (int) topMotionLayout.getContext().getResources().getDimension(R.dimen.dp_46)); - } - constraintSet.applyTo(topMotionLayout); - ivTurnIcon.getLayoutParams().height = - (int) getDimen(R.dimen.module_ext_navi_info_panel_turn_icon_small_height); - ivTurnIcon.getLayoutParams().width = - (int) getDimen(R.dimen.module_ext_navi_info_panel_turn_icon_small_width); - naviBg.getLayoutParams().height = - (int) topMotionLayout.getContext().getResources().getDimension(R.dimen.module_ext_navi_info_panel_small_height); - int scene = 0; - if (naviBg.getVisibility() == View.VISIBLE) { - scene = Scene.NAVI_WITH_ROAD_EVENT; - } else { - scene = Scene.AIMLESS_WITH_ROAD_EVENT; - } - Logger.d(TAG, "show top setMapCenterPointByScene: " + scene); - MapCenterPointStrategy.setMapCenterPointByScene(mogoMapUIController, scene); +// } + checkCameraModePosition(false); + if (naviBg.getVisibility() == View.VISIBLE) { + // 约束设置需要在applyTo()方法之前执行,visiable设置需要在applyTo() + // 方法之后执行才能生效,所以分开了两个判断,至于为什么这么做才能生效,不得而知 + constraintSet.connect(tvNextDistance.getId(), ConstraintSet.BOTTOM, + ivTurnIcon.getId(), ConstraintSet.BOTTOM); + constraintSet.clear(tvNextRoad.getId(), ConstraintSet.BOTTOM); + constraintSet.connect(tvNextRoad.getId(), ConstraintSet.BASELINE, + tvNextDistance.getId(), ConstraintSet.BASELINE); + constraintSet.connect(tvNextRoad.getId(), ConstraintSet.LEFT, + R.id.module_map_id_navi_next_info_turn_info, ConstraintSet.RIGHT, + (int) topMotionLayout.getContext().getResources().getDimension(R.dimen.dp_46)); + } + constraintSet.applyTo(topMotionLayout); + ivTurnIcon.getLayoutParams().height = + (int) getDimen(R.dimen.module_ext_navi_info_panel_turn_icon_small_height); + ivTurnIcon.getLayoutParams().width = + (int) getDimen(R.dimen.module_ext_navi_info_panel_turn_icon_small_width); + naviBg.getLayoutParams().height = + (int) topMotionLayout.getContext().getResources().getDimension(R.dimen.module_ext_navi_info_panel_small_height); + int scene = 0; + if (naviBg.getVisibility() == View.VISIBLE) { + scene = Scene.NAVI_WITH_ROAD_EVENT; + } else { + scene = Scene.AIMLESS_WITH_ROAD_EVENT; + } + Logger.d(TAG, "show top setMapCenterPointByScene: " + scene); + MapCenterPointStrategy.setMapCenterPointByScene(mogoMapUIController, scene); + }); + +// handler.post(() -> { +// +// }); } } }