Merge "Removes the lock contention on CommandHandler#onExecuted()." into pi-preview1-androidx-dev
diff --git a/buildSrc/src/main/kotlin/androidx/build/SupportAndroidLibraryPlugin.kt b/buildSrc/src/main/kotlin/androidx/build/SupportAndroidLibraryPlugin.kt
index ff807a8..1aa3f50 100644
--- a/buildSrc/src/main/kotlin/androidx/build/SupportAndroidLibraryPlugin.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/SupportAndroidLibraryPlugin.kt
@@ -174,6 +174,7 @@
     lintOptions.fatal("NewApi")
     lintOptions.fatal("ObsoleteSdkInt")
     lintOptions.fatal("VisibleForTests")
+    lintOptions.fatal("NoHardKeywords")
 
     if (verifyTranslations) {
         lintOptions.fatal("MissingTranslation")
diff --git a/jetifier/jetifier/core/src/main/kotlin/com/android/tools/build/jetifier/core/pom/DependencyVersionsMap.kt b/jetifier/jetifier/core/src/main/kotlin/com/android/tools/build/jetifier/core/pom/DependencyVersionsMap.kt
index 06fbc54..99f1024 100644
--- a/jetifier/jetifier/core/src/main/kotlin/com/android/tools/build/jetifier/core/pom/DependencyVersionsMap.kt
+++ b/jetifier/jetifier/core/src/main/kotlin/com/android/tools/build/jetifier/core/pom/DependencyVersionsMap.kt
@@ -48,8 +48,8 @@
             newLifecycleVersion = "2.0.0",
             newPagingVersion = "2.0.0",
             newRoomVersion = "2.0.0",
-            newEspressoVersion = "3.1.0-alpha1",
-            newTestsVersion = "1.1.0-alpha1",
+            newEspressoVersion = "3.1.0-alpha2",
+            newTestsVersion = "1.1.0-alpha2",
             newJankTestHelperVersion = "1.0.1-alpha1",
             newUiAutomatorVersion = "2.2.0-alpha1",
             newDataBindingVersion = "undefined"
@@ -65,8 +65,8 @@
             newLifecycleVersion = "2.0.0-alpha1",
             newPagingVersion = "2.0.0-alpha1",
             newRoomVersion = "2.0.0-alpha1",
-            newEspressoVersion = "3.1.0-alpha1",
-            newTestsVersion = "1.1.0-alpha1",
+            newEspressoVersion = "3.1.0-alpha2",
+            newTestsVersion = "1.1.0-alpha2",
             newJankTestHelperVersion = "1.0.1-alpha1",
             newUiAutomatorVersion = "2.2.0-alpha1",
             newDataBindingVersion = "undefined"
diff --git a/jetifier/jetifier/core/src/main/resources/default.config b/jetifier/jetifier/core/src/main/resources/default.config
index 73fa4ed..fdf8633 100644
--- a/jetifier/jetifier/core/src/main/resources/default.config
+++ b/jetifier/jetifier/core/src/main/resources/default.config
@@ -1361,6 +1361,10 @@
             "to": { "groupId": "androidx.test.espresso", "artifactId": "espresso-intents", "version": "{newEspressoVersion}" }
         },
         {
+            "from": { "groupId": "com.android.support.test.espresso", "artifactId": "espresso-remote", "version": "3.0.2" },
+            "to": { "groupId": "androidx.test.espresso", "artifactId": "espresso-remote", "version": "{newEspressoVersion}" }
+        },
+        {
             "from": { "groupId": "com.android.support.test.espresso", "artifactId": "espresso-web", "version": "3.0.2" },
             "to": { "groupId": "androidx.test.espresso", "artifactId": "espresso-web", "version": "{newEspressoVersion}" }
         },
