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
This commit is contained in:
timhypeng
2019-02-13 14:42:39 +08:00
committed by tim peng
parent cf3c895835
commit 23233700e5
2 changed files with 15 additions and 3 deletions

View File

@@ -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<BluetoothDevice> 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;
}

View File

@@ -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);