Loading media/java/android/media/IMediaRoute2Provider.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.media; import android.content.Intent; import android.media.IMediaRoute2ProviderClient; import android.media.RouteDiscoveryPreference; import android.os.Bundle; /** Loading @@ -28,6 +29,7 @@ oneway interface IMediaRoute2Provider { void requestCreateSession(String packageName, String routeId, long requestId, in @nullable Bundle sessionHints); void releaseSession(String sessionId); void updateDiscoveryPreference(in RouteDiscoveryPreference discoveryPreference); void selectRoute(String sessionId, String routeId); void deselectRoute(String sessionId, String routeId); Loading media/java/android/media/MediaRoute2ProviderService.java +10 −1 Original line number Diff line number Diff line Loading @@ -370,7 +370,6 @@ public abstract class MediaRoute2ProviderService extends Service { * * @param preference the new discovery preference */ // TODO: This method needs tests. public void onDiscoveryPreferenceChanged(@NonNull RouteDiscoveryPreference preference) {} /** Loading Loading @@ -455,6 +454,16 @@ public abstract class MediaRoute2ProviderService extends Service { MediaRoute2ProviderService.this, sessionId)); } @Override public void updateDiscoveryPreference(RouteDiscoveryPreference discoveryPreference) { if (!checkCallerisSystem()) { return; } mHandler.sendMessage(obtainMessage( MediaRoute2ProviderService::onDiscoveryPreferenceChanged, MediaRoute2ProviderService.this, discoveryPreference)); } @Override public void selectRoute(@NonNull String sessionId, String routeId) { if (!checkCallerisSystem()) { Loading media/java/android/media/MediaRouter2.java +31 −11 Original line number Diff line number Diff line Loading @@ -182,11 +182,16 @@ public class MediaRouter2 { Client2 client = new Client2(); try { mMediaRouterService.registerClient2(client, mPackageName); updateDiscoveryRequestLocked(); mMediaRouterService.setDiscoveryRequest2(client, mDiscoveryPreference); mClient = client; } catch (RemoteException ex) { Log.e(TAG, "Unable to register media router.", ex); Log.e(TAG, "registerRouteCallback: Unable to register client.", ex); } } if (mClient != null && updateDiscoveryPreferenceIfNeededLocked()) { try { mMediaRouterService.setDiscoveryRequest2(mClient, mDiscoveryPreference); } catch (RemoteException ex) { Log.e(TAG, "registerRouteCallback: Unable to set discovery request."); } } } Loading @@ -209,22 +214,37 @@ public class MediaRouter2 { } synchronized (sRouterLock) { if (mRouteCallbackRecords.size() == 0 && mClient != null) { if (mClient != null) { if (updateDiscoveryPreferenceIfNeededLocked()) { try { mMediaRouterService.setDiscoveryRequest2(mClient, mDiscoveryPreference); } catch (RemoteException ex) { Log.e(TAG, "unregisterRouteCallback: Unable to set discovery request."); } } if (mRouteCallbackRecords.size() == 0) { try { mMediaRouterService.unregisterClient2(mClient); } catch (RemoteException ex) { Log.e(TAG, "Unable to unregister media router.", ex); } //TODO: Clean up mRoutes. (onHandler?) } mShouldUpdateRoutes = true; mClient = null; } } } private void updateDiscoveryRequestLocked() { mDiscoveryPreference = new RouteDiscoveryPreference.Builder( private boolean updateDiscoveryPreferenceIfNeededLocked() { RouteDiscoveryPreference newDiscoveryPreference = new RouteDiscoveryPreference.Builder( mRouteCallbackRecords.stream().map(record -> record.mPreference).collect( Collectors.toList())).build(); if (Objects.equals(mDiscoveryPreference, newDiscoveryPreference)) { return false; } mDiscoveryPreference = newDiscoveryPreference; mShouldUpdateRoutes = true; return true; } /** Loading media/java/android/media/RouteDiscoveryPreference.java +2 −1 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ public final class RouteDiscoveryPreference implements Parcelable { private final Bundle mExtras; /** * An empty discovery preference. * @hide */ public static final RouteDiscoveryPreference EMPTY = Loading media/tests/MediaRouter/src/com/android/mediaroutertest/SampleMediaRoute2ProviderService.java +0 −1 Original line number Diff line number Diff line Loading @@ -155,7 +155,6 @@ public class SampleMediaRoute2ProviderService extends MediaRoute2ProviderService @Override public void onUpdateVolume(String routeId, int delta) { android.util.Log.d(TAG, "onUpdateVolume routeId= " + routeId + "delta=" + delta); MediaRoute2Info route = mRoutes.get(routeId); if (route == null) { return; Loading Loading
media/java/android/media/IMediaRoute2Provider.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.media; import android.content.Intent; import android.media.IMediaRoute2ProviderClient; import android.media.RouteDiscoveryPreference; import android.os.Bundle; /** Loading @@ -28,6 +29,7 @@ oneway interface IMediaRoute2Provider { void requestCreateSession(String packageName, String routeId, long requestId, in @nullable Bundle sessionHints); void releaseSession(String sessionId); void updateDiscoveryPreference(in RouteDiscoveryPreference discoveryPreference); void selectRoute(String sessionId, String routeId); void deselectRoute(String sessionId, String routeId); Loading
media/java/android/media/MediaRoute2ProviderService.java +10 −1 Original line number Diff line number Diff line Loading @@ -370,7 +370,6 @@ public abstract class MediaRoute2ProviderService extends Service { * * @param preference the new discovery preference */ // TODO: This method needs tests. public void onDiscoveryPreferenceChanged(@NonNull RouteDiscoveryPreference preference) {} /** Loading Loading @@ -455,6 +454,16 @@ public abstract class MediaRoute2ProviderService extends Service { MediaRoute2ProviderService.this, sessionId)); } @Override public void updateDiscoveryPreference(RouteDiscoveryPreference discoveryPreference) { if (!checkCallerisSystem()) { return; } mHandler.sendMessage(obtainMessage( MediaRoute2ProviderService::onDiscoveryPreferenceChanged, MediaRoute2ProviderService.this, discoveryPreference)); } @Override public void selectRoute(@NonNull String sessionId, String routeId) { if (!checkCallerisSystem()) { Loading
media/java/android/media/MediaRouter2.java +31 −11 Original line number Diff line number Diff line Loading @@ -182,11 +182,16 @@ public class MediaRouter2 { Client2 client = new Client2(); try { mMediaRouterService.registerClient2(client, mPackageName); updateDiscoveryRequestLocked(); mMediaRouterService.setDiscoveryRequest2(client, mDiscoveryPreference); mClient = client; } catch (RemoteException ex) { Log.e(TAG, "Unable to register media router.", ex); Log.e(TAG, "registerRouteCallback: Unable to register client.", ex); } } if (mClient != null && updateDiscoveryPreferenceIfNeededLocked()) { try { mMediaRouterService.setDiscoveryRequest2(mClient, mDiscoveryPreference); } catch (RemoteException ex) { Log.e(TAG, "registerRouteCallback: Unable to set discovery request."); } } } Loading @@ -209,22 +214,37 @@ public class MediaRouter2 { } synchronized (sRouterLock) { if (mRouteCallbackRecords.size() == 0 && mClient != null) { if (mClient != null) { if (updateDiscoveryPreferenceIfNeededLocked()) { try { mMediaRouterService.setDiscoveryRequest2(mClient, mDiscoveryPreference); } catch (RemoteException ex) { Log.e(TAG, "unregisterRouteCallback: Unable to set discovery request."); } } if (mRouteCallbackRecords.size() == 0) { try { mMediaRouterService.unregisterClient2(mClient); } catch (RemoteException ex) { Log.e(TAG, "Unable to unregister media router.", ex); } //TODO: Clean up mRoutes. (onHandler?) } mShouldUpdateRoutes = true; mClient = null; } } } private void updateDiscoveryRequestLocked() { mDiscoveryPreference = new RouteDiscoveryPreference.Builder( private boolean updateDiscoveryPreferenceIfNeededLocked() { RouteDiscoveryPreference newDiscoveryPreference = new RouteDiscoveryPreference.Builder( mRouteCallbackRecords.stream().map(record -> record.mPreference).collect( Collectors.toList())).build(); if (Objects.equals(mDiscoveryPreference, newDiscoveryPreference)) { return false; } mDiscoveryPreference = newDiscoveryPreference; mShouldUpdateRoutes = true; return true; } /** Loading
media/java/android/media/RouteDiscoveryPreference.java +2 −1 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ public final class RouteDiscoveryPreference implements Parcelable { private final Bundle mExtras; /** * An empty discovery preference. * @hide */ public static final RouteDiscoveryPreference EMPTY = Loading
media/tests/MediaRouter/src/com/android/mediaroutertest/SampleMediaRoute2ProviderService.java +0 −1 Original line number Diff line number Diff line Loading @@ -155,7 +155,6 @@ public class SampleMediaRoute2ProviderService extends MediaRoute2ProviderService @Override public void onUpdateVolume(String routeId, int delta) { android.util.Log.d(TAG, "onUpdateVolume routeId= " + routeId + "delta=" + delta); MediaRoute2Info route = mRoutes.get(routeId); if (route == null) { return; Loading