From 76c73663e6f170c1e96f72702ab75903e1c48d14 Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Tue, 20 Oct 2020 14:26:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8StatusManager=E8=AE=BE=E7=BD=AETopView?= =?UTF-8?q?=E7=9A=84=E6=98=BE=E7=A4=BA=E7=8A=B6=E6=80=81=E7=9B=91=E5=90=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 2 +- .../module/extensions/utils/TopViewAnimHelper.java | 7 +++++++ .../service/statusmanager/IMogoStatusManager.java | 13 +++++++++++++ .../service/statusmanager/StatusDescriptor.java | 6 +++++- .../impl/statusmanager/MogoStatusManager.java | 12 +++++++++++- 5 files changed, 37 insertions(+), 3 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 21e99e2dc0..cd77a1f062 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -4,7 +4,7 @@ - + \ No newline at end of file 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 34481dc884..e3299f92b7 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 @@ -18,8 +18,10 @@ import androidx.constraintlayout.widget.ConstraintSet; import androidx.constraintlayout.widget.Group; import com.mogo.map.uicontroller.IMogoMapUIController; +import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.map.MapCenterPointStrategy; import com.mogo.module.common.map.Scene; +import com.mogo.module.extensions.ExtensionsModuleConst; import com.mogo.module.extensions.R; import com.mogo.module.extensions.navi.TopView; import com.mogo.service.windowview.IMogoTopViewStatusListener; @@ -301,6 +303,8 @@ public class TopViewAnimHelper { } Logger.d(TAG, "生硬的删掉了之前的view: " + viewCaches.size()); topContainer.removeAllViews(); + // 同时设置一下隐藏状态 + MogoApisHandler.getInstance().getApis().getStatusManagerApi().setTopViewShow(ExtensionsModuleConst.TYPE_ENTRANCE, false); // 如果高度变化,生硬的变化一下高度 Logger.d(TAG, "container.height: " + topContainer.getHeight()); @@ -427,6 +431,8 @@ public class TopViewAnimHelper { }); } } + + MogoApisHandler.getInstance().getApis().getStatusManagerApi().setTopViewShow(ExtensionsModuleConst.TYPE_ENTRANCE, true); } /** @@ -506,6 +512,7 @@ public class TopViewAnimHelper { } Logger.d(TAG, "hide top setMapCenterPointByScene: " + scene); MapCenterPointStrategy.setMapCenterPointByScene(mogoMapUIController, scene); + MogoApisHandler.getInstance().getApis().getStatusManagerApi().setTopViewShow(ExtensionsModuleConst.TYPE_ENTRANCE, false); } } diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java index 5b3257652f..7c7600e155 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java @@ -10,6 +10,12 @@ import com.alibaba.android.arouter.facade.template.IProvider; */ public interface IMogoStatusManager extends IProvider { + /** + * TopView是否在展示 + * @return + */ + boolean isTopViewShow(); + /** * 小智语音 UI 是否在展示 * @@ -110,6 +116,13 @@ public interface IMogoStatusManager extends IProvider { */ boolean isMainPageLaunched(); + /** + * 设置topView展示状态 + * @param tag 业务类型 + * @param show true - 显示 false - 隐藏 + */ + void setTopViewShow(String tag, boolean show); + /** * 设置小智语音UI状态 * diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/StatusDescriptor.java b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/StatusDescriptor.java index 2acf766c45..b128676fdc 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/StatusDescriptor.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/StatusDescriptor.java @@ -78,5 +78,9 @@ public enum StatusDescriptor { /** * 是否已经进入过主页 */ - MAIN_PAGE_CREATED; + MAIN_PAGE_CREATED, + /** + * topView展示状态 + */ + TOP_VIEW } diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java b/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java index 43eb1b4769..4b6a9a09de 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java @@ -122,11 +122,21 @@ public class MogoStatusManager implements IMogoStatusManager { return get_bool_val( StatusDescriptor.MAIN_PAGE_CREATED ); } - private boolean get_bool_val( StatusDescriptor descriptor ) { + @Override + public boolean isTopViewShow() { + return get_bool_val(StatusDescriptor.TOP_VIEW); + } + + private boolean get_bool_val(StatusDescriptor descriptor ) { Boolean val = mStatus.get( descriptor ); return val == null ? false : val; } + @Override + public void setTopViewShow(String tag, boolean show) { + doSetStatus(tag, StatusDescriptor.TOP_VIEW, show); + } + @Override public void setVoiceUIShow( String tag, boolean show ) { doSetStatus( tag, StatusDescriptor.VOICE_UI, show );