From 23233700e59fba299a0c2ba60913d755d72383f6 Mon Sep 17 00:00:00 2001 From: timhypeng Date: Wed, 13 Feb 2019 14:42:39 +0800 Subject: [PATCH] Fix only one "active" HA showing under Accessibility Settings -return main device on getConnectedHearingAidDevice() -add test case Bug: 123777253 Test: make -j42 RunSettingsRoboTests Change-Id: I63522311b2248df983f200864b5465c0055056da --- .../AccessibilityHearingAidPreferenceController.java | 9 ++++++--- .../AccessibilityHearingAidPreferenceControllerTest.java | 9 +++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceController.java b/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceController.java index 617a9bb735..1881ca759b 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 951f203a7d..3f4e82dfaf 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); -- 2.11.0