diff --git a/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceController.java b/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceController.java index 617a9bb735a..1881ca759b2 100644 --- a/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceController.java +++ b/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceController.java @@ -148,7 +148,8 @@ public class AccessibilityHearingAidPreferenceController extends BasePreferenceC mFragmentManager = fragmentManager; } - private CachedBluetoothDevice getConnectedHearingAidDevice() { + @VisibleForTesting + CachedBluetoothDevice getConnectedHearingAidDevice() { if (!mHearingAidProfileSupported) { return null; } @@ -158,9 +159,11 @@ public class AccessibilityHearingAidPreferenceController extends BasePreferenceC final List deviceList = mLocalBluetoothManager.getProfileManager() .getHearingAidProfile().getConnectedDevices(); final Iterator it = deviceList.iterator(); - if (it.hasNext()) { + while (it.hasNext()) { BluetoothDevice obj = (BluetoothDevice)it.next(); - return mLocalBluetoothManager.getCachedDeviceManager().findDevice(obj); + if (!mLocalBluetoothManager.getCachedDeviceManager().isSubDevice(obj)) { + return mLocalBluetoothManager.getCachedDeviceManager().findDevice(obj); + } } return null; } diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java index 951f203a7d2..3f4e82dfaf5 100644 --- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java @@ -181,6 +181,15 @@ public class AccessibilityHearingAidPreferenceControllerTest { verify(mContext, never()).unregisterReceiver(any()); } + @Test + public void getConnectedHearingAidDevice_doNotReturnSubDevice() { + when(mHearingAidProfile.getConnectedDevices()).thenReturn(generateHearingAidDeviceList()); + when(mLocalBluetoothManager.getCachedDeviceManager().isSubDevice(mBluetoothDevice)) + .thenReturn(true); + + assertThat(mPreferenceController.getConnectedHearingAidDevice()).isNull(); + } + private void setupBluetoothEnvironment() { ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBluetoothManager; mLocalBluetoothManager = Utils.getLocalBtManager(mContext);