From 9deba00f04daca3e79a1349db502266079512d9f Mon Sep 17 00:00:00 2001 From: liujing Date: Tue, 16 Jun 2020 17:34:47 +0800 Subject: [PATCH 1/9] =?UTF-8?q?bug-D80XCD-1412=20sn=E4=B8=8D=E6=AD=A3?= =?UTF-8?q?=E7=A1=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 2be089adf2..697b89654d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -71,7 +71,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.1.13 +MOGO_MODULE_V2X_VERSION=1.1.14 # 推送 MOGO_MODULE_PUSH_VERSION=1.0.1 # 广告资源位 From 9c2250d8ca2af8316dc19a5a91ab68170602aa0d Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Tue, 16 Jun 2020 17:47:46 +0800 Subject: [PATCH 2/9] add log --- .../com/mogo/module/extensions/utils/TopViewAnimHelper.java | 3 ++- .../src/main/res/layout/module_ext_layout_entrance.xml | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) 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 0b6ebc03de..d2425ae4c1 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 @@ -217,7 +217,8 @@ public class TopViewAnimHelper { // tvNextRoad.setTextSize(getDimen(R.dimen.dp_34)); // } topContainer.addView(view, params); - + Logger.d(TAG, "整体进入==== view.visibility: " + view.getVisibility() + " view" + + ".position: (" + view.getX() + ", " + view.getY() + ") params.width: " + params.width + " params.height: " + params.height); topContainer.setChildAddedListener(child -> { if (naviBg.getVisibility() == View.VISIBLE) { remainDistanceGroup.setVisibility(View.GONE); 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 95ceaa4c07..a8d9fee6ac 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 @@ -252,6 +252,7 @@ android:layout_height="wrap_content" android:focusable="true" android:clickable="true" + android:background="#0ff" app:layout_constraintBottom_toTopOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" /> From 67c7fd8e8777d0a156a1939f79fc7fffa19aceff Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Tue, 16 Jun 2020 19:33:52 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=A4=E4=B8=AA?= =?UTF-8?q?=E5=8A=A8=E7=94=BB=E5=9B=9E=E8=B0=83=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/extensions/utils/TopViewAnimHelper.java | 13 ++++++++++++- .../windowview/IMogoTopViewStatusListener.java | 12 ++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) 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 0b6ebc03de..3cc8457df8 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 @@ -184,6 +184,9 @@ public class TopViewAnimHelper { topContainer.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) { @@ -217,7 +220,9 @@ public class TopViewAnimHelper { // tvNextRoad.setTextSize(getDimen(R.dimen.dp_34)); // } topContainer.addView(view, params); - + if (statusListenerMap.get(view) != null) { + statusListenerMap.get(view).beforeViewAddAnim(view); + } topContainer.setChildAddedListener(child -> { if (naviBg.getVisibility() == View.VISIBLE) { remainDistanceGroup.setVisibility(View.GONE); @@ -300,6 +305,9 @@ public class TopViewAnimHelper { // 顶部view包含多个view,只推出当前view,不进行整体上移 Logger.d(TAG, "小view退出: " + view.getTranslationY() + " height: " + view.getHeight()); + if (statusListenerMap.get(view) != null) { + statusListenerMap.get(view).beforeViewRemoveAnim(view); + } view.animate().translationY(-(view.getHeight())).setDuration(500).setListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animation) { @@ -333,6 +341,9 @@ public class TopViewAnimHelper { } else { // 顶部view仅剩一个view,需要整体上移 currentAnimatingView = view; + if (statusListenerMap.get(view) != null) { + statusListenerMap.get(view).beforeViewRemoveAnim(view); + } isTopViewOut = true; // if (naviBg.getVisibility() == View.VISIBLE) { // tvNextRoad.setTextSize(getDimen(R.dimen diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/windowview/IMogoTopViewStatusListener.java b/services/mogo-service-api/src/main/java/com/mogo/service/windowview/IMogoTopViewStatusListener.java index db9df440b4..c3316b01ed 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/windowview/IMogoTopViewStatusListener.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/windowview/IMogoTopViewStatusListener.java @@ -19,4 +19,16 @@ public interface IMogoTopViewStatusListener { * @param view 移除的view */ void onViewRemoved(View view); + + /** + * view添加动画开始之前 + * @param view 添加的view + */ + void beforeViewAddAnim(View view); + + /** + * view 移除动画开始之前 + * @param view 移除的view + */ + void beforeViewRemoveAnim(View view); } From 9b1300134cf42ca0bc35bd2b088d45aa3b3c73b2 Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Wed, 17 Jun 2020 09:44:55 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8A=A8=E7=94=BB?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=8F=90=E5=8D=87=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 50 +++++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/gradle.properties b/gradle.properties index 697b89654d..8c248fb17e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -27,31 +27,31 @@ PASSWORD=xintai2018 RELEASE=false # 模块版本 ## 工程内模块 -MOGO_COMMONS_VERSION=1.2.1 -MOGO_UTILS_VERSION=1.2.1 -MAP_AMAP_VERSION=1.2.1 -MAP_AUTONAVI_VERSION=1.2.1 -MOGO_MAP_VERSION=1.2.1 -MOGO_MAP_API_VERSION=1.2.1 -MOGO_SERVICE_VERSION=1.2.1 -MOGO_SERVICE_API_VERSION=1.2.1 -MOGO_CONNECTION_VERSION=1.2.1 -MOGO_MODULE_APPS_VERSION=1.2.1 -MOGO_MODULE_NAVI_VERSION=1.2.1 -MOGO_MODULE_SHARE_VERSION=1.2.1 -MOGO_MODULE_COMMON_VERSION=1.2.1 -MOGO_MODULE_MAIN_VERSION=1.2.1 -MOGO_MODULE_MAP_VERSION=1.2.1 -MOGO_MODULE_SERVICE_VERSION=1.2.1 -MOGO_MODULE_EXTENSIONS_VERSION=1.2.1 -MOGO_MODULE_SEARCH_VERSION=1.2.1 -MOGO_MODULE_BACK_VERSION=1.2.1 -MOGO_MODULE_GPS_SIMULATOR_VERSION=1.2.1 -MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.2.1 -MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.2.1 -MOGO_MODULE_AUTHORIZE_VERSION=1.2.1 -MOGO_MODULE_GUIDE_VERSION=1.2.1 -MOGO_MODULE_MEDIA_VERSION=1.2.1 +MOGO_COMMONS_VERSION=1.2.1.1 +MOGO_UTILS_VERSION=1.2.1.1 +MAP_AMAP_VERSION=1.2.1.1 +MAP_AUTONAVI_VERSION=1.2.1.1 +MOGO_MAP_VERSION=1.2.1.1 +MOGO_MAP_API_VERSION=1.2.1.1 +MOGO_SERVICE_VERSION=1.2.1.1 +MOGO_SERVICE_API_VERSION=1.2.1.1 +MOGO_CONNECTION_VERSION=1.2.1.1 +MOGO_MODULE_APPS_VERSION=1.2.1.1 +MOGO_MODULE_NAVI_VERSION=1.2.1.1 +MOGO_MODULE_SHARE_VERSION=1.2.1.1 +MOGO_MODULE_COMMON_VERSION=1.2.1.1 +MOGO_MODULE_MAIN_VERSION=1.2.1.1 +MOGO_MODULE_MAP_VERSION=1.2.1.1 +MOGO_MODULE_SERVICE_VERSION=1.2.1.1 +MOGO_MODULE_EXTENSIONS_VERSION=1.2.1.1 +MOGO_MODULE_SEARCH_VERSION=1.2.1.1 +MOGO_MODULE_BACK_VERSION=1.2.1.1 +MOGO_MODULE_GPS_SIMULATOR_VERSION=1.2.1.1 +MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.2.1.1 +MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.2.1.1 +MOGO_MODULE_AUTHORIZE_VERSION=1.2.1.1 +MOGO_MODULE_GUIDE_VERSION=1.2.1.1 +MOGO_MODULE_MEDIA_VERSION=1.2.1.1 MOGO_MODULE_MAIN_LAUNCHER_VERSION = 1.0.0.2 MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.0.0.2 From 757f3d056d828065f280dfca39bf05a4579ee6f8 Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Wed, 17 Jun 2020 10:51:55 +0800 Subject: [PATCH 5/9] opt --- gradle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 8c248fb17e..755621bd64 100644 --- a/gradle.properties +++ b/gradle.properties @@ -53,8 +53,8 @@ MOGO_MODULE_AUTHORIZE_VERSION=1.2.1.1 MOGO_MODULE_GUIDE_VERSION=1.2.1.1 MOGO_MODULE_MEDIA_VERSION=1.2.1.1 -MOGO_MODULE_MAIN_LAUNCHER_VERSION = 1.0.0.2 -MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.0.0.2 +MOGO_MODULE_MAIN_LAUNCHER_VERSION = 1.0.0.3 +MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.0.0.3 ## 工程外部模块 From 8b84c16cbb592d10d99e7377d0407c4ff6d160cd Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Wed, 17 Jun 2020 11:38:35 +0800 Subject: [PATCH 6/9] add log --- .../main/java/com/mogo/module/extensions/navi/TopView.java | 6 ++++++ .../com/mogo/module/extensions/utils/TopViewAnimHelper.java | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) 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 a4ef3f3a3e..0f98f21a68 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 @@ -82,6 +82,12 @@ public class TopView extends FrameLayout { }); } + @Override + public void onViewRemoved(View child) { + super.onViewRemoved(child); + Logger.d("TopView", "onViewRemoved: " + child); + } + public interface OnChildAddedListener { /** * 子view添加完成,但是并不确定已经绘制完成 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 d2425ae4c1..a12db9d15b 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 @@ -152,7 +152,7 @@ public class TopViewAnimHelper { hideNaviView(); } - private boolean isTopViewOut = true; + private volatile boolean isTopViewOut = true; private List viewCaches = new ArrayList<>(); private Map statusListenerMap = new ArrayMap<>(); From a128caa462f35ef608b86b6f45b3a7b1b248720a Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Wed, 17 Jun 2020 14:02:25 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dtop=20view=E6=9C=89?= =?UTF-8?q?=E6=97=B6=E4=B8=8D=E5=BC=B9=E5=87=BA=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 56 +++++++++---------- .../extensions/utils/TopViewAnimHelper.java | 1 + .../res/layout/module_ext_layout_entrance.xml | 1 - 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/gradle.properties b/gradle.properties index 755621bd64..47ab02a6d0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -27,34 +27,34 @@ PASSWORD=xintai2018 RELEASE=false # 模块版本 ## 工程内模块 -MOGO_COMMONS_VERSION=1.2.1.1 -MOGO_UTILS_VERSION=1.2.1.1 -MAP_AMAP_VERSION=1.2.1.1 -MAP_AUTONAVI_VERSION=1.2.1.1 -MOGO_MAP_VERSION=1.2.1.1 -MOGO_MAP_API_VERSION=1.2.1.1 -MOGO_SERVICE_VERSION=1.2.1.1 -MOGO_SERVICE_API_VERSION=1.2.1.1 -MOGO_CONNECTION_VERSION=1.2.1.1 -MOGO_MODULE_APPS_VERSION=1.2.1.1 -MOGO_MODULE_NAVI_VERSION=1.2.1.1 -MOGO_MODULE_SHARE_VERSION=1.2.1.1 -MOGO_MODULE_COMMON_VERSION=1.2.1.1 -MOGO_MODULE_MAIN_VERSION=1.2.1.1 -MOGO_MODULE_MAP_VERSION=1.2.1.1 -MOGO_MODULE_SERVICE_VERSION=1.2.1.1 -MOGO_MODULE_EXTENSIONS_VERSION=1.2.1.1 -MOGO_MODULE_SEARCH_VERSION=1.2.1.1 -MOGO_MODULE_BACK_VERSION=1.2.1.1 -MOGO_MODULE_GPS_SIMULATOR_VERSION=1.2.1.1 -MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.2.1.1 -MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.2.1.1 -MOGO_MODULE_AUTHORIZE_VERSION=1.2.1.1 -MOGO_MODULE_GUIDE_VERSION=1.2.1.1 -MOGO_MODULE_MEDIA_VERSION=1.2.1.1 +MOGO_COMMONS_VERSION=1.2.1.2 +MOGO_UTILS_VERSION=1.2.1.2 +MAP_AMAP_VERSION=1.2.1.2 +MAP_AUTONAVI_VERSION=1.2.1.2 +MOGO_MAP_VERSION=1.2.1.2 +MOGO_MAP_API_VERSION=1.2.1.2 +MOGO_SERVICE_VERSION=1.2.1.2 +MOGO_SERVICE_API_VERSION=1.2.1.2 +MOGO_CONNECTION_VERSION=1.2.1.2 +MOGO_MODULE_APPS_VERSION=1.2.1.2 +MOGO_MODULE_NAVI_VERSION=1.2.1.2 +MOGO_MODULE_SHARE_VERSION=1.2.1.2 +MOGO_MODULE_COMMON_VERSION=1.2.1.2 +MOGO_MODULE_MAIN_VERSION=1.2.1.2 +MOGO_MODULE_MAP_VERSION=1.2.1.2 +MOGO_MODULE_SERVICE_VERSION=1.2.1.2 +MOGO_MODULE_EXTENSIONS_VERSION=1.2.1.2 +MOGO_MODULE_SEARCH_VERSION=1.2.1.2 +MOGO_MODULE_BACK_VERSION=1.2.1.2 +MOGO_MODULE_GPS_SIMULATOR_VERSION=1.2.1.2 +MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.2.1.2 +MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.2.1.2 +MOGO_MODULE_AUTHORIZE_VERSION=1.2.1.2 +MOGO_MODULE_GUIDE_VERSION=1.2.1.2 +MOGO_MODULE_MEDIA_VERSION=1.2.1.2 -MOGO_MODULE_MAIN_LAUNCHER_VERSION = 1.0.0.3 -MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.0.0.3 +MOGO_MODULE_MAIN_LAUNCHER_VERSION = 1.0.0.4 +MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.0.0.4 ## 工程外部模块 @@ -71,7 +71,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.1.14 +MOGO_MODULE_V2X_VERSION=1.1.132-SNAPSHOT # 推送 MOGO_MODULE_PUSH_VERSION=1.0.1 # 广告资源位 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 0ec3102bb3..60c72a3fa6 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 @@ -174,6 +174,7 @@ public class TopViewAnimHelper { } if (!viewCaches.contains(view)) { // 判断此view是否已经增加到了顶部view,如果增加过就不增加了 + view.setTranslationY(0); statusListenerMap.put(view, statusListener); Logger.d(TAG, "开始执行"); isTopViewOut = false; 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 a8d9fee6ac..95ceaa4c07 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 @@ -252,7 +252,6 @@ android:layout_height="wrap_content" android:focusable="true" android:clickable="true" - android:background="#0ff" app:layout_constraintBottom_toTopOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" /> From 4e339c475e1b64dc86d83d0e50ff093fdc5938eb Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Wed, 17 Jun 2020 15:43:56 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9top=20view=E5=B1=95?= =?UTF-8?q?=E7=A4=BA=E9=80=BB=E8=BE=91=EF=BC=8C=E5=90=8C=E6=97=B6=E5=8F=AA?= =?UTF-8?q?=E5=B1=95=E7=A4=BA=E4=B8=80=E4=B8=AAview=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E5=8F=A0=E5=8A=A0=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 56 +++++++++---------- .../extensions/entrance/EntranceFragment.java | 20 ++++++- .../extensions/utils/TopViewAnimHelper.java | 37 +++++++++++- 3 files changed, 80 insertions(+), 33 deletions(-) diff --git a/gradle.properties b/gradle.properties index 47ab02a6d0..ce2fec7504 100644 --- a/gradle.properties +++ b/gradle.properties @@ -24,37 +24,37 @@ SNAPSHOT_REPOSITORY_URL=http://nexus.zhidaoauto.com/repository/maven-snapshots/ USERNAME=xintai PASSWORD=xintai2018 # 编译模式: false - 依赖本地版本, true - 依赖 maven 版本 -RELEASE=false +RELEASE=true # 模块版本 ## 工程内模块 -MOGO_COMMONS_VERSION=1.2.1.2 -MOGO_UTILS_VERSION=1.2.1.2 -MAP_AMAP_VERSION=1.2.1.2 -MAP_AUTONAVI_VERSION=1.2.1.2 -MOGO_MAP_VERSION=1.2.1.2 -MOGO_MAP_API_VERSION=1.2.1.2 -MOGO_SERVICE_VERSION=1.2.1.2 -MOGO_SERVICE_API_VERSION=1.2.1.2 -MOGO_CONNECTION_VERSION=1.2.1.2 -MOGO_MODULE_APPS_VERSION=1.2.1.2 -MOGO_MODULE_NAVI_VERSION=1.2.1.2 -MOGO_MODULE_SHARE_VERSION=1.2.1.2 -MOGO_MODULE_COMMON_VERSION=1.2.1.2 -MOGO_MODULE_MAIN_VERSION=1.2.1.2 -MOGO_MODULE_MAP_VERSION=1.2.1.2 -MOGO_MODULE_SERVICE_VERSION=1.2.1.2 -MOGO_MODULE_EXTENSIONS_VERSION=1.2.1.2 -MOGO_MODULE_SEARCH_VERSION=1.2.1.2 -MOGO_MODULE_BACK_VERSION=1.2.1.2 -MOGO_MODULE_GPS_SIMULATOR_VERSION=1.2.1.2 -MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.2.1.2 -MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.2.1.2 -MOGO_MODULE_AUTHORIZE_VERSION=1.2.1.2 -MOGO_MODULE_GUIDE_VERSION=1.2.1.2 -MOGO_MODULE_MEDIA_VERSION=1.2.1.2 +MOGO_COMMONS_VERSION=1.2.1.3 +MOGO_UTILS_VERSION=1.2.1.3 +MAP_AMAP_VERSION=1.2.1.3 +MAP_AUTONAVI_VERSION=1.2.1.3 +MOGO_MAP_VERSION=1.2.1.3 +MOGO_MAP_API_VERSION=1.2.1.3 +MOGO_SERVICE_VERSION=1.2.1.3 +MOGO_SERVICE_API_VERSION=1.2.1.3 +MOGO_CONNECTION_VERSION=1.2.1.3 +MOGO_MODULE_APPS_VERSION=1.2.1.3 +MOGO_MODULE_NAVI_VERSION=1.2.1.3 +MOGO_MODULE_SHARE_VERSION=1.2.1.3 +MOGO_MODULE_COMMON_VERSION=1.2.1.3 +MOGO_MODULE_MAIN_VERSION=1.2.1.3 +MOGO_MODULE_MAP_VERSION=1.2.1.3 +MOGO_MODULE_SERVICE_VERSION=1.2.1.3 +MOGO_MODULE_EXTENSIONS_VERSION=1.2.1.3 +MOGO_MODULE_SEARCH_VERSION=1.2.1.3 +MOGO_MODULE_BACK_VERSION=1.2.1.3 +MOGO_MODULE_GPS_SIMULATOR_VERSION=1.2.1.3 +MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.2.1.3 +MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.2.1.3 +MOGO_MODULE_AUTHORIZE_VERSION=1.2.1.3 +MOGO_MODULE_GUIDE_VERSION=1.2.1.3 +MOGO_MODULE_MEDIA_VERSION=1.2.1.3 -MOGO_MODULE_MAIN_LAUNCHER_VERSION = 1.0.0.4 -MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.0.0.4 +MOGO_MODULE_MAIN_LAUNCHER_VERSION = 1.0.0.5 +MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.0.0.5 ## 工程外部模块 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 9648fe49a8..f49414dd40 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 @@ -49,7 +49,6 @@ import com.mogo.service.module.IMogoRegisterCenter; import com.mogo.service.statusmanager.IMogoStatusChangedListener; import com.mogo.service.statusmanager.IMogoStatusManager; import com.mogo.service.statusmanager.StatusDescriptor; -import com.mogo.utils.AppUtils; import com.mogo.utils.LaunchUtils; import com.mogo.utils.ResourcesHelper; import com.mogo.utils.UiThreadHandler; @@ -184,6 +183,8 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent private List< View > demoCache = new ArrayList<>(); + private int[] heights = new int[]{100,200,300}; + @Override protected void initViews() { mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( getContext() ); @@ -200,9 +201,12 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent // // todo 测试动画 // View v = LayoutInflater.from(getContext()).inflate(R.layout.demo_top, null); // TextView tv = v.findViewById(R.id.tvIndex); -// tv.setText(demoCache.size() + ": " + v); +// Random random = new Random(); +// int height = heights[random.nextInt(3)]; +// tv.setText(demoCache.size()+" height: "+height + ": " + v); // demoCache.add(v); -// mApis.getTopViewManager().addView(v, new IMogoTopViewStatusListener() { +// LayoutParams params = new ViewGroup.LayoutParams(LayoutParams.MATCH_PARENT, height); +// mApis.getTopViewManager().addView(v, params,new IMogoTopViewStatusListener() { // @Override // public void onViewAdded(View view) { // Logger.d(TAG, "onViewAdded: " + view); @@ -212,6 +216,16 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent // public void onViewRemoved(View view) { // Logger.d(TAG, "onViewRemoved: " + view); // } +// +// @Override +// public void beforeViewAddAnim(View view) { +// Logger.d(TAG, "beforeViewAddAnim: " + view); +// } +// +// @Override +// public void beforeViewRemoveAnim(View view) { +// Logger.d(TAG, "beforeViewRemoveAnim: " + view); +// } // }); // 原始逻辑 showShareDialog(); 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 60c72a3fa6..e938b8e751 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 @@ -8,6 +8,7 @@ import android.transition.TransitionManager; import android.util.ArrayMap; import android.view.View; import android.view.ViewGroup; +import android.view.ViewGroup.LayoutParams; import android.view.animation.BounceInterpolator; import android.view.animation.OvershootInterpolator; import android.widget.ImageView; @@ -181,6 +182,31 @@ public class TopViewAnimHelper { if (topContainer.getChildCount() > 0) { // 顶部view已经有了内容,新增内容无需整体布局变化,只是新增布局加个动画 viewCaches.add(view); + + // 生硬的删掉上一个view + View lastView = topContainer.getChildAt(0); + if (statusListenerMap.get(lastView) != null) { + statusListenerMap.get(lastView).beforeViewRemoveAnim(lastView); + } + topContainer.removeView(lastView); + viewCaches.remove(lastView); + if (statusListenerMap.get(lastView) != null) { + statusListenerMap.remove(lastView).onViewRemoved(lastView); + } + // 如果高度变化,生硬的变化一下高度 + Logger.d(TAG,"container.height: "+topContainer.getHeight()); + if (topContainer.getHeight() != params.height) { + constraintSet.clone(topMotionLayout); + LayoutParams p = topContainer.getLayoutParams(); + p.height = params.height; + topContainer.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)); topContainer.addView(view, params); Logger.d(TAG, "顶部view已经有布局了,增加新增view滑入动画: " + view.getTranslationY() + " height:" + @@ -227,6 +253,7 @@ public class TopViewAnimHelper { statusListenerMap.get(view).beforeViewAddAnim(view); } topContainer.setChildAddedListener(child -> { + topContainer.setChildAddedListener(null); if (naviBg.getVisibility() == View.VISIBLE) { remainDistanceGroup.setVisibility(View.GONE); remainTimeGroup.setVisibility(View.GONE); @@ -261,7 +288,7 @@ public class TopViewAnimHelper { constraintSet.connect(naviBg.getId(), ConstraintSet.TOP, R.id.module_entrance_id_top_motion_layout, ConstraintSet.TOP, - (int) getDimen(R.dimen.dp_316)); + computeNaviMarginTop(params.height)); } constraintSet.applyTo(topMotionLayout); ivTurnIcon.getLayoutParams().height = @@ -455,7 +482,7 @@ public class TopViewAnimHelper { (int) topMotionLayout.getContext().getResources().getDimension(R.dimen.dp_46)); constraintSet.connect(naviBg.getId(), ConstraintSet.TOP, R.id.module_entrance_id_top_motion_layout, ConstraintSet.TOP, - (int) getDimen(R.dimen.dp_316)); + computeNaviMarginTop(topContainer.getHeight())); // ivTurnIcon.getLayoutParams().height = // (int) getDimen(R.dimen.module_ext_navi_info_panel_turn_icon_small_height); // ivTurnIcon.getLayoutParams().width = @@ -524,6 +551,12 @@ public class TopViewAnimHelper { return (int) topMotionLayout.getContext().getResources().getDimension(resId); } + private int computeNaviMarginTop(int height) { + int result = (int) (height - (getDimen(R.dimen.dp_350) - getDimen(R.dimen.dp_316))); + Logger.d(TAG, "computeNaviMarginTop: " + height + " result: " + result); + return result; + } + interface OnTopViewAnimSimpleListener { void onAnimStart(); From 34177988c07d3e6b3caba6f1afcd735333cb06ce Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Thu, 18 Jun 2020 10:33:55 +0800 Subject: [PATCH 9/9] opt --- .../service/marker/MapMarkerManager.java | 92 +++++-------------- 1 file changed, 24 insertions(+), 68 deletions(-) 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 064551593a..94145f945b 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 @@ -322,7 +322,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, carPoints.add( new MogoLatLng( markerLocation.getLat(), markerLocation.getLon() ) ); } - String sn = getCarSnFromEntity( markerOnlineCar ); + String sn = getPrimaryKeyFromEntity( markerOnlineCar ); IMogoMarker mogoMarker = existCarMap.get( sn ); if ( mogoMarker == null ) { mogoMarker = drawMapMarker( markerShowEntity, ServiceConst.MARKER_Z_INDEX_LOW ); @@ -361,7 +361,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, markerShowEntity.setMarkerType( markerExploreWay.getType() ); markerShowEntity.setTextContent( markerExploreWay.getAddr() ); - String sn = getCarSnFromEntity( markerExploreWay ); + String sn = getPrimaryKeyFromEntity( markerExploreWay ); IMogoMarker mogoMarker = existCarMap.get( sn ); if ( mogoMarker == null ) { Logger.d( TAG, "draw road condition, sn = %s", sn ); @@ -371,70 +371,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener, } } - - /** - * 共享音乐 - * - * @param shareMusicList - */ - private void drawShareMusicMarker( List< MarkerShareMusic > shareMusicList, int maxAmount ) { - if ( shareMusicList == null || shareMusicList.isEmpty() ) { - MarkerServiceHandler.getMarkerManager().removeMarkers( ModuleNames.CARD_TYPE_SHARE_MUSIC ); - return; - } - int size = getAppropriateSize( maxAmount, shareMusicList ); - Map< String, IMogoMarker > existCarMap = purgeMarkerData( shareMusicList, ModuleNames.CARD_TYPE_SHARE_MUSIC ); - for ( int i = 0; i < size; i++ ) { - MarkerShareMusic markerShareMusic = shareMusicList.get( i ); - MarkerLocation markerLocation = markerShareMusic.getLocation(); - MarkerShowEntity markerShowEntity = new MarkerShowEntity(); - markerShowEntity.setBindObj( markerShareMusic ); - markerShowEntity.setMarkerLocation( markerLocation ); - markerShowEntity.setMarkerType( markerShareMusic.getType() ); - markerShowEntity.setTextContent( markerShareMusic.getMediaName() ); - markerShowEntity.setIconUrl( markerShareMusic.getMediaImg() ); - - String sn = getCarSnFromEntity( markerShareMusic ); - IMogoMarker mogoMarker = existCarMap.get( sn ); - if ( mogoMarker == null ) { - drawMapMarker( markerShowEntity, ServiceConst.MARKER_Z_INDEX_HIGH ); - } - } - } - - /** - * 新鲜事 - * - * @param noveltyInfoList - */ - private void drawNoveltyMarker( List< MarkerNoveltyInfo > noveltyInfoList, int maxAmount ) { - if ( noveltyInfoList == null || noveltyInfoList.isEmpty() ) { - MarkerServiceHandler.getMarkerManager().removeMarkers( ModuleNames.CARD_TYPE_NOVELTY ); - return; - } - int size = getAppropriateSize( maxAmount, noveltyInfoList ); - Map< String, IMogoMarker > existCarMap = purgeMarkerData( noveltyInfoList, ModuleNames.CARD_TYPE_NOVELTY ); - for ( int i = 0; i < size; i++ ) { - MarkerNoveltyInfo noveltyInfo = noveltyInfoList.get( i ); - MarkerLocation markerLocation = noveltyInfo.getLocation(); - MarkerShowEntity markerShowEntity = new MarkerShowEntity(); - markerShowEntity.setBindObj( noveltyInfo ); - markerShowEntity.setMarkerLocation( markerLocation ); - markerShowEntity.setMarkerType( noveltyInfo.getType() ); - String address = noveltyInfo.getLocation().getAddress(); - if ( !TextUtils.isEmpty( address ) ) { - markerShowEntity.setTextContent( address ); - } else { - markerShowEntity.setTextContent( noveltyInfo.getContentData().getTitle() ); - } - String sn = getCarSnFromEntity( noveltyInfo ); - IMogoMarker mogoMarker = existCarMap.get( sn ); - if ( mogoMarker == null ) { - drawMapMarker( markerShowEntity, ServiceConst.MARKER_Z_INDEX_HIGH ); - } - } - } - /** * S = (A ∩ B) ∪ B * (A ∩ B)作为旧列表需要保留的部分 @@ -456,11 +392,11 @@ public class MapMarkerManager implements IMogoMarkerClickListener, Map< String, IMogoMarker > allMap = new HashMap<>(); for ( IMogoMarker marker : allCarsList ) { - String sn = getCarSnFromMarker( marker ); + String sn = getPrimaryKeyFromMarker( marker ); allMap.put( sn, marker ); } for ( Object entity : newList ) { - String sn = getCarSnFromEntity( entity ); + String sn = getPrimaryKeyFromEntity( entity ); if ( allMap.containsKey( sn ) ) { existMap.put( sn, allMap.get( sn ) ); } @@ -477,6 +413,26 @@ public class MapMarkerManager implements IMogoMarkerClickListener, return existMap; } + private String getPrimaryKeyFromEntity( Object entity ) { + if ( entity instanceof MarkerExploreWay ) { + String id = ( ( MarkerExploreWay ) entity ).getInfoId(); + if ( !TextUtils.isEmpty( id ) ) { + return id; + } + } + return getCarSnFromEntity( entity ); + } + + private String getPrimaryKeyFromMarker( IMogoMarker marker ) { + if ( marker == null || marker.getObject() == null || marker.isDestroyed() ) { + return null; + } + if ( !( marker.getObject() instanceof MarkerShowEntity ) ) { + return null; + } + return getPrimaryKeyFromEntity( ( ( MarkerShowEntity ) marker.getObject() ).getBindObj() ); + } + private String getCarSnFromEntity( Object entity ) { try { if ( entity instanceof MarkerOnlineCar ) {