Add android.jar for Android R (beta revision 2)

Content of README.google:

Name: Android system library jar
URL: https://developer.android.com/studio/index.html
Version: API version S (preview revision 2)
Revision: NA
License: Apache License Version 2.0

Description:
This is the android.jar pulled using the android sdk manager.

Bug: 181356260
Change-Id: I78607540a153aad5709ae6ade065c837b82b1578
diff --git a/build.gradle b/build.gradle
index 2e908a5..30c839c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -307,6 +307,7 @@
                 "android_jar/lib-v28",
                 "android_jar/lib-v29",
                 "android_jar/lib-v30",
+                "android_jar/lib-v31",
                 "core-lambda-stubs",
                 "dart-sdk",
                 "ddmlib",
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/BackportedMethodRewriter.java b/src/main/java/com/android/tools/r8/ir/desugar/BackportedMethodRewriter.java
index 2fc5c3a..5d5a292 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/BackportedMethodRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/BackportedMethodRewriter.java
@@ -983,6 +983,17 @@
           new MethodGenerator(
               method, BackportedMethods::CollectionsMethods_copyOfSet, "copyOfSet"));
 
+      // Map
+      type = factory.mapType;
+
+      // Map Map.copyOf(Map)
+      name = factory.createString("copyOf");
+      proto = factory.createProto(factory.mapType, factory.mapType);
+      method = factory.createMethod(type, proto, name);
+      addProvider(
+          new MethodGenerator(
+              method, BackportedMethods::CollectionsMethods_copyOfMap, "copyOfMap"));
+
       // Byte
       type = factory.boxedByteType;
 
@@ -1120,17 +1131,6 @@
       addProvider(
           new MethodGenerator(
               method, BackportedMethods::CollectionsMethods_copyOfList, "copyOfList"));
-
-      // Map
-      type = factory.mapType;
-
-      // Map Map.copyOf(Map)
-      name = factory.createString("copyOf");
-      proto = factory.createProto(factory.mapType, factory.mapType);
-      method = factory.createMethod(type, proto, name);
-      addProvider(
-          new MethodGenerator(
-              method, BackportedMethods::CollectionsMethods_copyOfMap, "copyOfMap"));
     }
 
     private void initializeJava11MethodProviders(DexItemFactory factory) {
diff --git a/src/main/java/com/android/tools/r8/utils/AndroidApiLevel.java b/src/main/java/com/android/tools/r8/utils/AndroidApiLevel.java
index 7181e84..523552a 100644
--- a/src/main/java/com/android/tools/r8/utils/AndroidApiLevel.java
+++ b/src/main/java/com/android/tools/r8/utils/AndroidApiLevel.java
@@ -42,7 +42,7 @@
   R(30),
   S(31);
 
-  public static final AndroidApiLevel LATEST = R;
+  public static final AndroidApiLevel LATEST = S;
 
   public static final int magicApiLevelUsedByAndroidPlatformBuild = 10000;
 
@@ -150,6 +150,8 @@
         return P;
       case 29:
         return Q;
+      case 30:
+        return R;
       default:
         return LATEST;
     }
diff --git a/src/main/java/com/android/tools/r8/utils/DexVersion.java b/src/main/java/com/android/tools/r8/utils/DexVersion.java
index e9557fa..f06f3d7 100644
--- a/src/main/java/com/android/tools/r8/utils/DexVersion.java
+++ b/src/main/java/com/android/tools/r8/utils/DexVersion.java
@@ -38,6 +38,7 @@
 
   public static DexVersion getDexVersion(AndroidApiLevel androidApiLevel) {
     switch (androidApiLevel) {
+      case S:
       case R:
       case Q:
       case P:
diff --git a/src/test/java/com/android/tools/r8/ToolHelper.java b/src/test/java/com/android/tools/r8/ToolHelper.java
index 18037be..e9a47e3 100644
--- a/src/test/java/com/android/tools/r8/ToolHelper.java
+++ b/src/test/java/com/android/tools/r8/ToolHelper.java
@@ -825,8 +825,6 @@
       case J_MR1:
       case J_MR2:
       case K_WATCH:
-        // TODO(b/1813562600): Add android jar for S.
-      case S:
         return false;
       default:
         return true;
diff --git a/src/test/java/com/android/tools/r8/testing/ToolHelperTest.java b/src/test/java/com/android/tools/r8/testing/ToolHelperTest.java
index 5492f54..b0e1ab2 100644
--- a/src/test/java/com/android/tools/r8/testing/ToolHelperTest.java
+++ b/src/test/java/com/android/tools/r8/testing/ToolHelperTest.java
@@ -30,9 +30,7 @@
         ToolHelper.getFirstSupportedAndroidJar(AndroidApiLevel.K_WATCH), AndroidApiLevel.L);
     // All android.jar's for API level L are present.
     for (AndroidApiLevel androidApiLevel : AndroidApiLevel.values()) {
-      // TODO(b/181356260): Add AndroidJar for S.
-      if (androidApiLevel.isGreaterThanOrEqualTo(AndroidApiLevel.L)
-          && androidApiLevel.isLessThan(AndroidApiLevel.S)) {
+      if (androidApiLevel.isGreaterThanOrEqualTo(AndroidApiLevel.L)) {
         checkExpectedAndroidJar(
             ToolHelper.getFirstSupportedAndroidJar(androidApiLevel), androidApiLevel);
       }
diff --git a/third_party/android_jar/lib-v31.tar.gz.sha1 b/third_party/android_jar/lib-v31.tar.gz.sha1
new file mode 100644
index 0000000..20eb896
--- /dev/null
+++ b/third_party/android_jar/lib-v31.tar.gz.sha1
@@ -0,0 +1 @@
+758bc25bf1aa97fab86205b0dd5db396f9b129cd
\ No newline at end of file