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; mFragmentManager = fragmentManager;
} }
private CachedBluetoothDevice getConnectedHearingAidDevice() { @VisibleForTesting
CachedBluetoothDevice getConnectedHearingAidDevice() {
if (!mHearingAidProfileSupported) { if (!mHearingAidProfileSupported) {
return null; return null;
} }
@@ -158,9 +159,11 @@ public class AccessibilityHearingAidPreferenceController extends BasePreferenceC
final List<BluetoothDevice> deviceList = mLocalBluetoothManager.getProfileManager() final List<BluetoothDevice> deviceList = mLocalBluetoothManager.getProfileManager()
.getHearingAidProfile().getConnectedDevices(); .getHearingAidProfile().getConnectedDevices();
final Iterator it = deviceList.iterator(); final Iterator it = deviceList.iterator();
if (it.hasNext()) { while (it.hasNext()) {
BluetoothDevice obj = (BluetoothDevice)it.next(); BluetoothDevice obj = (BluetoothDevice)it.next();
return mLocalBluetoothManager.getCachedDeviceManager().findDevice(obj); if (!mLocalBluetoothManager.getCachedDeviceManager().isSubDevice(obj)) {
return mLocalBluetoothManager.getCachedDeviceManager().findDevice(obj);
}
} }
return null; return null;
} }

View File

@@ -181,6 +181,15 @@ public class AccessibilityHearingAidPreferenceControllerTest {
verify(mContext, never()).unregisterReceiver(any()); 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() { private void setupBluetoothEnvironment() {
ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBluetoothManager; ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBluetoothManager;
mLocalBluetoothManager = Utils.getLocalBtManager(mContext); mLocalBluetoothManager = Utils.getLocalBtManager(mContext);