Fix MediaOutputController resource management
This is a cherrypick of commit 42df638b50.
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
This commit is contained in:
@@ -224,15 +224,7 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback,
|
|||||||
Log.d(TAG, "No media controller for " + mPackageName);
|
Log.d(TAG, "No media controller for " + mPackageName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (mLocalMediaManager == null) {
|
|
||||||
if (DEBUG) {
|
|
||||||
Log.d(TAG, "No local media manager " + mPackageName);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
mCallback = cb;
|
mCallback = cb;
|
||||||
mLocalMediaManager.unregisterCallback(this);
|
|
||||||
mLocalMediaManager.stopScan();
|
|
||||||
mLocalMediaManager.registerCallback(this);
|
mLocalMediaManager.registerCallback(this);
|
||||||
mLocalMediaManager.startScan();
|
mLocalMediaManager.startScan();
|
||||||
}
|
}
|
||||||
@@ -254,10 +246,8 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback,
|
|||||||
if (mMediaController != null) {
|
if (mMediaController != null) {
|
||||||
mMediaController.unregisterCallback(mCb);
|
mMediaController.unregisterCallback(mCb);
|
||||||
}
|
}
|
||||||
if (mLocalMediaManager != null) {
|
mLocalMediaManager.unregisterCallback(this);
|
||||||
mLocalMediaManager.unregisterCallback(this);
|
mLocalMediaManager.stopScan();
|
||||||
mLocalMediaManager.stopScan();
|
|
||||||
}
|
|
||||||
synchronized (mMediaDevicesLock) {
|
synchronized (mMediaDevicesLock) {
|
||||||
mCachedMediaDevices.clear();
|
mCachedMediaDevices.clear();
|
||||||
mMediaDevices.clear();
|
mMediaDevices.clear();
|
||||||
@@ -661,10 +651,6 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback,
|
|||||||
return mLocalMediaManager.getCurrentConnectedDevice();
|
return mLocalMediaManager.getCurrentConnectedDevice();
|
||||||
}
|
}
|
||||||
|
|
||||||
private MediaDevice getMediaDeviceById(String id) {
|
|
||||||
return mLocalMediaManager.getMediaDeviceById(new ArrayList<>(mMediaDevices), id);
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean addDeviceToPlayMedia(MediaDevice device) {
|
boolean addDeviceToPlayMedia(MediaDevice device) {
|
||||||
mMetricLogger.logInteractionExpansion(device);
|
mMetricLogger.logInteractionExpansion(device);
|
||||||
return mLocalMediaManager.addDeviceToPlayMedia(device);
|
return mLocalMediaManager.addDeviceToPlayMedia(device);
|
||||||
@@ -686,10 +672,6 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback,
|
|||||||
return mLocalMediaManager.getDeselectableMediaDevice();
|
return mLocalMediaManager.getDeselectableMediaDevice();
|
||||||
}
|
}
|
||||||
|
|
||||||
void adjustSessionVolume(String sessionId, int volume) {
|
|
||||||
mLocalMediaManager.adjustSessionVolume(sessionId, volume);
|
|
||||||
}
|
|
||||||
|
|
||||||
void adjustSessionVolume(int volume) {
|
void adjustSessionVolume(int volume) {
|
||||||
mLocalMediaManager.adjustSessionVolume(volume);
|
mLocalMediaManager.adjustSessionVolume(volume);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -170,15 +170,6 @@ public class MediaOutputControllerTest extends SysuiTestCase {
|
|||||||
verify(mLocalMediaManager).startScan();
|
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
|
@Test
|
||||||
public void stop_verifyLocalMediaManagerDeinit() {
|
public void stop_verifyLocalMediaManagerDeinit() {
|
||||||
mMediaOutputController.start(mCb);
|
mMediaOutputController.start(mCb);
|
||||||
|
|||||||
Reference in New Issue
Block a user