Loading media/java/android/media/IMediaRoute2Provider.aidl→media/java/android/media/IMediaRoute2ProviderService.aidl +9 −8 Original line number Diff line number Diff line Loading @@ -17,24 +17,25 @@ package android.media; import android.content.Intent; import android.media.IMediaRoute2ProviderClient; import android.media.IMediaRoute2ProviderServiceCallback; import android.media.RouteDiscoveryPreference; import android.os.Bundle; /** * {@hide} */ oneway interface IMediaRoute2Provider { void setClient(IMediaRoute2ProviderClient client); void requestCreateSession(String packageName, String routeId, long requestId, in @nullable Bundle sessionHints); void releaseSession(String sessionId); oneway interface IMediaRoute2ProviderService { // Note: When changing this file, match the order of methods below with // MediaRoute2ProviderService#MediaRoute2ProviderServiceStub for readability. void setCallback(IMediaRoute2ProviderServiceCallback callback); void updateDiscoveryPreference(in RouteDiscoveryPreference discoveryPreference); void setRouteVolume(String routeId, int volume); void requestCreateSession(String packageName, String routeId, long requestId, in @nullable Bundle sessionHints); void selectRoute(String sessionId, String routeId); void deselectRoute(String sessionId, String routeId); void transferToRoute(String sessionId, String routeId); void setRouteVolume(String routeId, int volume); void setSessionVolume(String sessionId, int volume); void releaseSession(String sessionId); } media/java/android/media/IMediaRoute2ProviderClient.aidl→media/java/android/media/IMediaRoute2ProviderServiceCallback.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ import android.os.Bundle; /** * @hide */ oneway interface IMediaRoute2ProviderClient { oneway interface IMediaRoute2ProviderServiceCallback { // TODO: Change it to updateRoutes? void updateState(in MediaRoute2ProviderInfo providerInfo); void notifySessionCreated(in RoutingSessionInfo sessionInfo, long requestId); Loading media/java/android/media/IMediaRouter2Client.aidl→media/java/android/media/IMediaRouter2.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ import android.os.Bundle; /** * @hide */ oneway interface IMediaRouter2Client { oneway interface IMediaRouter2 { void notifyRestoreRoute(); void notifyRoutesAdded(in List<MediaRoute2Info> routes); void notifyRoutesRemoved(in List<MediaRoute2Info> routes); Loading media/java/android/media/IMediaRouterService.aidl +33 −30 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ package android.media; import android.content.Intent; import android.media.IMediaRouter2Client; import android.media.IMediaRouter2; import android.media.IMediaRouter2Manager; import android.media.IMediaRouterClient; import android.media.MediaRoute2Info; Loading @@ -44,40 +44,43 @@ interface IMediaRouterService { void requestSetVolume(IMediaRouterClient client, String routeId, int volume); void requestUpdateVolume(IMediaRouterClient client, String routeId, int direction); // Methods for media router 2 // Note: When changing this file, match the order of methods below with // MediaRouterService.java for readability. // Methods for MediaRouter2 List<MediaRoute2Info> getSystemRoutes(); RoutingSessionInfo getSystemSessionInfo(); void registerClient2(IMediaRouter2Client client, String packageName); void unregisterClient2(IMediaRouter2Client client); void setRouteVolume2(IMediaRouter2Client client, in MediaRoute2Info route, int volume); void setSessionVolume2(IMediaRouter2Client client, String sessionId, int volume); void requestCreateSession(IMediaRouter2Client client, in MediaRoute2Info route, int requestId, in @nullable Bundle sessionHints); void setDiscoveryRequest2(IMediaRouter2Client client, in RouteDiscoveryPreference preference); void selectRoute(IMediaRouter2Client client, String sessionId, in MediaRoute2Info route); void deselectRoute(IMediaRouter2Client client, String sessionId, in MediaRoute2Info route); void transferToRoute(IMediaRouter2Client client, String sessionId, in MediaRoute2Info route); void releaseSession(IMediaRouter2Client client, String sessionId); void registerRouter2(IMediaRouter2 router, String packageName); void unregisterRouter2(IMediaRouter2 router); void setDiscoveryRequestWithRouter2(IMediaRouter2 router, in RouteDiscoveryPreference preference); void setRouteVolumeWithRouter2(IMediaRouter2 router, in MediaRoute2Info route, int volume); void requestCreateSessionWithRouter2(IMediaRouter2 router, in MediaRoute2Info route, int requestId, in @nullable Bundle sessionHints); void selectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route); void deselectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route); void transferToRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route); void setSessionVolumeWithRouter2(IMediaRouter2 router, String sessionId, int volume); void releaseSessionWithRouter2(IMediaRouter2 router, String sessionId); // Methods for MediaRouter2Manager List<RoutingSessionInfo> getActiveSessions(IMediaRouter2Manager manager); void registerManager(IMediaRouter2Manager manager, String packageName); void unregisterManager(IMediaRouter2Manager manager); void setRouteVolumeWithManager(IMediaRouter2Manager manager, in MediaRoute2Info route, int volume); void requestCreateClientSession(IMediaRouter2Manager manager, String packageName, void requestCreateSessionWithManager(IMediaRouter2Manager manager, String packageName, in @nullable MediaRoute2Info route, int requestId); void setRouteVolume2Manager(IMediaRouter2Manager manager, in MediaRoute2Info route, int volume); void setSessionVolume2Manager(IMediaRouter2Manager manager, String sessionId, int volume); List<RoutingSessionInfo> getActiveSessions(IMediaRouter2Manager manager); void selectClientRoute(IMediaRouter2Manager manager, String sessionId, in MediaRoute2Info route); void deselectClientRoute(IMediaRouter2Manager manager, String sessionId, in MediaRoute2Info route); void transferToClientRoute(IMediaRouter2Manager manager, String sessionId, in MediaRoute2Info route); void releaseClientSession(IMediaRouter2Manager manager, String sessionId); void selectRouteWithManager(IMediaRouter2Manager manager, String sessionId, in MediaRoute2Info route); void deselectRouteWithManager(IMediaRouter2Manager manager, String sessionId, in MediaRoute2Info route); void transferToRouteWithManager(IMediaRouter2Manager manager, String sessionId, in MediaRoute2Info route); void setSessionVolumeWithManager(IMediaRouter2Manager manager, String sessionId, int volume); void releaseSessionWithManager(IMediaRouter2Manager manager, String sessionId); } media/java/android/media/MediaRoute2ProviderService.java +42 −42 Original line number Diff line number Diff line Loading @@ -84,8 +84,8 @@ public abstract class MediaRoute2ProviderService extends Service { private final Handler mHandler; private final Object mSessionLock = new Object(); private final AtomicBoolean mStatePublishScheduled = new AtomicBoolean(false); private ProviderStub mStub; private IMediaRoute2ProviderClient mClient; private MediaRoute2ProviderServiceStub mStub; private IMediaRoute2ProviderServiceCallback mRemoteCallback; private MediaRoute2ProviderInfo mProviderInfo; @GuardedBy("mSessionLock") Loading @@ -107,7 +107,7 @@ public abstract class MediaRoute2ProviderService extends Service { //TODO: Allow binding from media router service only? if (SERVICE_INTERFACE.equals(intent.getAction())) { if (mStub == null) { mStub = new ProviderStub(); mStub = new MediaRoute2ProviderServiceStub(); } return mStub; } Loading Loading @@ -185,14 +185,14 @@ public abstract class MediaRoute2ProviderService extends Service { mSessionInfo.put(sessionInfo.getId(), sessionInfo); } if (mClient == null) { if (mRemoteCallback == null) { return; } try { // TODO: Calling binder calls in multiple thread may cause timing issue. // Consider to change implementations to avoid the problems. // For example, post binder calls, always send all sessions at once, etc. mClient.notifySessionCreated(sessionInfo, requestId); mRemoteCallback.notifySessionCreated(sessionInfo, requestId); } catch (RemoteException ex) { Log.w(TAG, "Failed to notify session created."); } Loading @@ -206,11 +206,11 @@ public abstract class MediaRoute2ProviderService extends Service { * @see #onCreateSession(String, String, long, Bundle) */ public final void notifySessionCreationFailed(long requestId) { if (mClient == null) { if (mRemoteCallback == null) { return; } try { mClient.notifySessionCreationFailed(requestId); mRemoteCallback.notifySessionCreationFailed(requestId); } catch (RemoteException ex) { Log.w(TAG, "Failed to notify session creation failed."); } Loading @@ -233,11 +233,11 @@ public abstract class MediaRoute2ProviderService extends Service { } } if (mClient == null) { if (mRemoteCallback == null) { return; } try { mClient.notifySessionUpdated(sessionInfo); mRemoteCallback.notifySessionUpdated(sessionInfo); } catch (RemoteException ex) { Log.w(TAG, "Failed to notify session info changed."); } Loading @@ -263,11 +263,11 @@ public abstract class MediaRoute2ProviderService extends Service { return; } if (mClient == null) { if (mRemoteCallback == null) { return; } try { mClient.notifySessionReleased(sessionInfo); mRemoteCallback.notifySessionReleased(sessionInfo); } catch (RemoteException ex) { Log.w(TAG, "Failed to notify session info changed."); } Loading Loading @@ -382,8 +382,8 @@ public abstract class MediaRoute2ProviderService extends Service { schedulePublishState(); } void setClient(IMediaRoute2ProviderClient client) { mClient = client; void setCallback(IMediaRoute2ProviderServiceCallback callback) { mRemoteCallback = callback; schedulePublishState(); } Loading @@ -398,7 +398,7 @@ public abstract class MediaRoute2ProviderService extends Service { return; } if (mClient == null) { if (mRemoteCallback == null) { return; } Loading @@ -407,60 +407,56 @@ public abstract class MediaRoute2ProviderService extends Service { sessionInfos = new ArrayList<>(mSessionInfo.values()); } try { mClient.updateState(mProviderInfo); mRemoteCallback.updateState(mProviderInfo); } catch (RemoteException ex) { Log.w(TAG, "Failed to send onProviderInfoUpdated"); } } final class ProviderStub extends IMediaRoute2Provider.Stub { ProviderStub() { } final class MediaRoute2ProviderServiceStub extends IMediaRoute2ProviderService.Stub { MediaRoute2ProviderServiceStub() { } boolean checkCallerisSystem() { return Binder.getCallingUid() == Process.SYSTEM_UID; } @Override public void setClient(IMediaRoute2ProviderClient client) { public void setCallback(IMediaRoute2ProviderServiceCallback callback) { if (!checkCallerisSystem()) { return; } mHandler.sendMessage(obtainMessage(MediaRoute2ProviderService::setClient, MediaRoute2ProviderService.this, client)); mHandler.sendMessage(obtainMessage(MediaRoute2ProviderService::setCallback, MediaRoute2ProviderService.this, callback)); } @Override public void requestCreateSession(String packageName, String routeId, long requestId, @Nullable Bundle requestCreateSession) { public void updateDiscoveryPreference(RouteDiscoveryPreference discoveryPreference) { if (!checkCallerisSystem()) { return; } mHandler.sendMessage(obtainMessage(MediaRoute2ProviderService::onCreateSession, MediaRoute2ProviderService.this, packageName, routeId, requestId, requestCreateSession)); mHandler.sendMessage(obtainMessage( MediaRoute2ProviderService::onDiscoveryPreferenceChanged, MediaRoute2ProviderService.this, discoveryPreference)); } @Override public void releaseSession(@NonNull String sessionId) { public void setRouteVolume(String routeId, int volume) { if (!checkCallerisSystem()) { return; } if (TextUtils.isEmpty(sessionId)) { Log.w(TAG, "releaseSession: Ignoring empty sessionId from system service."); return; } mHandler.sendMessage(obtainMessage(MediaRoute2ProviderService::onReleaseSession, MediaRoute2ProviderService.this, sessionId)); mHandler.sendMessage(obtainMessage(MediaRoute2ProviderService::onSetRouteVolume, MediaRoute2ProviderService.this, routeId, volume)); } @Override public void updateDiscoveryPreference(RouteDiscoveryPreference discoveryPreference) { public void requestCreateSession(String packageName, String routeId, long requestId, @Nullable Bundle requestCreateSession) { if (!checkCallerisSystem()) { return; } mHandler.sendMessage(obtainMessage( MediaRoute2ProviderService::onDiscoveryPreferenceChanged, MediaRoute2ProviderService.this, discoveryPreference)); mHandler.sendMessage(obtainMessage(MediaRoute2ProviderService::onCreateSession, MediaRoute2ProviderService.this, packageName, routeId, requestId, requestCreateSession)); } @Override Loading Loading @@ -503,21 +499,25 @@ public abstract class MediaRoute2ProviderService extends Service { } @Override public void setRouteVolume(String routeId, int volume) { public void setSessionVolume(String sessionId, int volume) { if (!checkCallerisSystem()) { return; } mHandler.sendMessage(obtainMessage(MediaRoute2ProviderService::onSetRouteVolume, MediaRoute2ProviderService.this, routeId, volume)); mHandler.sendMessage(obtainMessage(MediaRoute2ProviderService::onSetSessionVolume, MediaRoute2ProviderService.this, sessionId, volume)); } @Override public void setSessionVolume(String sessionId, int volume) { public void releaseSession(@NonNull String sessionId) { if (!checkCallerisSystem()) { return; } mHandler.sendMessage(obtainMessage(MediaRoute2ProviderService::onSetSessionVolume, MediaRoute2ProviderService.this, sessionId, volume)); if (TextUtils.isEmpty(sessionId)) { Log.w(TAG, "releaseSession: Ignoring empty sessionId from system service."); return; } mHandler.sendMessage(obtainMessage(MediaRoute2ProviderService::onReleaseSession, MediaRoute2ProviderService.this, sessionId)); } } } Loading
media/java/android/media/IMediaRoute2Provider.aidl→media/java/android/media/IMediaRoute2ProviderService.aidl +9 −8 Original line number Diff line number Diff line Loading @@ -17,24 +17,25 @@ package android.media; import android.content.Intent; import android.media.IMediaRoute2ProviderClient; import android.media.IMediaRoute2ProviderServiceCallback; import android.media.RouteDiscoveryPreference; import android.os.Bundle; /** * {@hide} */ oneway interface IMediaRoute2Provider { void setClient(IMediaRoute2ProviderClient client); void requestCreateSession(String packageName, String routeId, long requestId, in @nullable Bundle sessionHints); void releaseSession(String sessionId); oneway interface IMediaRoute2ProviderService { // Note: When changing this file, match the order of methods below with // MediaRoute2ProviderService#MediaRoute2ProviderServiceStub for readability. void setCallback(IMediaRoute2ProviderServiceCallback callback); void updateDiscoveryPreference(in RouteDiscoveryPreference discoveryPreference); void setRouteVolume(String routeId, int volume); void requestCreateSession(String packageName, String routeId, long requestId, in @nullable Bundle sessionHints); void selectRoute(String sessionId, String routeId); void deselectRoute(String sessionId, String routeId); void transferToRoute(String sessionId, String routeId); void setRouteVolume(String routeId, int volume); void setSessionVolume(String sessionId, int volume); void releaseSession(String sessionId); }
media/java/android/media/IMediaRoute2ProviderClient.aidl→media/java/android/media/IMediaRoute2ProviderServiceCallback.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ import android.os.Bundle; /** * @hide */ oneway interface IMediaRoute2ProviderClient { oneway interface IMediaRoute2ProviderServiceCallback { // TODO: Change it to updateRoutes? void updateState(in MediaRoute2ProviderInfo providerInfo); void notifySessionCreated(in RoutingSessionInfo sessionInfo, long requestId); Loading
media/java/android/media/IMediaRouter2Client.aidl→media/java/android/media/IMediaRouter2.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ import android.os.Bundle; /** * @hide */ oneway interface IMediaRouter2Client { oneway interface IMediaRouter2 { void notifyRestoreRoute(); void notifyRoutesAdded(in List<MediaRoute2Info> routes); void notifyRoutesRemoved(in List<MediaRoute2Info> routes); Loading
media/java/android/media/IMediaRouterService.aidl +33 −30 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ package android.media; import android.content.Intent; import android.media.IMediaRouter2Client; import android.media.IMediaRouter2; import android.media.IMediaRouter2Manager; import android.media.IMediaRouterClient; import android.media.MediaRoute2Info; Loading @@ -44,40 +44,43 @@ interface IMediaRouterService { void requestSetVolume(IMediaRouterClient client, String routeId, int volume); void requestUpdateVolume(IMediaRouterClient client, String routeId, int direction); // Methods for media router 2 // Note: When changing this file, match the order of methods below with // MediaRouterService.java for readability. // Methods for MediaRouter2 List<MediaRoute2Info> getSystemRoutes(); RoutingSessionInfo getSystemSessionInfo(); void registerClient2(IMediaRouter2Client client, String packageName); void unregisterClient2(IMediaRouter2Client client); void setRouteVolume2(IMediaRouter2Client client, in MediaRoute2Info route, int volume); void setSessionVolume2(IMediaRouter2Client client, String sessionId, int volume); void requestCreateSession(IMediaRouter2Client client, in MediaRoute2Info route, int requestId, in @nullable Bundle sessionHints); void setDiscoveryRequest2(IMediaRouter2Client client, in RouteDiscoveryPreference preference); void selectRoute(IMediaRouter2Client client, String sessionId, in MediaRoute2Info route); void deselectRoute(IMediaRouter2Client client, String sessionId, in MediaRoute2Info route); void transferToRoute(IMediaRouter2Client client, String sessionId, in MediaRoute2Info route); void releaseSession(IMediaRouter2Client client, String sessionId); void registerRouter2(IMediaRouter2 router, String packageName); void unregisterRouter2(IMediaRouter2 router); void setDiscoveryRequestWithRouter2(IMediaRouter2 router, in RouteDiscoveryPreference preference); void setRouteVolumeWithRouter2(IMediaRouter2 router, in MediaRoute2Info route, int volume); void requestCreateSessionWithRouter2(IMediaRouter2 router, in MediaRoute2Info route, int requestId, in @nullable Bundle sessionHints); void selectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route); void deselectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route); void transferToRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route); void setSessionVolumeWithRouter2(IMediaRouter2 router, String sessionId, int volume); void releaseSessionWithRouter2(IMediaRouter2 router, String sessionId); // Methods for MediaRouter2Manager List<RoutingSessionInfo> getActiveSessions(IMediaRouter2Manager manager); void registerManager(IMediaRouter2Manager manager, String packageName); void unregisterManager(IMediaRouter2Manager manager); void setRouteVolumeWithManager(IMediaRouter2Manager manager, in MediaRoute2Info route, int volume); void requestCreateClientSession(IMediaRouter2Manager manager, String packageName, void requestCreateSessionWithManager(IMediaRouter2Manager manager, String packageName, in @nullable MediaRoute2Info route, int requestId); void setRouteVolume2Manager(IMediaRouter2Manager manager, in MediaRoute2Info route, int volume); void setSessionVolume2Manager(IMediaRouter2Manager manager, String sessionId, int volume); List<RoutingSessionInfo> getActiveSessions(IMediaRouter2Manager manager); void selectClientRoute(IMediaRouter2Manager manager, String sessionId, in MediaRoute2Info route); void deselectClientRoute(IMediaRouter2Manager manager, String sessionId, in MediaRoute2Info route); void transferToClientRoute(IMediaRouter2Manager manager, String sessionId, in MediaRoute2Info route); void releaseClientSession(IMediaRouter2Manager manager, String sessionId); void selectRouteWithManager(IMediaRouter2Manager manager, String sessionId, in MediaRoute2Info route); void deselectRouteWithManager(IMediaRouter2Manager manager, String sessionId, in MediaRoute2Info route); void transferToRouteWithManager(IMediaRouter2Manager manager, String sessionId, in MediaRoute2Info route); void setSessionVolumeWithManager(IMediaRouter2Manager manager, String sessionId, int volume); void releaseSessionWithManager(IMediaRouter2Manager manager, String sessionId); }
media/java/android/media/MediaRoute2ProviderService.java +42 −42 Original line number Diff line number Diff line Loading @@ -84,8 +84,8 @@ public abstract class MediaRoute2ProviderService extends Service { private final Handler mHandler; private final Object mSessionLock = new Object(); private final AtomicBoolean mStatePublishScheduled = new AtomicBoolean(false); private ProviderStub mStub; private IMediaRoute2ProviderClient mClient; private MediaRoute2ProviderServiceStub mStub; private IMediaRoute2ProviderServiceCallback mRemoteCallback; private MediaRoute2ProviderInfo mProviderInfo; @GuardedBy("mSessionLock") Loading @@ -107,7 +107,7 @@ public abstract class MediaRoute2ProviderService extends Service { //TODO: Allow binding from media router service only? if (SERVICE_INTERFACE.equals(intent.getAction())) { if (mStub == null) { mStub = new ProviderStub(); mStub = new MediaRoute2ProviderServiceStub(); } return mStub; } Loading Loading @@ -185,14 +185,14 @@ public abstract class MediaRoute2ProviderService extends Service { mSessionInfo.put(sessionInfo.getId(), sessionInfo); } if (mClient == null) { if (mRemoteCallback == null) { return; } try { // TODO: Calling binder calls in multiple thread may cause timing issue. // Consider to change implementations to avoid the problems. // For example, post binder calls, always send all sessions at once, etc. mClient.notifySessionCreated(sessionInfo, requestId); mRemoteCallback.notifySessionCreated(sessionInfo, requestId); } catch (RemoteException ex) { Log.w(TAG, "Failed to notify session created."); } Loading @@ -206,11 +206,11 @@ public abstract class MediaRoute2ProviderService extends Service { * @see #onCreateSession(String, String, long, Bundle) */ public final void notifySessionCreationFailed(long requestId) { if (mClient == null) { if (mRemoteCallback == null) { return; } try { mClient.notifySessionCreationFailed(requestId); mRemoteCallback.notifySessionCreationFailed(requestId); } catch (RemoteException ex) { Log.w(TAG, "Failed to notify session creation failed."); } Loading @@ -233,11 +233,11 @@ public abstract class MediaRoute2ProviderService extends Service { } } if (mClient == null) { if (mRemoteCallback == null) { return; } try { mClient.notifySessionUpdated(sessionInfo); mRemoteCallback.notifySessionUpdated(sessionInfo); } catch (RemoteException ex) { Log.w(TAG, "Failed to notify session info changed."); } Loading @@ -263,11 +263,11 @@ public abstract class MediaRoute2ProviderService extends Service { return; } if (mClient == null) { if (mRemoteCallback == null) { return; } try { mClient.notifySessionReleased(sessionInfo); mRemoteCallback.notifySessionReleased(sessionInfo); } catch (RemoteException ex) { Log.w(TAG, "Failed to notify session info changed."); } Loading Loading @@ -382,8 +382,8 @@ public abstract class MediaRoute2ProviderService extends Service { schedulePublishState(); } void setClient(IMediaRoute2ProviderClient client) { mClient = client; void setCallback(IMediaRoute2ProviderServiceCallback callback) { mRemoteCallback = callback; schedulePublishState(); } Loading @@ -398,7 +398,7 @@ public abstract class MediaRoute2ProviderService extends Service { return; } if (mClient == null) { if (mRemoteCallback == null) { return; } Loading @@ -407,60 +407,56 @@ public abstract class MediaRoute2ProviderService extends Service { sessionInfos = new ArrayList<>(mSessionInfo.values()); } try { mClient.updateState(mProviderInfo); mRemoteCallback.updateState(mProviderInfo); } catch (RemoteException ex) { Log.w(TAG, "Failed to send onProviderInfoUpdated"); } } final class ProviderStub extends IMediaRoute2Provider.Stub { ProviderStub() { } final class MediaRoute2ProviderServiceStub extends IMediaRoute2ProviderService.Stub { MediaRoute2ProviderServiceStub() { } boolean checkCallerisSystem() { return Binder.getCallingUid() == Process.SYSTEM_UID; } @Override public void setClient(IMediaRoute2ProviderClient client) { public void setCallback(IMediaRoute2ProviderServiceCallback callback) { if (!checkCallerisSystem()) { return; } mHandler.sendMessage(obtainMessage(MediaRoute2ProviderService::setClient, MediaRoute2ProviderService.this, client)); mHandler.sendMessage(obtainMessage(MediaRoute2ProviderService::setCallback, MediaRoute2ProviderService.this, callback)); } @Override public void requestCreateSession(String packageName, String routeId, long requestId, @Nullable Bundle requestCreateSession) { public void updateDiscoveryPreference(RouteDiscoveryPreference discoveryPreference) { if (!checkCallerisSystem()) { return; } mHandler.sendMessage(obtainMessage(MediaRoute2ProviderService::onCreateSession, MediaRoute2ProviderService.this, packageName, routeId, requestId, requestCreateSession)); mHandler.sendMessage(obtainMessage( MediaRoute2ProviderService::onDiscoveryPreferenceChanged, MediaRoute2ProviderService.this, discoveryPreference)); } @Override public void releaseSession(@NonNull String sessionId) { public void setRouteVolume(String routeId, int volume) { if (!checkCallerisSystem()) { return; } if (TextUtils.isEmpty(sessionId)) { Log.w(TAG, "releaseSession: Ignoring empty sessionId from system service."); return; } mHandler.sendMessage(obtainMessage(MediaRoute2ProviderService::onReleaseSession, MediaRoute2ProviderService.this, sessionId)); mHandler.sendMessage(obtainMessage(MediaRoute2ProviderService::onSetRouteVolume, MediaRoute2ProviderService.this, routeId, volume)); } @Override public void updateDiscoveryPreference(RouteDiscoveryPreference discoveryPreference) { public void requestCreateSession(String packageName, String routeId, long requestId, @Nullable Bundle requestCreateSession) { if (!checkCallerisSystem()) { return; } mHandler.sendMessage(obtainMessage( MediaRoute2ProviderService::onDiscoveryPreferenceChanged, MediaRoute2ProviderService.this, discoveryPreference)); mHandler.sendMessage(obtainMessage(MediaRoute2ProviderService::onCreateSession, MediaRoute2ProviderService.this, packageName, routeId, requestId, requestCreateSession)); } @Override Loading Loading @@ -503,21 +499,25 @@ public abstract class MediaRoute2ProviderService extends Service { } @Override public void setRouteVolume(String routeId, int volume) { public void setSessionVolume(String sessionId, int volume) { if (!checkCallerisSystem()) { return; } mHandler.sendMessage(obtainMessage(MediaRoute2ProviderService::onSetRouteVolume, MediaRoute2ProviderService.this, routeId, volume)); mHandler.sendMessage(obtainMessage(MediaRoute2ProviderService::onSetSessionVolume, MediaRoute2ProviderService.this, sessionId, volume)); } @Override public void setSessionVolume(String sessionId, int volume) { public void releaseSession(@NonNull String sessionId) { if (!checkCallerisSystem()) { return; } mHandler.sendMessage(obtainMessage(MediaRoute2ProviderService::onSetSessionVolume, MediaRoute2ProviderService.this, sessionId, volume)); if (TextUtils.isEmpty(sessionId)) { Log.w(TAG, "releaseSession: Ignoring empty sessionId from system service."); return; } mHandler.sendMessage(obtainMessage(MediaRoute2ProviderService::onReleaseSession, MediaRoute2ProviderService.this, sessionId)); } } }