diff --git a/jetifier/jetifier/core/src/main/resources/default.generated.config b/jetifier/jetifier/core/src/main/resources/default.generated.config
index c749d32..fd91886 100644
--- a/jetifier/jetifier/core/src/main/resources/default.generated.config
+++ b/jetifier/jetifier/core/src/main/resources/default.generated.config
@@ -2046,6 +2046,18 @@
     {
       "from": {
         "groupId": "com.android.support.test.espresso",
+        "artifactId": "espresso-remote",
+        "version": "3.0.2"
+      },
+      "to": {
+        "groupId": "androidx.test.espresso",
+        "artifactId": "espresso-remote",
+        "version": "{newEspressoVersion}"
+      }
+    },
+    {
+      "from": {
+        "groupId": "com.android.support.test.espresso",
         "artifactId": "espresso-web",
         "version": "3.0.2"
       },
diff --git a/jetifier/jetifier/source-transformer/default.config b/jetifier/jetifier/source-transformer/default.config
new file mode 100644
index 0000000..ecbd9cc
--- /dev/null
+++ b/jetifier/jetifier/source-transformer/default.config
@@ -0,0 +1,1508 @@
+# Copyright (C) 2017 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License
+
+{
+    # Skip packages that don't match the following regex
+    "restrictToPackagePrefixes": [
+        "android/support/",
+        "android/arch/",
+        "android/databinding/"
+    ],
+    "rules": [
+        # Ignore
+        {
+            "from": "(.*)BuildConfig",
+            "to": "ignoreInPreprocessorOnly"
+        },
+        {
+            "from": "(.*)/package-info",
+            "to": "ignoreInPreprocessorOnly"
+        },
+        {
+            "from": "android/support/test/(.*)",
+            "to": "ignore"
+        },
+        {
+            "from": "android/support/exifinterface/test/R(.*)",
+            "to": "ignore"
+        },
+        # To ignore warnings
+        {
+            "from": "android/support/wearable/(.*)",
+            "to": "ignore"
+        },
+
+        #Resources
+        {
+            "from": "android/support/compat/R(.*)",
+            "to": "androidx/core/R{0}"
+        },
+        {
+            "from": "android/support/mediacompat/R(.*)",
+            "to": "androidx/media/R{0}"
+        },
+        {
+            "from": "android/support/v7/cardview/R(.*)",
+            "to": "androidx/cardview/R{0}"
+        },
+        {
+            "from": "android/support/percent/R(.*)",
+            "to": "androidx/percentlayout/R{0}"
+        },
+        {
+            "from": "android/support/coordinatorlayout/R(.*)",
+            "to": "androidx/coordinatorlayout/R{0}"
+        },
+        {
+            "from": "android/support/text/emoji/R(.*)",
+            "to": "androidx/emoji/R{0}"
+        },
+        {
+            "from": "android/support/v7/recyclerview/R(.*)",
+            "to": "androidx/recyclerview/R{0}"
+        },
+        {
+            "from": "android/support/v7/gridlayout/R(.*)",
+            "to": "androidx/gridlayout/R{0}"
+        },
+        {
+            "from": "android/support/v7/appcompat/R(.*)",
+            "to": "androidx/appcompat/R{0}"
+        },
+        {
+            "from": "android/support/customtabs/R(.*)",
+            "to": "androidx/browser/R{0}"
+        },
+        {
+            "from": "android/support/v7/mediarouter/R(.*)",
+            "to": "androidx/mediarouter/R{0}"
+        },
+
+        # Legacy
+        {
+            "from": "android/support/v4/app/ActionBarDrawerToggle(.*)",
+            "to": "androidx/legacy/app/ActionBarDrawerToggle{0}"
+        },
+        {
+            "from": "android/support/v4/widget/Space(.*)",
+            "to": "androidx/legacy/widget/Space{0}"
+        },
+        {
+            "from": "android/support/v4/content/WakefulBroadcastReceiver(.*)",
+            "to": "androidx/legacy/content/WakefulBroadcastReceiver{0}"
+        },
+        {
+            "from": "android/support/v13/view/ViewCompat(.*)",
+            "to": "androidx/legacy/view/ViewCompat{0}"
+        },
+        {
+            "from": "android/support/v13/app/ActivityCompat(.*)",
+            "to": "androidx/legacy/app/ActivityCompat{0}"
+        },
+        {
+            "from": "android/support/v13/app/FragmentCompat(.*)",
+            "to": "androidx/legacy/app/FragmentCompat{0}"
+        },
+        {
+            "from": "android/support/v13/app/FragmentPagerAdapter(.*)",
+            "to": "androidx/legacy/app/FragmentPagerAdapter{0}"
+        },
+        {
+            "from": "android/support/v13/app/FragmentStatePagerAdapter(.*)",
+            "to": "androidx/legacy/app/FragmentStatePagerAdapter{0}"
+        },
+        {
+            "from": "android/support/v13/app/FragmentTabHost(.*)",
+            "to": "androidx/legacy/app/FragmentTabHost{0}"
+        },
+
+        # Re-map Recycler view
+        {
+            "from": "android/support/v7/widget/AdapterHelper(.*)",
+            "to": "androidx/recyclerview/widget/AdapterHelper{0}"
+        },
+        {
+            "from": "android/support/v7/widget/ChildHelper(.*)",
+            "to": "androidx/recyclerview/widget/ChildHelper{0}"
+        },
+        {
+            "from": "android/support/v7/widget/DefaultItemAnimator(.*)",
+            "to": "androidx/recyclerview/widget/DefaultItemAnimator{0}"
+        },
+        {
+            "from": "android/support/v7/widget/DividerItemDecoration(.*)",
+            "to": "androidx/recyclerview/widget/DividerItemDecoration{0}"
+        },
+        {
+            "from": "android/support/v7/widget/FastScroller(.*)",
+            "to": "androidx/recyclerview/widget/FastScroller{0}"
+        },
+        {
+            "from": "android/support/v7/widget/GapWorker(.*)",
+            "to": "androidx/recyclerview/widget/GapWorker{0}"
+        },
+        {
+            "from": "android/support/v7/widget/GridLayoutManager(.*)",
+            "to": "androidx/recyclerview/widget/GridLayoutManager{0}"
+        },
+        {
+            "from": "android/support/v7/widget/LayoutState(.*)",
+            "to": "androidx/recyclerview/widget/LayoutState{0}"
+        },
+        {
+            "from": "android/support/v7/widget/LinearLayoutManager(.*)",
+            "to": "androidx/recyclerview/widget/LinearLayoutManager{0}"
+        },
+        {
+            "from": "android/support/v7/widget/LinearSmoothScroller(.*)",
+            "to": "androidx/recyclerview/widget/LinearSmoothScroller{0}"
+        },
+        {
+            "from": "android/support/v7/widget/LinearSnapHelper(.*)",
+            "to": "androidx/recyclerview/widget/LinearSnapHelper{0}"
+        },
+        {
+            "from": "android/support/v7/widget/OpReorderer(.*)",
+            "to": "androidx/recyclerview/widget/OpReorderer{0}"
+        },
+        {
+            "from": "android/support/v7/widget/OrientationHelper(.*)",
+            "to": "androidx/recyclerview/widget/OrientationHelper{0}"
+        },
+        {
+            "from": "android/support/v7/widget/PagerSnapHelper(.*)",
+            "to": "androidx/recyclerview/widget/PagerSnapHelper{0}"
+        },
+        {
+            "from": "android/support/v7/widget/PositionMap(.*)",
+            "to": "androidx/recyclerview/widget/PositionMap{0}"
+        },
+        {
+            "from": "android/support/v7/widget/RecyclerViewAccessibilityDelegate(.*)",
+            "to": "androidx/recyclerview/widget/RecyclerViewAccessibilityDelegate{0}"
+        },
+        {
+            "from": "android/support/v7/widget/RecyclerView(.*)",
+            "to": "androidx/recyclerview/widget/RecyclerView{0}"
+        },
+        {
+            "from": "android/support/v7/widget/ScrollbarHelper(.*)",
+            "to": "androidx/recyclerview/widget/ScrollbarHelper{0}"
+        },
+        {
+            "from": "android/support/v7/widget/SimpleItemAnimator(.*)",
+            "to": "androidx/recyclerview/widget/SimpleItemAnimator{0}"
+        },
+        {
+            "from": "android/support/v7/widget/SnapHelper(.*)",
+            "to": "androidx/recyclerview/widget/SnapHelper{0}"
+        },
+        {
+            "from": "android/support/v7/widget/StaggeredGridLayoutManager(.*)",
+            "to": "androidx/recyclerview/widget/StaggeredGridLayoutManager{0}"
+        },
+        {
+            "from": "android/support/v7/widget/ViewBoundsCheck(.*)",
+            "to": "androidx/recyclerview/widget/ViewBoundsCheck{0}"
+        },
+        {
+            "from": "android/support/v7/widget/ViewInfoStore(.*)",
+            "to": "androidx/recyclerview/widget/ViewInfoStore{0}"
+        },
+        {
+            "from": "android/support/v7/recyclerview/extensions/(.*)",
+            "to": "androidx/recyclerview/widget/{0}"
+        },
+        {
+            "from": "android/support/v7/util/(.*)",
+            "to": "androidx/recyclerview/widget/{0}"
+        },
+        {
+            "from": "android/support/v7/widget/helper/(.*)",
+            "to": "androidx/recyclerview/widget/{0}"
+        },
+        {
+            "from": "android/support/v7/widget/util/(.*)",
+            "to": "androidx/recyclerview/widget/{0}"
+        },
+
+        # Re-map
+        {
+            "from": "android/support/wear/(.*)",
+            "to": "androidx/wear/{0}"
+        },
+        {
+            "from": "android/support/v7/preference/(.*)",
+            "to": "androidx/preference/{0}"
+        },
+        {
+            "from": "android/support/v7/internal/widget/PreferenceImageView(.*)",
+            "to": "androidx/preference/internal/PreferenceImageView{0}"
+        },
+        {
+            "from": "android/support/v14/preference/(.*)",
+            "to": "androidx/preference/{0}"
+        },
+        {
+            "from": "android/support/v7/graphics/ColorCutQuantizer(.*)",
+            "to": "androidx/palette/graphics/ColorCutQuantizer{0}"
+        },
+        {
+            "from": "android/support/v7/graphics/Palette(.*)",
+            "to": "androidx/palette/graphics/Palette{0}"
+        },
+        {
+            "from": "android/support/v7/graphics/Target(.*)",
+            "to": "androidx/palette/graphics/Target{0}"
+        },
+        {
+            "from": "android/support/v7/app/MediaRoute(.*)",
+            "to": "androidx/mediarouter/app/MediaRoute{0}"
+        },
+        {
+            "from": "android/support/v7/app/OverlayListView(.*)",
+            "to": "androidx/mediarouter/app/OverlayListView{0}"
+        },
+        {
+            "from": "android/support/v7/media/(.*)",
+            "to": "androidx/mediarouter/media/{0}"
+        },
+        {
+            "from": "android/support/v7/widget/CardView(.*)",
+            "to": "androidx/cardview/widget/CardView{0}"
+        },
+        {
+            "from": "android/support/v7/widget/RoundRectDrawable(.*)",
+            "to": "androidx/cardview/widget/RoundRectDrawable{0}"
+        },
+        {
+            "from": "android/support/v7/widget/RoundRectDrawableWithShadow(.*)",
+            "to": "androidx/cardview/widget/RoundRectDrawableWithShadow{0}"
+        },
+        {
+            "from": "android/support/v7/widget/GridLayout(.*)",
+            "to": "androidx/gridlayout/widget/GridLayout{0}"
+        },
+        {
+            "from": "android/support/v7/(.*)",
+            "to": "androidx/appcompat/{0}"
+        },
+        {
+            "from": "android/support/graphics/drawable/(.*)",
+            "to": "androidx/vectordrawable/graphics/drawable/{0}"
+        },
+        {
+            "from": "android/support/customtabs/ICustomTabsCallback(.*)",
+            "to": "android/support/customtabs/ICustomTabsCallback/{0}"
+        },
+        {
+            "from": "android/support/customtabs/ICustomTabsService(.*)",
+            "to": "android/support/customtabs/ICustomTabsService/{0}"
+        },
+        {
+            "from": "android/support/customtabs/IPostMessageService(.*)",
+            "to": "android/support/customtabs/IPostMessageService/{0}"
+        },
+        {
+            "from": "android/support/customtabs/(.*)",
+            "to": "androidx/browser/customtabs/{0}"
+        },
+        {
+            "from": "android/support/media/tv/(.*)",
+            "to": "androidx/tvprovider/media/tv/{0}"
+        },
+        {
+            "from": "android/support/media/ExifInterface(.*)",
+            "to": "androidx/exifinterface/media/ExifInterface{0}"
+        },
+        {
+            "from": "android/support/v17/internal/widget/OutlineOnlyWithChildrenFrameLayout(.*)",
+            "to": "androidx/leanback/preference/internal/OutlineOnlyWithChildrenFrameLayout{0}"
+        },
+        {
+            "from": "android/support/v17/preference/(.*)",
+            "to": "androidx/leanback/preference/{0}"
+        },
+        {
+            "from": "android/support/v17/leanback/(.*)",
+            "to": "androidx/leanback/{0}"
+        },
+        {
+            "from": "android/support/percent/(.*)",
+            "to": "androidx/percentlayout/widget/{0}"
+        },
+        {
+            "from": "android/support/app/recommendation/(.*)",
+            "to": "androidx/recommendation/app/{0}"
+        },
+        {
+            "from": "android/support/annotation/(.*)",
+            "to": "androidx/annotation/{0}"
+        },
+        {
+            "from": "android/support/transition/(.*)",
+            "to": "androidx/transition/{0}"
+        },
+        {
+            "from": "android/support/text/emoji/bundled/BundledEmojiCompatConfig(.*)",
+            "to": "androidx/emoji/bundled/BundledEmojiCompatConfig{0}"
+        },
+        {
+            "from": "android/support/text/emoji/widget/(.*)",
+            "to": "androidx/emoji/widget/{0}"
+        },
+        {
+            "from": "android/support/text/emoji/(.*)",
+            "to": "androidx/emoji/text/{0}"
+        },
+        {
+            "from": "android/support/content/(.*)",
+            "to": "androidx/contentpager/content/{0}"
+        },
+        {
+            "from": "android/support/v4/view/animation/PathInterpolatorApi14(.*)",
+            "to": "androidx/core/view/animation/PathInterpolatorApi14{0}"
+        },
+        {
+            "from": "android/support/v4/view/animation/PathInterpolatorCompat(.*)",
+            "to": "androidx/core/view/animation/PathInterpolatorCompat{0}"
+        },
+        {
+            "from": "android/support/animation/(.*)",
+            "to": "androidx/dynamicanimation/animation/{0}"
+        },
+        {
+            "from": "android/support/v4/app/SupportActivity(.*)",
+            "to": "androidx/core/app/ComponentActivity{0}"
+        },
+        {
+            "from": "android/support/v4/app/Fragment(.*)",
+            "to": "androidx/fragment/app/Fragment{0}"
+        },
+        {
+            "from": "android/support/v4/app/BaseFragment(.*)",
+            "to": "androidx/fragment/app/BaseFragment{0}"
+        },
+        {
+            "from": "android/support/v4/app/BackStack(.*)",
+            "to": "androidx/fragment/app/BackStack{0}"
+        },
+        {
+            "from": "android/support/v4/app/DialogFragment(.*)",
+            "to": "androidx/fragment/app/DialogFragment{0}"
+        },
+        {
+            "from": "android/support/v4/app/ListFragment(.*)",
+            "to": "androidx/fragment/app/ListFragment{0}"
+        },
+        {
+            "from": "android/support/v4/app/OneShotPreDrawListener(.*)",
+            "to": "androidx/fragment/app/OneShotPreDrawListener{0}"
+        },
+        {
+            "from": "android/support/v4/app/SuperNotCalledException(.*)",
+            "to": "androidx/fragment/app/SuperNotCalledException{0}"
+        },
+
+        # Media
+        {
+            "from": "android/support/v4/media/app/NotificationCompat(.*)",
+            "to": "androidx/media/app/NotificationCompat{0}"
+        },
+        {
+            "from": "android/support/v4/media/AudioAttributesCompat(.*)",
+            "to": "androidx/media/AudioAttributesCompat{0}"
+        },
+        {
+            "from": "android/support/v4/media/MediaBrowserCompatUtils(.*)",
+            "to": "androidx/media/MediaBrowserCompatUtils{0}"
+        },
+        {
+            "from": "android/support/v4/media/MediaBrowserProtocol(.*)",
+            "to": "androidx/media/MediaBrowserProtocol{0}"
+        },
+        {
+            "from": "android/support/v4/media/MediaBrowserServiceCompat(.*)",
+            "to": "androidx/media/MediaBrowserServiceCompat{0}"
+        },
+        {
+            "from": "android/support/v4/media/VolumeProviderCompat(.*)",
+            "to": "androidx/media/VolumeProviderCompat{0}"
+        },
+        {
+            "from": "android/support/v4/media/session/MediaButtonReceiver(.*)",
+            "to": "androidx/media/session/MediaButtonReceiver{0}"
+        },
+        {
+            "from": "android/support/v4/media/(.*)",
+            "to": "android/support/v4/media/{0}"
+        },
+
+        # Rules involving libraries split
+        {
+            "from": "android/support/v4/widget/CursorAdapter(.*)",
+            "to": "androidx/cursoradapter/widget/CursorAdapter{0}"
+        },
+        {
+            "from": "android/support/v4/widget/CursorFilter(.*)",
+            "to": "androidx/cursoradapter/widget/CursorFilter{0}"
+        },
+        {
+            "from": "android/support/v4/widget/ResourceCursorAdapter(.*)",
+            "to": "androidx/cursoradapter/widget/ResourceCursorAdapter{0}"
+        },
+        {
+            "from": "android/support/v4/widget/SimpleCursorAdapter(.*)",
+            "to": "androidx/cursoradapter/widget/SimpleCursorAdapter{0}"
+        },
+        {
+            "from": "android/support/v4/app/LoaderManager(.*)",
+            "to": "androidx/loader/app/LoaderManager{0}"
+        },
+        {
+            "from": "android/support/v4/content/Loader(.*)",
+            "to": "androidx/loader/content/Loader{0}"
+        },
+        {
+            "from": "android/support/v4/content/CursorLoader(.*)",
+            "to": "androidx/loader/content/CursorLoader{0}"
+        },
+        {
+            "from": "android/support/v4/content/AsyncTaskLoader(.*)",
+            "to": "androidx/loader/content/AsyncTaskLoader{0}"
+        },
+        {
+            "from": "android/support/v4/content/ModernAsyncTask(.*)",
+            "to": "androidx/loader/content/ModernAsyncTask{0}"
+        },
+        {
+            "from": "android/support/design/widget/CoordinatorLayout(.*)",
+            "to": "androidx/coordinatorlayout/widget/CoordinatorLayout{0}"
+        },
+        {
+            "from": "android/support/v4/widget/DirectedAcyclicGraph(.*)",
+            "to": "androidx/coordinatorlayout/widget/DirectedAcyclicGraph{0}"
+        },
+        {
+            "from": "android/support/v4/widget/ViewGroupUtils(.*)",
+            "to": "androidx/coordinatorlayout/widget/ViewGroupUtils{0}"
+        },
+        {
+            "from": "android/support/v4/view/ViewPager(.*)",
+            "to": "androidx/viewpager/widget/ViewPager{0}"
+        },
+        {
+            "from": "android/support/v4/view/PagerAdapter(.*)",
+            "to": "androidx/viewpager/widget/PagerAdapter{0}"
+        },
+        {
+            "from": "android/support/v4/view/PagerTabStrip(.*)",
+            "to": "androidx/viewpager/widget/PagerTabStrip{0}"
+        },
+        {
+            "from": "android/support/v4/view/PagerTitleStrip(.*)",
+            "to": "androidx/viewpager/widget/PagerTitleStrip{0}"
+        },
+        {
+            "from": "android/support/v4/view/AbsSavedState(.*)",
+            "to": "androidx/customview/view/AbsSavedState{0}"
+        },
+        {
+            "from": "android/support/v4/widget/ExploreByTouchHelper(.*)",
+            "to": "androidx/customview/widget/ExploreByTouchHelper{0}"
+        },
+        {
+            "from": "android/support/v4/widget/FocusStrategy(.*)",
+            "to": "androidx/customview/widget/FocusStrategy{0}"
+        },
+        {
+            "from": "android/support/v4/widget/ViewDragHelper(.*)",
+            "to": "androidx/customview/widget/ViewDragHelper{0}"
+        },
+        {
+            "from": "android/support/v4/view/animation/(.*)",
+            "to": "androidx/interpolator/view/animation/{0}"
+        },
+        {
+            "from": "android/support/v4/widget/DrawerLayout(.*)",
+            "to": "androidx/drawerlayout/widget/DrawerLayout{0}"
+        },
+        {
+            "from": "android/support/v4/widget/SlidingPaneLayout(.*)",
+            "to": "androidx/slidingpanelayout/widget/SlidingPaneLayout{0}"
+        },
+        {
+            "from": "android/support/v4/view/AsyncLayoutInflater(.*)",
+            "to": "androidx/asynclayoutinflater/view/AsyncLayoutInflater{0}"
+        },
+        {
+            "from": "android/support/v4/widget/SwipeRefreshLayout(.*)",
+            "to": "androidx/swiperefreshlayout/widget/SwipeRefreshLayout{0}"
+        },
+        {
+            "from": "android/support/v4/widget/CircularProgressDrawable(.*)",
+            "to": "androidx/swiperefreshlayout/widget/CircularProgressDrawable{0}"
+        },
+        {
+            "from": "android/support/v4/widget/CircleImageView(.*)",
+            "to": "androidx/swiperefreshlayout/widget/CircleImageView{0}"
+        },
+        {
+            "from": "android/support/v4/util/ArrayMap(.*)",
+            "to": "androidx/collection/ArrayMap{0}"
+        },
+        {
+            "from": "android/support/v4/util/ArraySet(.*)",
+            "to": "androidx/collection/ArraySet{0}"
+        },
+        {
+            "from": "android/support/v4/util/CircularArray(.*)",
+            "to": "androidx/collection/CircularArray{0}"
+        },
+        {
+            "from": "android/support/v4/util/CircularIntArray(.*)",
+            "to": "androidx/collection/CircularIntArray{0}"
+        },
+        {
+            "from": "android/support/v4/util/ContainerHelpers(.*)",
+            "to": "androidx/collection/ContainerHelpers{0}"
+        },
+        {
+            "from": "android/support/v4/util/LongSparseArray(.*)",
+            "to": "androidx/collection/LongSparseArray{0}"
+        },
+        {
+            "from": "android/support/v4/util/LruCache(.*)",
+            "to": "androidx/collection/LruCache{0}"
+        },
+        {
+            "from": "android/support/v4/util/MapCollections(.*)",
+            "to": "androidx/collection/MapCollections{0}"
+        },
+        {
+            "from": "android/support/v4/util/SimpleArrayMap(.*)",
+            "to": "androidx/collection/SimpleArrayMap{0}"
+        },
+        {
+            "from": "android/support/v4/util/SparseArray(.*)",
+            "to": "androidx/collection/SparseArray{0}"
+        },
+        {
+            "from": "android/support/v4/provider/DocumentFile(.*)",
+            "to": "androidx/documentfile/provider/DocumentFile{0}"
+        },
+        {
+            "from": "android/support/v4/provider/DocumentsContractApi19(.*)",
+            "to": "androidx/documentfile/provider/DocumentsContractApi19{0}"
+        },
+        {
+            "from": "android/support/v4/provider/RawDocumentFile(.*)",
+            "to": "androidx/documentfile/provider/RawDocumentFile{0}"
+        },
+        {
+            "from": "android/support/v4/provider/SingleDocumentFile(.*)",
+            "to": "androidx/documentfile/provider/SingleDocumentFile{0}"
+        },
+        {
+            "from": "android/support/v4/provider/TreeDocumentFile(.*)",
+            "to": "androidx/documentfile/provider/TreeDocumentFile{0}"
+        },
+        {
+            "from": "android/support/v4/content/LocalBroadcastManager(.*)",
+            "to": "androidx/localbroadcastmanager/content/LocalBroadcastManager{0}"
+        },
+        {
+            "from": "android/support/v4/print/(.*)",
+            "to": "androidx/print/{0}"
+        },
+
+        # Catch all for v4
+        {
+            "from": "android/support/v4/(.*)",
+            "to": "androidx/core/{0}"
+        },
+        {
+            "from": "android/support/v13/(.*)",
+            "to": "androidx/core/{0}"
+        },
+
+        # Arch
+        {
+            "from": "android/arch/core/(.*)",
+            "to": "androidx/arch/core/{0}"
+        },
+        {
+            "from": "android/arch/lifecycle/(.*)",
+            "to": "androidx/lifecycle/{0}"
+        },
+        {
+            "from": "android/arch/paging/(.*)",
+            "to": "androidx/paging/{0}"
+        },
+        {
+            "from": "android/arch/persistence/room/(.*)",
+            "to": "androidx/room/{0}"
+        },
+        {
+            "from": "android/arch/persistence/(.*)",
+            "to": "androidx/sqlite/{0}"
+        },
+
+        # Constraint
+        {
+            "from": "android/support/constraint/solver/(.*)",
+            "to": "androidx/constraintlayout/solver/{0}"
+        },
+        {
+            "from": "android/support/constraint/(.*)",
+            "to": "androidx/constraintlayout/widget/{0}"
+        },
+
+        # Uncomment once migrated
+        #{
+        #    "from": "android/support/v8/renderscript/(.*)",
+        #    "to": "androidx/renderscript/{0}"
+        #},
+
+        #Binding
+        {
+            "from": "android/databinding/(.*)",
+            "to": "androidx/databinding/{0}"
+        },
+
+        #Multidex
+        {
+            "from": "android/support/multidex/(.*)",
+            "to": "androidx/multidex/{0}"
+        },
+
+        #Safeparcelable
+        {
+            "from": "androidx/safeparcelable/(.*)",
+            "to": "androidx/safeparcelable/{0}"
+        },
+
+        # Design lib - uncomment once migrated
+        {
+            "from": "android/support/design/widget/AppBarLayout(.*)",
+            "to": "com/google/android/material/appbar/AppBarLayout{0}"
+        },
+        {
+            "from": "android/support/design/widget/BaseTransientBottomBar(.*)",
+            "to": "com/google/android/material/snackbar/BaseTransientBottomBar{0}"
+        },
+        {
+            "from": "android/support/design/widget/BottomNavigationView(.*)",
+            "to": "com/google/android/material/bottomnavigation/BottomNavigationView{0}"
+        },
+        {
+            "from": "android/support/design/widget/BottomSheet(.*)",
+            "to": "com/google/android/material/bottomsheet/BottomSheet{0}"
+        },
+        {
+            "from": "android/support/design/widget/CheckableImageButton(.*)",
+            "to": "com/google/android/material/internal/CheckableImageButton{0}"
+        },
+        {
+            "from": "android/support/design/widget/CircularBorderDrawable(.*)",
+            "to": "com/google/android/material/internal/CircularBorderDrawable{0}"
+        },
+        {
+            "from": "android/support/design/widget/CollapsingTextHelper(.*)",
+            "to": "com/google/android/material/internal/CollapsingTextHelper{0}"
+        },
+        {
+            "from": "android/support/design/widget/CollapsingToolbarLayout(.*)",
+            "to": "com/google/android/material/appbar/CollapsingToolbarLayout{0}"
+        },
+        {
+            "from": "android/support/design/widget/CutoutDrawable(.*)",
+            "to": "com/google/android/material/textfield/CutoutDrawable{0}"
+        },
+        {
+            "from": "android/support/design/widget/DescendantOffsetUtils(.*)",
+            "to": "com/google/android/material/internal/DescendantOffsetUtils{0}"
+        },
+        {
+            "from": "android/support/design/widget/DrawableUtils(.*)",
+            "to": "com/google/android/material/internal/DrawableUtils{0}"
+        },
+        {
+            "from": "android/support/design/widget/FloatingActionButton(.*)",
+            "to": "com/google/android/material/floatingactionbutton/FloatingActionButton{0}"
+        },
+        {
+            "from": "android/support/design/widget/HeaderBehavior(.*)",
+            "to": "com/google/android/material/appbar/HeaderBehavior{0}"
+        },
+        {
+            "from": "android/support/design/widget/HeaderScrollingViewBehavior(.*)",
+            "to": "com/google/android/material/appbar/HeaderScrollingViewBehavior{0}"
+        },
+        {
+            "from": "android/support/design/widget/HideBottomViewOnScrollBehavior(.*)",
+            "to": "com/google/android/material/behavior/HeaderScrollingViewBehavior{0}"
+        },
+        {
+            "from": "android/support/design/widget/IndicatorViewController(.*)",
+            "to": "com/google/android/material/textfield/IndicatorViewController{0}"
+        },
+        {
+            "from": "android/support/design/widget/MathUtils(.*)",
+            "to": "com/google/android/material/math/MathUtils{0}"
+        },
+        {
+            "from": "android/support/design/widget/NavigationView(.*)",
+            "to": "com/google/android/material/navigation/NavigationView{0}"
+        },
+        {
+            "from": "android/support/design/widget/Shadow(.*)",
+            "to": "com/google/android/material/shadow/Shadow{0}"
+        },
+        {
+            "from": "android/support/design/widget/Snackbar(.*)",
+            "to": "com/google/android/material/snackbar/Snackbar{0}"
+        },
+        {
+            "from": "android/support/design/widget/SnackbarManager(.*)",
+            "to": "com/google/android/material/snackbar/SnackbarManager{0}"
+        },
+        {
+            "from": "android/support/design/widget/StateListAnimator(.*)",
+            "to": "com/google/android/material/internal/StateListAnimator{0}"
+        },
+        {
+            "from": "android/support/design/widget/SwipeDismissBehavior(.*)",
+            "to": "com/google/android/material/behavior/SwipeDismissBehavior{0}"
+        },
+        {
+            "from": "android/support/design/widget/Tab(.*)",
+            "to": "com/google/android/material/tabs/Tab{0}"
+        },
+        {
+            "from": "android/support/design/widget/TextInput(.*)",
+            "to": "com/google/android/material/textfield/TextInput{0}"
+        },
+        {
+            "from": "android/support/design/widget/ViewOffsetBehavior(.*)",
+            "to": "com/google/android/material/appbar/ViewOffsetBehavior{0}"
+        },
+        {
+            "from": "android/support/design/widget/ViewOffsetHelper(.*)",
+            "to": "com/google/android/material/appbar/ViewOffsetHelper{0}"
+        },
+        {
+            "from": "android/support/design/widget/ViewUtilsLollipop(.*)",
+            "to": "com/google/android/material/appbar/ViewUtilsLollipop{0}"
+        },
+        {
+            "from": "android/support/design/widget/VisibilityAwareImageButton(.*)",
+            "to": "com/google/android/material/internal/VisibilityAwareImageButton{0}"
+        },
+        {
+            "from": "android/support/design/internal/BottomNavigation(.*)",
+            "to": "com/google/android/material/bottomnavigation/BottomNavigation{0}"
+        },
+        {
+            "from": "android/support/design/internal/SnackbarContentLayout(.*)",
+            "to": "com/google/android/material/snackbar/SnackbarContentLayout{0}"
+        },
+        {
+            "from": "android/support/design/animation/(.*)",
+            "to": "com/google/android/material/animation/{0}"
+        },
+        {
+            "from": "android/support/design/bottomappbar/(.*)",
+            "to": "com/google/android/material/bottomappbar/{0}"
+        },
+        {
+            "from": "android/support/design/bottomnavigation/(.*)",
+            "to": "com/google/android/material/bottomnavigation/{0}"
+        },
+        {
+            "from": "android/support/design/button/(.*)",
+            "to": "com/google/android/material/button/{0}"
+        },
+        {
+            "from": "android/support/design/canvas/(.*)",
+            "to": "com/google/android/material/canvas/{0}"
+        },
+        {
+            "from": "android/support/design/card/(.*)",
+            "to": "com/google/android/material/card/{0}"
+        },
+        {
+            "from": "android/support/design/chip/(.*)",
+            "to": "com/google/android/material/chip/{0}"
+        },
+        {
+            "from": "android/support/design/circularreveal/(.*)",
+            "to": "com/google/android/material/circularreveal/{0}"
+        },
+        {
+            "from": "android/support/design/circularreveal/cardview/(.*)",
+            "to": "com/google/android/material/circularreveal/cardview/{0}"
+        },
+        {
+            "from": "android/support/design/circularreveal/coordinatorlayout/(.*)",
+            "to": "com/google/android/material/circularreveal/coordinatorlayout/{0}"
+        },
+        {
+            "from": "android/support/design/drawable/(.*)",
+            "to": "com/google/android/material/drawable/{0}"
+        },
+        {
+            "from": "android/support/design/expandable/(.*)",
+            "to": "com/google/android/material/expandable/{0}"
+        },
+        {
+            "from": "android/support/design/internal/(.*)",
+            "to": "com/google/android/material/internal/{0}"
+        },
+        {
+            "from": "android/support/design/math/(.*)",
+            "to": "com/google/android/material/math/{0}"
+        },
+        {
+            "from": "android/support/design/resources/(.*)",
+            "to": "com/google/android/material/resources/{0}"
+        },
+        {
+            "from": "android/support/design/ripple/(.*)",
+            "to": "com/google/android/material/ripple/{0}"
+        },
+        {
+            "from": "android/support/design/shape/(.*)",
+            "to": "com/google/android/material/shape/{0}"
+        },
+        {
+            "from": "android/support/design/snackbar/(.*)",
+            "to": "com/google/android/material/snackbar/{0}"
+        },
+        {
+            "from": "android/support/design/stateful/(.*)",
+            "to": "com/google/android/material/stateful/{0}"
+        },
+        {
+            "from": "android/support/design/theme/(.*)",
+            "to": "com/google/android/material/theme/{0}"
+        },
+        {
+            "from": "android/support/design/transformation/(.*)",
+            "to": "com/google/android/material/transformation/{0}"
+        },
+        {
+            "from": "android/support/design/R(.*)",
+            "to": "com/google/android/material/R{0}"
+        }
+    ],
+    "slRules": [
+        # Ignore
+        {
+            "from": "(.*)/package-info",
+            "to": "ignore"
+        },
+        {
+            "from": "androidx/navigation/(.*)",
+            "to": "ignore"
+        },
+        {
+            "from": "androidx/text/emoji/flatbuffer/(.*)",
+            "to": "ignore"
+        },
+        {
+            "from": "androidx/browser/browseractions/(.*)",
+            "to": "ignore"
+        },
+        {
+            "from": "androidx/heifwriter/(.*)",
+            "to": "ignore"
+        },
+        {
+            "from": "androidx/webkit/(.*)",
+            "to": "ignore"
+        },
+        {
+            "from": "androidx/slice/(.*)",
+            "to": "ignore"
+        },
+        {
+            "from": "androidx/recyclerview/selection/(.*)",
+            "to": "ignore"
+        },
+        {
+            "from": "androidx/textclassifier/(.*)",
+            "to": "ignore"
+        },
+        {
+            "from": "androidx/car/(.*)",
+            "to": "ignore"
+        },
+        {
+            "from": "androidx/media/widget/(.*)",
+            "to": "ignore"
+        },
+        # Ignore any kotlin stuff
+        {
+            "from": "androidx/(.*)/ktx/(.*)",
+            "to": "ignore"
+        },
+
+        # Fallback for new media stuff
+        {
+            "from": "androidx/media/(.*)",
+            "to": "android/support/v4/media/{0}"
+        }
+    ],
+    "pomRules": [
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "animated-vector-drawable", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.vectordrawable", "artifactId": "vectordrawable-animated", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "appcompat-v7", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.appcompat", "artifactId": "appcompat", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "cardview-v7", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.cardview", "artifactId": "cardview", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "customtabs", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.browser", "artifactId": "browser", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "design", "version": "{oldMaterialVersion}" },
+            "to": { "groupId": "com.google.android.material", "artifactId": "material", "version": "{newMaterialVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "exifinterface", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.exifinterface", "artifactId": "exifinterface", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "gridlayout-v7", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.gridlayout", "artifactId": "gridlayout", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "leanback-v17", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.leanback", "artifactId": "leanback", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "mediarouter-v7", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.mediarouter", "artifactId": "mediarouter", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "multidex", "version": "1.0.3" },
+            "to": { "groupId": "androidx.multidex", "artifactId": "multidex", "version": "2.0.0" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "multidex-instrumentation", "version": "1.0.3" },
+            "to": { "groupId": "androidx.multidex", "artifactId": "multidex-instrumentation", "version": "2.0.0" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "palette-v7", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.palette", "artifactId": "palette", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "percent", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.percentlayout", "artifactId": "percentlayout", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "preference-leanback-v17", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.leanback", "artifactId": "leanback-preference", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "preference-v14", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.legacy", "artifactId": "legacy-preference-v14", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "preference-v7", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.preference", "artifactId": "preference", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "recommendation", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.recommendation", "artifactId": "recommendation", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "recyclerview-v7", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.recyclerview", "artifactId": "recyclerview", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "support-annotations", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.annotation", "artifactId": "annotation", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "support-compat", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.core", "artifactId": "core", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "support-content", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.contentpager", "artifactId": "contentpager", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "support-core-ui", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.legacy", "artifactId": "legacy-support-core-ui", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "support-core-utils", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.legacy", "artifactId": "legacy-support-core-utils", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "support-dynamic-animation", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.dynamicanimation", "artifactId": "dynamicanimation", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "support-emoji", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.emoji", "artifactId": "emoji", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "support-emoji-appcompat", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.emoji", "artifactId": "emoji-appcompat", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "support-emoji-bundled", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.emoji", "artifactId": "emoji-bundled", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "support-fragment", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.fragment", "artifactId": "fragment", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "support-media-compat", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.media", "artifactId": "media", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "support-tv-provider", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.tvprovider", "artifactId": "tvprovider", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "support-v13", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.legacy", "artifactId": "legacy-support-v13", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "support-v4", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.legacy", "artifactId": "legacy-support-v4", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "support-vector-drawable", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.vectordrawable", "artifactId": "vectordrawable", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "textclassifier", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.textclassifier", "artifactId": "textclassifier", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "transition", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.transition", "artifactId": "transition", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "wear", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.wear", "artifactId": "wear", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "asynclayoutinflater", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.asynclayoutinflater", "artifactId": "asynclayoutinflater", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "collections", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.collection", "artifactId": "collection", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "coordinatorlayout", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.coordinatorlayout", "artifactId": "coordinatorlayout", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "cursoradapter", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.cursoradapter", "artifactId": "cursoradapter", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "customview", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.customview", "artifactId": "customview", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "documentfile", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.documentfile", "artifactId": "documentfile", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "drawerlayout", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.drawerlayout", "artifactId": "drawerlayout", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "interpolator", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.interpolator", "artifactId": "interpolator", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "loader", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.loader", "artifactId": "loader", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "localbroadcastmanager", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.localbroadcastmanager", "artifactId": "localbroadcastmanager", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "print", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.print", "artifactId": "print", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "slidingpanelayout", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.slidingpanelayout", "artifactId": "slidingpanelayout", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "swiperefreshlayout", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.swiperefreshlayout", "artifactId": "swiperefreshlayout", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "viewpager", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.viewpager", "artifactId": "viewpager", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.databinding", "artifactId": "adapters", "version": "undefined" },
+            "to": { "groupId": "androidx.databinding", "artifactId": "databinding-adapters", "version": "{newDataBindingVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.databinding", "artifactId": "baseLibrary", "version": "undefined" },
+            "to": { "groupId": "androidx.databinding", "artifactId": "databinding-common", "version": "{newDataBindingVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.databinding", "artifactId": "compiler", "version": "undefined" },
+            "to": { "groupId": "androidx.databinding", "artifactId": "databinding-compiler", "version": "{newDataBindingVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.databinding", "artifactId": "compilerCommon", "version": "undefined" },
+            "to": { "groupId": "androidx.databinding", "artifactId": "databinding-compiler-common", "version": "{newDataBindingVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.databinding", "artifactId": "library", "version": "undefined" },
+            "to": { "groupId": "androidx.databinding", "artifactId": "databinding-runtime", "version": "{newDataBindingVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "safeparcelable", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.safeparcelable", "artifactId": "safeparcelable", "version": "{newSlVersion}" }
+        },
+        #{
+        #    "from": { "groupId": "android.arch.background.workmanager", "artifactId": "workmanager", "version": "{newArchVersion}" },
+        #    "to": { "groupId": "androidx.work", "artifactId": "runtime", "version": "{newArchVersion}" }
+        #},
+        #{
+        #    "from": { "groupId": "android.arch.background.workmanager", "artifactId": "workmanager-firebase", "version": "{newArchVersion}" },
+        #    "to": { "groupId": "androidx.work", "artifactId": "runtime-firebase", "version": "{newArchVersion}" }
+        #},
+        #{
+        #    "from": { "groupId": "android.arch.navigation", "artifactId": "runtime", "version": "{newArchVersion}" },
+        #    "to": { "groupId": "androidx.navigation", "artifactId": "navigation-runtime", "version": "{newArchVersion}" }
+        #},
+        #{
+        #    "from": { "groupId": "android.arch.navigation", "artifactId": "fragment", "version": "{newArchVersion}" },
+        #    "to": { "groupId": "androidx.navigation", "artifactId": "navigation-fragment", "version": "{newArchVersion}" }
+        #},
+        {
+            "from": { "groupId": "android.arch.core", "artifactId": "common", "version": "1.1.1" },
+            "to": { "groupId": "androidx.arch.core", "artifactId": "core-common", "version": "{newArchCoreVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.core", "artifactId": "core", "version": "1.0.0-alpha3" },
+            "to": { "groupId": "androidx.arch.core", "artifactId": "core", "version": "{newArchCoreVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.core", "artifactId": "core-testing", "version": "1.1.1" },
+            "to": { "groupId": "androidx.arch.core", "artifactId": "core-testing", "version": "{newArchCoreVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.core", "artifactId": "runtime", "version": "1.1.1" },
+            "to": { "groupId": "androidx.arch.core", "artifactId": "core-runtime", "version": "{newArchCoreVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.lifecycle", "artifactId": "common", "version": "1.1.1" },
+            "to": { "groupId": "androidx.lifecycle", "artifactId": "lifecycle-common", "version": "{newLifecycleVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.lifecycle", "artifactId": "common-java8", "version": "1.1.1" },
+            "to": { "groupId": "androidx.lifecycle", "artifactId": "lifecycle-common-java8", "version": "{newLifecycleVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.lifecycle", "artifactId": "compiler", "version": "1.1.1" },
+            "to": { "groupId": "androidx.lifecycle", "artifactId": "lifecycle-compiler", "version": "{newLifecycleVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.lifecycle", "artifactId": "extensions", "version": "1.1.1" },
+            "to": { "groupId": "androidx.lifecycle", "artifactId": "lifecycle-extensions", "version": "{newLifecycleVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.lifecycle", "artifactId": "reactivestreams", "version": "1.1.1" },
+            "to": { "groupId": "androidx.lifecycle", "artifactId": "lifecycle-reactivestreams", "version": "{newLifecycleVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.lifecycle", "artifactId": "runtime", "version": "1.1.1" },
+            "to": { "groupId": "androidx.lifecycle", "artifactId": "lifecycle-runtime", "version": "{newLifecycleVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.lifecycle", "artifactId": "viewmodel", "version": "1.1.1" },
+            "to": { "groupId": "androidx.lifecycle", "artifactId": "lifecycle-viewmodel", "version": "{newLifecycleVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.lifecycle", "artifactId": "livedata", "version": "1.1.1" },
+            "to": { "groupId": "androidx.lifecycle", "artifactId": "lifecycle-livedata", "version": "{newLifecycleVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.lifecycle", "artifactId": "livedata-core", "version": "1.1.1" },
+            "to": { "groupId": "androidx.lifecycle", "artifactId": "lifecycle-livedata-core", "version": "{newLifecycleVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.paging", "artifactId": "common", "version": "1.0.0" },
+            "to": { "groupId": "androidx.paging", "artifactId": "paging-common", "version": "{newPagingVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.paging", "artifactId": "runtime", "version": "1.0.0" },
+            "to": { "groupId": "androidx.paging", "artifactId": "paging-runtime", "version": "{newPagingVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.paging", "artifactId": "rxjava2", "version": "1.0.0-alpha1" },
+            "to": { "groupId": "androidx.paging", "artifactId": "paging-rxjava2", "version": "{newPagingVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.persistence", "artifactId": "db", "version": "{oldRoomVersion}" },
+            "to": { "groupId": "androidx.sqlite", "artifactId": "sqlite", "version": "{newRoomVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.persistence", "artifactId": "db-framework", "version": "{oldRoomVersion}" },
+            "to": { "groupId": "androidx.sqlite", "artifactId": "sqlite-framework", "version": "{newRoomVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.persistence.room", "artifactId": "common", "version": "{oldRoomVersion}" },
+            "to": { "groupId": "androidx.room", "artifactId": "room-common", "version": "{newRoomVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.persistence.room", "artifactId": "compiler", "version": "{oldRoomVersion}" },
+            "to": { "groupId": "androidx.room", "artifactId": "room-compiler", "version": "{newRoomVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.persistence.room", "artifactId": "migration", "version": "{oldRoomVersion}" },
+            "to": { "groupId": "androidx.room", "artifactId": "room-migration", "version": "{newRoomVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.persistence.room", "artifactId": "runtime", "version": "{oldRoomVersion}" },
+            "to": { "groupId": "androidx.room", "artifactId": "room-runtime", "version": "{newRoomVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.persistence.room", "artifactId": "rxjava2", "version": "{oldRoomVersion}" },
+            "to": { "groupId": "androidx.room", "artifactId": "room-rxjava2", "version": "{newRoomVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.persistence.room", "artifactId": "testing", "version": "{oldRoomVersion}" },
+            "to": { "groupId": "androidx.room", "artifactId": "room-testing", "version": "{newRoomVersion}" }
+        },
+        {
+            "from": { "groupId": "android.arch.persistence.room", "artifactId": "guava", "version": "{oldRoomVersion}" },
+            "to": { "groupId": "androidx.room", "artifactId": "room-guava", "version": "{newRoomVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support.constraint", "artifactId": "constraint-layout", "version": "1.1.0" },
+            "to": { "groupId": "androidx.constraintlayout", "artifactId": "constraintlayout", "version": "1.1.0" }
+        },
+        {
+            "from": { "groupId": "com.android.support.constraint", "artifactId": "constraint-layout-solver", "version": "1.1.0" },
+            "to": { "groupId": "androidx.constraintlayout", "artifactId": "constraintlayout-solver", "version": "1.1.0" }
+        },
+        {
+            "from": { "groupId": "com.android.support.test", "artifactId": "orchestrator", "version": "1.0.2" },
+            "to": { "groupId": "androidx.test", "artifactId": "orchestrator", "version": "{newTestsVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support.test", "artifactId": "rules", "version": "1.0.2" },
+            "to": { "groupId": "androidx.test", "artifactId": "rules", "version": "{newTestsVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support.test", "artifactId": "runner", "version": "1.0.2" },
+            "to": { "groupId": "androidx.test", "artifactId": "runner", "version": "{newTestsVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support.test", "artifactId": "monitor", "version": "1.0.2" },
+            "to": { "groupId": "androidx.test", "artifactId": "monitor", "version": "{newTestsVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support.test.espresso", "artifactId": "espresso-accessibility", "version": "3.0.2" },
+            "to": { "groupId": "androidx.test.espresso", "artifactId": "espresso-accessibility", "version": "{newEspressoVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support.test.espresso", "artifactId": "espresso-contrib", "version": "3.0.2" },
+            "to": { "groupId": "androidx.test.espresso", "artifactId": "espresso-contrib", "version": "{newEspressoVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support.test.espresso", "artifactId": "espresso-core", "version": "3.0.2" },
+            "to": { "groupId": "androidx.test.espresso", "artifactId": "espresso-core", "version": "{newEspressoVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support.test.espresso", "artifactId": "espresso-idling-resource", "version": "3.0.2" },
+            "to": { "groupId": "androidx.test.espresso", "artifactId": "espresso-idling-resource", "version": "{newEspressoVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support.test.espresso", "artifactId": "espresso-intents", "version": "3.0.2" },
+            "to": { "groupId": "androidx.test.espresso", "artifactId": "espresso-intents", "version": "{newEspressoVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support.test.espresso", "artifactId": "espresso-web", "version": "3.0.2" },
+            "to": { "groupId": "androidx.test.espresso", "artifactId": "espresso-web", "version": "{newEspressoVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support.test.espresso.idling", "artifactId": "idling-concurrent", "version": "3.0.2" },
+            "to": { "groupId": "androidx.test.espresso.idling", "artifactId": "idling-concurrent", "version": "{newEspressoVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support.test.espresso.idling", "artifactId": "idling-net", "version": "3.0.2" },
+            "to": { "groupId": "androidx.test.espresso.idling", "artifactId": "idling-net", "version": "{newEspressoVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support.test.janktesthelper", "artifactId": "janktesthelper-v23", "version": "1.0.1" },
+            "to": { "groupId": "androidx.test.jank", "artifactId": "janktesthelper-v23", "version": "{newJankTestHelperVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support.test.services", "artifactId": "test-services", "version": "1.0.2" },
+            "to": { "groupId": "androidx.test", "artifactId": "test-services", "version": "{newTestsVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support.test.uiautomator", "artifactId": "uiautomator-v18", "version": "2.1.3" },
+            "to": { "groupId": "androidx.test.uiautomator", "artifactId": "uiautomator-v18", "version": "{newUiAutomatorVersion}" }
+        },
+        #{
+        #    "from": { "groupId": "com.android.support.test", "artifactId": "testing-support-lib", "version": "0.1" },
+        #    "to": { "groupId": "androidx.test", "artifactId": "test", "version": "{newSlVersion}" }
+        #},
+        #{
+        #    "from": { "groupId": "com.android.support.test", "artifactId": "exposed-instrumentation-api-publish", "version": "0.5" },
+        #    "to": { "groupId": "androidx.test", "artifactId": "test-exposed-instrumentation-api-publish", "version": "{newSlVersion}" }
+        #},
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "car", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.car", "artifactId": "car", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "slices-core", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.slice", "artifactId": "slice-core", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "slices-builders", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.slice", "artifactId": "slice-builders", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "slices-view", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.slice", "artifactId": "slice-view", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "heifwriter", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.heifwriter", "artifactId": "heifwriter", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "recyclerview-selection", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.recyclerview", "artifactId": "recyclerview-selection", "version": "{newSlVersion}" }
+        },
+        {
+            "from": { "groupId": "com.android.support", "artifactId": "webkit", "version": "{oldSlVersion}" },
+            "to": { "groupId": "androidx.webkit", "artifactId": "webkit", "version": "{newSlVersion}" }
+        }
+    ],
+    "map": {
+        # Types added in 28.0.0 (missing in 27.1.0)
+        "types": {
+        }
+    },
+    "proGuardMap": {
+        "rules": {
+            # Whole support
+            "android/support/{any}":
+            [
+                "android/support/{any}",
+                "androidx/{any}"
+            ],
+            "android/support{any}":
+            [
+                "android/support{any}",
+                "androidx{any}"
+            ],
+            "android/support/v*/{any}":
+            [
+                "android/support/**",
+                "androidx/{any}"
+            ],
+
+            # v4
+            "android/support/v4/{any}":
+            [
+                "android/support/v4/{any}",
+                "androidx/{any}"
+            ],
+            "android/support/v4/view/{any}":
+            [
+                "androidx/customview/view/{any}",
+                "androidx/core/view/{any}",
+                "androidx/asynclayoutinflater/{any}",
+                "androidx/viewpager/{any}",
+                "androidx/interpolator/{any}"
+            ],
+            "android/support/v4/media/{any}":
+            [
+                "androidx/media/{any}",
+                "android/support/v4/{any}"
+            ],
+
+            # v7
+            "android/support/v7/{any}":
+            [
+                "androidx/appcompat/{any}",
+                "androidx/mediarouter/{any}",
+                "androidx/cardview/{any}",
+                "androidx/palette/{any}",
+                "androidx/gridlayout/{any}",
+                "androidx/preference/{any}"
+            ],
+            "android/support/v7/widget/{any}":
+            [
+                "androidx/appcompat/widget/{any}",
+                "androidx/recyclerview/widget/{any}",
+                "androidx/cardview/widget/{any}"
+            ],
+            "android/support/v7/preference/{any}": ["androidx/preference/{any}"],
+
+            # v14
+            "android/support/v14/preference/{any}": ["androidx/preference/{any}"],
+
+            # v17
+            "android/support/v17/preference/{any}": ["androidx/leanback/preference/{any}"],
+            "android/support/v17/leanback/{any}": ["androidx/leanback/{any}"],
+
+            # Design
+            "android/support/design/widget/{any}":
+            [
+                "androidx/coordinatorlayout/widget/{any}",
+                "com/google/android/material/**"
+            ],
+            "android/support/design/{any}":
+            [
+                "androidx/coordinatorlayout/**",
+                "com/google/android/material/**"
+            ],
+            "android/support/design/internal/{any}": ["com/google/android/material/{any}"],
+
+            # Car
+            "android/support/car/{any}": ["androidx/car/{any}"],
+
+            # Arch
+            "android/arch/persistence/room/paging/{any}": ["androidx/room/paging/{any}"],
+
+            # Broken cases - usually not correct mapping anyway, we map it to avoid warnings
+            "android/support/v7/internal/widget/ActionBarView${any}": ["androidx/appcompat/widget/AbsActionBarView${any}"],
+            "android/support/v4/view/MenuItemCompat/*": ["androidx/core/view/MenuItemCompat/*"],
+            "Android{any}": ["Android{any}"]
+        }
+    }
+}
diff --git a/jetifier/jetifier/source-transformer/rewriteMake.py b/jetifier/jetifier/source-transformer/rewriteMake.py
index 259c143..b33d4c1 100755
--- a/jetifier/jetifier/source-transformer/rewriteMake.py
+++ b/jetifier/jetifier/source-transformer/rewriteMake.py
@@ -100,7 +100,7 @@
 with open(scriptPath, 'w') as scriptFile:
   scriptFile.write(str(rewriterTextBuilder))
 
