From b32d8bfa615568928ab89a16f57a819b138323f2 Mon Sep 17 00:00:00 2001 From: liujing Date: Thu, 28 Jul 2022 14:37:51 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[fix]=20bus=E5=8A=A0=E9=80=9F=E5=BA=A6?= =?UTF-8?q?=E8=B5=8B=E5=80=BC=E7=B1=BB=E5=9E=8B=E5=B4=A9=E6=BA=83=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmi/ui/widget/TrafficDataView.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/TrafficDataView.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/TrafficDataView.java index 07ab15b376..f1ad3626c2 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/TrafficDataView.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/TrafficDataView.java @@ -4,7 +4,6 @@ import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.LayoutInflater; -import android.view.View; import android.widget.ImageView; import android.widget.TextView; @@ -21,8 +20,6 @@ import com.mogo.eagle.core.utilcode.util.ThreadUtils; import org.jetbrains.annotations.NotNull; -import java.math.BigDecimal; - import chassis.Chassis; /** @@ -139,20 +136,29 @@ public class TrafficDataView extends ConstraintLayout { Log.d(TAG, "司机屏加速度:" + carAcc); java.text.DecimalFormat myformat = new java.text.DecimalFormat("0.00"); String accStr = myformat.format(carAcc); - accTextView.setText("a: " + accStr); + accTextView.setText("a: " + String.valueOf(accStr)); } @Override public void onAutopilotBrake(float brake) { Log.d(TAG, "刹车:" + String.valueOf(brake)); - brakeStatus.setImageResource(R.drawable.traffic_data_brake); + if (brake > 0){ + brakeStatus.setImageResource(R.drawable.traffic_data_brake); + }else { + brakeStatus.setImageResource(R.drawable.traffic_data_empty); + } } @Override public void onAutopilotThrottle(float throttle) { Log.d(TAG, "油门:" + String.valueOf(throttle)); - brakeStatus.setImageResource(R.drawable.traffic_data_accelerator); + if (throttle > 0){ + brakeStatus.setImageResource(R.drawable.traffic_data_accelerator); + }else { + brakeStatus.setImageResource(R.drawable.traffic_data_empty); + } } + }; /** From 497d906443b51efb34c64bb9adba3d506952e2b7 Mon Sep 17 00:00:00 2001 From: renwj Date: Thu, 28 Jul 2022 15:36:36 +0800 Subject: [PATCH 2/2] =?UTF-8?q?[=E7=8A=B6=E6=80=81=E6=A0=8F]=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=B1=95=E7=A4=BA=E5=92=8C=E9=9A=90=E8=97=8F=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DevaToolsProvider.kt | 5 +++ .../status/StatusManager.kt | 40 +++++++++++++------ .../api/devatools/IDevaToolsProvider.kt | 5 +++ 3 files changed, 37 insertions(+), 13 deletions(-) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt index 12e2e97303..387f7212b8 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt @@ -105,5 +105,10 @@ class DevaToolsProvider : IDevaToolsProvider { override fun showStatusBar(ctx: Context) { StatusManager.init(ctx) + StatusManager.show() + } + + override fun hideStatusBar() { + StatusManager.hide() } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt index 819344deb6..649715fb79 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt @@ -2,6 +2,7 @@ package com.zhjt.mogo_core_function_devatools.status import android.content.* import android.view.* +import android.view.WindowManager.LayoutParams import androidx.core.view.* import androidx.lifecycle.* import androidx.lifecycle.Lifecycle.Event @@ -32,6 +33,7 @@ import com.zhjt.mogo_core_function_devatools.status.ui.* import kotlinx.coroutines.* import kotlinx.coroutines.flow.* import mogo_msg.MogoReportMsg +import java.lang.ref.* object StatusManager { @@ -43,6 +45,10 @@ object StatusManager { private var timer: Job? = null + private var context: WeakReference? = null + + private var hasInit = false + private val listener = object : IMoGoAutopilotStatusListener { override fun onAutopilotGuardian(guardianInfo: MogoReportMsg.MogoReportMessage?) { super.onAutopilotGuardian(guardianInfo) @@ -83,6 +89,10 @@ object StatusManager { } fun init(ctx: Context) { + if (hasInit) { + return + } + hasInit = true val owner = ctx as? ViewModelStoreOwner ?: throw IllegalStateException("ctx: $ctx is a instance of ViewModelStoreOwner.") model = ViewModelProvider(owner).get(StatusModel::class.java) ctx.lifeCycleOwner.lifecycle.addObserver(object : LifecycleEventObserver { @@ -95,6 +105,7 @@ object StatusManager { } } }) + context = WeakReference(ctx) } private fun onCreate(ctx: Context) { @@ -119,24 +130,27 @@ object StatusManager { } } } - hidePop?.invoke() - val content = StatusView(model, ctx) - content.doOnAttach { - for (f in flows) { - f.onCreate() - } - } - ctx.normalPop(content, - width = 665.PX, - height = WindowManager.LayoutParams.WRAP_CONTENT, - gravity = Gravity.END, - startX = 55.PX, - isFocusable = false).also { hidePop = it } } + fun show() { + context?.get()?.also { ctx -> + hidePop?.invoke() + val content = StatusView(model, ctx) + content.doOnAttach { + for (f in flows) { + f.onCreate() + } + } + ctx.normalPop(content, width = 665.PX, height = LayoutParams.WRAP_CONTENT, gravity = Gravity.END, startX = 55.PX, isFocusable = false).also { hidePop = it } + } + } + fun hide() { + hidePop?.invoke() + } private fun onDestroy(ctx: Context) { + hasInit = false CallerAutoPilotStatusListenerManager.removeListener(TAG) AppStateManager.unRegisterAppStateListener(appStateListener) timer?.cancel() diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt index b0ad55d157..df8eb59c45 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt @@ -108,4 +108,9 @@ interface IDevaToolsProvider : IProvider { * 展示状态栏 */ fun showStatusBar(ctx: Context) + + /** + * 隐藏状态栏 + */ + fun hideStatusBar() } \ No newline at end of file