Loading src/com/android/settings/media/MediaDeviceUpdateWorker.java +11 −1 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.media.AudioManager; import android.media.MediaRouter2Manager; import android.media.RoutingSessionInfo; import android.net.Uri; import android.os.UserHandle; Loading Loading @@ -59,6 +60,8 @@ public class MediaDeviceUpdateWorker extends SliceBackgroundWorker protected final Collection<MediaDevice> mMediaDevices = new CopyOnWriteArrayList<>(); private final DevicesChangedBroadcastReceiver mReceiver; private final String mPackageName; @VisibleForTesting MediaRouter2Manager mManager; private boolean mIsTouched; private MediaDevice mTopDevice; Loading @@ -82,6 +85,11 @@ public class MediaDeviceUpdateWorker extends SliceBackgroundWorker mLocalMediaManager = new LocalMediaManager(mContext, mPackageName, null); } // Delaying initialization to allow mocking in Roboelectric tests. if (mManager == null) { mManager = MediaRouter2Manager.getInstance(mContext); } mLocalMediaManager.registerCallback(this); final IntentFilter intentFilter = new IntentFilter(STREAM_DEVICES_CHANGED_ACTION); mContext.registerReceiver(mReceiver, intentFilter); Loading Loading @@ -259,7 +267,9 @@ public class MediaDeviceUpdateWorker extends SliceBackgroundWorker } boolean shouldDisableMediaOutput(String packageName) { return mLocalMediaManager.shouldDisableMediaOutput(packageName); // TODO: b/291277292 - Remove references to MediaRouter2Manager and implement long-term // solution in SettingsLib. return mManager.getTransferableRoutes(packageName).isEmpty(); } boolean shouldEnableVolumeSeekBar(RoutingSessionInfo sessionInfo) { Loading src/com/android/settings/media/RemoteMediaSlice.java +0 −8 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.media.MediaRouter2Manager; import android.media.RoutingSessionInfo; import android.net.Uri; import android.text.SpannableString; Loading @@ -33,7 +32,6 @@ import android.text.TextUtils; import android.text.style.ForegroundColorSpan; import android.util.Log; import androidx.annotation.VisibleForTesting; import androidx.core.graphics.drawable.IconCompat; import androidx.slice.Slice; import androidx.slice.builders.ListBuilder; Loading Loading @@ -67,9 +65,6 @@ public class RemoteMediaSlice implements CustomSliceable { private MediaDeviceUpdateWorker mWorker; @VisibleForTesting MediaRouter2Manager mRouterManager; public RemoteMediaSlice(Context context) { mContext = context; } Loading Loading @@ -105,9 +100,6 @@ public class RemoteMediaSlice implements CustomSliceable { Log.e(TAG, "Unable to get the slice worker."); return listBuilder.build(); } if (mRouterManager == null) { mRouterManager = MediaRouter2Manager.getInstance(mContext); } // Only displaying remote devices final List<RoutingSessionInfo> infos = getWorker().getActiveRemoteMediaDevice(); if (infos.isEmpty()) { Loading src/com/android/settings/notification/RemoteVolumeGroupController.java +5 −2 Original line number Diff line number Diff line Loading @@ -136,8 +136,11 @@ public class RemoteVolumeGroupController extends BasePreferenceController implem Preference switcherPreference = mPreferenceCategory.findPreference( SWITCHER_PREFIX + info.getId()); final boolean isMediaOutputDisabled = mLocalMediaManager.shouldDisableMediaOutput( info.getClientPackageName()); // TODO: b/291277292 - Remove references to MediaRouter2Manager and implement long-term // solution in SettingsLib. final boolean isMediaOutputDisabled = mRouterManager.getTransferableRoutes(info.getClientPackageName()).isEmpty(); final CharSequence outputTitle = mContext.getString(R.string.media_output_label_title, appName); if (switcherPreference != null) { Loading tests/robotests/src/com/android/settings/media/MediaDeviceUpdateWorkerTest.java +3 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.content.Context; import android.content.Intent; import android.media.AudioManager; import android.media.MediaRoute2ProviderService; import android.media.MediaRouter2Manager; import android.media.RoutingSessionInfo; import android.net.Uri; Loading Loading @@ -92,6 +93,7 @@ public class MediaDeviceUpdateWorkerTest { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); mMediaDeviceUpdateWorker = new MediaDeviceUpdateWorker(mContext, URI); mMediaDeviceUpdateWorker.mManager = mock(MediaRouter2Manager.class); mResolver = mock(ContentResolver.class); mShadowApplication = ShadowApplication.getInstance(); mAudioManager = mContext.getSystemService(AudioManager.class); Loading Loading @@ -234,6 +236,7 @@ public class MediaDeviceUpdateWorkerTest { when(mLocalBluetoothManager.getEventManager()).thenReturn(mBluetoothEventManager); mMediaDeviceUpdateWorker = new MediaDeviceUpdateWorker(mContext, URI1); mMediaDeviceUpdateWorker.mManager = mock(MediaRouter2Manager.class); mMediaDeviceUpdateWorker.mLocalMediaManager = mock(LocalMediaManager.class); when(mMediaDeviceUpdateWorker.mLocalMediaManager.getPackageName()) .thenReturn(TEST_DEVICE_PACKAGE_NAME1); Loading tests/robotests/src/com/android/settings/media/RemoteMediaSliceTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -89,10 +89,10 @@ public class RemoteMediaSliceTest { SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS); mRemoteMediaSlice = new RemoteMediaSlice(mContext); mRemoteMediaSlice.mRouterManager = mock(MediaRouter2Manager.class); sMediaDeviceUpdateWorker = spy(new MediaDeviceUpdateWorker(mContext, REMOTE_MEDIA_SLICE_URI)); sMediaDeviceUpdateWorker.mLocalMediaManager = mLocalMediaManager; sMediaDeviceUpdateWorker.mManager = mock(MediaRouter2Manager.class); final RoutingSessionInfo remoteSessionInfo = mock(RoutingSessionInfo.class); when(remoteSessionInfo.getId()).thenReturn(TEST_SESSION_1_ID); when(remoteSessionInfo.getName()).thenReturn(TEST_SESSION_1_NAME); Loading Loading
src/com/android/settings/media/MediaDeviceUpdateWorker.java +11 −1 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.media.AudioManager; import android.media.MediaRouter2Manager; import android.media.RoutingSessionInfo; import android.net.Uri; import android.os.UserHandle; Loading Loading @@ -59,6 +60,8 @@ public class MediaDeviceUpdateWorker extends SliceBackgroundWorker protected final Collection<MediaDevice> mMediaDevices = new CopyOnWriteArrayList<>(); private final DevicesChangedBroadcastReceiver mReceiver; private final String mPackageName; @VisibleForTesting MediaRouter2Manager mManager; private boolean mIsTouched; private MediaDevice mTopDevice; Loading @@ -82,6 +85,11 @@ public class MediaDeviceUpdateWorker extends SliceBackgroundWorker mLocalMediaManager = new LocalMediaManager(mContext, mPackageName, null); } // Delaying initialization to allow mocking in Roboelectric tests. if (mManager == null) { mManager = MediaRouter2Manager.getInstance(mContext); } mLocalMediaManager.registerCallback(this); final IntentFilter intentFilter = new IntentFilter(STREAM_DEVICES_CHANGED_ACTION); mContext.registerReceiver(mReceiver, intentFilter); Loading Loading @@ -259,7 +267,9 @@ public class MediaDeviceUpdateWorker extends SliceBackgroundWorker } boolean shouldDisableMediaOutput(String packageName) { return mLocalMediaManager.shouldDisableMediaOutput(packageName); // TODO: b/291277292 - Remove references to MediaRouter2Manager and implement long-term // solution in SettingsLib. return mManager.getTransferableRoutes(packageName).isEmpty(); } boolean shouldEnableVolumeSeekBar(RoutingSessionInfo sessionInfo) { Loading
src/com/android/settings/media/RemoteMediaSlice.java +0 −8 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.media.MediaRouter2Manager; import android.media.RoutingSessionInfo; import android.net.Uri; import android.text.SpannableString; Loading @@ -33,7 +32,6 @@ import android.text.TextUtils; import android.text.style.ForegroundColorSpan; import android.util.Log; import androidx.annotation.VisibleForTesting; import androidx.core.graphics.drawable.IconCompat; import androidx.slice.Slice; import androidx.slice.builders.ListBuilder; Loading Loading @@ -67,9 +65,6 @@ public class RemoteMediaSlice implements CustomSliceable { private MediaDeviceUpdateWorker mWorker; @VisibleForTesting MediaRouter2Manager mRouterManager; public RemoteMediaSlice(Context context) { mContext = context; } Loading Loading @@ -105,9 +100,6 @@ public class RemoteMediaSlice implements CustomSliceable { Log.e(TAG, "Unable to get the slice worker."); return listBuilder.build(); } if (mRouterManager == null) { mRouterManager = MediaRouter2Manager.getInstance(mContext); } // Only displaying remote devices final List<RoutingSessionInfo> infos = getWorker().getActiveRemoteMediaDevice(); if (infos.isEmpty()) { Loading
src/com/android/settings/notification/RemoteVolumeGroupController.java +5 −2 Original line number Diff line number Diff line Loading @@ -136,8 +136,11 @@ public class RemoteVolumeGroupController extends BasePreferenceController implem Preference switcherPreference = mPreferenceCategory.findPreference( SWITCHER_PREFIX + info.getId()); final boolean isMediaOutputDisabled = mLocalMediaManager.shouldDisableMediaOutput( info.getClientPackageName()); // TODO: b/291277292 - Remove references to MediaRouter2Manager and implement long-term // solution in SettingsLib. final boolean isMediaOutputDisabled = mRouterManager.getTransferableRoutes(info.getClientPackageName()).isEmpty(); final CharSequence outputTitle = mContext.getString(R.string.media_output_label_title, appName); if (switcherPreference != null) { Loading
tests/robotests/src/com/android/settings/media/MediaDeviceUpdateWorkerTest.java +3 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.content.Context; import android.content.Intent; import android.media.AudioManager; import android.media.MediaRoute2ProviderService; import android.media.MediaRouter2Manager; import android.media.RoutingSessionInfo; import android.net.Uri; Loading Loading @@ -92,6 +93,7 @@ public class MediaDeviceUpdateWorkerTest { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); mMediaDeviceUpdateWorker = new MediaDeviceUpdateWorker(mContext, URI); mMediaDeviceUpdateWorker.mManager = mock(MediaRouter2Manager.class); mResolver = mock(ContentResolver.class); mShadowApplication = ShadowApplication.getInstance(); mAudioManager = mContext.getSystemService(AudioManager.class); Loading Loading @@ -234,6 +236,7 @@ public class MediaDeviceUpdateWorkerTest { when(mLocalBluetoothManager.getEventManager()).thenReturn(mBluetoothEventManager); mMediaDeviceUpdateWorker = new MediaDeviceUpdateWorker(mContext, URI1); mMediaDeviceUpdateWorker.mManager = mock(MediaRouter2Manager.class); mMediaDeviceUpdateWorker.mLocalMediaManager = mock(LocalMediaManager.class); when(mMediaDeviceUpdateWorker.mLocalMediaManager.getPackageName()) .thenReturn(TEST_DEVICE_PACKAGE_NAME1); Loading
tests/robotests/src/com/android/settings/media/RemoteMediaSliceTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -89,10 +89,10 @@ public class RemoteMediaSliceTest { SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS); mRemoteMediaSlice = new RemoteMediaSlice(mContext); mRemoteMediaSlice.mRouterManager = mock(MediaRouter2Manager.class); sMediaDeviceUpdateWorker = spy(new MediaDeviceUpdateWorker(mContext, REMOTE_MEDIA_SLICE_URI)); sMediaDeviceUpdateWorker.mLocalMediaManager = mLocalMediaManager; sMediaDeviceUpdateWorker.mManager = mock(MediaRouter2Manager.class); final RoutingSessionInfo remoteSessionInfo = mock(RoutingSessionInfo.class); when(remoteSessionInfo.getId()).thenReturn(TEST_SESSION_1_ID); when(remoteSessionInfo.getName()).thenReturn(TEST_SESSION_1_NAME); Loading