From ad3fc8c2192f122d6668fabd5c4b8998c1e1198e Mon Sep 17 00:00:00 2001 From: Ze Li Date: Mon, 19 Feb 2024 12:56:03 +0800 Subject: [PATCH] [Hide DCK devices] Hide DCK devices from settings app (available devices section). Hide preferences of devices that are both bonded and exclusively managed in available devices section. Test: manual test Bug: 322285078 Change-Id: Id9df1cd20e36c5d50176d64551754364cc1c795f --- .../settings/bluetooth/DeviceListPreferenceFragment.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.kt b/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.kt index 77a80b8eb1c..3224f94a09b 100644 --- a/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.kt +++ b/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.kt @@ -34,8 +34,10 @@ import androidx.preference.PreferenceCategory import androidx.preference.PreferenceGroup import com.android.settings.R import com.android.settings.dashboard.RestrictedDashboardFragment +import com.android.settings.flags.Flags import com.android.settingslib.bluetooth.BluetoothCallback import com.android.settingslib.bluetooth.BluetoothDeviceFilter +import com.android.settingslib.bluetooth.BluetoothUtils import com.android.settingslib.bluetooth.CachedBluetoothDevice import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager import com.android.settingslib.bluetooth.LocalBluetoothManager @@ -217,6 +219,14 @@ abstract class DeviceListPreferenceFragment(restrictedKey: String?) : ) return } + if (Flags.enableHideExclusivelyManagedBluetoothDevice()) { + if (cachedDevice.device.bondState == BluetoothDevice.BOND_BONDED + && BluetoothUtils.isExclusivelyManagedBluetoothDevice( + prefContext, cachedDevice.device)) { + Log.d(TAG, "Trying to create preference for a exclusively managed device") + return + } + } // Only add device preference when it's not found in the map and there's no other state // message showing in the list val preference = devicePreferenceMap.computeIfAbsent(cachedDevice) {