[go: nahoru, domu]

Merge "Webkit: bump version to 1.3.0-alpha01" into androidx-master-dev am: ced1d122cb

Change-Id: Ia79b65993e049b3e40741a8e38988c0de7174ccb
diff --git a/ads/ads-identifier-benchmark/src/androidTest/java/androidx/ads/identifier/benchmark/AdvertisingIdBenchmark.java b/ads/ads-identifier-benchmark/src/androidTest/java/androidx/ads/identifier/benchmark/AdvertisingIdBenchmark.java
index beba205..c519af8 100644
--- a/ads/ads-identifier-benchmark/src/androidTest/java/androidx/ads/identifier/benchmark/AdvertisingIdBenchmark.java
+++ b/ads/ads-identifier-benchmark/src/androidTest/java/androidx/ads/identifier/benchmark/AdvertisingIdBenchmark.java
@@ -26,7 +26,6 @@
 import android.content.ContextWrapper;
 import android.content.Intent;
 import android.content.pm.PackageManager;
-import android.os.AsyncTask;
 
 import androidx.ads.identifier.AdvertisingIdClient;
 import androidx.ads.identifier.AdvertisingIdInfo;
@@ -165,19 +164,21 @@
     }
 
     @Test
+    @SuppressWarnings("deprecation") /* AsyncTask */
     public void getAdvertisingIdInfo_asyncTask() throws Exception {
         final BenchmarkState state = mBenchmarkRule.getState();
         while (state.keepRunning()) {
-            AdvertisingIdInfo advertisingIdInfo = new AsyncTask<Void, Void, AdvertisingIdInfo>() {
-                @Override
-                protected AdvertisingIdInfo doInBackground(Void... voids) {
-                    try {
-                        return AdvertisingIdClient.getAdvertisingIdInfo(mContext).get();
-                    } catch (Exception e) {
-                        throw new RuntimeException(e);
-                    }
-                }
-            }.execute().get();
+            AdvertisingIdInfo advertisingIdInfo =
+                    new android.os.AsyncTask<Void, Void, AdvertisingIdInfo>() {
+                        @Override
+                        protected AdvertisingIdInfo doInBackground(Void... voids) {
+                            try {
+                                return AdvertisingIdClient.getAdvertisingIdInfo(mContext).get();
+                            } catch (Exception e) {
+                                throw new RuntimeException(e);
+                            }
+                        }
+                    }.execute().get();
             assertThat(advertisingIdInfo.getId()).isEqualTo(DUMMY_AD_ID);
         }
     }
diff --git a/appcompat/appcompat/api/restricted_1.2.0-alpha03.txt b/appcompat/appcompat/api/restricted_1.2.0-alpha03.txt
index 05e8e4a..34f0d38 100644
--- a/appcompat/appcompat/api/restricted_1.2.0-alpha03.txt
+++ b/appcompat/appcompat/api/restricted_1.2.0-alpha03.txt
@@ -1218,6 +1218,7 @@
     method public void onNestedScrollAccepted(android.view.View!, android.view.View!, int, int);
     method public boolean onStartNestedScroll(android.view.View!, android.view.View!, int, int);
     method public void onStopNestedScroll(android.view.View!, int);
+    method public void onWindowSystemUiVisibilityChanged(int);
     method public void restoreToolbarHierarchyState(android.util.SparseArray<android.os.Parcelable!>!);
     method public void saveToolbarHierarchyState(android.util.SparseArray<android.os.Parcelable!>!);
     method public void setActionBarHideOffset(int);
diff --git a/appcompat/appcompat/api/restricted_current.txt b/appcompat/appcompat/api/restricted_current.txt
index 05e8e4a..34f0d38 100644
--- a/appcompat/appcompat/api/restricted_current.txt
+++ b/appcompat/appcompat/api/restricted_current.txt
@@ -1218,6 +1218,7 @@
     method public void onNestedScrollAccepted(android.view.View!, android.view.View!, int, int);
     method public boolean onStartNestedScroll(android.view.View!, android.view.View!, int, int);
     method public void onStopNestedScroll(android.view.View!, int);
+    method public void onWindowSystemUiVisibilityChanged(int);
     method public void restoreToolbarHierarchyState(android.util.SparseArray<android.os.Parcelable!>!);
     method public void saveToolbarHierarchyState(android.util.SparseArray<android.os.Parcelable!>!);
     method public void setActionBarHideOffset(int);
diff --git a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/BaseBasicsTestCase.java b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/BaseBasicsTestCase.java
index 842b072..f2772b9 100644
--- a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/BaseBasicsTestCase.java
+++ b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/BaseBasicsTestCase.java
@@ -92,6 +92,7 @@
     @Test
     @SdkSuppress(minSdkVersion = 16)
     @RequiresApi(16)
+    @SuppressWarnings("deprecation") /* SYSTEM_UI_FLAG_LAYOUT_* */
     public void testFitSystemWindowsReachesContent() {
         final FitWindowsContentLayout content =
                 mActivityTestRule.getActivity().findViewById(R.id.test_content);
@@ -112,6 +113,7 @@
     @Test
     @SdkSuppress(minSdkVersion = 21)
     @RequiresApi(21)
+    @SuppressWarnings("deprecation") /* SYSTEM_UI_FLAG_LAYOUT_* */
     public void testOnApplyWindowInsetsReachesContent() {
         final View content = mActivityTestRule.getActivity().findViewById(R.id.test_content);
         assertNotNull(content);
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/MenuPopupHelper.java b/appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/MenuPopupHelper.java
index 9bc4584..e3e5129 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/MenuPopupHelper.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/MenuPopupHelper.java
@@ -220,6 +220,7 @@
      * @return an initialized popup
      */
     @NonNull
+    @SuppressWarnings("deprecation") /* getDefaultDisplay */
     private MenuPopup createPopup() {
         final WindowManager windowManager = (WindowManager) mContext.getSystemService(
                 Context.WINDOW_SERVICE);
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActionBarOverlayLayout.java b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActionBarOverlayLayout.java
index dcf6f04..3880858 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActionBarOverlayLayout.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActionBarOverlayLayout.java
@@ -230,6 +230,7 @@
     }
 
     @Override
+    @SuppressWarnings("deprecation") /* SYSTEM_UI_FLAG_LAYOUT_* */
     public void onWindowSystemUiVisibilityChanged(int visible) {
         if (Build.VERSION.SDK_INT >= 16) {
             super.onWindowSystemUiVisibilityChanged(visible);
@@ -338,6 +339,7 @@
     }
 
     @Override
+    @SuppressWarnings("deprecation") /* SYSTEM_UI_FLAG_LAYOUT_* */
     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
         pullChildren();
 
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActivityChooserModel.java b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActivityChooserModel.java
index d4832d2..89e3bb9 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActivityChooserModel.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActivityChooserModel.java
@@ -21,7 +21,6 @@
 import android.content.Intent;
 import android.content.pm.ResolveInfo;
 import android.database.DataSetObservable;
-import android.os.AsyncTask;
 import android.text.TextUtils;
 import android.util.Log;
 import android.util.Xml;
@@ -571,8 +570,9 @@
         }
         mHistoricalRecordsChanged = false;
         if (!TextUtils.isEmpty(mHistoryFileName)) {
-            new PersistHistoryAsyncTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,
-                    new ArrayList<HistoricalRecord>(mHistoricalRecords), mHistoryFileName);
+            new PersistHistoryAsyncTask().executeOnExecutor(
+                    android.os.AsyncTask.THREAD_POOL_EXECUTOR,
+                    new ArrayList<>(mHistoricalRecords), mHistoryFileName);
         }
     }
 
@@ -1034,10 +1034,10 @@
     /**
      * Command for persisting the historical records to a file off the UI thread.
      */
