From 56efc35eb72f8e0767d309683dd5f766e1af99af Mon Sep 17 00:00:00 2001 From: renwj Date: Thu, 26 Sep 2024 18:14:04 +0800 Subject: [PATCH] =?UTF-8?q?[6.7.0][=E7=8A=B6=E6=80=81=E6=A0=8F=E6=94=B9?= =?UTF-8?q?=E7=89=88]=20=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmi/ui/operate/OperatePanelLayout.kt | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/operate/OperatePanelLayout.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/operate/OperatePanelLayout.kt index c3bc7a662f..f10ec9b29f 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/operate/OperatePanelLayout.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/operate/OperatePanelLayout.kt @@ -121,9 +121,47 @@ class OperatePanelLayout : LinearLayout { class PreferenceHeader : PreferenceFragmentCompat() { + companion object { + private const val KEY_WELCOME_WORDS = "welcome_words" + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + val toRemove = ArrayList() + walk { pref -> + if (!isEnabled(pref)) { + toRemove.add(pref) + } + } + toRemove.forEach { + preferenceScreen.removePreferenceRecursively(it.key) + } + } + + private fun isEnabled(pref: Preference): Boolean { + if (pref.key == KEY_WELCOME_WORDS) { + return AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode) || AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode) + } + return true + } + + private fun walk(block: (Preference) -> Unit) { + fun inner(pref: Preference) { + if (pref is PreferenceGroup) { + pref.forEach { + inner(it) + } + } else { + block(pref) + } + } + inner(preferenceScreen) + } + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.operate_panel_preference_headers, rootKey) } + } abstract class OperatePanelDetailBase : PreferenceFragmentCompat(), Preference.OnPreferenceChangeListener, Preference.OnPreferenceClickListener { @@ -134,6 +172,28 @@ class OperatePanelLayout : LinearLayout { setPreferenceClickListener(preferenceScreen) setDefaultVal(preferenceScreen) setEnabled(preferenceScreen) + val toRemove = ArrayList() + walk { pref -> + if (!isEnabled(pref)) { + toRemove.add(pref) + } + } + toRemove.forEach { + preferenceScreen.removePreferenceRecursively(it.key) + } + } + + private fun walk(block: (Preference) -> Unit) { + fun inner(pref: Preference) { + if (pref is PreferenceGroup) { + pref.forEach { + inner(it) + } + } else { + block(pref) + } + } + inner(preferenceScreen) } protected open fun getDefaultVal(pref: Preference): Any? { @@ -660,6 +720,9 @@ class OperatePanelLayout : LinearLayout { KEY_SWEEPER_CLOUD_CONTROL -> { return AppIdentityModeUtils.isSweeper(FunctionBuildConfig.appIdentityMode) && (SweeperVehicleConfigUtils.isDefaultSweeperCanSwitchMode(FunctionBuildConfig.sweeperCanSwitchMode)) } + KEY_UNMANNED_DEMO_PULL_INTERVAL -> { + return AppIdentityModeUtils.isTaxiDriver(FunctionBuildConfig.appIdentityMode) + } else -> super.isEnabled(pref) } }