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

Commit 8f76b444 authored by hughchen's avatar hughchen
Browse files

Add null check for worker

Add null check to avoid crash when worker cannot get through uri.

Bug: 128492874
Test: make -j42 RunSettingsRoboTests
Change-Id: I789ce0bfa98c0b0b145a8605c58c88a77eeb76a9
parent d4ab1496
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -76,6 +76,11 @@ public class MediaOutputSlice implements CustomSliceable {
            return null;
        }

        if (getWorker() == null) {
            Log.d(TAG, "getSlice() Can not get worker through uri!");
            return null;
        }

        final List<MediaDevice> devices = getMediaDevices();
        @ColorInt final int color = Utils.getColorAccentDefaultColor(mContext);

@@ -115,13 +120,15 @@ public class MediaOutputSlice implements CustomSliceable {
    private MediaDeviceUpdateWorker getWorker() {
        if (mWorker == null) {
            mWorker = (MediaDeviceUpdateWorker) SliceBackgroundWorker.getInstance(getUri());
            if (mWorker != null) {
                mWorker.setPackageName(mPackageName);
            }
        }
        return mWorker;
    }

    private List<MediaDevice> getMediaDevices() {
        List<MediaDevice> devices = getWorker().getMediaDevices();
        final List<MediaDevice> devices = getWorker().getMediaDevices();
        return devices;
    }

+7 −0
Original line number Diff line number Diff line
@@ -93,6 +93,13 @@ public class MediaOutputSliceTest {
        mMediaOutputSlice.init(TEST_PACKAGE_NAME, mMediaDeviceUpdateWorker);
    }

    @Test
    public void getSlice_workerIsNull_shouldNotCrash() {
        mMediaOutputSlice.init(TEST_PACKAGE_NAME, null);

        mMediaOutputSlice.getSlice();
    }

    @Test
    public void getSlice_shouldHaveActiveDeviceName() {
        mDevices.clear();