summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/media/MediaRoute2Provider.java28
-rw-r--r--services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java23
-rw-r--r--services/core/java/com/android/server/media/SystemMediaRoute2Provider.java49
3 files changed, 53 insertions, 47 deletions
diff --git a/services/core/java/com/android/server/media/MediaRoute2Provider.java b/services/core/java/com/android/server/media/MediaRoute2Provider.java
index 363684f618cc..09605fefe80e 100644
--- a/services/core/java/com/android/server/media/MediaRoute2Provider.java
+++ b/services/core/java/com/android/server/media/MediaRoute2Provider.java
@@ -59,7 +59,7 @@ abstract class MediaRoute2Provider {
public abstract void requestCreateSession(
long requestId,
String packageName,
- String routeId,
+ String routeOriginalId,
@Nullable Bundle sessionHints,
@RoutingSessionInfo.TransferReason int transferReason,
@NonNull UserHandle transferInitiatorUserHandle,
@@ -77,13 +77,15 @@ abstract class MediaRoute2Provider {
long requestId,
@NonNull UserHandle transferInitiatorUserHandle,
@NonNull String transferInitiatorPackageName,
- String sessionId,
- String routeId,
+ String sessionOriginalId,
+ String routeOriginalId,
@RoutingSessionInfo.TransferReason int transferReason);
- public abstract void setRouteVolume(long requestId, String routeId, int volume);
- public abstract void setSessionVolume(long requestId, String sessionId, int volume);
- public abstract void prepareReleaseSession(@NonNull String sessionId);
+ public abstract void setRouteVolume(long requestId, String routeOriginalId, int volume);
+
+ public abstract void setSessionVolume(long requestId, String sessionOriginalId, int volume);
+
+ public abstract void prepareReleaseSession(@NonNull String sessionUniqueId);
@NonNull
public String getUniqueId() {
@@ -197,8 +199,8 @@ abstract class MediaRoute2Provider {
*/
public final long mRequestId;
- /** The {@link MediaRoute2Info#getId() id} of the target route. */
- @NonNull public final String mTargetRouteId;
+ /** The {@link MediaRoute2Info#getOriginalId()} original id} of the target route. */
+ @NonNull public final String mTargetOriginalRouteId;
@RoutingSessionInfo.TransferReason public final int mTransferReason;
@@ -209,23 +211,23 @@ abstract class MediaRoute2Provider {
SessionCreationOrTransferRequest(
long requestId,
- @NonNull String routeId,
+ @NonNull String targetOriginalRouteId,
@RoutingSessionInfo.TransferReason int transferReason,
@NonNull UserHandle transferInitiatorUserHandle,
@NonNull String transferInitiatorPackageName) {
mRequestId = requestId;
- mTargetRouteId = routeId;
+ mTargetOriginalRouteId = targetOriginalRouteId;
mTransferReason = transferReason;
mTransferInitiatorUserHandle = transferInitiatorUserHandle;
mTransferInitiatorPackageName = transferInitiatorPackageName;
}
public boolean isTargetRoute(@Nullable MediaRoute2Info route2Info) {
- return route2Info != null && mTargetRouteId.equals(route2Info.getId());
+ return route2Info != null && mTargetOriginalRouteId.equals(route2Info.getOriginalId());
}
- public boolean isTargetRouteIdInList(@NonNull List<String> routesList) {
- return routesList.stream().anyMatch(mTargetRouteId::equals);
+ public boolean isTargetRouteIdInList(@NonNull List<String> routeOriginalIdList) {
+ return routeOriginalIdList.stream().anyMatch(mTargetOriginalRouteId::equals);
}
}
}
diff --git a/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java b/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java
index 386657e99e36..71cbcb91100f 100644
--- a/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java
+++ b/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java
@@ -103,13 +103,14 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider
public void requestCreateSession(
long requestId,
String packageName,
- String routeId,
+ String routeOriginalId,
Bundle sessionHints,
@RoutingSessionInfo.TransferReason int transferReason,
@NonNull UserHandle transferInitiatorUserHandle,
@NonNull String transferInitiatorPackageName) {
if (mConnectionReady) {
- mActiveConnection.requestCreateSession(requestId, packageName, routeId, sessionHints);
+ mActiveConnection.requestCreateSession(
+ requestId, packageName, routeOriginalId, sessionHints);
updateBinding();
}
}
@@ -153,35 +154,35 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider
long requestId,
@NonNull UserHandle transferInitiatorUserHandle,
@NonNull String transferInitiatorPackageName,
- String sessionId,
- String routeId,
+ String sessionOriginalId,
+ String routeOriginalId,
@RoutingSessionInfo.TransferReason int transferReason) {
if (mConnectionReady) {
- mActiveConnection.transferToRoute(requestId, sessionId, routeId);
+ mActiveConnection.transferToRoute(requestId, sessionOriginalId, routeOriginalId);
}
}
@Override
- public void setRouteVolume(long requestId, String routeId, int volume) {
+ public void setRouteVolume(long requestId, String routeOriginalId, int volume) {
if (mConnectionReady) {
- mActiveConnection.setRouteVolume(requestId, routeId, volume);
+ mActiveConnection.setRouteVolume(requestId, routeOriginalId, volume);
updateBinding();
}
}
@Override
- public void setSessionVolume(long requestId, String sessionId, int volume) {
+ public void setSessionVolume(long requestId, String sessionOriginalId, int volume) {
if (mConnectionReady) {
- mActiveConnection.setSessionVolume(requestId, sessionId, volume);
+ mActiveConnection.setSessionVolume(requestId, sessionOriginalId, volume);
updateBinding();
}
}
@Override
- public void prepareReleaseSession(@NonNull String sessionId) {
+ public void prepareReleaseSession(@NonNull String sessionUniqueId) {
synchronized (mLock) {
for (RoutingSessionInfo session : mSessionInfos) {
- if (TextUtils.equals(session.getId(), sessionId)) {
+ if (TextUtils.equals(session.getId(), sessionUniqueId)) {
mSessionInfos.remove(session);
mReleasingSessions.add(session);
break;
diff --git a/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java b/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java
index 76930a003e46..6b409ee6f482 100644
--- a/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java
+++ b/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java
@@ -158,20 +158,20 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider {
public void requestCreateSession(
long requestId,
String packageName,
- String routeId,
+ String routeOriginalId,
Bundle sessionHints,
@RoutingSessionInfo.TransferReason int transferReason,
@NonNull UserHandle transferInitiatorUserHandle,
@NonNull String transferInitiatorPackageName) {
// Assume a router without MODIFY_AUDIO_ROUTING permission can't request with
// a route ID different from the default route ID. The service should've filtered.
- if (TextUtils.equals(routeId, MediaRoute2Info.ROUTE_ID_DEFAULT)) {
+ if (TextUtils.equals(routeOriginalId, MediaRoute2Info.ROUTE_ID_DEFAULT)) {
mCallback.onSessionCreated(this, requestId, mDefaultSessionInfo);
return;
}
if (!Flags.enableBuiltInSpeakerRouteSuitabilityStatuses()) {
- if (TextUtils.equals(routeId, mSelectedRouteId)) {
+ if (TextUtils.equals(routeOriginalId, mSelectedRouteId)) {
RoutingSessionInfo currentSessionInfo;
synchronized (mLock) {
currentSessionInfo = mSessionInfos.get(0);
@@ -192,7 +192,7 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider {
mPendingSessionCreationOrTransferRequest =
new SessionCreationOrTransferRequest(
requestId,
- routeId,
+ routeOriginalId,
RoutingSessionInfo.TRANSFER_REASON_FALLBACK,
transferInitiatorUserHandle,
transferInitiatorPackageName);
@@ -204,7 +204,7 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider {
transferInitiatorUserHandle,
transferInitiatorPackageName,
SYSTEM_SESSION_ID,
- routeId,
+ routeOriginalId,
transferReason);
}
@@ -234,15 +234,15 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider {
long requestId,
@NonNull UserHandle transferInitiatorUserHandle,
@NonNull String transferInitiatorPackageName,
- String sessionId,
- String routeId,
+ String sessionOriginalId,
+ String routeOriginalId,
@RoutingSessionInfo.TransferReason int transferReason) {
String selectedDeviceRouteId = mDeviceRouteController.getSelectedRoute().getId();
- if (TextUtils.equals(routeId, MediaRoute2Info.ROUTE_ID_DEFAULT)) {
+ if (TextUtils.equals(routeOriginalId, MediaRoute2Info.ROUTE_ID_DEFAULT)) {
if (Flags.enableBuiltInSpeakerRouteSuitabilityStatuses()) {
// Transfer to the default route (which is the selected route). We replace the id to
// be the selected route id so that the transfer reason gets updated.
- routeId = selectedDeviceRouteId;
+ routeOriginalId = selectedDeviceRouteId;
} else {
Log.w(TAG, "Ignoring transfer to " + MediaRoute2Info.ROUTE_ID_DEFAULT);
return;
@@ -254,18 +254,18 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider {
mPendingTransferRequest =
new SessionCreationOrTransferRequest(
requestId,
- routeId,
+ routeOriginalId,
transferReason,
transferInitiatorUserHandle,
transferInitiatorPackageName);
}
}
- String finalRouteId = routeId; // Make a final copy to use it in the lambda.
+ String finalRouteId = routeOriginalId; // Make a final copy to use it in the lambda.
boolean isAvailableDeviceRoute =
mDeviceRouteController.getAvailableRoutes().stream()
.anyMatch(it -> it.getId().equals(finalRouteId));
- boolean isSelectedDeviceRoute = TextUtils.equals(routeId, selectedDeviceRouteId);
+ boolean isSelectedDeviceRoute = TextUtils.equals(routeOriginalId, selectedDeviceRouteId);
if (isSelectedDeviceRoute || isAvailableDeviceRoute) {
// The requested route is managed by the device route controller. Note that the selected
@@ -273,12 +273,12 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider {
// of the routing session). If the selected device route is transferred to, we need to
// make the bluetooth routes inactive so that the device route becomes the selected
// route of the routing session.
- mDeviceRouteController.transferTo(routeId);
+ mDeviceRouteController.transferTo(routeOriginalId);
mBluetoothRouteController.transferTo(null);
} else {
// The requested route is managed by the bluetooth route controller.
mDeviceRouteController.transferTo(null);
- mBluetoothRouteController.transferTo(routeId);
+ mBluetoothRouteController.transferTo(routeOriginalId);
}
if (Flags.enableBuiltInSpeakerRouteSuitabilityStatuses()
@@ -288,20 +288,20 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider {
}
@Override
- public void setRouteVolume(long requestId, String routeId, int volume) {
- if (!TextUtils.equals(routeId, mSelectedRouteId)) {
+ public void setRouteVolume(long requestId, String routeOriginalId, int volume) {
+ if (!TextUtils.equals(routeOriginalId, mSelectedRouteId)) {
return;
}
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, volume, 0);
}
@Override
- public void setSessionVolume(long requestId, String sessionId, int volume) {
+ public void setSessionVolume(long requestId, String sessionOriginalId, int volume) {
// Do nothing since we don't support grouping volume yet.
}
@Override
- public void prepareReleaseSession(String sessionId) {
+ public void prepareReleaseSession(String sessionUniqueId) {
// Do nothing since the system session persists.
}
@@ -503,12 +503,13 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider {
}
long pendingRequestId = mPendingSessionCreationOrTransferRequest.mRequestId;
- if (mPendingSessionCreationOrTransferRequest.mTargetRouteId.equals(mSelectedRouteId)) {
+ if (mPendingSessionCreationOrTransferRequest.mTargetOriginalRouteId.equals(
+ mSelectedRouteId)) {
if (DEBUG) {
Slog.w(
TAG,
"Session creation success to route "
- + mPendingSessionCreationOrTransferRequest.mTargetRouteId);
+ + mPendingSessionCreationOrTransferRequest.mTargetOriginalRouteId);
}
mPendingSessionCreationOrTransferRequest = null;
mCallback.onSessionCreated(this, pendingRequestId, newSessionInfo);
@@ -520,7 +521,8 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider {
Slog.w(
TAG,
"Session creation failed to route "
- + mPendingSessionCreationOrTransferRequest.mTargetRouteId);
+ + mPendingSessionCreationOrTransferRequest
+ .mTargetOriginalRouteId);
}
mPendingSessionCreationOrTransferRequest = null;
mCallback.onRequestFailed(
@@ -529,7 +531,7 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider {
Slog.w(
TAG,
"Session creation waiting state to route "
- + mPendingSessionCreationOrTransferRequest.mTargetRouteId);
+ + mPendingSessionCreationOrTransferRequest.mTargetOriginalRouteId);
}
}
}
@@ -541,7 +543,8 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider {
// See b/307723189 for context
for (MediaRoute2Info btRoute : mBluetoothRouteController.getAllBluetoothRoutes()) {
if (TextUtils.equals(
- btRoute.getId(), mPendingSessionCreationOrTransferRequest.mTargetRouteId)) {
+ btRoute.getId(),
+ mPendingSessionCreationOrTransferRequest.mTargetOriginalRouteId)) {
return true;
}
}