From 919626a0e6daea11df3ab0e9eec05ed53af32f99 Mon Sep 17 00:00:00 2001 From: renwj Date: Wed, 23 Oct 2024 11:58:48 +0800 Subject: [PATCH] =?UTF-8?q?[6.7.0][=E8=BF=90=E8=90=A5=E9=9D=A2=E6=9D=BF]?= =?UTF-8?q?=20=E4=BC=98=E5=8C=96=E5=B8=A6=E9=94=AE=E7=9B=98=E8=BE=93?= =?UTF-8?q?=E5=85=A5=E5=80=BC=E7=9A=84=E4=BB=A3=E7=A0=81=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../preferences/PreferenceWithSpeedSetting.kt | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) 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 b1d0353080..c5bd5d3df5 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 @@ -6,6 +6,7 @@ import android.text.Editable import android.util.AttributeSet import android.widget.EditText import android.widget.TextView +import androidx.core.widget.doAfterTextChanged import androidx.core.widget.doBeforeTextChanged import androidx.core.widget.doOnTextChanged import androidx.preference.Preference @@ -13,6 +14,7 @@ import androidx.preference.PreferenceViewHolder import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.eagle.core.utilcode.kotlin.onClickWidthDuration +import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.eagle.core.utilcode.util.ToastUtils import java.math.BigDecimal import java.util.concurrent.ConcurrentHashMap @@ -70,20 +72,32 @@ class PreferenceWithSpeedSetting : Preference { speedUnit?.text = unit val speedLimit = holder.findViewById(R.id.tv_speed_limit) as? TextView if (cache.containsKey(key)) { - cur = max(cur, cache[key] ?: 0.0) + cur = cache[key] ?: cur } + cur = BigDecimal.valueOf(cur).setScale(1).toDouble() if (speedLimit is EditText) { speedLimit.setText(cur.toString()) - speedLimit.doOnTextChanged { text, _, _, _ -> + speedLimit.doAfterTextChanged { text -> val current = text?.let { runCatching { it.toString().toDouble() }.getOrNull() } if (current == null) { - return@doOnTextChanged + btnOk.isEnabled = false + holder.itemView.isEnabled = false + ll.isSelected = false + return@doAfterTextChanged } if (current > max) { + btnOk.isEnabled = false + holder.itemView.isEnabled = false + ll.isSelected = false ToastUtils.showShort("阈值最大为${BigDecimal.valueOf(max).setScale(1)}$unit") - return@doOnTextChanged + return@doAfterTextChanged } - cur = current + val temp = BigDecimal.valueOf(current).setScale(1).toDouble() + if (cur == temp) { + return@doAfterTextChanged + } + Logger.d("RWJ", "--- cache ---- 2 ---: $cur, $temp") + cur = temp btnOk.isEnabled = true ll.isSelected = true cache[key] = cur @@ -131,7 +145,6 @@ class PreferenceWithSpeedSetting : Preference { btnOk.isEnabled = true enabled[key] = true if (speedLimit is EditText) { - speedLimit.setText("") speedLimit.setText(addAfter.toString()) } else { speedLimit?.text = addAfter.toString() @@ -141,7 +154,6 @@ class PreferenceWithSpeedSetting : Preference { btnOk.onClick { onPreferenceClickListener?.also { enabled[key] = false - cache.remove(key) extras.putDouble(KEY_BUNDLE_CURRENT_VALUE, cur) it.onPreferenceClick(this) }