Put requestId first in notifySessionCreated() arguments
For consistency, this CL applies the same changes also to the internal methods. Bug: 150922531 Test: CTS and mediaroutertest (Passed except already failing methods) Change-Id: Iac0ab78464b16212cb3ad46519f5892e8d1b69d9
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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.
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user