Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 23233700 authored by timhypeng's avatar timhypeng Committed by tim peng
Browse files

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
parent cf3c8958
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -148,7 +148,8 @@ public class AccessibilityHearingAidPreferenceController extends BasePreferenceC
        mFragmentManager = fragmentManager;
    }

    private CachedBluetoothDevice getConnectedHearingAidDevice() {
    @VisibleForTesting
    CachedBluetoothDevice getConnectedHearingAidDevice() {
        if (!mHearingAidProfileSupported) {
            return null;
        }
@@ -158,10 +159,12 @@ 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();
            if (!mLocalBluetoothManager.getCachedDeviceManager().isSubDevice(obj)) {
                return mLocalBluetoothManager.getCachedDeviceManager().findDevice(obj);
            }
        }
        return null;
    }

+9 −0
Original line number Diff line number Diff line
@@ -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);