Loading media/java/android/media/IMediaRouterService.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,8 @@ interface IMediaRouterService { void unregisterManager(IMediaRouter2Manager manager); void setRouteVolumeWithManager(IMediaRouter2Manager manager, int requestId, in MediaRoute2Info route, int volume); void startScan(IMediaRouter2Manager manager); void stopScan(IMediaRouter2Manager manager); void requestCreateSessionWithManager(IMediaRouter2Manager manager, int requestId, in RoutingSessionInfo oldSession, in @nullable MediaRoute2Info route); Loading media/java/android/media/MediaRouter2Manager.java +30 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,36 @@ public final class MediaRouter2Manager { } } /** * Starts scanning remote routes. * @see #stopScan(String) */ public void startScan() { Client client = getOrCreateClient(); if (client != null) { try { mMediaRouterService.startScan(client); } catch (RemoteException ex) { Log.e(TAG, "Unable to get sessions. Service probably died.", ex); } } } /** * Stops scanning remote routes to reduce resource consumption. * @see #startScan(String) */ public void stopScan() { Client client = getOrCreateClient(); if (client != null) { try { mMediaRouterService.stopScan(client); } catch (RemoteException ex) { Log.e(TAG, "Unable to get sessions. Service probably died.", ex); } } } /** * Gets a {@link android.media.session.MediaController} associated with the * given routing session. Loading media/java/android/media/RouteDiscoveryPreference.java +1 −0 Original line number Diff line number Diff line Loading @@ -153,6 +153,7 @@ public final class RouteDiscoveryPreference implements Parcelable { return false; } RouteDiscoveryPreference other = (RouteDiscoveryPreference) o; //TODO: Make this order-free return Objects.equals(mPreferredFeatures, other.mPreferredFeatures) && mShouldPerformActiveScan == other.mShouldPerformActiveScan; } Loading packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java +7 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.graphics.drawable.Drawable; import android.graphics.drawable.Icon; import android.media.MediaMetadata; import android.media.MediaRoute2Info; import android.media.MediaRouter2Manager; import android.media.RoutingSessionInfo; import android.media.session.MediaController; import android.media.session.MediaSessionManager; Loading Loading @@ -76,6 +77,7 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback { private final List<MediaDevice> mGroupMediaDevices = new CopyOnWriteArrayList<>(); private final boolean mAboveStatusbar; private final NotificationEntryManager mNotificationEntryManager; private final MediaRouter2Manager mRouterManager; @VisibleForTesting final List<MediaDevice> mMediaDevices = new CopyOnWriteArrayList<>(); Loading Loading @@ -104,6 +106,7 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback { mLocalMediaManager = new LocalMediaManager(mContext, lbm, imm, packageName); mMetricLogger = new MediaOutputMetricLogger(mContext, mPackageName); mUiEventLogger = uiEventLogger; mRouterManager = MediaRouter2Manager.getInstance(mContext); } void start(@NonNull Callback cb) { Loading Loading @@ -134,6 +137,7 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback { mLocalMediaManager.stopScan(); mLocalMediaManager.registerCallback(this); mLocalMediaManager.startScan(); mRouterManager.startScan(); } void stop() { Loading @@ -144,6 +148,9 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback { mLocalMediaManager.unregisterCallback(this); mLocalMediaManager.stopScan(); } if (mRouterManager != null) { mRouterManager.stopScan(); } mMediaDevices.clear(); } Loading services/core/java/com/android/server/media/MediaRoute2Provider.java +1 −1 Original line number Diff line number Diff line Loading @@ -77,7 +77,7 @@ abstract class MediaRoute2Provider { @NonNull public List<RoutingSessionInfo> getSessionInfos() { synchronized (mLock) { return mSessionInfos; return new ArrayList<>(mSessionInfos); } } Loading Loading
media/java/android/media/IMediaRouterService.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,8 @@ interface IMediaRouterService { void unregisterManager(IMediaRouter2Manager manager); void setRouteVolumeWithManager(IMediaRouter2Manager manager, int requestId, in MediaRoute2Info route, int volume); void startScan(IMediaRouter2Manager manager); void stopScan(IMediaRouter2Manager manager); void requestCreateSessionWithManager(IMediaRouter2Manager manager, int requestId, in RoutingSessionInfo oldSession, in @nullable MediaRoute2Info route); Loading
media/java/android/media/MediaRouter2Manager.java +30 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,36 @@ public final class MediaRouter2Manager { } } /** * Starts scanning remote routes. * @see #stopScan(String) */ public void startScan() { Client client = getOrCreateClient(); if (client != null) { try { mMediaRouterService.startScan(client); } catch (RemoteException ex) { Log.e(TAG, "Unable to get sessions. Service probably died.", ex); } } } /** * Stops scanning remote routes to reduce resource consumption. * @see #startScan(String) */ public void stopScan() { Client client = getOrCreateClient(); if (client != null) { try { mMediaRouterService.stopScan(client); } catch (RemoteException ex) { Log.e(TAG, "Unable to get sessions. Service probably died.", ex); } } } /** * Gets a {@link android.media.session.MediaController} associated with the * given routing session. Loading
media/java/android/media/RouteDiscoveryPreference.java +1 −0 Original line number Diff line number Diff line Loading @@ -153,6 +153,7 @@ public final class RouteDiscoveryPreference implements Parcelable { return false; } RouteDiscoveryPreference other = (RouteDiscoveryPreference) o; //TODO: Make this order-free return Objects.equals(mPreferredFeatures, other.mPreferredFeatures) && mShouldPerformActiveScan == other.mShouldPerformActiveScan; } Loading
packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java +7 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.graphics.drawable.Drawable; import android.graphics.drawable.Icon; import android.media.MediaMetadata; import android.media.MediaRoute2Info; import android.media.MediaRouter2Manager; import android.media.RoutingSessionInfo; import android.media.session.MediaController; import android.media.session.MediaSessionManager; Loading Loading @@ -76,6 +77,7 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback { private final List<MediaDevice> mGroupMediaDevices = new CopyOnWriteArrayList<>(); private final boolean mAboveStatusbar; private final NotificationEntryManager mNotificationEntryManager; private final MediaRouter2Manager mRouterManager; @VisibleForTesting final List<MediaDevice> mMediaDevices = new CopyOnWriteArrayList<>(); Loading Loading @@ -104,6 +106,7 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback { mLocalMediaManager = new LocalMediaManager(mContext, lbm, imm, packageName); mMetricLogger = new MediaOutputMetricLogger(mContext, mPackageName); mUiEventLogger = uiEventLogger; mRouterManager = MediaRouter2Manager.getInstance(mContext); } void start(@NonNull Callback cb) { Loading Loading @@ -134,6 +137,7 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback { mLocalMediaManager.stopScan(); mLocalMediaManager.registerCallback(this); mLocalMediaManager.startScan(); mRouterManager.startScan(); } void stop() { Loading @@ -144,6 +148,9 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback { mLocalMediaManager.unregisterCallback(this); mLocalMediaManager.stopScan(); } if (mRouterManager != null) { mRouterManager.stopScan(); } mMediaDevices.clear(); } Loading
services/core/java/com/android/server/media/MediaRoute2Provider.java +1 −1 Original line number Diff line number Diff line Loading @@ -77,7 +77,7 @@ abstract class MediaRoute2Provider { @NonNull public List<RoutingSessionInfo> getSessionInfos() { synchronized (mLock) { return mSessionInfos; return new ArrayList<>(mSessionInfos); } } Loading