diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java index fe92e2664eda6..d919af57bc73c 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java @@ -106,6 +106,7 @@ public class CachedBluetoothDevice implements Comparable private boolean mIsA2dpProfileConnectedFail = false; private boolean mIsHeadsetProfileConnectedFail = false; private boolean mIsHearingAidProfileConnectedFail = false; + private boolean mUnpairing; // Group second device for Hearing Aid private CachedBluetoothDevice mSubDevice; @VisibleForTesting @@ -142,6 +143,7 @@ public class CachedBluetoothDevice implements Comparable fillData(); mHiSyncId = BluetoothHearingAid.HI_SYNC_ID_INVALID; initDrawableCache(); + mUnpairing = false; } private void initDrawableCache() { @@ -402,6 +404,7 @@ public class CachedBluetoothDevice implements Comparable if (state != BluetoothDevice.BOND_NONE) { final BluetoothDevice dev = mDevice; if (dev != null) { + mUnpairing = true; final boolean successful = dev.removeBond(); if (successful) { releaseLruCache(); @@ -1243,4 +1246,8 @@ public class CachedBluetoothDevice implements Comparable void releaseLruCache() { mDrawableCache.evictAll(); } + + boolean getUnpairing() { + return mUnpairing; + } } diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidDeviceManager.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidDeviceManager.java index 20ece69d7281b..818f5ca33ebf6 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidDeviceManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidDeviceManager.java @@ -180,6 +180,9 @@ public class HearingAidDeviceManager { break; case BluetoothProfile.STATE_DISCONNECTED: mainDevice = findMainDevice(cachedDevice); + if (cachedDevice.getUnpairing()) { + return true; + } if (mainDevice != null) { // When main device exists, receiving sub device disconnection // To update main device UI