Merge "System MR2: Fix bug on onTransfer and on getting initial routes" into sc-dev
diff --git a/media/java/android/media/MediaRouter2.java b/media/java/android/media/MediaRouter2.java
index 5f44b62..9566e1c 100644
--- a/media/java/android/media/MediaRouter2.java
+++ b/media/java/android/media/MediaRouter2.java
@@ -260,6 +260,9 @@
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 @@
}
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 20e3573..6fefbe1 100644
--- a/media/java/android/media/MediaRouter2Manager.java
+++ b/media/java/android/media/MediaRouter2Manager.java
@@ -237,6 +237,20 @@
}
/**
+ * 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