Merge "MediaRouter: Rename requestID with uniqueRequestId" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
370d6454d1
@@ -1114,9 +1114,9 @@ class MediaRouter2ServiceImpl {
|
||||
|
||||
@Override
|
||||
public void onSessionCreated(@NonNull MediaRoute2Provider provider,
|
||||
long requestId, @NonNull RoutingSessionInfo sessionInfo) {
|
||||
long uniqueRequestId, @NonNull RoutingSessionInfo sessionInfo) {
|
||||
sendMessage(PooledLambda.obtainMessage(UserHandler::onSessionCreatedOnHandler,
|
||||
this, provider, requestId, sessionInfo));
|
||||
this, provider, uniqueRequestId, sessionInfo));
|
||||
}
|
||||
|
||||
|
||||
@@ -1135,10 +1135,10 @@ class MediaRouter2ServiceImpl {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestFailed(@NonNull MediaRoute2Provider provider, long requestId,
|
||||
public void onRequestFailed(@NonNull MediaRoute2Provider provider, long uniqueRequestId,
|
||||
int reason) {
|
||||
sendMessage(PooledLambda.obtainMessage(UserHandler::onRequestFailedOnHandler,
|
||||
this, provider, requestId, reason));
|
||||
this, provider, uniqueRequestId, reason));
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@@ -1229,7 +1229,7 @@ class MediaRouter2ServiceImpl {
|
||||
return -1;
|
||||
}
|
||||
|
||||
private void requestCreateSessionOnHandler(long requestId,
|
||||
private void requestCreateSessionOnHandler(long uniqueRequestId,
|
||||
@NonNull RouterRecord routerRecord, @Nullable ManagerRecord managerRecord,
|
||||
@NonNull MediaRoute2Info route, @Nullable Bundle sessionHints) {
|
||||
|
||||
@@ -1237,20 +1237,21 @@ class MediaRouter2ServiceImpl {
|
||||
if (provider == null) {
|
||||
Slog.w(TAG, "Ignoring session creation request since no provider found for"
|
||||
+ " given route=" + route);
|
||||
notifySessionCreationFailedToRouter(routerRecord, toOriginalRequestId(requestId));
|
||||
notifySessionCreationFailedToRouter(routerRecord,
|
||||
toOriginalRequestId(uniqueRequestId));
|
||||
return;
|
||||
}
|
||||
|
||||
SessionCreationRequest request =
|
||||
new SessionCreationRequest(routerRecord, requestId, route, managerRecord);
|
||||
new SessionCreationRequest(routerRecord, uniqueRequestId, route, managerRecord);
|
||||
mSessionCreationRequests.add(request);
|
||||
|
||||
provider.requestCreateSession(requestId, routerRecord.mPackageName,
|
||||
provider.requestCreateSession(uniqueRequestId, routerRecord.mPackageName,
|
||||
route.getOriginalId(), sessionHints);
|
||||
}
|
||||
|
||||
// routerRecord can be null if the session is system's.
|
||||
private void selectRouteOnHandler(long requestId, @Nullable RouterRecord routerRecord,
|
||||
private void selectRouteOnHandler(long uniqueRequestId, @Nullable RouterRecord routerRecord,
|
||||
@NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) {
|
||||
if (!checkArgumentsForSessionControl(routerRecord, uniqueSessionId, route,
|
||||
"selecting")) {
|
||||
@@ -1263,11 +1264,13 @@ class MediaRouter2ServiceImpl {
|
||||
if (provider == null) {
|
||||
return;
|
||||
}
|
||||
provider.selectRoute(requestId, getOriginalId(uniqueSessionId), route.getOriginalId());
|
||||
provider.selectRoute(uniqueRequestId, getOriginalId(uniqueSessionId),
|
||||
route.getOriginalId());
|
||||
}
|
||||
|
||||
// routerRecord can be null if the session is system's.
|
||||
private void deselectRouteOnHandler(long requestId, @Nullable RouterRecord routerRecord,
|
||||
private void deselectRouteOnHandler(long uniqueRequestId,
|
||||
@Nullable RouterRecord routerRecord,
|
||||
@NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) {
|
||||
if (!checkArgumentsForSessionControl(routerRecord, uniqueSessionId, route,
|
||||
"deselecting")) {
|
||||
@@ -1281,12 +1284,13 @@ class MediaRouter2ServiceImpl {
|
||||
return;
|
||||
}
|
||||
|
||||
provider.deselectRoute(requestId, getOriginalId(uniqueSessionId),
|
||||
provider.deselectRoute(uniqueRequestId, getOriginalId(uniqueSessionId),
|
||||
route.getOriginalId());
|
||||
}
|
||||
|
||||
// routerRecord can be null if the session is system's.
|
||||
private void transferToRouteOnHandler(long requestId, @Nullable RouterRecord routerRecord,
|
||||
private void transferToRouteOnHandler(long uniqueRequestId,
|
||||
@Nullable RouterRecord routerRecord,
|
||||
@NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) {
|
||||
if (!checkArgumentsForSessionControl(routerRecord, uniqueSessionId, route,
|
||||
"transferring to")) {
|
||||
@@ -1299,7 +1303,7 @@ class MediaRouter2ServiceImpl {
|
||||
if (provider == null) {
|
||||
return;
|
||||
}
|
||||
provider.transferToRoute(requestId, getOriginalId(uniqueSessionId),
|
||||
provider.transferToRoute(uniqueRequestId, getOriginalId(uniqueSessionId),
|
||||
route.getOriginalId());
|
||||
}
|
||||
|
||||
@@ -1342,25 +1346,25 @@ class MediaRouter2ServiceImpl {
|
||||
return true;
|
||||
}
|
||||
|
||||
private void setRouteVolumeOnHandler(long requestId, @NonNull MediaRoute2Info route,
|
||||
private void setRouteVolumeOnHandler(long uniqueRequestId, @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);
|
||||
provider.setRouteVolume(uniqueRequestId, route.getOriginalId(), volume);
|
||||
}
|
||||
|
||||
private void setSessionVolumeOnHandler(long requestId, @NonNull String uniqueSessionId,
|
||||
int volume) {
|
||||
private void setSessionVolumeOnHandler(long uniqueRequestId,
|
||||
@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);
|
||||
provider.setSessionVolume(uniqueRequestId, getOriginalId(uniqueSessionId), volume);
|
||||
}
|
||||
|
||||
private void releaseSessionOnHandler(long uniqueRequestId,
|
||||
@@ -1398,10 +1402,10 @@ class MediaRouter2ServiceImpl {
|
||||
}
|
||||
|
||||
private void onSessionCreatedOnHandler(@NonNull MediaRoute2Provider provider,
|
||||
long requestId, @NonNull RoutingSessionInfo sessionInfo) {
|
||||
long uniqueRequestId, @NonNull RoutingSessionInfo sessionInfo) {
|
||||
notifySessionCreatedToManagers(getManagers(), sessionInfo);
|
||||
|
||||
if (requestId == REQUEST_ID_NONE) {
|
||||
if (uniqueRequestId == REQUEST_ID_NONE) {
|
||||
// The session is created without any matching request.
|
||||
return;
|
||||
}
|
||||
@@ -1409,7 +1413,7 @@ class MediaRouter2ServiceImpl {
|
||||
SessionCreationRequest matchingRequest = null;
|
||||
|
||||
for (SessionCreationRequest request : mSessionCreationRequests) {
|
||||
if (request.mRequestId == requestId
|
||||
if (request.mUniqueRequestId == uniqueRequestId
|
||||
&& TextUtils.equals(
|
||||
request.mRoute.getProviderId(), provider.getUniqueId())) {
|
||||
matchingRequest = request;
|
||||
@@ -1419,7 +1423,7 @@ class MediaRouter2ServiceImpl {
|
||||
|
||||
if (matchingRequest == null) {
|
||||
Slog.w(TAG, "Ignoring session creation result for unknown request. "
|
||||
+ "requestId=" + requestId + ", sessionInfo=" + sessionInfo);
|
||||
+ "uniqueRequestId=" + uniqueRequestId + ", sessionInfo=" + sessionInfo);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1428,7 +1432,7 @@ class MediaRouter2ServiceImpl {
|
||||
if (sessionInfo == null) {
|
||||
// Failed
|
||||
notifySessionCreationFailedToRouter(matchingRequest.mRouterRecord,
|
||||
toOriginalRequestId(requestId));
|
||||
toOriginalRequestId(uniqueRequestId));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1438,15 +1442,15 @@ class MediaRouter2ServiceImpl {
|
||||
if (!sessionInfo.getSelectedRoutes().contains(originalRouteId)) {
|
||||
Slog.w(TAG, "Created session doesn't match the original request."
|
||||
+ " originalRouteId=" + originalRouteId
|
||||
+ ", requestId=" + requestId + ", sessionInfo=" + sessionInfo);
|
||||
+ ", uniqueRequestId=" + uniqueRequestId + ", sessionInfo=" + sessionInfo);
|
||||
notifySessionCreationFailedToRouter(matchingRequest.mRouterRecord,
|
||||
toOriginalRequestId(requestId));
|
||||
toOriginalRequestId(uniqueRequestId));
|
||||
return;
|
||||
}
|
||||
|
||||
// Succeeded
|
||||
notifySessionCreatedToRouter(matchingRequest.mRouterRecord,
|
||||
toOriginalRequestId(requestId), sessionInfo);
|
||||
toOriginalRequestId(uniqueRequestId), sessionInfo);
|
||||
mSessionToRouterMap.put(sessionInfo.getId(), routerRecord);
|
||||
}
|
||||
|
||||
@@ -1487,16 +1491,16 @@ class MediaRouter2ServiceImpl {
|
||||
}
|
||||
|
||||
private void onRequestFailedOnHandler(@NonNull MediaRoute2Provider provider,
|
||||
long requestId, int reason) {
|
||||
if (handleSessionCreationRequestFailed(provider, requestId, reason)) {
|
||||
long uniqueRequestId, int reason) {
|
||||
if (handleSessionCreationRequestFailed(provider, uniqueRequestId, reason)) {
|
||||
return;
|
||||
}
|
||||
|
||||
final int requesterId = toRequesterId(requestId);
|
||||
final int requesterId = toRequesterId(uniqueRequestId);
|
||||
for (ManagerRecord manager : getManagerRecords()) {
|
||||
if (manager.mManagerId == requesterId) {
|
||||
notifyRequestFailedToManager(
|
||||
manager.mManager, toOriginalRequestId(requestId), reason);
|
||||
manager.mManager, toOriginalRequestId(uniqueRequestId), reason);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -1505,16 +1509,17 @@ class MediaRouter2ServiceImpl {
|
||||
// TODO: Notify router too when the related callback is introduced.
|
||||
}
|
||||
|
||||
// TODO: Find a way to prevent providers from notifying error on random requestId.
|
||||
// TODO: Find a way to prevent providers from notifying error on random uniqueRequestId.
|
||||
// Solutions can be:
|
||||
// 1) Record the other type of requests too (not only session creation request)
|
||||
// 2) Throw exception on providers when they try to notify error on random requestId.
|
||||
// 2) Throw exception on providers when they try to notify error on
|
||||
// random uniqueRequestId.
|
||||
private boolean handleSessionCreationRequestFailed(@NonNull MediaRoute2Provider provider,
|
||||
long requestId, int reason) {
|
||||
long uniqueRequestId, int reason) {
|
||||
// Check whether the failure is about creating a session
|
||||
SessionCreationRequest matchingRequest = null;
|
||||
for (SessionCreationRequest request : mSessionCreationRequests) {
|
||||
if (request.mRequestId == requestId && TextUtils.equals(
|
||||
if (request.mUniqueRequestId == uniqueRequestId && TextUtils.equals(
|
||||
request.mRoute.getProviderId(), provider.getUniqueId())) {
|
||||
matchingRequest = request;
|
||||
break;
|
||||
@@ -1532,10 +1537,10 @@ class MediaRouter2ServiceImpl {
|
||||
// The call should be made by either MediaRouter2 or MediaRouter2Manager.
|
||||
if (matchingRequest.mRequestedManagerRecord == null) {
|
||||
notifySessionCreationFailedToRouter(
|
||||
matchingRequest.mRouterRecord, toOriginalRequestId(requestId));
|
||||
matchingRequest.mRouterRecord, toOriginalRequestId(uniqueRequestId));
|
||||
} else {
|
||||
notifyRequestFailedToManager(matchingRequest.mRequestedManagerRecord.mManager,
|
||||
toOriginalRequestId(requestId), reason);
|
||||
toOriginalRequestId(uniqueRequestId), reason);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -1811,16 +1816,16 @@ class MediaRouter2ServiceImpl {
|
||||
|
||||
final class SessionCreationRequest {
|
||||
public final RouterRecord mRouterRecord;
|
||||
public final long mRequestId;
|
||||
public final long mUniqueRequestId;
|
||||
public final MediaRoute2Info mRoute;
|
||||
public final ManagerRecord mRequestedManagerRecord;
|
||||
|
||||
// requestedManagerRecord is not null only when the request is made by manager.
|
||||
SessionCreationRequest(@NonNull RouterRecord routerRecord, long requestId,
|
||||
SessionCreationRequest(@NonNull RouterRecord routerRecord, long uniqueRequestId,
|
||||
@NonNull MediaRoute2Info route,
|
||||
@Nullable ManagerRecord requestedManagerRecord) {
|
||||
mRouterRecord = routerRecord;
|
||||
mRequestId = requestId;
|
||||
mUniqueRequestId = uniqueRequestId;
|
||||
mRoute = route;
|
||||
mRequestedManagerRecord = requestedManagerRecord;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user