summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/current.txt2
-rw-r--r--media/java/android/media/IMediaRoute2ProviderService.aidl14
-rw-r--r--media/java/android/media/IMediaRoute2ProviderServiceCallback.aidl2
-rw-r--r--media/java/android/media/IMediaRouter2.aidl2
-rw-r--r--media/java/android/media/IMediaRouterService.aidl30
-rw-r--r--media/java/android/media/MediaRoute2ProviderService.java30
-rw-r--r--media/java/android/media/MediaRouter2.java10
-rw-r--r--media/java/android/media/MediaRouter2Manager.java14
-rw-r--r--media/tests/MediaRouter/src/com/android/mediaroutertest/SampleMediaRoute2ProviderService.java2
-rw-r--r--services/core/java/com/android/server/media/MediaRoute2Provider.java16
-rw-r--r--services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java70
-rw-r--r--services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java252
-rw-r--r--services/core/java/com/android/server/media/MediaRouterService.java48
-rw-r--r--services/core/java/com/android/server/media/SystemMediaRoute2Provider.java16
14 files changed, 259 insertions, 249 deletions
diff --git a/api/current.txt b/api/current.txt
index 5e64ba9f4930..eb54d3bf2b6c 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -26908,7 +26908,7 @@ package android.media {
method @Nullable public final android.media.RoutingSessionInfo getSessionInfo(@NonNull String);
method public final void notifyRequestFailed(long, int);
method public final void notifyRoutes(@NonNull java.util.Collection<android.media.MediaRoute2Info>);
- method public final void notifySessionCreated(@NonNull android.media.RoutingSessionInfo, long);
+ method public final void notifySessionCreated(long, @NonNull android.media.RoutingSessionInfo);
method public final void notifySessionReleased(@NonNull String);
method public final void notifySessionUpdated(@NonNull android.media.RoutingSessionInfo);
method @CallSuper @Nullable public android.os.IBinder onBind(@NonNull android.content.Intent);
diff --git a/media/java/android/media/IMediaRoute2ProviderService.aidl b/media/java/android/media/IMediaRoute2ProviderService.aidl
index 6cd2547dcbcf..eee3d22c7252 100644
--- a/media/java/android/media/IMediaRoute2ProviderService.aidl
+++ b/media/java/android/media/IMediaRoute2ProviderService.aidl
@@ -29,13 +29,13 @@ oneway interface IMediaRoute2ProviderService {
// MediaRoute2ProviderService#MediaRoute2ProviderServiceStub for readability.
void setCallback(IMediaRoute2ProviderServiceCallback callback);
void updateDiscoveryPreference(in RouteDiscoveryPreference discoveryPreference);
- void setRouteVolume(String routeId, int volume, long requestId);
+ void setRouteVolume(long requestId, String routeId, int volume);
- void requestCreateSession(String packageName, String routeId, long requestId,
+ void requestCreateSession(long requestId, String packageName, String routeId,
in @nullable Bundle sessionHints);
- void selectRoute(String sessionId, String routeId, long requestId);
- void deselectRoute(String sessionId, String routeId, long requestId);
- void transferToRoute(String sessionId, String routeId, long requestId);
- void setSessionVolume(String sessionId, int volume, long requestId);
- void releaseSession(String sessionId, long requestId);
+ void selectRoute(long requestId, String sessionId, String routeId);
+ void deselectRoute(long requestId, String sessionId, String routeId);
+ void transferToRoute(long requestId, String sessionId, String routeId);
+ void setSessionVolume(long requestId, String sessionId, int volume);
+ void releaseSession(long requestId, String sessionId);
}
diff --git a/media/java/android/media/IMediaRoute2ProviderServiceCallback.aidl b/media/java/android/media/IMediaRoute2ProviderServiceCallback.aidl
index 882caad0f49b..1755657ddc64 100644
--- a/media/java/android/media/IMediaRoute2ProviderServiceCallback.aidl
+++ b/media/java/android/media/IMediaRoute2ProviderServiceCallback.aidl
@@ -27,7 +27,7 @@ import android.os.Bundle;
oneway interface IMediaRoute2ProviderServiceCallback {
// TODO: Change it to updateRoutes?
void updateState(in MediaRoute2ProviderInfo providerInfo);
- void notifySessionCreated(in RoutingSessionInfo sessionInfo, long requestId);
+ void notifySessionCreated(long requestId, in RoutingSessionInfo sessionInfo);
void notifySessionUpdated(in RoutingSessionInfo sessionInfo);
void notifySessionReleased(in RoutingSessionInfo sessionInfo);
void notifyRequestFailed(long requestId, int reason);
diff --git a/media/java/android/media/IMediaRouter2.aidl b/media/java/android/media/IMediaRouter2.aidl
index 550ecfd02041..dc06153ffa9f 100644
--- a/media/java/android/media/IMediaRouter2.aidl
+++ b/media/java/android/media/IMediaRouter2.aidl
@@ -28,7 +28,7 @@ oneway interface IMediaRouter2 {
void notifyRoutesAdded(in List<MediaRoute2Info> routes);
void notifyRoutesRemoved(in List<MediaRoute2Info> routes);
void notifyRoutesChanged(in List<MediaRoute2Info> routes);
- void notifySessionCreated(in @nullable RoutingSessionInfo sessionInfo, int requestId);
+ void notifySessionCreated(int requestId, in @nullable RoutingSessionInfo sessionInfo);
void notifySessionInfoChanged(in RoutingSessionInfo sessionInfo);
void notifySessionReleased(in RoutingSessionInfo sessionInfo);
}
diff --git a/media/java/android/media/IMediaRouterService.aidl b/media/java/android/media/IMediaRouterService.aidl
index c7cb07d4ac1c..0d87736cfd47 100644
--- a/media/java/android/media/IMediaRouterService.aidl
+++ b/media/java/android/media/IMediaRouterService.aidl
@@ -57,8 +57,8 @@ interface IMediaRouterService {
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 requestCreateSessionWithRouter2(IMediaRouter2 router, int requestId,
+ in MediaRoute2Info route, 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,
@@ -70,18 +70,18 @@ interface IMediaRouterService {
List<RoutingSessionInfo> getActiveSessions(IMediaRouter2Manager manager);
void registerManager(IMediaRouter2Manager manager, String packageName);
void unregisterManager(IMediaRouter2Manager manager);
- void setRouteVolumeWithManager(IMediaRouter2Manager manager, in MediaRoute2Info route,
- int volume, int requestId);
+ void setRouteVolumeWithManager(IMediaRouter2Manager manager, int requestId,
+ in MediaRoute2Info route, int volume);
- void requestCreateSessionWithManager(IMediaRouter2Manager manager, String packageName,
- in @nullable MediaRoute2Info route, int requestId);
- void selectRouteWithManager(IMediaRouter2Manager manager, String sessionId,
- in MediaRoute2Info route, int requestId);
- void deselectRouteWithManager(IMediaRouter2Manager manager, String sessionId,
- in MediaRoute2Info route, int requestId);
- void transferToRouteWithManager(IMediaRouter2Manager manager, String sessionId,
- in MediaRoute2Info route, int requestId);
- void setSessionVolumeWithManager(IMediaRouter2Manager manager, String sessionId, int volume,
- int requestId);
- void releaseSessionWithManager(IMediaRouter2Manager manager, String sessionId, int requestId);
+ void requestCreateSessionWithManager(IMediaRouter2Manager manager, int requestId,
+ String packageName, in @nullable MediaRoute2Info route);
+ void selectRouteWithManager(IMediaRouter2Manager manager, int requestId,
+ String sessionId, in MediaRoute2Info route);
+ void deselectRouteWithManager(IMediaRouter2Manager manager, int requestId,
+ String sessionId, in MediaRoute2Info route);
+ void transferToRouteWithManager(IMediaRouter2Manager manager, int requestId,
+ String sessionId, in MediaRoute2Info route);
+ void setSessionVolumeWithManager(IMediaRouter2Manager manager, int requestId,
+ String sessionId, int volume);
+ void releaseSessionWithManager(IMediaRouter2Manager manager, int requestId, String sessionId);
}
diff --git a/media/java/android/media/MediaRoute2ProviderService.java b/media/java/android/media/MediaRoute2ProviderService.java
index 51696a4de2d4..8e39dfae7c57 100644
--- a/media/java/android/media/MediaRoute2ProviderService.java
+++ b/media/java/android/media/MediaRoute2ProviderService.java
@@ -78,11 +78,11 @@ public abstract class MediaRoute2ProviderService extends Service {
public static final String SERVICE_INTERFACE = "android.media.MediaRoute2ProviderService";
/**
- * The request ID to pass {@link #notifySessionCreated(RoutingSessionInfo, long)}
+ * The request ID to pass {@link #notifySessionCreated(long, RoutingSessionInfo)}
* when {@link MediaRoute2ProviderService} created a session although there was no creation
* request.
*
- * @see #notifySessionCreated(RoutingSessionInfo, long)
+ * @see #notifySessionCreated(long, RoutingSessionInfo)
*/
public static final long REQUEST_ID_NONE = 0;
@@ -218,16 +218,16 @@ public abstract class MediaRoute2ProviderService extends Service {
* If this session is created without any creation request, use {@link #REQUEST_ID_NONE}
* as the request ID.
*
- * @param sessionInfo information of the new session.
- * The {@link RoutingSessionInfo#getId() id} of the session must be unique.
* @param requestId id of the previous request to create this session provided in
* {@link #onCreateSession(long, String, String, Bundle)}. Can be
* {@link #REQUEST_ID_NONE} if this session is created without any request.
+ * @param sessionInfo information of the new session.
+ * The {@link RoutingSessionInfo#getId() id} of the session must be unique.
* @see #onCreateSession(long, String, String, Bundle)
* @see #getSessionInfo(String)
*/
- public final void notifySessionCreated(@NonNull RoutingSessionInfo sessionInfo,
- long requestId) {
+ public final void notifySessionCreated(long requestId,
+ @NonNull RoutingSessionInfo sessionInfo) {
Objects.requireNonNull(sessionInfo, "sessionInfo must not be null");
String sessionId = sessionInfo.getId();
@@ -247,7 +247,7 @@ public abstract class MediaRoute2ProviderService extends Service {
// 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.
- mRemoteCallback.notifySessionCreated(sessionInfo, requestId);
+ mRemoteCallback.notifySessionCreated(requestId, sessionInfo);
} catch (RemoteException ex) {
Log.w(TAG, "Failed to notify session created.");
}
@@ -337,7 +337,7 @@ public abstract class MediaRoute2ProviderService extends Service {
* Called when the service receives a request to create a session.
* <p>
* You should create and maintain your own session and notifies the client of
- * session info. Call {@link #notifySessionCreated(RoutingSessionInfo, long)}
+ * session info. Call {@link #notifySessionCreated(long, RoutingSessionInfo)}
* with the given {@code requestId} to notify the information of a new session.
* The created session must have the same route feature and must include the given route
* specified by {@code routeId}.
@@ -504,7 +504,7 @@ public abstract class MediaRoute2ProviderService extends Service {
}
@Override
- public void setRouteVolume(String routeId, int volume, long requestId) {
+ public void setRouteVolume(long requestId, String routeId, int volume) {
if (!checkCallerisSystem()) {
return;
}
@@ -513,7 +513,7 @@ public abstract class MediaRoute2ProviderService extends Service {
}
@Override
- public void requestCreateSession(String packageName, String routeId, long requestId,
+ public void requestCreateSession(long requestId, String packageName, String routeId,
@Nullable Bundle requestCreateSession) {
if (!checkCallerisSystem()) {
return;
@@ -524,7 +524,7 @@ public abstract class MediaRoute2ProviderService extends Service {
}
@Override
- public void selectRoute(String sessionId, String routeId, long requestId) {
+ public void selectRoute(long requestId, String sessionId, String routeId) {
if (!checkCallerisSystem()) {
return;
}
@@ -537,7 +537,7 @@ public abstract class MediaRoute2ProviderService extends Service {
}
@Override
- public void deselectRoute(String sessionId, String routeId, long requestId) {
+ public void deselectRoute(long requestId, String sessionId, String routeId) {
if (!checkCallerisSystem()) {
return;
}
@@ -550,7 +550,7 @@ public abstract class MediaRoute2ProviderService extends Service {
}
@Override
- public void transferToRoute(String sessionId, String routeId, long requestId) {
+ public void transferToRoute(long requestId, String sessionId, String routeId) {
if (!checkCallerisSystem()) {
return;
}
@@ -563,7 +563,7 @@ public abstract class MediaRoute2ProviderService extends Service {
}
@Override
- public void setSessionVolume(String sessionId, int volume, long requestId) {
+ public void setSessionVolume(long requestId, String sessionId, int volume) {
if (!checkCallerisSystem()) {
return;
}
@@ -572,7 +572,7 @@ public abstract class MediaRoute2ProviderService extends Service {
}
@Override
- public void releaseSession(String sessionId, long requestId) {
+ public void releaseSession(long requestId, String sessionId) {
if (!checkCallerisSystem()) {
return;
}
diff --git a/media/java/android/media/MediaRouter2.java b/media/java/android/media/MediaRouter2.java
index fd2408935fff..860e49130d77 100644
--- a/media/java/android/media/MediaRouter2.java
+++ b/media/java/android/media/MediaRouter2.java
@@ -429,11 +429,11 @@ public class MediaRouter2 {
if (stub != null) {
try {
mMediaRouterService.requestCreateSessionWithRouter2(
- stub, route, requestId, controllerHints);
+ stub, requestId, route, controllerHints);
} catch (RemoteException ex) {
Log.e(TAG, "transfer: Unable to request to create controller.", ex);
mHandler.sendMessage(obtainMessage(MediaRouter2::createControllerOnHandler,
- MediaRouter2.this, null, requestId));
+ MediaRouter2.this, requestId, null));
}
}
}
@@ -559,7 +559,7 @@ public class MediaRouter2 {
* <p>
* Pass {@code null} to sessionInfo for the failure case.
*/
- void createControllerOnHandler(@Nullable RoutingSessionInfo sessionInfo, int requestId) {
+ void createControllerOnHandler(int requestId, @Nullable RoutingSessionInfo sessionInfo) {
ControllerCreationRequest matchingRequest = null;
for (ControllerCreationRequest request : mControllerCreationRequests) {
if (request.mRequestId == requestId) {
@@ -1378,9 +1378,9 @@ public class MediaRouter2 {
}
@Override
- public void notifySessionCreated(@Nullable RoutingSessionInfo sessionInfo, int requestId) {
+ public void notifySessionCreated(int requestId, @Nullable RoutingSessionInfo sessionInfo) {
mHandler.sendMessage(obtainMessage(MediaRouter2::createControllerOnHandler,
- MediaRouter2.this, sessionInfo, requestId));
+ MediaRouter2.this, requestId, sessionInfo));
}
@Override
diff --git a/media/java/android/media/MediaRouter2Manager.java b/media/java/android/media/MediaRouter2Manager.java
index cf453284d39f..11c9fe199521 100644
--- a/media/java/android/media/MediaRouter2Manager.java
+++ b/media/java/android/media/MediaRouter2Manager.java
@@ -329,7 +329,7 @@ public class MediaRouter2Manager {
try {
int requestId = mNextRequestId.getAndIncrement();
mMediaRouterService.requestCreateSessionWithManager(
- client, sessionInfo.getClientPackageName(), route, requestId);
+ client, requestId, sessionInfo.getClientPackageName(), route);
} catch (RemoteException ex) {
Log.e(TAG, "Unable to select media route", ex);
}
@@ -373,7 +373,7 @@ public class MediaRouter2Manager {
if (client != null) {
try {
int requestId = mNextRequestId.getAndIncrement();
- mMediaRouterService.setRouteVolumeWithManager(client, route, volume, requestId);
+ mMediaRouterService.setRouteVolumeWithManager(client, requestId, route, volume);
} catch (RemoteException ex) {
Log.e(TAG, "Unable to send control request.", ex);
}
@@ -406,7 +406,7 @@ public class MediaRouter2Manager {
try {
int requestId = mNextRequestId.getAndIncrement();
mMediaRouterService.setSessionVolumeWithManager(
- client, sessionInfo.getId(), volume, requestId);
+ client, requestId, sessionInfo.getId(), volume);
} catch (RemoteException ex) {
Log.e(TAG, "Unable to send control request.", ex);
}
@@ -594,7 +594,7 @@ public class MediaRouter2Manager {
try {
int requestId = mNextRequestId.getAndIncrement();
mMediaRouterService.selectRouteWithManager(
- mClient, sessionInfo.getId(), route, requestId);
+ mClient, requestId, sessionInfo.getId(), route);
} catch (RemoteException ex) {
Log.e(TAG, "selectRoute: Failed to send a request.", ex);
}
@@ -639,7 +639,7 @@ public class MediaRouter2Manager {
try {
int requestId = mNextRequestId.getAndIncrement();
mMediaRouterService.deselectRouteWithManager(
- mClient, sessionInfo.getId(), route, requestId);
+ mClient, requestId, sessionInfo.getId(), route);
} catch (RemoteException ex) {
Log.e(TAG, "deselectRoute: Failed to send a request.", ex);
}
@@ -675,7 +675,7 @@ public class MediaRouter2Manager {
try {
int requestId = mNextRequestId.getAndIncrement();
mMediaRouterService.transferToRouteWithManager(
- mClient, sessionInfo.getId(), route, requestId);
+ mClient, requestId, sessionInfo.getId(), route);
} catch (RemoteException ex) {
Log.e(TAG, "transferToRoute: Failed to send a request.", ex);
}
@@ -703,7 +703,7 @@ public class MediaRouter2Manager {
try {
int requestId = mNextRequestId.getAndIncrement();
mMediaRouterService.releaseSessionWithManager(
- mClient, sessionInfo.getId(), requestId);
+ mClient, requestId, sessionInfo.getId());
} catch (RemoteException ex) {
Log.e(TAG, "releaseSession: Failed to send a request", ex);
}
diff --git a/media/tests/MediaRouter/src/com/android/mediaroutertest/SampleMediaRoute2ProviderService.java b/media/tests/MediaRouter/src/com/android/mediaroutertest/SampleMediaRoute2ProviderService.java
index 22c5bce5b381..f05d8ad79dee 100644
--- a/media/tests/MediaRouter/src/com/android/mediaroutertest/SampleMediaRoute2ProviderService.java
+++ b/media/tests/MediaRouter/src/com/android/mediaroutertest/SampleMediaRoute2ProviderService.java
@@ -239,7 +239,7 @@ public class SampleMediaRoute2ProviderService extends MediaRoute2ProviderService
// Set control hints with given sessionHints
.setControlHints(sessionHints)
.build();
- notifySessionCreated(sessionInfo, requestId);
+ notifySessionCreated(requestId, sessionInfo);
publishRoutes();
}
diff --git a/services/core/java/com/android/server/media/MediaRoute2Provider.java b/services/core/java/com/android/server/media/MediaRoute2Provider.java
index 4cb1ed9a0f9e..27216783d0d2 100644
--- a/services/core/java/com/android/server/media/MediaRoute2Provider.java
+++ b/services/core/java/com/android/server/media/MediaRoute2Provider.java
@@ -51,17 +51,17 @@ abstract class MediaRoute2Provider {
mCallback = callback;
}
- public abstract void requestCreateSession(String packageName, String routeId, long requestId,
+ public abstract void requestCreateSession(long requestId, String packageName, String routeId,
@Nullable Bundle sessionHints);
- public abstract void releaseSession(String sessionId, long requestId);
+ public abstract void releaseSession(long requestId, String sessionId);
public abstract void updateDiscoveryPreference(RouteDiscoveryPreference discoveryPreference);
- public abstract void selectRoute(String sessionId, String routeId, long requestId);
- public abstract void deselectRoute(String sessionId, String routeId, long requestId);
- public abstract void transferToRoute(String sessionId, String routeId, long requestId);
+ public abstract void selectRoute(long requestId, String sessionId, String routeId);
+ public abstract void deselectRoute(long requestId, String sessionId, String routeId);
+ public abstract void transferToRoute(long requestId, String sessionId, String routeId);
- public abstract void setRouteVolume(String routeId, int volume, long requestId);
- public abstract void setSessionVolume(String sessionId, int volume, long requestId);
+ public abstract void setRouteVolume(long requestId, String routeId, int volume);
+ public abstract void setSessionVolume(long requestId, String sessionId, int volume);
@NonNull
public String getUniqueId() {
@@ -110,7 +110,7 @@ abstract class MediaRoute2Provider {
public interface Callback {
void onProviderStateChanged(@Nullable MediaRoute2Provider provider);
void onSessionCreated(@NonNull MediaRoute2Provider provider,
- @Nullable RoutingSessionInfo sessionInfo, long requestId);
+ long requestId, @Nullable RoutingSessionInfo sessionInfo);
void onSessionUpdated(@NonNull MediaRoute2Provider provider,
@NonNull RoutingSessionInfo sessionInfo);
void onSessionReleased(@NonNull MediaRoute2Provider provider,
diff --git a/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java b/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java
index 36a7bd983a29..b456737e9fc1 100644
--- a/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java
+++ b/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java
@@ -78,18 +78,18 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider
}
@Override
- public void requestCreateSession(String packageName, String routeId, long requestId,
+ public void requestCreateSession(long requestId, String packageName, String routeId,
Bundle sessionHints) {
if (mConnectionReady) {
- mActiveConnection.requestCreateSession(packageName, routeId, requestId, sessionHints);
+ mActiveConnection.requestCreateSession(requestId, packageName, routeId, sessionHints);
updateBinding();
}
}
@Override
- public void releaseSession(String sessionId, long requestId) {
+ public void releaseSession(long requestId, String sessionId) {
if (mConnectionReady) {
- mActiveConnection.releaseSession(sessionId, requestId);
+ mActiveConnection.releaseSession(requestId, sessionId);
updateBinding();
}
}
@@ -103,38 +103,38 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider
}
@Override
- public void selectRoute(String sessionId, String routeId, long requestId) {
+ public void selectRoute(long requestId, String sessionId, String routeId) {
if (mConnectionReady) {
- mActiveConnection.selectRoute(sessionId, routeId, requestId);
+ mActiveConnection.selectRoute(requestId, sessionId, routeId);
}
}
@Override
- public void deselectRoute(String sessionId, String routeId, long requestId) {
+ public void deselectRoute(long requestId, String sessionId, String routeId) {
if (mConnectionReady) {
- mActiveConnection.deselectRoute(sessionId, routeId, requestId);
+ mActiveConnection.deselectRoute(requestId, sessionId, routeId);
}
}
@Override
- public void transferToRoute(String sessionId, String routeId, long requestId) {
+ public void transferToRoute(long requestId, String sessionId, String routeId) {
if (mConnectionReady) {
- mActiveConnection.transferToRoute(sessionId, routeId, requestId);
+ mActiveConnection.transferToRoute(requestId, sessionId, routeId);
}
}
@Override
- public void setRouteVolume(String routeId, int volume, long requestId) {
+ public void setRouteVolume(long requestId, String routeId, int volume) {
if (mConnectionReady) {
- mActiveConnection.setRouteVolume(routeId, volume, requestId);
+ mActiveConnection.setRouteVolume(requestId, routeId, volume);
updateBinding();
}
}
@Override
- public void setSessionVolume(String sessionId, int volume, long requestId) {
+ public void setSessionVolume(long requestId, String sessionId, int volume) {
if (mConnectionReady) {
- mActiveConnection.setSessionVolume(sessionId, volume, requestId);
+ mActiveConnection.setSessionVolume(requestId, sessionId, volume);
updateBinding();
}
}
@@ -294,8 +294,8 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider
setAndNotifyProviderState(providerInfo);
}
- private void onSessionCreated(Connection connection, RoutingSessionInfo sessionInfo,
- long requestId) {
+ private void onSessionCreated(Connection connection, long requestId,
+ RoutingSessionInfo sessionInfo) {
if (mActiveConnection != connection) {
return;
}
@@ -325,7 +325,7 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider
return;
}
- mCallback.onSessionCreated(this, sessionInfo, requestId);
+ mCallback.onSessionCreated(this, requestId, sessionInfo);
}
private void onSessionUpdated(Connection connection, RoutingSessionInfo sessionInfo) {
@@ -452,18 +452,18 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider
mCallbackStub.dispose();
}
- public void requestCreateSession(String packageName, String routeId, long requestId,
+ public void requestCreateSession(long requestId, String packageName, String routeId,
Bundle sessionHints) {
try {
- mService.requestCreateSession(packageName, routeId, requestId, sessionHints);
+ mService.requestCreateSession(requestId, packageName, routeId, sessionHints);
} catch (RemoteException ex) {
Slog.e(TAG, "requestCreateSession: Failed to deliver request.");
}
}
- public void releaseSession(String sessionId, long requestId) {
+ public void releaseSession(long requestId, String sessionId) {
try {
- mService.releaseSession(sessionId, requestId);
+ mService.releaseSession(requestId, sessionId);
} catch (RemoteException ex) {
Slog.e(TAG, "releaseSession: Failed to deliver request.");
}
@@ -477,41 +477,41 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider
}
}
- public void selectRoute(String sessionId, String routeId, long requestId) {
+ public void selectRoute(long requestId, String sessionId, String routeId) {
try {
- mService.selectRoute(sessionId, routeId, requestId);
+ mService.selectRoute(requestId, sessionId, routeId);
} catch (RemoteException ex) {
Slog.e(TAG, "selectRoute: Failed to deliver request.", ex);
}
}
- public void deselectRoute(String sessionId, String routeId, long requestId) {
+ public void deselectRoute(long requestId, String sessionId, String routeId) {
try {
- mService.deselectRoute(sessionId, routeId, requestId);
+ mService.deselectRoute(requestId, sessionId, routeId);
} catch (RemoteException ex) {
Slog.e(TAG, "deselectRoute: Failed to deliver request.", ex);
}
}
- public void transferToRoute(String sessionId, String routeId, long requestId) {
+ public void transferToRoute(long requestId, String sessionId, String routeId) {
try {
- mService.transferToRoute(sessionId, routeId, requestId);
+ mService.transferToRoute(requestId, sessionId, routeId);
} catch (RemoteException ex) {
Slog.e(TAG, "transferToRoute: Failed to deliver request.", ex);
}
}
- public void setRouteVolume(String routeId, int volume, long requestId) {
+ public void setRouteVolume(long requestId, String routeId, int volume) {
try {
- mService.setRouteVolume(routeId, volume, requestId);
+ mService.setRouteVolume(requestId, routeId, volume);
} catch (RemoteException ex) {
Slog.e(TAG, "setRouteVolume: Failed to deliver request.", ex);
}
}
- public void setSessionVolume(String sessionId, int volume, long requestId) {
+ public void setSessionVolume(long requestId, String sessionId, int volume) {
try {
- mService.setSessionVolume(sessionId, volume, requestId);
+ mService.setSessionVolume(requestId, sessionId, volume);
} catch (RemoteException ex) {
Slog.e(TAG, "setSessionVolume: Failed to deliver request.", ex);
}
@@ -526,8 +526,8 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider
mHandler.post(() -> onProviderStateUpdated(Connection.this, providerInfo));
}
- void postSessionCreated(RoutingSessionInfo sessionInfo, long requestId) {
- mHandler.post(() -> onSessionCreated(Connection.this, sessionInfo, requestId));
+ void postSessionCreated(long requestId, RoutingSessionInfo sessionInfo) {
+ mHandler.post(() -> onSessionCreated(Connection.this, requestId, sessionInfo));
}
void postSessionUpdated(RoutingSessionInfo sessionInfo) {
@@ -564,10 +564,10 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider
}
@Override
- public void notifySessionCreated(RoutingSessionInfo sessionInfo, long requestId) {
+ public void notifySessionCreated(long requestId, RoutingSessionInfo sessionInfo) {
Connection connection = mConnectionRef.get();
if (connection != null) {
- connection.postSessionCreated(sessionInfo, requestId);
+ connection.postSessionCreated(requestId, sessionInfo);
}
}
diff --git a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java
index 16f2addcb839..4b925ef7c245 100644
--- a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java
+++ b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java
@@ -216,15 +216,15 @@ class MediaRouter2ServiceImpl {
}
}
- public void requestCreateSessionWithRouter2(IMediaRouter2 router, MediaRoute2Info route,
- int requestId, Bundle sessionHints) {
+ public void requestCreateSessionWithRouter2(IMediaRouter2 router, int requestId,
+ MediaRoute2Info route, Bundle sessionHints) {
Objects.requireNonNull(router, "router must not be null");
Objects.requireNonNull(route, "route must not be null");
final long token = Binder.clearCallingIdentity();
try {
synchronized (mLock) {
- requestCreateSessionWithRouter2Locked(router, route, requestId, sessionHints);
+ requestCreateSessionWithRouter2Locked(requestId, router, route, sessionHints);
}
} finally {
Binder.restoreCallingIdentity(token);
@@ -370,23 +370,23 @@ class MediaRouter2ServiceImpl {
}
}
- public void setRouteVolumeWithManager(IMediaRouter2Manager manager,
- MediaRoute2Info route, int volume, int requestId) {
+ public void setRouteVolumeWithManager(IMediaRouter2Manager manager, int requestId,
+ MediaRoute2Info route, int volume) {
Objects.requireNonNull(manager, "manager must not be null");
Objects.requireNonNull(route, "route must not be null");
final long token = Binder.clearCallingIdentity();
try {
synchronized (mLock) {
- setRouteVolumeWithManagerLocked(manager, route, volume, requestId);
+ setRouteVolumeWithManagerLocked(requestId, manager, route, volume);
}
} finally {
Binder.restoreCallingIdentity(token);
}
}
- public void requestCreateSessionWithManager(IMediaRouter2Manager manager, String packageName,
- MediaRoute2Info route, int requestId) {
+ public void requestCreateSessionWithManager(IMediaRouter2Manager manager, int requestId,
+ String packageName, MediaRoute2Info route) {
Objects.requireNonNull(manager, "manager must not be null");
if (TextUtils.isEmpty(packageName)) {
throw new IllegalArgumentException("packageName must not be empty");
@@ -395,15 +395,15 @@ class MediaRouter2ServiceImpl {
final long token = Binder.clearCallingIdentity();
try {
synchronized (mLock) {
- requestCreateSessionWithManagerLocked(manager, packageName, route, requestId);
+ requestCreateSessionWithManagerLocked(requestId, manager, packageName, route);
}
} finally {
Binder.restoreCallingIdentity(token);
}
}
- public void selectRouteWithManager(IMediaRouter2Manager manager, String uniqueSessionId,
- MediaRoute2Info route, int requestId) {
+ public void selectRouteWithManager(IMediaRouter2Manager manager, int requestId,
+ String uniqueSessionId, MediaRoute2Info route) {
Objects.requireNonNull(manager, "manager must not be null");
if (TextUtils.isEmpty(uniqueSessionId)) {
throw new IllegalArgumentException("uniqueSessionId must not be empty");
@@ -413,15 +413,15 @@ class MediaRouter2ServiceImpl {
final long token = Binder.clearCallingIdentity();
try {
synchronized (mLock) {
- selectRouteWithManagerLocked(manager, uniqueSessionId, route, requestId);
+ selectRouteWithManagerLocked(requestId, manager, uniqueSessionId, route);
}
} finally {
Binder.restoreCallingIdentity(token);
}
}
- public void deselectRouteWithManager(IMediaRouter2Manager manager, String uniqueSessionId,
- MediaRoute2Info route, int requestId) {
+ public void deselectRouteWithManager(IMediaRouter2Manager manager, int requestId,
+ String uniqueSessionId, MediaRoute2Info route) {
Objects.requireNonNull(manager, "manager must not be null");
if (TextUtils.isEmpty(uniqueSessionId)) {
throw new IllegalArgumentException("uniqueSessionId must not be empty");
@@ -431,15 +431,15 @@ class MediaRouter2ServiceImpl {
final long token = Binder.clearCallingIdentity();
try {
synchronized (mLock) {
- deselectRouteWithManagerLocked(manager, uniqueSessionId, route, requestId);
+ deselectRouteWithManagerLocked(requestId, manager, uniqueSessionId, route);
}
} finally {
Binder.restoreCallingIdentity(token);
}
}
- public void transferToRouteWithManager(IMediaRouter2Manager manager, String uniqueSessionId,
- MediaRoute2Info route, int requestId) {
+ public void transferToRouteWithManager(IMediaRouter2Manager manager, int requestId,
+ String uniqueSessionId, MediaRoute2Info route) {
Objects.requireNonNull(manager, "manager must not be null");
if (TextUtils.isEmpty(uniqueSessionId)) {
throw new IllegalArgumentException("uniqueSessionId must not be empty");
@@ -449,15 +449,15 @@ class MediaRouter2ServiceImpl {
final long token = Binder.clearCallingIdentity();
try {
synchronized (mLock) {
- transferToRouteWithManagerLocked(manager, uniqueSessionId, route, requestId);
+ transferToRouteWithManagerLocked(requestId, manager, uniqueSessionId, route);
}
} finally {
Binder.restoreCallingIdentity(token);
}
}
- public void setSessionVolumeWithManager(IMediaRouter2Manager manager,
- String uniqueSessionId, int volume, int requestId) {
+ public void setSessionVolumeWithManager(IMediaRouter2Manager manager, int requestId,
+ String uniqueSessionId, int volume) {
Objects.requireNonNull(manager, "manager must not be null");
if (TextUtils.isEmpty(uniqueSessionId)) {
throw new IllegalArgumentException("uniqueSessionId must not be empty");
@@ -466,15 +466,15 @@ class MediaRouter2ServiceImpl {
final long token = Binder.clearCallingIdentity();
try {
synchronized (mLock) {
- setSessionVolumeWithManagerLocked(manager, uniqueSessionId, volume, requestId);
+ setSessionVolumeWithManagerLocked(requestId, manager, uniqueSessionId, volume);
}
} finally {
Binder.restoreCallingIdentity(token);
}
}
- public void releaseSessionWithManager(IMediaRouter2Manager manager, String uniqueSessionId,
- int requestId) {
+ public void releaseSessionWithManager(IMediaRouter2Manager manager, int requestId,
+ String uniqueSessionId) {
Objects.requireNonNull(manager, "manager must not be null");
if (TextUtils.isEmpty(uniqueSessionId)) {
throw new IllegalArgumentException("uniqueSessionId must not be empty");
@@ -483,7 +483,7 @@ class MediaRouter2ServiceImpl {
final long token = Binder.clearCallingIdentity();
try {
synchronized (mLock) {
- releaseSessionWithManagerLocked(manager, uniqueSessionId, requestId);
+ releaseSessionWithManagerLocked(requestId, manager, uniqueSessionId);
}
} finally {
Binder.restoreCallingIdentity(token);
@@ -591,12 +591,13 @@ class MediaRouter2ServiceImpl {
if (routerRecord != null) {
routerRecord.mUserRecord.mHandler.sendMessage(
obtainMessage(UserHandler::setRouteVolumeOnHandler,
- routerRecord.mUserRecord.mHandler, route, volume, DUMMY_REQUEST_ID));
+ routerRecord.mUserRecord.mHandler,
+ DUMMY_REQUEST_ID, route, volume));
}
}
- private void requestCreateSessionWithRouter2Locked(@NonNull IMediaRouter2 router,
- @NonNull MediaRoute2Info route, int requestId, @Nullable Bundle sessionHints) {
+ private void requestCreateSessionWithRouter2Locked(int requestId, @NonNull IMediaRouter2 router,
+ @NonNull MediaRoute2Info route, @Nullable Bundle sessionHints) {
final IBinder binder = router.asBinder();
final RouterRecord routerRecord = mAllRouterRecords.get(binder);
@@ -608,7 +609,7 @@ class MediaRouter2ServiceImpl {
routerRecord.mUserRecord.mHandler.sendMessage(
obtainMessage(UserHandler::requestCreateSessionOnHandler,
routerRecord.mUserRecord.mHandler,
- routerRecord, /* managerRecord= */ null, route, uniqueRequestId,
+ uniqueRequestId, routerRecord, /* managerRecord= */ null, route,
sessionHints));
}
@@ -623,8 +624,8 @@ class MediaRouter2ServiceImpl {
routerRecord.mUserRecord.mHandler.sendMessage(
obtainMessage(UserHandler::selectRouteOnHandler,
- routerRecord.mUserRecord.mHandler, routerRecord, uniqueSessionId, route,
- DUMMY_REQUEST_ID));
+ routerRecord.mUserRecord.mHandler,
+ DUMMY_REQUEST_ID, routerRecord, uniqueSessionId, route));
}
private void deselectRouteWithRouter2Locked(@NonNull IMediaRouter2 router,
@@ -638,8 +639,8 @@ class MediaRouter2ServiceImpl {
routerRecord.mUserRecord.mHandler.sendMessage(
obtainMessage(UserHandler::deselectRouteOnHandler,
- routerRecord.mUserRecord.mHandler, routerRecord, uniqueSessionId, route,
- DUMMY_REQUEST_ID));
+ routerRecord.mUserRecord.mHandler,
+ DUMMY_REQUEST_ID, routerRecord, uniqueSessionId, route));
}
private void transferToRouteWithRouter2Locked(@NonNull IMediaRouter2 router,
@@ -653,8 +654,8 @@ class MediaRouter2ServiceImpl {
routerRecord.mUserRecord.mHandler.sendMessage(
obtainMessage(UserHandler::transferToRouteOnHandler,
- routerRecord.mUserRecord.mHandler, routerRecord, uniqueSessionId, route,
- DUMMY_REQUEST_ID));
+ routerRecord.mUserRecord.mHandler,
+ DUMMY_REQUEST_ID, routerRecord, uniqueSessionId, route));
}
private void setSessionVolumeWithRouter2Locked(@NonNull IMediaRouter2 router,
@@ -668,8 +669,8 @@ class MediaRouter2ServiceImpl {
routerRecord.mUserRecord.mHandler.sendMessage(
obtainMessage(UserHandler::setSessionVolumeOnHandler,
- routerRecord.mUserRecord.mHandler, uniqueSessionId, volume,
- DUMMY_REQUEST_ID));
+ routerRecord.mUserRecord.mHandler,
+ DUMMY_REQUEST_ID, uniqueSessionId, volume));
}
private void releaseSessionWithRouter2Locked(@NonNull IMediaRouter2 router,
@@ -683,8 +684,8 @@ class MediaRouter2ServiceImpl {
routerRecord.mUserRecord.mHandler.sendMessage(
obtainMessage(UserHandler::releaseSessionOnHandler,
- routerRecord.mUserRecord.mHandler, routerRecord, uniqueSessionId,
- DUMMY_REQUEST_ID));
+ routerRecord.mUserRecord.mHandler,
+ DUMMY_REQUEST_ID, routerRecord, uniqueSessionId));
}
////////////////////////////////////////////////////////////
@@ -756,8 +757,9 @@ class MediaRouter2ServiceImpl {
disposeUserIfNeededLocked(userRecord); // since manager removed from user
}
- private void setRouteVolumeWithManagerLocked(@NonNull IMediaRouter2Manager manager,
- @NonNull MediaRoute2Info route, int volume, int requestId) {
+ private void setRouteVolumeWithManagerLocked(int requestId,
+ @NonNull IMediaRouter2Manager manager,
+ @NonNull MediaRoute2Info route, int volume) {
final IBinder binder = manager.asBinder();
ManagerRecord managerRecord = mAllManagerRecords.get(binder);
@@ -768,11 +770,13 @@ class MediaRouter2ServiceImpl {
long uniqueRequestId = toUniqueRequestId(managerRecord.mManagerId, requestId);
managerRecord.mUserRecord.mHandler.sendMessage(
obtainMessage(UserHandler::setRouteVolumeOnHandler,
- managerRecord.mUserRecord.mHandler, route, volume, uniqueRequestId));
+ managerRecord.mUserRecord.mHandler,
+ uniqueRequestId, route, volume));
}
- private void requestCreateSessionWithManagerLocked(@NonNull IMediaRouter2Manager manager,
- @NonNull String packageName, @NonNull MediaRoute2Info route, int requestId) {
+ private void requestCreateSessionWithManagerLocked(int requestId,
+ @NonNull IMediaRouter2Manager manager,
+ @NonNull String packageName, @NonNull MediaRoute2Info route) {
ManagerRecord managerRecord = mAllManagerRecords.get(manager.asBinder());
if (managerRecord == null || !managerRecord.mTrusted) {
return;
@@ -789,12 +793,12 @@ class MediaRouter2ServiceImpl {
routerRecord.mUserRecord.mHandler.sendMessage(
obtainMessage(UserHandler::requestCreateSessionOnHandler,
routerRecord.mUserRecord.mHandler,
- routerRecord, managerRecord, route, uniqueRequestId,
+ uniqueRequestId, routerRecord, managerRecord, route,
/* sessionHints= */ null));
}
- private void selectRouteWithManagerLocked(@NonNull IMediaRouter2Manager manager,
- @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route, int requestId) {
+ private void selectRouteWithManagerLocked(int requestId, @NonNull IMediaRouter2Manager manager,
+ @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) {
final IBinder binder = manager.asBinder();
ManagerRecord managerRecord = mAllManagerRecords.get(binder);
@@ -809,12 +813,13 @@ class MediaRouter2ServiceImpl {
long uniqueRequestId = toUniqueRequestId(managerRecord.mManagerId, requestId);
managerRecord.mUserRecord.mHandler.sendMessage(
obtainMessage(UserHandler::selectRouteOnHandler,
- managerRecord.mUserRecord.mHandler, routerRecord, uniqueSessionId, route,
- uniqueRequestId));
+ managerRecord.mUserRecord.mHandler,
+ uniqueRequestId, routerRecord, uniqueSessionId, route));
}
- private void deselectRouteWithManagerLocked(@NonNull IMediaRouter2Manager manager,
- @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route, int requestId) {
+ private void deselectRouteWithManagerLocked(int requestId,
+ @NonNull IMediaRouter2Manager manager,
+ @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) {
final IBinder binder = manager.asBinder();
ManagerRecord managerRecord = mAllManagerRecords.get(binder);
@@ -829,12 +834,13 @@ class MediaRouter2ServiceImpl {
long uniqueRequestId = toUniqueRequestId(managerRecord.mManagerId, requestId);
managerRecord.mUserRecord.mHandler.sendMessage(
obtainMessage(UserHandler::deselectRouteOnHandler,
- managerRecord.mUserRecord.mHandler, routerRecord, uniqueSessionId, route,
- uniqueRequestId));
+ managerRecord.mUserRecord.mHandler,
+ uniqueRequestId, routerRecord, uniqueSessionId, route));
}
- private void transferToRouteWithManagerLocked(@NonNull IMediaRouter2Manager manager,
- @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route, int requestId) {
+ private void transferToRouteWithManagerLocked(int requestId,
+ @NonNull IMediaRouter2Manager manager,
+ @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) {
final IBinder binder = manager.asBinder();
ManagerRecord managerRecord = mAllManagerRecords.get(binder);
@@ -849,12 +855,13 @@ class MediaRouter2ServiceImpl {
long uniqueRequestId = toUniqueRequestId(managerRecord.mManagerId, requestId);
managerRecord.mUserRecord.mHandler.sendMessage(
obtainMessage(UserHandler::transferToRouteOnHandler,
- managerRecord.mUserRecord.mHandler, routerRecord, uniqueSessionId, route,
- uniqueRequestId));
+ managerRecord.mUserRecord.mHandler,
+ uniqueRequestId, routerRecord, uniqueSessionId, route));
}
- private void setSessionVolumeWithManagerLocked(@NonNull IMediaRouter2Manager manager,
- @NonNull String uniqueSessionId, int volume, int requestId) {
+ private void setSessionVolumeWithManagerLocked(int requestId,
+ @NonNull IMediaRouter2Manager manager,
+ @NonNull String uniqueSessionId, int volume) {
final IBinder binder = manager.asBinder();
ManagerRecord managerRecord = mAllManagerRecords.get(binder);
@@ -865,12 +872,13 @@ class MediaRouter2ServiceImpl {
long uniqueRequestId = toUniqueRequestId(managerRecord.mManagerId, requestId);
managerRecord.mUserRecord.mHandler.sendMessage(
obtainMessage(UserHandler::setSessionVolumeOnHandler,
- managerRecord.mUserRecord.mHandler, uniqueSessionId, volume,
- uniqueRequestId));
+ managerRecord.mUserRecord.mHandler,
+ uniqueRequestId, uniqueSessionId, volume));
}
- private void releaseSessionWithManagerLocked(@NonNull IMediaRouter2Manager manager,
- @NonNull String uniqueSessionId, int requestId) {
+ private void releaseSessionWithManagerLocked(int requestId,
+ @NonNull IMediaRouter2Manager manager,
+ @NonNull String uniqueSessionId) {
final IBinder binder = manager.asBinder();
ManagerRecord managerRecord = mAllManagerRecords.get(binder);
@@ -887,8 +895,8 @@ class MediaRouter2ServiceImpl {
long uniqueRequestId = toUniqueRequestId(managerRecord.mManagerId, requestId);
managerRecord.mUserRecord.mHandler.sendMessage(
obtainMessage(UserHandler::releaseSessionOnHandler,
- managerRecord.mUserRecord.mHandler, routerRecord, uniqueSessionId,
- uniqueRequestId));
+ managerRecord.mUserRecord.mHandler,
+ uniqueRequestId, routerRecord, uniqueSessionId));
}
////////////////////////////////////////////////////////////
@@ -925,8 +933,8 @@ class MediaRouter2ServiceImpl {
}
}
- static long toUniqueRequestId(int routerOrManagerId, int originalRequestId) {
- return ((long) routerOrManagerId << 32) | originalRequestId;
+ static long toUniqueRequestId(int requesterId, int originalRequestId) {
+ return ((long) requesterId << 32) | originalRequestId;
}
static int toRequesterId(long uniqueRequestId) {
@@ -1104,9 +1112,9 @@ class MediaRouter2ServiceImpl {
@Override
public void onSessionCreated(@NonNull MediaRoute2Provider provider,
- @NonNull RoutingSessionInfo sessionInfo, long requestId) {
+ long requestId, @NonNull RoutingSessionInfo sessionInfo) {
sendMessage(PooledLambda.obtainMessage(UserHandler::onSessionCreatedOnHandler,
- this, provider, sessionInfo, requestId));
+ this, provider, requestId, sessionInfo));
}
@@ -1219,9 +1227,9 @@ class MediaRouter2ServiceImpl {
return -1;
}
- private void requestCreateSessionOnHandler(@NonNull RouterRecord routerRecord,
- @Nullable ManagerRecord managerRecord, @NonNull MediaRoute2Info route,
- long requestId, @Nullable Bundle sessionHints) {
+ private void requestCreateSessionOnHandler(long requestId,
+ @NonNull RouterRecord routerRecord, @Nullable ManagerRecord managerRecord,
+ @NonNull MediaRoute2Info route, @Nullable Bundle sessionHints) {
final MediaRoute2Provider provider = findProvider(route.getProviderId());
if (provider == null) {
@@ -1231,18 +1239,17 @@ class MediaRouter2ServiceImpl {
return;
}
- // TODO: Apply timeout for each request (How many seconds should we wait?)
SessionCreationRequest request =
- new SessionCreationRequest(routerRecord, managerRecord, route, requestId);
+ new SessionCreationRequest(routerRecord, requestId, route, managerRecord);
mSessionCreationRequests.add(request);
- provider.requestCreateSession(routerRecord.mPackageName, route.getOriginalId(),
- requestId, sessionHints);
+ provider.requestCreateSession(requestId, routerRecord.mPackageName,
+ route.getOriginalId(), sessionHints);
}
// routerRecord can be null if the session is system's.
- private void selectRouteOnHandler(@Nullable RouterRecord routerRecord,
- @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route, long requestId) {
+ private void selectRouteOnHandler(long requestId, @Nullable RouterRecord routerRecord,
+ @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) {
if (!checkArgumentsForSessionControl(routerRecord, uniqueSessionId, route,
"selecting")) {
return;
@@ -1254,12 +1261,12 @@ class MediaRouter2ServiceImpl {
if (provider == null) {
return;
}
- provider.selectRoute(getOriginalId(uniqueSessionId), route.getOriginalId(), requestId);
+ provider.selectRoute(requestId, getOriginalId(uniqueSessionId), route.getOriginalId());
}
// routerRecord can be null if the session is system's.
- private void deselectRouteOnHandler(@Nullable RouterRecord routerRecord,
- @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route, long requestId) {
+ private void deselectRouteOnHandler(long requestId, @Nullable RouterRecord routerRecord,
+ @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) {
if (!checkArgumentsForSessionControl(routerRecord, uniqueSessionId, route,
"deselecting")) {
return;
@@ -1271,13 +1278,14 @@ class MediaRouter2ServiceImpl {
if (provider == null) {
return;
}
- provider.deselectRoute(getOriginalId(uniqueSessionId), route.getOriginalId(),
- requestId);
+
+ provider.deselectRoute(requestId, getOriginalId(uniqueSessionId),
+ route.getOriginalId());
}
// routerRecord can be null if the session is system's.
- private void transferToRouteOnHandler(@Nullable RouterRecord routerRecord,
- @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route, long requestId) {
+ private void transferToRouteOnHandler(long requestId, @Nullable RouterRecord routerRecord,
+ @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) {
if (!checkArgumentsForSessionControl(routerRecord, uniqueSessionId, route,
"transferring to")) {
return;
@@ -1289,8 +1297,8 @@ class MediaRouter2ServiceImpl {
if (provider == null) {
return;
}
- provider.transferToRoute(getOriginalId(uniqueSessionId), route.getOriginalId(),
- requestId);
+ provider.transferToRoute(requestId, getOriginalId(uniqueSessionId),
+ route.getOriginalId());
}
private boolean checkArgumentsForSessionControl(@Nullable RouterRecord routerRecord,
@@ -1332,8 +1340,29 @@ class MediaRouter2ServiceImpl {
return true;
}
- private void releaseSessionOnHandler(@NonNull RouterRecord routerRecord,
- @NonNull String uniqueSessionId, long uniqueRequestId) {
+ private void setRouteVolumeOnHandler(long requestId, @NonNull MediaRoute2Info route,
+ int volume) {
+ final MediaRoute2Provider provider = findProvider(route.getProviderId());
+ if (provider == null) {
+ Slog.w(TAG, "setRouteVolume: couldn't find provider for route=" + route);
+ return;
+ }
+ provider.setRouteVolume(requestId, route.getOriginalId(), volume);
+ }
+
+ private void setSessionVolumeOnHandler(long requestId, @NonNull String uniqueSessionId,
+ int volume) {
+ final MediaRoute2Provider provider = findProvider(getProviderId(uniqueSessionId));
+ if (provider == null) {
+ Slog.w(TAG, "setSessionVolume: couldn't find provider for session "
+ + "id=" + uniqueSessionId);
+ return;
+ }
+ provider.setSessionVolume(requestId, getOriginalId(uniqueSessionId), volume);
+ }
+
+ private void releaseSessionOnHandler(long uniqueRequestId,
+ @NonNull RouterRecord routerRecord, @NonNull String uniqueSessionId) {
final RouterRecord matchingRecord = mSessionToRouterMap.get(uniqueSessionId);
if (matchingRecord != routerRecord) {
Slog.w(TAG, "Ignoring releasing session from non-matching router."
@@ -1363,11 +1392,11 @@ class MediaRouter2ServiceImpl {
return;
}
- provider.releaseSession(sessionId, uniqueRequestId);
+ provider.releaseSession(uniqueRequestId, sessionId);
}
private void onSessionCreatedOnHandler(@NonNull MediaRoute2Provider provider,
- @NonNull RoutingSessionInfo sessionInfo, long requestId) {
+ long requestId, @NonNull RoutingSessionInfo sessionInfo) {
notifySessionCreatedToManagers(getManagers(), sessionInfo);
if (requestId == REQUEST_ID_NONE) {
@@ -1415,7 +1444,7 @@ class MediaRouter2ServiceImpl {
// Succeeded
notifySessionCreatedToRouter(matchingRequest.mRouterRecord,
- sessionInfo, toOriginalRequestId(requestId));
+ toOriginalRequestId(requestId), sessionInfo);
mSessionToRouterMap.put(sessionInfo.getId(), routerRecord);
}
@@ -1510,9 +1539,9 @@ class MediaRouter2ServiceImpl {
}
private void notifySessionCreatedToRouter(@NonNull RouterRecord routerRecord,
- @NonNull RoutingSessionInfo sessionInfo, int requestId) {
+ int requestId, @NonNull RoutingSessionInfo sessionInfo) {
try {
- routerRecord.mRouter.notifySessionCreated(sessionInfo, requestId);
+ routerRecord.mRouter.notifySessionCreated(requestId, sessionInfo);
} catch (RemoteException ex) {
Slog.w(TAG, "Failed to notify router of the session creation."
+ " Router probably died.", ex);
@@ -1522,7 +1551,7 @@ class MediaRouter2ServiceImpl {
private void notifySessionCreationFailedToRouter(@NonNull RouterRecord routerRecord,
int requestId) {
try {
- routerRecord.mRouter.notifySessionCreated(/* sessionInfo= */ null, requestId);
+ routerRecord.mRouter.notifySessionCreated(requestId, /* sessionInfo= */ null);
} catch (RemoteException ex) {
Slog.w(TAG, "Failed to notify router of the session creation failure."
+ " Router probably died.", ex);
@@ -1549,25 +1578,6 @@ class MediaRouter2ServiceImpl {
}
}
- private void setRouteVolumeOnHandler(@NonNull MediaRoute2Info route, int volume,
- long requestId) {
- final MediaRoute2Provider provider = findProvider(route.getProviderId());
- if (provider != null) {
- provider.setRouteVolume(route.getOriginalId(), volume, requestId);
- }
- }
-
- private void setSessionVolumeOnHandler(@NonNull String uniqueSessionId, int volume,
- long requestId) {
- final MediaRoute2Provider provider = findProvider(getProviderId(uniqueSessionId));
- if (provider == null) {
- Slog.w(TAG, "setSessionVolume: couldn't find provider for session "
- + "id=" + uniqueSessionId);
- return;
- }
- provider.setSessionVolume(getOriginalId(uniqueSessionId), volume, requestId);
- }
-
private List<IMediaRouter2> getRouters() {
final List<IMediaRouter2> routers = new ArrayList<>();
MediaRouter2ServiceImpl service = mServiceRef.get();
@@ -1599,7 +1609,7 @@ class MediaRouter2ServiceImpl {
private List<ManagerRecord> getManagerRecords() {
MediaRouter2ServiceImpl service = mServiceRef.get();
if (service == null) {
- return new ArrayList<>();
+ return Collections.emptyList();
}
synchronized (service.mLock) {
return new ArrayList<>(mUserRecord.mManagerRecords);
@@ -1799,18 +1809,18 @@ class MediaRouter2ServiceImpl {
final class SessionCreationRequest {
public final RouterRecord mRouterRecord;
- public final ManagerRecord mRequestedManagerRecord;
- public final MediaRoute2Info mRoute;
public final long mRequestId;
+ public final MediaRoute2Info mRoute;
+ public final ManagerRecord mRequestedManagerRecord;
// requestedManagerRecord is not null only when the request is made by manager.
- SessionCreationRequest(@NonNull RouterRecord routerRecord,
- @Nullable ManagerRecord requestedManagerRecord,
- @NonNull MediaRoute2Info route, long requestId) {
+ SessionCreationRequest(@NonNull RouterRecord routerRecord, long requestId,
+ @NonNull MediaRoute2Info route,
+ @Nullable ManagerRecord requestedManagerRecord) {
mRouterRecord = routerRecord;
- mRequestedManagerRecord = requestedManagerRecord;
- mRoute = route;
mRequestId = requestId;
+ mRoute = route;
+ mRequestedManagerRecord = requestedManagerRecord;
}
}
}
diff --git a/services/core/java/com/android/server/media/MediaRouterService.java b/services/core/java/com/android/server/media/MediaRouterService.java
index a13ee1058a26..d6bf9fb4d9b5 100644
--- a/services/core/java/com/android/server/media/MediaRouterService.java
+++ b/services/core/java/com/android/server/media/MediaRouterService.java
@@ -480,9 +480,9 @@ public final class MediaRouterService extends IMediaRouterService.Stub
// Binder call
@Override
- public void requestCreateSessionWithRouter2(IMediaRouter2 router, MediaRoute2Info route,
- int requestId, Bundle sessionHints) {
- mService2.requestCreateSessionWithRouter2(router, route, requestId, sessionHints);
+ public void requestCreateSessionWithRouter2(IMediaRouter2 router, int requestId,
+ MediaRoute2Info route, Bundle sessionHints) {
+ mService2.requestCreateSessionWithRouter2(router, requestId, route, sessionHints);
}
// Binder call
@@ -542,51 +542,51 @@ public final class MediaRouterService extends IMediaRouterService.Stub
// Binder call
@Override
- public void setRouteVolumeWithManager(IMediaRouter2Manager manager,
- MediaRoute2Info route, int volume, int requestId) {
- mService2.setRouteVolumeWithManager(manager, route, volume, requestId);
+ public void setRouteVolumeWithManager(IMediaRouter2Manager manager, int requestId,
+ MediaRoute2Info route, int volume) {
+ mService2.setRouteVolumeWithManager(manager, requestId, route, volume);
}
// Binder call
@Override
- public void requestCreateSessionWithManager(IMediaRouter2Manager manager, String packageName,
- MediaRoute2Info route, int requestId) {
- mService2.requestCreateSessionWithManager(manager, packageName, route, requestId);
+ public void requestCreateSessionWithManager(IMediaRouter2Manager manager,
+ int requestId, String packageName, MediaRoute2Info route) {
+ mService2.requestCreateSessionWithManager(manager, requestId, packageName, route);
}
// Binder call
@Override
- public void selectRouteWithManager(IMediaRouter2Manager manager, String sessionId,
- MediaRoute2Info route, int requestId) {
- mService2.selectRouteWithManager(manager, sessionId, route, requestId);
+ public void selectRouteWithManager(IMediaRouter2Manager manager, int requestId,
+ String sessionId, MediaRoute2Info route) {
+ mService2.selectRouteWithManager(manager, requestId, sessionId, route);
}
// Binder call
@Override
- public void deselectRouteWithManager(IMediaRouter2Manager manager, String sessionId,
- MediaRoute2Info route, int requestId) {
- mService2.deselectRouteWithManager(manager, sessionId, route, requestId);
+ public void deselectRouteWithManager(IMediaRouter2Manager manager, int requestId,
+ String sessionId, MediaRoute2Info route) {
+ mService2.deselectRouteWithManager(manager, requestId, sessionId, route);
}
// Binder call
@Override
- public void transferToRouteWithManager(IMediaRouter2Manager manager, String sessionId,
- MediaRoute2Info route, int requestId) {
- mService2.transferToRouteWithManager(manager, sessionId, route, requestId);
+ public void transferToRouteWithManager(IMediaRouter2Manager manager, int requestId,
+ String sessionId, MediaRoute2Info route) {
+ mService2.transferToRouteWithManager(manager, requestId, sessionId, route);
}
// Binder call
@Override
- public void setSessionVolumeWithManager(IMediaRouter2Manager manager,
- String sessionId, int volume, int requestId) {
- mService2.setSessionVolumeWithManager(manager, sessionId, volume, requestId);
+ public void setSessionVolumeWithManager(IMediaRouter2Manager manager, int requestId,
+ String sessionId, int volume) {
+ mService2.setSessionVolumeWithManager(manager, requestId, sessionId, volume);
}
// Binder call
@Override
- public void releaseSessionWithManager(IMediaRouter2Manager manager, String sessionId,
- int requestId) {
- mService2.releaseSessionWithManager(manager, sessionId, requestId);
+ public void releaseSessionWithManager(IMediaRouter2Manager manager, int requestId,
+ String sessionId) {
+ mService2.releaseSessionWithManager(manager, requestId, sessionId);
}
void restoreBluetoothA2dp() {
diff --git a/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java b/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java
index 1922c8cfbbad..aad72034296d 100644
--- a/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java
+++ b/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java
@@ -125,14 +125,14 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider {
}
@Override
- public void requestCreateSession(String packageName, String routeId, long requestId,
+ public void requestCreateSession(long requestId, String packageName, String routeId,
Bundle sessionHints) {
// Handle it as an internal transfer.
- transferToRoute(SYSTEM_SESSION_ID, routeId, requestId);
+ transferToRoute(requestId, SYSTEM_SESSION_ID, routeId);
}
@Override
- public void releaseSession(String sessionId, long requestId) {
+ public void releaseSession(long requestId, String sessionId) {
// Do nothing
}
@@ -142,17 +142,17 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider {
}
@Override
- public void selectRoute(String sessionId, String routeId, long requestId) {
+ public void selectRoute(long requestId, String sessionId, String routeId) {
// Do nothing since we don't support multiple BT yet.
}
@Override
- public void deselectRoute(String sessionId, String routeId, long requestId) {
+ public void deselectRoute(long requestId, String sessionId, String routeId) {
// Do nothing since we don't support multiple BT yet.
}
@Override
- public void transferToRoute(String sessionId, String routeId, long requestId) {
+ public void transferToRoute(long requestId, String sessionId, String routeId) {
if (TextUtils.equals(routeId, mDefaultRoute.getId())) {
mBtRouteProvider.transferTo(null);
} else {
@@ -161,7 +161,7 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider {
}
@Override
- public void setRouteVolume(String routeId, int volume, long requestId) {
+ public void setRouteVolume(long requestId, String routeId, int volume) {
if (!TextUtils.equals(routeId, mSelectedRouteId)) {
return;
}
@@ -169,7 +169,7 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider {
}
@Override
- public void setSessionVolume(String sessionId, int volume, long requestId) {
+ public void setSessionVolume(long requestId, String sessionId, int volume) {
// Do nothing since we don't support grouping volume yet.
}