Fix isSystemRoute() returning true for mr.addUserRoute(userRoute)

Bug: 311643037
Test: Using the sample app
Change-Id: Iccee240f3395a76af8c85948303df2621f77f1c4
diff --git a/mediarouter/mediarouter/src/androidTest/java/androidx/mediarouter/media/MediaRouter2Test.java b/mediarouter/mediarouter/src/androidTest/java/androidx/mediarouter/media/MediaRouter2Test.java
index 6601791..ba339c6 100644
--- a/mediarouter/mediarouter/src/androidTest/java/androidx/mediarouter/media/MediaRouter2Test.java
+++ b/mediarouter/mediarouter/src/androidTest/java/androidx/mediarouter/media/MediaRouter2Test.java
@@ -19,6 +19,7 @@
 import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
@@ -198,6 +199,51 @@
         assertTrue(onRouteEnabledLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
     }
 
+    @Test
+    @MediumTest
+    public void addUserRouteFromMr1_isSystemRoute_returnsFalse() throws Exception {
+        getInstrumentation()
+                .runOnMainSync(
+                        () -> {
+                            android.media.MediaRouter mediaRouter1 =
+                                    (android.media.MediaRouter)
+                                            mContext.getSystemService(Context.MEDIA_ROUTER_SERVICE);
+
+                            android.media.MediaRouter.RouteCategory sampleRouteCategory =
+                                    mediaRouter1.createRouteCategory(
+                                            "SAMPLE_ROUTE_CATEGORY", /* isGroupable= */ false);
+
+                            android.media.MediaRouter.UserRouteInfo sampleUserRoute =
+                                    mediaRouter1.createUserRoute(sampleRouteCategory);
+                            sampleUserRoute.setName("SAMPLE_USER_ROUTE");
+
+                            mediaRouter1.addUserRoute(sampleUserRoute);
+
+                            for (RouteInfo routeInfo : mRouter.getRoutes()) {
+                                // We are checking for this route using getRoutes rather than
+                                // through the onRouteAdded callback because of b/312700919
+                                if (routeInfo.getName().equals("SAMPLE_USER_ROUTE")) {
+                                    assertFalse(routeInfo.isSystemRoute());
+                                }
+                            }
+                        });
+
+    }
+
+    @Test
+    @MediumTest
+    public void defaultAndBluetoothRoutes_isSystemRoute_returnsTrue() {
+        getInstrumentation()
+                .runOnMainSync(
+                        () -> {
+                            for (RouteInfo routeInfo : mRouter.getRoutes()) {
+                                if (routeInfo.isDefaultOrBluetooth()) {
+                                    assertTrue(routeInfo.isSystemRoute());
+                                }
+                            }
+                        });
+    }
+
     @SmallTest
     @Test
     public void setRouteVolume_onStaticNonGroupRoute() {
diff --git a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/SystemMediaRouteProvider.java b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/SystemMediaRouteProvider.java
index 2d3bdfb..7cf8cff 100644
--- a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/SystemMediaRouteProvider.java
+++ b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/SystemMediaRouteProvider.java
@@ -516,7 +516,7 @@
             builder.setVolume(record.mRoute.getVolume());
             builder.setVolumeMax(record.mRoute.getVolumeMax());
             builder.setVolumeHandling(record.mRoute.getVolumeHandling());
-            builder.setIsSystemRoute(true);
+            builder.setIsSystemRoute((supportedTypes & ROUTE_TYPE_USER) == 0);
 
             if (!record.mRoute.isEnabled()) {
                 builder.setEnabled(false);