-rewriteCommand = "time find . -name out -prune -o -name .git -prune -o -name .repo -prune -o -iregex '.*\.mk' -print | xargs -n 1 --no-run-if-empty -P 64 sed -i -f /tmp/jetifier-make-sed-script.txt"
+rewriteCommand = "time find . -name out -prune -o -name .git -prune -o -name .repo -prune -o -iregex '.*\.mk\|.*\.bp' -print | xargs -n 1 --no-run-if-empty -P 64 sed -i -f /tmp/jetifier-make-sed-script.txt"
 
 print("""
 Will run command:
diff --git a/jetifier/jetifier/source-transformer/rewritePackageNames.py b/jetifier/jetifier/source-transformer/rewritePackageNames.py
index 2d82b86..32d9a91 100755
--- a/jetifier/jetifier/source-transformer/rewritePackageNames.py
+++ b/jetifier/jetifier/source-transformer/rewritePackageNames.py
@@ -127,7 +127,7 @@
   pathOfThisFile = os.path.realpath(__file__)
   jetifierPath = os.path.abspath(os.path.join(pathOfThisFile, "..", ".."))
 
-  jetifierConfigPath = os.path.join(jetifierPath, "core", "src", "main", "resources", "default.config")
+  jetifierConfigPath = os.path.join(jetifierPath, "source-transformer", "default.config")
   print("Parsing " + jetifierConfigPath)
   jetifierConfig = JetifierConfig.parse(jetifierConfigPath)
 
diff --git a/work/workmanager/src/main/java/androidx/work/Data.java b/work/workmanager/src/main/java/androidx/work/Data.java
index decca65..f7f9d46 100644
--- a/work/workmanager/src/main/java/androidx/work/Data.java
+++ b/work/workmanager/src/main/java/androidx/work/Data.java
@@ -609,6 +609,7 @@
                 if (valueType == Boolean.class
                         || valueType == Integer.class
                         || valueType == Long.class
+                        || valueType == Float.class
                         || valueType == Double.class
                         || valueType == String.class
                         || valueType == Boolean[].class
diff --git a/work/workmanager/src/main/java/androidx/work/impl/WorkDatabase.java b/work/workmanager/src/main/java/androidx/work/impl/WorkDatabase.java
index d3f01c2..f5fb992 100644
--- a/work/workmanager/src/main/java/androidx/work/impl/WorkDatabase.java
+++ b/work/workmanager/src/main/java/androidx/work/impl/WorkDatabase.java
@@ -42,7 +42,6 @@
 import androidx.work.impl.model.WorkTagDao;
 import androidx.work.impl.model.WorkTypeConverters;
 
-import java.util.Locale;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -68,12 +67,13 @@
             + " WHERE state=" + RUNNING;
 
     // Delete rows in the workspec table that...
-    private static final String PRUNE_SQL_FORMAT = "DELETE FROM workspec WHERE "
+    private static final String PRUNE_SQL_FORMAT_PREFIX = "DELETE FROM workspec WHERE "
             // are completed...
             + "state IN " + COMPLETED_STATES + " AND "
             // and the minimum retention time has expired...
-            + "(period_start_time + minimum_retention_duration) < %d AND"
-            // and all dependents are completed.
+            + "(period_start_time + minimum_retention_duration) < ";
+    // and all dependents are completed.
+    private static final String PRUNE_SQL_FORMAT_SUFFIX = " AND "
             + "(SELECT COUNT(*)=0 FROM dependency WHERE "
             + "    prerequisite_id=id AND "
             + "    work_spec_id NOT IN "
@@ -122,7 +122,7 @@
     }
 
     private static String getPruneSQL() {
-        return String.format(Locale.getDefault(), PRUNE_SQL_FORMAT, getPruneDate());
+        return PRUNE_SQL_FORMAT_PREFIX + getPruneDate() + PRUNE_SQL_FORMAT_SUFFIX;
     }
 
     static long getPruneDate() {
diff --git a/work/workmanager/src/test/java/androidx/work/DataTest.java b/work/workmanager/src/test/java/androidx/work/DataTest.java
index 0039d13..3573b0a 100644
--- a/work/workmanager/src/test/java/androidx/work/DataTest.java
+++ b/work/workmanager/src/test/java/androidx/work/DataTest.java
@@ -116,6 +116,7 @@
     public void testPutAll() {
         Map<String, Object> map = new HashMap<>();
         map.put("int", 1);
+        map.put("float", 99f);
         map.put("String", "two");
         map.put("long array", new long[] { 1L, 2L, 3L });
         map.put("null", null);
@@ -123,6 +124,7 @@
         dataBuilder.putAll(map);
         Data data = dataBuilder.build();
         assertThat(data.getInt("int", 0), is(1));
+        assertThat(data.getFloat("float", 0f), is(99f));
         assertThat(data.getString("String", null), is("two"));
         long[] longArray = data.getLongArray("long array");
         assertThat(longArray, is(notNullValue()));