diff options
3 files changed, 21 insertions, 39 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java index bdb58719b1a8..5f026c451152 100644 --- a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java @@ -74,6 +74,7 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.CopyOnWriteArrayList; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -84,6 +85,7 @@ public abstract class InfoMediaManager extends MediaManager { private static final String TAG = "InfoMediaManager"; private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); + protected final List<MediaDevice> mMediaDevices = new CopyOnWriteArrayList<>(); /** Checked exception that signals the specified package is not present in the system. */ public static class PackageNotAvailableException extends Exception { @@ -227,6 +229,16 @@ public abstract class InfoMediaManager extends MediaManager { Api34Impl.onRouteListingPreferenceUpdated(routeListingPreference, mPreferenceItemMap); } + protected final MediaDevice findMediaDevice(@NonNull String id) { + for (MediaDevice mediaDevice : mMediaDevices) { + if (mediaDevice.getId().equals(id)) { + return mediaDevice; + } + } + Log.e(TAG, "findMediaDevice() can't find device with id: " + id); + return null; + } + /** * Get current device that played media. * @return MediaDevice @@ -433,7 +445,7 @@ public abstract class InfoMediaManager extends MediaManager { protected final synchronized void refreshDevices() { rebuildDeviceList(); - dispatchDeviceListAdded(); + dispatchDeviceListAdded(mMediaDevices); } // MediaRoute2Info.getType was made public on API 34, but exists since API 30. diff --git a/packages/SettingsLib/src/com/android/settingslib/media/MediaManager.java b/packages/SettingsLib/src/com/android/settingslib/media/MediaManager.java index 8bebd6ee3448..d562c8a82f2d 100644 --- a/packages/SettingsLib/src/com/android/settingslib/media/MediaManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/media/MediaManager.java @@ -15,9 +15,9 @@ */ package com.android.settingslib.media; +import android.annotation.NonNull; import android.app.Notification; import android.content.Context; -import android.util.Log; import java.util.ArrayList; import java.util.Collection; @@ -29,10 +29,7 @@ import java.util.concurrent.CopyOnWriteArrayList; */ public abstract class MediaManager { - private static final String TAG = "MediaManager"; - protected final Collection<MediaDeviceCallback> mCallbacks = new CopyOnWriteArrayList<>(); - protected final List<MediaDevice> mMediaDevices = new CopyOnWriteArrayList<>(); protected Context mContext; protected Notification mNotification; @@ -54,19 +51,9 @@ public abstract class MediaManager { } } - protected MediaDevice findMediaDevice(String id) { - for (MediaDevice mediaDevice : mMediaDevices) { - if (mediaDevice.getId().equals(id)) { - return mediaDevice; - } - } - Log.e(TAG, "findMediaDevice() can't found device"); - return null; - } - - protected void dispatchDeviceListAdded() { + protected void dispatchDeviceListAdded(@NonNull List<MediaDevice> devices) { for (MediaDeviceCallback callback : getCallbacks()) { - callback.onDeviceListAdded(new ArrayList<>(mMediaDevices)); + callback.onDeviceListAdded(new ArrayList<>(devices)); } } diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/MediaManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/MediaManagerTest.java index 46e724d245f5..c3237f0e72eb 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/MediaManagerTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/MediaManagerTest.java @@ -16,7 +16,6 @@ package com.android.settingslib.media; -import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.verify; @@ -32,6 +31,8 @@ import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; +import java.util.Collections; + @RunWith(RobolectricTestRunner.class) public class MediaManagerTest { @@ -59,7 +60,7 @@ public class MediaManagerTest { public void dispatchDeviceListAdded_registerCallback_shouldDispatchCallback() { mMediaManager.registerCallback(mCallback); - mMediaManager.dispatchDeviceListAdded(); + mMediaManager.dispatchDeviceListAdded(Collections.emptyList()); verify(mCallback).onDeviceListAdded(any()); } @@ -68,9 +69,9 @@ public class MediaManagerTest { public void dispatchDeviceListRemoved_registerCallback_shouldDispatchCallback() { mMediaManager.registerCallback(mCallback); - mMediaManager.dispatchDeviceListRemoved(mMediaManager.mMediaDevices); + mMediaManager.dispatchDeviceListRemoved(Collections.emptyList()); - verify(mCallback).onDeviceListRemoved(mMediaManager.mMediaDevices); + verify(mCallback).onDeviceListRemoved(Collections.emptyList()); } @Test @@ -83,24 +84,6 @@ public class MediaManagerTest { } @Test - public void findMediaDevice_idExist_shouldReturnMediaDevice() { - mMediaManager.mMediaDevices.add(mDevice); - - final MediaDevice device = mMediaManager.findMediaDevice(TEST_ID); - - assertThat(device.getId()).isEqualTo(mDevice.getId()); - } - - @Test - public void findMediaDevice_idNotExist_shouldReturnNull() { - mMediaManager.mMediaDevices.add(mDevice); - - final MediaDevice device = mMediaManager.findMediaDevice("123"); - - assertThat(device).isNull(); - } - - @Test public void dispatchOnRequestFailed_registerCallback_shouldDispatchCallback() { mMediaManager.registerCallback(mCallback); |