From 304f67ad36cfb6df2295159acbc18c660a77ef70 Mon Sep 17 00:00:00 2001 From: renwj Date: Tue, 22 Oct 2024 19:24:26 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=906.7.0][=E8=BF=90=E8=90=A5=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF]=20=E8=87=AA=E9=A9=BE=E9=80=9F=E5=BA=A6=E5=80=BC?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E9=94=AE=E7=9B=98=E8=BE=93=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../preferences/PreferenceWithSpeedSetting.kt | 42 ++++++++++- ...nel_preference_widget_edit_with_button.xml | 5 +- ...nel_preference_widget_text_with_button.xml | 73 +++++++++++++++++++ ...rate_panel_preference_details_vehicles.xml | 4 +- 4 files changed, 117 insertions(+), 7 deletions(-) create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_operate_panel_preference_widget_text_with_button.xml diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/operate/preferences/PreferenceWithSpeedSetting.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/operate/preferences/PreferenceWithSpeedSetting.kt index 4647c88469..b1d0353080 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/operate/preferences/PreferenceWithSpeedSetting.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/operate/preferences/PreferenceWithSpeedSetting.kt @@ -1,8 +1,13 @@ package com.mogo.eagle.core.function.hmi.ui.operate.preferences +import android.annotation.SuppressLint import android.content.Context +import android.text.Editable import android.util.AttributeSet +import android.widget.EditText import android.widget.TextView +import androidx.core.widget.doBeforeTextChanged +import androidx.core.widget.doOnTextChanged import androidx.preference.Preference import androidx.preference.PreferenceViewHolder import com.mogo.eagle.core.function.hmi.R @@ -39,7 +44,7 @@ class PreferenceWithSpeedSetting : Preference { notifyChanged() } - override fun onBindViewHolder(holder: PreferenceViewHolder) { + @SuppressLint("SetTextI18n") override fun onBindViewHolder(holder: PreferenceViewHolder) { super.onBindViewHolder(holder) val speedData = mSpeedData ?: return if (speedData !is List<*> || speedData.size != 5) { @@ -67,7 +72,27 @@ class PreferenceWithSpeedSetting : Preference { if (cache.containsKey(key)) { cur = max(cur, cache[key] ?: 0.0) } - speedLimit?.text = cur.toString() + if (speedLimit is EditText) { + speedLimit.setText(cur.toString()) + speedLimit.doOnTextChanged { text, _, _, _ -> + val current = text?.let { runCatching { it.toString().toDouble() }.getOrNull() } + if (current == null) { + return@doOnTextChanged + } + if (current > max) { + ToastUtils.showShort("阈值最大为${BigDecimal.valueOf(max).setScale(1)}$unit") + return@doOnTextChanged + } + cur = current + btnOk.isEnabled = true + ll.isSelected = true + cache[key] = cur + enabled[key] = true + holder.itemView.isEnabled = false + } + } else { + speedLimit?.text = cur.toString() + } val minus = holder.findViewById(R.id.iv_speed_minus) btnOk.isEnabled = enabled[key] ?: false holder.itemView.isEnabled = enabled[key] ?: false @@ -85,7 +110,11 @@ class PreferenceWithSpeedSetting : Preference { cache[key] = cur enabled[key] = true holder.itemView.isEnabled = false - speedLimit?.text = minusAfter.toString() + if (speedLimit is EditText) { + speedLimit.setText(minusAfter.toString()) + } else { + speedLimit?.text = minusAfter.toString() + } } val add = holder.findViewById(R.id.iv_speed_add) add.setOnClickListener(null) @@ -101,7 +130,12 @@ class PreferenceWithSpeedSetting : Preference { ll.isSelected = true btnOk.isEnabled = true enabled[key] = true - speedLimit?.text = addAfter.toString() + if (speedLimit is EditText) { + speedLimit.setText("") + speedLimit.setText(addAfter.toString()) + } else { + speedLimit?.text = addAfter.toString() + } } btnOk.setOnClickListener(null) btnOk.onClick { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_operate_panel_preference_widget_edit_with_button.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_operate_panel_preference_widget_edit_with_button.xml index 7c77ecc177..3d3f8a4e72 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_operate_panel_preference_widget_edit_with_button.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_operate_panel_preference_widget_edit_with_button.xml @@ -24,12 +24,15 @@ android:src="@drawable/icon_operate_panel_minus" tools:ignore="ContentDescription,RtlSymmetry" /> - + + + + + + + + + + + + + + + +