diff options
| author | 2021-03-16 12:33:25 +0900 | |
|---|---|---|
| committer | 2021-03-16 15:28:20 +0900 | |
| commit | 1a8a029f6825e42f4c1e7783c3bc0b0975a1951c (patch) | |
| tree | 59bd58cfe3314fec5246aa5bf56c7b824aed9679 | |
| parent | 235fae7fdbd5c02fc5a1b52a59a7d28b42ce6cc5 (diff) | |
System MR2: Fix bug on onTransfer and on getting initial routes
System MR2 should be able to get the routes right after creation,
if the app's router has already set the preference.
Bug: 181122201
Test: Test passed on transferTo.
Change-Id: I671d17b33ee43a939a02aee130333aef801d5789
| -rw-r--r-- | media/java/android/media/MediaRouter2.java | 5 | ||||
| -rw-r--r-- | media/java/android/media/MediaRouter2Manager.java | 14 |
2 files changed, 18 insertions, 1 deletions
diff --git a/media/java/android/media/MediaRouter2.java b/media/java/android/media/MediaRouter2.java index 5f44b62da6f7..9566e1c7aa01 100644 --- a/media/java/android/media/MediaRouter2.java +++ b/media/java/android/media/MediaRouter2.java @@ -260,6 +260,9 @@ public final class MediaRouter2 { mManagerCallback = new ManagerCallback(); mHandler = new Handler(Looper.getMainLooper()); mSystemController = new SystemRoutingController(sManager.getSystemRoutingSession()); + mDiscoveryPreference = new RouteDiscoveryPreference.Builder( + sManager.getPreferredFeatures(clientPackageName), true).build(); + updateAllRoutesFromManager(); mMediaRouterService = null; // TODO: Make this non-null and check permission. // Only used by non-system MediaRouter2. @@ -1946,7 +1949,7 @@ public final class MediaRouter2 { } RoutingController newController; - if (oldSession.isSystemSession()) { + if (newSession.isSystemSession()) { mSystemController.setRoutingSessionInfo(newSession); newController = mSystemController; } else { diff --git a/media/java/android/media/MediaRouter2Manager.java b/media/java/android/media/MediaRouter2Manager.java index 20e3573cfbe4..6fefbe15abae 100644 --- a/media/java/android/media/MediaRouter2Manager.java +++ b/media/java/android/media/MediaRouter2Manager.java @@ -237,6 +237,20 @@ public final class MediaRouter2Manager { } /** + * Returns the preferred features of the specified package name. + */ + @NonNull + public List<String> getPreferredFeatures(@NonNull String packageName) { + Objects.requireNonNull(packageName, "packageName must not be null"); + + List<String> preferredFeatures = mPreferredFeaturesMap.get(packageName); + if (preferredFeatures == null) { + preferredFeatures = Collections.emptyList(); + } + return preferredFeatures; + } + + /** * Returns a list of routes which are related to the given package name in the given route list. */ @NonNull |