Merge "Add genrule to fetch latest public/system api.txt" am: 3b8a524d25 am: 4d0342cda8
am: 63d87f49c2

Change-Id: Ifb567b637f9b119b6df53ecf927fb26994fc98aa
diff --git a/28/public/api/android.txt b/28/public/api/android.txt
index 26e4298..d41372b 100644
--- a/28/public/api/android.txt
+++ b/28/public/api/android.txt
@@ -14187,13 +14187,11 @@
     ctor public Picture();
     ctor public Picture(android.graphics.Picture);
     method public android.graphics.Canvas beginRecording(int, int);
-    method public static deprecated android.graphics.Picture createFromStream(java.io.InputStream);
     method public void draw(android.graphics.Canvas);
     method public void endRecording();
     method public int getHeight();
     method public int getWidth();
     method public boolean requiresHardwareAcceleration();
-    method public deprecated void writeToStream(java.io.OutputStream);
   }
 
   public class PixelFormat {
diff --git a/current/definitions.mk b/current/definitions.mk
index b12c113..c71c0de 100644
--- a/current/definitions.mk
+++ b/current/definitions.mk
@@ -63,3 +63,4 @@
 # android-support-car.
 ANDROID_SUPPORT_CAR_TARGETS := \
     android-support-car
+
diff --git a/current/extras/constraint-layout-x/Android.bp b/current/extras/constraint-layout-x/Android.bp
new file mode 100644
index 0000000..315e6db
--- /dev/null
+++ b/current/extras/constraint-layout-x/Android.bp
@@ -0,0 +1,36 @@
+// Automatically generated with:
+// pom2bp -sdk-version current '-rewrite=^com.android.temp.support:design-widget$=androidx.design_design-widget' '-rewrite=^com.android.support:car$=android-support-car' '-rewrite=^com.android.support:viewpager$=android-support-viewpager' '-rewrite=^androidx.emoji:emoji-appcompat$=androidx.emoji_emoji-appcompat' '-rewrite=^com.android.support:cursoradapter$=android-support-cursoradapter' '-rewrite=^androidx.legacy:legacy-support-core-utils$=androidx.legacy_legacy-support-core-utils' '-rewrite=^androidx.browser:browser$=androidx.browser_browser' '-rewrite=^androidx.slidingpanelayout:slidingpanelayout$=androidx.slidingpanelayout_slidingpanelayout' '-rewrite=^androidx.mediarouter:mediarouter$=androidx.mediarouter_mediarouter' '-rewrite=^androidx.leanback:leanback-preference$=androidx.leanback_leanback-preference' '-rewrite=^com.android.support:support-compat$=android-support-compat' '-rewrite=^com.android.support:design-snackbar$=android-support-design-snackbar' '-rewrite=^com.android.temp.support:design-circularreveal$=androidx.design_design-circularreveal' '-rewrite=^android.arch.lifecycle:common$=android-arch-lifecycle-common' '-rewrite=^com.android.support:loader$=android-support-loader' '-rewrite=^androidx.room:room-migration$=androidx.room_room-migration' '-rewrite=^androidx.annotation:annotation$=androidx.annotation_annotation' '-rewrite=^com.android.support:design-typography$=android-support-design-typography' '-rewrite=^androidx.recyclerview:recyclerview$=androidx.recyclerview_recyclerview' '-rewrite=^com.android.temp.support:design-canvas$=androidx.design_design-canvas' '-rewrite=^com.android.support:recyclerview-v7$=android-support-v7-recyclerview' '-rewrite=^androidx.lifecycle:lifecycle-viewmodel$=androidx.lifecycle_lifecycle-viewmodel' '-rewrite=^com.android.support:design-bottomsheet$=android-support-design-bottomsheet' '-rewrite=^com.android.support:design-floatingactionbutton$=android-support-design-floatingactionbutton' '-rewrite=^androidx.sqlite:sqlite$=androidx.sqlite_sqlite' '-rewrite=^androidx.room:room-testing$=androidx.room_room-testing' '-rewrite=^com.android.support:support-vector-drawable$=android-support-vectordrawable' '-rewrite=^com.android.temp.support:design$=androidx.design_design' '-rewrite=^android.arch.persistence.room:migration$=android-arch-room-migration' '-rewrite=^android.arch.lifecycle:runtime$=android-arch-lifecycle-runtime' '-rewrite=^androidx.gridlayout:gridlayout$=androidx.gridlayout_gridlayout' '-rewrite=^com.android.support:recommendation$=android-support-recommendation' '-rewrite=^com.android.support:animated-vector-drawable$=android-support-animatedvectordrawable' '-rewrite=^com.android.temp.support:design-ripple$=androidx.design_design-ripple' '-rewrite=^android.arch.persistence.room:testing$=android-arch-room-testing' '-rewrite=^com.android.support:webkit$=android-support-webkit' '-rewrite=^com.android.support:customtabs$=android-support-customtabs' '-rewrite=^androidx.multidex:multidex-instrumentation$=androidx-multidex_multidex-instrumentation' '-rewrite=^com.android.support:design-expandable$=android-support-design-expandable' '-rewrite=^com.android.support:support-tv-provider$=android-support-tv-provider' '-rewrite=^com.android.support:design-ripple$=android-support-design-ripple' '-rewrite=^androidx.car:car$=androidx.car_car' '-rewrite=^com.android.temp.support:design-button$=androidx.design_design-button' '-rewrite=^com.android.support:design-circularreveal-cardview$=android-support-design-circularreveal-cardview' '-rewrite=^com.android.temp.support:design-dialog$=androidx.design_design-dialog' '-rewrite=^com.android.support:design-bottomappbar$=android-support-design-bottomappbar' '-rewrite=^com.android.support:design-button$=android-support-design-button' '-rewrite=^com.android.support:preference-v7$=android-support-v7-preference' '-rewrite=^androidx.paging:paging-common$=androidx.paging_paging-common' '-rewrite=^com.android.temp.support:design-circularreveal-cardview$=androidx.design_design-circularreveal-cardview' '-rewrite=^com.android.temp.support:design-animation$=androidx.design_design-animation' '-rewrite=^com.android.support:heifwriter$=android-support-heifwriter' '-rewrite=^com.android.support:design-color$=android-support-design-color' '-rewrite=^com.android.temp.support:design-shape$=androidx.design_design-shape' '-rewrite=^com.android.support:palette-v7$=android-support-v7-palette' '-rewrite=^androidx.recyclerview:recyclerview-selection$=androidx.recyclerview_recyclerview-selection' '-rewrite=^androidx.fragment:fragment$=androidx.fragment_fragment' '-rewrite=^androidx.webkit:webkit$=androidx.webkit_webkit' '-rewrite=^com.android.support:support-media-compat$=android-support-media-compat' '-rewrite=^android.arch.lifecycle:livedata$=android-arch-lifecycle-livedata' '-rewrite=^com.android.support:design-bottomnavigation$=android-support-design-bottomnavigation' '-rewrite=^androidx.print:print$=androidx.print_print' '-rewrite=^androidx.collection:collection$=androidx.collection_collection' '-rewrite=^com.android.temp.support:design-stateful$=androidx.design_design-stateful' '-rewrite=^com.android.support:support-v4$=android-support-v4' '-rewrite=^com.android.support.constraint:constraint-layout-solver$=android-support-constraint-layout-solver' '-rewrite=^com.android.support:appcompat-v7$=android-support-v7-appcompat' '-rewrite=^com.android.support:slidingpanelayout$=android-support-slidingpanelayout' '-rewrite=^com.google.android:flexbox$=flexbox' '-rewrite=^com.android.support:design-navigation$=android-support-design-navigation' '-rewrite=^androidx.asynclayoutinflater:asynclayoutinflater$=androidx.asynclayoutinflater_asynclayoutinflater' '-rewrite=^com.android.support:support-core-ui$=android-support-core-ui' '-rewrite=^com.android.support:design-textfield$=android-support-design-textfield' '-rewrite=^com.android.temp.support:design-typography$=androidx.design_design-typography' '-rewrite=^com.android.support:print$=android-support-print' '-rewrite=^androidx.vectordrawable:vectordrawable-animated$=androidx.vectordrawable_vectordrawable-animated' '-rewrite=^android.arch.core:runtime$=android-arch-core-runtime' '-rewrite=^com.google.android.material:material$=androidx.material_material' '-rewrite=^android.arch.lifecycle:livedata-core$=android-arch-lifecycle-livedata-core' '-rewrite=^com.android.temp.support:design-tabs$=androidx.design_design-tabs' '-rewrite=^com.android.support:support-fragment$=android-support-fragment' '-rewrite=^android.arch.lifecycle:extensions$=android-arch-lifecycle-extensions' '-rewrite=^android.arch.persistence:db-framework$=android-arch-persistence-db-framework' '-rewrite=^com.android.support:slices-builders$=android-slices-builders' '-rewrite=^androidx.preference:preference$=androidx.preference_preference' '-rewrite=^com.android.support:design-stateful$=android-support-design-stateful' '-rewrite=^androidx.legacy:legacy-support-core-ui$=androidx.legacy_legacy-support-core-ui' '-rewrite=^com.android.temp.support:design-math$=androidx.design_design-math' '-rewrite=^com.android.temp.support:design-snackbar$=androidx.design_design-snackbar' '-rewrite=^com.android.temp.support:design-transformation$=androidx.design_design-transformation' '-rewrite=^androidx.percentlayout:percentlayout$=androidx.percentlayout_percentlayout' '-rewrite=^com.android.temp.support:design-textfield$=androidx.design_design-textfield' '-rewrite=^androidx.emoji:emoji$=androidx.emoji_emoji' '-rewrite=^com.android.support:preference-v14$=android-support-v14-preference' '-rewrite=^com.android.support:preference-leanback-v17$=android-support-v17-preference-leanback' '-rewrite=^com.android.support:design$=android-support-design' '-rewrite=^androidx.dynamicanimation:dynamicanimation$=androidx.dynamicanimation_dynamicanimation' '-rewrite=^com.android.support:recyclerview-selection$=android-support-recyclerview-selection' '-rewrite=^android.arch.paging:common$=android-arch-paging-common' '-rewrite=^com.android.support:design-canvas$=android-support-design-canvas' '-rewrite=^com.android.support:leanback-v17$=android-support-v17-leanback' '-rewrite=^com.android.support:gridlayout-v7$=android-support-v7-gridlayout' '-rewrite=^com.android.support:multidex-instrumentation$=android-support-multidex-instrumentation' '-rewrite=^androidx.media:media$=androidx.media_media' '-rewrite=^android.arch.persistence.room:runtime$=android-arch-room-runtime' '-rewrite=^androidx.lifecycle:lifecycle-livedata$=androidx.lifecycle_lifecycle-livedata' '-rewrite=^com.android.support:design-shape$=android-support-design-shape' '-rewrite=^androidx.leanback:leanback$=androidx.leanback_leanback' '-rewrite=^com.android.support:design-tabs$=android-support-design-tabs' '-rewrite=^com.android.support:support-annotations$=android-support-annotations' '-rewrite=^android.arch.lifecycle:common-java8$=android-arch-lifecycle-common-java8' '-rewrite=^com.android.temp.support:design-chip$=androidx.design_design-chip' '-rewrite=^androidx.documentfile:documentfile$=androidx.documentfile_documentfile' '-rewrite=^com.android.support:coordinatorlayout$=android-support-coordinatorlayout' '-rewrite=^androidx.slice:slice-view$=androidx.slice_slice-view' '-rewrite=^com.android.support:swiperefreshlayout$=android-support-swiperefreshlayout' '-rewrite=^com.android.support:interpolator$=android-support-interpolator' '-rewrite=^com.android.support:collections$=android-support-collections' '-rewrite=^androidx.legacy:legacy-support-v13$=androidx.legacy_legacy-support-v13' '-rewrite=^com.android.support:asynclayoutinflater$=android-support-asynclayoutinflater' '-rewrite=^androidx.room:room-runtime$=androidx.room_room-runtime' '-rewrite=^androidx.recommendation:recommendation$=androidx.recommendation_recommendation' '-rewrite=^com.android.temp.support:design-drawable$=androidx.design_design-drawable' '-rewrite=^com.android.support:support-dynamic-animation$=android-support-dynamic-animation' '-rewrite=^com.android.temp.support:design-bottomappbar$=androidx.design_design-bottomappbar' '-rewrite=^com.android.support:drawerlayout$=android-support-drawerlayout' '-rewrite=^androidx.room:room-common$=androidx.room_room-common' '-rewrite=^com.android.support:localbroadcastmanager$=android-support-localbroadcastmanager' '-rewrite=^com.android.support:mediarouter-v7$=android-support-v7-mediarouter' '-rewrite=^com.android.support:support-v13$=android-support-v13' '-rewrite=^com.android.temp.support:design-theme$=androidx.design_design-theme' '-rewrite=^androidx.core:core$=androidx.core_core' '-rewrite=^com.android.support:design-circularreveal$=android-support-design-circularreveal' '-rewrite=^com.android.support:design-internal$=android-support-design-internal' '-rewrite=^com.android.temp.support:design-navigation$=androidx.design_design-navigation' '-rewrite=^androidx.transition:transition$=androidx.transition_transition' '-rewrite=^androidx.vectordrawable:vectordrawable$=androidx.vectordrawable_vectordrawable' '-rewrite=^androidx.contentpaging:contentpaging$=androidx.contentpaging_contentpaging' '-rewrite=^com.android.support:multidex$=android-support-multidex' '-rewrite=^com.android.support:design-dialog$=android-support-design-dialog' '-rewrite=^androidx.lifecycle:lifecycle-common$=androidx.lifecycle_lifecycle-common' '-rewrite=^androidx.slice:slice-core$=androidx.slice_slice-core' '-rewrite=^com.android.support:textclassifier$=android-support-textclassifier' '-rewrite=^com.android.support:design-resources$=android-support-design-resources' '-rewrite=^androidx.appcompat:appcompat$=androidx.appcompat_appcompat' '-rewrite=^androidx.palette:palette$=androidx.palette_palette' '-rewrite=^com.android.support:support-emoji-bundled$=android-support-emoji-bundled' '-rewrite=^com.android.support:percent$=android-support-percent' '-rewrite=^androidx.arch.core:core-common$=androidx.arch.core_core-common' '-rewrite=^com.android.support:design-animation$=android-support-design-animation' '-rewrite=^com.android.support:exifinterface$=android-support-exifinterface' '-rewrite=^com.android.support:wear$=android-support-wear' '-rewrite=^androidx.tvprovider:tvprovider$=androidx.tvprovider_tvprovider' '-rewrite=^androidx.viewpager:viewpager$=androidx.viewpager_viewpager' '-rewrite=^com.android.support:design-transformation$=android-support-design-transformation' '-rewrite=^com.android.support:design-card$=android-support-design-card' '-rewrite=^androidx.legacy:legacy-preference-v14$=androidx.legacy_legacy-preference-v14' '-rewrite=^androidx.lifecycle:lifecycle-extensions$=androidx.lifecycle_lifecycle-extensions' '-rewrite=^com.android.temp.support:design-floatingactionbutton$=androidx.design_design-floatingactionbutton' '-rewrite=^com.android.temp.support:design-internal$=androidx.design_design-internal' '-rewrite=^com.android.support:documentfile$=android-support-documentfile' '-rewrite=^android.arch.core:common$=android-arch-core-common' '-rewrite=^android.arch.persistence:db$=android-arch-persistence-db' '-rewrite=^androidx.interpolator:interpolator$=androidx.interpolator_interpolator' '-rewrite=^androidx.localbroadcastmanager:localbroadcastmanager$=androidx.localbroadcastmanager_localbroadcastmanager' '-rewrite=^com.android.support:support-emoji-appcompat$=android-support-emoji-appcompat' '-rewrite=^com.android.support:customview$=android-support-customview' '-rewrite=^com.android.support:support-core-utils$=android-support-core-utils' '-rewrite=^androidx.customview:customview$=androidx.customview_customview' '-rewrite=^androidx.lifecycle:lifecycle-livedata-core$=androidx.lifecycle_lifecycle-livedata-core' '-rewrite=^androidx.slice:slice-builders$=androidx.slice_slice-builders' '-rewrite=^com.android.temp.support:design-bottomnavigation$=androidx.design_design-bottomnavigation' '-rewrite=^com.android.support:slices-view$=android-slices-view' '-rewrite=^com.android.support:design-drawable$=android-support-design-drawable' '-rewrite=^androidx.textclassifier:textclassifier$=androidx.textclassifier_textclassifier' '-rewrite=^com.android.support:design-theme$=android-support-design-theme' '-rewrite=^androidx.cardview:cardview$=androidx.cardview_cardview' '-rewrite=^androidx.exifinterface:exifinterface$=androidx.exifinterface_exifinterface' '-rewrite=^androidx.paging:paging-runtime$=androidx.paging_paging-runtime' '-rewrite=^androidx.emoji:emoji-bundled$=androidx.emoji_emoji-bundled' '-rewrite=^androidx.arch.core:core-runtime$=androidx.arch.core_core-runtime' '-rewrite=^androidx.legacy:legacy-support-v4$=androidx.legacy_legacy-support-v4' '-rewrite=^com.android.temp.support:design-expandable$=androidx.design_design-expandable' '-rewrite=^com.android.support:contentpaging$=android-support-contentpaging' '-rewrite=^com.android.support:slices-core$=android-slices-core' '-rewrite=^com.android.support:cardview-v7$=android-support-v7-cardview' '-rewrite=^androidx.cursoradapter:cursoradapter$=androidx.cursoradapter_cursoradapter' '-rewrite=^androidx.constraintlayout:constraintlayout$=androidx-constraintlayout_constraintlayout' '-rewrite=^android.arch.persistence.room:common$=android-arch-room-common' '-rewrite=^com.android.temp.support:design-card$=androidx.design_design-card' '-rewrite=^androidx.multidex:multidex$=androidx-multidex_multidex' '-rewrite=^androidx.coordinatorlayout:coordinatorlayout$=androidx.coordinatorlayout_coordinatorlayout' '-rewrite=^androidx.heifwriter:heifwriter$=androidx.heifwriter_heifwriter' '-rewrite=^com.android.support:design-widget$=android-support-design-widget' '-rewrite=^com.android.temp.support:design-circularreveal-coordinatorlayout$=androidx.design_design-circularreveal-coordinatorlayout' '-rewrite=^com.android.support:design-circularreveal-coordinatorlayout$=android-support-design-circularreveal-coordinatorlayout' '-rewrite=^androidx.swiperefreshlayout:swiperefreshlayout$=androidx.swiperefreshlayout_swiperefreshlayout' '-rewrite=^android.arch.lifecycle:viewmodel$=android-arch-lifecycle-viewmodel' '-rewrite=^com.android.support:support-emoji$=android-support-emoji' '-rewrite=^androidx.sqlite:sqlite-framework$=androidx.sqlite_sqlite-framework' '-rewrite=^com.android.support:design-chip$=android-support-design-chip' '-rewrite=^com.android.temp.support:design-color$=androidx.design_design-color' '-rewrite=^com.android.support:transition$=android-support-transition' '-rewrite=^com.android.support:design-math$=android-support-design-math' '-rewrite=^android.arch.paging:runtime$=android-arch-paging-runtime' '-rewrite=^androidx.lifecycle:lifecycle-common-java8$=androidx.lifecycle_lifecycle-common-java8' '-rewrite=^com.android.temp.support:design-bottomsheet$=androidx.design_design-bottomsheet' '-rewrite=^androidx.drawerlayout:drawerlayout$=androidx.drawerlayout_drawerlayout' '-rewrite=^androidx.loader:loader$=androidx.loader_loader' '-rewrite=^androidx.constraintlayout:constraintlayout-solver$=androidx-constraintlayout_constraintlayout-solver' '-rewrite=^com.android.temp.support:design-resources$=androidx.design_design-resources' '-rewrite=^androidx.lifecycle:lifecycle-runtime$=androidx.lifecycle_lifecycle-runtime' '-rewrite=^com.android.support:support-content$=android-support-support-content' '-rewrite=^com.android.support.constraint:constraint-layout$=android-support-constraint-layout' '-rewrite=^androidx.wear:wear$=androidx.wear_wear' .
+
+android_library_import {
+    name: "androidx-constraintlayout_constraintlayout-nodeps",
+    aars: ["layout/constraintlayout-1.1.0.aar"],
+    sdk_version: "current",
+    static_libs: [
+    ],
+}
+
+android_library {
+    name: "androidx-constraintlayout_constraintlayout",
+    sdk_version: "current",
+    manifest: "manifests/androidx-constraintlayout_constraintlayout/AndroidManifest.xml",
+    static_libs: [
+        "androidx-constraintlayout_constraintlayout-nodeps",
+        "androidx-constraintlayout_constraintlayout-solver",
+    ],
+    java_version: "1.7",
+}
+
+java_import {
+    name: "androidx-constraintlayout_constraintlayout-solver-nodeps",
+    jars: ["solver/constraintlayout-solver-1.1.0.jar"],
+    sdk_version: "current",
+}
+
+java_library_static {
+    name: "androidx-constraintlayout_constraintlayout-solver",
+    sdk_version: "current",
+    static_libs: [
+        "androidx-constraintlayout_constraintlayout-solver-nodeps",
+    ],
+    java_version: "1.7",
+}
diff --git a/current/extras/constraint-layout-x/layout/constraintlayout-1.1.0.aar b/current/extras/constraint-layout-x/layout/constraintlayout-1.1.0.aar
new file mode 100644
index 0000000..4373da9
--- /dev/null
+++ b/current/extras/constraint-layout-x/layout/constraintlayout-1.1.0.aar
Binary files differ
diff --git a/current/extras/constraint-layout-x/layout/constraintlayout-1.1.0.pom b/current/extras/constraint-layout-x/layout/constraintlayout-1.1.0.pom
new file mode 100644
index 0000000..3d56bc9
--- /dev/null
+++ b/current/extras/constraint-layout-x/layout/constraintlayout-1.1.0.pom
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>androidx.constraintlayout</groupId>
+  <artifactId>constraintlayout</artifactId>
+  <version>1.1.0</version>
+  <packaging>aar</packaging>
+  <name>Android ConstraintLayout</name>
+  <description>ConstraintLayout for Android</description>
+  <url>http://tools.android.com</url>
+  <inceptionYear>2007</inceptionYear>
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+  <developers>
+    <developer>
+      <name>The Android Open Source Project</name>
+    </developer>
+  </developers>
+  <scm>
+    <connection>git://android.googlesource.com/platform/tools/sherpa.git</connection>
+    <url>https://android.googlesource.com/platform/tools/sherpa</url>
+  </scm>
+  <dependencies>
+    <dependency>
+      <groupId>androidx.constraintlayout</groupId>
+      <artifactId>constraintlayout-solver</artifactId>
+      <version>1.1.0</version>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/current/extras/constraint-layout-x/manifests/androidx-constraintlayout_constraintlayout/AndroidManifest.xml b/current/extras/constraint-layout-x/manifests/androidx-constraintlayout_constraintlayout/AndroidManifest.xml
new file mode 100644
index 0000000..cc048cb
--- /dev/null
+++ b/current/extras/constraint-layout-x/manifests/androidx-constraintlayout_constraintlayout/AndroidManifest.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.support.constraint" >
+
+    <uses-sdk
+        android:minSdkVersion="9"
+        android:targetSdkVersion="24" />
+
+    <application />
+
+</manifest>
\ No newline at end of file
diff --git a/current/extras/constraint-layout-x/solver/constraintlayout-solver-1.1.0.jar b/current/extras/constraint-layout-x/solver/constraintlayout-solver-1.1.0.jar
new file mode 100644
index 0000000..376291b
--- /dev/null
+++ b/current/extras/constraint-layout-x/solver/constraintlayout-solver-1.1.0.jar
Binary files differ
diff --git a/current/extras/constraint-layout-x/solver/constraintlayout-solver-1.1.0.pom b/current/extras/constraint-layout-x/solver/constraintlayout-solver-1.1.0.pom
new file mode 100644
index 0000000..112d911
--- /dev/null
+++ b/current/extras/constraint-layout-x/solver/constraintlayout-solver-1.1.0.pom
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>androidx.constraintlayout</groupId>
+  <artifactId>constraintlayout-solver</artifactId>
+  <version>1.1.0</version>
+  <name>Android ConstraintLayout Solver</name>
+  <description>Solver for ConstraintLayout</description>
+  <url>http://tools.android.com</url>
+  <inceptionYear>2007</inceptionYear>
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+  <developers>
+    <developer>
+      <name>The Android Open Source Project</name>
+    </developer>
+  </developers>
+  <scm>
+    <connection>git://android.googlesource.com/platform/tools/sherpa.git</connection>
+    <url>https://android.googlesource.com/platform/tools/sherpa</url>
+  </scm>
+</project>
diff --git a/update_prebuilts/update_prebuilts.py b/update_prebuilts/update_prebuilts.py
index e004276..4d3482c 100755
--- a/update_prebuilts/update_prebuilts.py
+++ b/update_prebuilts/update_prebuilts.py
@@ -13,7 +13,7 @@
 current_path = 'current'
 api_path = 'api'
 system_api_path = 'system-api'
-framework_sdk_target = 'sdk_mac'
+framework_sdk_target = 'sdk_phone_armv7-sdk_mac'
 support_dir = os.path.join(current_path, 'support')
 androidx_dir = os.path.join(current_path, 'androidx')
 extras_dir = os.path.join(current_path, 'extras')
@@ -445,7 +445,7 @@
 # moves <artifact_info> (of type MavenLibraryInfo) into the appropriate part of <working_dir> , and possibly unpacks any necessary included files
 def transform_maven_lib(working_dir, artifact_info, extract_res):
     # Move library into working dir
-    new_dir = os.path.join(working_dir, os.path.relpath(artifact_info.dir, artifact_info.repo_dir))
+    new_dir = os.path.normpath(os.path.join(working_dir, os.path.relpath(artifact_info.dir, artifact_info.repo_dir)))
     mv(artifact_info.dir, new_dir)
 
     for dirpath, dirs, files in os.walk(new_dir):
@@ -614,6 +614,13 @@
     return transform_maven_repos([layout_dir, solver_dir],
                                 os.path.join(extras_dir, 'constraint-layout'), extract_res=False)
 
+def update_constraint_x(local_file):
+    repo_dir = extract_artifact(local_file)
+    if not repo_dir:
+        print_e('Failed to extract Constraint Layout X')
+        return False
+    return transform_maven_repos([repo_dir], os.path.join(extras_dir, 'constraint-layout-x'), extract_res=False)
+
 
 def update_design(file):
     design_dir = extract_artifact(file)
@@ -652,10 +659,14 @@
         'core.current.stubs.jar': 'android.jar',
     },
     'public': {
+        'android.test.base.stubs.jar': 'android.test.base.jar',
+        'android.test.runner.stubs.jar': 'android.test.runner.jar',
+        'android.test.mock.stubs.jar': 'android.test.mock.jar',
         'org.apache.http.legacy.jar': 'org.apache.http.legacy.jar',
     },
     'system': {
         'android_system.jar': 'android.jar',
+        'android.test.mock.stubs_system.jar': 'android.test.mock.jar',
     }
 }
 