-    private final class PersistHistoryAsyncTask extends AsyncTask<Object, Void, Void> {
+    @SuppressWarnings("deprecation") /* AsyncTask */
+    private final class PersistHistoryAsyncTask extends android.os.AsyncTask<Object, Void, Void> {
 
-        PersistHistoryAsyncTask() {
-        }
+        PersistHistoryAsyncTask() {}
 
         @Override
         @SuppressWarnings("unchecked")
diff --git a/appcompat/appcompat/src/main/res/values-en-rCA/strings.xml b/appcompat/appcompat/src/main/res/values-en-rCA/strings.xml
index 15bc1c7..a315670 100644
--- a/appcompat/appcompat/src/main/res/values-en-rCA/strings.xml
+++ b/appcompat/appcompat/src/main/res/values-en-rCA/strings.xml
@@ -16,32 +16,32 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="abc_action_mode_done" msgid="2571498368472823490">"Done"</string>
-    <string name="abc_action_bar_home_description" msgid="7903180715631665059">"Navigate home"</string>
-    <string name="abc_action_bar_up_description" msgid="6794660482873516081">"Navigate up"</string>
-    <string name="abc_action_menu_overflow_description" msgid="1155814932213556626">"More options"</string>
-    <string name="abc_toolbar_collapse_description" msgid="6389460216547290468">"Collapse"</string>
-    <string name="abc_searchview_description_search" msgid="5466662225065974044">"Search"</string>
-    <string name="abc_search_hint" msgid="940844115270746197">"Search…"</string>
-    <string name="abc_searchview_description_query" msgid="908784302972860853">"Search query"</string>
-    <string name="abc_searchview_description_clear" msgid="1769270744562318534">"Clear query"</string>
-    <string name="abc_searchview_description_submit" msgid="8203855622131699655">"Submit query"</string>
-    <string name="abc_searchview_description_voice" msgid="3478748990613108725">"Voice search"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="1798588241954930982">"Choose an app"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="3732416590524162402">"See all"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="9009661856846212431">"Share with <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="2650565705514630347">"Share with"</string>
-    <string name="abc_capital_on" msgid="7831734969929204599">"ON"</string>
-    <string name="abc_capital_off" msgid="3403923230105792483">"OFF"</string>
-    <string name="search_menu_title" msgid="730395136688082741">"Search"</string>
-    <string name="abc_prepend_shortcut_label" msgid="3570106412128999382">"Menu+"</string>
-    <string name="abc_menu_meta_shortcut_label" msgid="8046416353848716905">"Meta+"</string>
-    <string name="abc_menu_ctrl_shortcut_label" msgid="944415252197684443">"Ctrl+"</string>
-    <string name="abc_menu_alt_shortcut_label" msgid="5725160506500770567">"Alt+"</string>
-    <string name="abc_menu_shift_shortcut_label" msgid="3271697756921353410">"Shift+"</string>
-    <string name="abc_menu_sym_shortcut_label" msgid="8327365089695024394">"Sym+"</string>
-    <string name="abc_menu_function_shortcut_label" msgid="4974283687810130415">"Function+"</string>
-    <string name="abc_menu_space_shortcut_label" msgid="2304645930658438191">"space"</string>
-    <string name="abc_menu_enter_shortcut_label" msgid="6840127756824236027">"enter"</string>
-    <string name="abc_menu_delete_shortcut_label" msgid="129742188101734366">"delete"</string>
+    <string name="abc_action_mode_done" msgid="4076576682505996667">"Done"</string>
+    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Navigate home"</string>
+    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Navigate up"</string>
+    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"More options"</string>
+    <string name="abc_toolbar_collapse_description" msgid="1603543279005712093">"Collapse"</string>
+    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Search"</string>
+    <string name="abc_search_hint" msgid="7723749260725869598">"Search…"</string>
+    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Search query"</string>
+    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Clear query"</string>
+    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Submit query"</string>
+    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Voice search"</string>
+    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Choose an app"</string>
+    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"See all"</string>
+    <string name="abc_shareactionprovider_share_with_application" msgid="3300176832234831527">"Share with <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
+    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Share with"</string>
+    <string name="abc_capital_on" msgid="3405795526292276155">"ON"</string>
+    <string name="abc_capital_off" msgid="121134116657445385">"OFF"</string>
+    <string name="search_menu_title" msgid="146198913615257606">"Search"</string>
+    <string name="abc_prepend_shortcut_label" msgid="1351762916121158029">"Menu+"</string>
+    <string name="abc_menu_meta_shortcut_label" msgid="7643535737296831317">"Meta+"</string>
+    <string name="abc_menu_ctrl_shortcut_label" msgid="1324831542140195728">"Ctrl+"</string>
+    <string name="abc_menu_alt_shortcut_label" msgid="1302280443949172191">"Alt+"</string>
+    <string name="abc_menu_shift_shortcut_label" msgid="8126296154200614004">"Shift+"</string>
+    <string name="abc_menu_sym_shortcut_label" msgid="9002602288060866689">"Sym+"</string>
+    <string name="abc_menu_function_shortcut_label" msgid="4792426091847145555">"Function+"</string>
+    <string name="abc_menu_space_shortcut_label" msgid="2378550843553983978">"space"</string>
+    <string name="abc_menu_enter_shortcut_label" msgid="8341180395196749340">"enter"</string>
+    <string name="abc_menu_delete_shortcut_label" msgid="8362206064229013510">"delete"</string>
 </resources>
diff --git a/appcompat/appcompat/src/main/res/values-en-rXC/strings.xml b/appcompat/appcompat/src/main/res/values-en-rXC/strings.xml
index 17646af..2e8e581 100644
--- a/appcompat/appcompat/src/main/res/values-en-rXC/strings.xml
+++ b/appcompat/appcompat/src/main/res/values-en-rXC/strings.xml
@@ -16,32 +16,32 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="abc_action_mode_done" msgid="2571498368472823490">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‏‏‏‎‏‎‏‏‏‏‏‏‎‎‏‏‎‎‎‎‏‎‎‏‎‎‎‏‎‎‏‎‎‏‎‏‎‏‎‎‎‏‏‎‏‏‎‏‏‎‏‏‎‎‎‎‏‎‎Done‎‏‎‎‏‎"</string>
-    <string name="abc_action_bar_home_description" msgid="7903180715631665059">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‎‏‏‎‏‏‎‏‏‏‏‎‎‏‏‏‏‏‏‎‎‏‏‏‎‏‏‏‎‏‏‏‏‎‎‎‏‎‏‎‏‏‏‏‏‏‎‏‎‎‎‏‏‎Navigate home‎‏‎‎‏‎"</string>
-    <string name="abc_action_bar_up_description" msgid="6794660482873516081">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‎‏‎‏‏‎‏‏‏‏‎‏‏‏‎‏‏‎‏‎‏‏‎‏‎‎‎‏‏‎‎‎‎‏‏‏‏‎‏‏‎‎‎‎‎‎‎‏‏‎‎‎‏‎Navigate up‎‏‎‎‏‎"</string>
-    <string name="abc_action_menu_overflow_description" msgid="1155814932213556626">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‎‎‎‎‏‎‏‎‎‏‎‎‎‏‏‏‏‎‎‎‏‏‏‎‏‎‎‏‏‏‎‎‏‎‏‎‏‏‏‎‎‏‏‎‎‏‎‏‏‎‎‏‎‎‏‎‎More options‎‏‎‎‏‎"</string>
-    <string name="abc_toolbar_collapse_description" msgid="6389460216547290468">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‎‏‎‏‎‏‏‏‏‏‎‏‏‎‎‎‎‏‏‎‏‏‎‏‏‎‏‎‎‎‏‏‏‎‎‏‎‏‎‏‎‏‎‏‏‎‏‎‏‏‎‎‏‎‎‎Collapse‎‏‎‎‏‎"</string>
-    <string name="abc_searchview_description_search" msgid="5466662225065974044">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‏‏‏‏‏‎‎‎‏‎‏‎‏‎‎‏‎‎‎‎‎‎‎‎‎‎‏‏‎‏‎‏‎‎‏‏‎‎‏‎‎‎‏‏‏‎‎‎Search‎‏‎‎‏‎"</string>
-    <string name="abc_search_hint" msgid="940844115270746197">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‏‎‎‎‎‏‏‏‎‏‎‎‎‏‏‎‎‏‎‏‏‏‏‎‎‏‏‏‎‏‏‏‏‏‎‏‏‏‎‏‎‏‏‎‎‎‎‎‎‎‏‎‏‎‏‎‏‎Search…‎‏‎‎‏‎"</string>
-    <string name="abc_searchview_description_query" msgid="908784302972860853">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‎‏‎‎‏‏‏‎‎‏‎‏‎‎‏‏‎‏‎‎‎‎‎‏‎‎‎‏‏‎‏‎‎‎‎‏‎‎‏‎‏‏‏‏‏‏‎‎‏‏‎‏‏‎‏‎‏‎Search query‎‏‎‎‏‎"</string>
-    <string name="abc_searchview_description_clear" msgid="1769270744562318534">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‏‎‎‎‏‏‎‏‏‎‏‏‎‏‏‎‎‏‎‏‏‏‏‎‎‏‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‎‏‏‏‏‎‎‏‏‎‎‎‏‏‎‎Clear query‎‏‎‎‏‎"</string>
-    <string name="abc_searchview_description_submit" msgid="8203855622131699655">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‏‎‎‏‏‏‏‏‎‎‏‏‎‎‏‏‏‎‎‎‏‏‏‏‎‎‎‏‏‏‎‎‎‎‎‎‎‏‎‎‏‏‏‏‏‏‎‎‎‏‏‏‎Submit query‎‏‎‎‏‎"</string>
-    <string name="abc_searchview_description_voice" msgid="3478748990613108725">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‏‎‎‏‏‎‎‎‎‎‏‏‏‏‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‎‏‎Voice search‎‏‎‎‏‎"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="1798588241954930982">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‏‏‏‏‎‏‎‏‏‏‎‏‏‏‏‎‎‏‏‏‏‎‏‎‎‎‎‎‏‎‏‎‏‏‏‎‏‎‏‏‎‎‎‎‎‎‎‏‎‎‏‎‎‏‏‎‎Choose an app‎‏‎‎‏‎"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="3732416590524162402">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‎‎‏‏‎‎‎‎‏‏‎‏‎‏‎‎‎‏‏‏‎‏‎‎‏‎‎‏‏‏‏‏‏‏‎‏‏‏‏‎‏‎‎‎‎‏‎‏‏‎‎‎‏‎‎See all‎‏‎‎‏‎"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="9009661856846212431">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‎‏‏‏‎‏‏‏‎‏‏‎‏‎‎‎‏‏‎‏‏‎‏‎‏‎‎‏‏‏‏‎Share with ‎‏‎‎‏‏‎<xliff:g id="APPLICATION_NAME">%s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="2650565705514630347">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‎‎‏‏‎‎‏‎‎‎‏‎‏‏‎‎‏‏‎‏‏‏‎‏‏‏‎‏‎‎‎‎‏‏‎‎‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‎‎‏‎‏‏‎Share with‎‏‎‎‏‎"</string>
-    <string name="abc_capital_on" msgid="7831734969929204599">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎‏‏‏‎‏‎‏‏‏‏‏‏‎‎‏‏‎‏‎‎‎‏‎‏‎‎‎‎‎‏‏‎‏‏‏‎‏‏‏‎ON‎‏‎‎‏‎"</string>
-    <string name="abc_capital_off" msgid="3403923230105792483">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‏‎‎‏‏‏‏‎‏‎‎‏‎‏‎‏‎‎‎‏‎‎‏‎‎‏‎‎‏‏‏‎‏‎‎‏‎‎‏‏‏‏‏‏‎‏‏‏‏‏‏‏‎‎‎‏‏‎OFF‎‏‎‎‏‎"</string>
-    <string name="search_menu_title" msgid="730395136688082741">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‏‎‎‎‏‎‎‎‏‎‏‏‏‎‎‎‏‎‏‎‎‎‎‎‎‏‏‏‎‎‏‎‏‏‏‏‏‏‎‏‏‏‎‏‎‎‏‏‏‏‎‎‏‏‎‏‎‏‎Search‎‏‎‎‏‎"</string>
-    <string name="abc_prepend_shortcut_label" msgid="3570106412128999382">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‎‏‎‏‏‏‎‎‏‎‎‎‎‏‏‎‏‏‏‎‏‏‏‎‏‏‎‎‏‎‏‎‎‏‎‏‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‎Menu+‎‏‎‎‏‎"</string>
-    <string name="abc_menu_meta_shortcut_label" msgid="8046416353848716905">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‏‎‏‎‏‎‎‏‏‏‎‏‎‎‎‎‏‎‏‎‏‏‎‎‎‏‏‎‎‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‏‎‏‎‎‏‎Meta+‎‏‎‎‏‎"</string>
-    <string name="abc_menu_ctrl_shortcut_label" msgid="944415252197684443">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‏‎‎‎‏‏‎‏‏‎‎‏‏‏‏‎‎‏‎‏‎‏‎‏‏‎‎‎‎‏‎‏‏‏‎‏‏‎‏‎‎‎‎‏‏‎‏‎‎‏‏‎‏‏‎‏‏‎Ctrl+‎‏‎‎‏‎"</string>
-    <string name="abc_menu_alt_shortcut_label" msgid="5725160506500770567">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‏‏‎‎‏‏‏‏‎‏‏‎‏‏‎‎‏‎‎‏‎‏‏‏‎‎‎‎‎‎‎‎‎‏‎‎‏‎‏‏‏‎‏‎‏‏‎‎‎‎‎‏‏‏‎Alt+‎‏‎‎‏‎"</string>
-    <string name="abc_menu_shift_shortcut_label" msgid="3271697756921353410">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‎‏‎‏‏‎‎‏‏‏‎‏‏‎‎‏‏‏‏‏‎‎‎‏‏‎‏‎‎‏‎‏‎‏‏‎‏‏‏‏‎‏‎‏‎‏‎‏‎‎‏‏‎‎‎‎‏‎‎Shift+‎‏‎‎‏‎"</string>
-    <string name="abc_menu_sym_shortcut_label" msgid="8327365089695024394">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‎‏‎‎‎‎‏‎‏‏‏‏‏‎‎‏‏‎‏‏‎‏‏‏‎‎‎‏‏‎‎‏‎‎‎‎‏‎‏‏‎‎‎‏‎‏‎‎‎‎‏‎‏‎‎Sym+‎‏‎‎‏‎"</string>
-    <string name="abc_menu_function_shortcut_label" msgid="4974283687810130415">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‎‎‎‏‎‎‎‎‎‏‏‎‏‎‎‏‎‏‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‎‎‎‏‏‏‏‎‏‏‏‏‎Function+‎‏‎‎‏‎"</string>
-    <string name="abc_menu_space_shortcut_label" msgid="2304645930658438191">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‏‎‏‏‎‏‏‏‏‏‎‎‏‎‎‎‎‏‏‏‎‎‎‎‏‎‏‏‏‏‎space‎‏‎‎‏‎"</string>
-    <string name="abc_menu_enter_shortcut_label" msgid="6840127756824236027">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‎‏‏‏‎‏‏‎‏‎‎‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‏‎‎‏‎‏‏‏‏‎‎‏‏‎‎‎‏‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎enter‎‏‎‎‏‎"</string>
-    <string name="abc_menu_delete_shortcut_label" msgid="129742188101734366">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‎‏‏‏‏‎‎‏‏‎‎‏‏‏‎‏‏‏‏‏‏‎‏‎‏‎‏‎‎‏‎‏‎‏‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‎‏‏‏‏‎‎delete‎‏‎‎‏‎"</string>
+    <string name="abc_action_mode_done" msgid="4076576682505996667">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‎‎‏‎‎‏‎‎‏‎‏‏‏‎‏‎‎‎‏‏‏‎‎‏‎‎‏‏‏‎‎‏‎‎‎‏‏‎‏‎‎‏‎‎‎‎‏‎‎‏‎‏‏‏‏‎‏‏‎Done‎‏‎‎‏‎"</string>
+    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‏‏‎‏‏‎‏‏‏‎‎‏‎‎‎‏‏‎‏‏‏‎‎‏‏‏‎‎‏‎‎‏‏‎‎‎‏‎Navigate home‎‏‎‎‏‎"</string>
+    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‏‏‎‏‎‎‎‎‎‏‏‏‎‏‎‎‎‎‎‏‏‎‏‏‎‎‏‎‏‎‏‏‏‏‏‎‎Navigate up‎‏‎‎‏‎"</string>
+    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‎‏‏‏‎‎‏‏‏‎‎‎‏‎‎‏‏‏‎‏‎‎‏‏‎‎‏‎‎‏‎‏‎‏‎‎‎‏‏‏‎‏‎‎‎‏‏‎‏‎‎‎‏‎‎‏‏‎‎More options‎‏‎‎‏‎"</string>
+    <string name="abc_toolbar_collapse_description" msgid="1603543279005712093">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‏‏‎‎‏‎‎‎‎‎‎‏‏‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‏‎‎‎‏‏‏‎‎‎‏‏‎‎‏‏‎‏‏‏‏‏‎‏‏‎‏‏‏‎‏‎Collapse‎‏‎‎‏‎"</string>
+    <string name="abc_searchview_description_search" msgid="8264924765203268293">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‏‎‎‏‎‏‏‏‎‏‎‎‏‎‏‎‎‏‎‎‎‏‏‎‏‎‏‎‏‎‏‎‎‎‏‎‏‎‎‎‎‎‎‏‎‏‏‎‎‎‏‎‏‎Search‎‏‎‎‏‎"</string>
+    <string name="abc_search_hint" msgid="7723749260725869598">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‎‎‎‏‏‏‏‏‎‎‏‎‏‏‏‏‎‎‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‏‏‏‎‎Search…‎‏‎‎‏‎"</string>
+    <string name="abc_searchview_description_query" msgid="2550479030709304392">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‏‏‎‏‏‎‎‏‎‏‎‎‎‏‏‏‏‏‎‎‏‎‏‎‏‎‎‏‎‏‏‎‎‎‏‎‎‎‎‎‏‎‏‎‏‏‏‏‎‎‎‏‎‎‏‎‎‎‎Search query‎‏‎‎‏‎"</string>
+    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‏‎‎‏‏‏‎‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‏‎‏‎‎‏‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‎‎‎‎‎‎‎‎‎‎‏‎‎‏‎Clear query‎‏‎‎‏‎"</string>
+    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‎‏‏‏‎‏‏‎‎‏‎‎‏‎‏‎‎‏‎‏‎‏‎‏‎‏‎‎‎‎‎‏‏‎‎‎‎‎‏‏‎‎‎‏‏‎‎‎‎‎‎‎‎Submit query‎‏‎‎‏‎"</string>
+    <string name="abc_searchview_description_voice" msgid="893419373245838918">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‎‎‏‏‎‎‏‏‎‎‎‎‏‎‎‎‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‏‏‎‎‎‏‎‏‎‎‏‏‎‏‏‎‎‏‎‎‎‏‏‎‎Voice search‎‏‎‎‏‎"</string>
+    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎‎‎‏‏‎‎‏‎‎‏‏‏‎‎‎‏‏‏‏‏‏‎‎‎‏‎‎‏‎‏‎‎‎‏‏‎‏‎‏‏‎‎‏‏‏‏‏‎‏‎‎‏‏‏‏‎‎Choose an app‎‏‎‎‏‎"</string>
+    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‎‎‏‏‎‏‎‏‏‎‏‏‏‏‏‎‎‏‏‏‎‎‏‏‏‏‎‏‎‎‏‎‎‎‎‏‏‎‎‎‎‏‏‎‏‎‎‏‏‏‏‎‏‎See all‎‏‎‎‏‎"</string>
+    <string name="abc_shareactionprovider_share_with_application" msgid="3300176832234831527">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‎‏‏‏‎‎‏‏‎‎‏‎‎‏‎‏‎‏‎‏‎‏‏‎‎‎‎‎‎‎‎‏‎‏‎‏‎‏‎‏‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‏‏‎Share with ‎‏‎‎‏‏‎<xliff:g id="APPLICATION_NAME">%s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‏‎‏‏‏‏‎‎‏‏‏‏‏‏‎‏‏‏‏‎‏‎‎‎‏‎‏‎‏‏‏‎‎‏‏‎‎‎‎‎‏‎‏‎‏‎‏‏‎‏‎‏‏‎‏‎‎‎Share with‎‏‎‎‏‎"</string>
+    <string name="abc_capital_on" msgid="3405795526292276155">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‏‎‏‎‎‎‎‏‏‏‏‎‏‎‎‎‎‏‏‏‏‏‏‎‎‏‎‎‎‏‎‏‎‎‏‎‎‎‏‎‎‎‎‎‎‎‎‏‏‏‎‏‏‏‎‏‏‎ON‎‏‎‎‏‎"</string>
+    <string name="abc_capital_off" msgid="121134116657445385">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‎‏‏‏‎‏‎‏‏‏‎‎‏‎‏‏‎‏‎‏‏‎‏‎‏‏‎‎‏‎‏‏‎‎‏‏‎‎‎‏‏‎‎‎‎‏‏‏‎‏‎‎‎‎‎‏‎‎‏‎OFF‎‏‎‎‏‎"</string>
+    <string name="search_menu_title" msgid="146198913615257606">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‎‏‎‎‎‎‎‎‏‏‏‎‏‏‎‎‏‏‏‎‎‏‎‎‎‏‏‎‎‏‎‏‎‎‎‏‎‎‏‎‏‎‏‏‏‏‎‎‎‎‎‎‎‎‎‎‏‏‎‎Search‎‏‎‎‏‎"</string>
+    <string name="abc_prepend_shortcut_label" msgid="1351762916121158029">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‎‏‏‎‎‎‎‏‎‎‏‏‎‏‏‎‏‎‎‏‏‎‏‎‏‏‏‎‏‎‎‏‏‏‏‏‏‎‎‏‎‏‎‏‎‎‎‎‏‏‎‎‎‏‏‎‏‎Menu+‎‏‎‎‏‎"</string>
+    <string name="abc_menu_meta_shortcut_label" msgid="7643535737296831317">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‏‎‎‏‏‎‏‎‎‏‎‏‏‎‏‎‎‎‎‎‏‏‎‎‎‎‎‎‏‏‎‎‏‎‏‎‎‏‏‎‎‎‎‏‏‎‏‎‏‎‏‎‏‎Meta+‎‏‎‎‏‎"</string>
+    <string name="abc_menu_ctrl_shortcut_label" msgid="1324831542140195728">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‎‎‏‏‎‎‎‏‎‏‎‏‏‏‏‏‏‎‏‎‎‎‏‎‎‏‎‏‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‎‎‏‎‎‎‎‎Ctrl+‎‏‎‎‏‎"</string>
+    <string name="abc_menu_alt_shortcut_label" msgid="1302280443949172191">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‎‎‎‎‏‎‎‏‎‏‎‏‎‎‎‎‏‎‎‏‎‏‎‎‏‏‏‏‏‏‎‏‏‏‎‎‎‎‏‏‏‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎Alt+‎‏‎‎‏‎"</string>
+    <string name="abc_menu_shift_shortcut_label" msgid="8126296154200614004">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‎‎‏‏‎‎‏‏‎‎‏‏‏‎‏‎‎‏‏‎‎‎‎‎‏‏‎‏‎‏‏‎‎‎‎‎‎‎‎‏‎‎‏‎‎‎‏‏‏‎‏‎‎‎Shift+‎‏‎‎‏‎"</string>
+    <string name="abc_menu_sym_shortcut_label" msgid="9002602288060866689">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‏‏‏‏‎‏‎‏‎‏‏‎‎‎‏‎‏‎‏‎‏‎‎‏‎‎‏‏‏‏‏‏‏‎‎‏‎‏‎‎‎‎‎‏‎‎‎‎‎‎‏‎Sym+‎‏‎‎‏‎"</string>
+    <string name="abc_menu_function_shortcut_label" msgid="4792426091847145555">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‎‎‎‎‏‎‎‎‎‏‏‏‏‎‎‎‏‎‎‎‏‏‏‎‏‎‎‎‎‎‏‏‎‏‏‏‎‎‏‏‎‏‏‎‎‎‎‏‎‏‎‎‏‏‎Function+‎‏‎‎‏‎"</string>
+    <string name="abc_menu_space_shortcut_label" msgid="2378550843553983978">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‎‏‎‎‎‎‎‎‏‎‎‏‎‎‏‏‏‏‎‏‏‎‎‎‏‏‏‏‎‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‏‎‏‏‎‏‏‏‏‎‏‎‏‎‎space‎‏‎‎‏‎"</string>
+    <string name="abc_menu_enter_shortcut_label" msgid="8341180395196749340">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‎‎‎‎‏‏‏‎‏‎‎‏‏‎‏‏‎‎‎‎‎‎‎‏‏‏‏‏‏‎‎‏‎‎‏‏‏‏‎‎‏‎‏‏‎‎‎‎‏‏‏‎‎‎enter‎‏‎‎‏‎"</string>
+    <string name="abc_menu_delete_shortcut_label" msgid="8362206064229013510">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‎‏‏‎‎‏‎‎‎‎‏‏‎‎‎‎‏‏‏‎‎‎‏‎‎‏‏‎‎‏‏‏‏‏‏‎‎‏‏‎‏‏‎‎‎‎‎‎‎‎‏‏‎‎delete‎‏‎‎‏‎"</string>
 </resources>
diff --git a/biometric/biometric/src/main/java/androidx/biometric/BiometricFragment.java b/biometric/biometric/src/main/java/androidx/biometric/BiometricFragment.java
index 409a620..c7e13a2 100644
--- a/biometric/biometric/src/main/java/androidx/biometric/BiometricFragment.java
+++ b/biometric/biometric/src/main/java/androidx/biometric/BiometricFragment.java
@@ -258,6 +258,7 @@
 
     @Override
     @Nullable
+    @SuppressWarnings("deprecation") /* setDeviceCredentialAllowed */
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
             @Nullable Bundle savedInstanceState) {
         // Start the actual authentication when the fragment is attached.
diff --git a/browser/browser/src/androidTest/java/androidx/browser/customtabs/PostMessageTest.java b/browser/browser/src/androidTest/java/androidx/browser/customtabs/PostMessageTest.java
index 5d68340..ee74d68 100644
--- a/browser/browser/src/androidTest/java/androidx/browser/customtabs/PostMessageTest.java
+++ b/browser/browser/src/androidTest/java/androidx/browser/customtabs/PostMessageTest.java
@@ -24,7 +24,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
-import android.os.AsyncTask;
 import android.os.Bundle;
 
 import androidx.annotation.NonNull;
@@ -71,6 +70,7 @@
     private CustomTabsSession mSession;
 
     @Before
+    @SuppressWarnings("deprecation") /* AsyncTask */
     public void setup() {
         // Bind to PostMessageService only after CustomTabsService sends the callback to do so. This
         // callback is sent after requestPostMessageChannel is called.
@@ -79,7 +79,7 @@
             public void extraCallback(@NonNull String callbackName, Bundle args) {
                 if (TestCustomTabsService.CALLBACK_BIND_TO_POST_MESSAGE.equals(callbackName)) {
                     // This gets run on the UI thread, where mServiceRule.bindService will not work.
-                    AsyncTask.THREAD_POOL_EXECUTOR.execute(new Runnable() {
+                    android.os.AsyncTask.THREAD_POOL_EXECUTOR.execute(new Runnable() {
                         @Override
                         public void run() {
                             try {
diff --git a/browser/browser/src/androidTest/java/androidx/browser/trusted/TrustedWebActivityServiceConnectionPoolTest.java b/browser/browser/src/androidTest/java/androidx/browser/trusted/TrustedWebActivityServiceConnectionPoolTest.java
index e16d431..e465ab3 100644
--- a/browser/browser/src/androidTest/java/androidx/browser/trusted/TrustedWebActivityServiceConnectionPoolTest.java
+++ b/browser/browser/src/androidTest/java/androidx/browser/trusted/TrustedWebActivityServiceConnectionPoolTest.java
@@ -23,7 +23,6 @@
 
 import android.content.Context;
 import android.net.Uri;
-import android.os.AsyncTask;
 import android.os.RemoteException;
 
 import androidx.browser.customtabs.EnableComponentsTestRule;
@@ -49,6 +48,7 @@
 
 @RunWith(AndroidJUnit4.class)
 @MediumTest
+@SuppressWarnings("deprecation") /* AsyncTask */
 public class TrustedWebActivityServiceConnectionPoolTest {
     private static final Uri GOOD_SCOPE = Uri.parse("https://www.example.com/notifications");
     private static final Uri BAD_SCOPE = Uri.parse("https://www.notexample.com");
@@ -84,7 +84,8 @@
         final AtomicBoolean connected = new AtomicBoolean();
 
         ListenableFuture<TrustedWebActivityServiceConnection> serviceFuture =
-                mManager.connect(GOOD_SCOPE, mTrustedPackages, AsyncTask.THREAD_POOL_EXECUTOR);
+                mManager.connect(GOOD_SCOPE, mTrustedPackages,
+                        android.os.AsyncTask.THREAD_POOL_EXECUTOR);
 
         serviceFuture.addListener(() -> {
             try {
@@ -94,7 +95,7 @@
             } catch (RemoteException | ExecutionException | InterruptedException e) {
                 throw new RuntimeException(e);
             }
-        }, AsyncTask.THREAD_POOL_EXECUTOR);
+        }, android.os.AsyncTask.THREAD_POOL_EXECUTOR);
 
         PollingCheck.waitFor(connected::get);
     }
@@ -104,7 +105,8 @@
         assertFalse(mManager.serviceExistsForScope(BAD_SCOPE, mTrustedPackages));
 
         ListenableFuture<TrustedWebActivityServiceConnection> serviceFuture =
-                mManager.connect(BAD_SCOPE, mTrustedPackages, AsyncTask.THREAD_POOL_EXECUTOR);
+                mManager.connect(BAD_SCOPE, mTrustedPackages,
+                        android.os.AsyncTask.THREAD_POOL_EXECUTOR);
 
         try {
             serviceFuture.get();
@@ -120,10 +122,10 @@
     public void testMultipleExecutions() {
         final AtomicInteger count = new AtomicInteger();
 
-        mManager.connect(GOOD_SCOPE, mTrustedPackages, AsyncTask.THREAD_POOL_EXECUTOR)
-                .addListener(count::incrementAndGet, AsyncTask.THREAD_POOL_EXECUTOR);
-        mManager.connect(GOOD_SCOPE, mTrustedPackages, AsyncTask.THREAD_POOL_EXECUTOR)
-                .addListener(count::incrementAndGet, AsyncTask.THREAD_POOL_EXECUTOR);
+        mManager.connect(GOOD_SCOPE, mTrustedPackages, android.os.AsyncTask.THREAD_POOL_EXECUTOR)
+                .addListener(count::incrementAndGet, android.os.AsyncTask.THREAD_POOL_EXECUTOR);
+        mManager.connect(GOOD_SCOPE, mTrustedPackages, android.os.AsyncTask.THREAD_POOL_EXECUTOR)
+                .addListener(count::incrementAndGet, android.os.AsyncTask.THREAD_POOL_EXECUTOR);
 
         PollingCheck.waitFor(() -> count.get() == 2);
     }
diff --git a/browser/browser/src/main/java/androidx/browser/browseractions/BrowserServiceFileProvider.java b/browser/browser/src/main/java/androidx/browser/browseractions/BrowserServiceFileProvider.java
index 319f162..3bde75d 100644
--- a/browser/browser/src/main/java/androidx/browser/browseractions/BrowserServiceFileProvider.java
+++ b/browser/browser/src/main/java/androidx/browser/browseractions/BrowserServiceFileProvider.java
@@ -27,7 +27,6 @@
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.net.Uri;
-import android.os.AsyncTask;
 import android.os.Build;
 import android.os.ParcelFileDescriptor;
 import android.util.Log;
@@ -61,6 +60,7 @@
  */
 @Deprecated
 @RestrictTo(LIBRARY)
+@SuppressWarnings("deprecation") /* AsyncTask */
 public final class BrowserServiceFileProvider extends FileProvider {
     private static final String TAG = "BrowserServiceFP";
     private static final String AUTHORITY_SUFFIX = ".image_provider";
@@ -74,7 +74,7 @@
     @SuppressWarnings("WeakerAccess") /* synthetic access */
     static Object sFileCleanupLock = new Object();
 
-    private static class FileCleanupTask extends AsyncTask<Void, Void, Void> {
+    private static class FileCleanupTask extends android.os.AsyncTask<Void, Void, Void> {
         private final Context mAppContext;
         private static final long IMAGE_RETENTION_DURATION = TimeUnit.DAYS.toMillis(7);
         private static final long CLEANUP_REQUIRED_TIME_SPAN = TimeUnit.DAYS.toMillis(7);
@@ -130,7 +130,7 @@
         }
     }
 
-    private static class FileSaveTask extends AsyncTask<String, Void, Void> {
+    private static class FileSaveTask extends android.os.AsyncTask<String, Void, Void> {
         private final Context mAppContext;
         private final String mFilename;
         private final Bitmap mBitmap;
@@ -155,7 +155,8 @@
 
         @Override
         protected void onPostExecute(Void result) {
-            new FileCleanupTask(mAppContext).executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);
+            new FileCleanupTask(mAppContext)
+                    .executeOnExecutor(android.os.AsyncTask.SERIAL_EXECUTOR);
         }
 
         private void saveFileIfNeededBlocking() {
@@ -221,6 +222,7 @@
      */
     @UiThread
     @NonNull
+    @SuppressWarnings("deprecation") /* AsyncTask */
     public static ResolvableFuture<Uri> saveBitmap(@NonNull Context context, @NonNull Bitmap bitmap,
             @NonNull String name, int version) {
         String filename = name + "_" + Integer.toString(version);
@@ -228,7 +230,7 @@
 
         ResolvableFuture<Uri> result = ResolvableFuture.create();
         new FileSaveTask(context, filename, bitmap, uri, result)
-                .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+                .executeOnExecutor(android.os.AsyncTask.THREAD_POOL_EXECUTOR);
         return result;
     }
 
@@ -268,11 +270,12 @@
      *         completed or with an IOException describing the reason for failure.
      */
     @NonNull
+    @SuppressWarnings("deprecation") /* AsyncTask */
     public static ListenableFuture<Bitmap> loadBitmap(@NonNull final ContentResolver resolver,
             @NonNull final Uri uri) {
         final ResolvableFuture<Bitmap> result = ResolvableFuture.create();
 
-        AsyncTask.THREAD_POOL_EXECUTOR.execute(new Runnable() {
+        android.os.AsyncTask.THREAD_POOL_EXECUTOR.execute(new Runnable() {
             @Override
             public void run() {
                 try {
diff --git a/browser/browser/src/main/java/androidx/browser/trusted/TrustedWebActivityServiceConnectionPool.java b/browser/browser/src/main/java/androidx/browser/trusted/TrustedWebActivityServiceConnectionPool.java
index 2110f57..691d1ce 100644
--- a/browser/browser/src/main/java/androidx/browser/trusted/TrustedWebActivityServiceConnectionPool.java
+++ b/browser/browser/src/main/java/androidx/browser/trusted/TrustedWebActivityServiceConnectionPool.java
@@ -22,7 +22,6 @@
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.net.Uri;
-import android.os.AsyncTask;
 import android.util.Log;
 
 import androidx.annotation.MainThread;
@@ -100,6 +99,7 @@
      */
     @MainThread
     @NonNull
+    @SuppressWarnings("deprecation") /* AsyncTask */
     public ListenableFuture<TrustedWebActivityServiceConnection> connect(
             @NonNull final Uri scope,
             @NonNull Set<Token> possiblePackages,
@@ -128,7 +128,8 @@
         return newConnection.getServiceWrapper();
     }
 
-    static class BindToServiceAsyncTask extends AsyncTask<Void, Void, Exception> {
+    @SuppressWarnings("deprecation") /* AsyncTask */
+    static class BindToServiceAsyncTask extends android.os.AsyncTask<Void, Void, Exception> {
         private final Context mAppContext;
         private final Intent mIntent;
         private final ConnectionHolder mConnection;
diff --git a/browser/browser/src/test/java/androidx/browser/trusted/ConnectionHolderTest.java b/browser/browser/src/test/java/androidx/browser/trusted/ConnectionHolderTest.java
index 9460530..99ac592 100644
--- a/browser/browser/src/test/java/androidx/browser/trusted/ConnectionHolderTest.java
+++ b/browser/browser/src/test/java/androidx/browser/trusted/ConnectionHolderTest.java
@@ -23,7 +23,6 @@
 import static org.mockito.Mockito.when;
 
 import android.content.ComponentName;
-import android.os.AsyncTask;
 import android.os.IBinder;
 import android.os.RemoteException;
 
@@ -140,6 +139,7 @@
     }
 
     @Test
+    @SuppressWarnings("deprecation") /* AsyncTask */
     public void futureSetWithCorrectObject() throws InterruptedException, RemoteException {
         final int smallIconId = 56;
 
@@ -163,7 +163,7 @@
             } catch (ExecutionException | InterruptedException | RemoteException e) {
                 e.printStackTrace();
             }
-        }, AsyncTask.THREAD_POOL_EXECUTOR);
+        }, android.os.AsyncTask.THREAD_POOL_EXECUTOR);
 
         assertTrue(methodCalledLatch.await(200, TimeUnit.MILLISECONDS));
         assertTrue(noExceptionLatch.await(200, TimeUnit.MILLISECONDS));
diff --git a/buildSrc/src/main/kotlin/androidx/build/AndroidXExtension.kt b/buildSrc/src/main/kotlin/androidx/build/AndroidXExtension.kt
index 3b466e5..aa19d5d 100644
--- a/buildSrc/src/main/kotlin/androidx/build/AndroidXExtension.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/AndroidXExtension.kt
@@ -78,7 +78,7 @@
     var url = SUPPORT_URL
     private var licenses: MutableCollection<License> = ArrayList()
     var publish: Publish = Publish.NONE
-    var failOnDeprecationWarnings = true
+    var failOnDeprecationWarnings = false // TODO: Set back to true before upstreaming to AOSP
 
     var compilationTarget: CompilationTarget = CompilationTarget.DEVICE
 
diff --git a/buildSrc/src/main/kotlin/androidx/build/SupportConfig.kt b/buildSrc/src/main/kotlin/androidx/build/SupportConfig.kt
index a86f850..f92212b 100644
--- a/buildSrc/src/main/kotlin/androidx/build/SupportConfig.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/SupportConfig.kt
@@ -31,7 +31,7 @@
      * Either an integer value or a pre-release platform code, prefixed with "android-" (ex.
      * "android-28" or "android-Q") as you would see within the SDK's platforms directory.
      */
-    const val COMPILE_SDK_VERSION = "android-29"
+    const val COMPILE_SDK_VERSION = "android-R"
 
     /**
      * The Android SDK version to use for targetSdkVersion meta-data.
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/CaptureSessionTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/CaptureSessionTest.java
index 8eadbd1..c876d69 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/CaptureSessionTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/CaptureSessionTest.java
@@ -42,7 +42,6 @@
 import android.media.Image;
 import android.media.ImageReader;
 import android.media.ImageReader.OnImageAvailableListener;
-import android.os.AsyncTask;
 import android.os.Handler;
 import android.os.HandlerThread;
 import android.view.Surface;
@@ -639,6 +638,7 @@
     }
 
     @Test
+    @SuppressWarnings("deprecation") /* AsyncTask */
     public void cancelOpenCaptureSessionListenableFuture_shouldNoop() {
         CaptureSession captureSession = createCaptureSession(mTestParameters0);
         captureSession.setSessionConfig(mTestParameters0.mSessionConfig);
@@ -647,7 +647,8 @@
         ArgumentCaptor<Throwable> throwableCaptor = ArgumentCaptor.forClass(Throwable.class);
         ListenableFuture<Void> openingFuture = captureSession.open(mTestParameters0.mSessionConfig,
                 mCameraDeviceHolder.get());
-        Futures.addCallback(openingFuture, mockFutureCallback, AsyncTask.THREAD_POOL_EXECUTOR);
+        Futures.addCallback(openingFuture, mockFutureCallback,
+                android.os.AsyncTask.THREAD_POOL_EXECUTOR);
         openingFuture.cancel(true);
 
         // The captureSession opening should callback onFailure with a CancellationException.
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatDeviceTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatDeviceTest.java
index 5e51f84..9581a29 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatDeviceTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatDeviceTest.java
@@ -27,7 +27,6 @@
 import android.hardware.camera2.CameraDevice;
 import android.hardware.camera2.CameraManager;
 import android.hardware.camera2.params.StreamConfigurationMap;
-import android.os.AsyncTask;
 import android.util.Size;
 import android.view.Surface;
 
@@ -143,6 +142,7 @@
     // This test should not run on the main thread since it will block the main thread and
     // deadlock on API <= 28.
     @Test
+    @SuppressWarnings("deprecation") /* AsyncTask */
     public void canConfigureCaptureSession() throws InterruptedException, CameraAccessException {
         OutputConfigurationCompat outputConfig = new OutputConfigurationCompat(mSurface);
 
@@ -165,7 +165,7 @@
 
         SessionConfigurationCompat sessionConfig = new SessionConfigurationCompat(
                 SessionConfigurationCompat.SESSION_REGULAR,
-                Collections.singletonList(outputConfig), AsyncTask.THREAD_POOL_EXECUTOR,
+                Collections.singletonList(outputConfig), android.os.AsyncTask.THREAD_POOL_EXECUTOR,
                 stateCallback);
 
         try {
diff --git a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/ImageAnalysisConfigProvider.java b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/ImageAnalysisConfigProvider.java
index 9069061..c9f9b72 100644
--- a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/ImageAnalysisConfigProvider.java
+++ b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/ImageAnalysisConfigProvider.java
@@ -46,6 +46,7 @@
 
     @Override
     @NonNull
+    @SuppressWarnings("deprecation") /* defaultDisplay */
     public ImageAnalysisConfig getConfig(@Nullable CameraInfo cameraInfo) {
         ImageAnalysis.Builder builder = ImageAnalysis.Builder.fromConfig(
                 ImageAnalysis.DEFAULT_CONFIG.getConfig(cameraInfo));
diff --git a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/ImageCaptureConfigProvider.java b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/ImageCaptureConfigProvider.java
index fb303dd..7ebc13e2 100644
--- a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/ImageCaptureConfigProvider.java
+++ b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/ImageCaptureConfigProvider.java
@@ -46,6 +46,7 @@
 
     @Override
     @NonNull
+    @SuppressWarnings("deprecation") /* defaultDisplay */
     public ImageCaptureConfig getConfig(@Nullable CameraInfo cameraInfo) {
         ImageCapture.Builder builder = ImageCapture.Builder.fromConfig(
                 ImageCapture.DEFAULT_CONFIG.getConfig(cameraInfo));
diff --git a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/PreviewConfigProvider.java b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/PreviewConfigProvider.java
index ab6bbca..d05ea1e 100644
--- a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/PreviewConfigProvider.java
+++ b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/PreviewConfigProvider.java
@@ -46,6 +46,7 @@
 
     @Override
     @NonNull
+    @SuppressWarnings("deprecation") /* defaultDisplay */
     public PreviewConfig getConfig(@Nullable CameraInfo cameraInfo) {
         Preview.Builder builder = Preview.Builder.fromConfig(
                 Preview.DEFAULT_CONFIG.getConfig(cameraInfo));
diff --git a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/SupportedSurfaceCombination.java b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/SupportedSurfaceCombination.java
index 472d490..99c6773 100644
--- a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/SupportedSurfaceCombination.java
+++ b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/SupportedSurfaceCombination.java
@@ -1113,6 +1113,7 @@
      * PREVIEW refers to the best size match to the device's screen resolution, or to 1080p
      * (1920x1080), whichever is smaller.
      */
+    @SuppressWarnings("deprecation") /* defaultDisplay */
     private Size getPreviewSize(WindowManager windowManager) {
         Point displaySize = new Point();
         windowManager.getDefaultDisplay().getRealSize(displaySize);
diff --git a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/VideoCaptureConfigProvider.java b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/VideoCaptureConfigProvider.java
index d6a3e1b..87de342 100644
--- a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/VideoCaptureConfigProvider.java
+++ b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/VideoCaptureConfigProvider.java
@@ -46,6 +46,7 @@
 
     @Override
     @NonNull
+    @SuppressWarnings("deprecation") /* defaultDisplay */
     public VideoCaptureConfig getConfig(@Nullable CameraInfo cameraInfo) {
         VideoCaptureConfig.Builder builder =
                 VideoCaptureConfig.Builder.fromConfig(
diff --git a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatApi23Impl.java b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatApi23Impl.java
index 2be81b5..090df0a 100644
--- a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatApi23Impl.java
+++ b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatApi23Impl.java
@@ -33,6 +33,7 @@
 import java.util.List;
 
 @RequiresApi(23)
+@SuppressWarnings("deprecation")
 class CameraDeviceCompatApi23Impl extends CameraDeviceCompatBaseImpl {
 
     @Override
diff --git a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatApi24Impl.java b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatApi24Impl.java
index 0050a9a..0ee9f7a 100644
--- a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatApi24Impl.java
+++ b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatApi24Impl.java
@@ -33,6 +33,7 @@
 import java.util.List;
 
 @RequiresApi(24)
+@SuppressWarnings("deprecation")
 class CameraDeviceCompatApi24Impl extends CameraDeviceCompatApi23Impl {
 
     @Override
diff --git a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatBaseImpl.java b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatBaseImpl.java
index b20c07d..e2e63a3 100644
--- a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatBaseImpl.java
+++ b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatBaseImpl.java
@@ -84,6 +84,7 @@
         }
     }
 
+    @SuppressWarnings("deprecation") /* createCaptureSession */
     void createBaseCaptureSession(@NonNull CameraDevice device, @NonNull List<Surface> surfaces,
             @NonNull CameraCaptureSession.StateCallback cb, @NonNull Handler handler)
             throws CameraAccessException {
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2DeviceSurfaceManagerTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2DeviceSurfaceManagerTest.java
index 851008c..95b3761 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2DeviceSurfaceManagerTest.java
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2DeviceSurfaceManagerTest.java
@@ -133,6 +133,7 @@
     private FakeCameraFactory mCameraFactory;
 
     @Before
+    @SuppressWarnings("deprecation")  /* defaultDisplay */
     public void setUp() {
         WindowManager windowManager =
                 (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SupportedSurfaceCombinationTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SupportedSurfaceCombinationTest.java
index e11b4a3..7db9ce9 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SupportedSurfaceCombinationTest.java
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SupportedSurfaceCombinationTest.java
@@ -155,6 +155,7 @@
     private FakeCameraFactory mCameraFactory;
 
     @Before
+    @SuppressWarnings("deprecation") /* defaultDisplay */
     public void setUp() {
         WindowManager windowManager =
                 (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
diff --git a/camera/camera-core/src/androidTest/java/androidx/camera/core/impl/DeferrableSurfacesTest.java b/camera/camera-core/src/androidTest/java/androidx/camera/core/impl/DeferrableSurfacesTest.java
index 2199ee2..389990c 100644
--- a/camera/camera-core/src/androidTest/java/androidx/camera/core/impl/DeferrableSurfacesTest.java
+++ b/camera/camera-core/src/androidTest/java/androidx/camera/core/impl/DeferrableSurfacesTest.java
@@ -22,7 +22,6 @@
 import static org.mockito.Mockito.timeout;
 import static org.mockito.Mockito.verify;
 
-import android.os.AsyncTask;
 import android.view.Surface;
 
 import androidx.annotation.NonNull;
@@ -77,16 +76,18 @@
 
     @Test
     @MediumTest
+    @SuppressWarnings("deprecation") /* AsyncTask */
     public void getSurfaceTimeoutTest() {
         DeferrableSurface fakeDeferrableSurface = getFakeDeferrableSurface();
 
         List<DeferrableSurface> surfaces = Arrays.asList(fakeDeferrableSurface);
         ListenableFuture<List<Surface>> listenableFuture =
                 DeferrableSurfaces.surfaceListWithTimeout(surfaces, false, 50,
-                        AsyncTask.THREAD_POOL_EXECUTOR, mScheduledExecutorService);
+                        android.os.AsyncTask.THREAD_POOL_EXECUTOR, mScheduledExecutorService);
 
         FutureCallback<List<Surface>> mockFutureCallback = mock(FutureCallback.class);
-        Futures.addCallback(listenableFuture, mockFutureCallback, AsyncTask.THREAD_POOL_EXECUTOR);
+        Futures.addCallback(listenableFuture, mockFutureCallback,
+                android.os.AsyncTask.THREAD_POOL_EXECUTOR);
 
         ArgumentCaptor<Throwable> throwableCaptor = ArgumentCaptor.forClass(Throwable.class);
         verify(mockFutureCallback, timeout(3000).times(1)).onFailure(throwableCaptor.capture());
diff --git a/camera/camera-testing/src/main/java/androidx/camera/testing/DeferrableSurfacesUtil.java b/camera/camera-testing/src/main/java/androidx/camera/testing/DeferrableSurfacesUtil.java
index f7e8554..0ee14f3 100644
--- a/camera/camera-testing/src/main/java/androidx/camera/testing/DeferrableSurfacesUtil.java
+++ b/camera/camera-testing/src/main/java/androidx/camera/testing/DeferrableSurfacesUtil.java
@@ -16,7 +16,6 @@
 
 package androidx.camera.testing;
 
-import android.os.AsyncTask;
 import android.os.Looper;
 import android.view.Surface;
 
@@ -56,6 +55,7 @@
      * @param removeNullSurfaces If true remove all Surfaces that were not retrieved.
      */
     @NonNull
+    @SuppressWarnings("deprecation") /* AsyncTask */
     public static List<Surface> surfaceList(
             @NonNull Collection<DeferrableSurface> deferrableSurfaces, boolean removeNullSurfaces) {
         ScheduledExecutorService scheduledExecutorService =
@@ -63,7 +63,7 @@
                         HandlerCompat.createAsync(Looper.getMainLooper()));
         try {
             return DeferrableSurfaces.surfaceListWithTimeout(deferrableSurfaces, removeNullSurfaces,
-                    Long.MAX_VALUE, AsyncTask.THREAD_POOL_EXECUTOR,
+                    Long.MAX_VALUE, android.os.AsyncTask.THREAD_POOL_EXECUTOR,
                     scheduledExecutorService).get();
         } catch (InterruptedException | ExecutionException e) {
             return Collections.unmodifiableList(Collections.emptyList());
diff --git a/camera/camera-testing/src/main/java/androidx/camera/testing/activity/Camera2TestActivity.java b/camera/camera-testing/src/main/java/androidx/camera/testing/activity/Camera2TestActivity.java
index 695cee9..d43f278 100644
--- a/camera/camera-testing/src/main/java/androidx/camera/testing/activity/Camera2TestActivity.java
+++ b/camera/camera-testing/src/main/java/androidx/camera/testing/activity/Camera2TestActivity.java
@@ -230,6 +230,7 @@
     /**
      * Creates a new {@link CameraCaptureSession} for camera preview.
      */
+    @SuppressWarnings("deprecation") /* createCaptureSession */
     void createCameraPreviewSession() {
         try {
             SurfaceTexture texture = mTextureView.getSurfaceTexture();
diff --git a/camera/camera-view/src/androidTest/java/androidx/camera/view/TextureViewMeteringPointFactoryTest.java b/camera/camera-view/src/androidTest/java/androidx/camera/view/TextureViewMeteringPointFactoryTest.java
index 5b390e9..0447a80 100644
--- a/camera/camera-view/src/androidTest/java/androidx/camera/view/TextureViewMeteringPointFactoryTest.java
+++ b/camera/camera-view/src/androidTest/java/androidx/camera/view/TextureViewMeteringPointFactoryTest.java
@@ -102,6 +102,7 @@
     private int mHeight;
 
     @Before
+    @SuppressWarnings("deprecation") /* defaultDisplay */
     public void setUp() throws Throwable {
         assumeTrue(CameraUtil.deviceHasCamera());
         CoreAppTestUtil.assumeCompatibleDevice();
diff --git a/camera/camera-view/src/main/java/androidx/camera/view/ScaleTypeTransform.java b/camera/camera-view/src/main/java/androidx/camera/view/ScaleTypeTransform.java
index 15b8eb3..09cb75f 100644
--- a/camera/camera-view/src/main/java/androidx/camera/view/ScaleTypeTransform.java
+++ b/camera/camera-view/src/main/java/androidx/camera/view/ScaleTypeTransform.java
@@ -105,6 +105,7 @@
      * Computes the rotation of a {@link android.view.View} in degrees from its natural
      * orientation.
      */
+    @SuppressWarnings("deprecation") /* getDefaultDisplay */
     static int getRotationDegrees(@NonNull final View view) {
         final WindowManager windowManager = (WindowManager) view.getContext().getSystemService(
                 Context.WINDOW_SERVICE);
@@ -134,6 +135,7 @@
      * @param rotationDegrees The device's rotation in degrees from its natural orientation.
      * @return Whether the device is naturally portrait-oriented.
      */
+    @SuppressWarnings("deprecation") /* getDefaultDisplay */
     private static boolean isNaturalPortrait(@NonNull final Context context,
             final int rotationDegrees) {
         final WindowManager windowManager = (WindowManager) context.getSystemService(
diff --git a/camera/integration-tests/coretestapp/src/main/java/androidx/camera/integration/core/CameraXActivity.java b/camera/integration-tests/coretestapp/src/main/java/androidx/camera/integration/core/CameraXActivity.java
index 0939f27..024e8b2 100644
--- a/camera/integration-tests/coretestapp/src/main/java/androidx/camera/integration/core/CameraXActivity.java
+++ b/camera/integration-tests/coretestapp/src/main/java/androidx/camera/integration/core/CameraXActivity.java
@@ -307,6 +307,7 @@
     }
 
     /** @return One of 0, 90, 180, 270. */
+    @SuppressWarnings("deprecation") /* defaultDisplay */
     private int getDisplayRotation() {
         int displayRotation = getWindowManager().getDefaultDisplay().getRotation();
 
diff --git a/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/ImageUtils.kt b/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/ImageUtils.kt
index 678e8d8..d2c7261 100644
--- a/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/ImageUtils.kt
+++ b/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/ImageUtils.kt
@@ -31,12 +31,12 @@
 import androidx.camera.core.ImageCapture
 import androidx.camera.core.ImageCaptureException
 import androidx.camera.core.ImageProxy
-import androidx.exifinterface.media.ExifInterface
 import androidx.camera.integration.antelope.MainActivity.Companion.PHOTOS_DIR
 import androidx.camera.integration.antelope.MainActivity.Companion.logd
 import androidx.camera.integration.antelope.cameracontrollers.CameraState
 import androidx.camera.integration.antelope.cameracontrollers.closeCameraX
 import androidx.camera.integration.antelope.cameracontrollers.closePreviewAndCamera
+import androidx.exifinterface.media.ExifInterface
 import java.io.ByteArrayInputStream
 import java.io.File
 import java.io.FileOutputStream
@@ -71,6 +71,7 @@
         when (image.format) {
             ImageFormat.JPEG -> {
                 // Orientation
+                @Suppress("DEPRECATION")  /* defaultDisplay */
                 val rotation = activity.windowManager.defaultDisplay.rotation
                 val capturedImageRotation = getOrientation(params, rotation)
 
diff --git a/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/cameracontrollers/Camera2Controller.kt b/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/cameracontrollers/Camera2Controller.kt
index 2a626c1..ecf2411 100644
--- a/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/cameracontrollers/Camera2Controller.kt
+++ b/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/cameracontrollers/Camera2Controller.kt
@@ -110,6 +110,7 @@
             params.captureRequestBuilder?.removeTarget(params.previewSurfaceView?.holder?.surface!!)
         params.captureRequestBuilder?.addTarget(surface)
 
+        @Suppress("DEPRECATION")
         params.device?.createCaptureSession(Arrays.asList(surface, imageSurface),
             Camera2PreviewSessionStateCallback(activity, params, testConfig), null)
     } catch (e: CameraAccessException) {
@@ -222,6 +223,7 @@
 /**
  * Make a still capture request. At this point, AF and AE should be converged or unnecessary.
  */
+@Suppress("DEPRECATION") /* defaultDisplay */
 fun captureStillPicture(activity: MainActivity, params: CameraParams, testConfig: TestConfig) {
     if (!params.isOpen) {
         return
@@ -260,6 +262,7 @@
             }
 
             // Orientation
+            @Suppress("DEPRECATION")  /* defaultDisplay */
             val rotation = activity.windowManager.defaultDisplay.rotation
             val capturedImageRotation = getOrientation(params, rotation)
             params.captureRequestBuilder
diff --git a/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/cameracontrollers/Camera2PreviewSessionStateCallback.kt b/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/cameracontrollers/Camera2PreviewSessionStateCallback.kt
index 2a1afbf..63760c7 100644
--- a/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/cameracontrollers/Camera2PreviewSessionStateCallback.kt
+++ b/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/cameracontrollers/Camera2PreviewSessionStateCallback.kt
@@ -171,6 +171,7 @@
 
         val surface = Surface(surfaceTexture)
         try {
+            @Suppress("DEPRECATION")
             params.device?.createCaptureSession(
                 Arrays.asList(surface),
                 object : CameraCaptureSession.StateCallback() {
diff --git a/car/core/src/main/java/androidx/car/util/ColumnCalculator.java b/car/core/src/main/java/androidx/car/util/ColumnCalculator.java
index 7960e1d..44c2867 100644
--- a/car/core/src/main/java/androidx/car/util/ColumnCalculator.java
+++ b/car/core/src/main/java/androidx/car/util/ColumnCalculator.java
@@ -56,6 +56,7 @@
      * @param context The current calling Context.
      * @return An instance of {@link ColumnCalculator}.
      */
+    @SuppressWarnings("deprecation") /* getDefaultDisplay() */
     public static ColumnCalculator getInstance(Context context) {
         if (sInstance == null) {
             WindowManager windowManager = (WindowManager) context.getSystemService(
diff --git a/cardview/cardview/build.gradle b/cardview/cardview/build.gradle
index 8a40ae5..dfe3d65 100644
--- a/cardview/cardview/build.gradle
+++ b/cardview/cardview/build.gradle
@@ -7,7 +7,7 @@
     id("com.android.library")
 }
 
-dependencies {
+dependencies { 
     api("androidx.annotation:annotation:1.1.0")
     implementation(project(":core:core"))
 }
diff --git a/coordinatorlayout/coordinatorlayout/src/main/java/androidx/coordinatorlayout/widget/CoordinatorLayout.java b/coordinatorlayout/coordinatorlayout/src/main/java/androidx/coordinatorlayout/widget/CoordinatorLayout.java
index 1de1353..3a89eba 100644
--- a/coordinatorlayout/coordinatorlayout/src/main/java/androidx/coordinatorlayout/widget/CoordinatorLayout.java
+++ b/coordinatorlayout/coordinatorlayout/src/main/java/androidx/coordinatorlayout/widget/CoordinatorLayout.java
@@ -3337,6 +3337,7 @@
         return super.requestChildRectangleOnScreen(child, rectangle, immediate);
     }
 
+    @SuppressWarnings("deprecation") /* SYSTEM_UI_FLAG_LAYOUT_* */
     private void setupForInsets() {
         if (Build.VERSION.SDK_INT < 21) {
             return;
diff --git a/core/core-ktx/src/androidTest/java/androidx/core/util/SparseArrayTest.kt b/core/core-ktx/src/androidTest/java/androidx/core/util/SparseArrayTest.kt
index 8274f62..d3d2a2c 100644
--- a/core/core-ktx/src/androidTest/java/androidx/core/util/SparseArrayTest.kt
+++ b/core/core-ktx/src/androidTest/java/androidx/core/util/SparseArrayTest.kt
@@ -24,6 +24,7 @@
 import org.junit.Assert.assertFalse
 import org.junit.Assert.assertSame
 import org.junit.Assert.assertTrue
+import org.junit.Ignore
 import org.junit.Test
 
 @SmallTest
@@ -35,6 +36,7 @@
         assertEquals(1, array.size)
     }
 
+    @Ignore("SparseArray.contains exists in R, need to work out what to do")
     @Test fun containsOperator() {
         val array = SparseArray<String>()
         assertFalse(1 in array)
@@ -42,6 +44,7 @@
         assertTrue(1 in array)
     }
 
+    @Ignore("SparseArray.contains exists in R, need to work out what to do")
     @Test fun containsOperatorWithItem() {
         val array = SparseArray<String>()
 
diff --git a/core/core-ktx/src/main/java/androidx/core/util/SparseArray.kt b/core/core-ktx/src/main/java/androidx/core/util/SparseArray.kt
index d7ea73c..f379be8 100644
--- a/core/core-ktx/src/main/java/androidx/core/util/SparseArray.kt
+++ b/core/core-ktx/src/main/java/androidx/core/util/SparseArray.kt
@@ -24,6 +24,7 @@
 inline val <T> SparseArray<T>.size get() = size()
 
 /** Returns true if the collection contains [key]. */
+@Suppress("EXTENSION_SHADOWED_BY_MEMBER") /* contains() added in R */
 inline operator fun <T> SparseArray<T>.contains(key: Int) = indexOfKey(key) >= 0
 
 /** Allows the use of the index operator for storing values in the collection. */
diff --git a/core/core/api/1.3.0-alpha01.txt b/core/core/api/1.3.0-alpha01.txt
index 6223bef..76e3094 100644
--- a/core/core/api/1.3.0-alpha01.txt
+++ b/core/core/api/1.3.0-alpha01.txt
@@ -439,6 +439,7 @@
     method public androidx.core.app.NotificationCompat.Builder! setRemoteInputHistory(CharSequence![]!);
     method public androidx.core.app.NotificationCompat.Builder! setShortcutId(String!);
     method public androidx.core.app.NotificationCompat.Builder! setShowWhen(boolean);
+    method @RequiresApi(23) public androidx.core.app.NotificationCompat.Builder setSmallIcon(android.graphics.drawable.Icon?);
     method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int);
     method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int, int);
     method public androidx.core.app.NotificationCompat.Builder! setSortKey(String!);
@@ -872,9 +873,11 @@
 
   public final class IntentCompat {
     method public static android.content.Intent makeMainSelectorActivity(String, String);
+    field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
     field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
     field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
     field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
+    field public static final String EXTRA_TIME = "android.intent.extra.TIME";
   }
 
   public final class MimeTypeFilter {
@@ -1254,8 +1257,43 @@
 
 package androidx.core.location {
 
+  public abstract class GnssStatusCompat {
+    method @FloatRange(from=0, to=360) public abstract float getAzimuthDegrees(@IntRange(from=0) int);
+    method @FloatRange(from=0) public abstract float getCarrierFrequencyHz(@IntRange(from=0) int);
+    method @FloatRange(from=0, to=63) public abstract float getCn0DbHz(@IntRange(from=0) int);
+    method public abstract int getConstellationType(@IntRange(from=0) int);
+    method @FloatRange(from=0xffffffa6, to=90) public abstract float getElevationDegrees(@IntRange(from=0) int);
+    method @IntRange(from=0) public abstract int getSatelliteCount();
+    method @IntRange(from=1, to=200) public abstract int getSvid(@IntRange(from=0) int);
+    method public abstract boolean hasAlmanacData(@IntRange(from=0) int);
+    method public abstract boolean hasCarrierFrequencyHz(@IntRange(from=0) int);
+    method public abstract boolean hasEphemerisData(@IntRange(from=0) int);
+    method public abstract boolean usedInFix(@IntRange(from=0) int);
+    method @RequiresApi(android.os.Build.VERSION_CODES.N) public static androidx.core.location.GnssStatusCompat wrap(android.location.GnssStatus);
+    method public static androidx.core.location.GnssStatusCompat wrap(android.location.GpsStatus);
+    field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
+    field public static final int CONSTELLATION_GALILEO = 6; // 0x6
+    field public static final int CONSTELLATION_GLONASS = 3; // 0x3
+    field public static final int CONSTELLATION_GPS = 1; // 0x1
+    field public static final int CONSTELLATION_IRNSS = 7; // 0x7
+    field public static final int CONSTELLATION_QZSS = 4; // 0x4
+    field public static final int CONSTELLATION_SBAS = 2; // 0x2
+    field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
+  }
+
+  public abstract static class GnssStatusCompat.Callback {
+    ctor public GnssStatusCompat.Callback();
+    method public void onFirstFix(@IntRange(from=0) int);
+    method public void onSatelliteStatusChanged(androidx.core.location.GnssStatusCompat);
+    method public void onStarted();
+    method public void onStopped();
+  }
+
   public final class LocationManagerCompat {
     method public static boolean isLocationEnabled(android.location.LocationManager);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback, android.os.Handler);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, java.util.concurrent.Executor, androidx.core.location.GnssStatusCompat.Callback);
+    method public static void unregisterGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback);
   }
 
 }
@@ -1340,6 +1378,11 @@
     method public static boolean postDelayed(android.os.Handler, Runnable, Object?, long);
   }
 
+  public class HandlerExecutor implements java.util.concurrent.Executor {
+    ctor public HandlerExecutor(android.os.Handler);
+    method public void execute(Runnable);
+  }
+
   public final class LocaleListCompat {
     method public static androidx.core.os.LocaleListCompat create(java.util.Locale!...);
     method public static androidx.core.os.LocaleListCompat forLanguageTags(String?);
@@ -2103,6 +2146,7 @@
     method @Deprecated public static float getScaleX(android.view.View!);
     method @Deprecated public static float getScaleY(android.view.View!);
     method public static int getScrollIndicators(android.view.View);
+    method @UiThread public static final CharSequence? getStateDescription(android.view.View);
     method public static java.util.List<android.graphics.Rect!> getSystemGestureExclusionRects(android.view.View);
     method public static String? getTransitionName(android.view.View);
     method @Deprecated public static float getTranslationX(android.view.View!);
@@ -2193,6 +2237,7 @@
     method @UiThread public static void setScreenReaderFocusable(android.view.View!, boolean);
     method public static void setScrollIndicators(android.view.View, int);
     method public static void setScrollIndicators(android.view.View, int, int);
+    method @UiThread public static void setStateDescription(android.view.View, CharSequence?);
     method public static void setSystemGestureExclusionRects(android.view.View, java.util.List<android.graphics.Rect!>);
     method public static void setTooltipText(android.view.View, CharSequence?);
     method public static void setTransitionName(android.view.View, String!);
@@ -2414,6 +2459,7 @@
     field public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; // 0x10
     field public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 32; // 0x20
     field public static final int CONTENT_CHANGE_TYPE_PANE_TITLE = 8; // 0x8
+    field public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 64; // 0x40
     field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
     field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
     field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
@@ -2497,6 +2543,7 @@
     method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getParent();
     method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! getRangeInfo();
     method public CharSequence? getRoleDescription();
+    method public CharSequence? getStateDescription();
     method public CharSequence! getText();
     method public int getTextSelectionEnd();
     method public int getTextSelectionStart();
@@ -2586,6 +2633,7 @@
     method public void setShowingHintText(boolean);
     method public void setSource(android.view.View!);
     method public void setSource(android.view.View!, int);
+    method public void setStateDescription(CharSequence?);
     method public void setText(CharSequence!);
     method public void setTextEntryKey(boolean);
     method public void setTextSelection(int, int);
diff --git a/core/core/api/1.3.0-alpha02.txt b/core/core/api/1.3.0-alpha02.txt
index acf1e95..c907603 100644
--- a/core/core/api/1.3.0-alpha02.txt
+++ b/core/core/api/1.3.0-alpha02.txt
@@ -439,6 +439,7 @@
     method public androidx.core.app.NotificationCompat.Builder! setRemoteInputHistory(CharSequence![]!);
     method public androidx.core.app.NotificationCompat.Builder! setShortcutId(String!);
     method public androidx.core.app.NotificationCompat.Builder! setShowWhen(boolean);
+    method @RequiresApi(23) public androidx.core.app.NotificationCompat.Builder setSmallIcon(android.graphics.drawable.Icon?);
     method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int);
     method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int, int);
     method public androidx.core.app.NotificationCompat.Builder! setSortKey(String!);
@@ -872,9 +873,11 @@
 
   public final class IntentCompat {
     method public static android.content.Intent makeMainSelectorActivity(String, String);
+    field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
     field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
     field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
     field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
+    field public static final String EXTRA_TIME = "android.intent.extra.TIME";
   }
 
   public final class MimeTypeFilter {
@@ -1254,8 +1257,43 @@
 
 package androidx.core.location {
 
+  public abstract class GnssStatusCompat {
+    method @FloatRange(from=0, to=360) public abstract float getAzimuthDegrees(@IntRange(from=0) int);
+    method @FloatRange(from=0) public abstract float getCarrierFrequencyHz(@IntRange(from=0) int);
+    method @FloatRange(from=0, to=63) public abstract float getCn0DbHz(@IntRange(from=0) int);
+    method public abstract int getConstellationType(@IntRange(from=0) int);
+    method @FloatRange(from=0xffffffa6, to=90) public abstract float getElevationDegrees(@IntRange(from=0) int);
+    method @IntRange(from=0) public abstract int getSatelliteCount();
+    method @IntRange(from=1, to=200) public abstract int getSvid(@IntRange(from=0) int);
+    method public abstract boolean hasAlmanacData(@IntRange(from=0) int);
+    method public abstract boolean hasCarrierFrequencyHz(@IntRange(from=0) int);
+    method public abstract boolean hasEphemerisData(@IntRange(from=0) int);
+    method public abstract boolean usedInFix(@IntRange(from=0) int);
+    method @RequiresApi(android.os.Build.VERSION_CODES.N) public static androidx.core.location.GnssStatusCompat wrap(android.location.GnssStatus);
+    method public static androidx.core.location.GnssStatusCompat wrap(android.location.GpsStatus);
+    field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
+    field public static final int CONSTELLATION_GALILEO = 6; // 0x6
+    field public static final int CONSTELLATION_GLONASS = 3; // 0x3
+    field public static final int CONSTELLATION_GPS = 1; // 0x1
+    field public static final int CONSTELLATION_IRNSS = 7; // 0x7
+    field public static final int CONSTELLATION_QZSS = 4; // 0x4
+    field public static final int CONSTELLATION_SBAS = 2; // 0x2
+    field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
+  }
+
+  public abstract static class GnssStatusCompat.Callback {
+    ctor public GnssStatusCompat.Callback();
+    method public void onFirstFix(@IntRange(from=0) int);
+    method public void onSatelliteStatusChanged(androidx.core.location.GnssStatusCompat);
+    method public void onStarted();
+    method public void onStopped();
+  }
+
   public final class LocationManagerCompat {
     method public static boolean isLocationEnabled(android.location.LocationManager);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback, android.os.Handler);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, java.util.concurrent.Executor, androidx.core.location.GnssStatusCompat.Callback);
+    method public static void unregisterGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback);
   }
 
 }
@@ -1340,6 +1378,11 @@
     method public static boolean postDelayed(android.os.Handler, Runnable, Object?, long);
   }
 
+  public class HandlerExecutor implements java.util.concurrent.Executor {
+    ctor public HandlerExecutor(android.os.Handler);
+    method public void execute(Runnable);
+  }
+
   public final class LocaleListCompat {
     method public static androidx.core.os.LocaleListCompat create(java.util.Locale!...);
     method public static androidx.core.os.LocaleListCompat forLanguageTags(String?);
@@ -2103,6 +2146,7 @@
     method @Deprecated public static float getScaleX(android.view.View!);
     method @Deprecated public static float getScaleY(android.view.View!);
     method public static int getScrollIndicators(android.view.View);
+    method @UiThread public static final CharSequence? getStateDescription(android.view.View);
     method public static java.util.List<android.graphics.Rect!> getSystemGestureExclusionRects(android.view.View);
     method public static String? getTransitionName(android.view.View);
     method @Deprecated public static float getTranslationX(android.view.View!);
@@ -2193,6 +2237,7 @@
     method @UiThread public static void setScreenReaderFocusable(android.view.View!, boolean);
     method public static void setScrollIndicators(android.view.View, int);
     method public static void setScrollIndicators(android.view.View, int, int);
+    method @UiThread public static void setStateDescription(android.view.View, CharSequence?);
     method public static void setSystemGestureExclusionRects(android.view.View, java.util.List<android.graphics.Rect!>);
     method public static void setTooltipText(android.view.View, CharSequence?);
     method public static void setTransitionName(android.view.View, String!);
@@ -2414,6 +2459,7 @@
     field public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; // 0x10
     field public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 32; // 0x20
     field public static final int CONTENT_CHANGE_TYPE_PANE_TITLE = 8; // 0x8
+    field public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 64; // 0x40
     field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
     field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
     field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
@@ -2497,6 +2543,7 @@
     method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getParent();
     method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! getRangeInfo();
     method public CharSequence? getRoleDescription();
+    method public CharSequence? getStateDescription();
     method public CharSequence! getText();
     method public int getTextSelectionEnd();
     method public int getTextSelectionStart();
@@ -2586,6 +2633,7 @@
     method public void setShowingHintText(boolean);
     method public void setSource(android.view.View!);
     method public void setSource(android.view.View!, int);
+    method public void setStateDescription(CharSequence?);
     method public void setText(CharSequence!);
     method public void setTextEntryKey(boolean);
     method public void setTextSelection(int, int);
diff --git a/core/core/api/api_lint.ignore b/core/core/api/api_lint.ignore
index 9a96c54..413f346 100644
--- a/core/core/api/api_lint.ignore
+++ b/core/core/api/api_lint.ignore
@@ -111,10 +111,14 @@
     Inconsistent extra value; expected `androidx.core.app.extra.CALLING_PACKAGE`, was `androidx.core.app.EXTRA_CALLING_PACKAGE`
 ActionValue: androidx.core.app.ShareCompat#EXTRA_CALLING_PACKAGE_INTEROP:
     Inconsistent extra value; expected `androidx.core.app.extra.CALLING_PACKAGE_INTEROP`, was `android.support.v4.app.EXTRA_CALLING_PACKAGE`
+ActionValue: androidx.core.content.IntentCompat#ACTION_CREATE_REMINDER:
+    Inconsistent action value; expected `androidx.core.content.action.CREATE_REMINDER`, was `android.intent.action.CREATE_REMINDER`
 ActionValue: androidx.core.content.IntentCompat#EXTRA_HTML_TEXT:
     Inconsistent extra value; expected `androidx.core.content.extra.HTML_TEXT`, was `android.intent.extra.HTML_TEXT`
 ActionValue: androidx.core.content.IntentCompat#EXTRA_START_PLAYBACK:
     Inconsistent extra value; expected `androidx.core.content.extra.START_PLAYBACK`, was `android.intent.extra.START_PLAYBACK`
+ActionValue: androidx.core.content.IntentCompat#EXTRA_TIME:
+    Inconsistent extra value; expected `androidx.core.content.extra.TIME`, was `android.intent.extra.TIME`
 ActionValue: androidx.core.content.pm.ShortcutManagerCompat#EXTRA_SHORTCUT_ID:
     Inconsistent extra value; expected `androidx.core.content.pm.extra.SHORTCUT_ID`, was `android.intent.extra.shortcut.ID`
 ActionValue: androidx.core.view.accessibility.AccessibilityNodeInfoCompat#ACTION_ARGUMENT_COLUMN_INT:
diff --git a/core/core/api/current.txt b/core/core/api/current.txt
index acf1e95..c907603 100644
--- a/core/core/api/current.txt
+++ b/core/core/api/current.txt
@@ -439,6 +439,7 @@
     method public androidx.core.app.NotificationCompat.Builder! setRemoteInputHistory(CharSequence![]!);
     method public androidx.core.app.NotificationCompat.Builder! setShortcutId(String!);
     method public androidx.core.app.NotificationCompat.Builder! setShowWhen(boolean);
+    method @RequiresApi(23) public androidx.core.app.NotificationCompat.Builder setSmallIcon(android.graphics.drawable.Icon?);
     method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int);
     method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int, int);
     method public androidx.core.app.NotificationCompat.Builder! setSortKey(String!);
@@ -872,9 +873,11 @@
 
   public final class IntentCompat {
     method public static android.content.Intent makeMainSelectorActivity(String, String);
+    field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
     field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
     field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
     field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
+    field public static final String EXTRA_TIME = "android.intent.extra.TIME";
   }
 
   public final class MimeTypeFilter {
@@ -1254,8 +1257,43 @@
 
 package androidx.core.location {
 
+  public abstract class GnssStatusCompat {
+    method @FloatRange(from=0, to=360) public abstract float getAzimuthDegrees(@IntRange(from=0) int);
+    method @FloatRange(from=0) public abstract float getCarrierFrequencyHz(@IntRange(from=0) int);
+    method @FloatRange(from=0, to=63) public abstract float getCn0DbHz(@IntRange(from=0) int);
+    method public abstract int getConstellationType(@IntRange(from=0) int);
+    method @FloatRange(from=0xffffffa6, to=90) public abstract float getElevationDegrees(@IntRange(from=0) int);
+    method @IntRange(from=0) public abstract int getSatelliteCount();
+    method @IntRange(from=1, to=200) public abstract int getSvid(@IntRange(from=0) int);
+    method public abstract boolean hasAlmanacData(@IntRange(from=0) int);
+    method public abstract boolean hasCarrierFrequencyHz(@IntRange(from=0) int);
+    method public abstract boolean hasEphemerisData(@IntRange(from=0) int);
+    method public abstract boolean usedInFix(@IntRange(from=0) int);
+    method @RequiresApi(android.os.Build.VERSION_CODES.N) public static androidx.core.location.GnssStatusCompat wrap(android.location.GnssStatus);
+    method public static androidx.core.location.GnssStatusCompat wrap(android.location.GpsStatus);
+    field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
+    field public static final int CONSTELLATION_GALILEO = 6; // 0x6
+    field public static final int CONSTELLATION_GLONASS = 3; // 0x3
+    field public static final int CONSTELLATION_GPS = 1; // 0x1
+    field public static final int CONSTELLATION_IRNSS = 7; // 0x7
+    field public static final int CONSTELLATION_QZSS = 4; // 0x4
+    field public static final int CONSTELLATION_SBAS = 2; // 0x2
+    field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
+  }
+
+  public abstract static class GnssStatusCompat.Callback {
+    ctor public GnssStatusCompat.Callback();
+    method public void onFirstFix(@IntRange(from=0) int);
+    method public void onSatelliteStatusChanged(androidx.core.location.GnssStatusCompat);
+    method public void onStarted();
+    method public void onStopped();
+  }
+
   public final class LocationManagerCompat {
     method public static boolean isLocationEnabled(android.location.LocationManager);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback, android.os.Handler);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, java.util.concurrent.Executor, androidx.core.location.GnssStatusCompat.Callback);
+    method public static void unregisterGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback);
   }
 
 }
@@ -1340,6 +1378,11 @@
     method public static boolean postDelayed(android.os.Handler, Runnable, Object?, long);
   }
 
+  public class HandlerExecutor implements java.util.concurrent.Executor {
+    ctor public HandlerExecutor(android.os.Handler);
+    method public void execute(Runnable);
+  }
+
   public final class LocaleListCompat {
     method public static androidx.core.os.LocaleListCompat create(java.util.Locale!...);
     method public static androidx.core.os.LocaleListCompat forLanguageTags(String?);
@@ -2103,6 +2146,7 @@
     method @Deprecated public static float getScaleX(android.view.View!);
     method @Deprecated public static float getScaleY(android.view.View!);
     method public static int getScrollIndicators(android.view.View);
+    method @UiThread public static final CharSequence? getStateDescription(android.view.View);
     method public static java.util.List<android.graphics.Rect!> getSystemGestureExclusionRects(android.view.View);
     method public static String? getTransitionName(android.view.View);
     method @Deprecated public static float getTranslationX(android.view.View!);
@@ -2193,6 +2237,7 @@
     method @UiThread public static void setScreenReaderFocusable(android.view.View!, boolean);
     method public static void setScrollIndicators(android.view.View, int);
     method public static void setScrollIndicators(android.view.View, int, int);
+    method @UiThread public static void setStateDescription(android.view.View, CharSequence?);
     method public static void setSystemGestureExclusionRects(android.view.View, java.util.List<android.graphics.Rect!>);
     method public static void setTooltipText(android.view.View, CharSequence?);
     method public static void setTransitionName(android.view.View, String!);
@@ -2414,6 +2459,7 @@
     field public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; // 0x10
     field public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 32; // 0x20
     field public static final int CONTENT_CHANGE_TYPE_PANE_TITLE = 8; // 0x8
+    field public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 64; // 0x40
     field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
     field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
     field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
@@ -2497,6 +2543,7 @@
     method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getParent();
     method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! getRangeInfo();
     method public CharSequence? getRoleDescription();
+    method public CharSequence? getStateDescription();
     method public CharSequence! getText();
     method public int getTextSelectionEnd();
     method public int getTextSelectionStart();
@@ -2586,6 +2633,7 @@
     method public void setShowingHintText(boolean);
     method public void setSource(android.view.View!);
     method public void setSource(android.view.View!, int);
+    method public void setStateDescription(CharSequence?);
     method public void setText(CharSequence!);
     method public void setTextEntryKey(boolean);
     method public void setTextSelection(int, int);
diff --git a/core/core/api/public_plus_experimental_1.3.0-alpha01.txt b/core/core/api/public_plus_experimental_1.3.0-alpha01.txt
index 1dc8516..23ec09f 100644
--- a/core/core/api/public_plus_experimental_1.3.0-alpha01.txt
+++ b/core/core/api/public_plus_experimental_1.3.0-alpha01.txt
@@ -439,6 +439,7 @@
     method public androidx.core.app.NotificationCompat.Builder! setRemoteInputHistory(CharSequence![]!);
     method public androidx.core.app.NotificationCompat.Builder! setShortcutId(String!);
     method public androidx.core.app.NotificationCompat.Builder! setShowWhen(boolean);
+    method @RequiresApi(23) public androidx.core.app.NotificationCompat.Builder setSmallIcon(android.graphics.drawable.Icon?);
     method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int);
     method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int, int);
     method public androidx.core.app.NotificationCompat.Builder! setSortKey(String!);
@@ -872,9 +873,11 @@
 
   public final class IntentCompat {
     method public static android.content.Intent makeMainSelectorActivity(String, String);
+    field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
     field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
     field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
     field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
+    field public static final String EXTRA_TIME = "android.intent.extra.TIME";
   }
 
   public final class MimeTypeFilter {
@@ -1252,8 +1255,43 @@
 
 package androidx.core.location {
 
+  public abstract class GnssStatusCompat {
+    method @FloatRange(from=0, to=360) public abstract float getAzimuthDegrees(@IntRange(from=0) int);
+    method @FloatRange(from=0) public abstract float getCarrierFrequencyHz(@IntRange(from=0) int);
+    method @FloatRange(from=0, to=63) public abstract float getCn0DbHz(@IntRange(from=0) int);
+    method public abstract int getConstellationType(@IntRange(from=0) int);
+    method @FloatRange(from=0xffffffa6, to=90) public abstract float getElevationDegrees(@IntRange(from=0) int);
+    method @IntRange(from=0) public abstract int getSatelliteCount();
+    method @IntRange(from=1, to=200) public abstract int getSvid(@IntRange(from=0) int);
+    method public abstract boolean hasAlmanacData(@IntRange(from=0) int);
+    method public abstract boolean hasCarrierFrequencyHz(@IntRange(from=0) int);
+    method public abstract boolean hasEphemerisData(@IntRange(from=0) int);
+    method public abstract boolean usedInFix(@IntRange(from=0) int);
+    method @RequiresApi(android.os.Build.VERSION_CODES.N) public static androidx.core.location.GnssStatusCompat wrap(android.location.GnssStatus);
+    method public static androidx.core.location.GnssStatusCompat wrap(android.location.GpsStatus);
+    field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
+    field public static final int CONSTELLATION_GALILEO = 6; // 0x6
+    field public static final int CONSTELLATION_GLONASS = 3; // 0x3
+    field public static final int CONSTELLATION_GPS = 1; // 0x1
+    field public static final int CONSTELLATION_IRNSS = 7; // 0x7
+    field public static final int CONSTELLATION_QZSS = 4; // 0x4
+    field public static final int CONSTELLATION_SBAS = 2; // 0x2
+    field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
+  }
+
+  public abstract static class GnssStatusCompat.Callback {
+    ctor public GnssStatusCompat.Callback();
+    method public void onFirstFix(@IntRange(from=0) int);
+    method public void onSatelliteStatusChanged(androidx.core.location.GnssStatusCompat);
+    method public void onStarted();
+    method public void onStopped();
+  }
+
   public final class LocationManagerCompat {
     method public static boolean isLocationEnabled(android.location.LocationManager);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback, android.os.Handler);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, java.util.concurrent.Executor, androidx.core.location.GnssStatusCompat.Callback);
+    method public static void unregisterGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback);
   }
 
 }
@@ -1338,6 +1376,11 @@
     method public static boolean postDelayed(android.os.Handler, Runnable, Object?, long);
   }
 
+  public class HandlerExecutor implements java.util.concurrent.Executor {
+    ctor public HandlerExecutor(android.os.Handler);
+    method public void execute(Runnable);
+  }
+
   public final class LocaleListCompat {
     method public static androidx.core.os.LocaleListCompat create(java.util.Locale!...);
     method public static androidx.core.os.LocaleListCompat forLanguageTags(String?);
@@ -2101,6 +2144,7 @@
     method @Deprecated public static float getScaleX(android.view.View!);
     method @Deprecated public static float getScaleY(android.view.View!);
     method public static int getScrollIndicators(android.view.View);
+    method @UiThread public static final CharSequence? getStateDescription(android.view.View);
     method public static java.util.List<android.graphics.Rect!> getSystemGestureExclusionRects(android.view.View);
     method public static String? getTransitionName(android.view.View);
     method @Deprecated public static float getTranslationX(android.view.View!);
@@ -2191,6 +2235,7 @@
     method @UiThread public static void setScreenReaderFocusable(android.view.View!, boolean);
     method public static void setScrollIndicators(android.view.View, int);
     method public static void setScrollIndicators(android.view.View, int, int);
+    method @UiThread public static void setStateDescription(android.view.View, CharSequence?);
     method public static void setSystemGestureExclusionRects(android.view.View, java.util.List<android.graphics.Rect!>);
     method public static void setTooltipText(android.view.View, CharSequence?);
     method public static void setTransitionName(android.view.View, String!);
@@ -2412,6 +2457,7 @@
     field public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; // 0x10
     field public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 32; // 0x20
     field public static final int CONTENT_CHANGE_TYPE_PANE_TITLE = 8; // 0x8
+    field public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 64; // 0x40
     field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
     field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
     field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
@@ -2495,6 +2541,7 @@
     method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getParent();
     method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! getRangeInfo();
     method public CharSequence? getRoleDescription();
+    method public CharSequence? getStateDescription();
     method public CharSequence! getText();
     method public int getTextSelectionEnd();
     method public int getTextSelectionStart();
@@ -2584,6 +2631,7 @@
     method public void setShowingHintText(boolean);
     method public void setSource(android.view.View!);
     method public void setSource(android.view.View!, int);
+    method public void setStateDescription(CharSequence?);
     method public void setText(CharSequence!);
     method public void setTextEntryKey(boolean);
     method public void setTextSelection(int, int);
diff --git a/core/core/api/public_plus_experimental_1.3.0-alpha02.txt b/core/core/api/public_plus_experimental_1.3.0-alpha02.txt
index 2603884..b43a47d 100644
--- a/core/core/api/public_plus_experimental_1.3.0-alpha02.txt
+++ b/core/core/api/public_plus_experimental_1.3.0-alpha02.txt
@@ -439,6 +439,7 @@
     method public androidx.core.app.NotificationCompat.Builder! setRemoteInputHistory(CharSequence![]!);
     method public androidx.core.app.NotificationCompat.Builder! setShortcutId(String!);
     method public androidx.core.app.NotificationCompat.Builder! setShowWhen(boolean);
+    method @RequiresApi(23) public androidx.core.app.NotificationCompat.Builder setSmallIcon(android.graphics.drawable.Icon?);
     method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int);
     method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int, int);
     method public androidx.core.app.NotificationCompat.Builder! setSortKey(String!);
@@ -872,9 +873,11 @@
 
   public final class IntentCompat {
     method public static android.content.Intent makeMainSelectorActivity(String, String);
+    field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
     field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
     field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
     field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
+    field public static final String EXTRA_TIME = "android.intent.extra.TIME";
   }
 
   public final class MimeTypeFilter {
@@ -1252,8 +1255,43 @@
 
 package androidx.core.location {
 
+  public abstract class GnssStatusCompat {
+    method @FloatRange(from=0, to=360) public abstract float getAzimuthDegrees(@IntRange(from=0) int);
+    method @FloatRange(from=0) public abstract float getCarrierFrequencyHz(@IntRange(from=0) int);
+    method @FloatRange(from=0, to=63) public abstract float getCn0DbHz(@IntRange(from=0) int);
+    method public abstract int getConstellationType(@IntRange(from=0) int);
+    method @FloatRange(from=0xffffffa6, to=90) public abstract float getElevationDegrees(@IntRange(from=0) int);
+    method @IntRange(from=0) public abstract int getSatelliteCount();
+    method @IntRange(from=1, to=200) public abstract int getSvid(@IntRange(from=0) int);
+    method public abstract boolean hasAlmanacData(@IntRange(from=0) int);
+    method public abstract boolean hasCarrierFrequencyHz(@IntRange(from=0) int);
+    method public abstract boolean hasEphemerisData(@IntRange(from=0) int);
+    method public abstract boolean usedInFix(@IntRange(from=0) int);
+    method @RequiresApi(android.os.Build.VERSION_CODES.N) public static androidx.core.location.GnssStatusCompat wrap(android.location.GnssStatus);
+    method public static androidx.core.location.GnssStatusCompat wrap(android.location.GpsStatus);
+    field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
+    field public static final int CONSTELLATION_GALILEO = 6; // 0x6
+    field public static final int CONSTELLATION_GLONASS = 3; // 0x3
+    field public static final int CONSTELLATION_GPS = 1; // 0x1
+    field public static final int CONSTELLATION_IRNSS = 7; // 0x7
+    field public static final int CONSTELLATION_QZSS = 4; // 0x4
+    field public static final int CONSTELLATION_SBAS = 2; // 0x2
+    field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
+  }
+
+  public abstract static class GnssStatusCompat.Callback {
+    ctor public GnssStatusCompat.Callback();
+    method public void onFirstFix(@IntRange(from=0) int);
+    method public void onSatelliteStatusChanged(androidx.core.location.GnssStatusCompat);
+    method public void onStarted();
+    method public void onStopped();
+  }
+
   public final class LocationManagerCompat {
     method public static boolean isLocationEnabled(android.location.LocationManager);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback, android.os.Handler);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, java.util.concurrent.Executor, androidx.core.location.GnssStatusCompat.Callback);
+    method public static void unregisterGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback);
   }
 
 }
@@ -1338,6 +1376,11 @@
     method public static boolean postDelayed(android.os.Handler, Runnable, Object?, long);
   }
 
+  public class HandlerExecutor implements java.util.concurrent.Executor {
+    ctor public HandlerExecutor(android.os.Handler);
+    method public void execute(Runnable);
+  }
+
   public final class LocaleListCompat {
     method public static androidx.core.os.LocaleListCompat create(java.util.Locale!...);
     method public static androidx.core.os.LocaleListCompat forLanguageTags(String?);
@@ -2101,6 +2144,7 @@
     method @Deprecated public static float getScaleX(android.view.View!);
     method @Deprecated public static float getScaleY(android.view.View!);
     method public static int getScrollIndicators(android.view.View);
+    method @UiThread public static final CharSequence? getStateDescription(android.view.View);
     method public static java.util.List<android.graphics.Rect!> getSystemGestureExclusionRects(android.view.View);
     method public static String? getTransitionName(android.view.View);
     method @Deprecated public static float getTranslationX(android.view.View!);
@@ -2191,6 +2235,7 @@
     method @UiThread public static void setScreenReaderFocusable(android.view.View!, boolean);
     method public static void setScrollIndicators(android.view.View, int);
     method public static void setScrollIndicators(android.view.View, int, int);
+    method @UiThread public static void setStateDescription(android.view.View, CharSequence?);
     method public static void setSystemGestureExclusionRects(android.view.View, java.util.List<android.graphics.Rect!>);
     method public static void setTooltipText(android.view.View, CharSequence?);
     method public static void setTransitionName(android.view.View, String!);
@@ -2412,6 +2457,7 @@
     field public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; // 0x10
     field public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 32; // 0x20
     field public static final int CONTENT_CHANGE_TYPE_PANE_TITLE = 8; // 0x8
+    field public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 64; // 0x40
     field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
     field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
     field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
@@ -2495,6 +2541,7 @@
     method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getParent();
     method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! getRangeInfo();
     method public CharSequence? getRoleDescription();
+    method public CharSequence? getStateDescription();
     method public CharSequence! getText();
     method public int getTextSelectionEnd();
     method public int getTextSelectionStart();
@@ -2584,6 +2631,7 @@
     method public void setShowingHintText(boolean);
     method public void setSource(android.view.View!);
     method public void setSource(android.view.View!, int);
+    method public void setStateDescription(CharSequence?);
     method public void setText(CharSequence!);
     method public void setTextEntryKey(boolean);
     method public void setTextSelection(int, int);
diff --git a/core/core/api/public_plus_experimental_current.txt b/core/core/api/public_plus_experimental_current.txt
index 2603884..b43a47d 100644
--- a/core/core/api/public_plus_experimental_current.txt
+++ b/core/core/api/public_plus_experimental_current.txt
@@ -439,6 +439,7 @@
     method public androidx.core.app.NotificationCompat.Builder! setRemoteInputHistory(CharSequence![]!);
     method public androidx.core.app.NotificationCompat.Builder! setShortcutId(String!);
     method public androidx.core.app.NotificationCompat.Builder! setShowWhen(boolean);
+    method @RequiresApi(23) public androidx.core.app.NotificationCompat.Builder setSmallIcon(android.graphics.drawable.Icon?);
     method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int);
     method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int, int);
     method public androidx.core.app.NotificationCompat.Builder! setSortKey(String!);
@@ -872,9 +873,11 @@
 
   public final class IntentCompat {
     method public static android.content.Intent makeMainSelectorActivity(String, String);
+    field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
     field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
     field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
     field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
+    field public static final String EXTRA_TIME = "android.intent.extra.TIME";
   }
 
   public final class MimeTypeFilter {
@@ -1252,8 +1255,43 @@
 
 package androidx.core.location {
 
+  public abstract class GnssStatusCompat {
+    method @FloatRange(from=0, to=360) public abstract float getAzimuthDegrees(@IntRange(from=0) int);
+    method @FloatRange(from=0) public abstract float getCarrierFrequencyHz(@IntRange(from=0) int);
+    method @FloatRange(from=0, to=63) public abstract float getCn0DbHz(@IntRange(from=0) int);
+    method public abstract int getConstellationType(@IntRange(from=0) int);
+    method @FloatRange(from=0xffffffa6, to=90) public abstract float getElevationDegrees(@IntRange(from=0) int);
+    method @IntRange(from=0) public abstract int getSatelliteCount();
+    method @IntRange(from=1, to=200) public abstract int getSvid(@IntRange(from=0) int);
+    method public abstract boolean hasAlmanacData(@IntRange(from=0) int);
+    method public abstract boolean hasCarrierFrequencyHz(@IntRange(from=0) int);
+    method public abstract boolean hasEphemerisData(@IntRange(from=0) int);
+    method public abstract boolean usedInFix(@IntRange(from=0) int);
+    method @RequiresApi(android.os.Build.VERSION_CODES.N) public static androidx.core.location.GnssStatusCompat wrap(android.location.GnssStatus);
+    method public static androidx.core.location.GnssStatusCompat wrap(android.location.GpsStatus);
+    field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
+    field public static final int CONSTELLATION_GALILEO = 6; // 0x6
+    field public static final int CONSTELLATION_GLONASS = 3; // 0x3
+    field public static final int CONSTELLATION_GPS = 1; // 0x1
+    field public static final int CONSTELLATION_IRNSS = 7; // 0x7
+    field public static final int CONSTELLATION_QZSS = 4; // 0x4
+    field public static final int CONSTELLATION_SBAS = 2; // 0x2
+    field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
+  }
+
+  public abstract static class GnssStatusCompat.Callback {
+    ctor public GnssStatusCompat.Callback();
+    method public void onFirstFix(@IntRange(from=0) int);
+    method public void onSatelliteStatusChanged(androidx.core.location.GnssStatusCompat);
+    method public void onStarted();
+    method public void onStopped();
+  }
+
   public final class LocationManagerCompat {
     method public static boolean isLocationEnabled(android.location.LocationManager);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback, android.os.Handler);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, java.util.concurrent.Executor, androidx.core.location.GnssStatusCompat.Callback);
+    method public static void unregisterGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback);
   }
 
 }
@@ -1338,6 +1376,11 @@
     method public static boolean postDelayed(android.os.Handler, Runnable, Object?, long);
   }
 
+  public class HandlerExecutor implements java.util.concurrent.Executor {
+    ctor public HandlerExecutor(android.os.Handler);
+    method public void execute(Runnable);
+  }
+
   public final class LocaleListCompat {
     method public static androidx.core.os.LocaleListCompat create(java.util.Locale!...);
     method public static androidx.core.os.LocaleListCompat forLanguageTags(String?);
@@ -2101,6 +2144,7 @@
     method @Deprecated public static float getScaleX(android.view.View!);
     method @Deprecated public static float getScaleY(android.view.View!);
     method public static int getScrollIndicators(android.view.View);
+    method @UiThread public static final CharSequence? getStateDescription(android.view.View);
     method public static java.util.List<android.graphics.Rect!> getSystemGestureExclusionRects(android.view.View);
     method public static String? getTransitionName(android.view.View);
     method @Deprecated public static float getTranslationX(android.view.View!);
@@ -2191,6 +2235,7 @@
     method @UiThread public static void setScreenReaderFocusable(android.view.View!, boolean);
     method public static void setScrollIndicators(android.view.View, int);
     method public static void setScrollIndicators(android.view.View, int, int);
+    method @UiThread public static void setStateDescription(android.view.View, CharSequence?);
     method public static void setSystemGestureExclusionRects(android.view.View, java.util.List<android.graphics.Rect!>);
     method public static void setTooltipText(android.view.View, CharSequence?);
     method public static void setTransitionName(android.view.View, String!);
@@ -2412,6 +2457,7 @@
     field public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; // 0x10
     field public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 32; // 0x20
     field public static final int CONTENT_CHANGE_TYPE_PANE_TITLE = 8; // 0x8
+    field public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 64; // 0x40
     field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
     field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
     field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
@@ -2495,6 +2541,7 @@
     method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getParent();
     method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! getRangeInfo();
     method public CharSequence? getRoleDescription();
+    method public CharSequence? getStateDescription();
     method public CharSequence! getText();
     method public int getTextSelectionEnd();
     method public int getTextSelectionStart();
@@ -2584,6 +2631,7 @@
     method public void setShowingHintText(boolean);
     method public void setSource(android.view.View!);
     method public void setSource(android.view.View!, int);
+    method public void setStateDescription(CharSequence?);
     method public void setText(CharSequence!);
     method public void setTextEntryKey(boolean);
     method public void setTextSelection(int, int);
diff --git a/core/core/api/restricted_1.3.0-alpha01.txt b/core/core/api/restricted_1.3.0-alpha01.txt
index e7fc224..8b652aa 100644
--- a/core/core/api/restricted_1.3.0-alpha01.txt
+++ b/core/core/api/restricted_1.3.0-alpha01.txt
@@ -494,6 +494,7 @@
     method public androidx.core.app.NotificationCompat.Builder! setRemoteInputHistory(CharSequence![]!);
     method public androidx.core.app.NotificationCompat.Builder! setShortcutId(String!);
     method public androidx.core.app.NotificationCompat.Builder! setShowWhen(boolean);
+    method @RequiresApi(23) public androidx.core.app.NotificationCompat.Builder setSmallIcon(android.graphics.drawable.Icon?);
     method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int);
     method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int, int);
     method public androidx.core.app.NotificationCompat.Builder! setSortKey(String!);
@@ -967,9 +968,11 @@
 
   public final class IntentCompat {
     method public static android.content.Intent makeMainSelectorActivity(String, String);
+    field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
     field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
     field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
     field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
+    field public static final String EXTRA_TIME = "android.intent.extra.TIME";
   }
 
   public final class MimeTypeFilter {
@@ -1551,8 +1554,43 @@
 
 package androidx.core.location {
 
+  public abstract class GnssStatusCompat {
+    method @FloatRange(from=0, to=360) public abstract float getAzimuthDegrees(@IntRange(from=0) int);
+    method @FloatRange(from=0) public abstract float getCarrierFrequencyHz(@IntRange(from=0) int);
+    method @FloatRange(from=0, to=63) public abstract float getCn0DbHz(@IntRange(from=0) int);
+    method public abstract int getConstellationType(@IntRange(from=0) int);
+    method @FloatRange(from=0xffffffa6, to=90) public abstract float getElevationDegrees(@IntRange(from=0) int);
+    method @IntRange(from=0) public abstract int getSatelliteCount();
+    method @IntRange(from=1, to=200) public abstract int getSvid(@IntRange(from=0) int);
+    method public abstract boolean hasAlmanacData(@IntRange(from=0) int);
+    method public abstract boolean hasCarrierFrequencyHz(@IntRange(from=0) int);
+    method public abstract boolean hasEphemerisData(@IntRange(from=0) int);
+    method public abstract boolean usedInFix(@IntRange(from=0) int);
+    method @RequiresApi(android.os.Build.VERSION_CODES.N) public static androidx.core.location.GnssStatusCompat wrap(android.location.GnssStatus);
+    method public static androidx.core.location.GnssStatusCompat wrap(android.location.GpsStatus);
+    field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
+    field public static final int CONSTELLATION_GALILEO = 6; // 0x6
+    field public static final int CONSTELLATION_GLONASS = 3; // 0x3
+    field public static final int CONSTELLATION_GPS = 1; // 0x1
+    field public static final int CONSTELLATION_IRNSS = 7; // 0x7
+    field public static final int CONSTELLATION_QZSS = 4; // 0x4
+    field public static final int CONSTELLATION_SBAS = 2; // 0x2
+    field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
+  }
+
+  public abstract static class GnssStatusCompat.Callback {
+    ctor public GnssStatusCompat.Callback();
+    method public void onFirstFix(@IntRange(from=0) int);
+    method public void onSatelliteStatusChanged(androidx.core.location.GnssStatusCompat);
+    method public void onStarted();
+    method public void onStopped();
+  }
+
   public final class LocationManagerCompat {
     method public static boolean isLocationEnabled(android.location.LocationManager);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback, android.os.Handler);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, java.util.concurrent.Executor, androidx.core.location.GnssStatusCompat.Callback);
+    method public static void unregisterGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback);
   }
 
 }
@@ -1640,6 +1678,11 @@
     method public static boolean postDelayed(android.os.Handler, Runnable, Object?, long);
   }
 
+  public class HandlerExecutor implements java.util.concurrent.Executor {
+    ctor public HandlerExecutor(android.os.Handler);
+    method public void execute(Runnable);
+  }
+
   public final class LocaleListCompat {
     method public static androidx.core.os.LocaleListCompat create(java.util.Locale!...);
     method public static androidx.core.os.LocaleListCompat forLanguageTags(String?);
@@ -2484,6 +2527,7 @@
     method @Deprecated public static float getScaleX(android.view.View!);
     method @Deprecated public static float getScaleY(android.view.View!);
     method public static int getScrollIndicators(android.view.View);
+    method @UiThread public static final CharSequence? getStateDescription(android.view.View);
     method public static java.util.List<android.graphics.Rect!> getSystemGestureExclusionRects(android.view.View);
     method public static String? getTransitionName(android.view.View);
     method @Deprecated public static float getTranslationX(android.view.View!);
@@ -2574,6 +2618,7 @@
     method @UiThread public static void setScreenReaderFocusable(android.view.View!, boolean);
     method public static void setScrollIndicators(android.view.View, @androidx.core.view.ViewCompat.ScrollIndicators int);
     method public static void setScrollIndicators(android.view.View, @androidx.core.view.ViewCompat.ScrollIndicators int, @androidx.core.view.ViewCompat.ScrollIndicators int);
+    method @UiThread public static void setStateDescription(android.view.View, CharSequence?);
     method public static void setSystemGestureExclusionRects(android.view.View, java.util.List<android.graphics.Rect!>);
     method public static void setTooltipText(android.view.View, CharSequence?);
     method public static void setTransitionName(android.view.View, String!);
@@ -2804,17 +2849,18 @@
     method @Deprecated public static void appendRecord(android.view.accessibility.AccessibilityEvent!, androidx.core.view.accessibility.AccessibilityRecordCompat!);
     method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! asRecord(android.view.accessibility.AccessibilityEvent!);
     method public static int getAction(android.view.accessibility.AccessibilityEvent!);
-    method public static int getContentChangeTypes(android.view.accessibility.AccessibilityEvent!);
+    method @androidx.core.view.accessibility.AccessibilityEventCompat.ContentChangeType public static int getContentChangeTypes(android.view.accessibility.AccessibilityEvent!);
     method public static int getMovementGranularity(android.view.accessibility.AccessibilityEvent!);
     method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! getRecord(android.view.accessibility.AccessibilityEvent!, int);
     method @Deprecated public static int getRecordCount(android.view.accessibility.AccessibilityEvent!);
     method public static void setAction(android.view.accessibility.AccessibilityEvent!, int);
-    method public static void setContentChangeTypes(android.view.accessibility.AccessibilityEvent!, int);
+    method public static void setContentChangeTypes(android.view.accessibility.AccessibilityEvent!, @androidx.core.view.accessibility.AccessibilityEventCompat.ContentChangeType int);
     method public static void setMovementGranularity(android.view.accessibility.AccessibilityEvent!, int);
     field public static final int CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION = 4; // 0x4
     field public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; // 0x10
     field public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 32; // 0x20
     field public static final int CONTENT_CHANGE_TYPE_PANE_TITLE = 8; // 0x8
+    field public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 64; // 0x40
     field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
     field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
     field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
@@ -2839,6 +2885,9 @@
     field @Deprecated public static final int TYPE_WINDOW_CONTENT_CHANGED = 2048; // 0x800
   }
 
+  @IntDef(flag=true, value={androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_STATE_DESCRIPTION, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_SUBTREE, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_TEXT, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_UNDEFINED}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface AccessibilityEventCompat.ContentChangeType {
+  }
+
   public final class AccessibilityManagerCompat {
     method @Deprecated public static boolean addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager!, androidx.core.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener!);
     method public static boolean addTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager!, androidx.core.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener!);
@@ -2900,6 +2949,7 @@
     method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getParent();
     method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! getRangeInfo();
     method public CharSequence? getRoleDescription();
+    method public CharSequence? getStateDescription();
     method public CharSequence! getText();
     method public int getTextSelectionEnd();
     method public int getTextSelectionStart();
@@ -2989,6 +3039,7 @@
     method public void setShowingHintText(boolean);
     method public void setSource(android.view.View!);
     method public void setSource(android.view.View!, int);
+    method public void setStateDescription(CharSequence?);
     method public void setText(CharSequence!);
     method public void setTextEntryKey(boolean);
     method public void setTextSelection(int, int);
diff --git a/core/core/api/restricted_1.3.0-alpha02.txt b/core/core/api/restricted_1.3.0-alpha02.txt
index a30f3ce..c6662b0 100644
--- a/core/core/api/restricted_1.3.0-alpha02.txt
+++ b/core/core/api/restricted_1.3.0-alpha02.txt
@@ -494,6 +494,7 @@
     method public androidx.core.app.NotificationCompat.Builder! setRemoteInputHistory(CharSequence![]!);
     method public androidx.core.app.NotificationCompat.Builder! setShortcutId(String!);
     method public androidx.core.app.NotificationCompat.Builder! setShowWhen(boolean);
+    method @RequiresApi(23) public androidx.core.app.NotificationCompat.Builder setSmallIcon(android.graphics.drawable.Icon?);
     method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int);
     method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int, int);
     method public androidx.core.app.NotificationCompat.Builder! setSortKey(String!);
@@ -967,9 +968,11 @@
 
   public final class IntentCompat {
     method public static android.content.Intent makeMainSelectorActivity(String, String);
+    field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
     field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
     field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
     field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
+    field public static final String EXTRA_TIME = "android.intent.extra.TIME";
   }
 
   public final class MimeTypeFilter {
@@ -1551,8 +1554,43 @@
 
 package androidx.core.location {
 
+  public abstract class GnssStatusCompat {
+    method @FloatRange(from=0, to=360) public abstract float getAzimuthDegrees(@IntRange(from=0) int);
+    method @FloatRange(from=0) public abstract float getCarrierFrequencyHz(@IntRange(from=0) int);
+    method @FloatRange(from=0, to=63) public abstract float getCn0DbHz(@IntRange(from=0) int);
+    method public abstract int getConstellationType(@IntRange(from=0) int);
+    method @FloatRange(from=0xffffffa6, to=90) public abstract float getElevationDegrees(@IntRange(from=0) int);
+    method @IntRange(from=0) public abstract int getSatelliteCount();
+    method @IntRange(from=1, to=200) public abstract int getSvid(@IntRange(from=0) int);
+    method public abstract boolean hasAlmanacData(@IntRange(from=0) int);
+    method public abstract boolean hasCarrierFrequencyHz(@IntRange(from=0) int);
+    method public abstract boolean hasEphemerisData(@IntRange(from=0) int);
+    method public abstract boolean usedInFix(@IntRange(from=0) int);
+    method @RequiresApi(android.os.Build.VERSION_CODES.N) public static androidx.core.location.GnssStatusCompat wrap(android.location.GnssStatus);
+    method public static androidx.core.location.GnssStatusCompat wrap(android.location.GpsStatus);
+    field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
+    field public static final int CONSTELLATION_GALILEO = 6; // 0x6
+    field public static final int CONSTELLATION_GLONASS = 3; // 0x3
+    field public static final int CONSTELLATION_GPS = 1; // 0x1
+    field public static final int CONSTELLATION_IRNSS = 7; // 0x7
+    field public static final int CONSTELLATION_QZSS = 4; // 0x4
+    field public static final int CONSTELLATION_SBAS = 2; // 0x2
+    field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
+  }
+
+  public abstract static class GnssStatusCompat.Callback {
+    ctor public GnssStatusCompat.Callback();
+    method public void onFirstFix(@IntRange(from=0) int);
+    method public void onSatelliteStatusChanged(androidx.core.location.GnssStatusCompat);
+    method public void onStarted();
+    method public void onStopped();
+  }
+
   public final class LocationManagerCompat {
     method public static boolean isLocationEnabled(android.location.LocationManager);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback, android.os.Handler);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, java.util.concurrent.Executor, androidx.core.location.GnssStatusCompat.Callback);
+    method public static void unregisterGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback);
   }
 
 }
@@ -1640,6 +1678,11 @@
     method public static boolean postDelayed(android.os.Handler, Runnable, Object?, long);
   }
 
+  public class HandlerExecutor implements java.util.concurrent.Executor {
+    ctor public HandlerExecutor(android.os.Handler);
+    method public void execute(Runnable);
+  }
+
   public final class LocaleListCompat {
     method public static androidx.core.os.LocaleListCompat create(java.util.Locale!...);
     method public static androidx.core.os.LocaleListCompat forLanguageTags(String?);
@@ -2484,6 +2527,7 @@
     method @Deprecated public static float getScaleX(android.view.View!);
     method @Deprecated public static float getScaleY(android.view.View!);
     method public static int getScrollIndicators(android.view.View);
+    method @UiThread public static final CharSequence? getStateDescription(android.view.View);
     method public static java.util.List<android.graphics.Rect!> getSystemGestureExclusionRects(android.view.View);
     method public static String? getTransitionName(android.view.View);
     method @Deprecated public static float getTranslationX(android.view.View!);
@@ -2574,6 +2618,7 @@
     method @UiThread public static void setScreenReaderFocusable(android.view.View!, boolean);
     method public static void setScrollIndicators(android.view.View, @androidx.core.view.ViewCompat.ScrollIndicators int);
     method public static void setScrollIndicators(android.view.View, @androidx.core.view.ViewCompat.ScrollIndicators int, @androidx.core.view.ViewCompat.ScrollIndicators int);
+    method @UiThread public static void setStateDescription(android.view.View, CharSequence?);
     method public static void setSystemGestureExclusionRects(android.view.View, java.util.List<android.graphics.Rect!>);
     method public static void setTooltipText(android.view.View, CharSequence?);
     method public static void setTransitionName(android.view.View, String!);
@@ -2804,17 +2849,18 @@
     method @Deprecated public static void appendRecord(android.view.accessibility.AccessibilityEvent!, androidx.core.view.accessibility.AccessibilityRecordCompat!);
     method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! asRecord(android.view.accessibility.AccessibilityEvent!);
     method public static int getAction(android.view.accessibility.AccessibilityEvent!);
-    method public static int getContentChangeTypes(android.view.accessibility.AccessibilityEvent!);
+    method @androidx.core.view.accessibility.AccessibilityEventCompat.ContentChangeType public static int getContentChangeTypes(android.view.accessibility.AccessibilityEvent!);
     method public static int getMovementGranularity(android.view.accessibility.AccessibilityEvent!);
     method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! getRecord(android.view.accessibility.AccessibilityEvent!, int);
     method @Deprecated public static int getRecordCount(android.view.accessibility.AccessibilityEvent!);
     method public static void setAction(android.view.accessibility.AccessibilityEvent!, int);
-    method public static void setContentChangeTypes(android.view.accessibility.AccessibilityEvent!, int);
+    method public static void setContentChangeTypes(android.view.accessibility.AccessibilityEvent!, @androidx.core.view.accessibility.AccessibilityEventCompat.ContentChangeType int);
     method public static void setMovementGranularity(android.view.accessibility.AccessibilityEvent!, int);
     field public static final int CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION = 4; // 0x4
     field public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; // 0x10
     field public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 32; // 0x20
     field public static final int CONTENT_CHANGE_TYPE_PANE_TITLE = 8; // 0x8
+    field public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 64; // 0x40
     field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
     field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
     field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
@@ -2839,6 +2885,9 @@
     field @Deprecated public static final int TYPE_WINDOW_CONTENT_CHANGED = 2048; // 0x800
   }
 
+  @IntDef(flag=true, value={androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_STATE_DESCRIPTION, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_SUBTREE, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_TEXT, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_UNDEFINED}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface AccessibilityEventCompat.ContentChangeType {
+  }
+
   public final class AccessibilityManagerCompat {
     method @Deprecated public static boolean addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager!, androidx.core.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener!);
     method public static boolean addTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager!, androidx.core.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener!);
@@ -2900,6 +2949,7 @@
     method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getParent();
     method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! getRangeInfo();
     method public CharSequence? getRoleDescription();
+    method public CharSequence? getStateDescription();
     method public CharSequence! getText();
     method public int getTextSelectionEnd();
     method public int getTextSelectionStart();
@@ -2989,6 +3039,7 @@
     method public void setShowingHintText(boolean);
     method public void setSource(android.view.View!);
     method public void setSource(android.view.View!, int);
+    method public void setStateDescription(CharSequence?);
     method public void setText(CharSequence!);
     method public void setTextEntryKey(boolean);
     method public void setTextSelection(int, int);
diff --git a/core/core/api/restricted_current.txt b/core/core/api/restricted_current.txt
index a30f3ce..c6662b0 100644
--- a/core/core/api/restricted_current.txt
+++ b/core/core/api/restricted_current.txt
@@ -494,6 +494,7 @@
     method public androidx.core.app.NotificationCompat.Builder! setRemoteInputHistory(CharSequence![]!);
     method public androidx.core.app.NotificationCompat.Builder! setShortcutId(String!);
     method public androidx.core.app.NotificationCompat.Builder! setShowWhen(boolean);
+    method @RequiresApi(23) public androidx.core.app.NotificationCompat.Builder setSmallIcon(android.graphics.drawable.Icon?);
     method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int);
     method public androidx.core.app.NotificationCompat.Builder! setSmallIcon(int, int);
     method public androidx.core.app.NotificationCompat.Builder! setSortKey(String!);
@@ -967,9 +968,11 @@
 
   public final class IntentCompat {
     method public static android.content.Intent makeMainSelectorActivity(String, String);
+    field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
     field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
     field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
     field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
+    field public static final String EXTRA_TIME = "android.intent.extra.TIME";
   }
 
   public final class MimeTypeFilter {
@@ -1551,8 +1554,43 @@
 
 package androidx.core.location {
 
+  public abstract class GnssStatusCompat {
+    method @FloatRange(from=0, to=360) public abstract float getAzimuthDegrees(@IntRange(from=0) int);
+    method @FloatRange(from=0) public abstract float getCarrierFrequencyHz(@IntRange(from=0) int);
+    method @FloatRange(from=0, to=63) public abstract float getCn0DbHz(@IntRange(from=0) int);
+    method public abstract int getConstellationType(@IntRange(from=0) int);
+    method @FloatRange(from=0xffffffa6, to=90) public abstract float getElevationDegrees(@IntRange(from=0) int);
+    method @IntRange(from=0) public abstract int getSatelliteCount();
+    method @IntRange(from=1, to=200) public abstract int getSvid(@IntRange(from=0) int);
+    method public abstract boolean hasAlmanacData(@IntRange(from=0) int);
+    method public abstract boolean hasCarrierFrequencyHz(@IntRange(from=0) int);
+    method public abstract boolean hasEphemerisData(@IntRange(from=0) int);
+    method public abstract boolean usedInFix(@IntRange(from=0) int);
+    method @RequiresApi(android.os.Build.VERSION_CODES.N) public static androidx.core.location.GnssStatusCompat wrap(android.location.GnssStatus);
+    method public static androidx.core.location.GnssStatusCompat wrap(android.location.GpsStatus);
+    field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
+    field public static final int CONSTELLATION_GALILEO = 6; // 0x6
+    field public static final int CONSTELLATION_GLONASS = 3; // 0x3
+    field public static final int CONSTELLATION_GPS = 1; // 0x1
+    field public static final int CONSTELLATION_IRNSS = 7; // 0x7
+    field public static final int CONSTELLATION_QZSS = 4; // 0x4
+    field public static final int CONSTELLATION_SBAS = 2; // 0x2
+    field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
+  }
+
+  public abstract static class GnssStatusCompat.Callback {
+    ctor public GnssStatusCompat.Callback();
+    method public void onFirstFix(@IntRange(from=0) int);
+    method public void onSatelliteStatusChanged(androidx.core.location.GnssStatusCompat);
+    method public void onStarted();
+    method public void onStopped();
+  }
+
   public final class LocationManagerCompat {
     method public static boolean isLocationEnabled(android.location.LocationManager);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback, android.os.Handler);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, java.util.concurrent.Executor, androidx.core.location.GnssStatusCompat.Callback);
+    method public static void unregisterGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback);
   }
 
 }
@@ -1640,6 +1678,11 @@
     method public static boolean postDelayed(android.os.Handler, Runnable, Object?, long);
   }
 
+  public class HandlerExecutor implements java.util.concurrent.Executor {
+    ctor public HandlerExecutor(android.os.Handler);
+    method public void execute(Runnable);
+  }
+
   public final class LocaleListCompat {
     method public static androidx.core.os.LocaleListCompat create(java.util.Locale!...);
     method public static androidx.core.os.LocaleListCompat forLanguageTags(String?);
@@ -2484,6 +2527,7 @@
     method @Deprecated public static float getScaleX(android.view.View!);
     method @Deprecated public static float getScaleY(android.view.View!);
     method public static int getScrollIndicators(android.view.View);
+    method @UiThread public static final CharSequence? getStateDescription(android.view.View);
     method public static java.util.List<android.graphics.Rect!> getSystemGestureExclusionRects(android.view.View);
     method public static String? getTransitionName(android.view.View);
     method @Deprecated public static float getTranslationX(android.view.View!);
@@ -2574,6 +2618,7 @@
     method @UiThread public static void setScreenReaderFocusable(android.view.View!, boolean);
     method public static void setScrollIndicators(android.view.View, @androidx.core.view.ViewCompat.ScrollIndicators int);
     method public static void setScrollIndicators(android.view.View, @androidx.core.view.ViewCompat.ScrollIndicators int, @androidx.core.view.ViewCompat.ScrollIndicators int);
+    method @UiThread public static void setStateDescription(android.view.View, CharSequence?);
     method public static void setSystemGestureExclusionRects(android.view.View, java.util.List<android.graphics.Rect!>);
     method public static void setTooltipText(android.view.View, CharSequence?);
     method public static void setTransitionName(android.view.View, String!);
@@ -2804,17 +2849,18 @@
     method @Deprecated public static void appendRecord(android.view.accessibility.AccessibilityEvent!, androidx.core.view.accessibility.AccessibilityRecordCompat!);
     method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! asRecord(android.view.accessibility.AccessibilityEvent!);
     method public static int getAction(android.view.accessibility.AccessibilityEvent!);
-    method public static int getContentChangeTypes(android.view.accessibility.AccessibilityEvent!);
+    method @androidx.core.view.accessibility.AccessibilityEventCompat.ContentChangeType public static int getContentChangeTypes(android.view.accessibility.AccessibilityEvent!);
     method public static int getMovementGranularity(android.view.accessibility.AccessibilityEvent!);
     method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! getRecord(android.view.accessibility.AccessibilityEvent!, int);
     method @Deprecated public static int getRecordCount(android.view.accessibility.AccessibilityEvent!);
     method public static void setAction(android.view.accessibility.AccessibilityEvent!, int);
-    method public static void setContentChangeTypes(android.view.accessibility.AccessibilityEvent!, int);
+    method public static void setContentChangeTypes(android.view.accessibility.AccessibilityEvent!, @androidx.core.view.accessibility.AccessibilityEventCompat.ContentChangeType int);
     method public static void setMovementGranularity(android.view.accessibility.AccessibilityEvent!, int);
     field public static final int CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION = 4; // 0x4
     field public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; // 0x10
     field public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 32; // 0x20
     field public static final int CONTENT_CHANGE_TYPE_PANE_TITLE = 8; // 0x8
+    field public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 64; // 0x40
     field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
     field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
     field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
@@ -2839,6 +2885,9 @@
     field @Deprecated public static final int TYPE_WINDOW_CONTENT_CHANGED = 2048; // 0x800
   }
 
+  @IntDef(flag=true, value={androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_STATE_DESCRIPTION, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_SUBTREE, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_TEXT, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_UNDEFINED}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface AccessibilityEventCompat.ContentChangeType {
+  }
+
   public final class AccessibilityManagerCompat {
     method @Deprecated public static boolean addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager!, androidx.core.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener!);
     method public static boolean addTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager!, androidx.core.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener!);
@@ -2900,6 +2949,7 @@
     method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getParent();
     method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! getRangeInfo();
     method public CharSequence? getRoleDescription();
+    method public CharSequence? getStateDescription();
     method public CharSequence! getText();
     method public int getTextSelectionEnd();
     method public int getTextSelectionStart();
@@ -2989,6 +3039,7 @@
     method public void setShowingHintText(boolean);
     method public void setSource(android.view.View!);
     method public void setSource(android.view.View!, int);
+    method public void setStateDescription(CharSequence?);
     method public void setText(CharSequence!);
     method public void setTextEntryKey(boolean);
     method public void setTextSelection(int, int);
diff --git a/core/core/src/androidTest/java/androidx/core/app/NotificationCompatTest.java b/core/core/src/androidTest/java/androidx/core/app/NotificationCompatTest.java
index 6bb544a..844f358 100644
--- a/core/core/src/androidTest/java/androidx/core/app/NotificationCompatTest.java
+++ b/core/core/src/androidTest/java/androidx/core/app/NotificationCompatTest.java
@@ -41,6 +41,7 @@
 import android.content.Intent;
 import android.graphics.BitmapFactory;
 import android.graphics.Color;
+import android.graphics.drawable.Icon;
 import android.media.AudioAttributes;
 import android.media.AudioManager;
 import android.net.Uri;
@@ -361,6 +362,18 @@
                 .getAllowGeneratedReplies());
     }
 
+    @Test
+    @SdkSuppress(minSdkVersion = 23)
+    public void testNotificationSmallIcon() {
+        Icon icon = Icon.createWithResource(mContext, R.drawable.notification_action_background);
+        NotificationCompat.Builder builder = new NotificationCompat.Builder(mContext, null);
+
+        builder.setSmallIcon(icon);
+
+        Notification notification = builder.build();
+
+        assertEquals(icon, notification.getSmallIcon());
+    }
 
     @SdkSuppress(maxSdkVersion = 16)
     @SmallTest
@@ -477,7 +490,7 @@
     }
 
     @Test
-    public void testSetNotificationSilent() throws Throwable {
+    public void testSetNotificationSilent() {
 
         Notification nSummary = new NotificationCompat.Builder(mActivityTestRule.getActivity())
                 .setVibrate(new long[] {235})
diff --git a/core/core/src/androidTest/java/androidx/core/os/HandlerExecutorTest.java b/core/core/src/androidTest/java/androidx/core/os/HandlerExecutorTest.java
new file mode 100644
index 0000000..c49a597
--- /dev/null
+++ b/core/core/src/androidTest/java/androidx/core/os/HandlerExecutorTest.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2019 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.
+ */
+
+package androidx.core.os;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import android.os.Handler;
+import android.os.Looper;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.filters.SmallTest;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Tests for {@link HandlerExecutor}.
+ */
+@RunWith(AndroidJUnit4.class)
+@SmallTest
+public class HandlerExecutorTest {
+
+    private static final long TIMEOUT_MS = 5000;
+
+    @Test
+    public void testExecutor() throws Exception {
+        final CountDownLatch latch = new CountDownLatch(1);
+        HandlerExecutor executor = new HandlerExecutor(new Handler(Looper.getMainLooper()));
+        executor.execute(new Runnable() {
+            @Override
+            public void run() {
+                latch.countDown();
+            }
+        });
+        assertTrue(latch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
+    }
+
+    @Test
+    public void testConstructor_Null() {
+        try {
+            new HandlerExecutor(null);
+            fail();
+        } catch (NullPointerException e) {
+            // pass
+        }
+    }
+
+    @Test
+    public void testExecute_Null() {
+        HandlerExecutor executor = new HandlerExecutor(new Handler(Looper.getMainLooper()));
+        try {
+            executor.execute(null);
+            fail();
+        } catch (NullPointerException e) {
+            // pass
+        }
+    }
+}
+
diff --git a/core/core/src/androidTest/java/androidx/core/view/AccessibilityDelegateCompatTest.java b/core/core/src/androidTest/java/androidx/core/view/AccessibilityDelegateCompatTest.java
index 76a8a84..c765005 100644
--- a/core/core/src/androidTest/java/androidx/core/view/AccessibilityDelegateCompatTest.java
+++ b/core/core/src/androidTest/java/androidx/core/view/AccessibilityDelegateCompatTest.java
@@ -18,6 +18,7 @@
 
 import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.nullValue;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
@@ -34,6 +35,8 @@
 import static org.mockito.Mockito.when;
 
 import android.app.Activity;
+import android.app.Instrumentation;
+import android.app.UiAutomation;
 import android.os.Build;
 import android.os.Bundle;
 import android.support.v4.BaseInstrumentationTestCase;
@@ -52,6 +55,7 @@
 import androidx.core.view.accessibility.AccessibilityNodeProviderCompat;
 import androidx.core.view.accessibility.AccessibilityViewCommand;
 import androidx.core.view.accessibility.AccessibilityViewCommand.MoveAtGranularityArguments;
+import androidx.test.InstrumentationRegistry;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
@@ -62,11 +66,16 @@
 import org.mockito.ArgumentCaptor;
 
 import java.util.List;
+import java.util.concurrent.TimeoutException;
 
 @RunWith(AndroidJUnit4.class)
 @MediumTest
 public class AccessibilityDelegateCompatTest extends
         BaseInstrumentationTestCase<ViewCompatActivity> {
+    private static final int TIMEOUT_ASYNC_PROCESSING = 5000;
+
+    private static Instrumentation sInstrumentation;
+    private static UiAutomation sUiAutomation;
 
     private ViewGroup mView;
 
@@ -76,6 +85,8 @@
 
     @Before
     public void setUp() {
+        sInstrumentation = InstrumentationRegistry.getInstrumentation();
+        sUiAutomation = sInstrumentation.getUiAutomation();
         final Activity activity = mActivityTestRule.getActivity();
         // Use a group, so it has a child
         mView = (ViewGroup) activity.findViewById(androidx.core.test.R.id.view).getParent();
@@ -358,6 +369,83 @@
         assertMockAccessibilityDelegateWorkingOnView(mockDelegate);
     }
 
+    @Test
+    @SdkSuppress(minSdkVersion = 19)
+    public void testSetAccessibilityPaneTitle_sendsOutCorrectEvent() throws TimeoutException {
+        final Activity activity = mActivityTestRule.getActivity();
+
+        AccessibilityEvent awaitedEvent =
+                sUiAutomation.executeAndWaitForEvent(new Runnable() {
+                    @Override
+                    public void run() {
+                        ViewCompat.setAccessibilityPaneTitle(mView, "test");
+                    }
+                }, new UiAutomation.AccessibilityEventFilter() {
+                    @Override
+                    public boolean accept(AccessibilityEvent event) {
+                        boolean isWindowStateChanged = event.getEventType()
+                                == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED;
+                        int isPaneTitle = (event.getContentChangeTypes()
+                                & AccessibilityEvent.CONTENT_CHANGE_TYPE_PANE_TITLE);
+                        boolean isFromThisPackage = TextUtils.equals(event.getPackageName(),
+                                activity.getPackageName());
+                        boolean isFromThisSource =
+                                event.getSource().equals(mView.createAccessibilityNodeInfo());
+                        return isWindowStateChanged && (isPaneTitle != 0) && isFromThisPackage
+                                && isFromThisSource;
+                    }
+                }, TIMEOUT_ASYNC_PROCESSING);
+
+        // The event should come from a view that's important for accessibility, even though the
+        // layout we added it to isn't important. Otherwise services may not find out about the
+        // new button.
+        assertTrue(awaitedEvent.getSource().isImportantForAccessibility());
+    }
+
+    @Test
+    @SdkSuppress(minSdkVersion = 19)
+    public void testSetStateDescription_propagatesToAccessibilityNodeInfo_sendsOutCorrectEvent()
+            throws TimeoutException {
+        final Activity activity = mActivityTestRule.getActivity();
+        final CharSequence state = "test";
+
+        assertThat(ViewCompat.getStateDescription(mView), is(nullValue()));
+        assertThat(getNodeCompatForView(mView).getStateDescription(), is(nullValue()));
+
+        AccessibilityEvent awaitedEvent =
+                sUiAutomation.executeAndWaitForEvent(new Runnable() {
+                    @Override
+                    public void run() {
+                        ViewCompat.setStateDescription(mView, state);
+                    }
+                }, new UiAutomation.AccessibilityEventFilter() {
+                    @Override
+                    public boolean accept(AccessibilityEvent event) {
+                        boolean isContentChanged = event.getEventType()
+                                == AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED;
+                        int isStateDescription = (event.getContentChangeTypes()
+                                & AccessibilityEvent.CONTENT_CHANGE_TYPE_STATE_DESCRIPTION);
+                        boolean isFromThisPackage = TextUtils.equals(event.getPackageName(),
+                                activity.getPackageName());
+                        return isContentChanged && (isStateDescription != 0) && isFromThisPackage;
+                    }
+                }, TIMEOUT_ASYNC_PROCESSING);
+
+        // The event should come from a view that's important for accessibility, even though the
+        // layout we added it to isn't important. Otherwise services may not find out about the
+        // new button.
+        assertTrue(awaitedEvent.getSource().isImportantForAccessibility());
+
+        assertThat(ViewCompat.getStateDescription(mView), is(state));
+        assertThat(getNodeCompatForView(mView).getStateDescription(), is(state));
+
+        // The value should still propagate even if we attach and detach another delegate compat
+        ViewCompat.setAccessibilityDelegate(mView, new AccessibilityDelegateCompat());
+        assertThat(getNodeCompatForView(mView).getStateDescription(), is(state));
+        ViewCompat.setAccessibilityDelegate(mView, null);
+        assertThat(getNodeCompatForView(mView).getStateDescription(), is(state));
+    }
+
     private void assertMockAccessibilityDelegateWorkingOnView(
             View.AccessibilityDelegate mockDelegate) {
         final AccessibilityEvent event = AccessibilityEvent.obtain();
diff --git a/core/core/src/main/java/androidx/core/app/JobIntentService.java b/core/core/src/main/java/androidx/core/app/JobIntentService.java
index 12f657d..2f63c3c 100644
--- a/core/core/src/main/java/androidx/core/app/JobIntentService.java
+++ b/core/core/src/main/java/androidx/core/app/JobIntentService.java
@@ -25,7 +25,6 @@
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
-import android.os.AsyncTask;
 import android.os.Build;
 import android.os.IBinder;
 import android.os.PowerManager;
@@ -380,7 +379,7 @@
     /**
      * This is a task to dequeue and process work in the background.
      */
-    final class CommandProcessor extends AsyncTask<Void, Void, Void> {
+    final class CommandProcessor extends android.os.AsyncTask<Void, Void, Void> {
         @Override
         protected Void doInBackground(Void... params) {
             GenericWorkItem work;
@@ -562,7 +561,7 @@
      * Control whether code executing in {@link #onHandleWork(Intent)} will be interrupted
      * if the job is stopped.  By default this is false.  If called and set to true, any
      * time {@link #onStopCurrentWork()} is called, the class will first call
-     * {@link AsyncTask#cancel(boolean) AsyncTask.cancel(true)} to interrupt the running
+     * {@link android.os.AsyncTask#cancel(boolean) AsyncTask.cancel(true)} to interrupt the running
      * task.
      *
      * @param interruptIfStopped Set to true to allow the system to interrupt actively
@@ -603,6 +602,7 @@
         return onStopCurrentWork();
     }
 
+    @SuppressWarnings("deprecation") /* AsyncTask */
     void ensureProcessorRunningLocked(boolean reportStarted) {
         if (mCurProcessor == null) {
             mCurProcessor = new CommandProcessor();
@@ -610,7 +610,7 @@
                 mCompatWorkEnqueuer.serviceProcessingStarted();
             }
             if (DEBUG) Log.d(TAG, "Starting processor: " + mCurProcessor);
-            mCurProcessor.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+            mCurProcessor.executeOnExecutor(android.os.AsyncTask.THREAD_POOL_EXECUTOR);
         }
     }
 
diff --git a/core/core/src/main/java/androidx/core/app/NotificationCompat.java b/core/core/src/main/java/androidx/core/app/NotificationCompat.java
index 4558738..bb9faf47 100644
--- a/core/core/src/main/java/androidx/core/app/NotificationCompat.java
+++ b/core/core/src/main/java/androidx/core/app/NotificationCompat.java
@@ -34,6 +34,7 @@
 import android.graphics.PorterDuff;
 import android.graphics.PorterDuffColorFilter;
 import android.graphics.drawable.Drawable;
+import android.graphics.drawable.Icon;
 import android.media.AudioAttributes;
 import android.media.AudioManager;
 import android.net.Uri;
@@ -747,7 +748,8 @@
         @GroupAlertBehavior int mGroupAlertBehavior = GROUP_ALERT_ALL;
         boolean mAllowSystemGeneratedContextualActions;
         BubbleMetadata mBubbleMetadata;
-        Notification mNotification = new Notification();
+        Notification.Builder mBuilder;
+        Notification mNotification;
         boolean mSilent;
 
         /**
@@ -773,6 +775,12 @@
         public Builder(@NonNull Context context, @NonNull String channelId) {
             mContext = context;
             mChannelId = channelId;
+            mBuilder = Build.VERSION.SDK_INT >= 26
+                    ? new Notification.Builder(context, channelId)
+                    : new Notification.Builder(context);
+            mNotification = Build.VERSION.SDK_INT >= 16
+                    ? mBuilder.build()
+                    : new Notification();
 
             // Set defaults to match the defaults of a Notification
             mNotification.when = System.currentTimeMillis();
@@ -810,6 +818,19 @@
         }
 
         /**
+         * Set the small icon to use in the notification layouts.  Different classes of devices
+         * may return different sizes.  See the UX guidelines for more information on how to
+         * design these icons.
+         *
+         * @param icon The small Icon object to use
+         */
+        @RequiresApi(23)
+        public @NonNull Builder setSmallIcon(@Nullable Icon icon) {
+            mBuilder.setSmallIcon(icon);
+            return this;
+        }
+
+        /**
          * Show the {@link Notification#when} field as a stopwatch.
          *
          * Instead of presenting <code>when</code> as a timestamp, the notification will show an
diff --git a/core/core/src/main/java/androidx/core/app/NotificationCompatBuilder.java b/core/core/src/main/java/androidx/core/app/NotificationCompatBuilder.java
index 135eb21..9dd8de1 100644
--- a/core/core/src/main/java/androidx/core/app/NotificationCompatBuilder.java
+++ b/core/core/src/main/java/androidx/core/app/NotificationCompatBuilder.java
@@ -177,6 +177,9 @@
                         NotificationCompat.CarExtender.EXTRA_CAR_EXTENDER, carExtenderBundle);
             }
         }
+        if (Build.VERSION.SDK_INT >= 23) {
+            mBuilder.setSmallIcon(n.getSmallIcon());
+        }
         if (Build.VERSION.SDK_INT >= 24) {
             mBuilder.setExtras(b.mExtras)
                     .setRemoteInputHistory(b.mRemoteInputHistory);
@@ -221,6 +224,12 @@
                 mGroupAlertBehavior = GROUP_ALERT_SUMMARY;
             }
 
+            mBuilder.setVibrate(null);
+            mBuilder.setSound(null);
+            n.defaults &= ~DEFAULT_SOUND;
+            n.defaults &= ~DEFAULT_VIBRATE;
+            mBuilder.setDefaults(n.defaults);
+
             if (Build.VERSION.SDK_INT >= 26) {
                 if (TextUtils.isEmpty(mBuilderCompat.mGroupKey)) {
                     mBuilder.setGroup(NotificationCompat.GROUP_KEY_SILENT);
diff --git a/core/core/src/main/java/androidx/core/content/IntentCompat.java b/core/core/src/main/java/androidx/core/content/IntentCompat.java
index 1909ac8..6f5601d 100644
--- a/core/core/src/main/java/androidx/core/content/IntentCompat.java
+++ b/core/core/src/main/java/androidx/core/content/IntentCompat.java
@@ -30,6 +30,24 @@
     }
 
     /**
+     * Activity Action: Creates a reminder.
+     * <p>Input: {@link android.content.Intent#EXTRA_TITLE} The title of the
+     * reminder that will be shown to the user.
+     * {@link android.content.Intent#EXTRA_TEXT} The reminder text that will be
+     * shown to the user. The intent should at least specify a title or a text.
+     * {@link #EXTRA_TIME} The time when the reminder will
+     * be shown to the user. The time is specified in milliseconds since the
+     * Epoch (optional).
+     * </p>
+     * <p>Output: Nothing.</p>
+     *
+     * @see android.content.Intent#EXTRA_TITLE
+     * @see android.content.Intent#EXTRA_TEXT
+     * @see #EXTRA_TIME
+     */
+    public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
+
+    /**
      * A constant String that is associated with the Intent, used with
      * {@link android.content.Intent#ACTION_SEND} to supply an alternative to
      * {@link android.content.Intent#EXTRA_TEXT}
@@ -46,6 +64,15 @@
     public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
 
     /**
+     * Optional extra specifying a time in milliseconds since the Epoch. The value must be
+     * non-negative.
+     * <p>
+     * Type: long
+     * </p>
+     */
+    public static final String EXTRA_TIME = "android.intent.extra.TIME";
+
+    /**
      * Indicates an activity optimized for Leanback mode, and that should
      * be displayed in the Leanback launcher.
      */
diff --git a/core/core/src/main/java/androidx/core/hardware/display/DisplayManagerCompat.java b/core/core/src/main/java/androidx/core/hardware/display/DisplayManagerCompat.java
index ff927a6..0bb5067 100644
--- a/core/core/src/main/java/androidx/core/hardware/display/DisplayManagerCompat.java
+++ b/core/core/src/main/java/androidx/core/hardware/display/DisplayManagerCompat.java
@@ -79,6 +79,7 @@
      * @return The display object, or null if there is no valid display with the given id.
      */
     @Nullable
+    @SuppressWarnings("deprecation") /* getDefaultDisplay */
     public Display getDisplay(int displayId) {
         if (Build.VERSION.SDK_INT >= 17) {
             return ((DisplayManager) mContext.getSystemService(Context.DISPLAY_SERVICE))
@@ -127,6 +128,7 @@
      * @see #DISPLAY_CATEGORY_PRESENTATION
      */
     @NonNull
+    @SuppressWarnings("deprecation") /* getDefaultDisplay */
     public Display[] getDisplays(@Nullable String category) {
         if (Build.VERSION.SDK_INT >= 17) {
             return ((DisplayManager) mContext.getSystemService(Context.DISPLAY_SERVICE))
diff --git a/core/core/src/main/java/androidx/core/location/GnssStatusCompat.java b/core/core/src/main/java/androidx/core/location/GnssStatusCompat.java
new file mode 100644
index 0000000..850a1d0
--- /dev/null
+++ b/core/core/src/main/java/androidx/core/location/GnssStatusCompat.java
@@ -0,0 +1,216 @@
+/*
+ * Copyright 2019 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.
+ */
+
+package androidx.core.location;
+
+import static android.os.Build.VERSION_CODES;
+
+import static androidx.annotation.RestrictTo.Scope.LIBRARY;
+
+import android.annotation.SuppressLint;
+import android.location.GnssStatus;
+import android.location.GpsSatellite;
+import android.location.GpsStatus;
+
+import androidx.annotation.FloatRange;
+import androidx.annotation.IntDef;
+import androidx.annotation.IntRange;
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
+import androidx.annotation.RestrictTo;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * GnssStatus representation that works across all Android versions. See {@link GnssStatus} and
+ * {@link GpsStatus}.
+ *
+ * <p>Note: When used to wrap {@link GpsStatus}, the best performance can be obtained by using a
+ * monotonically increasing {@code satelliteIndex} parameter (for instance, by using a loop from
+ * 0 to {@link #getSatelliteCount()}). Random access is supported but performance may suffer.
+ */
+public abstract class GnssStatusCompat {
+
+    // NOTE: CONSTELLATION_* values are copied from GnssStatus.java - any updates there should
+    // also be copied to this file.
+
+    /** Unknown constellation type. */
+    @SuppressLint("InlinedApi")
+    public static final int CONSTELLATION_UNKNOWN = GnssStatus.CONSTELLATION_UNKNOWN;
+    /** Constellation type constant for GPS. */
+    @SuppressLint("InlinedApi")
+    public static final int CONSTELLATION_GPS = GnssStatus.CONSTELLATION_GPS;
+    /** Constellation type constant for SBAS. */
+    @SuppressLint("InlinedApi")
+    public static final int CONSTELLATION_SBAS = GnssStatus.CONSTELLATION_SBAS;
+    /** Constellation type constant for Glonass. */
+    @SuppressLint("InlinedApi")
+    public static final int CONSTELLATION_GLONASS = GnssStatus.CONSTELLATION_GLONASS;
+    /** Constellation type constant for QZSS. */
+    @SuppressLint("InlinedApi")
+    public static final int CONSTELLATION_QZSS = GnssStatus.CONSTELLATION_QZSS;
+    /** Constellation type constant for Beidou. */
+    @SuppressLint("InlinedApi")
+    public static final int CONSTELLATION_BEIDOU = GnssStatus.CONSTELLATION_BEIDOU;
+    /** Constellation type constant for Galileo. */
+    @SuppressLint("InlinedApi")
+    public static final int CONSTELLATION_GALILEO = GnssStatus.CONSTELLATION_GALILEO;
+    /** Constellation type constant for IRNSS. */
+    @SuppressLint("InlinedApi")
+    public static final int CONSTELLATION_IRNSS = GnssStatus.CONSTELLATION_IRNSS;
+
+    /**
+     * @hide
+     */
+    @RestrictTo(LIBRARY)
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef({CONSTELLATION_UNKNOWN, CONSTELLATION_GPS, CONSTELLATION_SBAS, CONSTELLATION_GLONASS,
+            CONSTELLATION_QZSS, CONSTELLATION_BEIDOU, CONSTELLATION_GALILEO, CONSTELLATION_IRNSS})
+    public @interface ConstellationType {}
+
+    /**
+     * See {@link GnssStatus.Callback}.
+     */
+    public abstract static class Callback {
+
+        /**
+         * See {@link GnssStatus.Callback#onStarted()}.
+         */
+        public void onStarted() {}
+
+        /**
+         * See {@link GnssStatus.Callback#onStopped()}.
+         */
+        public void onStopped() {}
+
+        /**
+         * See {@link GnssStatus.Callback#onFirstFix(int)}.
+         */
+        public void onFirstFix(@IntRange(from = 0) int ttffMillis) {}
+
+        /**
+         * See {@link GnssStatus.Callback#onSatelliteStatusChanged(GnssStatus)}.
+         */
+        public void onSatelliteStatusChanged(@NonNull GnssStatusCompat status) {}
+    }
+
+    /**
+     * Wraps the given {@link GnssStatus} as GnssStatusCompat.
+     */
+    @RequiresApi(VERSION_CODES.N)
+    @NonNull
+    public static GnssStatusCompat wrap(@NonNull GnssStatus gnssStatus) {
+        return new GnssStatusWrapper(gnssStatus);
+    }
+
+    /**
+     * Wraps the given {@link GpsStatus} as GnssStatusCompat.
+     */
+    @SuppressLint("ReferencesDeprecated")
+    @NonNull
+    public static GnssStatusCompat wrap(@NonNull GpsStatus gpsStatus) {
+        return new GpsStatusWrapper(gpsStatus);
+    }
+
+    // package private to prevent subclassing by clients
+    GnssStatusCompat() {}
+
+    /**
+     * See {@link GnssStatus#getSatelliteCount()} and {@link GpsStatus#getMaxSatellites()}.
+     */
+    @IntRange(from = 0)
+    public abstract int getSatelliteCount();
+
+    /**
+     * See {@link GnssStatus#getConstellationType(int)}. Will always return a value for the GPS
+     * constellation below Android N.
+     *
+     * @param satelliteIndex A index from zero to {@link #getSatelliteCount()} - 1
+     */
+    @ConstellationType
+    public abstract int getConstellationType(@IntRange(from = 0) int satelliteIndex);
+
+    /**
+     * See {@link GnssStatus#getSvid(int)} and {@link GpsSatellite#getPrn()}.
+     *
+     * @param satelliteIndex A index from zero to {@link #getSatelliteCount()} - 1
+     */
+    @IntRange(from = 1, to = 200)
+    public abstract int getSvid(@IntRange(from = 0) int satelliteIndex);
+
+    /**
+     * See {@link GnssStatus#getCn0DbHz(int)} and {@link GpsSatellite#getSnr()}.
+     *
+     * @param satelliteIndex A index from zero to {@link #getSatelliteCount()} - 1
+     */
+    @FloatRange(from = 0, to = 63)
+    public abstract float getCn0DbHz(@IntRange(from = 0) int satelliteIndex);
+
+    /**
+     * See {@link GnssStatus#getElevationDegrees(int)} and {@link GpsSatellite#getElevation()}.
+     *
+     * @param satelliteIndex A index from zero to {@link #getSatelliteCount()} - 1
+     */
+    @FloatRange(from = -90, to = 90)
+    public abstract float getElevationDegrees(@IntRange(from = 0) int satelliteIndex);
+
+    /**
+     * See {@link GnssStatus#getAzimuthDegrees(int)} and {@link GpsSatellite#getAzimuth()}.
+     *
+     * @param satelliteIndex A index from zero to {@link #getSatelliteCount()} - 1
+     */
+    @FloatRange(from = 0, to = 360)
+    public abstract float getAzimuthDegrees(@IntRange(from = 0) int satelliteIndex);
+
+    /**
+     * See {@link GnssStatus#hasEphemerisData(int)} and {@link GpsSatellite#hasEphemeris()}.
+     *
+     * @param satelliteIndex A index from zero to {@link #getSatelliteCount()} - 1
+     */
+    public abstract boolean hasEphemerisData(@IntRange(from = 0) int satelliteIndex);
+
+    /**
+     * See {@link GnssStatus#hasAlmanacData(int)} and {@link GpsSatellite#hasAlmanac()}.
+     *
+     * @param satelliteIndex A index from zero to {@link #getSatelliteCount()} - 1
+     */
+    public abstract boolean hasAlmanacData(@IntRange(from = 0) int satelliteIndex);
+
+    /**
+     * See {@link GnssStatus#usedInFix(int)} and {@link GpsSatellite#usedInFix()}.
+     *
+     * @param satelliteIndex A index from zero to {@link #getSatelliteCount()} - 1
+     */
+    public abstract boolean usedInFix(@IntRange(from = 0) int satelliteIndex);
+
+    /**
+     * See {@link GnssStatus#hasCarrierFrequencyHz(int)}. This will always return false prior to
+     * Android O.
+     *
+     * @param satelliteIndex A index from zero to {@link #getSatelliteCount()} - 1
+     */
+    public abstract boolean hasCarrierFrequencyHz(@IntRange(from = 0) int satelliteIndex);
+
+    /**
+     * See {@link GnssStatus#getCarrierFrequencyHz(int)}. Behavior is undefined if
+     * {@link #hasCarrierFrequencyHz(int)} returns false.
+     *
+     * @param satelliteIndex A index from zero to {@link #getSatelliteCount()} - 1
+     */
+    @FloatRange(from = 0)
+    public abstract float getCarrierFrequencyHz(@IntRange(from = 0) int satelliteIndex);
+}
diff --git a/core/core/src/main/java/androidx/core/location/GnssStatusWrapper.java b/core/core/src/main/java/androidx/core/location/GnssStatusWrapper.java
new file mode 100644
index 0000000..5a2cced
--- /dev/null
+++ b/core/core/src/main/java/androidx/core/location/GnssStatusWrapper.java
@@ -0,0 +1,103 @@
+/*
+ * Copyright 2019 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.
+ */
+
+package androidx.core.location;
+
+import static android.os.Build.VERSION;
+import static android.os.Build.VERSION_CODES;
+
+import static androidx.annotation.RestrictTo.Scope.LIBRARY;
+
+import android.location.GnssStatus;
+
+import androidx.annotation.RequiresApi;
+import androidx.annotation.RestrictTo;
+import androidx.core.util.Preconditions;
+
+/** @hide */
+@RestrictTo(LIBRARY)
+@RequiresApi(VERSION_CODES.N)
+class GnssStatusWrapper extends GnssStatusCompat {
+
+    private final GnssStatus mWrapped;
+
+    GnssStatusWrapper(GnssStatus gnssStatus) {
+        mWrapped = Preconditions.checkNotNull(gnssStatus);
+    }
+
+    @Override
+    public int getSatelliteCount() {
+        return mWrapped.getSatelliteCount();
+    }
+
+    @Override
+    public int getConstellationType(int satelliteIndex) {
+        return mWrapped.getConstellationType(satelliteIndex);
+    }
+
+    @Override
+    public int getSvid(int satelliteIndex) {
+        return mWrapped.getSvid(satelliteIndex);
+    }
+
+    @Override
+    public float getCn0DbHz(int satelliteIndex) {
+        return mWrapped.getCn0DbHz(satelliteIndex);
+    }
+
+    @Override
+    public float getElevationDegrees(int satelliteIndex) {
+        return mWrapped.getElevationDegrees(satelliteIndex);
+    }
+
+    @Override
+    public float getAzimuthDegrees(int satelliteIndex) {
+        return mWrapped.getAzimuthDegrees(satelliteIndex);
+    }
+
+    @Override
+    public boolean hasEphemerisData(int satelliteIndex) {
+        return mWrapped.hasEphemerisData(satelliteIndex);
+    }
+
+    @Override
+    public boolean hasAlmanacData(int satelliteIndex) {
+        return mWrapped.hasAlmanacData(satelliteIndex);
+    }
+
+    @Override
+    public boolean usedInFix(int satelliteIndex) {
+        return mWrapped.usedInFix(satelliteIndex);
+    }
+
+    @Override
+    public boolean hasCarrierFrequencyHz(int satelliteIndex) {
+        if (VERSION.SDK_INT >= VERSION_CODES.O) {
+            return mWrapped.hasCarrierFrequencyHz(satelliteIndex);
+        } else {
+            return false;
+        }
+    }
+
+    @Override
+    public float getCarrierFrequencyHz(int satelliteIndex) {
+        if (VERSION.SDK_INT >= VERSION_CODES.O) {
+            return mWrapped.getCarrierFrequencyHz(satelliteIndex);
+        } else {
+            throw new UnsupportedOperationException();
+        }
+    }
+}
diff --git a/core/core/src/main/java/androidx/core/location/GpsStatusWrapper.java b/core/core/src/main/java/androidx/core/location/GpsStatusWrapper.java
new file mode 100644
index 0000000..3ac9610
--- /dev/null
+++ b/core/core/src/main/java/androidx/core/location/GpsStatusWrapper.java
@@ -0,0 +1,191 @@
+/*
+ * Copyright 2019 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.
+ */
+
+package androidx.core.location;
+
+import static androidx.annotation.RestrictTo.Scope.LIBRARY;
+
+import android.location.GpsSatellite;
+import android.location.GpsStatus;
+import android.os.Build.VERSION;
+import android.os.Build.VERSION_CODES;
+
+import androidx.annotation.GuardedBy;
+import androidx.annotation.RestrictTo;
+import androidx.core.util.Preconditions;
+
+import java.util.Iterator;
+
+/** @hide */
+@RestrictTo(LIBRARY)
+class GpsStatusWrapper extends GnssStatusCompat {
+
+    private static final int GPS_PRN_OFFSET = 0;
+    private static final int GPS_PRN_COUNT = 32;
+    private static final int SBAS_PRN_MIN = 33;
+    private static final int SBAS_PRN_MAX = 64;
+    private static final int SBAS_PRN_OFFSET = -87;
+    private static final int GLONASS_PRN_OFFSET = 64;
+    private static final int GLONASS_PRN_COUNT = 24;
+    private static final int QZSS_SVID_MIN = 193;
+    private static final int QZSS_SVID_MAX = 200;
+    private static final int BEIDOU_PRN_OFFSET = 200;
+    private static final int BEIDOU_PRN_COUNT = 35;
+
+    private final GpsStatus mWrapped;
+
+    @GuardedBy("mWrapped")
+    private int mCachedSatelliteCount;
+
+    @GuardedBy("mWrapped")
+    private Iterator<GpsSatellite> mCachedIterator;
+    @GuardedBy("mWrapped")
+    private int mCachedIteratorPosition;
+    @GuardedBy("mWrapped")
+    private GpsSatellite mCachedSatellite;
+
+    GpsStatusWrapper(GpsStatus gpsStatus) {
+        mWrapped = Preconditions.checkNotNull(gpsStatus);
+        mCachedSatelliteCount = -1;
+        mCachedIterator = mWrapped.getSatellites().iterator();
+        mCachedIteratorPosition = -1;
+        mCachedSatellite = null;
+    }
+
+    @Override
+    public int getSatelliteCount() {
+        synchronized (mWrapped) {
+            if (mCachedSatelliteCount == -1) {
+                for (@SuppressWarnings("unused") GpsSatellite ignored : mWrapped.getSatellites()) {
+                    mCachedSatelliteCount++;
+                }
+                mCachedSatelliteCount++;
+            }
+
+            return mCachedSatelliteCount;
+        }
+    }
+
+    @Override
+    public int getConstellationType(int satelliteIndex) {
+        if (VERSION.SDK_INT < VERSION_CODES.N) {
+            return CONSTELLATION_GPS;
+        } else {
+            return getConstellationFromPrn(getSatellite(satelliteIndex).getPrn());
+        }
+    }
+
+    @Override
+    public int getSvid(int satelliteIndex) {
+        if (VERSION.SDK_INT < VERSION_CODES.N) {
+            return getSatellite(satelliteIndex).getPrn();
+        } else {
+            return getSvidFromPrn(getSatellite(satelliteIndex).getPrn());
+        }
+    }
+
+    @Override
+    public float getCn0DbHz(int satelliteIndex) {
+        return getSatellite(satelliteIndex).getSnr();
+    }
+
+    @Override
+    public float getElevationDegrees(int satelliteIndex) {
+        return getSatellite(satelliteIndex).getElevation();
+    }
+
+    @Override
+    public float getAzimuthDegrees(int satelliteIndex) {
+        return getSatellite(satelliteIndex).getAzimuth();
+    }
+
+    @Override
+    public boolean hasEphemerisData(int satelliteIndex) {
+        return getSatellite(satelliteIndex).hasEphemeris();
+    }
+
+    @Override
+    public boolean hasAlmanacData(int satelliteIndex) {
+        return getSatellite(satelliteIndex).hasAlmanac();
+    }
+
+    @Override
+    public boolean usedInFix(int satelliteIndex) {
+        return getSatellite(satelliteIndex).usedInFix();
+    }
+
+    @Override
+    public boolean hasCarrierFrequencyHz(int satelliteIndex) {
+        return false;
+    }
+
+    @Override
+    public float getCarrierFrequencyHz(int satelliteIndex) {
+        throw new UnsupportedOperationException();
+    }
+
+    private GpsSatellite getSatellite(int satelliteIndex) {
+        GpsSatellite satellite;
+        synchronized (mWrapped) {
+            if (satelliteIndex < mCachedIteratorPosition) {
+                mCachedIterator = mWrapped.getSatellites().iterator();
+                mCachedIteratorPosition = -1;
+            }
+            while (mCachedIteratorPosition < satelliteIndex) {
+                mCachedIteratorPosition++;
+                if (!mCachedIterator.hasNext()) {
+                    mCachedSatellite = null;
+                    break;
+                } else {
+                    mCachedSatellite = mCachedIterator.next();
+                }
+            }
+            satellite = mCachedSatellite;
+        }
+        return Preconditions.checkNotNull(satellite);
+    }
+
+    private static int getConstellationFromPrn(int prn) {
+        if (prn > GPS_PRN_OFFSET && prn <= GPS_PRN_OFFSET + GPS_PRN_COUNT) {
+            return CONSTELLATION_GPS;
+        } else if (prn >= SBAS_PRN_MIN && prn <= SBAS_PRN_MAX) {
+            return CONSTELLATION_SBAS;
+        } else if (prn > GLONASS_PRN_OFFSET && prn <= GLONASS_PRN_OFFSET + GLONASS_PRN_COUNT) {
+            return CONSTELLATION_GLONASS;
+        } else if (prn > BEIDOU_PRN_OFFSET && prn <= BEIDOU_PRN_OFFSET + BEIDOU_PRN_COUNT) {
+            return CONSTELLATION_BEIDOU;
+        } else if (prn >= QZSS_SVID_MIN && prn <= QZSS_SVID_MAX) {
+            return CONSTELLATION_QZSS;
+        } else {
+            return CONSTELLATION_UNKNOWN;
+        }
+    }
+
+    private static int getSvidFromPrn(int prn) {
+        switch (getConstellationFromPrn(prn)) {
+            case CONSTELLATION_SBAS:
+                prn -= SBAS_PRN_OFFSET;
+                break;
+            case CONSTELLATION_GLONASS:
+                prn -= GLONASS_PRN_OFFSET;
+                break;
+            case CONSTELLATION_BEIDOU:
+                prn -= BEIDOU_PRN_OFFSET;
+                break;
+        }
+        return prn;
+    }
+}
diff --git a/core/core/src/main/java/androidx/core/location/LocationManagerCompat.java b/core/core/src/main/java/androidx/core/location/LocationManagerCompat.java
index 71f2c24..2aca0a3 100644
--- a/core/core/src/main/java/androidx/core/location/LocationManagerCompat.java
+++ b/core/core/src/main/java/androidx/core/location/LocationManagerCompat.java
@@ -16,17 +16,40 @@
 
 package androidx.core.location;
 
+import static android.Manifest.permission.ACCESS_FINE_LOCATION;
+
+import android.location.GnssStatus;
+import android.location.GpsStatus;
 import android.location.LocationManager;
 import android.os.Build.VERSION;
 import android.os.Build.VERSION_CODES;
+import android.os.Handler;
+import android.os.Looper;
 
+import androidx.annotation.GuardedBy;
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.RequiresApi;
+import androidx.annotation.RequiresPermission;
+import androidx.collection.SimpleArrayMap;
+import androidx.core.os.HandlerExecutor;
+import androidx.core.util.Preconditions;
+
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Executor;
+import java.util.concurrent.FutureTask;
+import java.util.concurrent.RejectedExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
 
 /**
  * Helper for accessing features in {@link LocationManager}.
  */
 public final class LocationManagerCompat {
 
+    private static final long PRE_N_LOOPER_TIMEOUT_S = 4;
+
     /**
      * Returns the current enabled/disabled state of location.
      *
@@ -47,5 +70,414 @@
         }
     }
 
+    @GuardedBy("sGnssStatusListeners")
+    private static final SimpleArrayMap<Object, Object> sGnssStatusListeners =
+            new SimpleArrayMap<>();
+
+    /**
+     * Registers a platform agnostic {@link GnssStatusCompat.Callback}. See
+     * {@link LocationManager#addGpsStatusListener(GpsStatus.Listener)} and
+     * {@link LocationManager#registerGnssStatusCallback(GnssStatus.Callback, Handler)}.
+     *
+     * @see #registerGnssStatusCallback(LocationManager, Executor, GnssStatusCompat.Callback)
+     */
+    @RequiresPermission(ACCESS_FINE_LOCATION)
+    public static boolean registerGnssStatusCallback(@NonNull LocationManager locationManager,
+            @NonNull GnssStatusCompat.Callback callback, @NonNull Handler handler) {
+        if (VERSION.SDK_INT >= VERSION_CODES.R) {
+            return registerGnssStatusCallback(locationManager, new HandlerExecutor(handler),
+                callback);
+        } else {
+            return registerGnssStatusCallback(locationManager, new InlineHandlerExecutor(handler),
+                    callback);
+        }
+    }
+
+    /**
+     * Registers a platform agnostic {@link GnssStatusCompat.Callback}. See
+     * {@link LocationManager#addGpsStatusListener(GpsStatus.Listener)} and
+     * {@link LocationManager#registerGnssStatusCallback(Executor, GnssStatus.Callback)}.
+     *
+     * <p>Internally, this API will always utilize GnssStatus APIs and instances on Android N and
+     * above, and will always utilize GpsStatus APIs and instances below Android N. Callbacks will
+     * always occur on the given executor.
+     *
+     * <p>If invoked on Android M or below, this will result in GpsStatus registration being run on
+     * either the current Looper or main Looper. If the thread this function is invoked on is
+     * different from that Looper, the caller must ensure that the Looper thread cannot be blocked
+     * by the thread this function is invoked on. The easiest way to avoid this is to ensure this
+     * function is invoked on a Looper thread.
+     *
+     * @throws IllegalStateException on Android M or below, if the current Looper or main Looper
+     *                               is blocked by the thread this function is invoked on
+     */
+    @RequiresPermission(ACCESS_FINE_LOCATION)
+    public static boolean registerGnssStatusCallback(@NonNull LocationManager locationManager,
+            @NonNull Executor executor, @NonNull GnssStatusCompat.Callback callback) {
+        if (VERSION.SDK_INT >= VERSION_CODES.R) {
+            return registerGnssStatusCallback(locationManager, null, executor, callback);
+        } else {
+            Looper looper = Looper.myLooper();
+            if (looper == null) {
+                looper = Looper.getMainLooper();
+            }
+            return registerGnssStatusCallback(locationManager, new Handler(looper), executor,
+                    callback);
+        }
+    }
+
+    @RequiresPermission(ACCESS_FINE_LOCATION)
+    private static boolean registerGnssStatusCallback(final LocationManager locationManager,
+            Handler baseHandler, Executor executor, GnssStatusCompat.Callback callback) {
+        if (VERSION.SDK_INT >= VERSION_CODES.R) {
+            synchronized (sGnssStatusListeners) {
+                GnssStatusTransport transport =
+                        (GnssStatusTransport) sGnssStatusListeners.get(callback);
+                if (transport == null) {
+                    transport = new GnssStatusTransport(callback);
+                }
+                if (locationManager.registerGnssStatusCallback(executor, transport)) {
+                    sGnssStatusListeners.put(callback, transport);
+                    return true;
+                } else {
+                    return false;
+                }
+            }
+        } else if (VERSION.SDK_INT >= VERSION_CODES.N) {
+            Preconditions.checkArgument(baseHandler != null);
+            synchronized (sGnssStatusListeners) {
+                PreRGnssStatusTransport transport =
+                        (PreRGnssStatusTransport) sGnssStatusListeners.get(callback);
+                if (transport == null) {
+                    transport = new PreRGnssStatusTransport(callback);
+                } else {
+                    transport.unregister();
+                }
+                transport.register(executor);
+
+                if (locationManager.registerGnssStatusCallback(transport, baseHandler)) {
+                    sGnssStatusListeners.put(callback, transport);
+                    return true;
+                } else {
+                    transport.unregister();
+                    return false;
+                }
+            }
+        } else {
+            Preconditions.checkArgument(baseHandler != null);
+            synchronized (sGnssStatusListeners) {
+                GpsStatusTransport transport =
+                        (GpsStatusTransport) sGnssStatusListeners.get(callback);
+                if (transport == null) {
+                    transport = new GpsStatusTransport(locationManager, callback);
+                } else {
+                    transport.unregister();
+                }
+                transport.register(executor);
+
+                final GpsStatusTransport myTransport = transport;
+                FutureTask<Boolean> task = new FutureTask<>(new Callable<Boolean>() {
+                    @RequiresPermission(ACCESS_FINE_LOCATION)
+                    @Override
+                    public Boolean call() {
+                        return locationManager.addGpsStatusListener(myTransport);
+                    }
+                });
+
+                if (Looper.myLooper() == baseHandler.getLooper()) {
+                    task.run();
+                } else if (!baseHandler.post(task)) {
+                    throw new IllegalStateException(baseHandler + " is shutting down");
+                }
+                try {
+                    if (task.get(PRE_N_LOOPER_TIMEOUT_S, TimeUnit.SECONDS)) {
+                        sGnssStatusListeners.put(callback, myTransport);
+                        return true;
+                    } else {
+                        transport.unregister();
+                        return false;
+                    }
+                } catch (ExecutionException | InterruptedException e) {
+                    throw new IllegalStateException(e);
+                } catch (TimeoutException e) {
+                    throw new IllegalStateException(baseHandler + " appears to be blocked, please"
+                            + " run registerGnssStatusCallback() directly on a Looper thread or "
+                            + "ensure the main Looper is not blocked by this thread", e);
+                }
+            }
+        }
+    }
+
+    /**
+     * Unregisters a platform agnostic {@link GnssStatusCompat.Callback}. See
+     * {@link LocationManager#removeGpsStatusListener(GpsStatus.Listener)}
+     * and {@link LocationManager#unregisterGnssStatusCallback(GnssStatus.Callback)}.
+     */
+    public static void unregisterGnssStatusCallback(@NonNull LocationManager locationManager,
+            @NonNull GnssStatusCompat.Callback callback) {
+        if (VERSION.SDK_INT >= VERSION_CODES.R) {
+            synchronized (sGnssStatusListeners) {
+                GnssStatusTransport transport =
+                        (GnssStatusTransport) sGnssStatusListeners.remove(callback);
+                if (transport != null) {
+                    locationManager.unregisterGnssStatusCallback(transport);
+                }
+            }
+        } else if (VERSION.SDK_INT >= VERSION_CODES.N) {
+            synchronized (sGnssStatusListeners) {
+                PreRGnssStatusTransport transport =
+                        (PreRGnssStatusTransport) sGnssStatusListeners.remove(callback);
+                if (transport != null) {
+                    transport.unregister();
+                    locationManager.unregisterGnssStatusCallback(transport);
+                }
+            }
+        } else {
+            synchronized (sGnssStatusListeners) {
+                GpsStatusTransport transport =
+                        (GpsStatusTransport) sGnssStatusListeners.remove(callback);
+                if (transport != null) {
+                    transport.unregister();
+                    locationManager.removeGpsStatusListener(transport);
+                }
+            }
+        }
+    }
+
     private LocationManagerCompat() {}
+
+    @RequiresApi(VERSION_CODES.R)
+    private static class GnssStatusTransport extends GnssStatus.Callback {
+
+        final GnssStatusCompat.Callback mCallback;
+
+        GnssStatusTransport(GnssStatusCompat.Callback callback) {
+            Preconditions.checkArgument(callback != null, "invalid null callback");
+            mCallback = callback;
+        }
+
+        @Override
+        public void onStarted() {
+            mCallback.onStarted();
+        }
+
+        @Override
+        public void onStopped() {
+            mCallback.onStopped();
+        }
+
+        @Override
+        public void onFirstFix(int ttffMillis) {
+            mCallback.onFirstFix(ttffMillis);
+        }
+
+        @Override
+        public void onSatelliteStatusChanged(GnssStatus status) {
+            mCallback.onSatelliteStatusChanged(GnssStatusCompat.wrap(status));
+        }
+    }
+
+    @RequiresApi(VERSION_CODES.N)
+    private static class PreRGnssStatusTransport extends GnssStatus.Callback {
+
+        final GnssStatusCompat.Callback mCallback;
+
+        @Nullable volatile Executor mExecutor;
+
+        PreRGnssStatusTransport(GnssStatusCompat.Callback callback) {
+            Preconditions.checkArgument(callback != null, "invalid null callback");
+            mCallback = callback;
+        }
+
+        public void register(Executor executor) {
+            Preconditions.checkArgument(executor != null, "invalid null executor");
+            Preconditions.checkState(mExecutor == null);
+            mExecutor = executor;
+        }
+
+        public void unregister() {
+            mExecutor = null;
+        }
+
+        @Override
+        public void onStarted() {
+            final Executor executor = mExecutor;
+            if (executor == null) {
+                return;
+            }
+
+            executor.execute(new Runnable() {
+                @Override
+                public void run() {
+                    if (mExecutor != executor) {
+                        return;
+                    }
+                    mCallback.onStarted();
+                }
+            });
+        }
+
+        @Override
+        public void onStopped() {
+            final Executor executor = mExecutor;
+            if (executor == null) {
+                return;
+            }
+
+            executor.execute(new Runnable() {
+                @Override
+                public void run() {
+                    if (mExecutor != executor) {
+                        return;
+                    }
+                    mCallback.onStopped();
+                }
+            });
+        }
+
+        @Override
+        public void onFirstFix(final int ttffMillis) {
+            final Executor executor = mExecutor;
+            if (executor == null) {
+                return;
+            }
+
+            executor.execute(new Runnable() {
+                @Override
+                public void run() {
+                    if (mExecutor != executor) {
+                        return;
+                    }
+                    mCallback.onFirstFix(ttffMillis);
+                }
+            });
+        }
+
+        @Override
+        public void onSatelliteStatusChanged(final GnssStatus status) {
+            final Executor executor = mExecutor;
+            if (executor == null) {
+                return;
+            }
+
+            executor.execute(new Runnable() {
+                @Override
+                public void run() {
+                    if (mExecutor != executor) {
+                        return;
+                    }
+                    mCallback.onSatelliteStatusChanged(GnssStatusCompat.wrap(status));
+                }
+            });
+        }
+    }
+
+    private static class GpsStatusTransport implements GpsStatus.Listener {
+
+        private final LocationManager mLocationManager;
+        final GnssStatusCompat.Callback mCallback;
+
+        @Nullable volatile Executor mExecutor;
+
+        GpsStatusTransport(LocationManager locationManager,
+                GnssStatusCompat.Callback callback) {
+            Preconditions.checkArgument(callback != null, "invalid null callback");
+            mLocationManager = locationManager;
+            mCallback = callback;
+        }
+
+        public void register(Executor executor) {
+            Preconditions.checkState(mExecutor == null);
+            mExecutor = executor;
+        }
+
+        public void unregister() {
+            mExecutor = null;
+        }
+
+        @RequiresPermission(ACCESS_FINE_LOCATION)
+        @Override
+        public void onGpsStatusChanged(int event) {
+            final Executor executor = mExecutor;
+            if (executor == null) {
+                return;
+            }
+
+            GpsStatus gpsStatus;
+
+            switch (event) {
+                case GpsStatus.GPS_EVENT_STARTED:
+                    executor.execute(new Runnable() {
+                        @Override
+                        public void run() {
+                            if (mExecutor != executor) {
+                                return;
+                            }
+                            mCallback.onStarted();
+                        }
+                    });
+                    break;
+                case GpsStatus.GPS_EVENT_STOPPED:
+                    executor.execute(new Runnable() {
+                        @Override
+                        public void run() {
+                            if (mExecutor != executor) {
+                                return;
+                            }
+                            mCallback.onStopped();
+                        }
+                    });
+                    break;
+                case GpsStatus.GPS_EVENT_FIRST_FIX:
+                    gpsStatus = mLocationManager.getGpsStatus(null);
+                    if (gpsStatus != null) {
+                        final int ttff = gpsStatus.getTimeToFirstFix();
+                        executor.execute(new Runnable() {
+                            @Override
+                            public void run() {
+                                if (mExecutor != executor) {
+                                    return;
+                                }
+                                mCallback.onFirstFix(ttff);
+                            }
+                        });
+                    }
+                    break;
+                case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
+                    gpsStatus = mLocationManager.getGpsStatus(null);
+                    if (gpsStatus != null) {
+                        final GnssStatusCompat gnssStatus = GnssStatusCompat.wrap(gpsStatus);
+                        executor.execute(new Runnable() {
+                            @Override
+                            public void run() {
+                                if (mExecutor != executor) {
+                                    return;
+                                }
+                                mCallback.onSatelliteStatusChanged(gnssStatus);
+                            }
+                        });
+                    }
+                    break;
+            }
+        }
+    }
+
+    // using this class allows listeners to be run more efficiently in the common case for pre-R
+    // SDKs where the AOSP callback is already on the same Looper the listener wants
+    private static class InlineHandlerExecutor implements Executor {
+        private final Handler mHandler;
+
+        InlineHandlerExecutor(@NonNull Handler handler) {
+            mHandler = Preconditions.checkNotNull(handler);
+        }
+
+        @Override
+        public void execute(@NonNull Runnable command) {
+            if (Looper.myLooper() == mHandler.getLooper()) {
+                command.run();
+            } else if (!mHandler.post(Preconditions.checkNotNull(command))) {
+                throw new RejectedExecutionException(mHandler + " is shutting down");
+            }
+        }
+    }
 }
diff --git a/core/core/src/main/java/androidx/core/location/OWNERS b/core/core/src/main/java/androidx/core/location/OWNERS
new file mode 100644
index 0000000..a420c39
--- /dev/null
+++ b/core/core/src/main/java/androidx/core/location/OWNERS
@@ -0,0 +1,3 @@
+wyattriley@google.com
+sooniln@google.com
+weiwa@google.com
diff --git a/core/core/src/main/java/androidx/core/os/HandlerExecutor.java b/core/core/src/main/java/androidx/core/os/HandlerExecutor.java
new file mode 100644
index 0000000..962a076
--- /dev/null
+++ b/core/core/src/main/java/androidx/core/os/HandlerExecutor.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2019 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.
+ */
+
+package androidx.core.os;
+
+import android.os.Handler;
+
+import androidx.annotation.NonNull;
+import androidx.core.util.Preconditions;
+
+import java.util.concurrent.Executor;
+import java.util.concurrent.RejectedExecutionException;
+
+/** An adapter {@link Executor} that posts all executed tasks onto the given {@link Handler}. */
+public class HandlerExecutor implements Executor {
+    private final Handler mHandler;
+
+    public HandlerExecutor(@NonNull Handler handler) {
+        mHandler = Preconditions.checkNotNull(handler);
+    }
+
+    @Override
+    public void execute(@NonNull Runnable command) {
+        if (!mHandler.post(Preconditions.checkNotNull(command))) {
+            throw new RejectedExecutionException(mHandler + " is shutting down");
+        }
+    }
+}
diff --git a/core/core/src/main/java/androidx/core/view/AccessibilityDelegateCompat.java b/core/core/src/main/java/androidx/core/view/AccessibilityDelegateCompat.java
index a1f6081..de873ba 100644
--- a/core/core/src/main/java/androidx/core/view/AccessibilityDelegateCompat.java
+++ b/core/core/src/main/java/androidx/core/view/AccessibilityDelegateCompat.java
@@ -83,6 +83,7 @@
             nodeInfoCompat.setScreenReaderFocusable(ViewCompat.isScreenReaderFocusable(host));
             nodeInfoCompat.setHeading(ViewCompat.isAccessibilityHeading(host));
             nodeInfoCompat.setPaneTitle(ViewCompat.getAccessibilityPaneTitle(host));
+            nodeInfoCompat.setStateDescription(ViewCompat.getStateDescription(host));
             mCompat.onInitializeAccessibilityNodeInfo(host, nodeInfoCompat);
             nodeInfoCompat.addSpansToExtras(info.getText(), host);
             List<AccessibilityActionCompat> actions = getActionList(host);
diff --git a/core/core/src/main/java/androidx/core/view/ViewCompat.java b/core/core/src/main/java/androidx/core/view/ViewCompat.java
index d52a89c..4c184eb 100644
--- a/core/core/src/main/java/androidx/core/view/ViewCompat.java
+++ b/core/core/src/main/java/androidx/core/view/ViewCompat.java
@@ -674,6 +674,7 @@
      * <li>{@link AccessibilityNodeInfoCompat#setPackageName(CharSequence)},</li>
      * <li>{@link AccessibilityNodeInfoCompat#setClassName(CharSequence)},</li>
      * <li>{@link AccessibilityNodeInfoCompat#setContentDescription(CharSequence)},</li>
+     * <li>{@link AccessibilityNodeInfoCompat#setStateDescription(CharSequence)},</li>
      * <li>{@link AccessibilityNodeInfoCompat#setEnabled(boolean)},</li>
      * <li>{@link AccessibilityNodeInfoCompat#setClickable(boolean)},</li>
      * <li>{@link AccessibilityNodeInfoCompat#setFocusable(boolean)},</li>
@@ -1358,6 +1359,43 @@
     }
 
     /**
+     * Sets the state description of this node.
+     * <p>
+     *   <strong>Note:</strong> Cannot be called from an
+     *   {@link android.accessibilityservice.AccessibilityService}.
+     *   This class is made immutable before being delivered to an AccessibilityService.
+     * </p>
+     *
+     * @param stateDescription the state description of this node.
+     *
+     * @throws IllegalStateException If called from an AccessibilityService.
+     */
+    @UiThread
+    public static void setStateDescription(@NonNull View view,
+            @Nullable CharSequence stateDescription) {
+        if (Build.VERSION.SDK_INT >= 19) {
+            stateDescriptionProperty().set(view, stateDescription);
+        }
+    }
+
+    /**
+     * Returns the {@link View}'s state description.
+     * <p>
+     * <strong>Note:</strong> Do not override this method, as it will have no
+     * effect on the state description presented to accessibility services.
+     * You must call {@link #setStateDescription(View, CharSequence)} to modify the
+     * state description.
+     *
+     * @return the state description
+     * @see #setStateDescription(View, CharSequence)
+     */
+    @UiThread
+    public static final @Nullable CharSequence getStateDescription(@NonNull View view) {
+        return stateDescriptionProperty().get(view);
+    }
+
+
+    /**
      * Allow accessibility services to find and activate clickable spans in the application.
      *
      * @param view The view
@@ -3521,6 +3559,7 @@
      * @return The logical display, or null if the view is not currently attached to a window.
      */
     @Nullable
+    @SuppressWarnings("deprecation") /* getDefaultDisplay */
     public static Display getDisplay(@NonNull View view) {
         if (Build.VERSION.SDK_INT >= 17) {
             return view.getDisplay();
@@ -4004,6 +4043,29 @@
         };
     }
 
+    private static AccessibilityViewProperty<CharSequence> stateDescriptionProperty() {
+        return new AccessibilityViewProperty<CharSequence>(R.id.tag_state_description,
+                CharSequence.class, AccessibilityEvent.CONTENT_CHANGE_TYPE_STATE_DESCRIPTION, 30) {
+
+            @RequiresApi(30)
+            @Override
+            CharSequence frameworkGet(View view) {
+                return view.getStateDescription();
+            }
+
+            @RequiresApi(30)
+            @Override
+            void frameworkSet(View view, CharSequence value) {
+                view.setStateDescription(value);
+            }
+
+            @Override
+            boolean shouldUpdate(CharSequence oldValue, CharSequence newValue) {
+                return !TextUtils.equals(oldValue, newValue);
+            }
+        };
+    }
+
     /**
      * Gets whether this view is a heading for accessibility purposes.
      *
@@ -4066,6 +4128,7 @@
         private final int mTagKey;
         private final Class<T> mType;
         private final int mFrameworkMinimumSdk;
+        private final int mContentChangeType;
 
         AccessibilityViewProperty(int tagKey, Class<T> type, int frameworkMinimumSdk) {
             this(tagKey, type,
@@ -4076,7 +4139,9 @@
                 int tagKey, Class<T> type, int contentChangeType, int frameworkMinimumSdk) {
             mTagKey = tagKey;
             mType = type;
+            mContentChangeType = contentChangeType;
             mFrameworkMinimumSdk = frameworkMinimumSdk;
+
         }
 
         void set(View view, T value) {
@@ -4088,8 +4153,7 @@
                 // If we're here, we're guaranteed to be on v19+ (see the logic in
                 // extrasAvailable), so we can call notifyViewAccessibilityStateChangedIfNeeded
                 // which requires 19.
-                notifyViewAccessibilityStateChangedIfNeeded(view,
-                        AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED);
+                notifyViewAccessibilityStateChangedIfNeeded(view, mContentChangeType);
             }
         }
 
diff --git a/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityEventCompat.java b/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityEventCompat.java
index 93e5a90..281348a 100644
--- a/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityEventCompat.java
+++ b/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityEventCompat.java
@@ -16,10 +16,19 @@
 
 package androidx.core.view.accessibility;
 
+import static androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX;
+
 import android.os.Build;
 import android.view.accessibility.AccessibilityEvent;
+import android.view.accessibility.AccessibilityNodeInfo;
 import android.view.accessibility.AccessibilityRecord;
 
+import androidx.annotation.IntDef;
+import androidx.annotation.RestrictTo;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
 /**
  * Helper for accessing features in {@link AccessibilityEvent}.
  */
@@ -181,6 +190,13 @@
     public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 0x00000020;
 
     /**
+     * Change type for {@link AccessibilityEvent#TYPE_WINDOW_CONTENT_CHANGED} event:
+     * state description of the node as returned by
+     * {@link AccessibilityNodeInfo#getStateDescription} was changed.
+     */
+    public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 0x00000040;
+
+    /**
      * Mask for {@link AccessibilityEvent} all types.
      *
      * @see AccessibilityEvent#TYPE_VIEW_CLICKED
@@ -209,6 +225,20 @@
      */
     public static final int TYPES_ALL_MASK = 0xFFFFFFFF;
 
+    /** @hide */
+    @IntDef(
+            flag = true,
+            value = {
+                    CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION,
+                    CONTENT_CHANGE_TYPE_STATE_DESCRIPTION,
+                    CONTENT_CHANGE_TYPE_SUBTREE,
+                    CONTENT_CHANGE_TYPE_TEXT,
+                    CONTENT_CHANGE_TYPE_UNDEFINED
+            })
+    @RestrictTo(LIBRARY_GROUP_PREFIX)
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface ContentChangeType {}
+
     /*
      * Hide constructor from clients.
      */
@@ -287,7 +317,8 @@
      * @throws IllegalStateException If called from an AccessibilityService.
      * @see #getContentChangeTypes(AccessibilityEvent)
      */
-    public static void setContentChangeTypes(AccessibilityEvent event, int changeTypes) {
+    public static void setContentChangeTypes(AccessibilityEvent event,
+            @ContentChangeType int changeTypes) {
         if (Build.VERSION.SDK_INT >= 19) {
             event.setContentChangeTypes(changeTypes);
         }
@@ -301,11 +332,13 @@
      * @return The bit mask of change types. One or more of:
      *         <ul>
      *         <li>{@link AccessibilityEvent#CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION}
+     *         <li>{@link AccessibilityEvent#CONTENT_CHANGE_TYPE_STATE_DESCRIPTION}
      *         <li>{@link AccessibilityEvent#CONTENT_CHANGE_TYPE_SUBTREE}
      *         <li>{@link AccessibilityEvent#CONTENT_CHANGE_TYPE_TEXT}
      *         <li>{@link AccessibilityEvent#CONTENT_CHANGE_TYPE_UNDEFINED}
      *         </ul>
      */
+    @ContentChangeType
     public static int getContentChangeTypes(AccessibilityEvent event) {
         if (Build.VERSION.SDK_INT >= 19) {
             return event.getContentChangeTypes();
diff --git a/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java b/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java
index c5983d6..9c61c9f 100644
--- a/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java
+++ b/core/core/src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java
@@ -42,6 +42,7 @@
 import androidx.annotation.RestrictTo;
 import androidx.core.R;
 import androidx.core.accessibilityservice.AccessibilityServiceInfoCompat;
+import androidx.core.os.BuildCompat;
 import androidx.core.view.ViewCompat;
 import androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments;
 import androidx.core.view.accessibility.AccessibilityViewCommand.MoveAtGranularityArguments;
@@ -1185,6 +1186,9 @@
     private static final String SPANS_ACTION_ID_KEY =
             "androidx.view.accessibility.AccessibilityNodeInfoCompat.SPANS_ACTION_ID_KEY";
 
+    private static final String STATE_DESCRIPTION_KEY =
+            "androidx.view.accessibility.AccessibilityNodeInfoCompat.STATE_DESCRIPTION_KEY";
+
     // These don't line up with the internal framework constants, since they are independent
     // and we might as well get all 32 bits of utility here.
     private static final int BOOLEAN_PROPERTY_SCREEN_READER_FOCUSABLE = 0x00000001;
@@ -2740,6 +2744,21 @@
     }
 
     /**
+     * Gets the state description of this node.
+     *
+     * @return the state description or null if android version smaller
+     * than 19.
+     */
+    public @Nullable CharSequence getStateDescription() {
+        if (BuildCompat.isAtLeastR()) {
+            return mInfo.getStateDescription();
+        } else if (Build.VERSION.SDK_INT >= 19) {
+            return mInfo.getExtras().getCharSequence(STATE_DESCRIPTION_KEY);
+        }
+        return null;
+    }
+
+    /**
      * Sets the content description of this node.
      * <p>
      * <strong>Note:</strong> Cannot be called from an
@@ -2755,6 +2774,25 @@
     }
 
     /**
+     * Sets the state description of this node.
+     * <p>
+     *   <strong>Note:</strong> Cannot be called from an
+     *   {@link android.accessibilityservice.AccessibilityService}.
+     *   This class is made immutable before being delivered to an AccessibilityService.
+     * </p>
+     *
+     * @param stateDescription the state description of this node.
+     * @throws IllegalStateException If called from an AccessibilityService.
+     */
+    public void setStateDescription(@Nullable CharSequence stateDescription) {
+        if (BuildCompat.isAtLeastR()) {
+            mInfo.setStateDescription(stateDescription);
+        } else if (Build.VERSION.SDK_INT >= 19) {
+            mInfo.getExtras().putCharSequence(STATE_DESCRIPTION_KEY, stateDescription);
+        }
+    }
+
+    /**
      * Return an instance back to be reused.
      * <p>
      * <strong>Note:</strong> You must not touch the object after calling this function.
diff --git a/core/core/src/main/res/values/ids.xml b/core/core/src/main/res/values/ids.xml
index 444a976..5147433 100644
--- a/core/core/src/main/res/values/ids.xml
+++ b/core/core/src/main/res/values/ids.xml
@@ -29,6 +29,7 @@
     <item name="tag_accessibility_pane_title" type="id"/>
     <item name="tag_accessibility_clickable_spans" type="id"/>
     <item name="tag_accessibility_actions" type="id"/>
+    <item name="tag_state_description" type="id"/>
     <item name="accessibility_custom_action_0" type="id"/>
     <item name="accessibility_custom_action_1" type="id"/>
     <item name="accessibility_custom_action_2" type="id"/>
diff --git a/core/core/src/test/java/androidx/core/view/DisplayCompatTest.java b/core/core/src/test/java/androidx/core/view/DisplayCompatTest.java
index dc9d969..50e19db 100644
--- a/core/core/src/test/java/androidx/core/view/DisplayCompatTest.java
+++ b/core/core/src/test/java/androidx/core/view/DisplayCompatTest.java
@@ -80,6 +80,7 @@
     }
 
     @Before
+    @SuppressWarnings("deprecation") /* defaultDisplay */
     public void setup() {
         mUiModeManagerShadow = shadowOf((UiModeManager) mContext.getSystemService(UI_MODE_SERVICE));
         mUiModeManagerShadow.currentModeType = UI_MODE_TYPE_NORMAL;
diff --git a/development/studio/idea.properties b/development/studio/idea.properties
index e1432b1..da113e9 100644
--- a/development/studio/idea.properties
+++ b/development/studio/idea.properties
@@ -5,12 +5,12 @@
 #---------------------------------------------------------------------
 # Uncomment this option if you want to customize path to IDE config folder. Make sure you're using forward slashes.
 #---------------------------------------------------------------------
-idea.config.path=${user.home}/.AndroidStudioAndroidX/config
+idea.config.path=${user.home}/.AndroidStudioAndroidXPlatform/config
 
 #---------------------------------------------------------------------
 # Uncomment this option if you want to customize path to IDE system folder. Make sure you're using forward slashes.
 #---------------------------------------------------------------------
-idea.system.path=${user.home}/.AndroidStudioAndroidX/system
+idea.system.path=${user.home}/.AndroidStudioAndroidXPlatform/system
 
 #---------------------------------------------------------------------
 # Uncomment this option if you want to customize path to user installed plugins folder. Make sure you're using forward slashes.
diff --git a/drawerlayout/drawerlayout/api/restricted_1.1.0-alpha03.txt b/drawerlayout/drawerlayout/api/restricted_1.1.0-alpha03.txt
index e6d4605..a771903 100644
--- a/drawerlayout/drawerlayout/api/restricted_1.1.0-alpha03.txt
+++ b/drawerlayout/drawerlayout/api/restricted_1.1.0-alpha03.txt
@@ -29,7 +29,7 @@
     method public void openDrawer(int);
     method public void openDrawer(int, boolean);
     method public void removeDrawerListener(androidx.drawerlayout.widget.DrawerLayout.DrawerListener);
-    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setChildInsets(Object!, boolean);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setChildInsets(androidx.core.view.WindowInsetsCompat!, boolean);
     method public void setDrawerElevation(float);
     method @Deprecated public void setDrawerListener(androidx.drawerlayout.widget.DrawerLayout.DrawerListener!);
     method public void setDrawerLockMode(int);
diff --git a/drawerlayout/drawerlayout/api/restricted_current.txt b/drawerlayout/drawerlayout/api/restricted_current.txt
index e6d4605..a771903 100644
--- a/drawerlayout/drawerlayout/api/restricted_current.txt
+++ b/drawerlayout/drawerlayout/api/restricted_current.txt
@@ -29,7 +29,7 @@
     method public void openDrawer(int);
     method public void openDrawer(int, boolean);
     method public void removeDrawerListener(androidx.drawerlayout.widget.DrawerLayout.DrawerListener);
-    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setChildInsets(Object!, boolean);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setChildInsets(androidx.core.view.WindowInsetsCompat!, boolean);
     method public void setDrawerElevation(float);
     method @Deprecated public void setDrawerListener(androidx.drawerlayout.widget.DrawerLayout.DrawerListener!);
     method public void setDrawerLockMode(int);
diff --git a/drawerlayout/drawerlayout/src/main/java/androidx/drawerlayout/widget/DrawerLayout.java b/drawerlayout/drawerlayout/src/main/java/androidx/drawerlayout/widget/DrawerLayout.java
index 20330d6..1b683ac 100644
--- a/drawerlayout/drawerlayout/src/main/java/androidx/drawerlayout/widget/DrawerLayout.java
+++ b/drawerlayout/drawerlayout/src/main/java/androidx/drawerlayout/widget/DrawerLayout.java
@@ -162,7 +162,6 @@
     @Retention(RetentionPolicy.SOURCE)
     private @interface EdgeGravity {}
 
-
     private static final int MIN_DRAWER_MARGIN = 64; // dp
 
     private static final int DEFAULT_SCRIM_COLOR = 0x99000000;
@@ -239,7 +238,7 @@
     private CharSequence mTitleLeft;
     private CharSequence mTitleRight;
 
-    private Object mLastInsets;
+    private WindowInsetsCompat mLastInsets;
     private boolean mDrawStatusBarBackground;
 
     /** Shadow drawables for different gravity */
@@ -332,6 +331,7 @@
         this(context, attrs, R.attr.drawerLayoutStyle);
     }
 
+    @SuppressWarnings("deprecation") /* SYSTEM_UI_FLAG_LAYOUT_* */
     public DrawerLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
         super(context, attrs, defStyleAttr);
         setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);
@@ -362,14 +362,17 @@
         setMotionEventSplittingEnabled(false);
         if (ViewCompat.getFitsSystemWindows(this)) {
             if (Build.VERSION.SDK_INT >= 21) {
-                setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() {
-                    @Override
-                    public WindowInsets onApplyWindowInsets(View view, WindowInsets insets) {
-                        final DrawerLayout drawerLayout = (DrawerLayout) view;
-                        drawerLayout.setChildInsets(insets, insets.getSystemWindowInsetTop() > 0);
-                        return insets.consumeSystemWindowInsets();
-                    }
-                });
+                ViewCompat.setOnApplyWindowInsetsListener(this,
+                        new androidx.core.view.OnApplyWindowInsetsListener() {
+                            @Override
+                            public WindowInsetsCompat onApplyWindowInsets(View view,
+                                    WindowInsetsCompat insets) {
+                                final DrawerLayout drawerLayout = (DrawerLayout) view;
+                                drawerLayout.setChildInsets(insets,
+                                        insets.getSystemWindowInsets().top > 0);
+                                return insets.consumeSystemWindowInsets();
+                            }
+                        });
                 setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                         | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
                 final TypedArray a = context.obtainStyledAttributes(THEME_ATTRS);
@@ -433,7 +436,7 @@
      * with fitsSystemWindows="true"
      */
     @RestrictTo(LIBRARY_GROUP_PREFIX)
-    public void setChildInsets(Object insets, boolean draw) {
+    public void setChildInsets(WindowInsetsCompat insets, boolean draw) {
         mLastInsets = insets;
         mDrawStatusBarBackground = draw;
         setWillNotDraw(!draw && getBackground() == null);
@@ -1115,7 +1118,7 @@
                 final int cgrav = GravityCompat.getAbsoluteGravity(lp.gravity, layoutDirection);
                 if (ViewCompat.getFitsSystemWindows(child)) {
                     if (Build.VERSION.SDK_INT >= 21) {
-                        WindowInsets wi = (WindowInsets) mLastInsets;
+                        WindowInsetsCompat wi = mLastInsets;
                         if (cgrav == Gravity.LEFT) {
                             wi = wi.replaceSystemWindowInsets(wi.getSystemWindowInsetLeft(),
                                     wi.getSystemWindowInsetTop(), 0,
@@ -1125,11 +1128,11 @@
                                     wi.getSystemWindowInsetRight(),
                                     wi.getSystemWindowInsetBottom());
                         }
-                        child.dispatchApplyWindowInsets(wi);
+                        ViewCompat.dispatchApplyWindowInsets(child, wi);
                     }
                 } else {
                     if (Build.VERSION.SDK_INT >= 21) {
-                        WindowInsets wi = (WindowInsets) mLastInsets;
+                        WindowInsetsCompat wi = mLastInsets;
                         if (cgrav == Gravity.LEFT) {
                             wi = wi.replaceSystemWindowInsets(wi.getSystemWindowInsetLeft(),
                                     wi.getSystemWindowInsetTop(), 0,
@@ -1436,8 +1439,7 @@
         if (mDrawStatusBarBackground && mStatusBarBackground != null) {
             final int inset;
             if (Build.VERSION.SDK_INT >= 21) {
-                inset = mLastInsets != null
-                        ? ((WindowInsets) mLastInsets).getSystemWindowInsetTop() : 0;
+                inset = mLastInsets != null ? mLastInsets.getSystemWindowInsetTop() : 0;
             } else {
                 inset = 0;
             }
diff --git a/enterprise/feedback/src/main/java/androidx/enterprise/feedback/KeyedAppStatesService.java b/enterprise/feedback/src/main/java/androidx/enterprise/feedback/KeyedAppStatesService.java
index 41cc5b1..13a7a8f 100644
--- a/enterprise/feedback/src/main/java/androidx/enterprise/feedback/KeyedAppStatesService.java
+++ b/enterprise/feedback/src/main/java/androidx/enterprise/feedback/KeyedAppStatesService.java
@@ -23,7 +23,6 @@
 import android.annotation.SuppressLint;
 import android.app.Service;
 import android.content.Intent;
-import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
@@ -63,8 +62,10 @@
 
     // This form is used instead of AsyncTask.execute(Runnable) as Robolectric causes tests to wait
     // for execution of these but does not currently wait for execution of
-    // AsyncTask.execute(runnable).
-    private static final class KeyedAppStatesServiceAsyncTask extends AsyncTask<Void, Void, Void> {
+    // android.os.AsyncTask.execute(runnable).
+    @SuppressWarnings("deprecation") /* AsyncTask */
+    private static final class KeyedAppStatesServiceAsyncTask
+            extends android.os.AsyncTask<Void, Void, Void> {
 
         @SuppressLint("StaticFieldLeak")
         // Instances are short-lived so won't block garbage collection.
@@ -90,6 +91,7 @@
         }
     }
 
+    @SuppressWarnings("deprecation") /* AsyncTask */
     private static class IncomingHandler extends Handler {
         private final KeyedAppStatesService mKeyedAppStatesService;
 
diff --git a/fragment/fragment/src/androidTest/java/androidx/fragment/app/FragmentContainerViewTest.kt b/fragment/fragment/src/androidTest/java/androidx/fragment/app/FragmentContainerViewTest.kt
index 866d69d..fe5580b 100644
--- a/fragment/fragment/src/androidTest/java/androidx/fragment/app/FragmentContainerViewTest.kt
+++ b/fragment/fragment/src/androidTest/java/androidx/fragment/app/FragmentContainerViewTest.kt
@@ -116,6 +116,7 @@
             .isInstanceOf(FragmentContainerView::class.java)
     }
 
+    @Suppress("DEPRECATION") /* systemWindowInsets */
     @SdkSuppress(minSdkVersion = 29) // WindowInsets.Builder requires API 29
     @Test
     fun windowInsetsDispatchToChildren() {
diff --git a/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseTestFragment.java b/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseTestFragment.java
index 6e1d5ed..58d81a4 100644
--- a/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseTestFragment.java
+++ b/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseTestFragment.java
@@ -20,10 +20,8 @@
 import static androidx.leanback.app.BrowseFragmentTestActivity.EXTRA_LOAD_DATA_DELAY;
 import static androidx.leanback.app.BrowseFragmentTestActivity.EXTRA_NUM_ROWS;
 import static androidx.leanback.app.BrowseFragmentTestActivity.EXTRA_REPEAT_PER_ROW;
-import static androidx.leanback.app.BrowseFragmentTestActivity
-        .EXTRA_SET_ADAPTER_AFTER_DATA_LOAD;
-import static androidx.leanback.app.BrowseFragmentTestActivity
-        .EXTRA_TEST_ENTRANCE_TRANSITION;
+import static androidx.leanback.app.BrowseFragmentTestActivity.EXTRA_SET_ADAPTER_AFTER_DATA_LOAD;
+import static androidx.leanback.app.BrowseFragmentTestActivity.EXTRA_TEST_ENTRANCE_TRANSITION;
 
 import android.os.Bundle;
 import android.os.Handler;
diff --git a/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseTestSupportFragment.java b/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseTestSupportFragment.java
index ee71687..d242e44 100644
--- a/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseTestSupportFragment.java
+++ b/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseTestSupportFragment.java
@@ -17,10 +17,8 @@
 import static androidx.leanback.app.BrowseSupportFragmentTestActivity.EXTRA_LOAD_DATA_DELAY;
 import static androidx.leanback.app.BrowseSupportFragmentTestActivity.EXTRA_NUM_ROWS;
 import static androidx.leanback.app.BrowseSupportFragmentTestActivity.EXTRA_REPEAT_PER_ROW;
-import static androidx.leanback.app.BrowseSupportFragmentTestActivity
-        .EXTRA_SET_ADAPTER_AFTER_DATA_LOAD;
-import static androidx.leanback.app.BrowseSupportFragmentTestActivity
-        .EXTRA_TEST_ENTRANCE_TRANSITION;
+import static androidx.leanback.app.BrowseSupportFragmentTestActivity.EXTRA_SET_ADAPTER_AFTER_DATA_LOAD;
+import static androidx.leanback.app.BrowseSupportFragmentTestActivity.EXTRA_TEST_ENTRANCE_TRANSITION;
 
 import android.os.Bundle;
 import android.os.Handler;
diff --git a/leanback/leanback/src/main/java/androidx/leanback/widget/GuidedActionsStylist.java b/leanback/leanback/src/main/java/androidx/leanback/widget/GuidedActionsStylist.java
index bb472a9..d13fb77 100644
--- a/leanback/leanback/src/main/java/androidx/leanback/widget/GuidedActionsStylist.java
+++ b/leanback/leanback/src/main/java/androidx/leanback/widget/GuidedActionsStylist.java
@@ -438,6 +438,7 @@
      * <code>LayoutInflater.inflate</code>.
      * @return The view to be added to the caller's view hierarchy.
      */
+    @SuppressWarnings("deprecation") /* defaultDisplay */
     public View onCreateView(LayoutInflater inflater, final ViewGroup container) {
         TypedArray ta = inflater.getContext().getTheme().obtainStyledAttributes(
                 R.styleable.LeanbackGuidedStepTheme);
diff --git a/loader/loader/src/androidTest/java/androidx/loader/content/ModernAsyncTaskTest.java b/loader/loader/src/androidTest/java/androidx/loader/content/ModernAsyncTaskTest.java
index a3aefeb..eadcb19 100644
--- a/loader/loader/src/androidTest/java/androidx/loader/content/ModernAsyncTaskTest.java
+++ b/loader/loader/src/androidTest/java/androidx/loader/content/ModernAsyncTaskTest.java
@@ -18,8 +18,6 @@
 
 import static org.junit.Assert.fail;
 
-import android.os.AsyncTask;
-
 import androidx.annotation.NonNull;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
@@ -33,6 +31,7 @@
 import java.util.concurrent.TimeUnit;
 
 @RunWith(AndroidJUnit4.class)
+@SuppressWarnings("deprecation") /* AsyncTask */
 public class ModernAsyncTaskTest {
 
     private ModernAsyncTask mModernAsyncTask;
@@ -53,7 +52,7 @@
                 // because sInternalHandler was initialized as static field.
                 // https://github.com/aosp-mirror/platform_frameworks_base/blob/ics-mr1/core/java/android/os/AsyncTask.java#L190
                 //noinspection unused
-                Executor unused = AsyncTask.THREAD_POOL_EXECUTOR;
+                Executor unused = android.os.AsyncTask.THREAD_POOL_EXECUTOR;
                 mModernAsyncTask = new ModernAsyncTask() {
                     @Override
                     protected Object doInBackground() {
@@ -73,7 +72,7 @@
             }
         });
 
-        mModernAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+        mModernAsyncTask.executeOnExecutor(android.os.AsyncTask.THREAD_POOL_EXECUTOR);
         if (!readyToCancel.await(5, TimeUnit.SECONDS)) {
             fail("Test failure: doInBackground did not run in time.");
         }
diff --git a/loader/loader/src/main/java/androidx/loader/content/AsyncTaskLoader.java b/loader/loader/src/main/java/androidx/loader/content/AsyncTaskLoader.java
index e34701e..ac352ff 100644
--- a/loader/loader/src/main/java/androidx/loader/content/AsyncTaskLoader.java
+++ b/loader/loader/src/main/java/androidx/loader/content/AsyncTaskLoader.java
@@ -17,7 +17,6 @@
 package androidx.loader.content;
 
 import android.content.Context;
-import android.os.AsyncTask;
 import android.os.Handler;
 import android.os.SystemClock;
 import android.text.format.DateUtils;
@@ -40,6 +39,7 @@
  * to switch to the framework's implementation.  See the framework SDK
  * documentation for a class overview.
  */
+@SuppressWarnings("deprecation") /* AsyncTask */
 public abstract class AsyncTaskLoader<D> extends Loader<D> {
     private static final String TAG = "AsyncTaskLoader";
     private static final boolean DEBUG = false;
@@ -314,19 +314,20 @@
     }
 
     /**
-     * Returns the {@link Executor} to use for this {@link Loader}'s {@link AsyncTask}s.
-     * By default {@link AsyncTask#THREAD_POOL_EXECUTOR} will be used.
+     * Returns the {@link Executor} to use for this {@link Loader}'s {@link android.os.AsyncTask}s.
+     * By default {@link android.os.AsyncTask#THREAD_POOL_EXECUTOR} will be used.
      *
      * Override this method to return a custom executor. Note that this method will only be called
-     * once before this {@link Loader}'s first {@link AsyncTask} is run. It is up to the
+     * once before this {@link Loader}'s first {@link android.os.AsyncTask} is run. It is up to the
      * {@link Loader} to shut down the {@link Executor} at the appropriate place
      * (e.g. in {@link #onAbandon()}) if necessary.
      *
-     * @return the {@link Executor} to use for this {@link Loader}'s {@link AsyncTask}s.
+     * @return the {@link Executor} to use for this {@link Loader}'s {@link android.os.AsyncTask}s.
      */
     @NonNull
+    @SuppressWarnings("deprecation") /* AsyncTask */
     protected Executor getExecutor() {
-        return AsyncTask.THREAD_POOL_EXECUTOR;
+        return android.os.AsyncTask.THREAD_POOL_EXECUTOR;
     }
 
     /**
diff --git a/media2/integration-tests/testapp/src/main/java/androidx/media2/integration/testapp/VideoSelectorActivity.java b/media2/integration-tests/testapp/src/main/java/androidx/media2/integration/testapp/VideoSelectorActivity.java
index 36a69f1..0fe7e7e 100644
--- a/media2/integration-tests/testapp/src/main/java/androidx/media2/integration/testapp/VideoSelectorActivity.java
+++ b/media2/integration-tests/testapp/src/main/java/androidx/media2/integration/testapp/VideoSelectorActivity.java
@@ -22,7 +22,6 @@
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.net.Uri;
-import android.os.AsyncTask;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.StrictMode;
@@ -303,7 +302,7 @@
         return retVal;
     }
 
-    private final class VideoItemListTask extends AsyncTask<Void, Void, VideoItemList> {
+    private final class VideoItemListTask extends android.os.AsyncTask<Void, Void, VideoItemList> {
         private String mPath;
 
         VideoItemListTask(String path) {
diff --git a/media2/integration-tests/testapp/src/main/java/androidx/media2/integration/testapp/VideoSessionService.java b/media2/integration-tests/testapp/src/main/java/androidx/media2/integration/testapp/VideoSessionService.java
index 0d7a5ec..29102ac 100644
--- a/media2/integration-tests/testapp/src/main/java/androidx/media2/integration/testapp/VideoSessionService.java
+++ b/media2/integration-tests/testapp/src/main/java/androidx/media2/integration/testapp/VideoSessionService.java
@@ -23,7 +23,6 @@
 import android.graphics.BitmapFactory;
 import android.media.MediaMetadataRetriever;
 import android.net.Uri;
-import android.os.AsyncTask;
 import android.widget.Toast;
 
 import androidx.annotation.NonNull;
@@ -149,7 +148,8 @@
         }
     }
 
-    private static class MetadataExtractTask extends AsyncTask<Void, Void, MediaMetadata> {
+    private static class MetadataExtractTask
+            extends android.os.AsyncTask<Void, Void, MediaMetadata> {
         private MediaItem mItem;
         private WeakReference<Context> mRefContext;
 
diff --git a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteButton.java b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteButton.java
index 99c39dc..195b7bc 100644
--- a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteButton.java
+++ b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteButton.java
@@ -28,7 +28,6 @@
 import android.graphics.drawable.AnimationDrawable;
 import android.graphics.drawable.Drawable;
 import android.net.ConnectivityManager;
-import android.os.AsyncTask;
 import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.util.Log;
@@ -198,7 +197,7 @@
                 } else {
                     mRemoteIndicatorLoader = new RemoteIndicatorLoader(remoteIndicatorStaticResId,
                             getContext());
-                    mRemoteIndicatorLoader.executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);
+                    mRemoteIndicatorLoader.executeOnExecutor(android.os.AsyncTask.SERIAL_EXECUTOR);
                 }
             } else {
                 loadRemoteIndicatorIfNeeded();
@@ -565,7 +564,7 @@
             mRemoteIndicatorLoader = new RemoteIndicatorLoader(mRemoteIndicatorResIdToLoad,
                     getContext());
             mRemoteIndicatorResIdToLoad = 0;
-            mRemoteIndicatorLoader.executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);
+            mRemoteIndicatorLoader.executeOnExecutor(android.os.AsyncTask.SERIAL_EXECUTOR);
         }
     }
 
@@ -725,7 +724,7 @@
         }
     }
 
-    private final class RemoteIndicatorLoader extends AsyncTask<Void, Void, Drawable> {
+    private final class RemoteIndicatorLoader extends android.os.AsyncTask<Void, Void, Drawable> {
         private final int mResId;
         private final Context mContext;
 
diff --git a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteControllerDialog.java b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteControllerDialog.java
index 547546f..f9c1293b 100644
--- a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteControllerDialog.java
+++ b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteControllerDialog.java
@@ -30,7 +30,6 @@
 import android.graphics.Rect;
 import android.graphics.drawable.BitmapDrawable;
 import android.net.Uri;
-import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.SystemClock;
 import android.support.v4.media.MediaDescriptionCompat;
@@ -1336,7 +1335,7 @@
         }
     }
 
-    private class FetchArtTask extends AsyncTask<Void, Void, Bitmap> {
+    private class FetchArtTask extends android.os.AsyncTask<Void, Void, Bitmap> {
         // Show animation only when fetching takes a long time.
         private static final long SHOW_ANIM_TIME_THRESHOLD_MILLIS = 120L;
 
diff --git a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteDynamicControllerDialog.java b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteDynamicControllerDialog.java
index 59f4e05..d822472 100644
--- a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteDynamicControllerDialog.java
+++ b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteDynamicControllerDialog.java
@@ -26,7 +26,6 @@
 import android.graphics.Color;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
-import android.os.AsyncTask;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.Handler;
@@ -1424,7 +1423,7 @@
         }
     }
 
-    private class FetchArtTask extends AsyncTask<Void, Void, Bitmap> {
+    private class FetchArtTask extends android.os.AsyncTask<Void, Void, Bitmap> {
         private final Bitmap mIconBitmap;
         private final Uri mIconUri;
         private int mBackgroundColor;
diff --git a/paging/rxjava2/api/api_lint.ignore b/paging/rxjava2/api/api_lint.ignore
index b98aa1d..20c6bba 100644
--- a/paging/rxjava2/api/api_lint.ignore
+++ b/paging/rxjava2/api/api_lint.ignore
@@ -3,7 +3,5 @@
     androidx.paging.RxPagedListBuilder does not declare a `build()` method, but builder classes are expected to
 
 
-TopLevelBuilder: androidx.paging.RxPagedDataFlowBuilder:
-    Builder should be defined as inner class: androidx.paging.RxPagedDataFlowBuilder
 TopLevelBuilder: androidx.paging.RxPagedListBuilder:
     Builder should be defined as inner class: androidx.paging.RxPagedListBuilder
diff --git a/palette/palette/api/1.1.0-alpha01.txt b/palette/palette/api/1.1.0-alpha01.txt
index c9e21b3..b2c87a6 100644
--- a/palette/palette/api/1.1.0-alpha01.txt
+++ b/palette/palette/api/1.1.0-alpha01.txt
@@ -37,7 +37,7 @@
     method public androidx.palette.graphics.Palette.Builder clearRegion();
     method public androidx.palette.graphics.Palette.Builder clearTargets();
     method public androidx.palette.graphics.Palette generate();
-    method public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
+    method @Deprecated public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
     method public androidx.palette.graphics.Palette.Builder maximumColorCount(int);
     method public androidx.palette.graphics.Palette.Builder resizeBitmapArea(int);
     method @Deprecated public androidx.palette.graphics.Palette.Builder resizeBitmapSize(int);
diff --git a/palette/palette/api/current.txt b/palette/palette/api/current.txt
index c9e21b3..b2c87a6 100644
--- a/palette/palette/api/current.txt
+++ b/palette/palette/api/current.txt
@@ -37,7 +37,7 @@
     method public androidx.palette.graphics.Palette.Builder clearRegion();
     method public androidx.palette.graphics.Palette.Builder clearTargets();
     method public androidx.palette.graphics.Palette generate();
-    method public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
+    method @Deprecated public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
     method public androidx.palette.graphics.Palette.Builder maximumColorCount(int);
     method public androidx.palette.graphics.Palette.Builder resizeBitmapArea(int);
     method @Deprecated public androidx.palette.graphics.Palette.Builder resizeBitmapSize(int);
diff --git a/palette/palette/api/public_plus_experimental_1.1.0-alpha01.txt b/palette/palette/api/public_plus_experimental_1.1.0-alpha01.txt
index c9e21b3..b2c87a6 100644
--- a/palette/palette/api/public_plus_experimental_1.1.0-alpha01.txt
+++ b/palette/palette/api/public_plus_experimental_1.1.0-alpha01.txt
@@ -37,7 +37,7 @@
     method public androidx.palette.graphics.Palette.Builder clearRegion();
     method public androidx.palette.graphics.Palette.Builder clearTargets();
     method public androidx.palette.graphics.Palette generate();
-    method public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
+    method @Deprecated public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
     method public androidx.palette.graphics.Palette.Builder maximumColorCount(int);
     method public androidx.palette.graphics.Palette.Builder resizeBitmapArea(int);
     method @Deprecated public androidx.palette.graphics.Palette.Builder resizeBitmapSize(int);
diff --git a/palette/palette/api/public_plus_experimental_current.txt b/palette/palette/api/public_plus_experimental_current.txt
index c9e21b3..b2c87a6 100644
--- a/palette/palette/api/public_plus_experimental_current.txt
+++ b/palette/palette/api/public_plus_experimental_current.txt
@@ -37,7 +37,7 @@
     method public androidx.palette.graphics.Palette.Builder clearRegion();
     method public androidx.palette.graphics.Palette.Builder clearTargets();
     method public androidx.palette.graphics.Palette generate();
-    method public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
+    method @Deprecated public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
     method public androidx.palette.graphics.Palette.Builder maximumColorCount(int);
     method public androidx.palette.graphics.Palette.Builder resizeBitmapArea(int);
     method @Deprecated public androidx.palette.graphics.Palette.Builder resizeBitmapSize(int);
diff --git a/palette/palette/api/restricted_1.1.0-alpha01.txt b/palette/palette/api/restricted_1.1.0-alpha01.txt
index c9e21b3..b2c87a6 100644
--- a/palette/palette/api/restricted_1.1.0-alpha01.txt
+++ b/palette/palette/api/restricted_1.1.0-alpha01.txt
@@ -37,7 +37,7 @@
     method public androidx.palette.graphics.Palette.Builder clearRegion();
     method public androidx.palette.graphics.Palette.Builder clearTargets();
     method public androidx.palette.graphics.Palette generate();
-    method public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
+    method @Deprecated public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
     method public androidx.palette.graphics.Palette.Builder maximumColorCount(int);
     method public androidx.palette.graphics.Palette.Builder resizeBitmapArea(int);
     method @Deprecated public androidx.palette.graphics.Palette.Builder resizeBitmapSize(int);
diff --git a/palette/palette/api/restricted_current.txt b/palette/palette/api/restricted_current.txt
index c9e21b3..b2c87a6 100644
--- a/palette/palette/api/restricted_current.txt
+++ b/palette/palette/api/restricted_current.txt
@@ -37,7 +37,7 @@
     method public androidx.palette.graphics.Palette.Builder clearRegion();
     method public androidx.palette.graphics.Palette.Builder clearTargets();
     method public androidx.palette.graphics.Palette generate();
-    method public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
+    method @Deprecated public android.os.AsyncTask<android.graphics.Bitmap!,java.lang.Void!,androidx.palette.graphics.Palette!> generate(androidx.palette.graphics.Palette.PaletteAsyncListener);
     method public androidx.palette.graphics.Palette.Builder maximumColorCount(int);
     method public androidx.palette.graphics.Palette.Builder resizeBitmapArea(int);
     method @Deprecated public androidx.palette.graphics.Palette.Builder resizeBitmapSize(int);
diff --git a/palette/palette/src/main/java/androidx/palette/graphics/ColorCutQuantizer.java b/palette/palette/src/main/java/androidx/palette/graphics/ColorCutQuantizer.java
index b054edf..d9424e1 100644
--- a/palette/palette/src/main/java/androidx/palette/graphics/ColorCutQuantizer.java
+++ b/palette/palette/src/main/java/androidx/palette/graphics/ColorCutQuantizer.java
@@ -17,7 +17,6 @@
 package androidx.palette.graphics;
 
 import android.graphics.Color;
-import android.util.TimingLogger;
 
 import androidx.annotation.Nullable;
 import androidx.core.graphics.ColorUtils;
@@ -43,10 +42,6 @@
  * colors.
  */
 final class ColorCutQuantizer {
-
-    private static final String LOG_TAG = "ColorCutQuantizer";
-    private static final boolean LOG_TIMINGS = false;
-
     static final int COMPONENT_RED = -3;
     static final int COMPONENT_GREEN = -2;
     static final int COMPONENT_BLUE = -1;
@@ -57,7 +52,6 @@
     final int[] mColors;
     final int[] mHistogram;
     final List<Palette.Swatch> mQuantizedColors;
-    @Nullable final TimingLogger mTimingLogger;
     @Nullable final Palette.Filter[] mFilters;
 
     private final float[] mTempHsl = new float[3];
@@ -69,9 +63,7 @@
      * @param maxColors The maximum number of colors that should be in the result palette.
      * @param filters Set of filters to use in the quantization stage
      */
-    @SuppressWarnings("NullAway") // mTimingLogger initialization and access guarded by LOG_TIMINGS.
     ColorCutQuantizer(int[] pixels, int maxColors, @Nullable Palette.Filter[] filters) {
-        mTimingLogger = LOG_TIMINGS ? new TimingLogger(LOG_TAG, "Creation") : null;
         mFilters = filters;
 
         final int[] hist = mHistogram = new int[1 << (QUANTIZE_WORD_WIDTH * 3)];
@@ -83,10 +75,6 @@
             hist[quantizedColor]++;
         }
 
-        if (LOG_TIMINGS) {
-            mTimingLogger.addSplit("Histogram created");
-        }
-
         // Now let's count the number of distinct colors
         int distinctColorCount = 0;
         for (int color = 0; color < hist.length; color++) {
@@ -100,10 +88,6 @@
             }
         }
 
-        if (LOG_TIMINGS) {
-            mTimingLogger.addSplit("Filtered colors and distinct colors counted");
-        }
-
         // Now lets go through create an array consisting of only distinct colors
         final int[] colors = mColors = new int[distinctColorCount];
         int distinctColorIndex = 0;
@@ -113,29 +97,15 @@
             }
         }
 
-        if (LOG_TIMINGS) {
-            mTimingLogger.addSplit("Distinct colors copied into array");
-        }
-
         if (distinctColorCount <= maxColors) {
             // The image has fewer colors than the maximum requested, so just return the colors
             mQuantizedColors = new ArrayList<>();
             for (int color : colors) {
                 mQuantizedColors.add(new Palette.Swatch(approximateToRgb888(color), hist[color]));
             }
-
-            if (LOG_TIMINGS) {
-                mTimingLogger.addSplit("Too few colors present. Copied to Swatches");
-                mTimingLogger.dumpToLog();
-            }
         } else {
             // We need use quantization to reduce the number of colors
             mQuantizedColors = quantizePixels(maxColors);
-
-            if (LOG_TIMINGS) {
-                mTimingLogger.addSplit("Quantized colors computed");
-                mTimingLogger.dumpToLog();
-            }
         }
     }
 
@@ -171,7 +141,6 @@
      * @param queue {@link java.util.PriorityQueue} to poll for boxes
      * @param maxSize Maximum amount of boxes to split
      */
-    @SuppressWarnings("NullAway") // mTimingLogger initialization and access guarded by LOG_TIMINGS.
     private void splitBoxes(final PriorityQueue<Vbox> queue, final int maxSize) {
         while (queue.size() < maxSize) {
             final Vbox vbox = queue.poll();
@@ -179,16 +148,9 @@
             if (vbox != null && vbox.canSplit()) {
                 // First split the box, and offer the result
                 queue.offer(vbox.splitBox());
-
-                if (LOG_TIMINGS) {
-                    mTimingLogger.addSplit("Box split");
-                }
                 // Then offer the box back
                 queue.offer(vbox);
             } else {
-                if (LOG_TIMINGS) {
-                    mTimingLogger.addSplit("All boxes split");
-                }
                 // If we get here then there are no more boxes to split, so return
                 return;
             }
diff --git a/palette/palette/src/main/java/androidx/palette/graphics/Palette.java b/palette/palette/src/main/java/androidx/palette/graphics/Palette.java
index 5ce2665..0fe8091 100644
--- a/palette/palette/src/main/java/androidx/palette/graphics/Palette.java
+++ b/palette/palette/src/main/java/androidx/palette/graphics/Palette.java
@@ -19,10 +19,8 @@
 import android.graphics.Bitmap;
 import android.graphics.Color;
 import android.graphics.Rect;
-import android.os.AsyncTask;
 import android.util.Log;
 import android.util.SparseBooleanArray;
-import android.util.TimingLogger;
 
 import androidx.annotation.ColorInt;
 import androidx.annotation.NonNull;
@@ -30,6 +28,7 @@
 import androidx.annotation.Px;
 import androidx.collection.SimpleArrayMap;
 import androidx.core.graphics.ColorUtils;
+import androidx.core.util.Preconditions;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -135,7 +134,7 @@
      */
     @NonNull
     @Deprecated
-    public static AsyncTask<Bitmap, Void, Palette> generateAsync(
+    public static android.os.AsyncTask<Bitmap, Void, Palette> generateAsync(
             @NonNull Bitmap bitmap, @NonNull PaletteAsyncListener listener) {
         return from(bitmap).generate(listener);
     }
@@ -145,7 +144,7 @@
      */
     @NonNull
     @Deprecated
-    public static AsyncTask<Bitmap, Void, Palette> generateAsync(
+    public static android.os.AsyncTask<Bitmap, Void, Palette> generateAsync(
             @NonNull Bitmap bitmap, int numColors, @NonNull PaletteAsyncListener listener) {
         return from(bitmap).maximumColorCount(numColors).generate(listener);
     }
@@ -777,10 +776,6 @@
          */
         @NonNull
         public Palette generate() {
-            final TimingLogger logger = LOG_TIMINGS
-                    ? new TimingLogger(LOG_TAG, "Generation")
-                    : null;
-
             List<Swatch> swatches;
 
             if (mBitmap != null) {
@@ -789,10 +784,6 @@
                 // First we'll scale down the bitmap if needed
                 final Bitmap bitmap = scaleBitmapDown(mBitmap);
 
-                if (logger != null) {
-                    logger.addSplit("Processed Bitmap");
-                }
-
                 final Rect region = mRegion;
                 if (bitmap != mBitmap && region != null) {
                     // If we have a scaled bitmap and a selected region, we need to scale down the
@@ -818,10 +809,6 @@
                 }
 
                 swatches = quantizer.getQuantizedColors();
-
-                if (logger != null) {
-                    logger.addSplit("Color quantization completed");
-                }
             } else if (mSwatches != null) {
                 // Else we're using the provided swatches
                 swatches = mSwatches;
@@ -835,11 +822,6 @@
             // And make it generate itself
             p.generate();
 
-            if (logger != null) {
-                logger.addSplit("Created Palette");
-                logger.dumpToLog();
-            }
-
             return p;
         }
 
@@ -847,15 +829,18 @@
          * Generate the {@link Palette} asynchronously. The provided listener's
          * {@link PaletteAsyncListener#onGenerated} method will be called with the palette when
          * generated.
+         *
+         * @deprecated Use the standard <code>java.util.concurrent</code> or
+         * <a href="https://developer.android.com/topic/libraries/architecture/coroutines">
+         * Kotlin concurrency utilities</a> to call {@link #generate()} instead.
          */
         @NonNull
-        public AsyncTask<Bitmap, Void, Palette> generate(
+        @Deprecated
+        public android.os.AsyncTask<Bitmap, Void, Palette> generate(
                 @NonNull final PaletteAsyncListener listener) {
-            if (listener == null) {
-                throw new IllegalArgumentException("listener can not be null");
-            }
+            Preconditions.checkNotNull(listener);
 
-            return new AsyncTask<Bitmap, Void, Palette>() {
+            return new android.os.AsyncTask<Bitmap, Void, Palette>() {
                 @Override
                 @Nullable
                 protected Palette doInBackground(Bitmap... params) {
@@ -871,7 +856,7 @@
                 protected void onPostExecute(@Nullable Palette colorExtractor) {
                     listener.onGenerated(colorExtractor);
                 }
-            }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, mBitmap);
+            }.executeOnExecutor(android.os.AsyncTask.THREAD_POOL_EXECUTOR, mBitmap);
         }
 
         private int[] getPixelsFromBitmap(Bitmap bitmap) {
diff --git a/preference/preference/api/api_lint.ignore b/preference/preference/api/api_lint.ignore
index 72ecda6..de479d5 100644
--- a/preference/preference/api/api_lint.ignore
+++ b/preference/preference/api/api_lint.ignore
@@ -395,8 +395,6 @@
     Missing nullability on parameter `attrs` in method `PreferenceCategory`
 MissingNullability: androidx.preference.PreferenceCategory#onBindViewHolder(androidx.preference.PreferenceViewHolder) parameter #0:
     Missing nullability on parameter `holder` in method `onBindViewHolder`
-MissingNullability: androidx.preference.PreferenceCategory#onInitializeAccessibilityNodeInfo(androidx.core.view.accessibility.AccessibilityNodeInfoCompat) parameter #0:
-    Missing nullability on parameter `info` in method `onInitializeAccessibilityNodeInfo`
 MissingNullability: androidx.preference.PreferenceDataStore#getBoolean(String, boolean) parameter #0:
     Missing nullability on parameter `key` in method `getBoolean`
 MissingNullability: androidx.preference.PreferenceDataStore#getFloat(String, float) parameter #0:
diff --git a/preference/preference/src/androidTest/java/androidx/preference/tests/SeekBarPreferenceTest.kt b/preference/preference/src/androidTest/java/androidx/preference/tests/SeekBarPreferenceTest.kt
index cf2753b..59b5090 100644
--- a/preference/preference/src/androidTest/java/androidx/preference/tests/SeekBarPreferenceTest.kt
+++ b/preference/preference/src/androidTest/java/androidx/preference/tests/SeekBarPreferenceTest.kt
@@ -259,6 +259,7 @@
                 // We want to swipe all the way to the right edge of the screen to avoid
                 // flakiness due to sometimes not reaching the end of the seekbar
                 val metrics = DisplayMetrics()
+                @Suppress("DEPRECATION")  /* defaultDisplay */
                 activityRule.activity.windowManager.defaultDisplay.getMetrics(metrics)
                 val posX = metrics.widthPixels
                 val posY = location[1]
diff --git a/print/print/src/main/java/androidx/print/PrintHelper.java b/print/print/src/main/java/androidx/print/PrintHelper.java
index f066eb4..8352279 100644
--- a/print/print/src/main/java/androidx/print/PrintHelper.java
+++ b/print/print/src/main/java/androidx/print/PrintHelper.java
@@ -28,7 +28,6 @@
 import android.graphics.RectF;
 import android.graphics.pdf.PdfDocument;
 import android.net.Uri;
-import android.os.AsyncTask;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.CancellationSignal;
@@ -56,6 +55,7 @@
 /**
  * Helper for printing bitmaps.
  */
+@SuppressWarnings("deprecation")
 public final class PrintHelper {
     private static final String LOG_TAG = "PrintHelper";
     // will be <= 300 dpi on A4 (8.3×11.7) paper (worst case of 150 dpi)
@@ -375,6 +375,7 @@
         printManager.print(jobName, printDocumentAdapter, attr);
     }
 
+    @SuppressWarnings("deprecation")
     @RequiresApi(19)
     private class PrintUriAdapter extends PrintDocumentAdapter {
         final String mJobName;
@@ -382,7 +383,7 @@
         final OnPrintFinishCallback mCallback;
         final int mFittingMode;
         PrintAttributes mAttributes;
-        AsyncTask<Uri, Boolean, Bitmap> mLoadBitmap;
+        android.os.AsyncTask<Uri, Boolean, Bitmap> mLoadBitmap;
         Bitmap mBitmap;
 
         PrintUriAdapter(String jobName, Uri imageFile, OnPrintFinishCallback callback,
@@ -421,7 +422,7 @@
                 return;
             }
 
-            mLoadBitmap = new AsyncTask<Uri, Boolean, Bitmap>() {
+            mLoadBitmap = new android.os.AsyncTask<Uri, Boolean, Bitmap>() {
                 @Override
                 protected void onPreExecute() {
                     // First register for cancellation requests.
@@ -632,7 +633,7 @@
                     .setMinMargins(new PrintAttributes.Margins(0, 0, 0, 0)).build();
         }
 
-        new AsyncTask<Void, Void, Throwable>() {
+        new android.os.AsyncTask<Void, Void, Throwable>() {
             @Override
             protected Throwable doInBackground(Void... params) {
                 try {
diff --git a/recyclerview/recyclerview/api/api_lint.ignore b/recyclerview/recyclerview/api/api_lint.ignore
index ea97694..e9260e5 100644
--- a/recyclerview/recyclerview/api/api_lint.ignore
+++ b/recyclerview/recyclerview/api/api_lint.ignore
@@ -719,14 +719,6 @@
     Missing nullability on method `generateLayoutParams` return
 MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#generateLayoutParams(android.view.ViewGroup.LayoutParams) parameter #0:
     Missing nullability on parameter `lp` in method `generateLayoutParams`
-MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#getColumnCountForAccessibility(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State) parameter #0:
-    Missing nullability on parameter `recycler` in method `getColumnCountForAccessibility`
-MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#getColumnCountForAccessibility(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State) parameter #1:
-    Missing nullability on parameter `state` in method `getColumnCountForAccessibility`
-MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#getRowCountForAccessibility(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State) parameter #0:
-    Missing nullability on parameter `recycler` in method `getRowCountForAccessibility`
-MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#getRowCountForAccessibility(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State) parameter #1:
-    Missing nullability on parameter `state` in method `getRowCountForAccessibility`
 MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#onDetachedFromWindow(androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.widget.RecyclerView.Recycler) parameter #0:
     Missing nullability on parameter `view` in method `onDetachedFromWindow`
 MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#onDetachedFromWindow(androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.widget.RecyclerView.Recycler) parameter #1:
@@ -739,14 +731,6 @@
     Missing nullability on parameter `state` in method `onFocusSearchFailed`
 MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#onInitializeAccessibilityEvent(android.view.accessibility.AccessibilityEvent) parameter #0:
     Missing nullability on parameter `event` in method `onInitializeAccessibilityEvent`
-MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#onInitializeAccessibilityNodeInfoForItem(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State, android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat) parameter #0:
-    Missing nullability on parameter `recycler` in method `onInitializeAccessibilityNodeInfoForItem`
-MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#onInitializeAccessibilityNodeInfoForItem(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State, android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat) parameter #1:
-    Missing nullability on parameter `state` in method `onInitializeAccessibilityNodeInfoForItem`
-MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#onInitializeAccessibilityNodeInfoForItem(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State, android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat) parameter #2:
-    Missing nullability on parameter `host` in method `onInitializeAccessibilityNodeInfoForItem`
-MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#onInitializeAccessibilityNodeInfoForItem(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State, android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat) parameter #3:
-    Missing nullability on parameter `info` in method `onInitializeAccessibilityNodeInfoForItem`
 MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#onItemsAdded(androidx.recyclerview.widget.RecyclerView, int, int) parameter #0:
     Missing nullability on parameter `recyclerView` in method `onItemsAdded`
 MissingNullability: androidx.recyclerview.widget.StaggeredGridLayoutManager#onItemsChanged(androidx.recyclerview.widget.RecyclerView) parameter #0:
diff --git a/recyclerview/recyclerview/src/main/java/androidx/recyclerview/widget/MessageThreadUtil.java b/recyclerview/recyclerview/src/main/java/androidx/recyclerview/widget/MessageThreadUtil.java
index 7234d92..b56802e3 100644
--- a/recyclerview/recyclerview/src/main/java/androidx/recyclerview/widget/MessageThreadUtil.java
+++ b/recyclerview/recyclerview/src/main/java/androidx/recyclerview/widget/MessageThreadUtil.java
@@ -16,7 +16,6 @@
 
 package androidx.recyclerview.widget;
 
-import android.os.AsyncTask;
 import android.os.Handler;
 import android.os.Looper;
 import android.util.Log;
@@ -83,11 +82,12 @@
         };
     }
 
+    @SuppressWarnings("deprecation") /* AsyncTask */
     @Override
     public BackgroundCallback<T> getBackgroundProxy(final BackgroundCallback<T> callback) {
         return new BackgroundCallback<T>() {
             final MessageQueue mQueue = new MessageQueue();
-            private final Executor mExecutor = AsyncTask.THREAD_POOL_EXECUTOR;
+            private final Executor mExecutor = android.os.AsyncTask.THREAD_POOL_EXECUTOR;
             AtomicBoolean mBackgroundRunning = new AtomicBoolean(false);
 
             static final int REFRESH = 1;
diff --git a/samples/Support4Demos/src/main/java/com/example/android/supportv4/Support4Demos.java b/samples/Support4Demos/src/main/java/com/example/android/supportv4/Support4Demos.java
index d90ad1e..9d9a3ca 100644
--- a/samples/Support4Demos/src/main/java/com/example/android/supportv4/Support4Demos.java
+++ b/samples/Support4Demos/src/main/java/com/example/android/supportv4/Support4Demos.java
@@ -16,7 +16,6 @@
 
 package com.example.android.supportv4;
 
-import android.app.ListActivity;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
@@ -33,7 +32,8 @@
 import java.util.List;
 import java.util.Map;
 
-public class Support4Demos extends ListActivity {
+@SuppressWarnings("deprecation")
+public class Support4Demos extends android.app.ListActivity {
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
diff --git a/samples/Support4Demos/src/main/java/com/example/android/supportv4/app/LoaderThrottleSupport.java b/samples/Support4Demos/src/main/java/com/example/android/supportv4/app/LoaderThrottleSupport.java
index 4bd2251..bd459a4 100644
--- a/samples/Support4Demos/src/main/java/com/example/android/supportv4/app/LoaderThrottleSupport.java
+++ b/samples/Support4Demos/src/main/java/com/example/android/supportv4/app/LoaderThrottleSupport.java
@@ -30,7 +30,6 @@
 import android.database.sqlite.SQLiteOpenHelper;
 import android.database.sqlite.SQLiteQueryBuilder;
 import android.net.Uri;
-import android.os.AsyncTask;
 import android.os.Bundle;
 import android.provider.BaseColumns;
 import android.text.TextUtils;
@@ -398,7 +397,7 @@
         String mCurFilter;
 
         // Task we have running to populate the database.
-        AsyncTask<Void, Void, Void> mPopulatingTask;
+        android.os.AsyncTask<Void, Void, Void> mPopulatingTask;
 
         @Override
         public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
@@ -429,6 +428,7 @@
             clearItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
         }
 
+        @SuppressWarnings("deprecation") /* AsyncTask */
         @Override public boolean onOptionsItemSelected(MenuItem item) {
             final ContentResolver cr = getActivity().getContentResolver();
 
@@ -437,7 +437,7 @@
                     if (mPopulatingTask != null) {
                         mPopulatingTask.cancel(false);
                     }
-                    mPopulatingTask = new AsyncTask<Void, Void, Void>() {
+                    mPopulatingTask = new android.os.AsyncTask<Void, Void, Void>() {
                         @Override protected Void doInBackground(Void... params) {
                             for (char c='Z'; c>='A'; c--) {
                                 if (isCancelled()) {
@@ -465,13 +465,13 @@
                         mPopulatingTask.cancel(false);
                         mPopulatingTask = null;
                     }
-                    AsyncTask<Void, Void, Void> task = new AsyncTask<Void, Void, Void>() {
-                        @Override protected Void doInBackground(Void... params) {
+                    new android.os.AsyncTask<Void, Void, Void>() {
+                        @Override
+                        protected Void doInBackground(Void... params) {
                             cr.delete(MainTable.CONTENT_URI, null, null);
                             return null;
                         }
-                    };
-                    task.execute((Void[])null);
+                    }.execute((Void[]) null);
                     return true;
 
                 default:
diff --git a/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/AlbumArtCache.java b/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/AlbumArtCache.java
index df74abc..10b85c8 100644
--- a/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/AlbumArtCache.java
+++ b/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/AlbumArtCache.java
@@ -17,7 +17,6 @@
 package com.example.android.supportv4.media;
 
 import android.graphics.Bitmap;
-import android.os.AsyncTask;
 import android.util.Log;
 
 import androidx.collection.LruCache;
@@ -79,6 +78,7 @@
         return result == null ? null : result[ICON_BITMAP_INDEX];
     }
 
+    @SuppressWarnings("deprecation") /* AsyncTask */
     public void fetch(final String artUrl, final FetchListener listener) {
         // WARNING: for the sake of simplicity, simultaneous multi-thread fetch requests
         // are not handled properly: they may cause redundant costly operations, like HTTP
@@ -92,7 +92,7 @@
         }
         Log.d(TAG, "getOrFetch: starting asynctask to fetch " + artUrl);
 
-        new AsyncTask<Void, Void, Bitmap[]>() {
+        new android.os.AsyncTask<Void, Void, Bitmap[]>() {
             @Override
             protected Bitmap[] doInBackground(Void... objects) {
                 Bitmap[] bitmaps;
diff --git a/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/model/MusicProvider.java b/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/model/MusicProvider.java
index 0e2a35c..be9ab9a 100644
--- a/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/model/MusicProvider.java
+++ b/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/model/MusicProvider.java
@@ -16,7 +16,6 @@
 
 package com.example.android.supportv4.media.model;
 
-import android.os.AsyncTask;
 import android.support.v4.media.MediaMetadataCompat;
 import android.util.Log;
 
@@ -174,6 +173,7 @@
      * Get the list of music tracks from a server and caches the track information
      * for future reference, keying tracks by musicId and grouping by genre.
      */
+    @SuppressWarnings("deprecation") /* AsyncTask */
     public void retrieveMediaAsync(final Callback callback) {
         Log.d(TAG, "retrieveMediaAsync called");
         if (mCurrentState == State.INITIALIZED) {
@@ -183,7 +183,7 @@
         }
 
         // Asynchronously load the music catalog in a separate thread
-        new AsyncTask<Void, Void, State>() {
+        new android.os.AsyncTask<Void, Void, State>() {
             @Override
             protected State doInBackground(Void... params) {
                 retrieveMedia();
diff --git a/samples/Support7Demos/src/main/java/com/example/android/supportv7/Support7Demos.java b/samples/Support7Demos/src/main/java/com/example/android/supportv7/Support7Demos.java
index 21cad28..3feb3f3 100644
--- a/samples/Support7Demos/src/main/java/com/example/android/supportv7/Support7Demos.java
+++ b/samples/Support7Demos/src/main/java/com/example/android/supportv7/Support7Demos.java
@@ -16,7 +16,6 @@
 
 package com.example.android.supportv7;
 
-import android.app.ListActivity;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
@@ -33,7 +32,8 @@
 import java.util.List;
 import java.util.Map;
 
-public class Support7Demos extends ListActivity {
+@SuppressWarnings("deprecation")
+public class Support7Demos extends android.app.ListActivity {
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
diff --git a/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/ImageLoader.java b/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/ImageLoader.java
index 35c7e6e..a1ef580 100644
--- a/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/ImageLoader.java
+++ b/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/ImageLoader.java
@@ -17,7 +17,6 @@
 package com.example.android.supportv7.graphics;
 
 import android.graphics.Bitmap;
-import android.os.AsyncTask;
 import android.provider.MediaStore;
 import android.widget.ImageView;
 
@@ -43,6 +42,7 @@
         void onImageLoaded(Bitmap bitmap);
     }
 
+    @SuppressWarnings("deprecation") /* AsyncTask */
     static void loadMediaStoreThumbnail(final ImageView imageView,
             final long id,
             final Listener listener) {
@@ -58,7 +58,7 @@
             return;
         }
 
-        new AsyncTask<Void, Void, Bitmap>() {
+        new android.os.AsyncTask<Void, Void, Bitmap>() {
             @Override
             protected Bitmap doInBackground(Void... params) {
                 return MediaStore.Images.Thumbnails.getThumbnail(
@@ -81,7 +81,7 @@
                     }
                 }
             }
-        }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+        }.executeOnExecutor(android.os.AsyncTask.THREAD_POOL_EXECUTOR);
     }
 
     /**
diff --git a/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/PaletteActivity.java b/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/PaletteActivity.java
index eb6483d..8e67c3a 100644
--- a/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/PaletteActivity.java
+++ b/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/PaletteActivity.java
@@ -207,6 +207,7 @@
                         cursor.getColumnIndexOrThrow(MediaStore.Images.ImageColumns._ID));
 
                 ImageLoader.loadMediaStoreThumbnail(imageView, id, new ImageLoader.Listener() {
+                    @SuppressWarnings("deprecation")
                     @Override
                     public void onImageLoaded(Bitmap bitmap) {
                         new Palette.Builder(bitmap).maximumColorCount(mNumColors).generate(
diff --git a/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/PaletteDetailActivity.java b/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/PaletteDetailActivity.java
index 01adffb..13d0820 100644
--- a/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/PaletteDetailActivity.java
+++ b/samples/Support7Demos/src/main/java/com/example/android/supportv7/graphics/PaletteDetailActivity.java
@@ -126,6 +126,7 @@
 
         ImageLoader.loadMediaStoreThumbnail(mImageView, id, new ImageLoader.Listener() {
             @Override
+            @SuppressWarnings("deprecation")
             public void onImageLoaded(Bitmap bitmap) {
                 new Palette.Builder(bitmap).maximumColorCount(numColors).generate(
                         new Palette.PaletteAsyncListener() {
diff --git a/samples/Support7Demos/src/main/java/com/example/android/supportv7/media/OverlayDisplayWindow.java b/samples/Support7Demos/src/main/java/com/example/android/supportv7/media/OverlayDisplayWindow.java
index 89a4052..0efe75d 100644
--- a/samples/Support7Demos/src/main/java/com/example/android/supportv7/media/OverlayDisplayWindow.java
+++ b/samples/Support7Demos/src/main/java/com/example/android/supportv7/media/OverlayDisplayWindow.java
@@ -121,6 +121,7 @@
         }
 
         @Override
+        @SuppressWarnings("deprecation") /* getDefaultDisplay */
         public void show() {
             if (!mWindowVisible) {
                 mSurfaceView = new SurfaceView(mContext);
@@ -188,6 +189,7 @@
      * Implementation for API version 17+.
      */
     @RequiresApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
+    @SuppressWarnings("deprecation") /* getDefaultDisplay */
     private static final class JellybeanMr1Impl extends OverlayDisplayWindow {
         // When true, disables support for moving and resizing the overlay.
         // The window is made non-touchable, which makes it possible to
@@ -217,6 +219,7 @@
         private float mLiveTranslationY;
         private float mLiveScale = 1.0f;
 
+        @SuppressWarnings("deprecation") /* defaultDisplay */
         public JellybeanMr1Impl(Context context, String name,
                 int width, int height, int gravity) {
             super(context, name, width, height, gravity);
diff --git a/samples/Support7Demos/src/main/java/com/example/android/supportv7/util/DiffUtilActivity.java b/samples/Support7Demos/src/main/java/com/example/android/supportv7/util/DiffUtilActivity.java
index 5019173..2d3b3d4 100644
--- a/samples/Support7Demos/src/main/java/com/example/android/supportv7/util/DiffUtilActivity.java
+++ b/samples/Support7Demos/src/main/java/com/example/android/supportv7/util/DiffUtilActivity.java
@@ -16,7 +16,6 @@
 package com.example.android.supportv7.util;
 
 import android.annotation.SuppressLint;
-import android.os.AsyncTask;
 import android.os.Bundle;
 import android.view.View;
 import android.view.ViewGroup;
@@ -49,6 +48,7 @@
 
     @Override
     @SuppressLint("WrongThread")
+    @SuppressWarnings("deprecation") /* AsyncTask */
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         LinearLayout ll = new LinearLayout(this);
@@ -72,9 +72,8 @@
                     // already refreshing, do not allow modifications
                     return;
                 }
-                //noinspection unchecked
-                new AsyncTask<List<String>, Void, Pair<List<String>, DiffUtil.DiffResult>>() {
-
+                new android.os.AsyncTask<List<String>, Void, Pair<List<String>,
+                        DiffUtil.DiffResult>>() {
                     @Override
                     protected Pair<List<String>, DiffUtil.DiffResult> doInBackground(
                             List<String>... lists) {
diff --git a/samples/SupportAnimationDemos/src/main/java/com/example/android/support/animation/BrowseActivity.java b/samples/SupportAnimationDemos/src/main/java/com/example/android/support/animation/BrowseActivity.java
index 0fc447a..4065625 100644
--- a/samples/SupportAnimationDemos/src/main/java/com/example/android/support/animation/BrowseActivity.java
+++ b/samples/SupportAnimationDemos/src/main/java/com/example/android/support/animation/BrowseActivity.java
@@ -16,7 +16,6 @@
 
 package com.example.android.support.animation;
 
-import android.app.ListActivity;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
@@ -36,7 +35,8 @@
 /**
  * This activity lists all the activities in this application.
  */
-public class BrowseActivity extends ListActivity {
+@SuppressWarnings("deprecation")
+public class BrowseActivity extends android.app.ListActivity {
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
diff --git a/samples/SupportCarDemos/src/main/java/com/example/androidx/car/SupportCarDemoActivity.java b/samples/SupportCarDemos/src/main/java/com/example/androidx/car/SupportCarDemoActivity.java
index 2aef33f..3e48afc 100644
--- a/samples/SupportCarDemos/src/main/java/com/example/androidx/car/SupportCarDemoActivity.java
+++ b/samples/SupportCarDemos/src/main/java/com/example/androidx/car/SupportCarDemoActivity.java
@@ -16,7 +16,6 @@
 
 package com.example.androidx.car;
 
-import android.app.ListActivity;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
@@ -35,7 +34,8 @@
 /**
  * Home activity for car support library samples.
  */
-public class SupportCarDemoActivity extends ListActivity {
+@SuppressWarnings("deprecation")
+public class SupportCarDemoActivity extends android.app.ListActivity {
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
diff --git a/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/BackgroundHelper.java b/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/BackgroundHelper.java
index 5b7cd39..3703bd4 100644
--- a/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/BackgroundHelper.java
+++ b/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/BackgroundHelper.java
@@ -20,7 +20,6 @@
 import android.graphics.Bitmap;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
-import android.os.AsyncTask;
 import android.os.Handler;
 import android.util.Log;
 import android.view.View;
@@ -123,7 +122,8 @@
         }
     }
 
-    class LoadBitmapTaskBase extends AsyncTask<Request, Object, Request> {
+    @SuppressWarnings("deprecation") /* AsyncTask */
+    class LoadBitmapTaskBase extends android.os.AsyncTask<Request, Object, Request> {
         @Override
         protected Request doInBackground(Request... params) {
             boolean cancelled = isCancelled();
diff --git a/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/PlaybackSeekAsyncDataProvider.java b/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/PlaybackSeekAsyncDataProvider.java
index b5a94e7..7c812c1 100644
--- a/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/PlaybackSeekAsyncDataProvider.java
+++ b/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/PlaybackSeekAsyncDataProvider.java
@@ -17,7 +17,6 @@
 package com.example.android.leanback;
 
 import android.graphics.Bitmap;
-import android.os.AsyncTask;
 import android.util.Log;
 import android.util.SparseArray;
 
@@ -47,12 +46,12 @@
     int mLastRequestedIndex = -1;
 
     protected boolean isCancelled(Object task) {
-        return ((AsyncTask) task).isCancelled();
+        return ((android.os.AsyncTask) task).isCancelled();
     }
 
     protected abstract Bitmap doInBackground(Object task, int index, long position);
 
-    class LoadBitmapTask extends AsyncTask<Object, Object, Bitmap> {
+    class LoadBitmapTask extends android.os.AsyncTask<Object, Object, Bitmap> {
 
         int mIndex;
         ResultCallback mResultCallback;
@@ -101,6 +100,7 @@
     }
 
     @Override
+    @SuppressWarnings("deprecation") /* AsyncTask */
     public void getThumbnail(int index, ResultCallback callback) {
         Integer key = index;
         Bitmap bitmap = mCache.get(key);
@@ -118,7 +118,7 @@
                     // no normal task or prefetch for the position, create a new task
                     task = new LoadBitmapTask(index, callback);
                     mRequests.put(index, task);
-                    task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+                    task.executeOnExecutor(android.os.AsyncTask.THREAD_POOL_EXECUTOR);
                 } else {
                     // update existing ResultCallback which might be normal task or prefetch
                     task.mResultCallback = callback;
@@ -133,6 +133,7 @@
         }
     }
 
+    @SuppressWarnings("deprecation") /* AsyncTask */
     protected void prefetch(int hintIndex, boolean forward) {
         for (Iterator<Map.Entry<Integer, Bitmap>> it =
                 mPrefetchCache.snapshot().entrySet().iterator(); it.hasNext(); ) {
@@ -151,7 +152,7 @@
                 if (task == null) {
                     task = new LoadBitmapTask(key, null);
                     mRequests.put(i, task);
-                    task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+                    task.executeOnExecutor(android.os.AsyncTask.THREAD_POOL_EXECUTOR);
                 }
             }
         }
diff --git a/samples/SupportPreferenceDemos/src/main/java/com/example/androidx/preference/MainActivity.java b/samples/SupportPreferenceDemos/src/main/java/com/example/androidx/preference/MainActivity.java
index a0e5313..e6aba68 100644
--- a/samples/SupportPreferenceDemos/src/main/java/com/example/androidx/preference/MainActivity.java
+++ b/samples/SupportPreferenceDemos/src/main/java/com/example/androidx/preference/MainActivity.java
@@ -16,7 +16,6 @@
 
 package com.example.androidx.preference;
 
-import android.app.ListActivity;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
@@ -33,7 +32,8 @@
 /**
  * Activity that displays and handles launching the demo preference activities with a ListView.
  */
-public class MainActivity extends ListActivity {
+@SuppressWarnings("deprecation")
+public class MainActivity extends android.app.ListActivity {
 
     private static final String INTENT = "intent";
     private static final String NAME = "name";
diff --git a/samples/SupportSliceDemos/src/main/java/com/example/androidx/slice/demos/SliceSelectionDialog.java b/samples/SupportSliceDemos/src/main/java/com/example/androidx/slice/demos/SliceSelectionDialog.java
index b2d7ce3..b78738d 100644
--- a/samples/SupportSliceDemos/src/main/java/com/example/androidx/slice/demos/SliceSelectionDialog.java
+++ b/samples/SupportSliceDemos/src/main/java/com/example/androidx/slice/demos/SliceSelectionDialog.java
@@ -35,7 +35,6 @@
 import android.content.pm.ResolveInfo;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
-import android.os.AsyncTask;
 import android.os.Handler;
 import android.os.Looper;
 import android.util.Log;
@@ -288,11 +287,12 @@
     private static class IconCache {
         private final HashMap<String, Drawable> mIcons = new HashMap<>();
 
+        @SuppressWarnings("deprecation") /* AsyncTask */
         private void loadIcon(ImageView iv, ProviderInfo provider, PackageManager pm) {
             if (mIcons.containsKey(provider.packageName)) {
                 iv.setImageDrawable(mIcons.get(provider.packageName));
             }
-            AsyncTask.execute(() -> {
+            android.os.AsyncTask.execute(() -> {
                 mIcons.put(provider.packageName, provider.loadIcon(pm));
                 iv.post(() -> iv.setImageDrawable(mIcons.get(provider.packageName)));
             });
diff --git a/samples/SupportTransitionDemos/src/main/java/com/example/android/support/transition/SupportTransitionDemos.java b/samples/SupportTransitionDemos/src/main/java/com/example/android/support/transition/SupportTransitionDemos.java
index a2345bf..39b36f5 100644
--- a/samples/SupportTransitionDemos/src/main/java/com/example/android/support/transition/SupportTransitionDemos.java
+++ b/samples/SupportTransitionDemos/src/main/java/com/example/android/support/transition/SupportTransitionDemos.java
@@ -16,7 +16,6 @@
 
 package com.example.android.support.transition;
 
-import android.app.ListActivity;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
@@ -33,7 +32,8 @@
 import java.util.List;
 import java.util.Map;
 
-public class SupportTransitionDemos extends ListActivity {
+@SuppressWarnings("deprecation")
+public class SupportTransitionDemos extends android.app.ListActivity {
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
diff --git a/samples/SupportVectorDrawableDemos/src/main/java/com/example/android/support/vectordrawable/app/SupportVectorDrawableDemos.java b/samples/SupportVectorDrawableDemos/src/main/java/com/example/android/support/vectordrawable/app/SupportVectorDrawableDemos.java
index 959ea75..c07087f 100644
--- a/samples/SupportVectorDrawableDemos/src/main/java/com/example/android/support/vectordrawable/app/SupportVectorDrawableDemos.java
+++ b/samples/SupportVectorDrawableDemos/src/main/java/com/example/android/support/vectordrawable/app/SupportVectorDrawableDemos.java
@@ -16,7 +16,6 @@
 
 package com.example.android.support.vectordrawable.app;
 
-import android.app.ListActivity;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
@@ -36,7 +35,8 @@
 /**
  * The root level activity for this demo. Showing a list of sub demos.
  */
-public class SupportVectorDrawableDemos extends ListActivity {
+@SuppressWarnings("deprecation")
+public class SupportVectorDrawableDemos extends android.app.ListActivity {
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
diff --git a/sharetarget/sharetarget/src/main/java/androidx/sharetarget/ChooserTargetServiceCompat.java b/sharetarget/sharetarget/src/main/java/androidx/sharetarget/ChooserTargetServiceCompat.java
index 90b91d1..5ed3259 100644
--- a/sharetarget/sharetarget/src/main/java/androidx/sharetarget/ChooserTargetServiceCompat.java
+++ b/sharetarget/sharetarget/src/main/java/androidx/sharetarget/ChooserTargetServiceCompat.java
@@ -22,8 +22,6 @@
 import android.content.Context;
 import android.content.IntentFilter;
 import android.os.Bundle;
-import android.service.chooser.ChooserTarget;
-import android.service.chooser.ChooserTargetService;
 import android.util.Log;
 
 import androidx.annotation.NonNull;
@@ -48,13 +46,14 @@
  */
 @RequiresApi(23)
 @RestrictTo(LIBRARY_GROUP_PREFIX)
-public class ChooserTargetServiceCompat extends ChooserTargetService {
+@SuppressWarnings("deprecation")
+public class ChooserTargetServiceCompat extends android.service.chooser.ChooserTargetService {
 
     static final String TAG = "ChooserServiceCompat";
 
     @Override
-    public List<ChooserTarget> onGetChooserTargets(ComponentName targetActivityName,
-            IntentFilter matchedFilter) {
+    public List<android.service.chooser.ChooserTarget> onGetChooserTargets(
+            ComponentName targetActivityName, IntentFilter matchedFilter) {
         Context context = getApplicationContext();
 
         // Retrieve share targets
@@ -107,7 +106,7 @@
 
     @VisibleForTesting
     @NonNull
-    static List<ChooserTarget> convertShortcutsToChooserTargets(
+    static List<android.service.chooser.ChooserTarget> convertShortcutsToChooserTargets(
             @NonNull ShortcutInfoCompatSaverImpl shortcutSaver,
             @NonNull List<ShortcutHolder> matchedShortcuts) {
         if (matchedShortcuts.isEmpty()) {
@@ -115,7 +114,7 @@
         }
         Collections.sort(matchedShortcuts);
 
-        ArrayList<ChooserTarget> chooserTargets = new ArrayList<>();
+        ArrayList<android.service.chooser.ChooserTarget> chooserTargets = new ArrayList<>();
         float currentScore = 1.0f;
         int lastRank = matchedShortcuts.get(0).getShortcut().getRank();
         for (ShortcutHolder holder : matchedShortcuts) {
@@ -135,7 +134,7 @@
                 currentScore -= 0.01f;
                 lastRank = shortcut.getRank();
             }
-            chooserTargets.add(new ChooserTarget(
+            chooserTargets.add(new android.service.chooser.ChooserTarget(
                     shortcut.getShortLabel(),
                     shortcutIcon == null ? null : shortcutIcon.toIcon(),
                     currentScore,
diff --git a/slices/view/src/androidTest/java/androidx/slice/widget/CachedSliceLiveDataTest.java b/slices/view/src/androidTest/java/androidx/slice/widget/CachedSliceLiveDataTest.java
index c6f9a6e..9c35fc2 100644
--- a/slices/view/src/androidTest/java/androidx/slice/widget/CachedSliceLiveDataTest.java
+++ b/slices/view/src/androidTest/java/androidx/slice/widget/CachedSliceLiveDataTest.java
@@ -32,7 +32,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
-import android.os.AsyncTask;
 
 import androidx.lifecycle.Observer;
 import androidx.slice.Slice;
@@ -169,7 +168,7 @@
         verify(mObserver, times(1)).onChanged(mSlice.capture());
         clearInvocations(mObserver);
 
-        AsyncTask.execute(new Runnable() {
+        android.os.AsyncTask.execute(new Runnable() {
             @Override
             public void run() {
                 try {
@@ -302,7 +301,7 @@
 
     private void waitForAsync() throws InterruptedException {
         final CountDownLatch latch = new CountDownLatch(1);
-        AsyncTask.execute(new Runnable() {
+        android.os.AsyncTask.execute(new Runnable() {
             @Override
             public void run() {
                 latch.countDown();
diff --git a/slices/view/src/androidTest/java/androidx/slice/widget/SliceLiveDataTest.java b/slices/view/src/androidTest/java/androidx/slice/widget/SliceLiveDataTest.java
index ae76464..88b0eb6 100644
--- a/slices/view/src/androidTest/java/androidx/slice/widget/SliceLiveDataTest.java
+++ b/slices/view/src/androidTest/java/androidx/slice/widget/SliceLiveDataTest.java
@@ -33,7 +33,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
-import android.os.AsyncTask;
 
 import androidx.lifecycle.LiveData;
 import androidx.lifecycle.Observer;
@@ -155,7 +154,7 @@
         verify(mObserver, times(1)).onChanged(mSlice.capture());
         clearInvocations(mObserver);
 
-        AsyncTask.execute(new Runnable() {
+        android.os.AsyncTask.execute(new Runnable() {
             @Override
             public void run() {
                 try {
@@ -295,7 +294,7 @@
 
     private void waitForAsync() throws InterruptedException {
         final CountDownLatch latch = new CountDownLatch(1);
-        AsyncTask.execute(new Runnable() {
+        android.os.AsyncTask.execute(new Runnable() {
             @Override
             public void run() {
                 latch.countDown();
diff --git a/slices/view/src/main/java/androidx/slice/SliceViewManagerBase.java b/slices/view/src/main/java/androidx/slice/SliceViewManagerBase.java
index 12c839a..4ab5626 100644
--- a/slices/view/src/main/java/androidx/slice/SliceViewManagerBase.java
+++ b/slices/view/src/main/java/androidx/slice/SliceViewManagerBase.java
@@ -22,7 +22,6 @@
 import android.content.Context;
 import android.database.ContentObserver;
 import android.net.Uri;
-import android.os.AsyncTask;
 import android.os.Handler;
 import android.os.Looper;
 import android.util.ArrayMap;
@@ -145,8 +144,9 @@
         private final ContentObserver mObserver = new ContentObserver(
                 new Handler(Looper.getMainLooper())) {
             @Override
+            @SuppressWarnings("deprecation") /* AsyncTask */
             public void onChange(boolean selfChange) {
-                AsyncTask.execute(mUpdateSlice);
+                android.os.AsyncTask.execute(mUpdateSlice);
             }
         };
     }
diff --git a/slices/view/src/main/java/androidx/slice/widget/SliceLiveData.java b/slices/view/src/main/java/androidx/slice/widget/SliceLiveData.java
index 29248a6..6481272 100644
--- a/slices/view/src/main/java/androidx/slice/widget/SliceLiveData.java
+++ b/slices/view/src/main/java/androidx/slice/widget/SliceLiveData.java
@@ -22,7 +22,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
-import android.os.AsyncTask;
 import android.os.Looper;
 import android.util.Log;
 
@@ -212,6 +211,7 @@
          * @hide
          */
         @RestrictTo(LIBRARY)
+        @SuppressWarnings("deprecation") /* AsyncTask */
         protected synchronized void loadInitialSlice() {
             if (mInitialSliceLoaded) {
                 return;
@@ -247,7 +247,7 @@
                 mPendingIntent.add(intent);
             }
             if (mActive && !mSliceCallbackRegistered) {
-                AsyncTask.execute(mUpdateSlice);
+                android.os.AsyncTask.execute(mUpdateSlice);
                 mSliceViewManager.registerSliceCallback(mUri, mSliceCallback);
                 mSliceCallbackRegistered = true;
             }
@@ -257,7 +257,7 @@
         protected void onActive() {
             mActive = true;
             if (!mInitialSliceLoaded) {
-                AsyncTask.execute(new Runnable() {
+                android.os.AsyncTask.execute(new Runnable() {
                     @Override
                     public void run() {
                         loadInitialSlice();
@@ -265,7 +265,7 @@
                 });
             }
             if (mLive && !mSliceCallbackRegistered) {
-                AsyncTask.execute(mUpdateSlice);
+                android.os.AsyncTask.execute(mUpdateSlice);
                 mSliceViewManager.registerSliceCallback(mUri, mSliceCallback);
                 mSliceCallbackRegistered = true;
             }
@@ -376,8 +376,9 @@
         }
 
         @Override
+        @SuppressWarnings("deprecation") /* AsyncTask */
         protected void onActive() {
-            AsyncTask.execute(mUpdateSlice);
+            android.os.AsyncTask.execute(mUpdateSlice);
             if (mUri != null) {
                 mSliceViewManager.registerSliceCallback(mUri, mSliceCallback);
             }
diff --git a/textclassifier/textclassifier/src/androidTest/java/androidx/textclassifier/widget/FloatingToolbarTest.java b/textclassifier/textclassifier/src/androidTest/java/androidx/textclassifier/widget/FloatingToolbarTest.java
index 78470df..8558cb1 100644
--- a/textclassifier/textclassifier/src/androidTest/java/androidx/textclassifier/widget/FloatingToolbarTest.java
+++ b/textclassifier/textclassifier/src/androidTest/java/androidx/textclassifier/widget/FloatingToolbarTest.java
@@ -240,6 +240,7 @@
     }
 
     @Test
+    @SuppressWarnings("deprecation") /* defaultDisplay */
     public void ui_dismissOnOutsideClick() throws Exception {
         final int toolbarMargin = (int) (mWidget.getY() + 1.5 * mWidget.getResources()
                 .getDimensionPixelSize(R.dimen.floating_toolbar_height));
@@ -277,6 +278,7 @@
     }
 
     @Test
+    @SuppressWarnings("deprecation") /* defaultDisplay */
     public void ui_setContentRect_belowToolbar() throws Exception {
         final int toolbarMargin = 5 * mWidget.getResources()
                 .getDimensionPixelSize(R.dimen.floating_toolbar_height);
diff --git a/ui/integration-tests/demos/src/main/java/androidx/ui/demos/MainActivity.kt b/ui/integration-tests/demos/src/main/java/androidx/ui/demos/MainActivity.kt
index 69212d3..b5e39a5 100644
--- a/ui/integration-tests/demos/src/main/java/androidx/ui/demos/MainActivity.kt
+++ b/ui/integration-tests/demos/src/main/java/androidx/ui/demos/MainActivity.kt
@@ -16,7 +16,6 @@
 
 package androidx.ui.demos
 
-import android.app.ListActivity
 import android.content.Intent
 import android.os.Bundle
 import android.view.View
@@ -27,7 +26,8 @@
 import java.util.Comparator
 import java.util.HashMap
 
-open class MainActivity : ListActivity() {
+@Suppress("DEPRECATION") /* ListActivity */
+open class MainActivity : android.app.ListActivity() {
 
     public override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
@@ -62,7 +62,7 @@
             setPackage(applicationContext.packageName)
         }
         val myData = ArrayList<Map<String, Any>>()
-        val list = pm.queryIntentActivities(mainIntent, 0) ?: return myData
+        val list = pm.queryIntentActivities(mainIntent, 0)
 
         list.forEach {
             val label = it.loadLabel(pm)?.toString() ?: it.activityInfo.name
diff --git a/ui/integration-tests/test/src/main/java/androidx/ui/benchmark/android/AndroidTestCaseRunner.kt b/ui/integration-tests/test/src/main/java/androidx/ui/benchmark/android/AndroidTestCaseRunner.kt
index d68678c..2cd5ee0 100644
--- a/ui/integration-tests/test/src/main/java/androidx/ui/benchmark/android/AndroidTestCaseRunner.kt
+++ b/ui/integration-tests/test/src/main/java/androidx/ui/benchmark/android/AndroidTestCaseRunner.kt
@@ -50,6 +50,7 @@
 
     init {
         val displayMetrics = DisplayMetrics()
+        @Suppress("DEPRECATION")  /* defaultDisplay + getMetrics() */
         activity.windowManager.defaultDisplay.getMetrics(displayMetrics)
         val height = displayMetrics.heightPixels
         val width = displayMetrics.widthPixels
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt
index bd9df27..f33ee90 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt
@@ -19,6 +19,7 @@
 import android.graphics.Bitmap
 import android.os.Build
 import android.os.Handler
+import android.os.Looper
 import android.view.PixelCopy
 import android.view.View
 import android.view.ViewGroup
@@ -2622,7 +2623,7 @@
         view.getLocationInWindow(offset)
         view.viewTreeObserver.addOnPreDrawListener(flushListener)
         view.invalidate()
-        handler = Handler()
+        handler = Handler(Looper.getMainLooper())
     }
 
     assertTrue(flushListener.latch.await(1, TimeUnit.SECONDS))
diff --git a/ui/ui-graphics/src/main/java/androidx/ui/graphics/Path.kt b/ui/ui-graphics/src/main/java/androidx/ui/graphics/Path.kt
index 42cdbfb..a009f5a 100644
--- a/ui/ui-graphics/src/main/java/androidx/ui/graphics/Path.kt
+++ b/ui/ui-graphics/src/main/java/androidx/ui/graphics/Path.kt
@@ -701,6 +701,7 @@
      * This function will calculate the convexity of the path from its control
      * points, and cache the result.
      */
+    @get:Suppress("DEPRECATION")
     val isConvex: Boolean get() = internalPath.isConvex
 
     /**
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/LayoutTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/LayoutTest.kt
index 2242e5e..3cc3428 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/LayoutTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/LayoutTest.kt
@@ -18,6 +18,7 @@
 
 import android.app.Activity
 import android.os.Handler
+import android.os.Looper
 import android.view.View
 import android.view.ViewGroup
 import android.view.ViewTreeObserver
@@ -73,7 +74,7 @@
         // lambda to Runnable, so separate it here
         val runnable: Runnable = object : Runnable {
             override fun run() {
-                handler = Handler()
+                handler = Handler(Looper.getMainLooper())
             }
         }
         activityTestRule.runOnUiThread(runnable)
diff --git a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/ProgressIndicatorActivity.kt b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/ProgressIndicatorActivity.kt
index 67e21ed..4fd1835 100644
--- a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/ProgressIndicatorActivity.kt
+++ b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/ProgressIndicatorActivity.kt
@@ -17,6 +17,7 @@
 package androidx.ui.material.demos
 
 import android.os.Handler
+import android.os.Looper
 import androidx.compose.Composable
 import androidx.compose.Model
 import androidx.compose.onActive
@@ -61,7 +62,7 @@
         handler.removeCallbacks(updateProgress)
     }
 
-    val handler = Handler()
+    val handler = Handler(Looper.getMainLooper())
     val updateProgress: Runnable = object : Runnable {
         override fun run() {
             if (progress == 1f) {
diff --git a/ui/ui-platform/src/main/java/androidx/ui/core/AndroidOwner.kt b/ui/ui-platform/src/main/java/androidx/ui/core/AndroidOwner.kt
index 6ef813b..b92b9d44 100644
--- a/ui/ui-platform/src/main/java/androidx/ui/core/AndroidOwner.kt
+++ b/ui/ui-platform/src/main/java/androidx/ui/core/AndroidOwner.kt
@@ -1214,6 +1214,7 @@
         }
     }
 
+    @Suppress("DEPRECATION") /* Path.isConvex & Outline.setConvexPath */
     private fun updateCacheWithPath(composePath: Path) {
         val path = composePath.toFrameworkPath()
         if (hasElevation && path.isConvex) {
diff --git a/ui/ui-test/src/main/java/androidx/ui/test/android/AndroidComposeTestCaseRunner.kt b/ui/ui-test/src/main/java/androidx/ui/test/android/AndroidComposeTestCaseRunner.kt
index 0cd20c0..cc7c99e 100644
--- a/ui/ui-test/src/main/java/androidx/ui/test/android/AndroidComposeTestCaseRunner.kt
+++ b/ui/ui-test/src/main/java/androidx/ui/test/android/AndroidComposeTestCaseRunner.kt
@@ -85,6 +85,7 @@
 
     init {
         val displayMetrics = DisplayMetrics()
+        @Suppress("DEPRECATION")  /* defaultDisplay + getMetrics() */
         activity.windowManager.defaultDisplay.getMetrics(displayMetrics)
         val height = displayMetrics.heightPixels
         val width = displayMetrics.widthPixels
diff --git a/ui/ui-tooling/src/androidTest/java/androidx/ui/tooling/ToolingTest.kt b/ui/ui-tooling/src/androidTest/java/androidx/ui/tooling/ToolingTest.kt
index 36ab1f4..30b5c9c 100644
--- a/ui/ui-tooling/src/androidTest/java/androidx/ui/tooling/ToolingTest.kt
+++ b/ui/ui-tooling/src/androidTest/java/androidx/ui/tooling/ToolingTest.kt
@@ -17,6 +17,7 @@
 package androidx.ui.tooling
 
 import android.os.Handler
+import android.os.Looper
 import androidx.compose.Composable
 import androidx.test.rule.ActivityTestRule
 import androidx.ui.core.OnPositioned
@@ -40,7 +41,7 @@
         activity = activityTestRule.activity
         activity.hasFocusLatch.await(5, TimeUnit.SECONDS)
 
-        activityTestRule.onUiThread { handler = Handler() }
+        activityTestRule.onUiThread { handler = Handler(Looper.getMainLooper()) }
     }
 
     @Composable
diff --git a/viewpager2/integration-tests/testapp/src/main/java/androidx/viewpager2/integration/testapp/BrowseActivity.kt b/viewpager2/integration-tests/testapp/src/main/java/androidx/viewpager2/integration/testapp/BrowseActivity.kt
index 5ddbedd..f3f44ec 100644
--- a/viewpager2/integration-tests/testapp/src/main/java/androidx/viewpager2/integration/testapp/BrowseActivity.kt
+++ b/viewpager2/integration-tests/testapp/src/main/java/androidx/viewpager2/integration/testapp/BrowseActivity.kt
@@ -16,7 +16,6 @@
 
 package androidx.viewpager2.integration.testapp
 
-import android.app.ListActivity
 import android.content.Intent
 import android.os.Bundle
 import android.view.View
@@ -26,7 +25,8 @@
 /**
  * This activity lists all the activities in this application.
  */
-class BrowseActivity : ListActivity() {
+@Suppress("DEPRECATION")
+class BrowseActivity : android.app.ListActivity() {
 
     public override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
diff --git a/wear/wear/src/main/java/androidx/wear/widget/BoxInsetLayout.java b/wear/wear/src/main/java/androidx/wear/widget/BoxInsetLayout.java
index e43e2bf..79dcc227 100644
--- a/wear/wear/src/main/java/androidx/wear/widget/BoxInsetLayout.java
+++ b/wear/wear/src/main/java/androidx/wear/widget/BoxInsetLayout.java
@@ -128,6 +128,7 @@
     }
 
     @Override
+    @SuppressWarnings("deprecation") /* getSystemWindowInsetXXXX */
     protected void onAttachedToWindow() {
         super.onAttachedToWindow();
         mIsRound = getResources().getConfiguration().isScreenRound();
diff --git a/wear/wear/src/main/java/androidx/wear/widget/WearableRecyclerView.java b/wear/wear/src/main/java/androidx/wear/widget/WearableRecyclerView.java
index e20fb1f..07da857 100644
--- a/wear/wear/src/main/java/androidx/wear/widget/WearableRecyclerView.java
+++ b/wear/wear/src/main/java/androidx/wear/widget/WearableRecyclerView.java
@@ -149,6 +149,7 @@
     }
 
     @Override
+    @SuppressWarnings("deprecation") /* Display.getSize() */
     protected void onAttachedToWindow() {
         super.onAttachedToWindow();
         Point screenSize = new Point();
diff --git a/wear/wear/src/main/java/androidx/wear/widget/drawer/WearableDrawerLayout.java b/wear/wear/src/main/java/androidx/wear/widget/drawer/WearableDrawerLayout.java
index c3ebdc0..292f648 100644
--- a/wear/wear/src/main/java/androidx/wear/widget/drawer/WearableDrawerLayout.java
+++ b/wear/wear/src/main/java/androidx/wear/widget/drawer/WearableDrawerLayout.java
@@ -229,6 +229,7 @@
         this(context, attrs, defStyleAttr, 0);
     }
 
+    @SuppressWarnings("deprecation") /* getDefaultDisplay */
     public WearableDrawerLayout(
             Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
         super(context, attrs, defStyleAttr, defStyleRes);
@@ -318,6 +319,7 @@
     }
 
     @Override
+    @SuppressWarnings("deprecation") /* getSystemWindowInsetBottom */
     public WindowInsets onApplyWindowInsets(WindowInsets insets) {
         mSystemWindowInsetBottom = insets.getSystemWindowInsetBottom();
 
diff --git a/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/AssetLoaderInternalStorageActivity.java b/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/AssetLoaderInternalStorageActivity.java
index 4a0373d..35f53be 100644
--- a/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/AssetLoaderInternalStorageActivity.java
+++ b/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/AssetLoaderInternalStorageActivity.java
@@ -20,7 +20,6 @@
 
 import android.app.Activity;
 import android.net.Uri;
-import android.os.AsyncTask;
 import android.os.Bundle;
 import android.webkit.WebResourceRequest;
 import android.webkit.WebResourceResponse;
@@ -73,6 +72,7 @@
     }
 
     @Override
+    @SuppressWarnings("deprecation") /* AsyncTask */
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
@@ -117,7 +117,7 @@
     }
 
     // Writes to file asynchronously in the background thread.
-    private static class WriteFileTask extends AsyncTask<Void, Void, Void> {
+    private static class WriteFileTask extends android.os.AsyncTask<Void, Void, Void> {
         @NonNull private final File mFile;
         @NonNull private final String mContent;
 
diff --git a/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/GiantInterstitialActivity.java b/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/GiantInterstitialActivity.java
index 40e3512..1c3aa61 100644
--- a/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/GiantInterstitialActivity.java
+++ b/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/GiantInterstitialActivity.java
@@ -36,6 +36,7 @@
     private static final double SCALE_FACTOR = 1.1;
 
     @Override
+    @SuppressWarnings("deprecation") /* defaultDisplay */
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_giant_interstitial);
diff --git a/webkit/webkit/src/main/java/androidx/webkit/TracingController.java b/webkit/webkit/src/main/java/androidx/webkit/TracingController.java
index 6f1987a..7a484d0 100644
--- a/webkit/webkit/src/main/java/androidx/webkit/TracingController.java
+++ b/webkit/webkit/src/main/java/androidx/webkit/TracingController.java
@@ -17,7 +17,6 @@
 package androidx.webkit;
 
 import android.content.Context;
-import android.os.AsyncTask;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
@@ -118,7 +117,7 @@
      *                 To dispatch events through the main thread of your application,
      *                 you can use {@link Context#getMainExecutor()}.
      *                 To dispatch events through a shared thread pool,
-     *                 you can use {@link AsyncTask#THREAD_POOL_EXECUTOR}.
+     *                 you can use {@link android.os.AsyncTask#THREAD_POOL_EXECUTOR}.
      *
      * @return {@code false} if the WebView framework was not tracing at the time of the call,
      * {@code true} otherwise.
diff --git a/work/integration-tests/testapp/src/main/java/androidx/work/integration/testapp/imageprocessing/ImageRecyclerViewAdapter.java b/work/integration-tests/testapp/src/main/java/androidx/work/integration/testapp/imageprocessing/ImageRecyclerViewAdapter.java
index 8cbb23e..633bf07 100644
--- a/work/integration-tests/testapp/src/main/java/androidx/work/integration/testapp/imageprocessing/ImageRecyclerViewAdapter.java
+++ b/work/integration-tests/testapp/src/main/java/androidx/work/integration/testapp/imageprocessing/ImageRecyclerViewAdapter.java
@@ -18,7 +18,6 @@
 
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
-import android.os.AsyncTask;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
@@ -56,7 +55,7 @@
         private ImageView mImageView;
         private TextView mTextView;
         private ProgressBar mProgressBar;
-        private AsyncTask<Image, Void, Bitmap> mBitmapLoadTask;
+        private android.os.AsyncTask<Image, Void, Bitmap> mBitmapLoadTask;
         private boolean mShouldLoad;
 
         ViewHolder(View itemView) {
@@ -66,13 +65,14 @@
             mProgressBar = itemView.findViewById(R.id.progressBar);
         }
 
+        @SuppressWarnings("deprecation") /* AsyncTask */
         public void load(final Image image) {
             if (TextUtils.isEmpty(image.mProcessedFilePath)) {
                 mTextView.setText(image.mOriginalAssetName);
                 mProgressBar.setVisibility(View.VISIBLE);
                 mImageView.setVisibility(View.GONE);
             } else {
-                mBitmapLoadTask = new AsyncTask<Image, Void, Bitmap>() {
+                mBitmapLoadTask = new android.os.AsyncTask<Image, Void, Bitmap>() {
                     @Override
                     protected void onPostExecute(Bitmap bitmap) {
                         if (mShouldLoad) {