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

Commit be514004 authored by hughchen's avatar hughchen
Browse files

Return empty array when BluetoothAdapter is null

BluetoothAdapter will be null in some platform device, because they
don't have bluetooth feature. This CL add null check to avoid null
point exception on non-bluetooth feature platform device.

Bug: 152647633
Test: make -j42 RunSettingsLibRoboTests
Change-Id: Iba7f41796bd22163ab55a7f9ff4f44df6513754e
parent 78552a88
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -401,6 +401,11 @@ public class LocalMediaManager implements BluetoothCallback {
        }
        }


        private List<MediaDevice> buildDisconnectedBluetoothDevice() {
        private List<MediaDevice> buildDisconnectedBluetoothDevice() {
            if (mBluetoothAdapter == null) {
                Log.w(TAG, "buildDisconnectedBluetoothDevice() BluetoothAdapter is null");
                return new ArrayList<>();
            }

            final List<BluetoothDevice> bluetoothDevices =
            final List<BluetoothDevice> bluetoothDevices =
                    mBluetoothAdapter.getMostRecentlyConnectedDevices();
                    mBluetoothAdapter.getMostRecentlyConnectedDevices();
            final CachedBluetoothDeviceManager cachedDeviceManager =
            final CachedBluetoothDeviceManager cachedDeviceManager =
+24 −0
Original line number Original line Diff line number Diff line
@@ -691,4 +691,28 @@ public class LocalMediaManagerTest {
        assertThat(mLocalMediaManager.mMediaDevices).hasSize(7);
        assertThat(mLocalMediaManager.mMediaDevices).hasSize(7);
        verify(mCallback).onDeviceListUpdate(any());
        verify(mCallback).onDeviceListUpdate(any());
    }
    }

    @Test
    public void onDeviceListAdded_bluetoothAdapterIsNull_noDisconnectedDeviceAdded() {
        final List<MediaDevice> devices = new ArrayList<>();
        final MediaDevice device1 = mock(MediaDevice.class);
        final MediaDevice device2 = mock(MediaDevice.class);
        final MediaDevice device3 = mock(MediaDevice.class);
        mLocalMediaManager.mPhoneDevice = mock(PhoneMediaDevice.class);
        devices.add(device1);
        devices.add(device2);
        mLocalMediaManager.mMediaDevices.add(device3);
        mLocalMediaManager.mMediaDevices.add(mLocalMediaManager.mPhoneDevice);

        mShadowBluetoothAdapter = null;

        when(mLocalMediaManager.mPhoneDevice.getId()).thenReturn("test_phone_id");

        assertThat(mLocalMediaManager.mMediaDevices).hasSize(2);
        mLocalMediaManager.registerCallback(mCallback);
        mLocalMediaManager.mMediaDeviceCallback.onDeviceListAdded(devices);

        assertThat(mLocalMediaManager.mMediaDevices).hasSize(2);
        verify(mCallback).onDeviceListUpdate(any());
    }
}
}