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

Commit d61f271b authored by Santiago Seifert's avatar Santiago Seifert
Browse files

Fix MediaOutputController resource management

This is a cherrypick of commit 42df638b.

MediaOutputController currently stops scanning when no
request to scan has been made yet, and also performs
unnecessary null checks.

Also remove dead code.

Bug: 232812007
Test: atest SystemUITests
Change-Id: I396d376a54b89c95a531b1499bd50be2e4242ed1
Merged-In: I396d376a54b89c95a531b1499bd50be2e4242ed1
parent 00770011
Loading
Loading
Loading
Loading
+2 −20
Original line number Diff line number Diff line
@@ -224,15 +224,7 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback,
                Log.d(TAG, "No media controller for " + mPackageName);
            }
        }
        if (mLocalMediaManager == null) {
            if (DEBUG) {
                Log.d(TAG, "No local media manager " + mPackageName);
            }
            return;
        }
        mCallback = cb;
        mLocalMediaManager.unregisterCallback(this);
        mLocalMediaManager.stopScan();
        mLocalMediaManager.registerCallback(this);
        mLocalMediaManager.startScan();
    }
@@ -254,10 +246,8 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback,
        if (mMediaController != null) {
            mMediaController.unregisterCallback(mCb);
        }
        if (mLocalMediaManager != null) {
        mLocalMediaManager.unregisterCallback(this);
        mLocalMediaManager.stopScan();
        }
        synchronized (mMediaDevicesLock) {
            mCachedMediaDevices.clear();
            mMediaDevices.clear();
@@ -661,10 +651,6 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback,
        return mLocalMediaManager.getCurrentConnectedDevice();
    }

    private MediaDevice getMediaDeviceById(String id) {
        return mLocalMediaManager.getMediaDeviceById(new ArrayList<>(mMediaDevices), id);
    }

    boolean addDeviceToPlayMedia(MediaDevice device) {
        mMetricLogger.logInteractionExpansion(device);
        return mLocalMediaManager.addDeviceToPlayMedia(device);
@@ -686,10 +672,6 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback,
        return mLocalMediaManager.getDeselectableMediaDevice();
    }

    void adjustSessionVolume(String sessionId, int volume) {
        mLocalMediaManager.adjustSessionVolume(sessionId, volume);
    }

    void adjustSessionVolume(int volume) {
        mLocalMediaManager.adjustSessionVolume(volume);
    }
+0 −9
Original line number Diff line number Diff line
@@ -170,15 +170,6 @@ public class MediaOutputControllerTest extends SysuiTestCase {
        verify(mLocalMediaManager).startScan();
    }

    @Test
    public void start_LocalMediaManagerIsNull_verifyNotStartScan() {
        mMediaOutputController.mLocalMediaManager = null;
        mMediaOutputController.start(mCb);

        verify(mLocalMediaManager, never()).registerCallback(mMediaOutputController);
        verify(mLocalMediaManager, never()).startScan();
    }

    @Test
    public void stop_verifyLocalMediaManagerDeinit() {
        mMediaOutputController.start(mCb);