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

Commit bc442125 authored by Angela Wang's avatar Angela Wang
Browse files

Switches hearingAidinfo in switchMemberDeviceContent()

HearingAidinfo is not correctly switched. This may cause the device side to be wrong and display wrong UI after switchMemberDeviceContent() is called when the device
is disconnected and reconnected.

Bug: 323458593
Test: atest CachedBluetoothDeviceTest
Change-Id: I60f7330c23c0470cf271f538bad8141d27e1c13a
parent 53e16abd
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1745,12 +1745,14 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
        final BluetoothDevice tmpDevice = mDevice;
        final short tmpRssi = mRssi;
        final boolean tmpJustDiscovered = mJustDiscovered;
        final HearingAidInfo tmpHearingAidInfo = mHearingAidInfo;

        // Set main device from sub device
        release();
        mDevice = newMainDevice.mDevice;
        mRssi = newMainDevice.mRssi;
        mJustDiscovered = newMainDevice.mJustDiscovered;
        mHearingAidInfo = newMainDevice.mHearingAidInfo;
        fillData();

        // Set sub device from backup
@@ -1758,6 +1760,7 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
        newMainDevice.mDevice = tmpDevice;
        newMainDevice.mRssi = tmpRssi;
        newMainDevice.mJustDiscovered = tmpJustDiscovered;
        newMainDevice.mHearingAidInfo = tmpHearingAidInfo;
        newMainDevice.fillData();

        // Add the sub device back into mMemberDevices with correct hash
+4 −0
Original line number Diff line number Diff line
@@ -1769,8 +1769,10 @@ public class CachedBluetoothDeviceTest {
    public void switchMemberDeviceContent_switchMainDevice_switchesSuccessful() {
        mCachedDevice.mRssi = RSSI_1;
        mCachedDevice.mJustDiscovered = JUSTDISCOVERED_1;
        mCachedDevice.setHearingAidInfo(getLeftAshaHearingAidInfo());
        mSubCachedDevice.mRssi = RSSI_2;
        mSubCachedDevice.mJustDiscovered = JUSTDISCOVERED_2;
        mSubCachedDevice.setHearingAidInfo(getRightAshaHearingAidInfo());
        mCachedDevice.addMemberDevice(mSubCachedDevice);

        mCachedDevice.switchMemberDeviceContent(mSubCachedDevice);
@@ -1778,10 +1780,12 @@ public class CachedBluetoothDeviceTest {
        assertThat(mCachedDevice.mRssi).isEqualTo(RSSI_2);
        assertThat(mCachedDevice.mJustDiscovered).isEqualTo(JUSTDISCOVERED_2);
        assertThat(mCachedDevice.mDevice).isEqualTo(mSubDevice);
        assertThat(mCachedDevice.getDeviceSide()).isEqualTo(HearingAidInfo.DeviceSide.SIDE_RIGHT);
        verify(mCachedDevice).fillData();
        assertThat(mSubCachedDevice.mRssi).isEqualTo(RSSI_1);
        assertThat(mSubCachedDevice.mJustDiscovered).isEqualTo(JUSTDISCOVERED_1);
        assertThat(mSubCachedDevice.mDevice).isEqualTo(mDevice);
        assertThat(mSubCachedDevice.getDeviceSide()).isEqualTo(HearingAidInfo.DeviceSide.SIDE_LEFT);
        verify(mSubCachedDevice).fillData();
        assertThat(mCachedDevice.getMemberDevice().contains(mSubCachedDevice)).isTrue();
    }