Loading services/core/java/com/android/server/media/MediaRoute2Provider.java +15 −13 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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() { Loading Loading @@ -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; Loading @@ -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); } } } services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java +12 −11 Original line number Diff line number Diff line Loading @@ -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(); } } Loading Loading @@ -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; Loading services/core/java/com/android/server/media/SystemMediaRoute2Provider.java +26 −23 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -192,7 +192,7 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { mPendingSessionCreationOrTransferRequest = new SessionCreationOrTransferRequest( requestId, routeId, routeOriginalId, RoutingSessionInfo.TRANSFER_REASON_FALLBACK, transferInitiatorUserHandle, transferInitiatorPackageName); Loading @@ -204,7 +204,7 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { transferInitiatorUserHandle, transferInitiatorPackageName, SYSTEM_SESSION_ID, routeId, routeOriginalId, transferReason); } Loading Loading @@ -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; Loading @@ -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 Loading @@ -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() Loading @@ -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. } Loading Loading @@ -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); Loading @@ -520,7 +521,8 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { Slog.w( TAG, "Session creation failed to route " + mPendingSessionCreationOrTransferRequest.mTargetRouteId); + mPendingSessionCreationOrTransferRequest .mTargetOriginalRouteId); } mPendingSessionCreationOrTransferRequest = null; mCallback.onRequestFailed( Loading @@ -529,7 +531,7 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { Slog.w( TAG, "Session creation waiting state to route " + mPendingSessionCreationOrTransferRequest.mTargetRouteId); + mPendingSessionCreationOrTransferRequest.mTargetOriginalRouteId); } } } Loading @@ -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; } } Loading Loading
services/core/java/com/android/server/media/MediaRoute2Provider.java +15 −13 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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() { Loading Loading @@ -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; Loading @@ -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); } } }
services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java +12 −11 Original line number Diff line number Diff line Loading @@ -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(); } } Loading Loading @@ -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; Loading
services/core/java/com/android/server/media/SystemMediaRoute2Provider.java +26 −23 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -192,7 +192,7 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { mPendingSessionCreationOrTransferRequest = new SessionCreationOrTransferRequest( requestId, routeId, routeOriginalId, RoutingSessionInfo.TRANSFER_REASON_FALLBACK, transferInitiatorUserHandle, transferInitiatorPackageName); Loading @@ -204,7 +204,7 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { transferInitiatorUserHandle, transferInitiatorPackageName, SYSTEM_SESSION_ID, routeId, routeOriginalId, transferReason); } Loading Loading @@ -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; Loading @@ -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 Loading @@ -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() Loading @@ -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. } Loading Loading @@ -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); Loading @@ -520,7 +521,8 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { Slog.w( TAG, "Session creation failed to route " + mPendingSessionCreationOrTransferRequest.mTargetRouteId); + mPendingSessionCreationOrTransferRequest .mTargetOriginalRouteId); } mPendingSessionCreationOrTransferRequest = null; mCallback.onRequestFailed( Loading @@ -529,7 +531,7 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { Slog.w( TAG, "Session creation waiting state to route " + mPendingSessionCreationOrTransferRequest.mTargetRouteId); + mPendingSessionCreationOrTransferRequest.mTargetOriginalRouteId); } } } Loading @@ -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; } } Loading