@@ -793,6 +804,9 @@
     '-c', '--constraint', action="store_true",
     help='If specified, updates only Constraint Layout')
 parser.add_argument(
+    '--constraint_x', action="store_true",
+    help='If specified, updates Constraint Layout X')
+parser.add_argument(
     '-j', '--jetifier', action="store_true",
     help='If specified, updates only Jetifier')
 parser.add_argument(
@@ -821,10 +835,10 @@
     sys.exit(1)
 if not (args.support or args.platform or args.constraint or args.toolkit or args.buildtools \
                 or args.design or args.jetifier or args.androidx or args.material \
-                or args.finalize_sdk):
+                or args.finalize_sdk or args.constraint_x):
     parser.error("You must specify at least one target to update")
     sys.exit(1)
-if (args.support or args.constraint or args.toolkit or args.design or args.material or args.androidx) \
+if (args.support or args.constraint or args.constraint_x or args.toolkit or args.design or args.material or args.androidx) \
         and which('pom2bp') is None:
     parser.error("Cannot find pom2bp in path; please run lunch to set up build environment")
     sys.exit(1)
@@ -843,8 +857,14 @@
     if args.constraint:
         if update_constraint('studio', getBuildId(args)):
             components = append(components, 'Constraint Layout')
-            print_e('Failed to update Constraint Layout, aborting...')
         else:
+            print_e('Failed to update Constraint Layout, aborting...')
+            sys.exit(1)
+    if args.constraint_x:
+        if update_constraint_x(getFile(args)):
+            components = append(components, 'Constraint Layout X')
+        else:
+            print_e('Failed to update Constraint Layout X, aborting...')
             sys.exit(1)
     if args.support:
         if update_support('support_library', getBuildId(args), getFile(args)):
@@ -928,7 +948,7 @@
         with open(os.devnull, 'w') as bitbucket:
             subprocess.check_call(['git', 'add', '-Af', '.'], stdout=bitbucket)
             subprocess.check_call(
-                ['git', 'commit', '-m', 'COMMIT TO REVERT - RESET ME!!!'], stdout=bitbucket)
+                ['git', 'commit', '-m', 'COMMIT TO REVERT - RESET ME!!!', '--allow-empty'], stdout=bitbucket)
             subprocess.check_call(['git', 'reset', '--hard', 'HEAD~1'], stdout=bitbucket)
     except subprocess.CalledProcessError:
         print_e('ERROR: Failed cleaning up, manual cleanup required!!!')