Loading packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +4 −4 Original line number Diff line number Diff line Loading @@ -422,7 +422,7 @@ public class InfoMediaManager extends MediaManager { || sessionInfo.getSelectedRoutes().size() <= 1; } private void refreshDevices() { private synchronized void refreshDevices() { mMediaDevices.clear(); mCurrentConnectedDevice = null; if (TextUtils.isEmpty(mPackageName)) { Loading Loading @@ -452,7 +452,7 @@ public class InfoMediaManager extends MediaManager { return infos; } private void buildAvailableRoutes() { private synchronized void buildAvailableRoutes() { for (MediaRoute2Info route : getAvailableRoutes(mPackageName)) { if (DEBUG) { Log.d(TAG, "buildAvailableRoutes() route : " + route.getName() + ", volume : " Loading @@ -462,7 +462,7 @@ public class InfoMediaManager extends MediaManager { } } private List<MediaRoute2Info> getAvailableRoutes(String packageName) { private synchronized List<MediaRoute2Info> getAvailableRoutes(String packageName) { final List<MediaRoute2Info> infos = new ArrayList<>(); RoutingSessionInfo routingSessionInfo = getRoutingSessionInfo(packageName); if (routingSessionInfo != null) { Loading Loading @@ -596,7 +596,7 @@ public class InfoMediaManager extends MediaManager { @Override public void onSessionUpdated(RoutingSessionInfo sessionInfo) { dispatchDataChanged(); refreshDevices(); } } } packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java +12 −2 Original line number Diff line number Diff line Loading @@ -666,12 +666,22 @@ public class InfoMediaManagerTest { } @Test public void onSessionUpdated_shouldDispatchDataChanged() { public void onSessionUpdated_shouldDispatchDeviceListAdded() { final MediaRoute2Info info = mock(MediaRoute2Info.class); when(info.getId()).thenReturn(TEST_ID); when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME); when(info.isSystemRoute()).thenReturn(true); final List<MediaRoute2Info> routes = new ArrayList<>(); routes.add(info); mShadowRouter2Manager.setAllRoutes(routes); mInfoMediaManager.mPackageName = ""; mInfoMediaManager.registerCallback(mCallback); mInfoMediaManager.mMediaRouterCallback.onSessionUpdated(mock(RoutingSessionInfo.class)); verify(mCallback).onDeviceAttributesChanged(); verify(mCallback).onDeviceListAdded(any()); } @Test Loading packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java +12 −2 Original line number Diff line number Diff line Loading @@ -133,6 +133,7 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback, @VisibleForTesting LocalMediaManager mLocalMediaManager; private MediaOutputMetricLogger mMetricLogger; private int mCurrentState; private int mColorItemContent; private int mColorSeekbarProgress; Loading Loading @@ -207,6 +208,9 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback, if (TextUtils.equals(controller.getPackageName(), mPackageName)) { mMediaController = controller; mMediaController.unregisterCallback(mCb); if (mMediaController.getPlaybackState() != null) { mCurrentState = mMediaController.getPlaybackState().getState(); } mMediaController.registerCallback(mCb); break; } Loading Loading @@ -1003,10 +1007,16 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback, @Override public void onPlaybackStateChanged(PlaybackState playbackState) { final int state = playbackState.getState(); if (state == PlaybackState.STATE_STOPPED || state == PlaybackState.STATE_PAUSED) { final int newState = playbackState == null ? PlaybackState.STATE_STOPPED : playbackState.getState(); if (mCurrentState == newState) { return; } if (newState == PlaybackState.STATE_STOPPED || newState == PlaybackState.STATE_PAUSED) { mCallback.onMediaStoppedOrPaused(); } mCurrentState = newState; } }; Loading Loading
packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +4 −4 Original line number Diff line number Diff line Loading @@ -422,7 +422,7 @@ public class InfoMediaManager extends MediaManager { || sessionInfo.getSelectedRoutes().size() <= 1; } private void refreshDevices() { private synchronized void refreshDevices() { mMediaDevices.clear(); mCurrentConnectedDevice = null; if (TextUtils.isEmpty(mPackageName)) { Loading Loading @@ -452,7 +452,7 @@ public class InfoMediaManager extends MediaManager { return infos; } private void buildAvailableRoutes() { private synchronized void buildAvailableRoutes() { for (MediaRoute2Info route : getAvailableRoutes(mPackageName)) { if (DEBUG) { Log.d(TAG, "buildAvailableRoutes() route : " + route.getName() + ", volume : " Loading @@ -462,7 +462,7 @@ public class InfoMediaManager extends MediaManager { } } private List<MediaRoute2Info> getAvailableRoutes(String packageName) { private synchronized List<MediaRoute2Info> getAvailableRoutes(String packageName) { final List<MediaRoute2Info> infos = new ArrayList<>(); RoutingSessionInfo routingSessionInfo = getRoutingSessionInfo(packageName); if (routingSessionInfo != null) { Loading Loading @@ -596,7 +596,7 @@ public class InfoMediaManager extends MediaManager { @Override public void onSessionUpdated(RoutingSessionInfo sessionInfo) { dispatchDataChanged(); refreshDevices(); } } }
packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java +12 −2 Original line number Diff line number Diff line Loading @@ -666,12 +666,22 @@ public class InfoMediaManagerTest { } @Test public void onSessionUpdated_shouldDispatchDataChanged() { public void onSessionUpdated_shouldDispatchDeviceListAdded() { final MediaRoute2Info info = mock(MediaRoute2Info.class); when(info.getId()).thenReturn(TEST_ID); when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME); when(info.isSystemRoute()).thenReturn(true); final List<MediaRoute2Info> routes = new ArrayList<>(); routes.add(info); mShadowRouter2Manager.setAllRoutes(routes); mInfoMediaManager.mPackageName = ""; mInfoMediaManager.registerCallback(mCallback); mInfoMediaManager.mMediaRouterCallback.onSessionUpdated(mock(RoutingSessionInfo.class)); verify(mCallback).onDeviceAttributesChanged(); verify(mCallback).onDeviceListAdded(any()); } @Test Loading
packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java +12 −2 Original line number Diff line number Diff line Loading @@ -133,6 +133,7 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback, @VisibleForTesting LocalMediaManager mLocalMediaManager; private MediaOutputMetricLogger mMetricLogger; private int mCurrentState; private int mColorItemContent; private int mColorSeekbarProgress; Loading Loading @@ -207,6 +208,9 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback, if (TextUtils.equals(controller.getPackageName(), mPackageName)) { mMediaController = controller; mMediaController.unregisterCallback(mCb); if (mMediaController.getPlaybackState() != null) { mCurrentState = mMediaController.getPlaybackState().getState(); } mMediaController.registerCallback(mCb); break; } Loading Loading @@ -1003,10 +1007,16 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback, @Override public void onPlaybackStateChanged(PlaybackState playbackState) { final int state = playbackState.getState(); if (state == PlaybackState.STATE_STOPPED || state == PlaybackState.STATE_PAUSED) { final int newState = playbackState == null ? PlaybackState.STATE_STOPPED : playbackState.getState(); if (mCurrentState == newState) { return; } if (newState == PlaybackState.STATE_STOPPED || newState == PlaybackState.STATE_PAUSED) { mCallback.onMediaStoppedOrPaused(); } mCurrentState = newState; } }; Loading