From 612e4795cdd5a441c0a7a11b34d61bfb6fcaa465 Mon Sep 17 00:00:00 2001 From: aibingbing Date: Mon, 9 Sep 2024 20:29:36 +0800 Subject: [PATCH] =?UTF-8?q?[6.6.0][=E7=8A=B6=E6=80=81=E6=A0=8F]=20refactor?= =?UTF-8?q?:=20=20=E9=80=80=E5=87=BA=E7=99=BB=E5=BD=95=E6=97=B6=E5=85=B3?= =?UTF-8?q?=E9=97=AD=20FSM=20=E5=BC=82=E5=B8=B8=E5=BC=B9=E6=A1=86=E3=80=81?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=A0=8F=E6=80=BB=E7=BB=93=E5=BC=B9=E6=A1=86?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/och/facade/route/FacadeProvider.kt | 2 ++ .../status/flow/fsm/FSMImpl.kt | 16 ++++++++++++++-- .../core/function/hmi/ui/MoGoHmiProvider.kt | 4 ++++ .../core/function/hmi/ui/setting/StatusView.kt | 15 +++++++++++++++ .../function/api/hmi/warning/IMoGoHmiProvider.kt | 2 ++ .../core/function/call/hmi/CallerHmiManager.kt | 4 ++++ 6 files changed, 41 insertions(+), 2 deletions(-) diff --git a/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt index 0b3c630547..b547098832 100644 --- a/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt +++ b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt @@ -213,6 +213,8 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback { CallerHmiManager.hideToolsView() ToggleDebugView.toggleDebugView.dismiss() SopView.sopView.dismiss() + CallerHmiManager.dismissFSMStatusDetailWindow() + CallerHmiManager.hideStatusSummaryDialog() commonService?.resetFragment() val fragment = LoginStatusManager.getFragment() val supportFragmentManager: FragmentManager? = activity?.supportFragmentManager diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/fsm/FSMImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/fsm/FSMImpl.kt index ee4fdbe893..0fe2b681c5 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/fsm/FSMImpl.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/fsm/FSMImpl.kt @@ -4,10 +4,13 @@ import android.content.Context import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.autopilot.IMoGoFsm2024Listener import com.mogo.eagle.core.function.api.autopilot.IMoGoNodeStateListener +import com.mogo.eagle.core.function.api.order.IOrderListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerFsm2024ListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerNodeStateListenerManager +import com.mogo.eagle.core.function.call.hmi.CallerHmiManager +import com.mogo.eagle.core.function.call.order.CallerOrderListenerManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA import com.zhjt.mogo.adas.data.AdasConstants @@ -21,7 +24,7 @@ import kotlinx.coroutines.launch import java.util.concurrent.atomic.AtomicReference internal class FSMImpl(ctx: Context) : IFlow(ctx), IMoGoAutopilotStatusListener, - IMoGoFsm2024Listener, IMoGoNodeStateListener { + IMoGoFsm2024Listener, IMoGoNodeStateListener, IOrderListener { companion object { const val TAG = "FSMImpl" @@ -73,8 +76,8 @@ internal class FSMImpl(ctx: Context) : IFlow(ctx), IMoGoAutopilotStat CallerAutoPilotStatusListenerManager.addListener(TAG, this) CallerFsm2024ListenerManager.addListener(TAG, this) CallerNodeStateListenerManager.addNodeStateListener(TAG, setOf(AdasConstants.NodeName.FSM2024), this) + CallerOrderListenerManager.addListener(TAG, this) } - override fun onAutopilotIpcConnectStatusChanged( status: AdasConstants.IpcConnectionStatus, reason: String? @@ -124,11 +127,20 @@ internal class FSMImpl(ctx: Context) : IFlow(ctx), IMoGoAutopilotStat } } + override fun onLoginStatusUpdate(isLogin: Boolean) { + super.onLoginStatusUpdate(isLogin) + if (!isLogin) { + CallerLogger.d(TAG, "onLoginStatusUpdate isLogin=$isLogin") + CallerHmiManager.dismissFSMStatusDetailWindow() + } + } + override fun onDestroy() { super.onDestroy() CallerLogger.d("$M_DEVA$TAG", "-- onDestroy --") CallerAutoPilotStatusListenerManager.removeListener(TAG) CallerFsm2024ListenerManager.removeListener(TAG) CallerNodeStateListenerManager.removeNodeStateListener(TAG) + CallerOrderListenerManager.removeListener(TAG) } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt index d3a34032f0..83539c43d3 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt @@ -361,6 +361,10 @@ class MoGoHmiProvider : IMoGoHmiProvider { context?.let { StatusView.statusView.toggle(it) } } + override fun hideStatusSummaryDialog() { + context?.let { StatusView.statusView.toggle(it) } + } + /** * 展示红绿灯 */ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/StatusView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/StatusView.kt index f7d440bd53..f0986b6144 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/StatusView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/StatusView.kt @@ -8,6 +8,8 @@ import android.view.WindowManager import android.view.animation.OvershootInterpolator import com.mogo.eagle.core.data.enums.SidePattern import com.mogo.eagle.core.data.status.StatusSummaryEntity +import com.mogo.eagle.core.function.api.order.IOrderListener +import com.mogo.eagle.core.function.call.order.CallerOrderListenerManager import com.mogo.eagle.core.function.hmi.notification.WarningFloat import com.mogo.eagle.core.function.hmi.notification.anim.DefaultAnimator import com.mogo.eagle.core.utilcode.util.BarUtils @@ -22,12 +24,25 @@ class StatusView private constructor() { private var mStatusSummaryViewFloat: WarningFloat.Builder? = null private var mStatusSummaryView: StatusSummaryView? = null + companion object { + const val TAG = "StatusSummaryView" val statusView by lazy(LazyThreadSafetyMode.SYNCHRONIZED) { StatusView() } } + init { + CallerOrderListenerManager.addListener(TAG, object : IOrderListener{ + override fun onLoginStatusUpdate(isLogin: Boolean) { + super.onLoginStatusUpdate(isLogin) + if (!isLogin) { + dismiss() + } + } + }) + } + fun toggle(context: Context, gravity: Int = Gravity.RIGHT, sidePattern: SidePattern = SidePattern.RIGHT) { if (mStatusSummaryViewFloat != null) { dismiss() diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt index 276235376d..e6e5f4b47a 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt @@ -169,6 +169,8 @@ interface IMoGoHmiProvider :IProvider{ fun showStatusSummaryDialog() + fun hideStatusSummaryDialog() + /** * 展示红绿灯 */ diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt index 59e0035719..ac1dd0d353 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt @@ -258,6 +258,10 @@ object CallerHmiManager { hmiProviderApi?.showStatusSummaryDialog() } + fun hideStatusSummaryDialog() { + hmiProviderApi?.hideStatusSummaryDialog() + } + /** * 展示红绿灯 */