Loading packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +13 −1 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 { Loading Loading @@ -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 Loading Loading @@ -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. Loading packages/SettingsLib/src/com/android/settingslib/media/MediaManager.java +3 −16 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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)); } } Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/MediaManagerTest.java +5 −22 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 { Loading Loading @@ -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()); } Loading @@ -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 Loading @@ -82,24 +83,6 @@ public class MediaManagerTest { verify(mCallback).onConnectedDeviceChanged(TEST_ID); } @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); Loading Loading
packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +13 −1 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 { Loading Loading @@ -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 Loading Loading @@ -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. Loading
packages/SettingsLib/src/com/android/settingslib/media/MediaManager.java +3 −16 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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)); } } Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/MediaManagerTest.java +5 −22 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 { Loading Loading @@ -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()); } Loading @@ -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 Loading @@ -82,24 +83,6 @@ public class MediaManagerTest { verify(mCallback).onConnectedDeviceChanged(TEST_ID); } @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); Loading