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

Commit f093798a authored by Stanley Tng's avatar Stanley Tng
Browse files

resolve merge conflicts of 23ccecc4 to stage-aosp-master

Bug: None
Test: I solemnly swear I tested this conflict resolution.
Change-Id: I5fbdb4b246cc34ac5c6fcfe39e41a16137e9f9ab
Merged-In: Id2dc364dfa815e72db91b92bcee9745e6c40d34a
Merged-In: Ia9df6facd99ae91ebb4a819f61ea27551ce35efe
parents acbcff9e 23ccecc4
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -109,6 +109,10 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
        mHiSyncId = id;
    }

    public boolean isHearingAidDevice() {
        return mHiSyncId != BluetoothHearingAid.HI_SYNC_ID_INVALID;
    }

    /**
     * Last time a bt profile auto-connect was attempted.
     * If an ACTION_UUID intent comes in within
@@ -143,8 +147,8 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>

    void onProfileStateChanged(LocalBluetoothProfile profile, int newProfileState) {
        if (Utils.D) {
            Log.d(TAG, "onProfileStateChanged: profile " + profile +
                    " newProfileState " + newProfileState);
            Log.d(TAG, "onProfileStateChanged: profile " + profile + ", device=" + mDevice
                    + ", newProfileState " + newProfileState);
        }
        if (mLocalAdapter.getBluetoothState() == BluetoothAdapter.STATE_TURNING_OFF)
        {
+8 −8
Original line number Diff line number Diff line
@@ -162,14 +162,14 @@ public class CachedBluetoothDeviceManager {
     */
    public synchronized String getHearingAidPairDeviceSummary(CachedBluetoothDevice device) {
        String pairDeviceSummary = null;
        if (device.getHiSyncId() != BluetoothHearingAid.HI_SYNC_ID_INVALID) {
            for (CachedBluetoothDevice hearingAidDevice : mHearingAidDevicesNotAddedInCache) {
                if (hearingAidDevice.getHiSyncId() != BluetoothHearingAid.HI_SYNC_ID_INVALID
                    && hearingAidDevice.getHiSyncId() == device.getHiSyncId()) {
                    pairDeviceSummary = hearingAidDevice.getConnectionSummary();
                }
            }
        CachedBluetoothDevice otherHearingAidDevice =
            getHearingAidOtherDevice(device, device.getHiSyncId());
        if (otherHearingAidDevice != null) {
            pairDeviceSummary = otherHearingAidDevice.getConnectionSummary();
        }
        log("getHearingAidPairDeviceSummary: pairDeviceSummary=" + pairDeviceSummary
            + ", otherHearingAidDevice=" + otherHearingAidDevice);
 
        return pairDeviceSummary;
    }

@@ -358,7 +358,7 @@ public class CachedBluetoothDeviceManager {
        }
    }

    private CachedBluetoothDevice getHearingAidOtherDevice(CachedBluetoothDevice thisDevice,
    public CachedBluetoothDevice getHearingAidOtherDevice(CachedBluetoothDevice thisDevice,
                                                           long hiSyncId) {
        if (hiSyncId == BluetoothHearingAid.HI_SYNC_ID_INVALID) {
            return null;
+18 −5
Original line number Diff line number Diff line
@@ -375,9 +375,10 @@ public class LocalBluetoothProfileManager {
                Log.i(TAG, "Failed to connect " + mProfile + " device");
            }

            if (getHearingAidProfile() != null &&
                mProfile instanceof HearingAidProfile &&
                (newState == BluetoothProfile.STATE_CONNECTED)) {
            boolean isHearingAidProfile = (getHearingAidProfile() != null) &&
                (mProfile instanceof HearingAidProfile);

            if (isHearingAidProfile && (newState == BluetoothProfile.STATE_CONNECTED)) {
                // Check if the HiSyncID has being initialized
                if (cachedDevice.getHiSyncId() == BluetoothHearingAid.HI_SYNC_ID_INVALID) {

@@ -390,10 +391,22 @@ public class LocalBluetoothProfileManager {
                }
            }

            mEventManager.dispatchProfileConnectionStateChanged(cachedDevice, newState,
                    mProfile.getProfileId());
            cachedDevice.onProfileStateChanged(mProfile, newState);
            cachedDevice.refresh();

            if (isHearingAidProfile) {
                CachedBluetoothDevice otherDevice =
                    mDeviceManager.getHearingAidOtherDevice(cachedDevice, cachedDevice.getHiSyncId());
                if (otherDevice != null) {
                    if (DEBUG) {
                        Log.d(TAG, "Refreshing other hearing aid=" + otherDevice
                               + ", newState=" + newState);
                    }
                    otherDevice.refresh();
                }
            }
            mEventManager.dispatchProfileConnectionStateChanged(cachedDevice, newState,
                    mProfile.getProfileId());
        }
    }

+16 −0
Original line number Diff line number Diff line
@@ -835,4 +835,20 @@ public class CachedBluetoothDeviceManagerTest {
        assertThat(cachedDevice2.isActiveDevice(BluetoothProfile.HEADSET)).isFalse();
        assertThat(cachedDevice2.isActiveDevice(BluetoothProfile.HEARING_AID)).isFalse();
    }

    /**
     * Test to verify getHearingAidOtherDevice() for hearing aid devices with same HiSyncId.
     */
    @Test
    public void testGetHearingAidOtherDevice_bothHearingAidsPaired_returnsOtherDevice() {
        mCachedDevice1.setHiSyncId(HISYNCID1);
        mCachedDevice2.setHiSyncId(HISYNCID1);
        mCachedDeviceManager.mCachedDevices.add(mCachedDevice1);
        mCachedDeviceManager.mHearingAidDevicesNotAddedInCache.add(mCachedDevice2);
        doAnswer((invocation) -> DEVICE_SUMMARY_1).when(mCachedDevice1).getConnectionSummary();
        doAnswer((invocation) -> DEVICE_SUMMARY_2).when(mCachedDevice2).getConnectionSummary();

        assertThat(mCachedDeviceManager.getHearingAidOtherDevice(mCachedDevice1, HISYNCID1))
            .isEqualTo(mCachedDevice2);
    }
}
+13 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import static org.robolectric.Shadows.shadowOf;

import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothHearingAid;
import android.bluetooth.BluetoothProfile;
import android.content.Context;
import android.media.AudioManager;
@@ -572,4 +573,16 @@ public class CachedBluetoothDeviceTest {

        assertThat(mCachedDevice.isHfpDevice()).isFalse();
    }

    @Test
    public void testIsHearingAidDevice_isHearingAidDevice() {
        mCachedDevice.setHiSyncId(0x1234);
        assertThat(mCachedDevice.isHearingAidDevice()).isTrue();
    }

    @Test
    public void testIsHearingAidDevice_isNotHearingAidDevice() {
        mCachedDevice.setHiSyncId(BluetoothHearingAid.HI_SYNC_ID_INVALID);
        assertThat(mCachedDevice.isHearingAidDevice()).isFalse();
    }
}
Loading