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