From 1f066685c0044bfaf34c120547bcfc2072c26a02 Mon Sep 17 00:00:00 2001 From: Hyundo Moon Date: Mon, 13 Apr 2020 04:04:15 +0900 Subject: [PATCH] Allow MediaRouter2Manager releasing the session created w/o request When a RoutingSessionInfo is created without MediaRouter2(Manager)'s request (i.e. created with REQUEST_ID_NONE by provider), the MediaRouter2Manager cannot release the session. This CL makes the manager be able to release those sessions. Bug: 153832566 Test: Using platform-dev Support7Demos, 1) Select any sample route (Variable volume~) 2) Using SampleOutputSwitcher, select phone 3) The sample route's screen disappears => Without this CL, the screen doesn't go away. Change-Id: Ibf61ba52012c2785d2807288dcb338266156efd9 --- .../android/server/media/MediaRouter2ServiceImpl.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java index ed9caab13c889..0d899974cf93e 100644 --- a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java +++ b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java @@ -925,9 +925,6 @@ class MediaRouter2ServiceImpl { RouterRecord routerRecord = managerRecord.mUserRecord.mHandler .findRouterforSessionLocked(uniqueSessionId); - if (routerRecord == null) { - return; - } long uniqueRequestId = toUniqueRequestId(managerRecord.mManagerId, requestId); managerRecord.mUserRecord.mHandler.sendMessage( @@ -1405,11 +1402,11 @@ class MediaRouter2ServiceImpl { } private void releaseSessionOnHandler(long uniqueRequestId, - @NonNull RouterRecord routerRecord, @NonNull String uniqueSessionId) { + @Nullable RouterRecord routerRecord, @NonNull String uniqueSessionId) { final RouterRecord matchingRecord = mSessionToRouterMap.get(uniqueSessionId); if (matchingRecord != routerRecord) { - Slog.w(TAG, "Ignoring releasing session from non-matching router." - + " packageName=" + routerRecord.mPackageName + Slog.w(TAG, "Ignoring releasing session from non-matching router. packageName=" + + (routerRecord == null ? null : routerRecord.mPackageName) + " uniqueSessionId=" + uniqueSessionId); return; }