From c9b450734a0081d6730444b22d65be9fbfe50772 Mon Sep 17 00:00:00 2001 From: Haijie Hong Date: Mon, 14 Oct 2024 17:40:20 +0800 Subject: [PATCH] Gray out toggle if isAllowChangingState is false BUG: 343317785 Test: local tested Flag: com.android.settings.flags.enable_bluetooth_device_details_polish Change-Id: I428b5093477ec9d1ba61cbbdb8430b9e28577d99 --- .../settings/bluetooth/ui/model/DeviceSettingPreferenceModel.kt | 1 + .../settings/bluetooth/ui/view/DeviceDetailsFragmentFormatter.kt | 1 + .../bluetooth/ui/viewmodel/BluetoothDeviceDetailsViewModel.kt | 1 + 3 files changed, 3 insertions(+) diff --git a/src/com/android/settings/bluetooth/ui/model/DeviceSettingPreferenceModel.kt b/src/com/android/settings/bluetooth/ui/model/DeviceSettingPreferenceModel.kt index ba6d1a6a4fb..f4992dafc5e 100644 --- a/src/com/android/settings/bluetooth/ui/model/DeviceSettingPreferenceModel.kt +++ b/src/com/android/settings/bluetooth/ui/model/DeviceSettingPreferenceModel.kt @@ -44,6 +44,7 @@ sealed interface DeviceSettingPreferenceModel { val icon: DeviceSettingIcon? = null, val checked: Boolean, val onCheckedChange: ((Boolean) -> Unit), + val disabled: Boolean = false, val action: DeviceSettingActionModel? = null, ) : DeviceSettingPreferenceModel diff --git a/src/com/android/settings/bluetooth/ui/view/DeviceDetailsFragmentFormatter.kt b/src/com/android/settings/bluetooth/ui/view/DeviceDetailsFragmentFormatter.kt index de2d8644877..ad4176fc1a2 100644 --- a/src/com/android/settings/bluetooth/ui/view/DeviceDetailsFragmentFormatter.kt +++ b/src/com/android/settings/bluetooth/ui/view/DeviceDetailsFragmentFormatter.kt @@ -306,6 +306,7 @@ class DeviceDetailsFragmentFormatterImpl( override val onCheckedChange = { newChecked: Boolean -> model.onCheckedChange(newChecked) } + override val changeable = { !model.disabled } override val icon: (@Composable () -> Unit)? get() { if (model.icon == null) { diff --git a/src/com/android/settings/bluetooth/ui/viewmodel/BluetoothDeviceDetailsViewModel.kt b/src/com/android/settings/bluetooth/ui/viewmodel/BluetoothDeviceDetailsViewModel.kt index a9444a57182..dd0012e90fb 100644 --- a/src/com/android/settings/bluetooth/ui/viewmodel/BluetoothDeviceDetailsViewModel.kt +++ b/src/com/android/settings/bluetooth/ui/viewmodel/BluetoothDeviceDetailsViewModel.kt @@ -101,6 +101,7 @@ class BluetoothDeviceDetailsViewModel( DeviceSettingStateModel.ActionSwitchPreferenceState(newState) ) }, + disabled = !isAllowedChangingState, action = action, ) } else {