mFragmentManager = fragmentManager;
}
- private CachedBluetoothDevice getConnectedHearingAidDevice() {
+ @VisibleForTesting
+ CachedBluetoothDevice getConnectedHearingAidDevice() {
if (!mHearingAidProfileSupported) {
return null;
}
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;
}
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);