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) {