Enabling Metalava everywhere

Except in empty projects
Bug: 113686649
Test: ./gradlew checkApi

Change-Id: Id1e6b6836debf3dd8682c776064033a6cfe2037a
diff --git a/activity/api/current.txt b/activity/api/current.txt
index 67ea111..d40ed50 100644
--- a/activity/api/current.txt
+++ b/activity/api/current.txt
@@ -1,3 +1,4 @@
+// Signature format: 2.0
 package androidx.activity {
 
   public class ComponentActivity extends androidx.core.app.ComponentActivity implements androidx.lifecycle.LifecycleOwner {
diff --git a/annotations/api/1.0.0.txt b/annotations/api/1.0.0.txt
index 7c7450d..0be4115 100644
--- a/annotations/api/1.0.0.txt
+++ b/annotations/api/1.0.0.txt
@@ -1,179 +1,208 @@
+// Signature format: 2.0
 package androidx.annotation {
 
-  public abstract class AnimRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) public @interface AnimRes {
   }
 
-  public abstract class AnimatorRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) public @interface AnimatorRes {
   }
 
-  public abstract class AnyRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) public @interface AnyRes {
   }
 
-  public abstract class AnyThread implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.CONSTRUCTOR, java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.PARAMETER}) public @interface AnyThread {
   }
 
-  public abstract class ArrayRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) public @interface ArrayRes {
   }
 
-  public abstract class AttrRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) public @interface AttrRes {
   }
 
-  public abstract class BinderThread implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.CONSTRUCTOR, java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.PARAMETER}) public @interface BinderThread {
   }
 
-  public abstract class BoolRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) public @interface BoolRes {
   }
 
-  public abstract class CallSuper implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD}) public @interface CallSuper {
   }
 
-  public abstract class CheckResult implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD}) public @interface CheckResult {
+    method public abstract String suggest() default "";
   }
 
-  public abstract class ColorInt implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.FIELD}) public @interface ColorInt {
   }
 
-  public abstract class ColorLong implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.FIELD}) public @interface ColorLong {
   }
 
-  public abstract class ColorRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) public @interface ColorRes {
   }
 
-  public abstract class DimenRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) public @interface DimenRes {
   }
 
-  public abstract class Dimension implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.ANNOTATION_TYPE}) public @interface Dimension {
+    method @DimensionUnit public abstract int unit() default androidx.annotation.Dimension.PX;
     field public static final int DP = 0; // 0x0
     field public static final int PX = 1; // 0x1
     field public static final int SP = 2; // 0x2
   }
 
-  public abstract class DrawableRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) public @interface DrawableRes {
   }
 
-  public abstract class FloatRange implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.ANNOTATION_TYPE}) public @interface FloatRange {
+    method public abstract double from() default java.lang.Double.NEGATIVE_INFINITY;
+    method public abstract boolean fromInclusive() default true;
+    method public abstract double to() default java.lang.Double.POSITIVE_INFINITY;
+    method public abstract boolean toInclusive() default true;
   }
 
-  public abstract class FontRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) public @interface FontRes {
   }
 
-  public abstract class FractionRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) public @interface FractionRes {
   }
 
-  public abstract class GuardedBy implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface GuardedBy {
+    method public abstract String value();
   }
 
-  public abstract class HalfFloat implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.FIELD}) public @interface HalfFloat {
   }
 
-  public abstract class IdRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) public @interface IdRes {
   }
 
-  public abstract class IntDef implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.ANNOTATION_TYPE}) public @interface IntDef {
+    method public abstract boolean flag() default false;
+    method public abstract int[] value() default {};
   }
 
-  public abstract class IntRange implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.ANNOTATION_TYPE}) public @interface IntRange {
+    method public abstract long from() default java.lang.Long.MIN_VALUE;
+    method public abstract long to() default java.lang.Long.MAX_VALUE;
   }
 
-  public abstract class IntegerRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) public @interface IntegerRes {
   }
 
-  public abstract class InterpolatorRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) public @interface InterpolatorRes {
   }
 
-  public abstract class Keep implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.PACKAGE, java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.ANNOTATION_TYPE, java.lang.annotation.ElementType.CONSTRUCTOR, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.FIELD}) public @interface Keep {
   }
 
-  public abstract class LayoutRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) public @interface LayoutRes {
   }
 
-  public abstract class LongDef implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.ANNOTATION_TYPE}) public @interface LongDef {
+    method public abstract boolean flag() default false;
+    method public abstract long[] value() default {};
   }
 
-  public abstract class MainThread implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.CONSTRUCTOR, java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.PARAMETER}) public @interface MainThread {
   }
 
-  public abstract class MenuRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) public @interface MenuRes {
   }
 
-  public abstract class NavigationRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) public @interface NavigationRes {
   }
 
-  public abstract class NonNull implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.ANNOTATION_TYPE, java.lang.annotation.ElementType.PACKAGE}) public @interface NonNull {
   }
 
-  public abstract class Nullable implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.ANNOTATION_TYPE, java.lang.annotation.ElementType.PACKAGE}) public @interface Nullable {
   }
 
-  public abstract class PluralsRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) public @interface PluralsRes {
   }
 
-  public abstract class Px implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) @Dimension(unit=androidx.annotation.Dimension.PX) public @interface Px {
   }
 
-  public abstract class RawRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) public @interface RawRes {
   }
 
-  public abstract class RequiresApi implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.CONSTRUCTOR, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.PACKAGE}) public @interface RequiresApi {
+    method @IntRange(from=1) public abstract int api() default 1;
+    method @IntRange(from=1) public abstract int value() default 1;
   }
 
-  public abstract class RequiresFeature implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.CONSTRUCTOR}) public @interface RequiresFeature {
+    method public abstract String enforcement();
+    method public abstract String name();
   }
 
-  public abstract class RequiresPermission implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.ANNOTATION_TYPE, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.CONSTRUCTOR, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.PARAMETER}) public @interface RequiresPermission {
+    method public abstract String[] allOf() default {};
+    method public abstract String[] anyOf() default {};
+    method public abstract boolean conditional() default false;
+    method public abstract String value() default "";
   }
 
-  public static abstract class RequiresPermission.Read implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public static @interface RequiresPermission.Read {
+    method public abstract androidx.annotation.RequiresPermission value() default @androidx.annotation.RequiresPermission;
   }
 
-  public static abstract class RequiresPermission.Write implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public static @interface RequiresPermission.Write {
+    method public abstract androidx.annotation.RequiresPermission value() default @androidx.annotation.RequiresPermission;
   }
 
-  public abstract class RestrictTo implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.ANNOTATION_TYPE, java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.CONSTRUCTOR, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.PACKAGE}) public @interface RestrictTo {
+    method public abstract androidx.annotation.RestrictTo.Scope[] value();
   }
 
-  public static final class RestrictTo.Scope extends java.lang.Enum {
-    method public static androidx.annotation.RestrictTo.Scope valueOf(java.lang.String);
-    method public static final androidx.annotation.RestrictTo.Scope[] values();
-    enum_constant public static final deprecated androidx.annotation.RestrictTo.Scope GROUP_ID;
+  public static enum RestrictTo.Scope {
+    enum_constant @Deprecated public static final androidx.annotation.RestrictTo.Scope GROUP_ID;
     enum_constant public static final androidx.annotation.RestrictTo.Scope LIBRARY;
     enum_constant public static final androidx.annotation.RestrictTo.Scope LIBRARY_GROUP;
     enum_constant public static final androidx.annotation.RestrictTo.Scope SUBCLASSES;
     enum_constant public static final androidx.annotation.RestrictTo.Scope TESTS;
   }
 
-  public abstract class Size implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.ANNOTATION_TYPE}) public @interface Size {
+    method public abstract long max() default java.lang.Long.MAX_VALUE;
+    method public abstract long min() default java.lang.Long.MIN_VALUE;
+    method public abstract long multiple() default 1;
+    method public abstract long value() default -1;
   }
 
-  public abstract class StringDef implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.ANNOTATION_TYPE}) public @interface StringDef {
+    method public abstract String[] value() default {};
   }
 
-  public abstract class StringRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) public @interface StringRes {
   }
 
-  public abstract class StyleRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) public @interface StyleRes {
   }
 
-  public abstract class StyleableRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) public @interface StyleableRes {
   }
 
-  public abstract class TransitionRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD}) public @interface TransitionRes {
   }
 
-  public abstract class UiThread implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.CONSTRUCTOR, java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.PARAMETER}) public @interface UiThread {
   }
 
-  public abstract class VisibleForTesting implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface VisibleForTesting {
+    method @ProductionVisibility public abstract int otherwise() default androidx.annotation.VisibleForTesting.PRIVATE;
     field public static final int NONE = 5; // 0x5
     field public static final int PACKAGE_PRIVATE = 3; // 0x3
     field public static final int PRIVATE = 2; // 0x2
     field public static final int PROTECTED = 4; // 0x4
   }
 
-  public abstract class WorkerThread implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.CONSTRUCTOR, java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.PARAMETER}) public @interface WorkerThread {
   }
 
-  public abstract class XmlRes implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE}) public @interface XmlRes {
   }
 
 }
diff --git a/appcompat/api/current.txt b/appcompat/api/current.txt
index d30c3a2..3ff3dcc 100644
--- a/appcompat/api/current.txt
+++ b/appcompat/api/current.txt
@@ -1,38 +1,39 @@
+// Signature format: 2.0
 package androidx.appcompat.app {
 
   public abstract class ActionBar {
     ctor public ActionBar();
-    method public abstract void addOnMenuVisibilityListener(androidx.appcompat.app.ActionBar.OnMenuVisibilityListener);
-    method public abstract deprecated void addTab(androidx.appcompat.app.ActionBar.Tab);
-    method public abstract deprecated void addTab(androidx.appcompat.app.ActionBar.Tab, boolean);
-    method public abstract deprecated void addTab(androidx.appcompat.app.ActionBar.Tab, int);
-    method public abstract deprecated void addTab(androidx.appcompat.app.ActionBar.Tab, int, boolean);
-    method public abstract android.view.View getCustomView();
+    method public abstract void addOnMenuVisibilityListener(androidx.appcompat.app.ActionBar.OnMenuVisibilityListener!);
+    method @Deprecated public abstract void addTab(androidx.appcompat.app.ActionBar.Tab!);
+    method @Deprecated public abstract void addTab(androidx.appcompat.app.ActionBar.Tab!, boolean);
+    method @Deprecated public abstract void addTab(androidx.appcompat.app.ActionBar.Tab!, int);
+    method @Deprecated public abstract void addTab(androidx.appcompat.app.ActionBar.Tab!, int, boolean);
+    method public abstract android.view.View! getCustomView();
     method public abstract int getDisplayOptions();
     method public float getElevation();
     method public abstract int getHeight();
     method public int getHideOffset();
-    method public abstract deprecated int getNavigationItemCount();
-    method public abstract deprecated int getNavigationMode();
-    method public abstract deprecated int getSelectedNavigationIndex();
-    method public abstract deprecated androidx.appcompat.app.ActionBar.Tab getSelectedTab();
-    method public abstract java.lang.CharSequence getSubtitle();
-    method public abstract deprecated androidx.appcompat.app.ActionBar.Tab getTabAt(int);
-    method public abstract deprecated int getTabCount();
-    method public android.content.Context getThemedContext();
-    method public abstract java.lang.CharSequence getTitle();
+    method @Deprecated public abstract int getNavigationItemCount();
+    method @Deprecated public abstract int getNavigationMode();
+    method @Deprecated public abstract int getSelectedNavigationIndex();
+    method @Deprecated public abstract androidx.appcompat.app.ActionBar.Tab? getSelectedTab();
+    method public abstract CharSequence? getSubtitle();
+    method @Deprecated public abstract androidx.appcompat.app.ActionBar.Tab! getTabAt(int);
+    method @Deprecated public abstract int getTabCount();
+    method public android.content.Context! getThemedContext();
+    method public abstract CharSequence? getTitle();
     method public abstract void hide();
     method public boolean isHideOnContentScrollEnabled();
     method public abstract boolean isShowing();
-    method public abstract deprecated androidx.appcompat.app.ActionBar.Tab newTab();
-    method public abstract deprecated void removeAllTabs();
-    method public abstract void removeOnMenuVisibilityListener(androidx.appcompat.app.ActionBar.OnMenuVisibilityListener);
-    method public abstract deprecated void removeTab(androidx.appcompat.app.ActionBar.Tab);
-    method public abstract deprecated void removeTabAt(int);
-    method public abstract deprecated void selectTab(androidx.appcompat.app.ActionBar.Tab);
-    method public abstract void setBackgroundDrawable(android.graphics.drawable.Drawable);
-    method public abstract void setCustomView(android.view.View);
-    method public abstract void setCustomView(android.view.View, androidx.appcompat.app.ActionBar.LayoutParams);
+    method @Deprecated public abstract androidx.appcompat.app.ActionBar.Tab! newTab();
+    method @Deprecated public abstract void removeAllTabs();
+    method public abstract void removeOnMenuVisibilityListener(androidx.appcompat.app.ActionBar.OnMenuVisibilityListener!);
+    method @Deprecated public abstract void removeTab(androidx.appcompat.app.ActionBar.Tab!);
+    method @Deprecated public abstract void removeTabAt(int);
+    method @Deprecated public abstract void selectTab(androidx.appcompat.app.ActionBar.Tab!);
+    method public abstract void setBackgroundDrawable(android.graphics.drawable.Drawable?);
+    method public abstract void setCustomView(android.view.View!);
+    method public abstract void setCustomView(android.view.View!, androidx.appcompat.app.ActionBar.LayoutParams!);
     method public abstract void setCustomView(int);
     method public abstract void setDisplayHomeAsUpEnabled(boolean);
     method public abstract void setDisplayOptions(int);
@@ -44,245 +45,245 @@
     method public void setElevation(float);
     method public void setHideOffset(int);
     method public void setHideOnContentScrollEnabled(boolean);
-    method public void setHomeActionContentDescription(java.lang.CharSequence);
-    method public void setHomeActionContentDescription(int);
-    method public void setHomeAsUpIndicator(android.graphics.drawable.Drawable);
-    method public void setHomeAsUpIndicator(int);
+    method public void setHomeActionContentDescription(CharSequence?);
+    method public void setHomeActionContentDescription(@StringRes int);
+    method public void setHomeAsUpIndicator(android.graphics.drawable.Drawable?);
+    method public void setHomeAsUpIndicator(@DrawableRes int);
     method public void setHomeButtonEnabled(boolean);
-    method public abstract void setIcon(int);
-    method public abstract void setIcon(android.graphics.drawable.Drawable);
-    method public abstract deprecated void setListNavigationCallbacks(android.widget.SpinnerAdapter, androidx.appcompat.app.ActionBar.OnNavigationListener);
-    method public abstract void setLogo(int);
-    method public abstract void setLogo(android.graphics.drawable.Drawable);
-    method public abstract deprecated void setNavigationMode(int);
-    method public abstract deprecated void setSelectedNavigationItem(int);
-    method public void setSplitBackgroundDrawable(android.graphics.drawable.Drawable);
-    method public void setStackedBackgroundDrawable(android.graphics.drawable.Drawable);
-    method public abstract void setSubtitle(java.lang.CharSequence);
+    method public abstract void setIcon(@DrawableRes int);
+    method public abstract void setIcon(android.graphics.drawable.Drawable!);
+    method @Deprecated public abstract void setListNavigationCallbacks(android.widget.SpinnerAdapter!, androidx.appcompat.app.ActionBar.OnNavigationListener!);
+    method public abstract void setLogo(@DrawableRes int);
+    method public abstract void setLogo(android.graphics.drawable.Drawable!);
+    method @Deprecated public abstract void setNavigationMode(int);
+    method @Deprecated public abstract void setSelectedNavigationItem(int);
+    method public void setSplitBackgroundDrawable(android.graphics.drawable.Drawable!);
+    method public void setStackedBackgroundDrawable(android.graphics.drawable.Drawable!);
+    method public abstract void setSubtitle(CharSequence!);
     method public abstract void setSubtitle(int);
-    method public abstract void setTitle(java.lang.CharSequence);
-    method public abstract void setTitle(int);
+    method public abstract void setTitle(CharSequence!);
+    method public abstract void setTitle(@StringRes int);
     method public abstract void show();
     field public static final int DISPLAY_HOME_AS_UP = 4; // 0x4
     field public static final int DISPLAY_SHOW_CUSTOM = 16; // 0x10
     field public static final int DISPLAY_SHOW_HOME = 2; // 0x2
     field public static final int DISPLAY_SHOW_TITLE = 8; // 0x8
     field public static final int DISPLAY_USE_LOGO = 1; // 0x1
-    field public static final deprecated int NAVIGATION_MODE_LIST = 1; // 0x1
-    field public static final deprecated int NAVIGATION_MODE_STANDARD = 0; // 0x0
-    field public static final deprecated int NAVIGATION_MODE_TABS = 2; // 0x2
+    field @Deprecated public static final int NAVIGATION_MODE_LIST = 1; // 0x1
+    field @Deprecated public static final int NAVIGATION_MODE_STANDARD = 0; // 0x0
+    field @Deprecated public static final int NAVIGATION_MODE_TABS = 2; // 0x2
   }
 
   public static class ActionBar.LayoutParams extends android.view.ViewGroup.MarginLayoutParams {
-    ctor public ActionBar.LayoutParams(android.content.Context, android.util.AttributeSet);
+    ctor public ActionBar.LayoutParams(android.content.Context, android.util.AttributeSet!);
     ctor public ActionBar.LayoutParams(int, int);
     ctor public ActionBar.LayoutParams(int, int, int);
     ctor public ActionBar.LayoutParams(int);
-    ctor public ActionBar.LayoutParams(androidx.appcompat.app.ActionBar.LayoutParams);
-    ctor public ActionBar.LayoutParams(android.view.ViewGroup.LayoutParams);
+    ctor public ActionBar.LayoutParams(androidx.appcompat.app.ActionBar.LayoutParams!);
+    ctor public ActionBar.LayoutParams(android.view.ViewGroup.LayoutParams!);
     field public int gravity;
   }
 
-  public static abstract interface ActionBar.OnMenuVisibilityListener {
-    method public abstract void onMenuVisibilityChanged(boolean);
+  public static interface ActionBar.OnMenuVisibilityListener {
+    method public void onMenuVisibilityChanged(boolean);
   }
 
-  public static abstract deprecated interface ActionBar.OnNavigationListener {
-    method public abstract boolean onNavigationItemSelected(int, long);
+  @Deprecated public static interface ActionBar.OnNavigationListener {
+    method @Deprecated public boolean onNavigationItemSelected(int, long);
   }
 
-  public static abstract deprecated class ActionBar.Tab {
-    ctor public ActionBar.Tab();
-    method public abstract java.lang.CharSequence getContentDescription();
-    method public abstract android.view.View getCustomView();
-    method public abstract android.graphics.drawable.Drawable getIcon();
-    method public abstract int getPosition();
-    method public abstract java.lang.Object getTag();
-    method public abstract java.lang.CharSequence getText();
-    method public abstract void select();
-    method public abstract androidx.appcompat.app.ActionBar.Tab setContentDescription(int);
-    method public abstract androidx.appcompat.app.ActionBar.Tab setContentDescription(java.lang.CharSequence);
-    method public abstract androidx.appcompat.app.ActionBar.Tab setCustomView(android.view.View);
-    method public abstract androidx.appcompat.app.ActionBar.Tab setCustomView(int);
-    method public abstract androidx.appcompat.app.ActionBar.Tab setIcon(android.graphics.drawable.Drawable);
-    method public abstract androidx.appcompat.app.ActionBar.Tab setIcon(int);
-    method public abstract androidx.appcompat.app.ActionBar.Tab setTabListener(androidx.appcompat.app.ActionBar.TabListener);
-    method public abstract androidx.appcompat.app.ActionBar.Tab setTag(java.lang.Object);
-    method public abstract androidx.appcompat.app.ActionBar.Tab setText(java.lang.CharSequence);
-    method public abstract androidx.appcompat.app.ActionBar.Tab setText(int);
-    field public static final int INVALID_POSITION = -1; // 0xffffffff
+  @Deprecated public abstract static class ActionBar.Tab {
+    ctor @Deprecated public ActionBar.Tab();
+    method @Deprecated public abstract CharSequence! getContentDescription();
+    method @Deprecated public abstract android.view.View! getCustomView();
+    method @Deprecated public abstract android.graphics.drawable.Drawable! getIcon();
+    method @Deprecated public abstract int getPosition();
+    method @Deprecated public abstract Object! getTag();
+    method @Deprecated public abstract CharSequence! getText();
+    method @Deprecated public abstract void select();
+    method @Deprecated public abstract androidx.appcompat.app.ActionBar.Tab! setContentDescription(@StringRes int);
+    method @Deprecated public abstract androidx.appcompat.app.ActionBar.Tab! setContentDescription(CharSequence!);
+    method @Deprecated public abstract androidx.appcompat.app.ActionBar.Tab! setCustomView(android.view.View!);
+    method @Deprecated public abstract androidx.appcompat.app.ActionBar.Tab! setCustomView(int);
+    method @Deprecated public abstract androidx.appcompat.app.ActionBar.Tab! setIcon(android.graphics.drawable.Drawable!);
+    method @Deprecated public abstract androidx.appcompat.app.ActionBar.Tab! setIcon(@DrawableRes int);
+    method @Deprecated public abstract androidx.appcompat.app.ActionBar.Tab! setTabListener(androidx.appcompat.app.ActionBar.TabListener!);
+    method @Deprecated public abstract androidx.appcompat.app.ActionBar.Tab! setTag(Object!);
+    method @Deprecated public abstract androidx.appcompat.app.ActionBar.Tab! setText(CharSequence!);
+    method @Deprecated public abstract androidx.appcompat.app.ActionBar.Tab! setText(int);
+    field @Deprecated public static final int INVALID_POSITION = -1; // 0xffffffff
   }
 
-  public static abstract deprecated interface ActionBar.TabListener {
-    method public abstract void onTabReselected(androidx.appcompat.app.ActionBar.Tab, androidx.fragment.app.FragmentTransaction);
-    method public abstract void onTabSelected(androidx.appcompat.app.ActionBar.Tab, androidx.fragment.app.FragmentTransaction);
-    method public abstract void onTabUnselected(androidx.appcompat.app.ActionBar.Tab, androidx.fragment.app.FragmentTransaction);
+  @Deprecated public static interface ActionBar.TabListener {
+    method @Deprecated public void onTabReselected(androidx.appcompat.app.ActionBar.Tab!, androidx.fragment.app.FragmentTransaction!);
+    method @Deprecated public void onTabSelected(androidx.appcompat.app.ActionBar.Tab!, androidx.fragment.app.FragmentTransaction!);
+    method @Deprecated public void onTabUnselected(androidx.appcompat.app.ActionBar.Tab!, androidx.fragment.app.FragmentTransaction!);
   }
 
   public class ActionBarDrawerToggle implements androidx.drawerlayout.widget.DrawerLayout.DrawerListener {
-    ctor public ActionBarDrawerToggle(android.app.Activity, androidx.drawerlayout.widget.DrawerLayout, int, int);
-    ctor public ActionBarDrawerToggle(android.app.Activity, androidx.drawerlayout.widget.DrawerLayout, androidx.appcompat.widget.Toolbar, int, int);
+    ctor public ActionBarDrawerToggle(android.app.Activity!, androidx.drawerlayout.widget.DrawerLayout!, @StringRes int, @StringRes int);
+    ctor public ActionBarDrawerToggle(android.app.Activity!, androidx.drawerlayout.widget.DrawerLayout!, androidx.appcompat.widget.Toolbar!, @StringRes int, @StringRes int);
     method public androidx.appcompat.graphics.drawable.DrawerArrowDrawable getDrawerArrowDrawable();
-    method public android.view.View.OnClickListener getToolbarNavigationClickListener();
+    method public android.view.View.OnClickListener! getToolbarNavigationClickListener();
     method public boolean isDrawerIndicatorEnabled();
     method public boolean isDrawerSlideAnimationEnabled();
-    method public void onConfigurationChanged(android.content.res.Configuration);
-    method public void onDrawerClosed(android.view.View);
-    method public void onDrawerOpened(android.view.View);
-    method public void onDrawerSlide(android.view.View, float);
+    method public void onConfigurationChanged(android.content.res.Configuration!);
+    method public void onDrawerClosed(android.view.View!);
+    method public void onDrawerOpened(android.view.View!);
+    method public void onDrawerSlide(android.view.View!, float);
     method public void onDrawerStateChanged(int);
-    method public boolean onOptionsItemSelected(android.view.MenuItem);
+    method public boolean onOptionsItemSelected(android.view.MenuItem!);
     method public void setDrawerArrowDrawable(androidx.appcompat.graphics.drawable.DrawerArrowDrawable);
     method public void setDrawerIndicatorEnabled(boolean);
     method public void setDrawerSlideAnimationEnabled(boolean);
-    method public void setHomeAsUpIndicator(android.graphics.drawable.Drawable);
+    method public void setHomeAsUpIndicator(android.graphics.drawable.Drawable!);
     method public void setHomeAsUpIndicator(int);
-    method public void setToolbarNavigationClickListener(android.view.View.OnClickListener);
+    method public void setToolbarNavigationClickListener(android.view.View.OnClickListener!);
     method public void syncState();
   }
 
-  public static abstract interface ActionBarDrawerToggle.Delegate {
-    method public abstract android.content.Context getActionBarThemedContext();
-    method public abstract android.graphics.drawable.Drawable getThemeUpIndicator();
-    method public abstract boolean isNavigationVisible();
-    method public abstract void setActionBarDescription(int);
-    method public abstract void setActionBarUpIndicator(android.graphics.drawable.Drawable, int);
+  public static interface ActionBarDrawerToggle.Delegate {
+    method public android.content.Context! getActionBarThemedContext();
+    method public android.graphics.drawable.Drawable! getThemeUpIndicator();
+    method public boolean isNavigationVisible();
+    method public void setActionBarDescription(@StringRes int);
+    method public void setActionBarUpIndicator(android.graphics.drawable.Drawable!, @StringRes int);
   }
 
-  public static abstract interface ActionBarDrawerToggle.DelegateProvider {
-    method public abstract androidx.appcompat.app.ActionBarDrawerToggle.Delegate getDrawerToggleDelegate();
+  public static interface ActionBarDrawerToggle.DelegateProvider {
+    method public androidx.appcompat.app.ActionBarDrawerToggle.Delegate? getDrawerToggleDelegate();
   }
 
   public class AlertDialog extends androidx.appcompat.app.AppCompatDialog implements android.content.DialogInterface {
     ctor protected AlertDialog(android.content.Context);
-    ctor protected AlertDialog(android.content.Context, int);
-    ctor protected AlertDialog(android.content.Context, boolean, android.content.DialogInterface.OnCancelListener);
-    method public android.widget.Button getButton(int);
-    method public android.widget.ListView getListView();
-    method public void setButton(int, java.lang.CharSequence, android.os.Message);
-    method public void setButton(int, java.lang.CharSequence, android.content.DialogInterface.OnClickListener);
-    method public void setButton(int, java.lang.CharSequence, android.graphics.drawable.Drawable, android.content.DialogInterface.OnClickListener);
-    method public void setCustomTitle(android.view.View);
+    ctor protected AlertDialog(android.content.Context, @StyleRes int);
+    ctor protected AlertDialog(android.content.Context, boolean, android.content.DialogInterface.OnCancelListener?);
+    method public android.widget.Button! getButton(int);
+    method public android.widget.ListView! getListView();
+    method public void setButton(int, CharSequence!, android.os.Message!);
+    method public void setButton(int, CharSequence!, android.content.DialogInterface.OnClickListener!);
+    method public void setButton(int, CharSequence!, android.graphics.drawable.Drawable!, android.content.DialogInterface.OnClickListener!);
+    method public void setCustomTitle(android.view.View!);
     method public void setIcon(int);
-    method public void setIcon(android.graphics.drawable.Drawable);
+    method public void setIcon(android.graphics.drawable.Drawable!);
     method public void setIconAttribute(int);
-    method public void setMessage(java.lang.CharSequence);
-    method public void setView(android.view.View);
-    method public void setView(android.view.View, int, int, int, int);
+    method public void setMessage(CharSequence!);
+    method public void setView(android.view.View!);
+    method public void setView(android.view.View!, int, int, int, int);
   }
 
   public static class AlertDialog.Builder {
     ctor public AlertDialog.Builder(android.content.Context);
-    ctor public AlertDialog.Builder(android.content.Context, int);
+    ctor public AlertDialog.Builder(android.content.Context, @StyleRes int);
     method public androidx.appcompat.app.AlertDialog create();
     method public android.content.Context getContext();
-    method public androidx.appcompat.app.AlertDialog.Builder setAdapter(android.widget.ListAdapter, android.content.DialogInterface.OnClickListener);
-    method public androidx.appcompat.app.AlertDialog.Builder setCancelable(boolean);
-    method public androidx.appcompat.app.AlertDialog.Builder setCursor(android.database.Cursor, android.content.DialogInterface.OnClickListener, java.lang.String);
-    method public androidx.appcompat.app.AlertDialog.Builder setCustomTitle(android.view.View);
-    method public androidx.appcompat.app.AlertDialog.Builder setIcon(int);
-    method public androidx.appcompat.app.AlertDialog.Builder setIcon(android.graphics.drawable.Drawable);
-    method public androidx.appcompat.app.AlertDialog.Builder setIconAttribute(int);
-    method public deprecated androidx.appcompat.app.AlertDialog.Builder setInverseBackgroundForced(boolean);
-    method public androidx.appcompat.app.AlertDialog.Builder setItems(int, android.content.DialogInterface.OnClickListener);
-    method public androidx.appcompat.app.AlertDialog.Builder setItems(java.lang.CharSequence[], android.content.DialogInterface.OnClickListener);
-    method public androidx.appcompat.app.AlertDialog.Builder setMessage(int);
-    method public androidx.appcompat.app.AlertDialog.Builder setMessage(java.lang.CharSequence);
-    method public androidx.appcompat.app.AlertDialog.Builder setMultiChoiceItems(int, boolean[], android.content.DialogInterface.OnMultiChoiceClickListener);
-    method public androidx.appcompat.app.AlertDialog.Builder setMultiChoiceItems(java.lang.CharSequence[], boolean[], android.content.DialogInterface.OnMultiChoiceClickListener);
-    method public androidx.appcompat.app.AlertDialog.Builder setMultiChoiceItems(android.database.Cursor, java.lang.String, java.lang.String, android.content.DialogInterface.OnMultiChoiceClickListener);
-    method public androidx.appcompat.app.AlertDialog.Builder setNegativeButton(int, android.content.DialogInterface.OnClickListener);
-    method public androidx.appcompat.app.AlertDialog.Builder setNegativeButton(java.lang.CharSequence, android.content.DialogInterface.OnClickListener);
-    method public androidx.appcompat.app.AlertDialog.Builder setNegativeButtonIcon(android.graphics.drawable.Drawable);
-    method public androidx.appcompat.app.AlertDialog.Builder setNeutralButton(int, android.content.DialogInterface.OnClickListener);
-    method public androidx.appcompat.app.AlertDialog.Builder setNeutralButton(java.lang.CharSequence, android.content.DialogInterface.OnClickListener);
-    method public androidx.appcompat.app.AlertDialog.Builder setNeutralButtonIcon(android.graphics.drawable.Drawable);
-    method public androidx.appcompat.app.AlertDialog.Builder setOnCancelListener(android.content.DialogInterface.OnCancelListener);
-    method public androidx.appcompat.app.AlertDialog.Builder setOnDismissListener(android.content.DialogInterface.OnDismissListener);
-    method public androidx.appcompat.app.AlertDialog.Builder setOnItemSelectedListener(android.widget.AdapterView.OnItemSelectedListener);
-    method public androidx.appcompat.app.AlertDialog.Builder setOnKeyListener(android.content.DialogInterface.OnKeyListener);
-    method public androidx.appcompat.app.AlertDialog.Builder setPositiveButton(int, android.content.DialogInterface.OnClickListener);
-    method public androidx.appcompat.app.AlertDialog.Builder setPositiveButton(java.lang.CharSequence, android.content.DialogInterface.OnClickListener);
-    method public androidx.appcompat.app.AlertDialog.Builder setPositiveButtonIcon(android.graphics.drawable.Drawable);
-    method public androidx.appcompat.app.AlertDialog.Builder setSingleChoiceItems(int, int, android.content.DialogInterface.OnClickListener);
-    method public androidx.appcompat.app.AlertDialog.Builder setSingleChoiceItems(android.database.Cursor, int, java.lang.String, android.content.DialogInterface.OnClickListener);
-    method public androidx.appcompat.app.AlertDialog.Builder setSingleChoiceItems(java.lang.CharSequence[], int, android.content.DialogInterface.OnClickListener);
-    method public androidx.appcompat.app.AlertDialog.Builder setSingleChoiceItems(android.widget.ListAdapter, int, android.content.DialogInterface.OnClickListener);
-    method public androidx.appcompat.app.AlertDialog.Builder setTitle(int);
-    method public androidx.appcompat.app.AlertDialog.Builder setTitle(java.lang.CharSequence);
-    method public androidx.appcompat.app.AlertDialog.Builder setView(int);
-    method public androidx.appcompat.app.AlertDialog.Builder setView(android.view.View);
-    method public androidx.appcompat.app.AlertDialog show();
+    method public androidx.appcompat.app.AlertDialog.Builder! setAdapter(android.widget.ListAdapter!, android.content.DialogInterface.OnClickListener!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setCancelable(boolean);
+    method public androidx.appcompat.app.AlertDialog.Builder! setCursor(android.database.Cursor!, android.content.DialogInterface.OnClickListener!, String!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setCustomTitle(android.view.View?);
+    method public androidx.appcompat.app.AlertDialog.Builder! setIcon(@DrawableRes int);
+    method public androidx.appcompat.app.AlertDialog.Builder! setIcon(android.graphics.drawable.Drawable?);
+    method public androidx.appcompat.app.AlertDialog.Builder! setIconAttribute(@AttrRes int);
+    method @Deprecated public androidx.appcompat.app.AlertDialog.Builder! setInverseBackgroundForced(boolean);
+    method public androidx.appcompat.app.AlertDialog.Builder! setItems(@ArrayRes int, android.content.DialogInterface.OnClickListener!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setItems(CharSequence[]!, android.content.DialogInterface.OnClickListener!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setMessage(@StringRes int);
+    method public androidx.appcompat.app.AlertDialog.Builder! setMessage(CharSequence?);
+    method public androidx.appcompat.app.AlertDialog.Builder! setMultiChoiceItems(@ArrayRes int, boolean[]!, android.content.DialogInterface.OnMultiChoiceClickListener!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setMultiChoiceItems(CharSequence[]!, boolean[]!, android.content.DialogInterface.OnMultiChoiceClickListener!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setMultiChoiceItems(android.database.Cursor!, String!, String!, android.content.DialogInterface.OnMultiChoiceClickListener!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setNegativeButton(@StringRes int, android.content.DialogInterface.OnClickListener!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setNegativeButton(CharSequence!, android.content.DialogInterface.OnClickListener!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setNegativeButtonIcon(android.graphics.drawable.Drawable!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setNeutralButton(@StringRes int, android.content.DialogInterface.OnClickListener!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setNeutralButton(CharSequence!, android.content.DialogInterface.OnClickListener!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setNeutralButtonIcon(android.graphics.drawable.Drawable!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setOnCancelListener(android.content.DialogInterface.OnCancelListener!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setOnDismissListener(android.content.DialogInterface.OnDismissListener!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setOnItemSelectedListener(android.widget.AdapterView.OnItemSelectedListener!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setOnKeyListener(android.content.DialogInterface.OnKeyListener!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setPositiveButton(@StringRes int, android.content.DialogInterface.OnClickListener!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setPositiveButton(CharSequence!, android.content.DialogInterface.OnClickListener!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setPositiveButtonIcon(android.graphics.drawable.Drawable!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setSingleChoiceItems(@ArrayRes int, int, android.content.DialogInterface.OnClickListener!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setSingleChoiceItems(android.database.Cursor!, int, String!, android.content.DialogInterface.OnClickListener!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setSingleChoiceItems(CharSequence[]!, int, android.content.DialogInterface.OnClickListener!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setSingleChoiceItems(android.widget.ListAdapter!, int, android.content.DialogInterface.OnClickListener!);
+    method public androidx.appcompat.app.AlertDialog.Builder! setTitle(@StringRes int);
+    method public androidx.appcompat.app.AlertDialog.Builder! setTitle(CharSequence?);
+    method public androidx.appcompat.app.AlertDialog.Builder! setView(int);
+    method public androidx.appcompat.app.AlertDialog.Builder! setView(android.view.View!);
+    method public androidx.appcompat.app.AlertDialog! show();
   }
 
   public class AppCompatActivity extends androidx.fragment.app.FragmentActivity implements androidx.appcompat.app.ActionBarDrawerToggle.DelegateProvider androidx.appcompat.app.AppCompatCallback androidx.core.app.TaskStackBuilder.SupportParentable {
     ctor public AppCompatActivity();
     method public androidx.appcompat.app.AppCompatDelegate getDelegate();
-    method public androidx.appcompat.app.ActionBarDrawerToggle.Delegate getDrawerToggleDelegate();
-    method public androidx.appcompat.app.ActionBar getSupportActionBar();
-    method public android.content.Intent getSupportParentActivityIntent();
+    method public androidx.appcompat.app.ActionBarDrawerToggle.Delegate? getDrawerToggleDelegate();
+    method public androidx.appcompat.app.ActionBar? getSupportActionBar();
+    method public android.content.Intent? getSupportParentActivityIntent();
     method public void onCreateSupportNavigateUpTaskStack(androidx.core.app.TaskStackBuilder);
     method public final boolean onMenuItemSelected(int, android.view.MenuItem);
     method public void onPrepareSupportNavigateUpTaskStack(androidx.core.app.TaskStackBuilder);
-    method public void onSupportActionModeFinished(androidx.appcompat.view.ActionMode);
-    method public void onSupportActionModeStarted(androidx.appcompat.view.ActionMode);
-    method public deprecated void onSupportContentChanged();
+    method @CallSuper public void onSupportActionModeFinished(androidx.appcompat.view.ActionMode);
+    method @CallSuper public void onSupportActionModeStarted(androidx.appcompat.view.ActionMode);
+    method @Deprecated public void onSupportContentChanged();
     method public boolean onSupportNavigateUp();
-    method public androidx.appcompat.view.ActionMode onWindowStartingSupportActionMode(androidx.appcompat.view.ActionMode.Callback);
-    method public void setSupportActionBar(androidx.appcompat.widget.Toolbar);
-    method public deprecated void setSupportProgress(int);
-    method public deprecated void setSupportProgressBarIndeterminate(boolean);
-    method public deprecated void setSupportProgressBarIndeterminateVisibility(boolean);
-    method public deprecated void setSupportProgressBarVisibility(boolean);
-    method public androidx.appcompat.view.ActionMode startSupportActionMode(androidx.appcompat.view.ActionMode.Callback);
+    method public androidx.appcompat.view.ActionMode? onWindowStartingSupportActionMode(androidx.appcompat.view.ActionMode.Callback);
+    method public void setSupportActionBar(androidx.appcompat.widget.Toolbar?);
+    method @Deprecated public void setSupportProgress(int);
+    method @Deprecated public void setSupportProgressBarIndeterminate(boolean);
+    method @Deprecated public void setSupportProgressBarIndeterminateVisibility(boolean);
+    method @Deprecated public void setSupportProgressBarVisibility(boolean);
+    method public androidx.appcompat.view.ActionMode? startSupportActionMode(androidx.appcompat.view.ActionMode.Callback);
     method public void supportInvalidateOptionsMenu();
     method public void supportNavigateUpTo(android.content.Intent);
     method public boolean supportRequestWindowFeature(int);
     method public boolean supportShouldUpRecreateTask(android.content.Intent);
   }
 
-  public abstract interface AppCompatCallback {
-    method public abstract void onSupportActionModeFinished(androidx.appcompat.view.ActionMode);
-    method public abstract void onSupportActionModeStarted(androidx.appcompat.view.ActionMode);
-    method public abstract androidx.appcompat.view.ActionMode onWindowStartingSupportActionMode(androidx.appcompat.view.ActionMode.Callback);
+  public interface AppCompatCallback {
+    method public void onSupportActionModeFinished(androidx.appcompat.view.ActionMode!);
+    method public void onSupportActionModeStarted(androidx.appcompat.view.ActionMode!);
+    method public androidx.appcompat.view.ActionMode? onWindowStartingSupportActionMode(androidx.appcompat.view.ActionMode.Callback!);
   }
 
   public abstract class AppCompatDelegate {
-    method public abstract void addContentView(android.view.View, android.view.ViewGroup.LayoutParams);
+    method public abstract void addContentView(android.view.View!, android.view.ViewGroup.LayoutParams!);
     method public abstract boolean applyDayNight();
-    method public static androidx.appcompat.app.AppCompatDelegate create(android.app.Activity, androidx.appcompat.app.AppCompatCallback);
-    method public static androidx.appcompat.app.AppCompatDelegate create(android.app.Dialog, androidx.appcompat.app.AppCompatCallback);
-    method public static androidx.appcompat.app.AppCompatDelegate create(android.content.Context, android.view.Window, androidx.appcompat.app.AppCompatCallback);
-    method public abstract android.view.View createView(android.view.View, java.lang.String, android.content.Context, android.util.AttributeSet);
-    method public abstract <T extends android.view.View> T findViewById(int);
+    method public static androidx.appcompat.app.AppCompatDelegate! create(android.app.Activity!, androidx.appcompat.app.AppCompatCallback!);
+    method public static androidx.appcompat.app.AppCompatDelegate! create(android.app.Dialog!, androidx.appcompat.app.AppCompatCallback!);
+    method public static androidx.appcompat.app.AppCompatDelegate! create(android.content.Context!, android.view.Window!, androidx.appcompat.app.AppCompatCallback!);
+    method public abstract android.view.View! createView(android.view.View?, String!, android.content.Context, android.util.AttributeSet);
+    method public abstract <T extends android.view.View> T! findViewById(@IdRes int);
     method public static int getDefaultNightMode();
-    method public abstract androidx.appcompat.app.ActionBarDrawerToggle.Delegate getDrawerToggleDelegate();
-    method public abstract android.view.MenuInflater getMenuInflater();
-    method public abstract androidx.appcompat.app.ActionBar getSupportActionBar();
+    method public abstract androidx.appcompat.app.ActionBarDrawerToggle.Delegate? getDrawerToggleDelegate();
+    method public abstract android.view.MenuInflater! getMenuInflater();
+    method public abstract androidx.appcompat.app.ActionBar? getSupportActionBar();
     method public abstract boolean hasWindowFeature(int);
     method public abstract void installViewFactory();
     method public abstract void invalidateOptionsMenu();
     method public static boolean isCompatVectorFromResourcesEnabled();
     method public abstract boolean isHandleNativeActionModesEnabled();
-    method public abstract void onConfigurationChanged(android.content.res.Configuration);
-    method public abstract void onCreate(android.os.Bundle);
+    method public abstract void onConfigurationChanged(android.content.res.Configuration!);
+    method public abstract void onCreate(android.os.Bundle!);
     method public abstract void onDestroy();
-    method public abstract void onPostCreate(android.os.Bundle);
+    method public abstract void onPostCreate(android.os.Bundle!);
     method public abstract void onPostResume();
-    method public abstract void onSaveInstanceState(android.os.Bundle);
+    method public abstract void onSaveInstanceState(android.os.Bundle!);
     method public abstract void onStart();
     method public abstract void onStop();
     method public abstract boolean requestWindowFeature(int);
     method public static void setCompatVectorFromResourcesEnabled(boolean);
-    method public abstract void setContentView(android.view.View);
-    method public abstract void setContentView(int);
-    method public abstract void setContentView(android.view.View, android.view.ViewGroup.LayoutParams);
+    method public abstract void setContentView(android.view.View!);
+    method public abstract void setContentView(@LayoutRes int);
+    method public abstract void setContentView(android.view.View!, android.view.ViewGroup.LayoutParams!);
     method public static void setDefaultNightMode(int);
     method public abstract void setHandleNativeActionModesEnabled(boolean);
     method public abstract void setLocalNightMode(int);
-    method public abstract void setSupportActionBar(androidx.appcompat.widget.Toolbar);
-    method public abstract void setTitle(java.lang.CharSequence);
-    method public abstract androidx.appcompat.view.ActionMode startSupportActionMode(androidx.appcompat.view.ActionMode.Callback);
+    method public abstract void setSupportActionBar(androidx.appcompat.widget.Toolbar?);
+    method public abstract void setTitle(CharSequence?);
+    method public abstract androidx.appcompat.view.ActionMode? startSupportActionMode(androidx.appcompat.view.ActionMode.Callback);
     field public static final int FEATURE_ACTION_MODE_OVERLAY = 10; // 0xa
     field public static final int FEATURE_SUPPORT_ACTION_BAR = 108; // 0x6c
     field public static final int FEATURE_SUPPORT_ACTION_BAR_OVERLAY = 109; // 0x6d
@@ -293,14 +294,14 @@
   }
 
   public class AppCompatDialog extends android.app.Dialog implements androidx.appcompat.app.AppCompatCallback {
-    ctor public AppCompatDialog(android.content.Context);
-    ctor public AppCompatDialog(android.content.Context, int);
-    ctor protected AppCompatDialog(android.content.Context, boolean, android.content.DialogInterface.OnCancelListener);
-    method public androidx.appcompat.app.AppCompatDelegate getDelegate();
-    method public androidx.appcompat.app.ActionBar getSupportActionBar();
-    method public void onSupportActionModeFinished(androidx.appcompat.view.ActionMode);
-    method public void onSupportActionModeStarted(androidx.appcompat.view.ActionMode);
-    method public androidx.appcompat.view.ActionMode onWindowStartingSupportActionMode(androidx.appcompat.view.ActionMode.Callback);
+    ctor public AppCompatDialog(android.content.Context!);
+    ctor public AppCompatDialog(android.content.Context!, int);
+    ctor protected AppCompatDialog(android.content.Context!, boolean, android.content.DialogInterface.OnCancelListener!);
+    method public androidx.appcompat.app.AppCompatDelegate! getDelegate();
+    method public androidx.appcompat.app.ActionBar! getSupportActionBar();
+    method public void onSupportActionModeFinished(androidx.appcompat.view.ActionMode!);
+    method public void onSupportActionModeStarted(androidx.appcompat.view.ActionMode!);
+    method public androidx.appcompat.view.ActionMode? onWindowStartingSupportActionMode(androidx.appcompat.view.ActionMode.Callback!);
     method public boolean supportRequestWindowFeature(int);
   }
 
@@ -310,20 +311,20 @@
 
   public class AppCompatViewInflater {
     ctor public AppCompatViewInflater();
-    method protected androidx.appcompat.widget.AppCompatAutoCompleteTextView createAutoCompleteTextView(android.content.Context, android.util.AttributeSet);
-    method protected androidx.appcompat.widget.AppCompatButton createButton(android.content.Context, android.util.AttributeSet);
-    method protected androidx.appcompat.widget.AppCompatCheckBox createCheckBox(android.content.Context, android.util.AttributeSet);
-    method protected androidx.appcompat.widget.AppCompatCheckedTextView createCheckedTextView(android.content.Context, android.util.AttributeSet);
-    method protected androidx.appcompat.widget.AppCompatEditText createEditText(android.content.Context, android.util.AttributeSet);
-    method protected androidx.appcompat.widget.AppCompatImageButton createImageButton(android.content.Context, android.util.AttributeSet);
-    method protected androidx.appcompat.widget.AppCompatImageView createImageView(android.content.Context, android.util.AttributeSet);
-    method protected androidx.appcompat.widget.AppCompatMultiAutoCompleteTextView createMultiAutoCompleteTextView(android.content.Context, android.util.AttributeSet);
-    method protected androidx.appcompat.widget.AppCompatRadioButton createRadioButton(android.content.Context, android.util.AttributeSet);
-    method protected androidx.appcompat.widget.AppCompatRatingBar createRatingBar(android.content.Context, android.util.AttributeSet);
-    method protected androidx.appcompat.widget.AppCompatSeekBar createSeekBar(android.content.Context, android.util.AttributeSet);
-    method protected androidx.appcompat.widget.AppCompatSpinner createSpinner(android.content.Context, android.util.AttributeSet);
-    method protected androidx.appcompat.widget.AppCompatTextView createTextView(android.content.Context, android.util.AttributeSet);
-    method protected android.view.View createView(android.content.Context, java.lang.String, android.util.AttributeSet);
+    method protected androidx.appcompat.widget.AppCompatAutoCompleteTextView createAutoCompleteTextView(android.content.Context!, android.util.AttributeSet!);
+    method protected androidx.appcompat.widget.AppCompatButton createButton(android.content.Context!, android.util.AttributeSet!);
+    method protected androidx.appcompat.widget.AppCompatCheckBox createCheckBox(android.content.Context!, android.util.AttributeSet!);
+    method protected androidx.appcompat.widget.AppCompatCheckedTextView createCheckedTextView(android.content.Context!, android.util.AttributeSet!);
+    method protected androidx.appcompat.widget.AppCompatEditText createEditText(android.content.Context!, android.util.AttributeSet!);
+    method protected androidx.appcompat.widget.AppCompatImageButton createImageButton(android.content.Context!, android.util.AttributeSet!);
+    method protected androidx.appcompat.widget.AppCompatImageView createImageView(android.content.Context!, android.util.AttributeSet!);
+    method protected androidx.appcompat.widget.AppCompatMultiAutoCompleteTextView createMultiAutoCompleteTextView(android.content.Context!, android.util.AttributeSet!);
+    method protected androidx.appcompat.widget.AppCompatRadioButton createRadioButton(android.content.Context!, android.util.AttributeSet!);
+    method protected androidx.appcompat.widget.AppCompatRatingBar createRatingBar(android.content.Context!, android.util.AttributeSet!);
+    method protected androidx.appcompat.widget.AppCompatSeekBar createSeekBar(android.content.Context!, android.util.AttributeSet!);
+    method protected androidx.appcompat.widget.AppCompatSpinner createSpinner(android.content.Context!, android.util.AttributeSet!);
+    method protected androidx.appcompat.widget.AppCompatTextView createTextView(android.content.Context!, android.util.AttributeSet!);
+    method protected android.view.View? createView(android.content.Context!, String!, android.util.AttributeSet!);
   }
 
 }
@@ -331,8 +332,8 @@
 package androidx.appcompat.content.res {
 
   public final class AppCompatResources {
-    method public static android.content.res.ColorStateList getColorStateList(android.content.Context, int);
-    method public static android.graphics.drawable.Drawable getDrawable(android.content.Context, int);
+    method public static android.content.res.ColorStateList! getColorStateList(android.content.Context, @ColorRes int);
+    method public static android.graphics.drawable.Drawable? getDrawable(android.content.Context, @DrawableRes int);
   }
 
 }
@@ -343,36 +344,36 @@
     ctor public AnimatedStateListDrawableCompat();
     method public void addState(int[], android.graphics.drawable.Drawable, int);
     method public <T extends android.graphics.drawable.Drawable & android.graphics.drawable.Animatable> void addTransition(int, int, T, boolean);
-    method public static androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat create(android.content.Context, int, android.content.res.Resources.Theme);
-    method public static androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat createFromXmlInner(android.content.Context, android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet, android.content.res.Resources.Theme) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
-    method public void inflate(android.content.Context, android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet, android.content.res.Resources.Theme) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method public static androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat? create(android.content.Context, @DrawableRes int, android.content.res.Resources.Theme?);
+    method public static androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat! createFromXmlInner(android.content.Context, android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet, android.content.res.Resources.Theme?) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method public void inflate(android.content.Context, android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet, android.content.res.Resources.Theme?) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
     method protected void setConstantState(androidx.appcompat.graphics.drawable.DrawableContainer.DrawableContainerState);
   }
 
   public class DrawerArrowDrawable extends android.graphics.drawable.Drawable {
-    ctor public DrawerArrowDrawable(android.content.Context);
-    method public void draw(android.graphics.Canvas);
+    ctor public DrawerArrowDrawable(android.content.Context!);
+    method public void draw(android.graphics.Canvas!);
     method public float getArrowHeadLength();
     method public float getArrowShaftLength();
     method public float getBarLength();
     method public float getBarThickness();
-    method public int getColor();
+    method @ColorInt public int getColor();
     method public int getDirection();
     method public float getGapSize();
     method public int getOpacity();
-    method public final android.graphics.Paint getPaint();
-    method public float getProgress();
+    method public final android.graphics.Paint! getPaint();
+    method @FloatRange(from=0.0, to=1.0) public float getProgress();
     method public boolean isSpinEnabled();
     method public void setAlpha(int);
     method public void setArrowHeadLength(float);
     method public void setArrowShaftLength(float);
     method public void setBarLength(float);
     method public void setBarThickness(float);
-    method public void setColor(int);
-    method public void setColorFilter(android.graphics.ColorFilter);
+    method public void setColor(@ColorInt int);
+    method public void setColorFilter(android.graphics.ColorFilter!);
     method public void setDirection(int);
     method public void setGapSize(float);
-    method public void setProgress(float);
+    method public void setProgress(@FloatRange(from=0.0, to=1.0) float);
     method public void setSpinEnabled(boolean);
     method public void setVerticalMirror(boolean);
     field public static final int ARROW_DIRECTION_END = 3; // 0x3
@@ -388,43 +389,43 @@
   public abstract class ActionMode {
     ctor public ActionMode();
     method public abstract void finish();
-    method public abstract android.view.View getCustomView();
-    method public abstract android.view.Menu getMenu();
-    method public abstract android.view.MenuInflater getMenuInflater();
-    method public abstract java.lang.CharSequence getSubtitle();
-    method public java.lang.Object getTag();
-    method public abstract java.lang.CharSequence getTitle();
+    method public abstract android.view.View! getCustomView();
+    method public abstract android.view.Menu! getMenu();
+    method public abstract android.view.MenuInflater! getMenuInflater();
+    method public abstract CharSequence! getSubtitle();
+    method public Object! getTag();
+    method public abstract CharSequence! getTitle();
     method public boolean getTitleOptionalHint();
     method public abstract void invalidate();
     method public boolean isTitleOptional();
-    method public abstract void setCustomView(android.view.View);
-    method public abstract void setSubtitle(java.lang.CharSequence);
+    method public abstract void setCustomView(android.view.View!);
+    method public abstract void setSubtitle(CharSequence!);
     method public abstract void setSubtitle(int);
-    method public void setTag(java.lang.Object);
-    method public abstract void setTitle(java.lang.CharSequence);
+    method public void setTag(Object!);
+    method public abstract void setTitle(CharSequence!);
     method public abstract void setTitle(int);
     method public void setTitleOptionalHint(boolean);
   }
 
-  public static abstract interface ActionMode.Callback {
-    method public abstract boolean onActionItemClicked(androidx.appcompat.view.ActionMode, android.view.MenuItem);
-    method public abstract boolean onCreateActionMode(androidx.appcompat.view.ActionMode, android.view.Menu);
-    method public abstract void onDestroyActionMode(androidx.appcompat.view.ActionMode);
-    method public abstract boolean onPrepareActionMode(androidx.appcompat.view.ActionMode, android.view.Menu);
+  public static interface ActionMode.Callback {
+    method public boolean onActionItemClicked(androidx.appcompat.view.ActionMode!, android.view.MenuItem!);
+    method public boolean onCreateActionMode(androidx.appcompat.view.ActionMode!, android.view.Menu!);
+    method public void onDestroyActionMode(androidx.appcompat.view.ActionMode!);
+    method public boolean onPrepareActionMode(androidx.appcompat.view.ActionMode!, android.view.Menu!);
   }
 
-  public abstract interface CollapsibleActionView {
-    method public abstract void onActionViewCollapsed();
-    method public abstract void onActionViewExpanded();
+  public interface CollapsibleActionView {
+    method public void onActionViewCollapsed();
+    method public void onActionViewExpanded();
   }
 
   public class ContextThemeWrapper extends android.content.ContextWrapper {
     ctor public ContextThemeWrapper();
-    ctor public ContextThemeWrapper(android.content.Context, int);
-    ctor public ContextThemeWrapper(android.content.Context, android.content.res.Resources.Theme);
-    method public void applyOverrideConfiguration(android.content.res.Configuration);
+    ctor public ContextThemeWrapper(android.content.Context!, @StyleRes int);
+    ctor public ContextThemeWrapper(android.content.Context!, android.content.res.Resources.Theme!);
+    method public void applyOverrideConfiguration(android.content.res.Configuration!);
     method public int getThemeResId();
-    method protected void onApplyThemeResource(android.content.res.Resources.Theme, int, boolean);
+    method protected void onApplyThemeResource(android.content.res.Resources.Theme!, int, boolean);
   }
 
 }
@@ -432,202 +433,202 @@
 package androidx.appcompat.widget {
 
   public class ActionMenuView extends androidx.appcompat.widget.LinearLayoutCompat {
-    ctor public ActionMenuView(android.content.Context);
-    ctor public ActionMenuView(android.content.Context, android.util.AttributeSet);
+    ctor public ActionMenuView(android.content.Context!);
+    ctor public ActionMenuView(android.content.Context!, android.util.AttributeSet!);
     method public void dismissPopupMenus();
-    method protected androidx.appcompat.widget.ActionMenuView.LayoutParams generateDefaultLayoutParams();
-    method public androidx.appcompat.widget.ActionMenuView.LayoutParams generateLayoutParams(android.util.AttributeSet);
-    method protected androidx.appcompat.widget.ActionMenuView.LayoutParams generateLayoutParams(android.view.ViewGroup.LayoutParams);
-    method public android.view.Menu getMenu();
-    method public android.graphics.drawable.Drawable getOverflowIcon();
+    method protected androidx.appcompat.widget.ActionMenuView.LayoutParams! generateDefaultLayoutParams();
+    method public androidx.appcompat.widget.ActionMenuView.LayoutParams! generateLayoutParams(android.util.AttributeSet!);
+    method protected androidx.appcompat.widget.ActionMenuView.LayoutParams! generateLayoutParams(android.view.ViewGroup.LayoutParams!);
+    method public android.view.Menu! getMenu();
+    method public android.graphics.drawable.Drawable? getOverflowIcon();
     method public int getPopupTheme();
     method public boolean hideOverflowMenu();
     method public boolean isOverflowMenuShowing();
-    method public void onConfigurationChanged(android.content.res.Configuration);
+    method public void onConfigurationChanged(android.content.res.Configuration!);
     method public void onDetachedFromWindow();
-    method public void setOnMenuItemClickListener(androidx.appcompat.widget.ActionMenuView.OnMenuItemClickListener);
-    method public void setOverflowIcon(android.graphics.drawable.Drawable);
-    method public void setPopupTheme(int);
+    method public void setOnMenuItemClickListener(androidx.appcompat.widget.ActionMenuView.OnMenuItemClickListener!);
+    method public void setOverflowIcon(android.graphics.drawable.Drawable?);
+    method public void setPopupTheme(@StyleRes int);
     method public boolean showOverflowMenu();
   }
 
   public static class ActionMenuView.LayoutParams extends androidx.appcompat.widget.LinearLayoutCompat.LayoutParams {
-    ctor public ActionMenuView.LayoutParams(android.content.Context, android.util.AttributeSet);
-    ctor public ActionMenuView.LayoutParams(android.view.ViewGroup.LayoutParams);
-    ctor public ActionMenuView.LayoutParams(androidx.appcompat.widget.ActionMenuView.LayoutParams);
+    ctor public ActionMenuView.LayoutParams(android.content.Context!, android.util.AttributeSet!);
+    ctor public ActionMenuView.LayoutParams(android.view.ViewGroup.LayoutParams!);
+    ctor public ActionMenuView.LayoutParams(androidx.appcompat.widget.ActionMenuView.LayoutParams!);
     ctor public ActionMenuView.LayoutParams(int, int);
-    field public int cellsUsed;
-    field public boolean expandable;
-    field public int extraPixels;
-    field public boolean isOverflowButton;
-    field public boolean preventEdgeOffset;
+    field @android.view.ViewDebug.ExportedProperty public int cellsUsed;
+    field @android.view.ViewDebug.ExportedProperty public boolean expandable;
+    field @android.view.ViewDebug.ExportedProperty public int extraPixels;
+    field @android.view.ViewDebug.ExportedProperty public boolean isOverflowButton;
+    field @android.view.ViewDebug.ExportedProperty public boolean preventEdgeOffset;
   }
 
-  public static abstract interface ActionMenuView.OnMenuItemClickListener {
-    method public abstract boolean onMenuItemClick(android.view.MenuItem);
+  public static interface ActionMenuView.OnMenuItemClickListener {
+    method public boolean onMenuItemClick(android.view.MenuItem!);
   }
 
   public class AppCompatAutoCompleteTextView extends android.widget.AutoCompleteTextView implements androidx.core.view.TintableBackgroundView {
-    ctor public AppCompatAutoCompleteTextView(android.content.Context);
-    ctor public AppCompatAutoCompleteTextView(android.content.Context, android.util.AttributeSet);
-    ctor public AppCompatAutoCompleteTextView(android.content.Context, android.util.AttributeSet, int);
-    method public android.content.res.ColorStateList getSupportBackgroundTintList();
-    method public android.graphics.PorterDuff.Mode getSupportBackgroundTintMode();
-    method public void setBackgroundDrawable(android.graphics.drawable.Drawable);
-    method public void setSupportBackgroundTintList(android.content.res.ColorStateList);
-    method public void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode);
-    method public void setTextAppearance(android.content.Context, int);
+    ctor public AppCompatAutoCompleteTextView(android.content.Context!);
+    ctor public AppCompatAutoCompleteTextView(android.content.Context!, android.util.AttributeSet!);
+    ctor public AppCompatAutoCompleteTextView(android.content.Context!, android.util.AttributeSet!, int);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.content.res.ColorStateList? getSupportBackgroundTintList();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.graphics.PorterDuff.Mode? getSupportBackgroundTintMode();
+    method public void setBackgroundDrawable(android.graphics.drawable.Drawable!);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportBackgroundTintList(android.content.res.ColorStateList?);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode?);
+    method public void setTextAppearance(android.content.Context!, int);
   }
 
   public class AppCompatButton extends android.widget.Button implements androidx.core.widget.AutoSizeableTextView androidx.core.view.TintableBackgroundView {
-    ctor public AppCompatButton(android.content.Context);
-    ctor public AppCompatButton(android.content.Context, android.util.AttributeSet);
-    ctor public AppCompatButton(android.content.Context, android.util.AttributeSet, int);
-    method public android.content.res.ColorStateList getSupportBackgroundTintList();
-    method public android.graphics.PorterDuff.Mode getSupportBackgroundTintMode();
-    method public void setAutoSizeTextTypeUniformWithConfiguration(int, int, int, int) throws java.lang.IllegalArgumentException;
-    method public void setAutoSizeTextTypeUniformWithPresetSizes(int[], int) throws java.lang.IllegalArgumentException;
-    method public void setBackgroundDrawable(android.graphics.drawable.Drawable);
+    ctor public AppCompatButton(android.content.Context!);
+    ctor public AppCompatButton(android.content.Context!, android.util.AttributeSet!);
+    ctor public AppCompatButton(android.content.Context!, android.util.AttributeSet!, int);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.content.res.ColorStateList? getSupportBackgroundTintList();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.graphics.PorterDuff.Mode? getSupportBackgroundTintMode();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setAutoSizeTextTypeUniformWithConfiguration(int, int, int, int) throws java.lang.IllegalArgumentException;
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setAutoSizeTextTypeUniformWithPresetSizes(int[], int) throws java.lang.IllegalArgumentException;
+    method public void setBackgroundDrawable(android.graphics.drawable.Drawable!);
     method public void setSupportAllCaps(boolean);
-    method public void setSupportBackgroundTintList(android.content.res.ColorStateList);
-    method public void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode);
-    method public void setTextAppearance(android.content.Context, int);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportBackgroundTintList(android.content.res.ColorStateList?);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode?);
+    method public void setTextAppearance(android.content.Context!, int);
   }
 
   public class AppCompatCheckBox extends android.widget.CheckBox implements androidx.core.widget.TintableCompoundButton {
-    ctor public AppCompatCheckBox(android.content.Context);
-    ctor public AppCompatCheckBox(android.content.Context, android.util.AttributeSet);
-    ctor public AppCompatCheckBox(android.content.Context, android.util.AttributeSet, int);
-    method public android.content.res.ColorStateList getSupportButtonTintList();
-    method public android.graphics.PorterDuff.Mode getSupportButtonTintMode();
-    method public void setSupportButtonTintList(android.content.res.ColorStateList);
-    method public void setSupportButtonTintMode(android.graphics.PorterDuff.Mode);
+    ctor public AppCompatCheckBox(android.content.Context!);
+    ctor public AppCompatCheckBox(android.content.Context!, android.util.AttributeSet!);
+    ctor public AppCompatCheckBox(android.content.Context!, android.util.AttributeSet!, int);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.content.res.ColorStateList? getSupportButtonTintList();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.graphics.PorterDuff.Mode? getSupportButtonTintMode();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportButtonTintList(android.content.res.ColorStateList?);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportButtonTintMode(android.graphics.PorterDuff.Mode?);
   }
 
   public class AppCompatCheckedTextView extends android.widget.CheckedTextView {
-    ctor public AppCompatCheckedTextView(android.content.Context);
-    ctor public AppCompatCheckedTextView(android.content.Context, android.util.AttributeSet);
-    ctor public AppCompatCheckedTextView(android.content.Context, android.util.AttributeSet, int);
-    method public void setTextAppearance(android.content.Context, int);
+    ctor public AppCompatCheckedTextView(android.content.Context!);
+    ctor public AppCompatCheckedTextView(android.content.Context!, android.util.AttributeSet!);
+    ctor public AppCompatCheckedTextView(android.content.Context!, android.util.AttributeSet!, int);
+    method public void setTextAppearance(android.content.Context!, int);
   }
 
   public class AppCompatEditText extends android.widget.EditText implements androidx.core.view.TintableBackgroundView {
-    ctor public AppCompatEditText(android.content.Context);
-    ctor public AppCompatEditText(android.content.Context, android.util.AttributeSet);
-    ctor public AppCompatEditText(android.content.Context, android.util.AttributeSet, int);
-    method public android.content.res.ColorStateList getSupportBackgroundTintList();
-    method public android.graphics.PorterDuff.Mode getSupportBackgroundTintMode();
-    method public void setBackgroundDrawable(android.graphics.drawable.Drawable);
-    method public void setSupportBackgroundTintList(android.content.res.ColorStateList);
-    method public void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode);
-    method public void setTextAppearance(android.content.Context, int);
+    ctor public AppCompatEditText(android.content.Context!);
+    ctor public AppCompatEditText(android.content.Context!, android.util.AttributeSet!);
+    ctor public AppCompatEditText(android.content.Context!, android.util.AttributeSet!, int);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.content.res.ColorStateList? getSupportBackgroundTintList();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.graphics.PorterDuff.Mode? getSupportBackgroundTintMode();
+    method public void setBackgroundDrawable(android.graphics.drawable.Drawable!);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportBackgroundTintList(android.content.res.ColorStateList?);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode?);
+    method public void setTextAppearance(android.content.Context!, int);
   }
 
   public class AppCompatImageButton extends android.widget.ImageButton implements androidx.core.view.TintableBackgroundView androidx.core.widget.TintableImageSourceView {
-    ctor public AppCompatImageButton(android.content.Context);
-    ctor public AppCompatImageButton(android.content.Context, android.util.AttributeSet);
-    ctor public AppCompatImageButton(android.content.Context, android.util.AttributeSet, int);
-    method public android.content.res.ColorStateList getSupportBackgroundTintList();
-    method public android.graphics.PorterDuff.Mode getSupportBackgroundTintMode();
-    method public android.content.res.ColorStateList getSupportImageTintList();
-    method public android.graphics.PorterDuff.Mode getSupportImageTintMode();
-    method public void setBackgroundDrawable(android.graphics.drawable.Drawable);
-    method public void setSupportBackgroundTintList(android.content.res.ColorStateList);
-    method public void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode);
-    method public void setSupportImageTintList(android.content.res.ColorStateList);
-    method public void setSupportImageTintMode(android.graphics.PorterDuff.Mode);
+    ctor public AppCompatImageButton(android.content.Context!);
+    ctor public AppCompatImageButton(android.content.Context!, android.util.AttributeSet!);
+    ctor public AppCompatImageButton(android.content.Context!, android.util.AttributeSet!, int);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.content.res.ColorStateList? getSupportBackgroundTintList();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.graphics.PorterDuff.Mode? getSupportBackgroundTintMode();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.content.res.ColorStateList? getSupportImageTintList();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.graphics.PorterDuff.Mode? getSupportImageTintMode();
+    method public void setBackgroundDrawable(android.graphics.drawable.Drawable!);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportBackgroundTintList(android.content.res.ColorStateList?);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode?);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportImageTintList(android.content.res.ColorStateList?);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportImageTintMode(android.graphics.PorterDuff.Mode?);
   }
 
   public class AppCompatImageView extends android.widget.ImageView implements androidx.core.view.TintableBackgroundView androidx.core.widget.TintableImageSourceView {
-    ctor public AppCompatImageView(android.content.Context);
-    ctor public AppCompatImageView(android.content.Context, android.util.AttributeSet);
-    ctor public AppCompatImageView(android.content.Context, android.util.AttributeSet, int);
-    method public android.content.res.ColorStateList getSupportBackgroundTintList();
-    method public android.graphics.PorterDuff.Mode getSupportBackgroundTintMode();
-    method public android.content.res.ColorStateList getSupportImageTintList();
-    method public android.graphics.PorterDuff.Mode getSupportImageTintMode();
-    method public void setBackgroundDrawable(android.graphics.drawable.Drawable);
-    method public void setSupportBackgroundTintList(android.content.res.ColorStateList);
-    method public void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode);
-    method public void setSupportImageTintList(android.content.res.ColorStateList);
-    method public void setSupportImageTintMode(android.graphics.PorterDuff.Mode);
+    ctor public AppCompatImageView(android.content.Context!);
+    ctor public AppCompatImageView(android.content.Context!, android.util.AttributeSet!);
+    ctor public AppCompatImageView(android.content.Context!, android.util.AttributeSet!, int);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.content.res.ColorStateList? getSupportBackgroundTintList();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.graphics.PorterDuff.Mode? getSupportBackgroundTintMode();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.content.res.ColorStateList? getSupportImageTintList();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.graphics.PorterDuff.Mode? getSupportImageTintMode();
+    method public void setBackgroundDrawable(android.graphics.drawable.Drawable!);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportBackgroundTintList(android.content.res.ColorStateList?);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode?);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportImageTintList(android.content.res.ColorStateList?);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportImageTintMode(android.graphics.PorterDuff.Mode?);
   }
 
   public class AppCompatMultiAutoCompleteTextView extends android.widget.MultiAutoCompleteTextView implements androidx.core.view.TintableBackgroundView {
-    ctor public AppCompatMultiAutoCompleteTextView(android.content.Context);
-    ctor public AppCompatMultiAutoCompleteTextView(android.content.Context, android.util.AttributeSet);
-    ctor public AppCompatMultiAutoCompleteTextView(android.content.Context, android.util.AttributeSet, int);
-    method public android.content.res.ColorStateList getSupportBackgroundTintList();
-    method public android.graphics.PorterDuff.Mode getSupportBackgroundTintMode();
-    method public void setBackgroundDrawable(android.graphics.drawable.Drawable);
-    method public void setSupportBackgroundTintList(android.content.res.ColorStateList);
-    method public void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode);
-    method public void setTextAppearance(android.content.Context, int);
+    ctor public AppCompatMultiAutoCompleteTextView(android.content.Context!);
+    ctor public AppCompatMultiAutoCompleteTextView(android.content.Context!, android.util.AttributeSet!);
+    ctor public AppCompatMultiAutoCompleteTextView(android.content.Context!, android.util.AttributeSet!, int);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.content.res.ColorStateList? getSupportBackgroundTintList();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.graphics.PorterDuff.Mode? getSupportBackgroundTintMode();
+    method public void setBackgroundDrawable(android.graphics.drawable.Drawable!);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportBackgroundTintList(android.content.res.ColorStateList?);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode?);
+    method public void setTextAppearance(android.content.Context!, int);
   }
 
   public class AppCompatRadioButton extends android.widget.RadioButton implements androidx.core.widget.TintableCompoundButton {
-    ctor public AppCompatRadioButton(android.content.Context);
-    ctor public AppCompatRadioButton(android.content.Context, android.util.AttributeSet);
-    ctor public AppCompatRadioButton(android.content.Context, android.util.AttributeSet, int);
-    method public android.content.res.ColorStateList getSupportButtonTintList();
-    method public android.graphics.PorterDuff.Mode getSupportButtonTintMode();
-    method public void setSupportButtonTintList(android.content.res.ColorStateList);
-    method public void setSupportButtonTintMode(android.graphics.PorterDuff.Mode);
+    ctor public AppCompatRadioButton(android.content.Context!);
+    ctor public AppCompatRadioButton(android.content.Context!, android.util.AttributeSet!);
+    ctor public AppCompatRadioButton(android.content.Context!, android.util.AttributeSet!, int);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.content.res.ColorStateList? getSupportButtonTintList();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.graphics.PorterDuff.Mode? getSupportButtonTintMode();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportButtonTintList(android.content.res.ColorStateList?);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportButtonTintMode(android.graphics.PorterDuff.Mode?);
   }
 
   public class AppCompatRatingBar extends android.widget.RatingBar {
-    ctor public AppCompatRatingBar(android.content.Context);
-    ctor public AppCompatRatingBar(android.content.Context, android.util.AttributeSet);
-    ctor public AppCompatRatingBar(android.content.Context, android.util.AttributeSet, int);
+    ctor public AppCompatRatingBar(android.content.Context!);
+    ctor public AppCompatRatingBar(android.content.Context!, android.util.AttributeSet!);
+    ctor public AppCompatRatingBar(android.content.Context!, android.util.AttributeSet!, int);
   }
 
   public class AppCompatSeekBar extends android.widget.SeekBar {
-    ctor public AppCompatSeekBar(android.content.Context);
-    ctor public AppCompatSeekBar(android.content.Context, android.util.AttributeSet);
-    ctor public AppCompatSeekBar(android.content.Context, android.util.AttributeSet, int);
+    ctor public AppCompatSeekBar(android.content.Context!);
+    ctor public AppCompatSeekBar(android.content.Context!, android.util.AttributeSet!);
+    ctor public AppCompatSeekBar(android.content.Context!, android.util.AttributeSet!, int);
   }
 
   public class AppCompatSpinner extends android.widget.Spinner implements androidx.core.view.TintableBackgroundView {
-    ctor public AppCompatSpinner(android.content.Context);
-    ctor public AppCompatSpinner(android.content.Context, int);
-    ctor public AppCompatSpinner(android.content.Context, android.util.AttributeSet);
-    ctor public AppCompatSpinner(android.content.Context, android.util.AttributeSet, int);
-    ctor public AppCompatSpinner(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public AppCompatSpinner(android.content.Context, android.util.AttributeSet, int, int, android.content.res.Resources.Theme);
-    method public android.content.res.ColorStateList getSupportBackgroundTintList();
-    method public android.graphics.PorterDuff.Mode getSupportBackgroundTintMode();
-    method public void setBackgroundDrawable(android.graphics.drawable.Drawable);
-    method public void setSupportBackgroundTintList(android.content.res.ColorStateList);
-    method public void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode);
+    ctor public AppCompatSpinner(android.content.Context!);
+    ctor public AppCompatSpinner(android.content.Context!, int);
+    ctor public AppCompatSpinner(android.content.Context!, android.util.AttributeSet!);
+    ctor public AppCompatSpinner(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public AppCompatSpinner(android.content.Context!, android.util.AttributeSet!, int, int);
+    ctor public AppCompatSpinner(android.content.Context!, android.util.AttributeSet!, int, int, android.content.res.Resources.Theme!);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.content.res.ColorStateList? getSupportBackgroundTintList();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.graphics.PorterDuff.Mode? getSupportBackgroundTintMode();
+    method public void setBackgroundDrawable(android.graphics.drawable.Drawable!);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportBackgroundTintList(android.content.res.ColorStateList?);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode?);
   }
 
   public class AppCompatTextView extends android.widget.TextView implements androidx.core.widget.AutoSizeableTextView androidx.core.view.TintableBackgroundView {
-    ctor public AppCompatTextView(android.content.Context);
-    ctor public AppCompatTextView(android.content.Context, android.util.AttributeSet);
-    ctor public AppCompatTextView(android.content.Context, android.util.AttributeSet, int);
-    method public android.content.res.ColorStateList getSupportBackgroundTintList();
-    method public android.graphics.PorterDuff.Mode getSupportBackgroundTintMode();
+    ctor public AppCompatTextView(android.content.Context!);
+    ctor public AppCompatTextView(android.content.Context!, android.util.AttributeSet!);
+    ctor public AppCompatTextView(android.content.Context!, android.util.AttributeSet!, int);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.content.res.ColorStateList? getSupportBackgroundTintList();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.graphics.PorterDuff.Mode? getSupportBackgroundTintMode();
     method public androidx.core.text.PrecomputedTextCompat.Params getTextMetricsParamsCompat();
-    method public void setAutoSizeTextTypeUniformWithConfiguration(int, int, int, int) throws java.lang.IllegalArgumentException;
-    method public void setAutoSizeTextTypeUniformWithPresetSizes(int[], int) throws java.lang.IllegalArgumentException;
-    method public void setBackgroundDrawable(android.graphics.drawable.Drawable);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setAutoSizeTextTypeUniformWithConfiguration(int, int, int, int) throws java.lang.IllegalArgumentException;
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setAutoSizeTextTypeUniformWithPresetSizes(int[], int) throws java.lang.IllegalArgumentException;
+    method public void setBackgroundDrawable(android.graphics.drawable.Drawable!);
     method public void setPrecomputedText(androidx.core.text.PrecomputedTextCompat);
-    method public void setSupportBackgroundTintList(android.content.res.ColorStateList);
-    method public void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode);
-    method public void setTextAppearance(android.content.Context, int);
-    method public void setTextFuture(java.util.concurrent.Future<androidx.core.text.PrecomputedTextCompat>);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportBackgroundTintList(android.content.res.ColorStateList?);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode?);
+    method public void setTextAppearance(android.content.Context!, int);
+    method public void setTextFuture(java.util.concurrent.Future<androidx.core.text.PrecomputedTextCompat>?);
     method public void setTextMetricsParamsCompat(androidx.core.text.PrecomputedTextCompat.Params);
   }
 
   public class LinearLayoutCompat extends android.view.ViewGroup {
-    ctor public LinearLayoutCompat(android.content.Context);
-    ctor public LinearLayoutCompat(android.content.Context, android.util.AttributeSet);
-    ctor public LinearLayoutCompat(android.content.Context, android.util.AttributeSet, int);
-    method protected androidx.appcompat.widget.LinearLayoutCompat.LayoutParams generateDefaultLayoutParams();
-    method public androidx.appcompat.widget.LinearLayoutCompat.LayoutParams generateLayoutParams(android.util.AttributeSet);
-    method protected androidx.appcompat.widget.LinearLayoutCompat.LayoutParams generateLayoutParams(android.view.ViewGroup.LayoutParams);
+    ctor public LinearLayoutCompat(android.content.Context!);
+    ctor public LinearLayoutCompat(android.content.Context!, android.util.AttributeSet!);
+    ctor public LinearLayoutCompat(android.content.Context!, android.util.AttributeSet!, int);
+    method protected androidx.appcompat.widget.LinearLayoutCompat.LayoutParams! generateDefaultLayoutParams();
+    method public androidx.appcompat.widget.LinearLayoutCompat.LayoutParams! generateLayoutParams(android.util.AttributeSet!);
+    method protected androidx.appcompat.widget.LinearLayoutCompat.LayoutParams! generateLayoutParams(android.view.ViewGroup.LayoutParams!);
     method public int getBaselineAlignedChildIndex();
-    method public android.graphics.drawable.Drawable getDividerDrawable();
+    method public android.graphics.drawable.Drawable! getDividerDrawable();
     method public int getDividerPadding();
     method public int getGravity();
     method public int getOrientation();
@@ -637,7 +638,7 @@
     method public boolean isMeasureWithLargestChildEnabled();
     method public void setBaselineAligned(boolean);
     method public void setBaselineAlignedChildIndex(int);
-    method public void setDividerDrawable(android.graphics.drawable.Drawable);
+    method public void setDividerDrawable(android.graphics.drawable.Drawable!);
     method public void setDividerPadding(int);
     method public void setGravity(int);
     method public void setHorizontalGravity(int);
@@ -655,36 +656,36 @@
   }
 
   public static class LinearLayoutCompat.LayoutParams extends android.view.ViewGroup.MarginLayoutParams {
-    ctor public LinearLayoutCompat.LayoutParams(android.content.Context, android.util.AttributeSet);
+    ctor public LinearLayoutCompat.LayoutParams(android.content.Context!, android.util.AttributeSet!);
     ctor public LinearLayoutCompat.LayoutParams(int, int);
     ctor public LinearLayoutCompat.LayoutParams(int, int, float);
-    ctor public LinearLayoutCompat.LayoutParams(android.view.ViewGroup.LayoutParams);
-    ctor public LinearLayoutCompat.LayoutParams(android.view.ViewGroup.MarginLayoutParams);
-    ctor public LinearLayoutCompat.LayoutParams(androidx.appcompat.widget.LinearLayoutCompat.LayoutParams);
+    ctor public LinearLayoutCompat.LayoutParams(android.view.ViewGroup.LayoutParams!);
+    ctor public LinearLayoutCompat.LayoutParams(android.view.ViewGroup.MarginLayoutParams!);
+    ctor public LinearLayoutCompat.LayoutParams(androidx.appcompat.widget.LinearLayoutCompat.LayoutParams!);
     field public int gravity;
     field public float weight;
   }
 
   public class ListPopupWindow {
     ctor public ListPopupWindow(android.content.Context);
-    ctor public ListPopupWindow(android.content.Context, android.util.AttributeSet);
-    ctor public ListPopupWindow(android.content.Context, android.util.AttributeSet, int);
-    ctor public ListPopupWindow(android.content.Context, android.util.AttributeSet, int, int);
+    ctor public ListPopupWindow(android.content.Context, android.util.AttributeSet?);
+    ctor public ListPopupWindow(android.content.Context, android.util.AttributeSet?, @AttrRes int);
+    ctor public ListPopupWindow(android.content.Context, android.util.AttributeSet?, @AttrRes int, @StyleRes int);
     method public void clearListSelection();
-    method public android.view.View.OnTouchListener createDragToOpenListener(android.view.View);
+    method public android.view.View.OnTouchListener! createDragToOpenListener(android.view.View!);
     method public void dismiss();
-    method public android.view.View getAnchorView();
-    method public int getAnimationStyle();
-    method public android.graphics.drawable.Drawable getBackground();
+    method public android.view.View? getAnchorView();
+    method @StyleRes public int getAnimationStyle();
+    method public android.graphics.drawable.Drawable? getBackground();
     method public int getHeight();
     method public int getHorizontalOffset();
     method public int getInputMethodMode();
-    method public android.widget.ListView getListView();
+    method public android.widget.ListView? getListView();
     method public int getPromptPosition();
-    method public java.lang.Object getSelectedItem();
+    method public Object? getSelectedItem();
     method public long getSelectedItemId();
     method public int getSelectedItemPosition();
-    method public android.view.View getSelectedView();
+    method public android.view.View? getSelectedView();
     method public int getSoftInputMode();
     method public int getVerticalOffset();
     method public int getWidth();
@@ -696,22 +697,22 @@
     method public boolean onKeyUp(int, android.view.KeyEvent);
     method public boolean performItemClick(int);
     method public void postShow();
-    method public void setAdapter(android.widget.ListAdapter);
-    method public void setAnchorView(android.view.View);
-    method public void setAnimationStyle(int);
-    method public void setBackgroundDrawable(android.graphics.drawable.Drawable);
+    method public void setAdapter(android.widget.ListAdapter?);
+    method public void setAnchorView(android.view.View?);
+    method public void setAnimationStyle(@StyleRes int);
+    method public void setBackgroundDrawable(android.graphics.drawable.Drawable?);
     method public void setContentWidth(int);
     method public void setDropDownGravity(int);
     method public void setHeight(int);
     method public void setHorizontalOffset(int);
     method public void setInputMethodMode(int);
-    method public void setListSelector(android.graphics.drawable.Drawable);
+    method public void setListSelector(android.graphics.drawable.Drawable!);
     method public void setModal(boolean);
-    method public void setOnDismissListener(android.widget.PopupWindow.OnDismissListener);
-    method public void setOnItemClickListener(android.widget.AdapterView.OnItemClickListener);
-    method public void setOnItemSelectedListener(android.widget.AdapterView.OnItemSelectedListener);
+    method public void setOnDismissListener(android.widget.PopupWindow.OnDismissListener?);
+    method public void setOnItemClickListener(android.widget.AdapterView.OnItemClickListener?);
+    method public void setOnItemSelectedListener(android.widget.AdapterView.OnItemSelectedListener?);
     method public void setPromptPosition(int);
-    method public void setPromptView(android.view.View);
+    method public void setPromptView(android.view.View?);
     method public void setSelection(int);
     method public void setSoftInputMode(int);
     method public void setVerticalOffset(int);
@@ -730,37 +731,37 @@
   public class PopupMenu {
     ctor public PopupMenu(android.content.Context, android.view.View);
     ctor public PopupMenu(android.content.Context, android.view.View, int);
-    ctor public PopupMenu(android.content.Context, android.view.View, int, int, int);
+    ctor public PopupMenu(android.content.Context, android.view.View, int, @AttrRes int, @StyleRes int);
     method public void dismiss();
     method public android.view.View.OnTouchListener getDragToOpenListener();
     method public int getGravity();
     method public android.view.Menu getMenu();
     method public android.view.MenuInflater getMenuInflater();
-    method public void inflate(int);
+    method public void inflate(@MenuRes int);
     method public void setGravity(int);
-    method public void setOnDismissListener(androidx.appcompat.widget.PopupMenu.OnDismissListener);
-    method public void setOnMenuItemClickListener(androidx.appcompat.widget.PopupMenu.OnMenuItemClickListener);
+    method public void setOnDismissListener(androidx.appcompat.widget.PopupMenu.OnDismissListener?);
+    method public void setOnMenuItemClickListener(androidx.appcompat.widget.PopupMenu.OnMenuItemClickListener?);
     method public void show();
   }
 
-  public static abstract interface PopupMenu.OnDismissListener {
-    method public abstract void onDismiss(androidx.appcompat.widget.PopupMenu);
+  public static interface PopupMenu.OnDismissListener {
+    method public void onDismiss(androidx.appcompat.widget.PopupMenu!);
   }
 
-  public static abstract interface PopupMenu.OnMenuItemClickListener {
-    method public abstract boolean onMenuItemClick(android.view.MenuItem);
+  public static interface PopupMenu.OnMenuItemClickListener {
+    method public boolean onMenuItemClick(android.view.MenuItem!);
   }
 
   public class SearchView extends androidx.appcompat.widget.LinearLayoutCompat implements androidx.appcompat.view.CollapsibleActionView {
-    ctor public SearchView(android.content.Context);
-    ctor public SearchView(android.content.Context, android.util.AttributeSet);
-    ctor public SearchView(android.content.Context, android.util.AttributeSet, int);
+    ctor public SearchView(android.content.Context!);
+    ctor public SearchView(android.content.Context!, android.util.AttributeSet!);
+    ctor public SearchView(android.content.Context!, android.util.AttributeSet!, int);
     method public int getImeOptions();
     method public int getInputType();
     method public int getMaxWidth();
-    method public java.lang.CharSequence getQuery();
-    method public java.lang.CharSequence getQueryHint();
-    method public androidx.cursoradapter.widget.CursorAdapter getSuggestionsAdapter();
+    method public CharSequence! getQuery();
+    method public CharSequence? getQueryHint();
+    method public androidx.cursoradapter.widget.CursorAdapter! getSuggestionsAdapter();
     method public boolean isIconfiedByDefault();
     method public boolean isIconified();
     method public boolean isQueryRefinementEnabled();
@@ -772,107 +773,107 @@
     method public void setImeOptions(int);
     method public void setInputType(int);
     method public void setMaxWidth(int);
-    method public void setOnCloseListener(androidx.appcompat.widget.SearchView.OnCloseListener);
-    method public void setOnQueryTextFocusChangeListener(android.view.View.OnFocusChangeListener);
-    method public void setOnQueryTextListener(androidx.appcompat.widget.SearchView.OnQueryTextListener);
-    method public void setOnSearchClickListener(android.view.View.OnClickListener);
-    method public void setOnSuggestionListener(androidx.appcompat.widget.SearchView.OnSuggestionListener);
-    method public void setQuery(java.lang.CharSequence, boolean);
-    method public void setQueryHint(java.lang.CharSequence);
+    method public void setOnCloseListener(androidx.appcompat.widget.SearchView.OnCloseListener!);
+    method public void setOnQueryTextFocusChangeListener(android.view.View.OnFocusChangeListener!);
+    method public void setOnQueryTextListener(androidx.appcompat.widget.SearchView.OnQueryTextListener!);
+    method public void setOnSearchClickListener(android.view.View.OnClickListener!);
+    method public void setOnSuggestionListener(androidx.appcompat.widget.SearchView.OnSuggestionListener!);
+    method public void setQuery(CharSequence!, boolean);
+    method public void setQueryHint(CharSequence?);
     method public void setQueryRefinementEnabled(boolean);
-    method public void setSearchableInfo(android.app.SearchableInfo);
+    method public void setSearchableInfo(android.app.SearchableInfo!);
     method public void setSubmitButtonEnabled(boolean);
-    method public void setSuggestionsAdapter(androidx.cursoradapter.widget.CursorAdapter);
+    method public void setSuggestionsAdapter(androidx.cursoradapter.widget.CursorAdapter!);
   }
 
-  public static abstract interface SearchView.OnCloseListener {
-    method public abstract boolean onClose();
+  public static interface SearchView.OnCloseListener {
+    method public boolean onClose();
   }
 
-  public static abstract interface SearchView.OnQueryTextListener {
-    method public abstract boolean onQueryTextChange(java.lang.String);
-    method public abstract boolean onQueryTextSubmit(java.lang.String);
+  public static interface SearchView.OnQueryTextListener {
+    method public boolean onQueryTextChange(String!);
+    method public boolean onQueryTextSubmit(String!);
   }
 
-  public static abstract interface SearchView.OnSuggestionListener {
-    method public abstract boolean onSuggestionClick(int);
-    method public abstract boolean onSuggestionSelect(int);
+  public static interface SearchView.OnSuggestionListener {
+    method public boolean onSuggestionClick(int);
+    method public boolean onSuggestionSelect(int);
   }
 
   public class ShareActionProvider extends androidx.core.view.ActionProvider {
-    ctor public ShareActionProvider(android.content.Context);
-    method public android.view.View onCreateActionView();
-    method public void setOnShareTargetSelectedListener(androidx.appcompat.widget.ShareActionProvider.OnShareTargetSelectedListener);
-    method public void setShareHistoryFileName(java.lang.String);
-    method public void setShareIntent(android.content.Intent);
-    field public static final java.lang.String DEFAULT_SHARE_HISTORY_FILE_NAME = "share_history.xml";
+    ctor public ShareActionProvider(android.content.Context!);
+    method public android.view.View! onCreateActionView();
+    method public void setOnShareTargetSelectedListener(androidx.appcompat.widget.ShareActionProvider.OnShareTargetSelectedListener!);
+    method public void setShareHistoryFileName(String!);
+    method public void setShareIntent(android.content.Intent!);
+    field public static final String DEFAULT_SHARE_HISTORY_FILE_NAME = "share_history.xml";
   }
 
-  public static abstract interface ShareActionProvider.OnShareTargetSelectedListener {
-    method public abstract boolean onShareTargetSelected(androidx.appcompat.widget.ShareActionProvider, android.content.Intent);
+  public static interface ShareActionProvider.OnShareTargetSelectedListener {
+    method public boolean onShareTargetSelected(androidx.appcompat.widget.ShareActionProvider!, android.content.Intent!);
   }
 
   public class SwitchCompat extends android.widget.CompoundButton {
-    ctor public SwitchCompat(android.content.Context);
-    ctor public SwitchCompat(android.content.Context, android.util.AttributeSet);
-    ctor public SwitchCompat(android.content.Context, android.util.AttributeSet, int);
+    ctor public SwitchCompat(android.content.Context!);
+    ctor public SwitchCompat(android.content.Context!, android.util.AttributeSet!);
+    ctor public SwitchCompat(android.content.Context!, android.util.AttributeSet!, int);
     method public boolean getShowText();
     method public boolean getSplitTrack();
     method public int getSwitchMinWidth();
     method public int getSwitchPadding();
-    method public java.lang.CharSequence getTextOff();
-    method public java.lang.CharSequence getTextOn();
-    method public android.graphics.drawable.Drawable getThumbDrawable();
+    method public CharSequence! getTextOff();
+    method public CharSequence! getTextOn();
+    method public android.graphics.drawable.Drawable! getThumbDrawable();
     method public int getThumbTextPadding();
-    method public android.content.res.ColorStateList getThumbTintList();
-    method public android.graphics.PorterDuff.Mode getThumbTintMode();
-    method public android.graphics.drawable.Drawable getTrackDrawable();
-    method public android.content.res.ColorStateList getTrackTintList();
-    method public android.graphics.PorterDuff.Mode getTrackTintMode();
+    method public android.content.res.ColorStateList? getThumbTintList();
+    method public android.graphics.PorterDuff.Mode? getThumbTintMode();
+    method public android.graphics.drawable.Drawable! getTrackDrawable();
+    method public android.content.res.ColorStateList? getTrackTintList();
+    method public android.graphics.PorterDuff.Mode? getTrackTintMode();
     method public void onMeasure(int, int);
     method public void setShowText(boolean);
     method public void setSplitTrack(boolean);
     method public void setSwitchMinWidth(int);
     method public void setSwitchPadding(int);
-    method public void setSwitchTextAppearance(android.content.Context, int);
-    method public void setSwitchTypeface(android.graphics.Typeface, int);
-    method public void setSwitchTypeface(android.graphics.Typeface);
-    method public void setTextOff(java.lang.CharSequence);
-    method public void setTextOn(java.lang.CharSequence);
-    method public void setThumbDrawable(android.graphics.drawable.Drawable);
+    method public void setSwitchTextAppearance(android.content.Context!, int);
+    method public void setSwitchTypeface(android.graphics.Typeface!, int);
+    method public void setSwitchTypeface(android.graphics.Typeface!);
+    method public void setTextOff(CharSequence!);
+    method public void setTextOn(CharSequence!);
+    method public void setThumbDrawable(android.graphics.drawable.Drawable!);
     method public void setThumbResource(int);
     method public void setThumbTextPadding(int);
-    method public void setThumbTintList(android.content.res.ColorStateList);
-    method public void setThumbTintMode(android.graphics.PorterDuff.Mode);
-    method public void setTrackDrawable(android.graphics.drawable.Drawable);
+    method public void setThumbTintList(android.content.res.ColorStateList?);
+    method public void setThumbTintMode(android.graphics.PorterDuff.Mode?);
+    method public void setTrackDrawable(android.graphics.drawable.Drawable!);
     method public void setTrackResource(int);
-    method public void setTrackTintList(android.content.res.ColorStateList);
-    method public void setTrackTintMode(android.graphics.PorterDuff.Mode);
+    method public void setTrackTintList(android.content.res.ColorStateList?);
+    method public void setTrackTintMode(android.graphics.PorterDuff.Mode?);
   }
 
-  public abstract interface ThemedSpinnerAdapter implements android.widget.SpinnerAdapter {
-    method public abstract android.content.res.Resources.Theme getDropDownViewTheme();
-    method public abstract void setDropDownViewTheme(android.content.res.Resources.Theme);
+  public interface ThemedSpinnerAdapter extends android.widget.SpinnerAdapter {
+    method public android.content.res.Resources.Theme? getDropDownViewTheme();
+    method public void setDropDownViewTheme(android.content.res.Resources.Theme?);
   }
 
   public static final class ThemedSpinnerAdapter.Helper {
     ctor public ThemedSpinnerAdapter.Helper(android.content.Context);
     method public android.view.LayoutInflater getDropDownViewInflater();
-    method public android.content.res.Resources.Theme getDropDownViewTheme();
-    method public void setDropDownViewTheme(android.content.res.Resources.Theme);
+    method public android.content.res.Resources.Theme? getDropDownViewTheme();
+    method public void setDropDownViewTheme(android.content.res.Resources.Theme?);
   }
 
   public class Toolbar extends android.view.ViewGroup {
-    ctor public Toolbar(android.content.Context);
-    ctor public Toolbar(android.content.Context, android.util.AttributeSet);
-    ctor public Toolbar(android.content.Context, android.util.AttributeSet, int);
+    ctor public Toolbar(android.content.Context!);
+    ctor public Toolbar(android.content.Context!, android.util.AttributeSet?);
+    ctor public Toolbar(android.content.Context!, android.util.AttributeSet?, int);
     method public void collapseActionView();
     method public void dismissPopupMenus();
-    method protected androidx.appcompat.widget.Toolbar.LayoutParams generateDefaultLayoutParams();
-    method public androidx.appcompat.widget.Toolbar.LayoutParams generateLayoutParams(android.util.AttributeSet);
-    method protected androidx.appcompat.widget.Toolbar.LayoutParams generateLayoutParams(android.view.ViewGroup.LayoutParams);
-    method public java.lang.CharSequence getCollapseContentDescription();
-    method public android.graphics.drawable.Drawable getCollapseIcon();
+    method protected androidx.appcompat.widget.Toolbar.LayoutParams! generateDefaultLayoutParams();
+    method public androidx.appcompat.widget.Toolbar.LayoutParams! generateLayoutParams(android.util.AttributeSet!);
+    method protected androidx.appcompat.widget.Toolbar.LayoutParams! generateLayoutParams(android.view.ViewGroup.LayoutParams!);
+    method public CharSequence? getCollapseContentDescription();
+    method public android.graphics.drawable.Drawable? getCollapseIcon();
     method public int getContentInsetEnd();
     method public int getContentInsetEndWithActions();
     method public int getContentInsetLeft();
@@ -883,83 +884,83 @@
     method public int getCurrentContentInsetLeft();
     method public int getCurrentContentInsetRight();
     method public int getCurrentContentInsetStart();
-    method public android.graphics.drawable.Drawable getLogo();
-    method public java.lang.CharSequence getLogoDescription();
-    method public android.view.Menu getMenu();
-    method public java.lang.CharSequence getNavigationContentDescription();
-    method public android.graphics.drawable.Drawable getNavigationIcon();
-    method public android.graphics.drawable.Drawable getOverflowIcon();
+    method public android.graphics.drawable.Drawable! getLogo();
+    method public CharSequence! getLogoDescription();
+    method public android.view.Menu! getMenu();
+    method public CharSequence? getNavigationContentDescription();
+    method public android.graphics.drawable.Drawable? getNavigationIcon();
+    method public android.graphics.drawable.Drawable? getOverflowIcon();
     method public int getPopupTheme();
-    method public java.lang.CharSequence getSubtitle();
-    method public java.lang.CharSequence getTitle();
+    method public CharSequence! getSubtitle();
+    method public CharSequence! getTitle();
     method public int getTitleMarginBottom();
     method public int getTitleMarginEnd();
     method public int getTitleMarginStart();
     method public int getTitleMarginTop();
     method public boolean hasExpandedActionView();
     method public boolean hideOverflowMenu();
-    method public void inflateMenu(int);
+    method public void inflateMenu(@MenuRes int);
     method public boolean isOverflowMenuShowing();
-    method public void setCollapseContentDescription(int);
-    method public void setCollapseContentDescription(java.lang.CharSequence);
-    method public void setCollapseIcon(int);
-    method public void setCollapseIcon(android.graphics.drawable.Drawable);
+    method public void setCollapseContentDescription(@StringRes int);
+    method public void setCollapseContentDescription(CharSequence?);
+    method public void setCollapseIcon(@DrawableRes int);
+    method public void setCollapseIcon(android.graphics.drawable.Drawable?);
     method public void setContentInsetEndWithActions(int);
     method public void setContentInsetStartWithNavigation(int);
     method public void setContentInsetsAbsolute(int, int);
     method public void setContentInsetsRelative(int, int);
-    method public void setLogo(int);
-    method public void setLogo(android.graphics.drawable.Drawable);
-    method public void setLogoDescription(int);
-    method public void setLogoDescription(java.lang.CharSequence);
-    method public void setNavigationContentDescription(int);
-    method public void setNavigationContentDescription(java.lang.CharSequence);
-    method public void setNavigationIcon(int);
-    method public void setNavigationIcon(android.graphics.drawable.Drawable);
-    method public void setNavigationOnClickListener(android.view.View.OnClickListener);
-    method public void setOnMenuItemClickListener(androidx.appcompat.widget.Toolbar.OnMenuItemClickListener);
-    method public void setOverflowIcon(android.graphics.drawable.Drawable);
-    method public void setPopupTheme(int);
-    method public void setSubtitle(int);
-    method public void setSubtitle(java.lang.CharSequence);
-    method public void setSubtitleTextAppearance(android.content.Context, int);
-    method public void setSubtitleTextColor(int);
-    method public void setTitle(int);
-    method public void setTitle(java.lang.CharSequence);
+    method public void setLogo(@DrawableRes int);
+    method public void setLogo(android.graphics.drawable.Drawable!);
+    method public void setLogoDescription(@StringRes int);
+    method public void setLogoDescription(CharSequence!);
+    method public void setNavigationContentDescription(@StringRes int);
+    method public void setNavigationContentDescription(CharSequence?);
+    method public void setNavigationIcon(@DrawableRes int);
+    method public void setNavigationIcon(android.graphics.drawable.Drawable?);
+    method public void setNavigationOnClickListener(android.view.View.OnClickListener!);
+    method public void setOnMenuItemClickListener(androidx.appcompat.widget.Toolbar.OnMenuItemClickListener!);
+    method public void setOverflowIcon(android.graphics.drawable.Drawable?);
+    method public void setPopupTheme(@StyleRes int);
+    method public void setSubtitle(@StringRes int);
+    method public void setSubtitle(CharSequence!);
+    method public void setSubtitleTextAppearance(android.content.Context!, @StyleRes int);
+    method public void setSubtitleTextColor(@ColorInt int);
+    method public void setTitle(@StringRes int);
+    method public void setTitle(CharSequence!);
     method public void setTitleMargin(int, int, int, int);
     method public void setTitleMarginBottom(int);
     method public void setTitleMarginEnd(int);
     method public void setTitleMarginStart(int);
     method public void setTitleMarginTop(int);
-    method public void setTitleTextAppearance(android.content.Context, int);
-    method public void setTitleTextColor(int);
+    method public void setTitleTextAppearance(android.content.Context!, @StyleRes int);
+    method public void setTitleTextColor(@ColorInt int);
     method public boolean showOverflowMenu();
   }
 
   public static class Toolbar.LayoutParams extends androidx.appcompat.app.ActionBar.LayoutParams {
-    ctor public Toolbar.LayoutParams(android.content.Context, android.util.AttributeSet);
+    ctor public Toolbar.LayoutParams(android.content.Context, android.util.AttributeSet!);
     ctor public Toolbar.LayoutParams(int, int);
     ctor public Toolbar.LayoutParams(int, int, int);
     ctor public Toolbar.LayoutParams(int);
-    ctor public Toolbar.LayoutParams(androidx.appcompat.widget.Toolbar.LayoutParams);
-    ctor public Toolbar.LayoutParams(androidx.appcompat.app.ActionBar.LayoutParams);
-    ctor public Toolbar.LayoutParams(android.view.ViewGroup.MarginLayoutParams);
-    ctor public Toolbar.LayoutParams(android.view.ViewGroup.LayoutParams);
+    ctor public Toolbar.LayoutParams(androidx.appcompat.widget.Toolbar.LayoutParams!);
+    ctor public Toolbar.LayoutParams(androidx.appcompat.app.ActionBar.LayoutParams!);
+    ctor public Toolbar.LayoutParams(android.view.ViewGroup.MarginLayoutParams!);
+    ctor public Toolbar.LayoutParams(android.view.ViewGroup.LayoutParams!);
   }
 
-  public static abstract interface Toolbar.OnMenuItemClickListener {
-    method public abstract boolean onMenuItemClick(android.view.MenuItem);
+  public static interface Toolbar.OnMenuItemClickListener {
+    method public boolean onMenuItemClick(android.view.MenuItem!);
   }
 
   public static class Toolbar.SavedState extends androidx.customview.view.AbsSavedState {
-    ctor public Toolbar.SavedState(android.os.Parcel);
-    ctor public Toolbar.SavedState(android.os.Parcel, java.lang.ClassLoader);
-    ctor public Toolbar.SavedState(android.os.Parcelable);
-    field public static final android.os.Parcelable.Creator<androidx.appcompat.widget.Toolbar.SavedState> CREATOR;
+    ctor public Toolbar.SavedState(android.os.Parcel!);
+    ctor public Toolbar.SavedState(android.os.Parcel!, ClassLoader!);
+    ctor public Toolbar.SavedState(android.os.Parcelable!);
+    field public static final android.os.Parcelable.Creator<androidx.appcompat.widget.Toolbar.SavedState>! CREATOR;
   }
 
   public class TooltipCompat {
-    method public static void setTooltipText(android.view.View, java.lang.CharSequence);
+    method public static void setTooltipText(android.view.View, CharSequence?);
   }
 
 }
diff --git a/arch/core-common/api/2.0.0.txt b/arch/core-common/api/2.0.0.txt
index 8546ec6..fd7a0e5 100644
--- a/arch/core-common/api/2.0.0.txt
+++ b/arch/core-common/api/2.0.0.txt
@@ -1,7 +1,8 @@
+// Signature format: 2.0
 package androidx.arch.core.util {
 
-  public abstract interface Function<I, O> {
-    method public abstract O apply(I);
+  public interface Function<I, O> {
+    method public O! apply(I!);
   }
 
 }
diff --git a/arch/core-runtime/api/2.0.0.txt b/arch/core-runtime/api/2.0.0.txt
index e69de29..d802177 100644
--- a/arch/core-runtime/api/2.0.0.txt
+++ b/arch/core-runtime/api/2.0.0.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/arch/core-testing/api/2.0.0.txt b/arch/core-testing/api/2.0.0.txt
index 37e16fb..1ae677c 100644
--- a/arch/core-testing/api/2.0.0.txt
+++ b/arch/core-testing/api/2.0.0.txt
@@ -1,8 +1,9 @@
+// Signature format: 2.0
 package androidx.arch.core.executor.testing {
 
   public class CountingTaskExecutorRule extends org.junit.rules.TestWatcher {
     ctor public CountingTaskExecutorRule();
-    method public void drainTasks(int, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException, java.util.concurrent.TimeoutException;
+    method public void drainTasks(int, java.util.concurrent.TimeUnit!) throws java.lang.InterruptedException, java.util.concurrent.TimeoutException;
     method public boolean isIdle();
     method protected void onIdle();
   }
diff --git a/asynclayoutinflater/api/1.0.0.txt b/asynclayoutinflater/api/1.0.0.txt
index b21e2a6..0b5a843 100644
--- a/asynclayoutinflater/api/1.0.0.txt
+++ b/asynclayoutinflater/api/1.0.0.txt
@@ -1,12 +1,13 @@
+// Signature format: 2.0
 package androidx.asynclayoutinflater.view {
 
   public final class AsyncLayoutInflater {
     ctor public AsyncLayoutInflater(android.content.Context);
-    method public void inflate(int, android.view.ViewGroup, androidx.asynclayoutinflater.view.AsyncLayoutInflater.OnInflateFinishedListener);
+    method @UiThread public void inflate(@LayoutRes int, android.view.ViewGroup?, androidx.asynclayoutinflater.view.AsyncLayoutInflater.OnInflateFinishedListener);
   }
 
-  public static abstract interface AsyncLayoutInflater.OnInflateFinishedListener {
-    method public abstract void onInflateFinished(android.view.View, int, android.view.ViewGroup);
+  public static interface AsyncLayoutInflater.OnInflateFinishedListener {
+    method public void onInflateFinished(android.view.View, @LayoutRes int, android.view.ViewGroup?);
   }
 
 }
diff --git a/biometric/api/current.txt b/biometric/api/current.txt
index 1dd3d47..0e3a2b3 100644
--- a/biometric/api/current.txt
+++ b/biometric/api/current.txt
@@ -1,3 +1,4 @@
+// Signature format: 2.0
 package androidx.biometrics {
 
   public class BiometricPrompt {
@@ -19,40 +20,40 @@
     field public static final int ERROR_VENDOR = 8; // 0x8
   }
 
-  public static abstract class BiometricPrompt.AuthenticationCallback {
+  public abstract static class BiometricPrompt.AuthenticationCallback {
     ctor public BiometricPrompt.AuthenticationCallback();
-    method public void onAuthenticationError(int, java.lang.CharSequence);
+    method public void onAuthenticationError(int, CharSequence);
     method public void onAuthenticationFailed();
     method public void onAuthenticationSucceeded(androidx.biometrics.BiometricPrompt.AuthenticationResult);
   }
 
   public static class BiometricPrompt.AuthenticationResult {
-    method public androidx.biometrics.BiometricPrompt.CryptoObject getCryptoObject();
+    method public androidx.biometrics.BiometricPrompt.CryptoObject? getCryptoObject();
   }
 
   public static class BiometricPrompt.CryptoObject {
     ctor public BiometricPrompt.CryptoObject(java.security.Signature);
     ctor public BiometricPrompt.CryptoObject(javax.crypto.Cipher);
     ctor public BiometricPrompt.CryptoObject(javax.crypto.Mac);
-    method public javax.crypto.Cipher getCipher();
-    method public javax.crypto.Mac getMac();
-    method public java.security.Signature getSignature();
+    method public javax.crypto.Cipher? getCipher();
+    method public javax.crypto.Mac? getMac();
+    method public java.security.Signature? getSignature();
   }
 
   public static class BiometricPrompt.PromptInfo {
-    method public java.lang.CharSequence getDescription();
-    method public java.lang.CharSequence getNegativeButtonText();
-    method public java.lang.CharSequence getSubtitle();
-    method public java.lang.CharSequence getTitle();
+    method public CharSequence? getDescription();
+    method public CharSequence getNegativeButtonText();
+    method public CharSequence? getSubtitle();
+    method public CharSequence getTitle();
   }
 
   public static class BiometricPrompt.PromptInfo.Builder {
     ctor public BiometricPrompt.PromptInfo.Builder();
     method public androidx.biometrics.BiometricPrompt.PromptInfo build();
-    method public androidx.biometrics.BiometricPrompt.PromptInfo.Builder setDescription(java.lang.CharSequence);
-    method public androidx.biometrics.BiometricPrompt.PromptInfo.Builder setNegativeButtonText(java.lang.CharSequence);
-    method public androidx.biometrics.BiometricPrompt.PromptInfo.Builder setSubtitle(java.lang.CharSequence);
-    method public androidx.biometrics.BiometricPrompt.PromptInfo.Builder setTitle(java.lang.CharSequence);
+    method public androidx.biometrics.BiometricPrompt.PromptInfo.Builder setDescription(CharSequence?);
+    method public androidx.biometrics.BiometricPrompt.PromptInfo.Builder setNegativeButtonText(CharSequence);
+    method public androidx.biometrics.BiometricPrompt.PromptInfo.Builder setSubtitle(CharSequence?);
+    method public androidx.biometrics.BiometricPrompt.PromptInfo.Builder setTitle(CharSequence);
   }
 
 }
diff --git a/browser/api/1.0.0.txt b/browser/api/1.0.0.txt
index f3bfca3..06890b2 100644
--- a/browser/api/1.0.0.txt
+++ b/browser/api/1.0.0.txt
@@ -1,34 +1,35 @@
+// Signature format: 2.0
 package androidx.browser.browseractions {
 
   public class BrowserActionItem {
-    ctor public BrowserActionItem(java.lang.String, android.app.PendingIntent, int);
-    ctor public BrowserActionItem(java.lang.String, android.app.PendingIntent);
-    method public android.app.PendingIntent getAction();
+    ctor public BrowserActionItem(String, android.app.PendingIntent, @DrawableRes int);
+    ctor public BrowserActionItem(String, android.app.PendingIntent);
+    method public android.app.PendingIntent! getAction();
     method public int getIconId();
-    method public java.lang.String getTitle();
+    method public String! getTitle();
   }
 
   public class BrowserActionsIntent {
-    method public static java.lang.String getCreatorPackageName(android.content.Intent);
+    method public static String! getCreatorPackageName(android.content.Intent!);
     method public android.content.Intent getIntent();
-    method public static void launchIntent(android.content.Context, android.content.Intent);
-    method public static void openBrowserAction(android.content.Context, android.net.Uri);
-    method public static void openBrowserAction(android.content.Context, android.net.Uri, int, java.util.ArrayList<androidx.browser.browseractions.BrowserActionItem>, android.app.PendingIntent);
-    method public static java.util.List<androidx.browser.browseractions.BrowserActionItem> parseBrowserActionItems(java.util.ArrayList<android.os.Bundle>);
-    field public static final java.lang.String ACTION_BROWSER_ACTIONS_OPEN = "androidx.browser.browseractions.browser_action_open";
-    field public static final java.lang.String EXTRA_APP_ID = "androidx.browser.browseractions.APP_ID";
-    field public static final java.lang.String EXTRA_MENU_ITEMS = "androidx.browser.browseractions.extra.MENU_ITEMS";
-    field public static final java.lang.String EXTRA_SELECTED_ACTION_PENDING_INTENT = "androidx.browser.browseractions.extra.SELECTED_ACTION_PENDING_INTENT";
-    field public static final java.lang.String EXTRA_TYPE = "androidx.browser.browseractions.extra.TYPE";
+    method public static void launchIntent(android.content.Context!, android.content.Intent!);
+    method public static void openBrowserAction(android.content.Context!, android.net.Uri!);
+    method public static void openBrowserAction(android.content.Context!, android.net.Uri!, int, java.util.ArrayList<androidx.browser.browseractions.BrowserActionItem>!, android.app.PendingIntent!);
+    method public static java.util.List<androidx.browser.browseractions.BrowserActionItem>! parseBrowserActionItems(java.util.ArrayList<android.os.Bundle>!);
+    field public static final String ACTION_BROWSER_ACTIONS_OPEN = "androidx.browser.browseractions.browser_action_open";
+    field public static final String EXTRA_APP_ID = "androidx.browser.browseractions.APP_ID";
+    field public static final String EXTRA_MENU_ITEMS = "androidx.browser.browseractions.extra.MENU_ITEMS";
+    field public static final String EXTRA_SELECTED_ACTION_PENDING_INTENT = "androidx.browser.browseractions.extra.SELECTED_ACTION_PENDING_INTENT";
+    field public static final String EXTRA_TYPE = "androidx.browser.browseractions.extra.TYPE";
     field public static final int ITEM_COPY = 3; // 0x3
     field public static final int ITEM_DOWNLOAD = 2; // 0x2
     field public static final int ITEM_INVALID_ITEM = -1; // 0xffffffff
     field public static final int ITEM_OPEN_IN_INCOGNITO = 1; // 0x1
     field public static final int ITEM_OPEN_IN_NEW_TAB = 0; // 0x0
     field public static final int ITEM_SHARE = 4; // 0x4
-    field public static final java.lang.String KEY_ACTION = "androidx.browser.browseractions.ACTION";
-    field public static final java.lang.String KEY_ICON_ID = "androidx.browser.browseractions.ICON_ID";
-    field public static final java.lang.String KEY_TITLE = "androidx.browser.browseractions.TITLE";
+    field public static final String KEY_ACTION = "androidx.browser.browseractions.ACTION";
+    field public static final String KEY_ICON_ID = "androidx.browser.browseractions.ICON_ID";
+    field public static final String KEY_TITLE = "androidx.browser.browseractions.TITLE";
     field public static final int MAX_CUSTOM_ITEMS = 5; // 0x5
     field public static final int URL_TYPE_AUDIO = 3; // 0x3
     field public static final int URL_TYPE_FILE = 4; // 0x4
@@ -39,12 +40,12 @@
   }
 
   public static final class BrowserActionsIntent.Builder {
-    ctor public BrowserActionsIntent.Builder(android.content.Context, android.net.Uri);
-    method public androidx.browser.browseractions.BrowserActionsIntent build();
-    method public androidx.browser.browseractions.BrowserActionsIntent.Builder setCustomItems(java.util.ArrayList<androidx.browser.browseractions.BrowserActionItem>);
-    method public androidx.browser.browseractions.BrowserActionsIntent.Builder setCustomItems(androidx.browser.browseractions.BrowserActionItem...);
-    method public androidx.browser.browseractions.BrowserActionsIntent.Builder setOnItemSelectedAction(android.app.PendingIntent);
-    method public androidx.browser.browseractions.BrowserActionsIntent.Builder setUrlType(int);
+    ctor public BrowserActionsIntent.Builder(android.content.Context!, android.net.Uri!);
+    method public androidx.browser.browseractions.BrowserActionsIntent! build();
+    method public androidx.browser.browseractions.BrowserActionsIntent.Builder! setCustomItems(java.util.ArrayList<androidx.browser.browseractions.BrowserActionItem>!);
+    method public androidx.browser.browseractions.BrowserActionsIntent.Builder! setCustomItems(androidx.browser.browseractions.BrowserActionItem...!);
+    method public androidx.browser.browseractions.BrowserActionsIntent.Builder! setOnItemSelectedAction(android.app.PendingIntent!);
+    method public androidx.browser.browseractions.BrowserActionsIntent.Builder! setUrlType(int);
   }
 
 }
@@ -53,11 +54,11 @@
 
   public class CustomTabsCallback {
     ctor public CustomTabsCallback();
-    method public void extraCallback(java.lang.String, android.os.Bundle);
-    method public void onMessageChannelReady(android.os.Bundle);
-    method public void onNavigationEvent(int, android.os.Bundle);
-    method public void onPostMessage(java.lang.String, android.os.Bundle);
-    method public void onRelationshipValidationResult(int, android.net.Uri, boolean, android.os.Bundle);
+    method public void extraCallback(String!, android.os.Bundle!);
+    method public void onMessageChannelReady(android.os.Bundle!);
+    method public void onNavigationEvent(int, android.os.Bundle!);
+    method public void onPostMessage(String!, android.os.Bundle!);
+    method public void onRelationshipValidationResult(@androidx.browser.customtabs.CustomTabsService.Relation int, android.net.Uri!, boolean, android.os.Bundle!);
     field public static final int NAVIGATION_ABORTED = 4; // 0x4
     field public static final int NAVIGATION_FAILED = 3; // 0x3
     field public static final int NAVIGATION_FINISHED = 2; // 0x2
@@ -67,83 +68,83 @@
   }
 
   public class CustomTabsClient {
-    method public static boolean bindCustomTabsService(android.content.Context, java.lang.String, androidx.browser.customtabs.CustomTabsServiceConnection);
-    method public static boolean connectAndInitialize(android.content.Context, java.lang.String);
-    method public android.os.Bundle extraCommand(java.lang.String, android.os.Bundle);
-    method public static java.lang.String getPackageName(android.content.Context, java.util.List<java.lang.String>);
-    method public static java.lang.String getPackageName(android.content.Context, java.util.List<java.lang.String>, boolean);
-    method public androidx.browser.customtabs.CustomTabsSession newSession(androidx.browser.customtabs.CustomTabsCallback);
+    method public static boolean bindCustomTabsService(android.content.Context!, String!, androidx.browser.customtabs.CustomTabsServiceConnection!);
+    method public static boolean connectAndInitialize(android.content.Context!, String!);
+    method public android.os.Bundle! extraCommand(String!, android.os.Bundle!);
+    method public static String! getPackageName(android.content.Context!, java.util.List<java.lang.String>?);
+    method public static String! getPackageName(android.content.Context!, java.util.List<java.lang.String>?, boolean);
+    method public androidx.browser.customtabs.CustomTabsSession! newSession(androidx.browser.customtabs.CustomTabsCallback!);
     method public boolean warmup(long);
   }
 
   public final class CustomTabsIntent {
     method public static int getMaxToolbarItems();
-    method public void launchUrl(android.content.Context, android.net.Uri);
-    method public static android.content.Intent setAlwaysUseBrowserUI(android.content.Intent);
-    method public static boolean shouldAlwaysUseBrowserUI(android.content.Intent);
-    field public static final java.lang.String EXTRA_ACTION_BUTTON_BUNDLE = "android.support.customtabs.extra.ACTION_BUTTON_BUNDLE";
-    field public static final java.lang.String EXTRA_CLOSE_BUTTON_ICON = "android.support.customtabs.extra.CLOSE_BUTTON_ICON";
-    field public static final java.lang.String EXTRA_DEFAULT_SHARE_MENU_ITEM = "android.support.customtabs.extra.SHARE_MENU_ITEM";
-    field public static final java.lang.String EXTRA_ENABLE_INSTANT_APPS = "android.support.customtabs.extra.EXTRA_ENABLE_INSTANT_APPS";
-    field public static final java.lang.String EXTRA_ENABLE_URLBAR_HIDING = "android.support.customtabs.extra.ENABLE_URLBAR_HIDING";
-    field public static final java.lang.String EXTRA_EXIT_ANIMATION_BUNDLE = "android.support.customtabs.extra.EXIT_ANIMATION_BUNDLE";
-    field public static final java.lang.String EXTRA_MENU_ITEMS = "android.support.customtabs.extra.MENU_ITEMS";
-    field public static final java.lang.String EXTRA_REMOTEVIEWS = "android.support.customtabs.extra.EXTRA_REMOTEVIEWS";
-    field public static final java.lang.String EXTRA_REMOTEVIEWS_CLICKED_ID = "android.support.customtabs.extra.EXTRA_REMOTEVIEWS_CLICKED_ID";
-    field public static final java.lang.String EXTRA_REMOTEVIEWS_PENDINGINTENT = "android.support.customtabs.extra.EXTRA_REMOTEVIEWS_PENDINGINTENT";
-    field public static final java.lang.String EXTRA_REMOTEVIEWS_VIEW_IDS = "android.support.customtabs.extra.EXTRA_REMOTEVIEWS_VIEW_IDS";
-    field public static final java.lang.String EXTRA_SECONDARY_TOOLBAR_COLOR = "android.support.customtabs.extra.SECONDARY_TOOLBAR_COLOR";
-    field public static final java.lang.String EXTRA_SESSION = "android.support.customtabs.extra.SESSION";
-    field public static final java.lang.String EXTRA_TINT_ACTION_BUTTON = "android.support.customtabs.extra.TINT_ACTION_BUTTON";
-    field public static final java.lang.String EXTRA_TITLE_VISIBILITY_STATE = "android.support.customtabs.extra.TITLE_VISIBILITY";
-    field public static final java.lang.String EXTRA_TOOLBAR_COLOR = "android.support.customtabs.extra.TOOLBAR_COLOR";
-    field public static final java.lang.String EXTRA_TOOLBAR_ITEMS = "android.support.customtabs.extra.TOOLBAR_ITEMS";
-    field public static final java.lang.String KEY_DESCRIPTION = "android.support.customtabs.customaction.DESCRIPTION";
-    field public static final java.lang.String KEY_ICON = "android.support.customtabs.customaction.ICON";
-    field public static final java.lang.String KEY_ID = "android.support.customtabs.customaction.ID";
-    field public static final java.lang.String KEY_MENU_ITEM_TITLE = "android.support.customtabs.customaction.MENU_ITEM_TITLE";
-    field public static final java.lang.String KEY_PENDING_INTENT = "android.support.customtabs.customaction.PENDING_INTENT";
+    method public void launchUrl(android.content.Context!, android.net.Uri!);
+    method public static android.content.Intent! setAlwaysUseBrowserUI(android.content.Intent!);
+    method public static boolean shouldAlwaysUseBrowserUI(android.content.Intent!);
+    field public static final String EXTRA_ACTION_BUTTON_BUNDLE = "android.support.customtabs.extra.ACTION_BUTTON_BUNDLE";
+    field public static final String EXTRA_CLOSE_BUTTON_ICON = "android.support.customtabs.extra.CLOSE_BUTTON_ICON";
+    field public static final String EXTRA_DEFAULT_SHARE_MENU_ITEM = "android.support.customtabs.extra.SHARE_MENU_ITEM";
+    field public static final String EXTRA_ENABLE_INSTANT_APPS = "android.support.customtabs.extra.EXTRA_ENABLE_INSTANT_APPS";
+    field public static final String EXTRA_ENABLE_URLBAR_HIDING = "android.support.customtabs.extra.ENABLE_URLBAR_HIDING";
+    field public static final String EXTRA_EXIT_ANIMATION_BUNDLE = "android.support.customtabs.extra.EXIT_ANIMATION_BUNDLE";
+    field public static final String EXTRA_MENU_ITEMS = "android.support.customtabs.extra.MENU_ITEMS";
+    field public static final String EXTRA_REMOTEVIEWS = "android.support.customtabs.extra.EXTRA_REMOTEVIEWS";
+    field public static final String EXTRA_REMOTEVIEWS_CLICKED_ID = "android.support.customtabs.extra.EXTRA_REMOTEVIEWS_CLICKED_ID";
+    field public static final String EXTRA_REMOTEVIEWS_PENDINGINTENT = "android.support.customtabs.extra.EXTRA_REMOTEVIEWS_PENDINGINTENT";
+    field public static final String EXTRA_REMOTEVIEWS_VIEW_IDS = "android.support.customtabs.extra.EXTRA_REMOTEVIEWS_VIEW_IDS";
+    field public static final String EXTRA_SECONDARY_TOOLBAR_COLOR = "android.support.customtabs.extra.SECONDARY_TOOLBAR_COLOR";
+    field public static final String EXTRA_SESSION = "android.support.customtabs.extra.SESSION";
+    field public static final String EXTRA_TINT_ACTION_BUTTON = "android.support.customtabs.extra.TINT_ACTION_BUTTON";
+    field public static final String EXTRA_TITLE_VISIBILITY_STATE = "android.support.customtabs.extra.TITLE_VISIBILITY";
+    field public static final String EXTRA_TOOLBAR_COLOR = "android.support.customtabs.extra.TOOLBAR_COLOR";
+    field public static final String EXTRA_TOOLBAR_ITEMS = "android.support.customtabs.extra.TOOLBAR_ITEMS";
+    field public static final String KEY_DESCRIPTION = "android.support.customtabs.customaction.DESCRIPTION";
+    field public static final String KEY_ICON = "android.support.customtabs.customaction.ICON";
+    field public static final String KEY_ID = "android.support.customtabs.customaction.ID";
+    field public static final String KEY_MENU_ITEM_TITLE = "android.support.customtabs.customaction.MENU_ITEM_TITLE";
+    field public static final String KEY_PENDING_INTENT = "android.support.customtabs.customaction.PENDING_INTENT";
     field public static final int NO_TITLE = 0; // 0x0
     field public static final int SHOW_PAGE_TITLE = 1; // 0x1
     field public static final int TOOLBAR_ACTION_BUTTON_ID = 0; // 0x0
     field public final android.content.Intent intent;
-    field public final android.os.Bundle startAnimationBundle;
+    field public final android.os.Bundle? startAnimationBundle;
   }
 
   public static final class CustomTabsIntent.Builder {
     ctor public CustomTabsIntent.Builder();
-    ctor public CustomTabsIntent.Builder(androidx.browser.customtabs.CustomTabsSession);
-    method public androidx.browser.customtabs.CustomTabsIntent.Builder addDefaultShareMenuItem();
-    method public androidx.browser.customtabs.CustomTabsIntent.Builder addMenuItem(java.lang.String, android.app.PendingIntent);
-    method public deprecated androidx.browser.customtabs.CustomTabsIntent.Builder addToolbarItem(int, android.graphics.Bitmap, java.lang.String, android.app.PendingIntent) throws java.lang.IllegalStateException;
-    method public androidx.browser.customtabs.CustomTabsIntent build();
-    method public androidx.browser.customtabs.CustomTabsIntent.Builder enableUrlBarHiding();
-    method public androidx.browser.customtabs.CustomTabsIntent.Builder setActionButton(android.graphics.Bitmap, java.lang.String, android.app.PendingIntent, boolean);
-    method public androidx.browser.customtabs.CustomTabsIntent.Builder setActionButton(android.graphics.Bitmap, java.lang.String, android.app.PendingIntent);
-    method public androidx.browser.customtabs.CustomTabsIntent.Builder setCloseButtonIcon(android.graphics.Bitmap);
-    method public androidx.browser.customtabs.CustomTabsIntent.Builder setExitAnimations(android.content.Context, int, int);
-    method public androidx.browser.customtabs.CustomTabsIntent.Builder setInstantAppsEnabled(boolean);
-    method public androidx.browser.customtabs.CustomTabsIntent.Builder setSecondaryToolbarColor(int);
-    method public androidx.browser.customtabs.CustomTabsIntent.Builder setSecondaryToolbarViews(android.widget.RemoteViews, int[], android.app.PendingIntent);
-    method public androidx.browser.customtabs.CustomTabsIntent.Builder setShowTitle(boolean);
-    method public androidx.browser.customtabs.CustomTabsIntent.Builder setStartAnimations(android.content.Context, int, int);
-    method public androidx.browser.customtabs.CustomTabsIntent.Builder setToolbarColor(int);
+    ctor public CustomTabsIntent.Builder(androidx.browser.customtabs.CustomTabsSession?);
+    method public androidx.browser.customtabs.CustomTabsIntent.Builder! addDefaultShareMenuItem();
+    method public androidx.browser.customtabs.CustomTabsIntent.Builder! addMenuItem(String, android.app.PendingIntent);
+    method @Deprecated public androidx.browser.customtabs.CustomTabsIntent.Builder! addToolbarItem(int, android.graphics.Bitmap, String, android.app.PendingIntent!) throws java.lang.IllegalStateException;
+    method public androidx.browser.customtabs.CustomTabsIntent! build();
+    method public androidx.browser.customtabs.CustomTabsIntent.Builder! enableUrlBarHiding();
+    method public androidx.browser.customtabs.CustomTabsIntent.Builder! setActionButton(android.graphics.Bitmap, String, android.app.PendingIntent, boolean);
+    method public androidx.browser.customtabs.CustomTabsIntent.Builder! setActionButton(android.graphics.Bitmap, String, android.app.PendingIntent);
+    method public androidx.browser.customtabs.CustomTabsIntent.Builder! setCloseButtonIcon(android.graphics.Bitmap);
+    method public androidx.browser.customtabs.CustomTabsIntent.Builder! setExitAnimations(android.content.Context, @AnimRes int, @AnimRes int);
+    method public androidx.browser.customtabs.CustomTabsIntent.Builder! setInstantAppsEnabled(boolean);
+    method public androidx.browser.customtabs.CustomTabsIntent.Builder! setSecondaryToolbarColor(@ColorInt int);
+    method public androidx.browser.customtabs.CustomTabsIntent.Builder! setSecondaryToolbarViews(android.widget.RemoteViews, int[]?, android.app.PendingIntent?);
+    method public androidx.browser.customtabs.CustomTabsIntent.Builder! setShowTitle(boolean);
+    method public androidx.browser.customtabs.CustomTabsIntent.Builder! setStartAnimations(android.content.Context, @AnimRes int, @AnimRes int);
+    method public androidx.browser.customtabs.CustomTabsIntent.Builder! setToolbarColor(@ColorInt int);
   }
 
   public abstract class CustomTabsService extends android.app.Service {
     ctor public CustomTabsService();
-    method protected boolean cleanUpSession(androidx.browser.customtabs.CustomTabsSessionToken);
-    method protected abstract android.os.Bundle extraCommand(java.lang.String, android.os.Bundle);
-    method protected abstract boolean mayLaunchUrl(androidx.browser.customtabs.CustomTabsSessionToken, android.net.Uri, android.os.Bundle, java.util.List<android.os.Bundle>);
-    method protected abstract boolean newSession(androidx.browser.customtabs.CustomTabsSessionToken);
-    method public android.os.IBinder onBind(android.content.Intent);
-    method protected abstract int postMessage(androidx.browser.customtabs.CustomTabsSessionToken, java.lang.String, android.os.Bundle);
-    method protected abstract boolean requestPostMessageChannel(androidx.browser.customtabs.CustomTabsSessionToken, android.net.Uri);
-    method protected abstract boolean updateVisuals(androidx.browser.customtabs.CustomTabsSessionToken, android.os.Bundle);
-    method protected abstract boolean validateRelationship(androidx.browser.customtabs.CustomTabsSessionToken, int, android.net.Uri, android.os.Bundle);
+    method protected boolean cleanUpSession(androidx.browser.customtabs.CustomTabsSessionToken!);
+    method protected abstract android.os.Bundle! extraCommand(String!, android.os.Bundle!);
+    method protected abstract boolean mayLaunchUrl(androidx.browser.customtabs.CustomTabsSessionToken!, android.net.Uri!, android.os.Bundle!, java.util.List<android.os.Bundle>!);
+    method protected abstract boolean newSession(androidx.browser.customtabs.CustomTabsSessionToken!);
+    method public android.os.IBinder! onBind(android.content.Intent!);
+    method @androidx.browser.customtabs.CustomTabsService.Result protected abstract int postMessage(androidx.browser.customtabs.CustomTabsSessionToken!, String!, android.os.Bundle!);
+    method protected abstract boolean requestPostMessageChannel(androidx.browser.customtabs.CustomTabsSessionToken!, android.net.Uri!);
+    method protected abstract boolean updateVisuals(androidx.browser.customtabs.CustomTabsSessionToken!, android.os.Bundle!);
+    method protected abstract boolean validateRelationship(androidx.browser.customtabs.CustomTabsSessionToken!, @androidx.browser.customtabs.CustomTabsService.Relation int, android.net.Uri!, android.os.Bundle!);
     method protected abstract boolean warmup(long);
-    field public static final java.lang.String ACTION_CUSTOM_TABS_CONNECTION = "android.support.customtabs.action.CustomTabsService";
-    field public static final java.lang.String KEY_URL = "android.support.customtabs.otherurls.URL";
+    field public static final String ACTION_CUSTOM_TABS_CONNECTION = "android.support.customtabs.action.CustomTabsService";
+    field public static final String KEY_URL = "android.support.customtabs.otherurls.URL";
     field public static final int RELATION_HANDLE_ALL_URLS = 2; // 0x2
     field public static final int RELATION_USE_AS_ORIGIN = 1; // 0x1
     field public static final int RESULT_FAILURE_DISALLOWED = -1; // 0xffffffff
@@ -152,56 +153,56 @@
     field public static final int RESULT_SUCCESS = 0; // 0x0
   }
 
-  public static abstract class CustomTabsService.Relation implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @IntDef({androidx.browser.customtabs.CustomTabsService.RELATION_USE_AS_ORIGIN, androidx.browser.customtabs.CustomTabsService.RELATION_HANDLE_ALL_URLS}) public static @interface CustomTabsService.Relation {
   }
 
-  public static abstract class CustomTabsService.Result implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @IntDef({androidx.browser.customtabs.CustomTabsService.RESULT_SUCCESS, androidx.browser.customtabs.CustomTabsService.RESULT_FAILURE_DISALLOWED, androidx.browser.customtabs.CustomTabsService.RESULT_FAILURE_REMOTE_ERROR, androidx.browser.customtabs.CustomTabsService.RESULT_FAILURE_MESSAGING_ERROR}) public static @interface CustomTabsService.Result {
   }
 
   public abstract class CustomTabsServiceConnection implements android.content.ServiceConnection {
     ctor public CustomTabsServiceConnection();
-    method public abstract void onCustomTabsServiceConnected(android.content.ComponentName, androidx.browser.customtabs.CustomTabsClient);
-    method public final void onServiceConnected(android.content.ComponentName, android.os.IBinder);
+    method public abstract void onCustomTabsServiceConnected(android.content.ComponentName!, androidx.browser.customtabs.CustomTabsClient!);
+    method public final void onServiceConnected(android.content.ComponentName!, android.os.IBinder!);
   }
 
   public final class CustomTabsSession {
-    method public static androidx.browser.customtabs.CustomTabsSession createMockSessionForTesting(android.content.ComponentName);
-    method public boolean mayLaunchUrl(android.net.Uri, android.os.Bundle, java.util.List<android.os.Bundle>);
-    method public int postMessage(java.lang.String, android.os.Bundle);
-    method public boolean requestPostMessageChannel(android.net.Uri);
-    method public boolean setActionButton(android.graphics.Bitmap, java.lang.String);
-    method public boolean setSecondaryToolbarViews(android.widget.RemoteViews, int[], android.app.PendingIntent);
-    method public deprecated boolean setToolbarItem(int, android.graphics.Bitmap, java.lang.String);
-    method public boolean validateRelationship(int, android.net.Uri, android.os.Bundle);
+    method @VisibleForTesting public static androidx.browser.customtabs.CustomTabsSession createMockSessionForTesting(android.content.ComponentName);
+    method public boolean mayLaunchUrl(android.net.Uri!, android.os.Bundle!, java.util.List<android.os.Bundle>!);
+    method @androidx.browser.customtabs.CustomTabsService.Result public int postMessage(String!, android.os.Bundle!);
+    method public boolean requestPostMessageChannel(android.net.Uri!);
+    method public boolean setActionButton(android.graphics.Bitmap, String);
+    method public boolean setSecondaryToolbarViews(android.widget.RemoteViews?, int[]?, android.app.PendingIntent?);
+    method @Deprecated public boolean setToolbarItem(int, android.graphics.Bitmap, String);
+    method public boolean validateRelationship(@androidx.browser.customtabs.CustomTabsService.Relation int, android.net.Uri, android.os.Bundle?);
   }
 
   public class CustomTabsSessionToken {
     method public static androidx.browser.customtabs.CustomTabsSessionToken createMockSessionTokenForTesting();
-    method public androidx.browser.customtabs.CustomTabsCallback getCallback();
-    method public static androidx.browser.customtabs.CustomTabsSessionToken getSessionTokenFromIntent(android.content.Intent);
-    method public boolean isAssociatedWith(androidx.browser.customtabs.CustomTabsSession);
+    method public androidx.browser.customtabs.CustomTabsCallback! getCallback();
+    method public static androidx.browser.customtabs.CustomTabsSessionToken! getSessionTokenFromIntent(android.content.Intent!);
+    method public boolean isAssociatedWith(androidx.browser.customtabs.CustomTabsSession!);
   }
 
   public class PostMessageService extends android.app.Service {
     ctor public PostMessageService();
-    method public android.os.IBinder onBind(android.content.Intent);
+    method public android.os.IBinder! onBind(android.content.Intent!);
   }
 
   public abstract class PostMessageServiceConnection implements android.content.ServiceConnection {
-    ctor public PostMessageServiceConnection(androidx.browser.customtabs.CustomTabsSessionToken);
-    method public boolean bindSessionToPostMessageService(android.content.Context, java.lang.String);
-    method public final boolean notifyMessageChannelReady(android.os.Bundle);
+    ctor public PostMessageServiceConnection(androidx.browser.customtabs.CustomTabsSessionToken!);
+    method public boolean bindSessionToPostMessageService(android.content.Context!, String!);
+    method public final boolean notifyMessageChannelReady(android.os.Bundle!);
     method public void onPostMessageServiceConnected();
     method public void onPostMessageServiceDisconnected();
-    method public final void onServiceConnected(android.content.ComponentName, android.os.IBinder);
-    method public final void onServiceDisconnected(android.content.ComponentName);
-    method public final boolean postMessage(java.lang.String, android.os.Bundle);
-    method public void unbindFromContext(android.content.Context);
+    method public final void onServiceConnected(android.content.ComponentName!, android.os.IBinder!);
+    method public final void onServiceDisconnected(android.content.ComponentName!);
+    method public final boolean postMessage(String!, android.os.Bundle!);
+    method public void unbindFromContext(android.content.Context!);
   }
 
   public class TrustedWebUtils {
     method public static void launchAsTrustedWebActivity(android.content.Context, androidx.browser.customtabs.CustomTabsIntent, android.net.Uri);
-    field public static final java.lang.String EXTRA_LAUNCH_AS_TRUSTED_WEB_ACTIVITY = "android.support.customtabs.extra.LAUNCH_AS_TRUSTED_WEB_ACTIVITY";
+    field public static final String EXTRA_LAUNCH_AS_TRUSTED_WEB_ACTIVITY = "android.support.customtabs.extra.LAUNCH_AS_TRUSTED_WEB_ACTIVITY";
   }
 
 }
diff --git a/buildSrc/src/main/kotlin/androidx/build/SupportLibraryExtension.kt b/buildSrc/src/main/kotlin/androidx/build/SupportLibraryExtension.kt
index cbd6c65..cf7d6cd 100644
--- a/buildSrc/src/main/kotlin/androidx/build/SupportLibraryExtension.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/SupportLibraryExtension.kt
@@ -37,7 +37,7 @@
 
     var compilationTarget: CompilationTarget = CompilationTarget.DEVICE
 
-    var useMetalava = false
+    var useMetalava = true
 
     /**
      * It disables docs generation and api tracking for tooling modules like annotation processors.
diff --git a/buildSrc/src/main/kotlin/androidx/build/metalava/Metalava.kt b/buildSrc/src/main/kotlin/androidx/build/metalava/Metalava.kt
index ae9dd03..db4fd30 100644
--- a/buildSrc/src/main/kotlin/androidx/build/metalava/Metalava.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/metalava/Metalava.kt
@@ -31,7 +31,7 @@
 object Metalava {
     private fun Project.createMetalavaConfiguration(): Configuration {
         return configurations.create("metalava") {
-            val dependency = dependencies.create("com.android:metalava:1.1.0-SNAPSHOT:shadow@jar")
+            val dependency = dependencies.create("com.android:metalava:1.1.2-SNAPSHOT:shadow@jar")
             it.dependencies.add(dependency)
         }
     }
diff --git a/car/cluster/api/current.txt b/car/cluster/api/current.txt
index 54aec24..365253ef 100644
--- a/car/cluster/api/current.txt
+++ b/car/cluster/api/current.txt
@@ -1,33 +1,32 @@
+// Signature format: 2.0
 package androidx.car.cluster.navigation {
 
   public final class Destination implements androidx.versionedparcelable.VersionedParcelable {
-    method public java.lang.String getAddress();
-    method public androidx.car.cluster.navigation.Distance getDistance();
-    method public java.time.ZonedDateTime getEta();
-    method public android.location.Location getLocation();
-    method public java.lang.String getTitle();
+    method public String getAddress();
+    method public androidx.car.cluster.navigation.Distance? getDistance();
+    method public java.time.ZonedDateTime? getEta();
+    method public android.location.Location? getLocation();
+    method public String getTitle();
   }
 
   public static final class Destination.Builder {
     ctor public Destination.Builder();
     method public androidx.car.cluster.navigation.Destination build();
-    method public androidx.car.cluster.navigation.Destination.Builder setAddress(java.lang.String);
-    method public androidx.car.cluster.navigation.Destination.Builder setDistance(androidx.car.cluster.navigation.Distance);
-    method public androidx.car.cluster.navigation.Destination.Builder setEta(java.time.ZonedDateTime);
-    method public androidx.car.cluster.navigation.Destination.Builder setLocation(android.location.Location);
-    method public androidx.car.cluster.navigation.Destination.Builder setTitle(java.lang.String);
+    method public androidx.car.cluster.navigation.Destination.Builder setAddress(String);
+    method public androidx.car.cluster.navigation.Destination.Builder setDistance(androidx.car.cluster.navigation.Distance?);
+    method public androidx.car.cluster.navigation.Destination.Builder setEta(java.time.ZonedDateTime?);
+    method public androidx.car.cluster.navigation.Destination.Builder setLocation(android.location.Location?);
+    method public androidx.car.cluster.navigation.Destination.Builder setTitle(String);
   }
 
   public final class Distance implements androidx.versionedparcelable.VersionedParcelable {
-    ctor public Distance(int, java.lang.String, androidx.car.cluster.navigation.Distance.Unit);
+    ctor public Distance(int, String, androidx.car.cluster.navigation.Distance.Unit);
     method public androidx.car.cluster.navigation.Distance.Unit getDisplayUnit();
-    method public java.lang.String getDisplayValue();
+    method public String getDisplayValue();
     method public int getMeters();
   }
 
-  public static final class Distance.Unit extends java.lang.Enum {
-    method public static androidx.car.cluster.navigation.Distance.Unit valueOf(java.lang.String);
-    method public static final androidx.car.cluster.navigation.Distance.Unit[] values();
+  public static enum Distance.Unit {
     enum_constant public static final androidx.car.cluster.navigation.Distance.Unit FEET;
     enum_constant public static final androidx.car.cluster.navigation.Distance.Unit KILOMETERS;
     enum_constant public static final androidx.car.cluster.navigation.Distance.Unit METERS;
@@ -58,9 +57,7 @@
     method public androidx.car.cluster.navigation.LaneDirection.Builder setShape(androidx.car.cluster.navigation.LaneDirection.Shape, androidx.car.cluster.navigation.LaneDirection.Shape...);
   }
 
-  public static final class LaneDirection.Shape extends java.lang.Enum {
-    method public static androidx.car.cluster.navigation.LaneDirection.Shape valueOf(java.lang.String);
-    method public static final androidx.car.cluster.navigation.LaneDirection.Shape[] values();
+  public static enum LaneDirection.Shape {
     enum_constant public static final androidx.car.cluster.navigation.LaneDirection.Shape NORMAL_LEFT;
     enum_constant public static final androidx.car.cluster.navigation.LaneDirection.Shape NORMAL_RIGHT;
     enum_constant public static final androidx.car.cluster.navigation.LaneDirection.Shape SHARP_LEFT;
@@ -85,9 +82,7 @@
     method public androidx.car.cluster.navigation.Maneuver.Builder setType(androidx.car.cluster.navigation.Maneuver.Type, androidx.car.cluster.navigation.Maneuver.Type...);
   }
 
-  public static final class Maneuver.Type extends java.lang.Enum {
-    method public static androidx.car.cluster.navigation.Maneuver.Type valueOf(java.lang.String);
-    method public static final androidx.car.cluster.navigation.Maneuver.Type[] values();
+  public static enum Maneuver.Type {
     enum_constant public static final androidx.car.cluster.navigation.Maneuver.Type DEPART;
     enum_constant public static final androidx.car.cluster.navigation.Maneuver.Type DESTINATION;
     enum_constant public static final androidx.car.cluster.navigation.Maneuver.Type DESTINATION_LEFT;
@@ -145,7 +140,7 @@
   }
 
   public final class NavigationState implements androidx.versionedparcelable.VersionedParcelable {
-    method public static androidx.car.cluster.navigation.NavigationState fromParcelable(android.os.Parcelable);
+    method public static androidx.car.cluster.navigation.NavigationState! fromParcelable(android.os.Parcelable?);
     method public java.util.List<androidx.car.cluster.navigation.Destination> getDestinations();
     method public java.util.List<androidx.car.cluster.navigation.Step> getSteps();
     method public android.os.Parcelable toParcelable();
@@ -159,17 +154,17 @@
   }
 
   public final class Step implements androidx.versionedparcelable.VersionedParcelable {
-    method public androidx.car.cluster.navigation.Distance getDistance();
+    method public androidx.car.cluster.navigation.Distance? getDistance();
     method public java.util.List<androidx.car.cluster.navigation.Lane> getLanes();
-    method public androidx.car.cluster.navigation.Maneuver getManeuver();
+    method public androidx.car.cluster.navigation.Maneuver? getManeuver();
   }
 
   public static final class Step.Builder {
     ctor public Step.Builder();
     method public androidx.car.cluster.navigation.Step.Builder addLane(androidx.car.cluster.navigation.Lane);
     method public androidx.car.cluster.navigation.Step build();
-    method public androidx.car.cluster.navigation.Step.Builder setDistance(androidx.car.cluster.navigation.Distance);
-    method public androidx.car.cluster.navigation.Step.Builder setManeuver(androidx.car.cluster.navigation.Maneuver);
+    method public androidx.car.cluster.navigation.Step.Builder setDistance(androidx.car.cluster.navigation.Distance?);
+    method public androidx.car.cluster.navigation.Step.Builder setManeuver(androidx.car.cluster.navigation.Maneuver?);
   }
 
 }
diff --git a/car/core/api/current.txt b/car/core/api/current.txt
index 36fff9a..ca0ef64 100644
--- a/car/core/api/current.txt
+++ b/car/core/api/current.txt
@@ -1,45 +1,46 @@
+// Signature format: 2.0
 package androidx.car.app {
 
   public class CarAlertDialog extends android.app.Dialog {
   }
 
   public static final class CarAlertDialog.Builder {
-    ctor public CarAlertDialog.Builder(android.content.Context);
-    method public androidx.car.app.CarAlertDialog create();
-    method public androidx.car.app.CarAlertDialog.Builder setBody(int);
-    method public androidx.car.app.CarAlertDialog.Builder setBody(java.lang.CharSequence);
-    method public androidx.car.app.CarAlertDialog.Builder setCancelable(boolean);
-    method public androidx.car.app.CarAlertDialog.Builder setNegativeButton(int, android.content.DialogInterface.OnClickListener);
-    method public androidx.car.app.CarAlertDialog.Builder setNegativeButton(java.lang.CharSequence, android.content.DialogInterface.OnClickListener);
-    method public androidx.car.app.CarAlertDialog.Builder setOnCancelListener(android.content.DialogInterface.OnCancelListener);
-    method public androidx.car.app.CarAlertDialog.Builder setOnDismissListener(android.content.DialogInterface.OnDismissListener);
-    method public androidx.car.app.CarAlertDialog.Builder setPositiveButton(int, android.content.DialogInterface.OnClickListener);
-    method public androidx.car.app.CarAlertDialog.Builder setPositiveButton(java.lang.CharSequence, android.content.DialogInterface.OnClickListener);
-    method public androidx.car.app.CarAlertDialog.Builder setTitle(int);
-    method public androidx.car.app.CarAlertDialog.Builder setTitle(java.lang.CharSequence);
+    ctor public CarAlertDialog.Builder(android.content.Context!);
+    method public androidx.car.app.CarAlertDialog! create();
+    method public androidx.car.app.CarAlertDialog.Builder! setBody(@StringRes int);
+    method public androidx.car.app.CarAlertDialog.Builder! setBody(CharSequence!);
+    method public androidx.car.app.CarAlertDialog.Builder! setCancelable(boolean);
+    method public androidx.car.app.CarAlertDialog.Builder! setNegativeButton(@StringRes int, android.content.DialogInterface.OnClickListener?);
+    method public androidx.car.app.CarAlertDialog.Builder! setNegativeButton(CharSequence!, android.content.DialogInterface.OnClickListener?);
+    method public androidx.car.app.CarAlertDialog.Builder! setOnCancelListener(android.content.DialogInterface.OnCancelListener!);
+    method public androidx.car.app.CarAlertDialog.Builder! setOnDismissListener(android.content.DialogInterface.OnDismissListener!);
+    method public androidx.car.app.CarAlertDialog.Builder! setPositiveButton(@StringRes int, android.content.DialogInterface.OnClickListener?);
+    method public androidx.car.app.CarAlertDialog.Builder! setPositiveButton(CharSequence!, android.content.DialogInterface.OnClickListener?);
+    method public androidx.car.app.CarAlertDialog.Builder! setTitle(@StringRes int);
+    method public androidx.car.app.CarAlertDialog.Builder! setTitle(CharSequence!);
   }
 
   public class CarListDialog extends android.app.Dialog {
   }
 
   public static final class CarListDialog.Builder {
-    ctor public CarListDialog.Builder(android.content.Context);
-    method public androidx.car.app.CarListDialog create();
+    ctor public CarListDialog.Builder(android.content.Context!);
+    method public androidx.car.app.CarListDialog! create();
     method public androidx.car.app.CarListDialog.Builder setCancelable(boolean);
     method public androidx.car.app.CarListDialog.Builder setInitialPosition(int);
-    method public androidx.car.app.CarListDialog.Builder setItems(java.lang.CharSequence[], android.content.DialogInterface.OnClickListener);
-    method public androidx.car.app.CarListDialog.Builder setItems(androidx.car.app.CarListDialog.DialogSubSection[], android.content.DialogInterface.OnClickListener);
-    method public androidx.car.app.CarListDialog.Builder setOnCancelListener(android.content.DialogInterface.OnCancelListener);
-    method public androidx.car.app.CarListDialog.Builder setOnDismissListener(android.content.DialogInterface.OnDismissListener);
-    method public androidx.car.app.CarListDialog.Builder setTitle(int);
-    method public androidx.car.app.CarListDialog.Builder setTitle(java.lang.CharSequence);
+    method public androidx.car.app.CarListDialog.Builder setItems(CharSequence[], android.content.DialogInterface.OnClickListener?);
+    method public androidx.car.app.CarListDialog.Builder setItems(androidx.car.app.CarListDialog.DialogSubSection[], android.content.DialogInterface.OnClickListener?);
+    method public androidx.car.app.CarListDialog.Builder setOnCancelListener(android.content.DialogInterface.OnCancelListener!);
+    method public androidx.car.app.CarListDialog.Builder setOnDismissListener(android.content.DialogInterface.OnDismissListener!);
+    method public androidx.car.app.CarListDialog.Builder setTitle(@StringRes int);
+    method public androidx.car.app.CarListDialog.Builder setTitle(CharSequence!);
   }
 
   public static class CarListDialog.DialogSubSection {
-    ctor public CarListDialog.DialogSubSection(java.lang.CharSequence, java.lang.CharSequence[]);
+    ctor public CarListDialog.DialogSubSection(CharSequence, CharSequence[]);
     method public int getItemCount();
-    method public java.lang.CharSequence[] getItems();
-    method public java.lang.CharSequence getTitle();
+    method public CharSequence[] getItems();
+    method public CharSequence getTitle();
   }
 
 }
@@ -49,26 +50,26 @@
   public class CarDrawerActivity extends androidx.appcompat.app.AppCompatActivity {
     ctor public CarDrawerActivity();
     method protected int getContentContainerId();
-    method protected androidx.car.drawer.CarDrawerController getDrawerController();
-    method public void setMainContent(android.view.View);
-    method public void setMainContent(int);
+    method protected androidx.car.drawer.CarDrawerController? getDrawerController();
+    method public void setMainContent(android.view.View!);
+    method public void setMainContent(@LayoutRes int);
     method public void setToolbarAlwaysShow();
     method public void setToolbarCollapsible();
     method public void setToolbarElevation(float);
     method public void setToolbarElevationWithAnimation(float);
   }
 
-  public abstract class CarDrawerAdapter extends androidx.recyclerview.widget.RecyclerView.Adapter implements androidx.car.widget.PagedListView.ItemCap {
-    ctor protected CarDrawerAdapter(android.content.Context, boolean);
+  public abstract class CarDrawerAdapter extends androidx.recyclerview.widget.RecyclerView.Adapter<androidx.car.drawer.DrawerItemViewHolder> implements androidx.car.widget.PagedListView.ItemCap {
+    ctor protected CarDrawerAdapter(android.content.Context!, boolean);
     method public void cleanup();
     method protected abstract int getActualItemCount();
     method public final int getItemCount();
     method public final int getItemViewType(int);
-    method public final void onBindViewHolder(androidx.car.drawer.DrawerItemViewHolder, int);
-    method public final androidx.car.drawer.DrawerItemViewHolder onCreateViewHolder(android.view.ViewGroup, int);
-    method protected abstract void populateViewHolder(androidx.car.drawer.DrawerItemViewHolder, int);
+    method public final void onBindViewHolder(androidx.car.drawer.DrawerItemViewHolder!, int);
+    method public final androidx.car.drawer.DrawerItemViewHolder! onCreateViewHolder(android.view.ViewGroup!, int);
+    method protected abstract void populateViewHolder(androidx.car.drawer.DrawerItemViewHolder!, int);
     method public final void setMaxItems(int);
-    method public final void setTitle(java.lang.CharSequence);
+    method public final void setTitle(CharSequence?);
     method public void start();
     method public void stop();
     method protected boolean usesSmallLayout(int);
@@ -78,24 +79,24 @@
     ctor public CarDrawerController(androidx.drawerlayout.widget.DrawerLayout, androidx.appcompat.app.ActionBarDrawerToggle);
     method public void addDrawerListener(androidx.drawerlayout.widget.DrawerLayout.DrawerListener);
     method public void closeDrawer();
-    method public void onConfigurationChanged(android.content.res.Configuration);
-    method public boolean onOptionsItemSelected(android.view.MenuItem);
+    method public void onConfigurationChanged(android.content.res.Configuration!);
+    method public boolean onOptionsItemSelected(android.view.MenuItem!);
     method public void openDrawer();
-    method public final void pushAdapter(androidx.car.drawer.CarDrawerAdapter);
+    method public final void pushAdapter(androidx.car.drawer.CarDrawerAdapter!);
     method public void removeDrawerListener(androidx.drawerlayout.widget.DrawerLayout.DrawerListener);
     method public void scrollToPosition(int);
-    method public void setRootAdapter(androidx.car.drawer.CarDrawerAdapter);
+    method public void setRootAdapter(androidx.car.drawer.CarDrawerAdapter?);
     method public void showLoadingProgressBar(boolean);
     method public void syncState();
   }
 
   public class DrawerItemViewHolder extends androidx.recyclerview.widget.RecyclerView.ViewHolder implements androidx.car.uxrestrictions.OnUxRestrictionsChangedListener {
-    ctor public DrawerItemViewHolder(android.view.View);
-    method public android.widget.TextView getBodyView();
-    method public android.widget.ImageView getEndIconView();
+    ctor @VisibleForTesting(otherwise=androidx.annotation.VisibleForTesting.PACKAGE_PRIVATE) public DrawerItemViewHolder(android.view.View);
+    method public android.widget.TextView? getBodyView();
+    method public android.widget.ImageView? getEndIconView();
     method public android.widget.ImageView getIconView();
     method public android.widget.TextView getTitleView();
-    method public void onUxRestrictionsChanged(androidx.car.uxrestrictions.CarUxRestrictions);
+    method public void onUxRestrictionsChanged(androidx.car.uxrestrictions.CarUxRestrictions!);
   }
 
 }
@@ -103,12 +104,12 @@
 package androidx.car.util {
 
   public class ColumnCalculator {
-    method public int getColumnWidth();
-    method public int getGutterSize();
-    method public static androidx.car.util.ColumnCalculator getInstance(android.content.Context);
+    method @Px public int getColumnWidth();
+    method @Px public int getGutterSize();
+    method public static androidx.car.util.ColumnCalculator! getInstance(android.content.Context!);
     method public int getNumOfColumns();
     method public int getNumOfGutters();
-    method public int getSizeForColumnSpan(int);
+    method @Px public int getSizeForColumnSpan(int);
   }
 
 }
@@ -116,13 +117,13 @@
 package androidx.car.uxrestrictions {
 
   public final class CarUxRestrictions {
-    ctor public CarUxRestrictions(androidx.car.uxrestrictions.CarUxRestrictions);
+    ctor public CarUxRestrictions(androidx.car.uxrestrictions.CarUxRestrictions!);
     method public int getActiveRestrictions();
     method public int getMaxContentDepth();
     method public int getMaxCumulativeContentItems();
     method public int getMaxRestrictedStringLength();
     method public long getTimestamp();
-    method public boolean hasSameRestrictionsAs(androidx.car.uxrestrictions.CarUxRestrictions);
+    method public boolean hasSameRestrictionsAs(androidx.car.uxrestrictions.CarUxRestrictions!);
     method public boolean isDistractionOptimizationRequired();
     field public static final int UX_RESTRICTIONS_BASELINE = 0; // 0x0
     field public static final int UX_RESTRICTIONS_FULLY_RESTRICTED = 511; // 0x1ff
@@ -145,8 +146,8 @@
     method public androidx.car.uxrestrictions.CarUxRestrictions.Builder setMaxStringLength(int);
   }
 
-  public abstract interface OnUxRestrictionsChangedListener {
-    method public abstract void onUxRestrictionsChanged(androidx.car.uxrestrictions.CarUxRestrictions);
+  public interface OnUxRestrictionsChangedListener {
+    method public void onUxRestrictionsChanged(androidx.car.uxrestrictions.CarUxRestrictions!);
   }
 
 }
@@ -154,39 +155,39 @@
 package androidx.car.widget {
 
   public class ActionBar extends android.widget.RelativeLayout {
-    ctor public ActionBar(android.content.Context);
-    ctor public ActionBar(android.content.Context, android.util.AttributeSet);
-    ctor public ActionBar(android.content.Context, android.util.AttributeSet, int);
-    ctor public ActionBar(android.content.Context, android.util.AttributeSet, int, int);
+    ctor public ActionBar(android.content.Context!);
+    ctor public ActionBar(android.content.Context!, android.util.AttributeSet!);
+    ctor public ActionBar(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public ActionBar(android.content.Context!, android.util.AttributeSet!, int, int);
     method public void setExpandCollapseView(android.view.View);
-    method public void setView(android.view.View, int);
-    method public void setViews(android.view.View[]);
+    method public void setView(android.view.View?, @androidx.car.widget.ActionBar.SlotPosition int);
+    method public void setViews(android.view.View[]?);
     field public static final int SLOT_EXPAND_COLLAPSE = 3; // 0x3
     field public static final int SLOT_LEFT = 1; // 0x1
     field public static final int SLOT_MAIN = 0; // 0x0
     field public static final int SLOT_RIGHT = 2; // 0x2
   }
 
-  public static abstract class ActionBar.SlotPosition implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @IntDef({androidx.car.widget.ActionBar.SLOT_MAIN, androidx.car.widget.ActionBar.SLOT_LEFT, androidx.car.widget.ActionBar.SLOT_RIGHT, androidx.car.widget.ActionBar.SLOT_EXPAND_COLLAPSE}) public static @interface ActionBar.SlotPosition {
   }
 
-  public final class ActionListItem extends androidx.car.widget.ListItem {
+  public final class ActionListItem extends androidx.car.widget.ListItem<androidx.car.widget.ActionListItem.ViewHolder> {
     ctor public ActionListItem(android.content.Context);
-    method public static androidx.car.widget.ActionListItem.ViewHolder createViewHolder(android.view.View);
+    method public static androidx.car.widget.ActionListItem.ViewHolder! createViewHolder(android.view.View!);
     method protected android.content.Context getContext();
     method public int getViewType();
-    method public void onBind(androidx.car.widget.ActionListItem.ViewHolder);
+    method public void onBind(androidx.car.widget.ActionListItem.ViewHolder!);
     method protected void resolveDirtyState();
-    method public void setAction(java.lang.String, boolean, android.view.View.OnClickListener);
-    method public void setActions(java.lang.String, boolean, android.view.View.OnClickListener, java.lang.String, boolean, android.view.View.OnClickListener);
-    method public void setBody(java.lang.CharSequence);
+    method public void setAction(String, boolean, android.view.View.OnClickListener);
+    method public void setActions(String, boolean, android.view.View.OnClickListener, String, boolean, android.view.View.OnClickListener);
+    method public void setBody(CharSequence);
     method public void setEnabled(boolean);
-    method public void setOnClickListener(android.view.View.OnClickListener);
+    method public void setOnClickListener(android.view.View.OnClickListener!);
     method public void setPrimaryActionEmptyIcon();
-    method public void setPrimaryActionIcon(int, int);
-    method public void setPrimaryActionIcon(android.graphics.drawable.Drawable, int);
+    method public void setPrimaryActionIcon(@DrawableRes int, int);
+    method public void setPrimaryActionIcon(android.graphics.drawable.Drawable?, int);
     method public void setPrimaryActionNoIcon();
-    method public void setTitle(java.lang.CharSequence);
+    method public void setTitle(CharSequence);
     field public static final int PRIMARY_ACTION_ICON_SIZE_LARGE = 2; // 0x2
     field public static final int PRIMARY_ACTION_ICON_SIZE_MEDIUM = 1; // 0x1
     field public static final int PRIMARY_ACTION_ICON_SIZE_SMALL = 0; // 0x0
@@ -204,29 +205,29 @@
     method public void onUxRestrictionsChanged(androidx.car.uxrestrictions.CarUxRestrictions);
   }
 
-  public abstract interface AlphaJumpAdapter {
-    method public abstract java.util.List<androidx.car.widget.AlphaJumpBucket> getAlphaJumpBuckets();
-    method public abstract void onAlphaJumpEnter();
-    method public abstract void onAlphaJumpLeave(androidx.car.widget.AlphaJumpBucket);
+  public interface AlphaJumpAdapter {
+    method public java.util.List<androidx.car.widget.AlphaJumpBucket>! getAlphaJumpBuckets();
+    method public void onAlphaJumpEnter();
+    method public void onAlphaJumpLeave(androidx.car.widget.AlphaJumpBucket!);
   }
 
-  public abstract interface AlphaJumpBucket {
-    method public abstract int getIndex();
-    method public abstract java.lang.CharSequence getLabel();
-    method public abstract boolean isEmpty();
+  public interface AlphaJumpBucket {
+    method public int getIndex();
+    method public CharSequence! getLabel();
+    method public boolean isEmpty();
   }
 
   public class AlphaJumpBucketer {
     ctor public AlphaJumpBucketer();
-    ctor public AlphaJumpBucketer(androidx.car.widget.AlphaJumpBucketer.Bucket[]);
-    method public java.util.List<androidx.car.widget.AlphaJumpBucket> createBuckets(java.lang.String[]);
-    method public java.util.List<androidx.car.widget.AlphaJumpBucket> createBuckets(java.lang.Iterable<java.lang.String>);
-    method public java.util.List<androidx.car.widget.AlphaJumpBucket> createBuckets(java.util.Iterator<java.lang.String>);
+    ctor public AlphaJumpBucketer(androidx.car.widget.AlphaJumpBucketer.Bucket[]!);
+    method public java.util.List<androidx.car.widget.AlphaJumpBucket>! createBuckets(String[]!);
+    method public java.util.List<androidx.car.widget.AlphaJumpBucket>! createBuckets(Iterable<java.lang.String>!);
+    method public java.util.List<androidx.car.widget.AlphaJumpBucket>! createBuckets(java.util.Iterator<java.lang.String>!);
   }
 
   public static class AlphaJumpBucketer.Bucket implements androidx.car.widget.AlphaJumpBucket {
     method public int getIndex();
-    method public java.lang.CharSequence getLabel();
+    method public CharSequence! getLabel();
     method public boolean isEmpty();
   }
 
@@ -235,24 +236,24 @@
   }
 
   public class CarToolbar extends android.view.ViewGroup {
-    ctor public CarToolbar(android.content.Context);
-    ctor public CarToolbar(android.content.Context, android.util.AttributeSet);
-    ctor public CarToolbar(android.content.Context, android.util.AttributeSet, int);
-    ctor public CarToolbar(android.content.Context, android.util.AttributeSet, int, int);
-    method public java.lang.CharSequence getTitle();
-    method public void setNavigationIcon(int);
-    method public void setNavigationIcon(android.graphics.drawable.Icon);
-    method public void setNavigationIconContainerWidth(int);
-    method public void setNavigationIconOnClickListener(android.view.View.OnClickListener);
-    method public void setTitle(int);
-    method public void setTitle(java.lang.CharSequence);
-    method public void setTitleTextAppearance(int);
+    ctor public CarToolbar(android.content.Context!);
+    ctor public CarToolbar(android.content.Context!, android.util.AttributeSet!);
+    ctor public CarToolbar(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public CarToolbar(android.content.Context!, android.util.AttributeSet!, int, int);
+    method public CharSequence! getTitle();
+    method public void setNavigationIcon(@DrawableRes int);
+    method public void setNavigationIcon(android.graphics.drawable.Icon?);
+    method public void setNavigationIconContainerWidth(@Px int);
+    method public void setNavigationIconOnClickListener(android.view.View.OnClickListener?);
+    method public void setTitle(@StringRes int);
+    method public void setTitle(CharSequence!);
+    method public void setTitleTextAppearance(@StyleRes int);
   }
 
   public final class ColumnCardView extends androidx.cardview.widget.CardView {
-    ctor public ColumnCardView(android.content.Context);
-    ctor public ColumnCardView(android.content.Context, android.util.AttributeSet);
-    ctor public ColumnCardView(android.content.Context, android.util.AttributeSet, int);
+    ctor public ColumnCardView(android.content.Context!);
+    ctor public ColumnCardView(android.content.Context!, android.util.AttributeSet!);
+    ctor public ColumnCardView(android.content.Context!, android.util.AttributeSet!, int);
     method public int getColumnSpan();
     method public void onMeasure(int, int);
     method public void setColumnSpan(int);
@@ -260,38 +261,38 @@
 
   public abstract class ListItem<VH extends androidx.car.widget.ListItem.ViewHolder> {
     ctor public ListItem();
-    method public final void addViewBinder(androidx.car.widget.ListItem.ViewBinder<VH>);
-    method public final void addViewBinder(androidx.car.widget.ListItem.ViewBinder<VH>, androidx.car.widget.ListItem.ViewBinder<VH>);
+    method public final void addViewBinder(androidx.car.widget.ListItem.ViewBinder<VH>!);
+    method public final void addViewBinder(androidx.car.widget.ListItem.ViewBinder<VH>!, androidx.car.widget.ListItem.ViewBinder<VH>?);
     method public boolean getShowDivider();
     method public abstract int getViewType();
     method protected boolean isDirty();
     method protected void markClean();
     method protected void markDirty();
-    method protected abstract void onBind(VH);
-    method public boolean removeViewBinder(androidx.car.widget.ListItem.ViewBinder<VH>);
+    method protected abstract void onBind(VH!);
+    method public boolean removeViewBinder(androidx.car.widget.ListItem.ViewBinder<VH>!);
     method protected abstract void resolveDirtyState();
     method public abstract void setEnabled(boolean);
     method public void setShowDivider(boolean);
   }
 
-  public static abstract interface ListItem.ViewBinder<VH> {
-    method public abstract void bind(VH);
+  public static interface ListItem.ViewBinder<VH> {
+    method public void bind(VH!);
   }
 
-  public static abstract class ListItem.ViewHolder extends androidx.recyclerview.widget.RecyclerView.ViewHolder implements androidx.car.uxrestrictions.OnUxRestrictionsChangedListener {
-    ctor public ListItem.ViewHolder(android.view.View);
-    method public final void addCleanUp(androidx.car.widget.ListItem.ViewBinder<androidx.car.widget.ListItem.ViewHolder>);
+  public abstract static class ListItem.ViewHolder extends androidx.recyclerview.widget.RecyclerView.ViewHolder implements androidx.car.uxrestrictions.OnUxRestrictionsChangedListener {
+    ctor public ListItem.ViewHolder(android.view.View!);
+    method public final void addCleanUp(androidx.car.widget.ListItem.ViewBinder<androidx.car.widget.ListItem.ViewHolder>?);
     method public final void cleanUp();
   }
 
-  public class ListItemAdapter extends androidx.recyclerview.widget.RecyclerView.Adapter implements androidx.car.widget.PagedListView.DividerVisibilityManager androidx.car.widget.PagedListView.ItemCap {
-    ctor public ListItemAdapter(android.content.Context, androidx.car.widget.ListItemProvider);
-    ctor public ListItemAdapter(android.content.Context, androidx.car.widget.ListItemProvider, int);
+  public class ListItemAdapter extends androidx.recyclerview.widget.RecyclerView.Adapter<androidx.car.widget.ListItem.ViewHolder> implements androidx.car.widget.PagedListView.DividerVisibilityManager androidx.car.widget.PagedListView.ItemCap {
+    ctor public ListItemAdapter(android.content.Context!, androidx.car.widget.ListItemProvider!);
+    ctor public ListItemAdapter(android.content.Context!, androidx.car.widget.ListItemProvider!, int);
     method public int getItemCount();
-    method public boolean getShowDivider(int);
-    method public void onBindViewHolder(androidx.car.widget.ListItem.ViewHolder, int);
-    method public androidx.car.widget.ListItem.ViewHolder onCreateViewHolder(android.view.ViewGroup, int);
-    method public void registerListItemViewType(int, int, java.util.function.Function<android.view.View, androidx.car.widget.ListItem.ViewHolder>);
+    method public boolean getShowDivider(@IntRange(from=0) int);
+    method public void onBindViewHolder(androidx.car.widget.ListItem.ViewHolder!, int);
+    method public androidx.car.widget.ListItem.ViewHolder! onCreateViewHolder(android.view.ViewGroup!, int);
+    method public void registerListItemViewType(@IntRange(from=java.lang.Integer.MIN_VALUE, to=0xffffffff) int, @LayoutRes int, java.util.function.Function<android.view.View,androidx.car.widget.ListItem.ViewHolder>!);
     method public void setMaxItems(int);
     method public void start();
     method public void stop();
@@ -317,13 +318,13 @@
   }
 
   public class PagedListView extends android.widget.FrameLayout {
-    ctor public PagedListView(android.content.Context);
-    ctor public PagedListView(android.content.Context, android.util.AttributeSet);
-    ctor public PagedListView(android.content.Context, android.util.AttributeSet, int);
-    ctor public PagedListView(android.content.Context, android.util.AttributeSet, int, int);
+    ctor public PagedListView(android.content.Context!);
+    ctor public PagedListView(android.content.Context!, android.util.AttributeSet!);
+    ctor public PagedListView(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public PagedListView(android.content.Context!, android.util.AttributeSet!, int, int);
     method public void addItemDecoration(androidx.recyclerview.widget.RecyclerView.ItemDecoration);
     method public void addOnItemTouchListener(androidx.recyclerview.widget.RecyclerView.OnItemTouchListener);
-    method public androidx.recyclerview.widget.RecyclerView.Adapter<? extends androidx.recyclerview.widget.RecyclerView.ViewHolder> getAdapter();
+    method public androidx.recyclerview.widget.RecyclerView.Adapter<? extends androidx.recyclerview.widget.RecyclerView.ViewHolder>? getAdapter();
     method public int getMaxPages();
     method public int getPage(int);
     method public androidx.recyclerview.widget.RecyclerView getRecyclerView();
@@ -331,188 +332,188 @@
     method public boolean isAtEnd();
     method public boolean isAtStart();
     method public void onLayout(boolean, int, int, int, int);
-    method public void onRestoreInstanceState(android.os.Parcelable);
-    method public android.os.Parcelable onSaveInstanceState();
+    method public void onRestoreInstanceState(android.os.Parcelable!);
+    method public android.os.Parcelable! onSaveInstanceState();
     method public void pageDown();
     method public void pageUp();
-    method public int positionOf(android.view.View);
+    method public int positionOf(android.view.View?);
     method public void removeItemDecoration(androidx.recyclerview.widget.RecyclerView.ItemDecoration);
     method public void removeOnItemTouchListener(androidx.recyclerview.widget.RecyclerView.OnItemTouchListener);
     method public void resetMaxPages();
     method public void scrollToPosition(int);
     method public void setAdapter(androidx.recyclerview.widget.RecyclerView.Adapter<? extends androidx.recyclerview.widget.RecyclerView.ViewHolder>);
     method public void setDefaultMaxPages(int);
-    method public void setDividerColor(int);
-    method public void setDividerVisibilityManager(androidx.car.widget.PagedListView.DividerVisibilityManager);
-    method public void setDownButtonIcon(android.graphics.drawable.Drawable);
-    method public void setGutter(int);
+    method public void setDividerColor(@ColorRes int);
+    method public void setDividerVisibilityManager(androidx.car.widget.PagedListView.DividerVisibilityManager!);
+    method public void setDownButtonIcon(android.graphics.drawable.Drawable!);
+    method public void setGutter(@androidx.car.widget.PagedListView.Gutter int);
     method public void setGutterSize(int);
     method public void setItemSpacing(int);
     method public void setListContentTopOffset(int);
     method public void setMaxPages(int);
-    method public void setOnScrollListener(androidx.car.widget.PagedListView.OnScrollListener);
+    method public void setOnScrollListener(androidx.car.widget.PagedListView.OnScrollListener!);
     method public void setScrollBarContainerWidth(int);
     method public void setScrollBarTopMargin(int);
-    method public void setUpButtonIcon(android.graphics.drawable.Drawable);
+    method public void setUpButtonIcon(android.graphics.drawable.Drawable!);
     method public void snapToPosition(int);
     field public static final int DEFAULT_MAX_CLICKS = 6; // 0x6
     field public static final int UNLIMITED_PAGES = -1; // 0xffffffff
   }
 
-  public static abstract interface PagedListView.DividerVisibilityManager {
-    method public abstract boolean getShowDivider(int);
+  public static interface PagedListView.DividerVisibilityManager {
+    method public boolean getShowDivider(int);
   }
 
-  public static abstract class PagedListView.Gutter implements java.lang.annotation.Annotation {
+  @IntDef({androidx.car.widget.PagedListView.Gutter.NONE, androidx.car.widget.PagedListView.Gutter.START, androidx.car.widget.PagedListView.Gutter.END, androidx.car.widget.PagedListView.Gutter.BOTH}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface PagedListView.Gutter {
     field public static final int BOTH = 3; // 0x3
     field public static final int END = 2; // 0x2
     field public static final int NONE = 0; // 0x0
     field public static final int START = 1; // 0x1
   }
 
-  public static abstract interface PagedListView.ItemCap {
-    method public abstract void setMaxItems(int);
+  public static interface PagedListView.ItemCap {
+    method public void setMaxItems(int);
     field public static final int UNLIMITED = -1; // 0xffffffff
   }
 
-  public static abstract interface PagedListView.ItemPositionOffset {
-    method public abstract void setPositionOffset(int);
+  public static interface PagedListView.ItemPositionOffset {
+    method public void setPositionOffset(int);
   }
 
-  public static abstract class PagedListView.OnScrollListener {
+  public abstract static class PagedListView.OnScrollListener {
     ctor public PagedListView.OnScrollListener();
     method public void onReachBottom();
     method public void onScrollDownButtonClicked();
-    method public void onScrollStateChanged(androidx.recyclerview.widget.RecyclerView, int);
+    method public void onScrollStateChanged(androidx.recyclerview.widget.RecyclerView!, int);
     method public void onScrollUpButtonClicked();
-    method public void onScrolled(androidx.recyclerview.widget.RecyclerView, int, int);
+    method public void onScrolled(androidx.recyclerview.widget.RecyclerView!, int, int);
   }
 
   public class PagedScrollBarView extends android.view.ViewGroup {
-    ctor public PagedScrollBarView(android.content.Context);
-    ctor public PagedScrollBarView(android.content.Context, android.util.AttributeSet);
-    ctor public PagedScrollBarView(android.content.Context, android.util.AttributeSet, int);
-    ctor public PagedScrollBarView(android.content.Context, android.util.AttributeSet, int, int);
+    ctor public PagedScrollBarView(android.content.Context!);
+    ctor public PagedScrollBarView(android.content.Context!, android.util.AttributeSet!);
+    ctor public PagedScrollBarView(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public PagedScrollBarView(android.content.Context!, android.util.AttributeSet!, int, int);
     method public boolean isDownEnabled();
     method public boolean isDownPressed();
     method public boolean isUpPressed();
     method public void onLayout(boolean, int, int, int, int);
-    method public void setButtonRippleBackground(int);
-    method public void setButtonTintColor(int);
-    method public void setDownButtonIcon(android.graphics.drawable.Drawable);
+    method public void setButtonRippleBackground(@DrawableRes int);
+    method public void setButtonTintColor(@ColorRes int);
+    method public void setDownButtonIcon(android.graphics.drawable.Drawable!);
     method public void setDownEnabled(boolean);
-    method public void setPaginationListener(androidx.car.widget.PagedScrollBarView.PaginationListener);
-    method public void setParameters(int, int, int, boolean);
-    method public void setScrollbarThumbColor(int);
-    method public void setUpButtonIcon(android.graphics.drawable.Drawable);
+    method public void setPaginationListener(androidx.car.widget.PagedScrollBarView.PaginationListener!);
+    method public void setParameters(@IntRange(from=0) int, @IntRange(from=0) int, @IntRange(from=0) int, boolean);
+    method public void setScrollbarThumbColor(@ColorRes int);
+    method public void setUpButtonIcon(android.graphics.drawable.Drawable!);
     method public void setUpEnabled(boolean);
   }
 
-  public static abstract interface PagedScrollBarView.PaginationListener {
-    method public abstract void onAlphaJump();
-    method public abstract void onPaginate(int);
+  public static interface PagedScrollBarView.PaginationListener {
+    method public void onAlphaJump();
+    method public void onPaginate(int);
     field public static final int PAGE_DOWN = 1; // 0x1
     field public static final int PAGE_UP = 0; // 0x0
   }
 
   public final class PagedSmoothScroller extends androidx.recyclerview.widget.LinearSmoothScroller {
-    ctor public PagedSmoothScroller(android.content.Context);
+    ctor public PagedSmoothScroller(android.content.Context!);
   }
 
   public class PagedSnapHelper extends androidx.recyclerview.widget.LinearSnapHelper {
-    ctor public PagedSnapHelper(android.content.Context);
-    method public void attachToRecyclerView(androidx.recyclerview.widget.RecyclerView);
-    method public boolean isAtEnd(androidx.recyclerview.widget.RecyclerView.LayoutManager);
-    method public boolean isAtStart(androidx.recyclerview.widget.RecyclerView.LayoutManager);
+    ctor public PagedSnapHelper(android.content.Context!);
+    method public void attachToRecyclerView(androidx.recyclerview.widget.RecyclerView?);
+    method public boolean isAtEnd(androidx.recyclerview.widget.RecyclerView.LayoutManager!);
+    method public boolean isAtStart(androidx.recyclerview.widget.RecyclerView.LayoutManager!);
   }
 
-  public class SeekbarListItem extends androidx.car.widget.ListItem {
+  public class SeekbarListItem extends androidx.car.widget.ListItem<androidx.car.widget.SeekbarListItem.ViewHolder> {
     ctor public SeekbarListItem(android.content.Context);
-    method public static androidx.car.widget.SeekbarListItem.ViewHolder createViewHolder(android.view.View);
+    method public static androidx.car.widget.SeekbarListItem.ViewHolder! createViewHolder(android.view.View!);
     method protected android.content.Context getContext();
     method public int getViewType();
-    method protected void onBind(androidx.car.widget.SeekbarListItem.ViewHolder);
+    method protected void onBind(androidx.car.widget.SeekbarListItem.ViewHolder!);
     method protected void resolveDirtyState();
     method public void setEnabled(boolean);
     method public void setMax(int);
-    method public void setOnSeekBarChangeListener(android.widget.SeekBar.OnSeekBarChangeListener);
+    method public void setOnSeekBarChangeListener(android.widget.SeekBar.OnSeekBarChangeListener!);
     method public void setPrimaryActionEmptyIcon();
-    method public void setPrimaryActionIcon(int);
-    method public void setPrimaryActionIcon(android.graphics.drawable.Drawable);
-    method public void setPrimaryActionIconListener(android.view.View.OnClickListener);
+    method public void setPrimaryActionIcon(@DrawableRes int);
+    method public void setPrimaryActionIcon(android.graphics.drawable.Drawable!);
+    method public void setPrimaryActionIconListener(android.view.View.OnClickListener!);
     method public void setProgress(int);
     method public void setSecondaryProgress(int);
     method public void setSupplementalEmptyIcon(boolean);
-    method public void setSupplementalIcon(int, boolean);
-    method public void setSupplementalIcon(android.graphics.drawable.Drawable, boolean);
-    method public void setSupplementalIconListener(android.view.View.OnClickListener);
-    method public void setText(java.lang.CharSequence);
+    method public void setSupplementalIcon(@DrawableRes int, boolean);
+    method public void setSupplementalIcon(android.graphics.drawable.Drawable!, boolean);
+    method public void setSupplementalIconListener(android.view.View.OnClickListener!);
+    method public void setText(CharSequence?);
   }
 
   public static class SeekbarListItem.ViewHolder extends androidx.car.widget.ListItem.ViewHolder implements androidx.car.uxrestrictions.OnUxRestrictionsChangedListener {
-    ctor public SeekbarListItem.ViewHolder(android.view.View);
+    ctor public SeekbarListItem.ViewHolder(android.view.View!);
     method public android.view.ViewGroup getContainerLayout();
     method public android.widget.ImageView getPrimaryIcon();
     method public android.widget.SeekBar getSeekBar();
     method public android.widget.ImageView getSupplementalIcon();
     method public android.view.View getSupplementalIconDivider();
     method public android.widget.TextView getText();
-    method public void onUxRestrictionsChanged(androidx.car.uxrestrictions.CarUxRestrictions);
+    method public void onUxRestrictionsChanged(androidx.car.uxrestrictions.CarUxRestrictions!);
   }
 
-  public class SubheaderListItem extends androidx.car.widget.ListItem {
-    ctor public SubheaderListItem(android.content.Context, java.lang.CharSequence);
-    method public static androidx.car.widget.SubheaderListItem.ViewHolder createViewHolder(android.view.View);
+  public class SubheaderListItem extends androidx.car.widget.ListItem<androidx.car.widget.SubheaderListItem.ViewHolder> {
+    ctor public SubheaderListItem(android.content.Context, CharSequence);
+    method public static androidx.car.widget.SubheaderListItem.ViewHolder! createViewHolder(android.view.View!);
     method protected android.content.Context getContext();
     method public int getViewType();
-    method protected void onBind(androidx.car.widget.SubheaderListItem.ViewHolder);
+    method protected void onBind(androidx.car.widget.SubheaderListItem.ViewHolder!);
     method protected void resolveDirtyState();
     method public void setEnabled(boolean);
-    method public void setText(java.lang.CharSequence);
-    method public void setTextStartMarginType(int);
+    method public void setText(CharSequence);
+    method public void setTextStartMarginType(@androidx.car.widget.SubheaderListItem.TextStartMarginType int);
     field public static final int TEXT_START_MARGIN_TYPE_LARGE = 2; // 0x2
     field public static final int TEXT_START_MARGIN_TYPE_NONE = 0; // 0x0
     field public static final int TEXT_START_MARGIN_TYPE_SMALL = 1; // 0x1
   }
 
-  public static abstract class SubheaderListItem.TextStartMarginType implements java.lang.annotation.Annotation {
+  @IntDef({androidx.car.widget.SubheaderListItem.TEXT_START_MARGIN_TYPE_NONE, androidx.car.widget.SubheaderListItem.TEXT_START_MARGIN_TYPE_LARGE, androidx.car.widget.SubheaderListItem.TEXT_START_MARGIN_TYPE_SMALL}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface SubheaderListItem.TextStartMarginType {
   }
 
   public static class SubheaderListItem.ViewHolder extends androidx.car.widget.ListItem.ViewHolder {
-    ctor public SubheaderListItem.ViewHolder(android.view.View);
+    ctor public SubheaderListItem.ViewHolder(android.view.View!);
     method public android.widget.TextView getText();
-    method public void onUxRestrictionsChanged(androidx.car.uxrestrictions.CarUxRestrictions);
+    method public void onUxRestrictionsChanged(androidx.car.uxrestrictions.CarUxRestrictions!);
   }
 
-  public class TextListItem extends androidx.car.widget.ListItem {
+  public class TextListItem extends androidx.car.widget.ListItem<androidx.car.widget.TextListItem.ViewHolder> {
     ctor public TextListItem(android.content.Context);
-    method public static androidx.car.widget.TextListItem.ViewHolder createViewHolder(android.view.View);
+    method public static androidx.car.widget.TextListItem.ViewHolder! createViewHolder(android.view.View!);
     method protected android.content.Context getContext();
     method public int getViewType();
-    method public void onBind(androidx.car.widget.TextListItem.ViewHolder);
+    method public void onBind(androidx.car.widget.TextListItem.ViewHolder!);
     method protected void resolveDirtyState();
-    method public void setBody(java.lang.CharSequence);
-    method public void setBody(java.lang.CharSequence, boolean);
+    method public void setBody(CharSequence!);
+    method public void setBody(CharSequence!, boolean);
     method public void setEnabled(boolean);
-    method public void setOnClickListener(android.view.View.OnClickListener);
+    method public void setOnClickListener(android.view.View.OnClickListener!);
     method public void setPrimaryActionEmptyIcon();
-    method public void setPrimaryActionIcon(int, int);
-    method public void setPrimaryActionIcon(android.graphics.drawable.Drawable, int);
+    method public void setPrimaryActionIcon(@DrawableRes int, int);
+    method public void setPrimaryActionIcon(android.graphics.drawable.Drawable?, int);
     method public void setPrimaryActionNoIcon();
     method public void setSupplementalIcon(int, boolean);
-    method public void setSupplementalIcon(android.graphics.drawable.Drawable, boolean);
-    method public void setSupplementalIcon(int, boolean, android.view.View.OnClickListener);
-    method public void setSupplementalIcon(android.graphics.drawable.Drawable, boolean, android.view.View.OnClickListener);
-    method public void setSwitch(boolean, boolean, android.widget.CompoundButton.OnCheckedChangeListener);
+    method public void setSupplementalIcon(android.graphics.drawable.Drawable!, boolean);
+    method public void setSupplementalIcon(int, boolean, android.view.View.OnClickListener!);
+    method public void setSupplementalIcon(android.graphics.drawable.Drawable!, boolean, android.view.View.OnClickListener!);
+    method public void setSwitch(boolean, boolean, android.widget.CompoundButton.OnCheckedChangeListener!);
     method public void setSwitchState(boolean);
-    method public void setTitle(java.lang.CharSequence);
+    method public void setTitle(CharSequence!);
     field public static final int PRIMARY_ACTION_ICON_SIZE_LARGE = 2; // 0x2
     field public static final int PRIMARY_ACTION_ICON_SIZE_MEDIUM = 1; // 0x1
     field public static final int PRIMARY_ACTION_ICON_SIZE_SMALL = 0; // 0x0
   }
 
   public static class TextListItem.ViewHolder extends androidx.car.widget.ListItem.ViewHolder {
-    ctor public TextListItem.ViewHolder(android.view.View);
+    ctor public TextListItem.ViewHolder(android.view.View!);
     method public android.widget.TextView getBody();
     method public android.view.ViewGroup getContainerLayout();
     method public android.widget.ImageView getPrimaryIcon();
@@ -521,7 +522,7 @@
     method public android.widget.Switch getSwitch();
     method public android.view.View getSwitchDivider();
     method public android.widget.TextView getTitle();
-    method public void onUxRestrictionsChanged(androidx.car.uxrestrictions.CarUxRestrictions);
+    method public void onUxRestrictionsChanged(androidx.car.uxrestrictions.CarUxRestrictions!);
   }
 
 }
diff --git a/car/moderator/api/current.txt b/car/moderator/api/current.txt
index 8094ff2..4e8c072 100644
--- a/car/moderator/api/current.txt
+++ b/car/moderator/api/current.txt
@@ -1,23 +1,24 @@
+// Signature format: 2.0
 package androidx.car.moderator {
 
   public class ContentRateLimiter {
-    ctor public ContentRateLimiter(double, double, long);
-    method public double getAvailablePermits();
+    ctor public ContentRateLimiter(@FloatRange(from=0, fromInclusive=false) double, @FloatRange(from=0) double, @IntRange(from=0) long);
+    method @MainThread public double getAvailablePermits();
     method public double getMaxStoredPermits();
-    method public void setAcquiredPermitsRate(double);
-    method public void setAvailablePermits(double);
-    method public void setMaxStoredPermits(double);
-    method public void setPermitFillDelay(long);
+    method public void setAcquiredPermitsRate(@FloatRange(from=0, fromInclusive=false) double);
+    method @MainThread public void setAvailablePermits(double);
+    method public void setMaxStoredPermits(@FloatRange(from=0) double);
+    method public void setPermitFillDelay(@IntRange(from=0) long);
     method public void setUnlimitedMode(boolean);
-    method public boolean tryAcquire();
-    method public boolean tryAcquire(int);
+    method @MainThread public boolean tryAcquire();
+    method @MainThread public boolean tryAcquire(int);
   }
 
   public class SpeedBumpView extends android.widget.FrameLayout {
-    ctor public SpeedBumpView(android.content.Context);
-    ctor public SpeedBumpView(android.content.Context, android.util.AttributeSet);
-    ctor public SpeedBumpView(android.content.Context, android.util.AttributeSet, int);
-    ctor public SpeedBumpView(android.content.Context, android.util.AttributeSet, int, int);
+    ctor public SpeedBumpView(android.content.Context!);
+    ctor public SpeedBumpView(android.content.Context!, android.util.AttributeSet!);
+    ctor public SpeedBumpView(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public SpeedBumpView(android.content.Context!, android.util.AttributeSet!, int, int);
     method public void onAttachedToWindow();
     method public void onDetachedFromWindow();
   }
diff --git a/cardview/api/1.0.0.txt b/cardview/api/1.0.0.txt
index 4c91846..0882be1 100644
--- a/cardview/api/1.0.0.txt
+++ b/cardview/api/1.0.0.txt
@@ -1,23 +1,24 @@
+// Signature format: 2.0
 package androidx.cardview.widget {
 
   public class CardView extends android.widget.FrameLayout {
     ctor public CardView(android.content.Context);
-    ctor public CardView(android.content.Context, android.util.AttributeSet);
-    ctor public CardView(android.content.Context, android.util.AttributeSet, int);
+    ctor public CardView(android.content.Context, android.util.AttributeSet?);
+    ctor public CardView(android.content.Context, android.util.AttributeSet?, int);
     method public android.content.res.ColorStateList getCardBackgroundColor();
     method public float getCardElevation();
-    method public int getContentPaddingBottom();
-    method public int getContentPaddingLeft();
-    method public int getContentPaddingRight();
-    method public int getContentPaddingTop();
+    method @Px public int getContentPaddingBottom();
+    method @Px public int getContentPaddingLeft();
+    method @Px public int getContentPaddingRight();
+    method @Px public int getContentPaddingTop();
     method public float getMaxCardElevation();
     method public boolean getPreventCornerOverlap();
     method public float getRadius();
     method public boolean getUseCompatPadding();
-    method public void setCardBackgroundColor(int);
-    method public void setCardBackgroundColor(android.content.res.ColorStateList);
+    method public void setCardBackgroundColor(@ColorInt int);
+    method public void setCardBackgroundColor(android.content.res.ColorStateList?);
     method public void setCardElevation(float);
-    method public void setContentPadding(int, int, int, int);
+    method public void setContentPadding(@Px int, @Px int, @Px int, @Px int);
     method public void setMaxCardElevation(float);
     method public void setPreventCornerOverlap(boolean);
     method public void setRadius(float);
diff --git a/collection/api/1.0.0.txt b/collection/api/1.0.0.txt
index 7561d78..36e7843 100644
--- a/collection/api/1.0.0.txt
+++ b/collection/api/1.0.0.txt
@@ -1,56 +1,57 @@
+// Signature format: 2.0
 package androidx.collection {
 
-  public class ArrayMap<K, V> extends androidx.collection.SimpleArrayMap implements java.util.Map {
+  public class ArrayMap<K, V> extends androidx.collection.SimpleArrayMap<K,V> implements java.util.Map<K,V> {
     ctor public ArrayMap();
     ctor public ArrayMap(int);
-    ctor public ArrayMap(androidx.collection.SimpleArrayMap);
+    ctor public ArrayMap(androidx.collection.SimpleArrayMap!);
     method public boolean containsAll(java.util.Collection<?>);
-    method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
-    method public java.util.Set<K> keySet();
-    method public void putAll(java.util.Map<? extends K, ? extends V>);
+    method public java.util.Set<java.util.Map.Entry<K,V>>! entrySet();
+    method public java.util.Set<K>! keySet();
+    method public void putAll(java.util.Map<? extends K,? extends V>!);
     method public boolean removeAll(java.util.Collection<?>);
     method public boolean retainAll(java.util.Collection<?>);
-    method public java.util.Collection<V> values();
+    method public java.util.Collection<V>! values();
   }
 
-  public final class ArraySet<E> implements java.util.Collection java.util.Set {
+  public final class ArraySet<E> implements java.util.Collection<E> java.util.Set<E> {
     ctor public ArraySet();
     ctor public ArraySet(int);
-    ctor public ArraySet(androidx.collection.ArraySet<E>);
-    ctor public ArraySet(java.util.Collection<E>);
-    method public boolean add(E);
+    ctor public ArraySet(androidx.collection.ArraySet<E>?);
+    ctor public ArraySet(java.util.Collection<E>?);
+    method public boolean add(E?);
     method public void addAll(androidx.collection.ArraySet<? extends E>);
     method public boolean addAll(java.util.Collection<? extends E>);
     method public void clear();
-    method public boolean contains(java.lang.Object);
+    method public boolean contains(Object?);
     method public boolean containsAll(java.util.Collection<?>);
     method public void ensureCapacity(int);
-    method public int indexOf(java.lang.Object);
+    method public int indexOf(Object?);
     method public boolean isEmpty();
-    method public java.util.Iterator<E> iterator();
-    method public boolean remove(java.lang.Object);
+    method public java.util.Iterator<E>! iterator();
+    method public boolean remove(Object?);
     method public boolean removeAll(androidx.collection.ArraySet<? extends E>);
     method public boolean removeAll(java.util.Collection<?>);
-    method public E removeAt(int);
+    method public E! removeAt(int);
     method public boolean retainAll(java.util.Collection<?>);
     method public int size();
-    method public java.lang.Object[] toArray();
+    method public Object[] toArray();
     method public <T> T[] toArray(T[]);
-    method public E valueAt(int);
+    method public E? valueAt(int);
   }
 
   public final class CircularArray<E> {
     ctor public CircularArray();
     ctor public CircularArray(int);
-    method public void addFirst(E);
-    method public void addLast(E);
+    method public void addFirst(E!);
+    method public void addLast(E!);
     method public void clear();
-    method public E get(int);
-    method public E getFirst();
-    method public E getLast();
+    method public E! get(int);
+    method public E! getFirst();
+    method public E! getLast();
     method public boolean isEmpty();
-    method public E popFirst();
-    method public E popLast();
+    method public E! popFirst();
+    method public E! popLast();
     method public void removeFromEnd(int);
     method public void removeFromStart(int);
     method public int size();
@@ -76,93 +77,93 @@
   public class LongSparseArray<E> implements java.lang.Cloneable {
     ctor public LongSparseArray();
     ctor public LongSparseArray(int);
-    method public void append(long, E);
+    method public void append(long, E!);
     method public void clear();
-    method public androidx.collection.LongSparseArray<E> clone();
+    method public androidx.collection.LongSparseArray<E>! clone();
     method public boolean containsKey(long);
-    method public boolean containsValue(E);
+    method public boolean containsValue(E!);
     method public void delete(long);
-    method public E get(long);
-    method public E get(long, E);
+    method public E? get(long);
+    method public E! get(long, E!);
     method public int indexOfKey(long);
-    method public int indexOfValue(E);
+    method public int indexOfValue(E!);
     method public boolean isEmpty();
     method public long keyAt(int);
-    method public void put(long, E);
+    method public void put(long, E!);
     method public void putAll(androidx.collection.LongSparseArray<? extends E>);
     method public void remove(long);
     method public void removeAt(int);
-    method public void setValueAt(int, E);
+    method public void setValueAt(int, E!);
     method public int size();
-    method public E valueAt(int);
+    method public E! valueAt(int);
   }
 
   public class LruCache<K, V> {
     ctor public LruCache(int);
-    method protected V create(K);
-    method public final synchronized int createCount();
-    method protected void entryRemoved(boolean, K, V, V);
+    method protected V? create(K);
+    method public final int createCount();
+    method protected void entryRemoved(boolean, K, V, V?);
     method public final void evictAll();
-    method public final synchronized int evictionCount();
-    method public final V get(K);
-    method public final synchronized int hitCount();
-    method public final synchronized int maxSize();
-    method public final synchronized int missCount();
-    method public final V put(K, V);
-    method public final synchronized int putCount();
-    method public final V remove(K);
+    method public final int evictionCount();
+    method public final V? get(K);
+    method public final int hitCount();
+    method public final int maxSize();
+    method public final int missCount();
+    method public final V? put(K, V);
+    method public final int putCount();
+    method public final V? remove(K);
     method public void resize(int);
-    method public final synchronized int size();
+    method public final int size();
     method protected int sizeOf(K, V);
-    method public final synchronized java.util.Map<K, V> snapshot();
-    method public final synchronized java.lang.String toString();
+    method public final java.util.Map<K,V>! snapshot();
+    method public final String toString();
     method public void trimToSize(int);
   }
 
   public class SimpleArrayMap<K, V> {
     ctor public SimpleArrayMap();
     ctor public SimpleArrayMap(int);
-    ctor public SimpleArrayMap(androidx.collection.SimpleArrayMap<K, V>);
+    ctor public SimpleArrayMap(androidx.collection.SimpleArrayMap<K,V>!);
     method public void clear();
-    method public boolean containsKey(java.lang.Object);
-    method public boolean containsValue(java.lang.Object);
+    method public boolean containsKey(Object?);
+    method public boolean containsValue(Object!);
     method public void ensureCapacity(int);
-    method public V get(java.lang.Object);
-    method public int indexOfKey(java.lang.Object);
+    method public V? get(Object!);
+    method public int indexOfKey(Object?);
     method public boolean isEmpty();
-    method public K keyAt(int);
-    method public V put(K, V);
-    method public void putAll(androidx.collection.SimpleArrayMap<? extends K, ? extends V>);
-    method public V remove(java.lang.Object);
-    method public V removeAt(int);
-    method public V setValueAt(int, V);
+    method public K! keyAt(int);
+    method public V? put(K!, V!);
+    method public void putAll(androidx.collection.SimpleArrayMap<? extends K,? extends V>);
+    method public V? remove(Object!);
+    method public V! removeAt(int);
+    method public V! setValueAt(int, V!);
     method public int size();
-    method public V valueAt(int);
+    method public V! valueAt(int);
   }
 
   public class SparseArrayCompat<E> implements java.lang.Cloneable {
     ctor public SparseArrayCompat();
     ctor public SparseArrayCompat(int);
-    method public void append(int, E);
+    method public void append(int, E!);
     method public void clear();
-    method public androidx.collection.SparseArrayCompat<E> clone();
+    method public androidx.collection.SparseArrayCompat<E>! clone();
     method public boolean containsKey(int);
-    method public boolean containsValue(E);
+    method public boolean containsValue(E!);
     method public void delete(int);
-    method public E get(int);
-    method public E get(int, E);
+    method public E? get(int);
+    method public E! get(int, E!);
     method public int indexOfKey(int);
-    method public int indexOfValue(E);
+    method public int indexOfValue(E!);
     method public boolean isEmpty();
     method public int keyAt(int);
-    method public void put(int, E);
+    method public void put(int, E!);
     method public void putAll(androidx.collection.SparseArrayCompat<? extends E>);
     method public void remove(int);
     method public void removeAt(int);
     method public void removeAtRange(int, int);
-    method public void setValueAt(int, E);
+    method public void setValueAt(int, E!);
     method public int size();
-    method public E valueAt(int);
+    method public E! valueAt(int);
   }
 
 }
diff --git a/concurrent/futures/api/current.txt b/concurrent/futures/api/current.txt
index e69de29..d802177 100644
--- a/concurrent/futures/api/current.txt
+++ b/concurrent/futures/api/current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/content/api/1.0.0.txt b/content/api/1.0.0.txt
index 204c0e0..d57af6b 100644
--- a/content/api/1.0.0.txt
+++ b/content/api/1.0.0.txt
@@ -1,39 +1,40 @@
+// Signature format: 2.0
 package androidx.contentpager.content {
 
   public class ContentPager {
-    ctor public ContentPager(android.content.ContentResolver, androidx.contentpager.content.ContentPager.QueryRunner);
+    ctor public ContentPager(android.content.ContentResolver!, androidx.contentpager.content.ContentPager.QueryRunner!);
     ctor public ContentPager(android.content.ContentResolver, androidx.contentpager.content.ContentPager.QueryRunner, int);
     method public static android.os.Bundle createArgs(int, int);
-    method public androidx.contentpager.content.Query query(android.net.Uri, java.lang.String[], android.os.Bundle, android.os.CancellationSignal, androidx.contentpager.content.ContentPager.ContentCallback);
-    method public void reset();
+    method @MainThread public androidx.contentpager.content.Query query(@RequiresPermission.Read android.net.Uri, String[]?, android.os.Bundle, android.os.CancellationSignal?, androidx.contentpager.content.ContentPager.ContentCallback);
+    method @MainThread public void reset();
     field public static final int CURSOR_DISPOSITION_COPIED = 1; // 0x1
     field public static final int CURSOR_DISPOSITION_PAGED = 2; // 0x2
     field public static final int CURSOR_DISPOSITION_REPAGED = 3; // 0x3
     field public static final int CURSOR_DISPOSITION_WRAPPED = 4; // 0x4
-    field public static final java.lang.String EXTRA_HONORED_ARGS = "android.content.extra.HONORED_ARGS";
-    field public static final java.lang.String EXTRA_REQUESTED_LIMIT = "android-support:extra-ignored-limit";
-    field public static final java.lang.String EXTRA_SUGGESTED_LIMIT = "android-support:extra-suggested-limit";
-    field public static final java.lang.String EXTRA_TOTAL_COUNT = "android.content.extra.TOTAL_COUNT";
-    field public static final java.lang.String QUERY_ARG_LIMIT = "android:query-arg-limit";
-    field public static final java.lang.String QUERY_ARG_OFFSET = "android:query-arg-offset";
+    field public static final String EXTRA_HONORED_ARGS = "android.content.extra.HONORED_ARGS";
+    field public static final String EXTRA_REQUESTED_LIMIT = "android-support:extra-ignored-limit";
+    field public static final String EXTRA_SUGGESTED_LIMIT = "android-support:extra-suggested-limit";
+    field public static final String EXTRA_TOTAL_COUNT = "android.content.extra.TOTAL_COUNT";
+    field public static final String QUERY_ARG_LIMIT = "android:query-arg-limit";
+    field public static final String QUERY_ARG_OFFSET = "android:query-arg-offset";
   }
 
-  public static abstract interface ContentPager.ContentCallback {
-    method public abstract void onCursorReady(androidx.contentpager.content.Query, android.database.Cursor);
+  public static interface ContentPager.ContentCallback {
+    method @MainThread public void onCursorReady(androidx.contentpager.content.Query, android.database.Cursor?);
   }
 
-  public static abstract class ContentPager.CursorDisposition implements java.lang.annotation.Annotation {
+  @IntDef({androidx.contentpager.content.ContentPager.CURSOR_DISPOSITION_COPIED, androidx.contentpager.content.ContentPager.CURSOR_DISPOSITION_PAGED, androidx.contentpager.content.ContentPager.CURSOR_DISPOSITION_REPAGED, androidx.contentpager.content.ContentPager.CURSOR_DISPOSITION_WRAPPED}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ContentPager.CursorDisposition {
   }
 
-  public static abstract interface ContentPager.QueryRunner {
-    method public abstract void cancel(androidx.contentpager.content.Query);
-    method public abstract boolean isRunning(androidx.contentpager.content.Query);
-    method public abstract void query(androidx.contentpager.content.Query, androidx.contentpager.content.ContentPager.QueryRunner.Callback);
+  public static interface ContentPager.QueryRunner {
+    method public void cancel(androidx.contentpager.content.Query);
+    method public boolean isRunning(androidx.contentpager.content.Query);
+    method public void query(androidx.contentpager.content.Query, androidx.contentpager.content.ContentPager.QueryRunner.Callback);
   }
 
-  public static abstract interface ContentPager.QueryRunner.Callback {
-    method public abstract void onQueryFinished(androidx.contentpager.content.Query, android.database.Cursor);
-    method public abstract android.database.Cursor runQueryInBackground(androidx.contentpager.content.Query);
+  public static interface ContentPager.QueryRunner.Callback {
+    method public void onQueryFinished(androidx.contentpager.content.Query, android.database.Cursor?);
+    method public android.database.Cursor? runQueryInBackground(androidx.contentpager.content.Query);
   }
 
   public final class LoaderQueryRunner implements androidx.contentpager.content.ContentPager.QueryRunner {
diff --git a/coordinatorlayout/api/current.txt b/coordinatorlayout/api/current.txt
index 4110b3c..b4b3d63 100644
--- a/coordinatorlayout/api/current.txt
+++ b/coordinatorlayout/api/current.txt
@@ -1,46 +1,47 @@
+// Signature format: 2.0
 package androidx.coordinatorlayout.widget {
 
   public class CoordinatorLayout extends android.view.ViewGroup implements androidx.core.view.NestedScrollingParent2 androidx.core.view.NestedScrollingParent3 {
     ctor public CoordinatorLayout(android.content.Context);
-    ctor public CoordinatorLayout(android.content.Context, android.util.AttributeSet);
-    ctor public CoordinatorLayout(android.content.Context, android.util.AttributeSet, int);
+    ctor public CoordinatorLayout(android.content.Context, android.util.AttributeSet?);
+    ctor public CoordinatorLayout(android.content.Context, android.util.AttributeSet?, @AttrRes int);
     method public void dispatchDependentViewsChanged(android.view.View);
     method public boolean doViewsOverlap(android.view.View, android.view.View);
-    method protected androidx.coordinatorlayout.widget.CoordinatorLayout.LayoutParams generateDefaultLayoutParams();
-    method public androidx.coordinatorlayout.widget.CoordinatorLayout.LayoutParams generateLayoutParams(android.util.AttributeSet);
-    method protected androidx.coordinatorlayout.widget.CoordinatorLayout.LayoutParams generateLayoutParams(android.view.ViewGroup.LayoutParams);
+    method protected androidx.coordinatorlayout.widget.CoordinatorLayout.LayoutParams! generateDefaultLayoutParams();
+    method public androidx.coordinatorlayout.widget.CoordinatorLayout.LayoutParams! generateLayoutParams(android.util.AttributeSet!);
+    method protected androidx.coordinatorlayout.widget.CoordinatorLayout.LayoutParams! generateLayoutParams(android.view.ViewGroup.LayoutParams!);
     method public java.util.List<android.view.View> getDependencies(android.view.View);
     method public java.util.List<android.view.View> getDependents(android.view.View);
-    method public android.graphics.drawable.Drawable getStatusBarBackground();
+    method public android.graphics.drawable.Drawable? getStatusBarBackground();
     method public boolean isPointInChildBounds(android.view.View, int, int);
     method public void onAttachedToWindow();
     method public void onDetachedFromWindow();
-    method public void onDraw(android.graphics.Canvas);
+    method public void onDraw(android.graphics.Canvas!);
     method public void onLayoutChild(android.view.View, int);
-    method public void onMeasureChild(android.view.View, int, int, int, int);
-    method public void onNestedPreScroll(android.view.View, int, int, int[], int);
-    method public void onNestedScroll(android.view.View, int, int, int, int, int);
+    method public void onMeasureChild(android.view.View!, int, int, int, int);
+    method public void onNestedPreScroll(android.view.View!, int, int, int[]!, int);
+    method public void onNestedScroll(android.view.View!, int, int, int, int, int);
     method public void onNestedScroll(android.view.View, int, int, int, int, int, int[]);
-    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 setStatusBarBackground(android.graphics.drawable.Drawable);
-    method public void setStatusBarBackgroundColor(int);
-    method public void setStatusBarBackgroundResource(int);
+    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 setStatusBarBackground(android.graphics.drawable.Drawable?);
+    method public void setStatusBarBackgroundColor(@ColorInt int);
+    method public void setStatusBarBackgroundResource(@DrawableRes int);
   }
 
-  public static abstract interface CoordinatorLayout.AttachedBehavior {
-    method public abstract androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior getBehavior();
+  public static interface CoordinatorLayout.AttachedBehavior {
+    method public androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior getBehavior();
   }
 
-  public static abstract class CoordinatorLayout.Behavior<V extends android.view.View> {
+  public abstract static class CoordinatorLayout.Behavior<V extends android.view.View> {
     ctor public CoordinatorLayout.Behavior();
-    ctor public CoordinatorLayout.Behavior(android.content.Context, android.util.AttributeSet);
+    ctor public CoordinatorLayout.Behavior(android.content.Context!, android.util.AttributeSet!);
     method public boolean blocksInteractionBelow(androidx.coordinatorlayout.widget.CoordinatorLayout, V);
     method public boolean getInsetDodgeRect(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.graphics.Rect);
-    method public int getScrimColor(androidx.coordinatorlayout.widget.CoordinatorLayout, V);
-    method public float getScrimOpacity(androidx.coordinatorlayout.widget.CoordinatorLayout, V);
-    method public static java.lang.Object getTag(android.view.View);
+    method @ColorInt public int getScrimColor(androidx.coordinatorlayout.widget.CoordinatorLayout, V);
+    method @FloatRange(from=0, to=1) public float getScrimOpacity(androidx.coordinatorlayout.widget.CoordinatorLayout, V);
+    method public static Object? getTag(android.view.View);
     method public boolean layoutDependsOn(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.view.View);
     method public androidx.core.view.WindowInsetsCompat onApplyWindowInsets(androidx.coordinatorlayout.widget.CoordinatorLayout, V, androidx.core.view.WindowInsetsCompat);
     method public void onAttachedToLayoutParams(androidx.coordinatorlayout.widget.CoordinatorLayout.LayoutParams);
@@ -52,36 +53,37 @@
     method public boolean onMeasureChild(androidx.coordinatorlayout.widget.CoordinatorLayout, V, int, int, int, int);
     method public boolean onNestedFling(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.view.View, float, float, boolean);
     method public boolean onNestedPreFling(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.view.View, float, float);
-    method public deprecated void onNestedPreScroll(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.view.View, int, int, int[]);
+    method @Deprecated public void onNestedPreScroll(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.view.View, int, int, int[]);
     method public void onNestedPreScroll(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.view.View, int, int, int[], int);
-    method public deprecated void onNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.view.View, int, int, int, int);
-    method public deprecated void onNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.view.View, int, int, int, int, int);
+    method @Deprecated public void onNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.view.View, int, int, int, int);
+    method @Deprecated public void onNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.view.View, int, int, int, int, int);
     method public void onNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.view.View, int, int, int, int, int, int[]);
-    method public deprecated void onNestedScrollAccepted(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.view.View, android.view.View, int);
+    method @Deprecated public void onNestedScrollAccepted(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.view.View, android.view.View, int);
     method public void onNestedScrollAccepted(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.view.View, android.view.View, int, int);
     method public boolean onRequestChildRectangleOnScreen(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.graphics.Rect, boolean);
     method public void onRestoreInstanceState(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.os.Parcelable);
-    method public android.os.Parcelable onSaveInstanceState(androidx.coordinatorlayout.widget.CoordinatorLayout, V);
-    method public deprecated boolean onStartNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.view.View, android.view.View, int);
+    method public android.os.Parcelable? onSaveInstanceState(androidx.coordinatorlayout.widget.CoordinatorLayout, V);
+    method @Deprecated public boolean onStartNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.view.View, android.view.View, int);
     method public boolean onStartNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.view.View, android.view.View, int, int);
-    method public deprecated void onStopNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.view.View);
+    method @Deprecated public void onStopNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.view.View);
     method public void onStopNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.view.View, int);
     method public boolean onTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout, V, android.view.MotionEvent);
-    method public static void setTag(android.view.View, java.lang.Object);
+    method public static void setTag(android.view.View, Object?);
   }
 
-  public static abstract deprecated class CoordinatorLayout.DefaultBehavior implements java.lang.annotation.Annotation {
+  @Deprecated @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public static @interface CoordinatorLayout.DefaultBehavior {
+    method @Deprecated public abstract Class<? extends androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior> value();
   }
 
   public static class CoordinatorLayout.LayoutParams extends android.view.ViewGroup.MarginLayoutParams {
     ctor public CoordinatorLayout.LayoutParams(int, int);
-    ctor public CoordinatorLayout.LayoutParams(androidx.coordinatorlayout.widget.CoordinatorLayout.LayoutParams);
-    ctor public CoordinatorLayout.LayoutParams(android.view.ViewGroup.MarginLayoutParams);
-    ctor public CoordinatorLayout.LayoutParams(android.view.ViewGroup.LayoutParams);
-    method public int getAnchorId();
-    method public androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior getBehavior();
-    method public void setAnchorId(int);
-    method public void setBehavior(androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior);
+    ctor public CoordinatorLayout.LayoutParams(androidx.coordinatorlayout.widget.CoordinatorLayout.LayoutParams!);
+    ctor public CoordinatorLayout.LayoutParams(android.view.ViewGroup.MarginLayoutParams!);
+    ctor public CoordinatorLayout.LayoutParams(android.view.ViewGroup.LayoutParams!);
+    method @IdRes public int getAnchorId();
+    method public androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior? getBehavior();
+    method public void setAnchorId(@IdRes int);
+    method public void setBehavior(androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior?);
     field public int anchorGravity;
     field public int dodgeInsetEdges;
     field public int gravity;
@@ -90,9 +92,9 @@
   }
 
   protected static class CoordinatorLayout.SavedState extends androidx.customview.view.AbsSavedState {
-    ctor public CoordinatorLayout.SavedState(android.os.Parcel, java.lang.ClassLoader);
-    ctor public CoordinatorLayout.SavedState(android.os.Parcelable);
-    field public static final android.os.Parcelable.Creator<androidx.coordinatorlayout.widget.CoordinatorLayout.SavedState> CREATOR;
+    ctor public CoordinatorLayout.SavedState(android.os.Parcel!, ClassLoader!);
+    ctor public CoordinatorLayout.SavedState(android.os.Parcelable!);
+    field public static final android.os.Parcelable.Creator<androidx.coordinatorlayout.widget.CoordinatorLayout.SavedState>! CREATOR;
   }
 
 }
diff --git a/core/api/current.txt b/core/api/current.txt
index aa54f0b..c6d7320 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -1,11 +1,12 @@
+// Signature format: 2.0
 package androidx.core.accessibilityservice {
 
   public final class AccessibilityServiceInfoCompat {
-    method public static java.lang.String capabilityToString(int);
-    method public static java.lang.String feedbackTypeToString(int);
-    method public static java.lang.String flagToString(int);
+    method public static String capabilityToString(int);
+    method public static String feedbackTypeToString(int);
+    method public static String? flagToString(int);
     method public static int getCapabilities(android.accessibilityservice.AccessibilityServiceInfo);
-    method public static java.lang.String loadDescription(android.accessibilityservice.AccessibilityServiceInfo, android.content.pm.PackageManager);
+    method public static String? loadDescription(android.accessibilityservice.AccessibilityServiceInfo, android.content.pm.PackageManager);
     field public static final int CAPABILITY_CAN_FILTER_KEY_EVENTS = 8; // 0x8
     field public static final int CAPABILITY_CAN_REQUEST_ENHANCED_WEB_ACCESSIBILITY = 4; // 0x4
     field public static final int CAPABILITY_CAN_REQUEST_TOUCH_EXPLORATION = 2; // 0x2
@@ -27,28 +28,28 @@
     ctor protected ActivityCompat();
     method public static void finishAffinity(android.app.Activity);
     method public static void finishAfterTransition(android.app.Activity);
-    method public static android.net.Uri getReferrer(android.app.Activity);
-    method public static deprecated boolean invalidateOptionsMenu(android.app.Activity);
+    method public static android.net.Uri? getReferrer(android.app.Activity);
+    method @Deprecated public static boolean invalidateOptionsMenu(android.app.Activity!);
     method public static void postponeEnterTransition(android.app.Activity);
-    method public static androidx.core.view.DragAndDropPermissionsCompat requestDragAndDropPermissions(android.app.Activity, android.view.DragEvent);
-    method public static void requestPermissions(android.app.Activity, java.lang.String[], int);
-    method public static <T extends android.view.View> T requireViewById(android.app.Activity, int);
-    method public static void setEnterSharedElementCallback(android.app.Activity, androidx.core.app.SharedElementCallback);
-    method public static void setExitSharedElementCallback(android.app.Activity, androidx.core.app.SharedElementCallback);
-    method public static void setPermissionCompatDelegate(androidx.core.app.ActivityCompat.PermissionCompatDelegate);
-    method public static boolean shouldShowRequestPermissionRationale(android.app.Activity, java.lang.String);
-    method public static void startActivityForResult(android.app.Activity, android.content.Intent, int, android.os.Bundle);
-    method public static void startIntentSenderForResult(android.app.Activity, android.content.IntentSender, int, android.content.Intent, int, int, int, android.os.Bundle) throws android.content.IntentSender.SendIntentException;
+    method public static androidx.core.view.DragAndDropPermissionsCompat? requestDragAndDropPermissions(android.app.Activity!, android.view.DragEvent!);
+    method public static void requestPermissions(android.app.Activity, String[], @IntRange(from=0) int);
+    method public static <T extends android.view.View> T requireViewById(android.app.Activity, @IdRes int);
+    method public static void setEnterSharedElementCallback(android.app.Activity, androidx.core.app.SharedElementCallback?);
+    method public static void setExitSharedElementCallback(android.app.Activity, androidx.core.app.SharedElementCallback?);
+    method public static void setPermissionCompatDelegate(androidx.core.app.ActivityCompat.PermissionCompatDelegate?);
+    method public static boolean shouldShowRequestPermissionRationale(android.app.Activity, String);
+    method public static void startActivityForResult(android.app.Activity, android.content.Intent, int, android.os.Bundle?);
+    method public static void startIntentSenderForResult(android.app.Activity, android.content.IntentSender, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException;
     method public static void startPostponedEnterTransition(android.app.Activity);
   }
 
-  public static abstract interface ActivityCompat.OnRequestPermissionsResultCallback {
-    method public abstract void onRequestPermissionsResult(int, java.lang.String[], int[]);
+  public static interface ActivityCompat.OnRequestPermissionsResultCallback {
+    method public void onRequestPermissionsResult(int, String[], int[]);
   }
 
-  public static abstract interface ActivityCompat.PermissionCompatDelegate {
-    method public abstract boolean onActivityResult(android.app.Activity, int, int, android.content.Intent);
-    method public abstract boolean requestPermissions(android.app.Activity, java.lang.String[], int);
+  public static interface ActivityCompat.PermissionCompatDelegate {
+    method public boolean onActivityResult(android.app.Activity, @IntRange(from=0) int, int, android.content.Intent?);
+    method public boolean requestPermissions(android.app.Activity, String[], @IntRange(from=0) int);
   }
 
   public final class ActivityManagerCompat {
@@ -57,21 +58,21 @@
 
   public class ActivityOptionsCompat {
     ctor protected ActivityOptionsCompat();
-    method public android.graphics.Rect getLaunchBounds();
+    method public android.graphics.Rect? getLaunchBounds();
     method public static androidx.core.app.ActivityOptionsCompat makeBasic();
     method public static androidx.core.app.ActivityOptionsCompat makeClipRevealAnimation(android.view.View, int, int, int, int);
     method public static androidx.core.app.ActivityOptionsCompat makeCustomAnimation(android.content.Context, int, int);
     method public static androidx.core.app.ActivityOptionsCompat makeScaleUpAnimation(android.view.View, int, int, int, int);
-    method public static androidx.core.app.ActivityOptionsCompat makeSceneTransitionAnimation(android.app.Activity, android.view.View, java.lang.String);
-    method public static androidx.core.app.ActivityOptionsCompat makeSceneTransitionAnimation(android.app.Activity, androidx.core.util.Pair<android.view.View, java.lang.String>...);
+    method public static androidx.core.app.ActivityOptionsCompat makeSceneTransitionAnimation(android.app.Activity, android.view.View, String);
+    method public static androidx.core.app.ActivityOptionsCompat makeSceneTransitionAnimation(android.app.Activity, androidx.core.util.Pair<android.view.View,java.lang.String>...!);
     method public static androidx.core.app.ActivityOptionsCompat makeTaskLaunchBehind();
     method public static androidx.core.app.ActivityOptionsCompat makeThumbnailScaleUpAnimation(android.view.View, android.graphics.Bitmap, int, int);
     method public void requestUsageTimeReport(android.app.PendingIntent);
-    method public androidx.core.app.ActivityOptionsCompat setLaunchBounds(android.graphics.Rect);
-    method public android.os.Bundle toBundle();
+    method public androidx.core.app.ActivityOptionsCompat setLaunchBounds(android.graphics.Rect?);
+    method public android.os.Bundle? toBundle();
     method public void update(androidx.core.app.ActivityOptionsCompat);
-    field public static final java.lang.String EXTRA_USAGE_TIME_REPORT = "android.activity.usage_time";
-    field public static final java.lang.String EXTRA_USAGE_TIME_REPORT_PACKAGES = "android.usage_time_packages";
+    field public static final String EXTRA_USAGE_TIME_REPORT = "android.activity.usage_time";
+    field public static final String EXTRA_USAGE_TIME_REPORT_PACKAGES = "android.usage_time_packages";
   }
 
   public final class AlarmManagerCompat {
@@ -81,32 +82,32 @@
     method public static void setExactAndAllowWhileIdle(android.app.AlarmManager, int, long, android.app.PendingIntent);
   }
 
-  public class AppComponentFactory extends android.app.AppComponentFactory {
+  @RequiresApi(28) public class AppComponentFactory extends android.app.AppComponentFactory {
     ctor public AppComponentFactory();
-    method public final android.app.Activity instantiateActivity(java.lang.ClassLoader, java.lang.String, android.content.Intent) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
-    method public android.app.Activity instantiateActivityCompat(java.lang.ClassLoader, java.lang.String, android.content.Intent) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
-    method public final android.app.Application instantiateApplication(java.lang.ClassLoader, java.lang.String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
-    method public android.app.Application instantiateApplicationCompat(java.lang.ClassLoader, java.lang.String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
-    method public final android.content.ContentProvider instantiateProvider(java.lang.ClassLoader, java.lang.String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
-    method public android.content.ContentProvider instantiateProviderCompat(java.lang.ClassLoader, java.lang.String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
-    method public final android.content.BroadcastReceiver instantiateReceiver(java.lang.ClassLoader, java.lang.String, android.content.Intent) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
-    method public android.content.BroadcastReceiver instantiateReceiverCompat(java.lang.ClassLoader, java.lang.String, android.content.Intent) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
-    method public final android.app.Service instantiateService(java.lang.ClassLoader, java.lang.String, android.content.Intent) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
-    method public android.app.Service instantiateServiceCompat(java.lang.ClassLoader, java.lang.String, android.content.Intent) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public final android.app.Activity! instantiateActivity(ClassLoader!, String!, android.content.Intent!) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public android.app.Activity instantiateActivityCompat(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public final android.app.Application! instantiateApplication(ClassLoader!, String!) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public android.app.Application instantiateApplicationCompat(ClassLoader, String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public final android.content.ContentProvider! instantiateProvider(ClassLoader!, String!) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public android.content.ContentProvider instantiateProviderCompat(ClassLoader, String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public final android.content.BroadcastReceiver! instantiateReceiver(ClassLoader!, String!, android.content.Intent!) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public android.content.BroadcastReceiver instantiateReceiverCompat(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public final android.app.Service! instantiateService(ClassLoader!, String!, android.content.Intent!) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public android.app.Service instantiateServiceCompat(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
   }
 
   public class AppLaunchChecker {
-    ctor public deprecated AppLaunchChecker();
+    ctor @Deprecated public AppLaunchChecker();
     method public static boolean hasStartedFromLauncher(android.content.Context);
     method public static void onActivityCreate(android.app.Activity);
   }
 
   public final class AppOpsManagerCompat {
-    method public static int noteOp(android.content.Context, java.lang.String, int, java.lang.String);
-    method public static int noteOpNoThrow(android.content.Context, java.lang.String, int, java.lang.String);
-    method public static int noteProxyOp(android.content.Context, java.lang.String, java.lang.String);
-    method public static int noteProxyOpNoThrow(android.content.Context, java.lang.String, java.lang.String);
-    method public static java.lang.String permissionToOp(java.lang.String);
+    method public static int noteOp(android.content.Context, String, int, String);
+    method public static int noteOpNoThrow(android.content.Context, String, int, String);
+    method public static int noteProxyOp(android.content.Context, String, String);
+    method public static int noteProxyOpNoThrow(android.content.Context, String, String);
+    method public static String? permissionToOp(String);
     field public static final int MODE_ALLOWED = 0; // 0x0
     field public static final int MODE_DEFAULT = 3; // 0x3
     field public static final int MODE_ERRORED = 2; // 0x2
@@ -114,8 +115,8 @@
   }
 
   public final class BundleCompat {
-    method public static android.os.IBinder getBinder(android.os.Bundle, java.lang.String);
-    method public static void putBinder(android.os.Bundle, java.lang.String, android.os.IBinder);
+    method public static android.os.IBinder? getBinder(android.os.Bundle, String?);
+    method public static void putBinder(android.os.Bundle, String?, android.os.IBinder?);
   }
 
   public class DialogCompat {
@@ -126,10 +127,10 @@
     ctor public FrameMetricsAggregator();
     ctor public FrameMetricsAggregator(int);
     method public void add(android.app.Activity);
-    method public android.util.SparseIntArray[] getMetrics();
-    method public android.util.SparseIntArray[] remove(android.app.Activity);
-    method public android.util.SparseIntArray[] reset();
-    method public android.util.SparseIntArray[] stop();
+    method public android.util.SparseIntArray[]? getMetrics();
+    method public android.util.SparseIntArray[]? remove(android.app.Activity);
+    method public android.util.SparseIntArray[]? reset();
+    method public android.util.SparseIntArray[]? stop();
     field public static final int ANIMATION_DURATION = 256; // 0x100
     field public static final int ANIMATION_INDEX = 8; // 0x8
     field public static final int COMMAND_DURATION = 32; // 0x20
@@ -153,101 +154,101 @@
 
   public abstract class JobIntentService extends android.app.Service {
     ctor public JobIntentService();
-    method public static void enqueueWork(android.content.Context, java.lang.Class, int, android.content.Intent);
+    method public static void enqueueWork(android.content.Context, Class, int, android.content.Intent);
     method public static void enqueueWork(android.content.Context, android.content.ComponentName, int, android.content.Intent);
     method public boolean isStopped();
-    method public android.os.IBinder onBind(android.content.Intent);
+    method public android.os.IBinder! onBind(android.content.Intent);
     method protected abstract void onHandleWork(android.content.Intent);
     method public boolean onStopCurrentWork();
     method public void setInterruptIfStopped(boolean);
   }
 
   public final class NavUtils {
-    method public static android.content.Intent getParentActivityIntent(android.app.Activity);
-    method public static android.content.Intent getParentActivityIntent(android.content.Context, java.lang.Class<?>) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public static android.content.Intent getParentActivityIntent(android.content.Context, android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public static java.lang.String getParentActivityName(android.app.Activity);
-    method public static java.lang.String getParentActivityName(android.content.Context, android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public static android.content.Intent? getParentActivityIntent(android.app.Activity);
+    method public static android.content.Intent? getParentActivityIntent(android.content.Context, Class<?>) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public static android.content.Intent? getParentActivityIntent(android.content.Context, android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public static String? getParentActivityName(android.app.Activity);
+    method public static String? getParentActivityName(android.content.Context, android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
     method public static void navigateUpFromSameTask(android.app.Activity);
     method public static void navigateUpTo(android.app.Activity, android.content.Intent);
     method public static boolean shouldUpRecreateTask(android.app.Activity, android.content.Intent);
-    field public static final java.lang.String PARENT_ACTIVITY = "android.support.PARENT_ACTIVITY";
+    field public static final String PARENT_ACTIVITY = "android.support.PARENT_ACTIVITY";
   }
 
   public class NotificationCompat {
-    ctor public deprecated NotificationCompat();
-    method public static androidx.core.app.NotificationCompat.Action getAction(android.app.Notification, int);
-    method public static int getActionCount(android.app.Notification);
-    method public static int getBadgeIconType(android.app.Notification);
-    method public static java.lang.String getCategory(android.app.Notification);
-    method public static java.lang.String getChannelId(android.app.Notification);
-    method public static java.lang.CharSequence getContentTitle(android.app.Notification);
-    method public static android.os.Bundle getExtras(android.app.Notification);
-    method public static java.lang.String getGroup(android.app.Notification);
-    method public static int getGroupAlertBehavior(android.app.Notification);
-    method public static java.util.List<androidx.core.app.NotificationCompat.Action> getInvisibleActions(android.app.Notification);
-    method public static boolean getLocalOnly(android.app.Notification);
-    method public static java.lang.String getShortcutId(android.app.Notification);
-    method public static java.lang.String getSortKey(android.app.Notification);
-    method public static long getTimeoutAfter(android.app.Notification);
-    method public static boolean isGroupSummary(android.app.Notification);
+    ctor @Deprecated public NotificationCompat();
+    method public static androidx.core.app.NotificationCompat.Action! getAction(android.app.Notification!, int);
+    method public static int getActionCount(android.app.Notification!);
+    method public static int getBadgeIconType(android.app.Notification!);
+    method public static String! getCategory(android.app.Notification!);
+    method public static String! getChannelId(android.app.Notification!);
+    method @RequiresApi(19) public static CharSequence! getContentTitle(android.app.Notification!);
+    method public static android.os.Bundle? getExtras(android.app.Notification!);
+    method public static String! getGroup(android.app.Notification!);
+    method public static int getGroupAlertBehavior(android.app.Notification!);
+    method @RequiresApi(21) public static java.util.List<androidx.core.app.NotificationCompat.Action>! getInvisibleActions(android.app.Notification!);
+    method public static boolean getLocalOnly(android.app.Notification!);
+    method public static String! getShortcutId(android.app.Notification!);
+    method public static String! getSortKey(android.app.Notification!);
+    method public static long getTimeoutAfter(android.app.Notification!);
+    method public static boolean isGroupSummary(android.app.Notification!);
     field public static final int BADGE_ICON_LARGE = 2; // 0x2
     field public static final int BADGE_ICON_NONE = 0; // 0x0
     field public static final int BADGE_ICON_SMALL = 1; // 0x1
-    field public static final java.lang.String CATEGORY_ALARM = "alarm";
-    field public static final java.lang.String CATEGORY_CALL = "call";
-    field public static final java.lang.String CATEGORY_EMAIL = "email";
-    field public static final java.lang.String CATEGORY_ERROR = "err";
-    field public static final java.lang.String CATEGORY_EVENT = "event";
-    field public static final java.lang.String CATEGORY_MESSAGE = "msg";
-    field public static final java.lang.String CATEGORY_PROGRESS = "progress";
-    field public static final java.lang.String CATEGORY_PROMO = "promo";
-    field public static final java.lang.String CATEGORY_RECOMMENDATION = "recommendation";
-    field public static final java.lang.String CATEGORY_REMINDER = "reminder";
-    field public static final java.lang.String CATEGORY_SERVICE = "service";
-    field public static final java.lang.String CATEGORY_SOCIAL = "social";
-    field public static final java.lang.String CATEGORY_STATUS = "status";
-    field public static final java.lang.String CATEGORY_SYSTEM = "sys";
-    field public static final java.lang.String CATEGORY_TRANSPORT = "transport";
-    field public static final int COLOR_DEFAULT = 0; // 0x0
+    field public static final String CATEGORY_ALARM = "alarm";
+    field public static final String CATEGORY_CALL = "call";
+    field public static final String CATEGORY_EMAIL = "email";
+    field public static final String CATEGORY_ERROR = "err";
+    field public static final String CATEGORY_EVENT = "event";
+    field public static final String CATEGORY_MESSAGE = "msg";
+    field public static final String CATEGORY_PROGRESS = "progress";
+    field public static final String CATEGORY_PROMO = "promo";
+    field public static final String CATEGORY_RECOMMENDATION = "recommendation";
+    field public static final String CATEGORY_REMINDER = "reminder";
+    field public static final String CATEGORY_SERVICE = "service";
+    field public static final String CATEGORY_SOCIAL = "social";
+    field public static final String CATEGORY_STATUS = "status";
+    field public static final String CATEGORY_SYSTEM = "sys";
+    field public static final String CATEGORY_TRANSPORT = "transport";
+    field @ColorInt public static final int COLOR_DEFAULT = 0; // 0x0
     field public static final int DEFAULT_ALL = -1; // 0xffffffff
     field public static final int DEFAULT_LIGHTS = 4; // 0x4
     field public static final int DEFAULT_SOUND = 1; // 0x1
     field public static final int DEFAULT_VIBRATE = 2; // 0x2
-    field public static final java.lang.String EXTRA_AUDIO_CONTENTS_URI = "android.audioContents";
-    field public static final java.lang.String EXTRA_BACKGROUND_IMAGE_URI = "android.backgroundImageUri";
-    field public static final java.lang.String EXTRA_BIG_TEXT = "android.bigText";
-    field public static final java.lang.String EXTRA_COMPACT_ACTIONS = "android.compactActions";
-    field public static final java.lang.String EXTRA_CONVERSATION_TITLE = "android.conversationTitle";
-    field public static final java.lang.String EXTRA_HIDDEN_CONVERSATION_TITLE = "android.hiddenConversationTitle";
-    field public static final java.lang.String EXTRA_INFO_TEXT = "android.infoText";
-    field public static final java.lang.String EXTRA_IS_GROUP_CONVERSATION = "android.isGroupConversation";
-    field public static final java.lang.String EXTRA_LARGE_ICON = "android.largeIcon";
-    field public static final java.lang.String EXTRA_LARGE_ICON_BIG = "android.largeIcon.big";
-    field public static final java.lang.String EXTRA_MEDIA_SESSION = "android.mediaSession";
-    field public static final java.lang.String EXTRA_MESSAGES = "android.messages";
-    field public static final java.lang.String EXTRA_MESSAGING_STYLE_USER = "android.messagingStyleUser";
-    field public static final java.lang.String EXTRA_PEOPLE = "android.people";
-    field public static final java.lang.String EXTRA_PICTURE = "android.picture";
-    field public static final java.lang.String EXTRA_PROGRESS = "android.progress";
-    field public static final java.lang.String EXTRA_PROGRESS_INDETERMINATE = "android.progressIndeterminate";
-    field public static final java.lang.String EXTRA_PROGRESS_MAX = "android.progressMax";
-    field public static final java.lang.String EXTRA_REMOTE_INPUT_HISTORY = "android.remoteInputHistory";
-    field public static final java.lang.String EXTRA_SELF_DISPLAY_NAME = "android.selfDisplayName";
-    field public static final java.lang.String EXTRA_SHOW_CHRONOMETER = "android.showChronometer";
-    field public static final java.lang.String EXTRA_SHOW_WHEN = "android.showWhen";
-    field public static final java.lang.String EXTRA_SMALL_ICON = "android.icon";
-    field public static final java.lang.String EXTRA_SUB_TEXT = "android.subText";
-    field public static final java.lang.String EXTRA_SUMMARY_TEXT = "android.summaryText";
-    field public static final java.lang.String EXTRA_TEMPLATE = "android.template";
-    field public static final java.lang.String EXTRA_TEXT = "android.text";
-    field public static final java.lang.String EXTRA_TEXT_LINES = "android.textLines";
-    field public static final java.lang.String EXTRA_TITLE = "android.title";
-    field public static final java.lang.String EXTRA_TITLE_BIG = "android.title.big";
+    field public static final String EXTRA_AUDIO_CONTENTS_URI = "android.audioContents";
+    field public static final String EXTRA_BACKGROUND_IMAGE_URI = "android.backgroundImageUri";
+    field public static final String EXTRA_BIG_TEXT = "android.bigText";
+    field public static final String EXTRA_COMPACT_ACTIONS = "android.compactActions";
+    field public static final String EXTRA_CONVERSATION_TITLE = "android.conversationTitle";
+    field public static final String EXTRA_HIDDEN_CONVERSATION_TITLE = "android.hiddenConversationTitle";
+    field public static final String EXTRA_INFO_TEXT = "android.infoText";
+    field public static final String EXTRA_IS_GROUP_CONVERSATION = "android.isGroupConversation";
+    field public static final String EXTRA_LARGE_ICON = "android.largeIcon";
+    field public static final String EXTRA_LARGE_ICON_BIG = "android.largeIcon.big";
+    field public static final String EXTRA_MEDIA_SESSION = "android.mediaSession";
+    field public static final String EXTRA_MESSAGES = "android.messages";
+    field public static final String EXTRA_MESSAGING_STYLE_USER = "android.messagingStyleUser";
+    field public static final String EXTRA_PEOPLE = "android.people";
+    field public static final String EXTRA_PICTURE = "android.picture";
+    field public static final String EXTRA_PROGRESS = "android.progress";
+    field public static final String EXTRA_PROGRESS_INDETERMINATE = "android.progressIndeterminate";
+    field public static final String EXTRA_PROGRESS_MAX = "android.progressMax";
+    field public static final String EXTRA_REMOTE_INPUT_HISTORY = "android.remoteInputHistory";
+    field public static final String EXTRA_SELF_DISPLAY_NAME = "android.selfDisplayName";
+    field public static final String EXTRA_SHOW_CHRONOMETER = "android.showChronometer";
+    field public static final String EXTRA_SHOW_WHEN = "android.showWhen";
+    field public static final String EXTRA_SMALL_ICON = "android.icon";
+    field public static final String EXTRA_SUB_TEXT = "android.subText";
+    field public static final String EXTRA_SUMMARY_TEXT = "android.summaryText";
+    field public static final String EXTRA_TEMPLATE = "android.template";
+    field public static final String EXTRA_TEXT = "android.text";
+    field public static final String EXTRA_TEXT_LINES = "android.textLines";
+    field public static final String EXTRA_TITLE = "android.title";
+    field public static final String EXTRA_TITLE_BIG = "android.title.big";
     field public static final int FLAG_AUTO_CANCEL = 16; // 0x10
     field public static final int FLAG_FOREGROUND_SERVICE = 64; // 0x40
     field public static final int FLAG_GROUP_SUMMARY = 512; // 0x200
-    field public static final deprecated int FLAG_HIGH_PRIORITY = 128; // 0x80
+    field @Deprecated public static final int FLAG_HIGH_PRIORITY = 128; // 0x80
     field public static final int FLAG_INSISTENT = 4; // 0x4
     field public static final int FLAG_LOCAL_ONLY = 256; // 0x100
     field public static final int FLAG_NO_CLEAR = 32; // 0x20
@@ -269,16 +270,16 @@
   }
 
   public static class NotificationCompat.Action {
-    ctor public NotificationCompat.Action(int, java.lang.CharSequence, android.app.PendingIntent);
-    method public android.app.PendingIntent getActionIntent();
+    ctor public NotificationCompat.Action(int, CharSequence!, android.app.PendingIntent!);
+    method public android.app.PendingIntent! getActionIntent();
     method public boolean getAllowGeneratedReplies();
-    method public androidx.core.app.RemoteInput[] getDataOnlyRemoteInputs();
-    method public android.os.Bundle getExtras();
+    method public androidx.core.app.RemoteInput[]! getDataOnlyRemoteInputs();
+    method public android.os.Bundle! getExtras();
     method public int getIcon();
-    method public androidx.core.app.RemoteInput[] getRemoteInputs();
-    method public int getSemanticAction();
+    method public androidx.core.app.RemoteInput[]! getRemoteInputs();
+    method @androidx.core.app.NotificationCompat.Action.SemanticAction public int getSemanticAction();
     method public boolean getShowsUserInterface();
-    method public java.lang.CharSequence getTitle();
+    method public CharSequence! getTitle();
     field public static final int SEMANTIC_ACTION_ARCHIVE = 5; // 0x5
     field public static final int SEMANTIC_ACTION_CALL = 10; // 0xa
     field public static final int SEMANTIC_ACTION_DELETE = 4; // 0x4
@@ -290,304 +291,304 @@
     field public static final int SEMANTIC_ACTION_THUMBS_DOWN = 9; // 0x9
     field public static final int SEMANTIC_ACTION_THUMBS_UP = 8; // 0x8
     field public static final int SEMANTIC_ACTION_UNMUTE = 7; // 0x7
-    field public android.app.PendingIntent actionIntent;
+    field public android.app.PendingIntent! actionIntent;
     field public int icon;
-    field public java.lang.CharSequence title;
+    field public CharSequence! title;
   }
 
   public static final class NotificationCompat.Action.Builder {
-    ctor public NotificationCompat.Action.Builder(int, java.lang.CharSequence, android.app.PendingIntent);
-    ctor public NotificationCompat.Action.Builder(androidx.core.app.NotificationCompat.Action);
-    method public androidx.core.app.NotificationCompat.Action.Builder addExtras(android.os.Bundle);
-    method public androidx.core.app.NotificationCompat.Action.Builder addRemoteInput(androidx.core.app.RemoteInput);
-    method public androidx.core.app.NotificationCompat.Action build();
-    method public androidx.core.app.NotificationCompat.Action.Builder extend(androidx.core.app.NotificationCompat.Action.Extender);
-    method public android.os.Bundle getExtras();
-    method public androidx.core.app.NotificationCompat.Action.Builder setAllowGeneratedReplies(boolean);
-    method public androidx.core.app.NotificationCompat.Action.Builder setSemanticAction(int);
-    method public androidx.core.app.NotificationCompat.Action.Builder setShowsUserInterface(boolean);
+    ctor public NotificationCompat.Action.Builder(int, CharSequence!, android.app.PendingIntent!);
+    ctor public NotificationCompat.Action.Builder(androidx.core.app.NotificationCompat.Action!);
+    method public androidx.core.app.NotificationCompat.Action.Builder! addExtras(android.os.Bundle!);
+    method public androidx.core.app.NotificationCompat.Action.Builder! addRemoteInput(androidx.core.app.RemoteInput!);
+    method public androidx.core.app.NotificationCompat.Action! build();
+    method public androidx.core.app.NotificationCompat.Action.Builder! extend(androidx.core.app.NotificationCompat.Action.Extender!);
+    method public android.os.Bundle! getExtras();
+    method public androidx.core.app.NotificationCompat.Action.Builder! setAllowGeneratedReplies(boolean);
+    method public androidx.core.app.NotificationCompat.Action.Builder! setSemanticAction(@androidx.core.app.NotificationCompat.Action.SemanticAction int);
+    method public androidx.core.app.NotificationCompat.Action.Builder! setShowsUserInterface(boolean);
   }
 
-  public static abstract interface NotificationCompat.Action.Extender {
-    method public abstract androidx.core.app.NotificationCompat.Action.Builder extend(androidx.core.app.NotificationCompat.Action.Builder);
+  public static interface NotificationCompat.Action.Extender {
+    method public androidx.core.app.NotificationCompat.Action.Builder! extend(androidx.core.app.NotificationCompat.Action.Builder!);
   }
 
-  public static abstract class NotificationCompat.Action.SemanticAction implements java.lang.annotation.Annotation {
+  @IntDef({androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_NONE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_REPLY, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_MARK_AS_READ, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_MARK_AS_UNREAD, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_DELETE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_ARCHIVE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_MUTE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_UNMUTE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_THUMBS_UP, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_THUMBS_DOWN, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_CALL}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface NotificationCompat.Action.SemanticAction {
   }
 
   public static final class NotificationCompat.Action.WearableExtender implements androidx.core.app.NotificationCompat.Action.Extender {
     ctor public NotificationCompat.Action.WearableExtender();
-    ctor public NotificationCompat.Action.WearableExtender(androidx.core.app.NotificationCompat.Action);
-    method public androidx.core.app.NotificationCompat.Action.WearableExtender clone();
-    method public androidx.core.app.NotificationCompat.Action.Builder extend(androidx.core.app.NotificationCompat.Action.Builder);
-    method public deprecated java.lang.CharSequence getCancelLabel();
-    method public deprecated java.lang.CharSequence getConfirmLabel();
+    ctor public NotificationCompat.Action.WearableExtender(androidx.core.app.NotificationCompat.Action!);
+    method public androidx.core.app.NotificationCompat.Action.WearableExtender! clone();
+    method public androidx.core.app.NotificationCompat.Action.Builder! extend(androidx.core.app.NotificationCompat.Action.Builder!);
+    method @Deprecated public CharSequence! getCancelLabel();
+    method @Deprecated public CharSequence! getConfirmLabel();
     method public boolean getHintDisplayActionInline();
     method public boolean getHintLaunchesActivity();
-    method public deprecated java.lang.CharSequence getInProgressLabel();
+    method @Deprecated public CharSequence! getInProgressLabel();
     method public boolean isAvailableOffline();
-    method public androidx.core.app.NotificationCompat.Action.WearableExtender setAvailableOffline(boolean);
-    method public deprecated androidx.core.app.NotificationCompat.Action.WearableExtender setCancelLabel(java.lang.CharSequence);
-    method public deprecated androidx.core.app.NotificationCompat.Action.WearableExtender setConfirmLabel(java.lang.CharSequence);
-    method public androidx.core.app.NotificationCompat.Action.WearableExtender setHintDisplayActionInline(boolean);
-    method public androidx.core.app.NotificationCompat.Action.WearableExtender setHintLaunchesActivity(boolean);
-    method public deprecated androidx.core.app.NotificationCompat.Action.WearableExtender setInProgressLabel(java.lang.CharSequence);
+    method public androidx.core.app.NotificationCompat.Action.WearableExtender! setAvailableOffline(boolean);
+    method @Deprecated public androidx.core.app.NotificationCompat.Action.WearableExtender! setCancelLabel(CharSequence!);
+    method @Deprecated public androidx.core.app.NotificationCompat.Action.WearableExtender! setConfirmLabel(CharSequence!);
+    method public androidx.core.app.NotificationCompat.Action.WearableExtender! setHintDisplayActionInline(boolean);
+    method public androidx.core.app.NotificationCompat.Action.WearableExtender! setHintLaunchesActivity(boolean);
+    method @Deprecated public androidx.core.app.NotificationCompat.Action.WearableExtender! setInProgressLabel(CharSequence!);
   }
 
   public static class NotificationCompat.BigPictureStyle extends androidx.core.app.NotificationCompat.Style {
     ctor public NotificationCompat.BigPictureStyle();
-    ctor public NotificationCompat.BigPictureStyle(androidx.core.app.NotificationCompat.Builder);
-    method public androidx.core.app.NotificationCompat.BigPictureStyle bigLargeIcon(android.graphics.Bitmap);
-    method public androidx.core.app.NotificationCompat.BigPictureStyle bigPicture(android.graphics.Bitmap);
-    method public androidx.core.app.NotificationCompat.BigPictureStyle setBigContentTitle(java.lang.CharSequence);
-    method public androidx.core.app.NotificationCompat.BigPictureStyle setSummaryText(java.lang.CharSequence);
+    ctor public NotificationCompat.BigPictureStyle(androidx.core.app.NotificationCompat.Builder!);
+    method public androidx.core.app.NotificationCompat.BigPictureStyle! bigLargeIcon(android.graphics.Bitmap!);
+    method public androidx.core.app.NotificationCompat.BigPictureStyle! bigPicture(android.graphics.Bitmap!);
+    method public androidx.core.app.NotificationCompat.BigPictureStyle! setBigContentTitle(CharSequence!);
+    method public androidx.core.app.NotificationCompat.BigPictureStyle! setSummaryText(CharSequence!);
   }
 
   public static class NotificationCompat.BigTextStyle extends androidx.core.app.NotificationCompat.Style {
     ctor public NotificationCompat.BigTextStyle();
-    ctor public NotificationCompat.BigTextStyle(androidx.core.app.NotificationCompat.Builder);
-    method public androidx.core.app.NotificationCompat.BigTextStyle bigText(java.lang.CharSequence);
-    method public androidx.core.app.NotificationCompat.BigTextStyle setBigContentTitle(java.lang.CharSequence);
-    method public androidx.core.app.NotificationCompat.BigTextStyle setSummaryText(java.lang.CharSequence);
+    ctor public NotificationCompat.BigTextStyle(androidx.core.app.NotificationCompat.Builder!);
+    method public androidx.core.app.NotificationCompat.BigTextStyle! bigText(CharSequence!);
+    method public androidx.core.app.NotificationCompat.BigTextStyle! setBigContentTitle(CharSequence!);
+    method public androidx.core.app.NotificationCompat.BigTextStyle! setSummaryText(CharSequence!);
   }
 
   public static class NotificationCompat.Builder {
-    ctor public NotificationCompat.Builder(android.content.Context, java.lang.String);
-    ctor public deprecated NotificationCompat.Builder(android.content.Context);
-    method public androidx.core.app.NotificationCompat.Builder addAction(int, java.lang.CharSequence, android.app.PendingIntent);
-    method public androidx.core.app.NotificationCompat.Builder addAction(androidx.core.app.NotificationCompat.Action);
-    method public androidx.core.app.NotificationCompat.Builder addExtras(android.os.Bundle);
-    method public androidx.core.app.NotificationCompat.Builder addInvisibleAction(int, java.lang.CharSequence, android.app.PendingIntent);
-    method public androidx.core.app.NotificationCompat.Builder addInvisibleAction(androidx.core.app.NotificationCompat.Action);
-    method public androidx.core.app.NotificationCompat.Builder addPerson(java.lang.String);
-    method public android.app.Notification build();
-    method public androidx.core.app.NotificationCompat.Builder extend(androidx.core.app.NotificationCompat.Extender);
-    method public android.os.Bundle getExtras();
-    method public deprecated android.app.Notification getNotification();
-    method protected static java.lang.CharSequence limitCharSequenceLength(java.lang.CharSequence);
-    method public androidx.core.app.NotificationCompat.Builder setAutoCancel(boolean);
-    method public androidx.core.app.NotificationCompat.Builder setBadgeIconType(int);
-    method public androidx.core.app.NotificationCompat.Builder setCategory(java.lang.String);
-    method public androidx.core.app.NotificationCompat.Builder setChannelId(java.lang.String);
-    method public androidx.core.app.NotificationCompat.Builder setColor(int);
-    method public androidx.core.app.NotificationCompat.Builder setColorized(boolean);
-    method public androidx.core.app.NotificationCompat.Builder setContent(android.widget.RemoteViews);
-    method public androidx.core.app.NotificationCompat.Builder setContentInfo(java.lang.CharSequence);
-    method public androidx.core.app.NotificationCompat.Builder setContentIntent(android.app.PendingIntent);
-    method public androidx.core.app.NotificationCompat.Builder setContentText(java.lang.CharSequence);
-    method public androidx.core.app.NotificationCompat.Builder setContentTitle(java.lang.CharSequence);
-    method public androidx.core.app.NotificationCompat.Builder setCustomBigContentView(android.widget.RemoteViews);
-    method public androidx.core.app.NotificationCompat.Builder setCustomContentView(android.widget.RemoteViews);
-    method public androidx.core.app.NotificationCompat.Builder setCustomHeadsUpContentView(android.widget.RemoteViews);
-    method public androidx.core.app.NotificationCompat.Builder setDefaults(int);
-    method public androidx.core.app.NotificationCompat.Builder setDeleteIntent(android.app.PendingIntent);
-    method public androidx.core.app.NotificationCompat.Builder setExtras(android.os.Bundle);
-    method public androidx.core.app.NotificationCompat.Builder setFullScreenIntent(android.app.PendingIntent, boolean);
-    method public androidx.core.app.NotificationCompat.Builder setGroup(java.lang.String);
-    method public androidx.core.app.NotificationCompat.Builder setGroupAlertBehavior(int);
-    method public androidx.core.app.NotificationCompat.Builder setGroupSummary(boolean);
-    method public androidx.core.app.NotificationCompat.Builder setLargeIcon(android.graphics.Bitmap);
-    method public androidx.core.app.NotificationCompat.Builder setLights(int, int, int);
-    method public androidx.core.app.NotificationCompat.Builder setLocalOnly(boolean);
-    method public androidx.core.app.NotificationCompat.Builder setNumber(int);
-    method public androidx.core.app.NotificationCompat.Builder setOngoing(boolean);
-    method public androidx.core.app.NotificationCompat.Builder setOnlyAlertOnce(boolean);
-    method public androidx.core.app.NotificationCompat.Builder setPriority(int);
-    method public androidx.core.app.NotificationCompat.Builder setProgress(int, int, boolean);
-    method public androidx.core.app.NotificationCompat.Builder setPublicVersion(android.app.Notification);
-    method public androidx.core.app.NotificationCompat.Builder setRemoteInputHistory(java.lang.CharSequence[]);
-    method public androidx.core.app.NotificationCompat.Builder setShortcutId(java.lang.String);
-    method public androidx.core.app.NotificationCompat.Builder setShowWhen(boolean);
-    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(java.lang.String);
-    method public androidx.core.app.NotificationCompat.Builder setSound(android.net.Uri);
-    method public androidx.core.app.NotificationCompat.Builder setSound(android.net.Uri, int);
-    method public androidx.core.app.NotificationCompat.Builder setStyle(androidx.core.app.NotificationCompat.Style);
-    method public androidx.core.app.NotificationCompat.Builder setSubText(java.lang.CharSequence);
-    method public androidx.core.app.NotificationCompat.Builder setTicker(java.lang.CharSequence);
-    method public androidx.core.app.NotificationCompat.Builder setTicker(java.lang.CharSequence, android.widget.RemoteViews);
-    method public androidx.core.app.NotificationCompat.Builder setTimeoutAfter(long);
-    method public androidx.core.app.NotificationCompat.Builder setUsesChronometer(boolean);
-    method public androidx.core.app.NotificationCompat.Builder setVibrate(long[]);
-    method public androidx.core.app.NotificationCompat.Builder setVisibility(int);
-    method public androidx.core.app.NotificationCompat.Builder setWhen(long);
-    field public deprecated java.util.ArrayList<java.lang.String> mPeople;
+    ctor public NotificationCompat.Builder(android.content.Context, String);
+    ctor @Deprecated public NotificationCompat.Builder(android.content.Context!);
+    method public androidx.core.app.NotificationCompat.Builder! addAction(int, CharSequence!, android.app.PendingIntent!);
+    method public androidx.core.app.NotificationCompat.Builder! addAction(androidx.core.app.NotificationCompat.Action!);
+    method public androidx.core.app.NotificationCompat.Builder! addExtras(android.os.Bundle!);
+    method @RequiresApi(21) public androidx.core.app.NotificationCompat.Builder! addInvisibleAction(int, CharSequence!, android.app.PendingIntent!);
+    method @RequiresApi(21) public androidx.core.app.NotificationCompat.Builder! addInvisibleAction(androidx.core.app.NotificationCompat.Action!);
+    method public androidx.core.app.NotificationCompat.Builder! addPerson(String!);
+    method public android.app.Notification! build();
+    method public androidx.core.app.NotificationCompat.Builder! extend(androidx.core.app.NotificationCompat.Extender!);
+    method public android.os.Bundle! getExtras();
+    method @Deprecated public android.app.Notification! getNotification();
+    method protected static CharSequence! limitCharSequenceLength(CharSequence!);
+    method public androidx.core.app.NotificationCompat.Builder! setAutoCancel(boolean);
+    method public androidx.core.app.NotificationCompat.Builder! setBadgeIconType(int);
+    method public androidx.core.app.NotificationCompat.Builder! setCategory(String!);
+    method public androidx.core.app.NotificationCompat.Builder! setChannelId(String);
+    method public androidx.core.app.NotificationCompat.Builder! setColor(@ColorInt int);
+    method public androidx.core.app.NotificationCompat.Builder! setColorized(boolean);
+    method public androidx.core.app.NotificationCompat.Builder! setContent(android.widget.RemoteViews!);
+    method public androidx.core.app.NotificationCompat.Builder! setContentInfo(CharSequence!);
+    method public androidx.core.app.NotificationCompat.Builder! setContentIntent(android.app.PendingIntent!);
+    method public androidx.core.app.NotificationCompat.Builder! setContentText(CharSequence!);
+    method public androidx.core.app.NotificationCompat.Builder! setContentTitle(CharSequence!);
+    method public androidx.core.app.NotificationCompat.Builder! setCustomBigContentView(android.widget.RemoteViews!);
+    method public androidx.core.app.NotificationCompat.Builder! setCustomContentView(android.widget.RemoteViews!);
+    method public androidx.core.app.NotificationCompat.Builder! setCustomHeadsUpContentView(android.widget.RemoteViews!);
+    method public androidx.core.app.NotificationCompat.Builder! setDefaults(int);
+    method public androidx.core.app.NotificationCompat.Builder! setDeleteIntent(android.app.PendingIntent!);
+    method public androidx.core.app.NotificationCompat.Builder! setExtras(android.os.Bundle!);
+    method public androidx.core.app.NotificationCompat.Builder! setFullScreenIntent(android.app.PendingIntent!, boolean);
+    method public androidx.core.app.NotificationCompat.Builder! setGroup(String!);
+    method public androidx.core.app.NotificationCompat.Builder! setGroupAlertBehavior(int);
+    method public androidx.core.app.NotificationCompat.Builder! setGroupSummary(boolean);
+    method public androidx.core.app.NotificationCompat.Builder! setLargeIcon(android.graphics.Bitmap!);
+    method public androidx.core.app.NotificationCompat.Builder! setLights(@ColorInt int, int, int);
+    method public androidx.core.app.NotificationCompat.Builder! setLocalOnly(boolean);
+    method public androidx.core.app.NotificationCompat.Builder! setNumber(int);
+    method public androidx.core.app.NotificationCompat.Builder! setOngoing(boolean);
+    method public androidx.core.app.NotificationCompat.Builder! setOnlyAlertOnce(boolean);
+    method public androidx.core.app.NotificationCompat.Builder! setPriority(int);
+    method public androidx.core.app.NotificationCompat.Builder! setProgress(int, int, boolean);
+    method public androidx.core.app.NotificationCompat.Builder! setPublicVersion(android.app.Notification!);
+    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 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!);
+    method public androidx.core.app.NotificationCompat.Builder! setSound(android.net.Uri!);
+    method public androidx.core.app.NotificationCompat.Builder! setSound(android.net.Uri!, int);
+    method public androidx.core.app.NotificationCompat.Builder! setStyle(androidx.core.app.NotificationCompat.Style!);
+    method public androidx.core.app.NotificationCompat.Builder! setSubText(CharSequence!);
+    method public androidx.core.app.NotificationCompat.Builder! setTicker(CharSequence!);
+    method public androidx.core.app.NotificationCompat.Builder! setTicker(CharSequence!, android.widget.RemoteViews!);
+    method public androidx.core.app.NotificationCompat.Builder! setTimeoutAfter(long);
+    method public androidx.core.app.NotificationCompat.Builder! setUsesChronometer(boolean);
+    method public androidx.core.app.NotificationCompat.Builder! setVibrate(long[]!);
+    method public androidx.core.app.NotificationCompat.Builder! setVisibility(int);
+    method public androidx.core.app.NotificationCompat.Builder! setWhen(long);
+    field @Deprecated public java.util.ArrayList<java.lang.String>! mPeople;
   }
 
   public static final class NotificationCompat.CarExtender implements androidx.core.app.NotificationCompat.Extender {
     ctor public NotificationCompat.CarExtender();
-    ctor public NotificationCompat.CarExtender(android.app.Notification);
-    method public androidx.core.app.NotificationCompat.Builder extend(androidx.core.app.NotificationCompat.Builder);
-    method public int getColor();
-    method public android.graphics.Bitmap getLargeIcon();
-    method public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation getUnreadConversation();
-    method public androidx.core.app.NotificationCompat.CarExtender setColor(int);
-    method public androidx.core.app.NotificationCompat.CarExtender setLargeIcon(android.graphics.Bitmap);
-    method public androidx.core.app.NotificationCompat.CarExtender setUnreadConversation(androidx.core.app.NotificationCompat.CarExtender.UnreadConversation);
+    ctor public NotificationCompat.CarExtender(android.app.Notification!);
+    method public androidx.core.app.NotificationCompat.Builder! extend(androidx.core.app.NotificationCompat.Builder!);
+    method @ColorInt public int getColor();
+    method public android.graphics.Bitmap! getLargeIcon();
+    method public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation! getUnreadConversation();
+    method public androidx.core.app.NotificationCompat.CarExtender! setColor(@ColorInt int);
+    method public androidx.core.app.NotificationCompat.CarExtender! setLargeIcon(android.graphics.Bitmap!);
+    method public androidx.core.app.NotificationCompat.CarExtender! setUnreadConversation(androidx.core.app.NotificationCompat.CarExtender.UnreadConversation!);
   }
 
   public static class NotificationCompat.CarExtender.UnreadConversation {
     method public long getLatestTimestamp();
-    method public java.lang.String[] getMessages();
-    method public java.lang.String getParticipant();
-    method public java.lang.String[] getParticipants();
-    method public android.app.PendingIntent getReadPendingIntent();
-    method public androidx.core.app.RemoteInput getRemoteInput();
-    method public android.app.PendingIntent getReplyPendingIntent();
+    method public String[]! getMessages();
+    method public String! getParticipant();
+    method public String[]! getParticipants();
+    method public android.app.PendingIntent! getReadPendingIntent();
+    method public androidx.core.app.RemoteInput! getRemoteInput();
+    method public android.app.PendingIntent! getReplyPendingIntent();
   }
 
   public static class NotificationCompat.CarExtender.UnreadConversation.Builder {
-    ctor public NotificationCompat.CarExtender.UnreadConversation.Builder(java.lang.String);
-    method public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder addMessage(java.lang.String);
-    method public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation build();
-    method public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder setLatestTimestamp(long);
-    method public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder setReadPendingIntent(android.app.PendingIntent);
-    method public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder setReplyAction(android.app.PendingIntent, androidx.core.app.RemoteInput);
+    ctor public NotificationCompat.CarExtender.UnreadConversation.Builder(String!);
+    method public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder! addMessage(String!);
+    method public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation! build();
+    method public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder! setLatestTimestamp(long);
+    method public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder! setReadPendingIntent(android.app.PendingIntent!);
+    method public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder! setReplyAction(android.app.PendingIntent!, androidx.core.app.RemoteInput!);
   }
 
   public static class NotificationCompat.DecoratedCustomViewStyle extends androidx.core.app.NotificationCompat.Style {
     ctor public NotificationCompat.DecoratedCustomViewStyle();
   }
 
-  public static abstract interface NotificationCompat.Extender {
-    method public abstract androidx.core.app.NotificationCompat.Builder extend(androidx.core.app.NotificationCompat.Builder);
+  public static interface NotificationCompat.Extender {
+    method public androidx.core.app.NotificationCompat.Builder! extend(androidx.core.app.NotificationCompat.Builder!);
   }
 
   public static class NotificationCompat.InboxStyle extends androidx.core.app.NotificationCompat.Style {
     ctor public NotificationCompat.InboxStyle();
-    ctor public NotificationCompat.InboxStyle(androidx.core.app.NotificationCompat.Builder);
-    method public androidx.core.app.NotificationCompat.InboxStyle addLine(java.lang.CharSequence);
-    method public androidx.core.app.NotificationCompat.InboxStyle setBigContentTitle(java.lang.CharSequence);
-    method public androidx.core.app.NotificationCompat.InboxStyle setSummaryText(java.lang.CharSequence);
+    ctor public NotificationCompat.InboxStyle(androidx.core.app.NotificationCompat.Builder!);
+    method public androidx.core.app.NotificationCompat.InboxStyle! addLine(CharSequence!);
+    method public androidx.core.app.NotificationCompat.InboxStyle! setBigContentTitle(CharSequence!);
+    method public androidx.core.app.NotificationCompat.InboxStyle! setSummaryText(CharSequence!);
   }
 
   public static class NotificationCompat.MessagingStyle extends androidx.core.app.NotificationCompat.Style {
-    ctor public deprecated NotificationCompat.MessagingStyle(java.lang.CharSequence);
+    ctor @Deprecated public NotificationCompat.MessagingStyle(CharSequence);
     ctor public NotificationCompat.MessagingStyle(androidx.core.app.Person);
-    method public void addCompatExtras(android.os.Bundle);
-    method public deprecated androidx.core.app.NotificationCompat.MessagingStyle addMessage(java.lang.CharSequence, long, java.lang.CharSequence);
-    method public androidx.core.app.NotificationCompat.MessagingStyle addMessage(java.lang.CharSequence, long, androidx.core.app.Person);
-    method public androidx.core.app.NotificationCompat.MessagingStyle addMessage(androidx.core.app.NotificationCompat.MessagingStyle.Message);
-    method public static androidx.core.app.NotificationCompat.MessagingStyle extractMessagingStyleFromNotification(android.app.Notification);
-    method public java.lang.CharSequence getConversationTitle();
-    method public java.util.List<androidx.core.app.NotificationCompat.MessagingStyle.Message> getMessages();
-    method public androidx.core.app.Person getUser();
-    method public deprecated java.lang.CharSequence getUserDisplayName();
+    method public void addCompatExtras(android.os.Bundle!);
+    method @Deprecated public androidx.core.app.NotificationCompat.MessagingStyle! addMessage(CharSequence!, long, CharSequence!);
+    method public androidx.core.app.NotificationCompat.MessagingStyle! addMessage(CharSequence!, long, androidx.core.app.Person!);
+    method public androidx.core.app.NotificationCompat.MessagingStyle! addMessage(androidx.core.app.NotificationCompat.MessagingStyle.Message!);
+    method public static androidx.core.app.NotificationCompat.MessagingStyle? extractMessagingStyleFromNotification(android.app.Notification!);
+    method public CharSequence? getConversationTitle();
+    method public java.util.List<androidx.core.app.NotificationCompat.MessagingStyle.Message>! getMessages();
+    method public androidx.core.app.Person! getUser();
+    method @Deprecated public CharSequence! getUserDisplayName();
     method public boolean isGroupConversation();
-    method public androidx.core.app.NotificationCompat.MessagingStyle setConversationTitle(java.lang.CharSequence);
-    method public androidx.core.app.NotificationCompat.MessagingStyle setGroupConversation(boolean);
+    method public androidx.core.app.NotificationCompat.MessagingStyle! setConversationTitle(CharSequence?);
+    method public androidx.core.app.NotificationCompat.MessagingStyle! setGroupConversation(boolean);
     field public static final int MAXIMUM_RETAINED_MESSAGES = 25; // 0x19
   }
 
   public static final class NotificationCompat.MessagingStyle.Message {
-    ctor public NotificationCompat.MessagingStyle.Message(java.lang.CharSequence, long, androidx.core.app.Person);
-    ctor public deprecated NotificationCompat.MessagingStyle.Message(java.lang.CharSequence, long, java.lang.CharSequence);
-    method public java.lang.String getDataMimeType();
-    method public android.net.Uri getDataUri();
+    ctor public NotificationCompat.MessagingStyle.Message(CharSequence!, long, androidx.core.app.Person?);
+    ctor @Deprecated public NotificationCompat.MessagingStyle.Message(CharSequence!, long, CharSequence!);
+    method public String? getDataMimeType();
+    method public android.net.Uri? getDataUri();
     method public android.os.Bundle getExtras();
-    method public androidx.core.app.Person getPerson();
-    method public deprecated java.lang.CharSequence getSender();
-    method public java.lang.CharSequence getText();
+    method public androidx.core.app.Person? getPerson();
+    method @Deprecated public CharSequence? getSender();
+    method public CharSequence getText();
     method public long getTimestamp();
-    method public androidx.core.app.NotificationCompat.MessagingStyle.Message setData(java.lang.String, android.net.Uri);
+    method public androidx.core.app.NotificationCompat.MessagingStyle.Message! setData(String!, android.net.Uri!);
   }
 
-  public static abstract class NotificationCompat.Style {
+  public abstract static class NotificationCompat.Style {
     ctor public NotificationCompat.Style();
-    method public android.app.Notification build();
-    method public void setBuilder(androidx.core.app.NotificationCompat.Builder);
+    method public android.app.Notification! build();
+    method public void setBuilder(androidx.core.app.NotificationCompat.Builder!);
   }
 
   public static final class NotificationCompat.WearableExtender implements androidx.core.app.NotificationCompat.Extender {
     ctor public NotificationCompat.WearableExtender();
-    ctor public NotificationCompat.WearableExtender(android.app.Notification);
-    method public androidx.core.app.NotificationCompat.WearableExtender addAction(androidx.core.app.NotificationCompat.Action);
-    method public androidx.core.app.NotificationCompat.WearableExtender addActions(java.util.List<androidx.core.app.NotificationCompat.Action>);
-    method public deprecated androidx.core.app.NotificationCompat.WearableExtender addPage(android.app.Notification);
-    method public deprecated androidx.core.app.NotificationCompat.WearableExtender addPages(java.util.List<android.app.Notification>);
-    method public androidx.core.app.NotificationCompat.WearableExtender clearActions();
-    method public deprecated androidx.core.app.NotificationCompat.WearableExtender clearPages();
-    method public androidx.core.app.NotificationCompat.WearableExtender clone();
-    method public androidx.core.app.NotificationCompat.Builder extend(androidx.core.app.NotificationCompat.Builder);
-    method public java.util.List<androidx.core.app.NotificationCompat.Action> getActions();
-    method public deprecated android.graphics.Bitmap getBackground();
-    method public java.lang.String getBridgeTag();
+    ctor public NotificationCompat.WearableExtender(android.app.Notification!);
+    method public androidx.core.app.NotificationCompat.WearableExtender! addAction(androidx.core.app.NotificationCompat.Action!);
+    method public androidx.core.app.NotificationCompat.WearableExtender! addActions(java.util.List<androidx.core.app.NotificationCompat.Action>!);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender! addPage(android.app.Notification!);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender! addPages(java.util.List<android.app.Notification>!);
+    method public androidx.core.app.NotificationCompat.WearableExtender! clearActions();
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender! clearPages();
+    method public androidx.core.app.NotificationCompat.WearableExtender! clone();
+    method public androidx.core.app.NotificationCompat.Builder! extend(androidx.core.app.NotificationCompat.Builder!);
+    method public java.util.List<androidx.core.app.NotificationCompat.Action>! getActions();
+    method @Deprecated public android.graphics.Bitmap! getBackground();
+    method public String! getBridgeTag();
     method public int getContentAction();
-    method public deprecated int getContentIcon();
-    method public deprecated int getContentIconGravity();
+    method @Deprecated public int getContentIcon();
+    method @Deprecated public int getContentIconGravity();
     method public boolean getContentIntentAvailableOffline();
-    method public deprecated int getCustomContentHeight();
-    method public deprecated int getCustomSizePreset();
-    method public java.lang.String getDismissalId();
-    method public deprecated android.app.PendingIntent getDisplayIntent();
-    method public deprecated int getGravity();
-    method public deprecated boolean getHintAmbientBigPicture();
-    method public deprecated boolean getHintAvoidBackgroundClipping();
+    method @Deprecated public int getCustomContentHeight();
+    method @Deprecated public int getCustomSizePreset();
+    method public String! getDismissalId();
+    method @Deprecated public android.app.PendingIntent! getDisplayIntent();
+    method @Deprecated public int getGravity();
+    method @Deprecated public boolean getHintAmbientBigPicture();
+    method @Deprecated public boolean getHintAvoidBackgroundClipping();
     method public boolean getHintContentIntentLaunchesActivity();
-    method public deprecated boolean getHintHideIcon();
-    method public deprecated int getHintScreenTimeout();
-    method public deprecated boolean getHintShowBackgroundOnly();
-    method public deprecated java.util.List<android.app.Notification> getPages();
+    method @Deprecated public boolean getHintHideIcon();
+    method @Deprecated public int getHintScreenTimeout();
+    method @Deprecated public boolean getHintShowBackgroundOnly();
+    method @Deprecated public java.util.List<android.app.Notification>! getPages();
     method public boolean getStartScrollBottom();
-    method public deprecated androidx.core.app.NotificationCompat.WearableExtender setBackground(android.graphics.Bitmap);
-    method public androidx.core.app.NotificationCompat.WearableExtender setBridgeTag(java.lang.String);
-    method public androidx.core.app.NotificationCompat.WearableExtender setContentAction(int);
-    method public deprecated androidx.core.app.NotificationCompat.WearableExtender setContentIcon(int);
-    method public deprecated androidx.core.app.NotificationCompat.WearableExtender setContentIconGravity(int);
-    method public androidx.core.app.NotificationCompat.WearableExtender setContentIntentAvailableOffline(boolean);
-    method public deprecated androidx.core.app.NotificationCompat.WearableExtender setCustomContentHeight(int);
-    method public deprecated androidx.core.app.NotificationCompat.WearableExtender setCustomSizePreset(int);
-    method public androidx.core.app.NotificationCompat.WearableExtender setDismissalId(java.lang.String);
-    method public deprecated androidx.core.app.NotificationCompat.WearableExtender setDisplayIntent(android.app.PendingIntent);
-    method public deprecated androidx.core.app.NotificationCompat.WearableExtender setGravity(int);
-    method public deprecated androidx.core.app.NotificationCompat.WearableExtender setHintAmbientBigPicture(boolean);
-    method public deprecated androidx.core.app.NotificationCompat.WearableExtender setHintAvoidBackgroundClipping(boolean);
-    method public androidx.core.app.NotificationCompat.WearableExtender setHintContentIntentLaunchesActivity(boolean);
-    method public deprecated androidx.core.app.NotificationCompat.WearableExtender setHintHideIcon(boolean);
-    method public deprecated androidx.core.app.NotificationCompat.WearableExtender setHintScreenTimeout(int);
-    method public deprecated androidx.core.app.NotificationCompat.WearableExtender setHintShowBackgroundOnly(boolean);
-    method public androidx.core.app.NotificationCompat.WearableExtender setStartScrollBottom(boolean);
-    field public static final deprecated int SCREEN_TIMEOUT_LONG = -1; // 0xffffffff
-    field public static final deprecated int SCREEN_TIMEOUT_SHORT = 0; // 0x0
-    field public static final deprecated int SIZE_DEFAULT = 0; // 0x0
-    field public static final deprecated int SIZE_FULL_SCREEN = 5; // 0x5
-    field public static final deprecated int SIZE_LARGE = 4; // 0x4
-    field public static final deprecated int SIZE_MEDIUM = 3; // 0x3
-    field public static final deprecated int SIZE_SMALL = 2; // 0x2
-    field public static final deprecated int SIZE_XSMALL = 1; // 0x1
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender! setBackground(android.graphics.Bitmap!);
+    method public androidx.core.app.NotificationCompat.WearableExtender! setBridgeTag(String!);
+    method public androidx.core.app.NotificationCompat.WearableExtender! setContentAction(int);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender! setContentIcon(int);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender! setContentIconGravity(int);
+    method public androidx.core.app.NotificationCompat.WearableExtender! setContentIntentAvailableOffline(boolean);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender! setCustomContentHeight(int);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender! setCustomSizePreset(int);
+    method public androidx.core.app.NotificationCompat.WearableExtender! setDismissalId(String!);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender! setDisplayIntent(android.app.PendingIntent!);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender! setGravity(int);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender! setHintAmbientBigPicture(boolean);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender! setHintAvoidBackgroundClipping(boolean);
+    method public androidx.core.app.NotificationCompat.WearableExtender! setHintContentIntentLaunchesActivity(boolean);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender! setHintHideIcon(boolean);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender! setHintScreenTimeout(int);
+    method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender! setHintShowBackgroundOnly(boolean);
+    method public androidx.core.app.NotificationCompat.WearableExtender! setStartScrollBottom(boolean);
+    field @Deprecated public static final int SCREEN_TIMEOUT_LONG = -1; // 0xffffffff
+    field @Deprecated public static final int SCREEN_TIMEOUT_SHORT = 0; // 0x0
+    field @Deprecated public static final int SIZE_DEFAULT = 0; // 0x0
+    field @Deprecated public static final int SIZE_FULL_SCREEN = 5; // 0x5
+    field @Deprecated public static final int SIZE_LARGE = 4; // 0x4
+    field @Deprecated public static final int SIZE_MEDIUM = 3; // 0x3
+    field @Deprecated public static final int SIZE_SMALL = 2; // 0x2
+    field @Deprecated public static final int SIZE_XSMALL = 1; // 0x1
     field public static final int UNSET_ACTION_INDEX = -1; // 0xffffffff
   }
 
   public final class NotificationCompatExtras {
-    field public static final java.lang.String EXTRA_ACTION_EXTRAS = "android.support.actionExtras";
-    field public static final java.lang.String EXTRA_GROUP_KEY = "android.support.groupKey";
-    field public static final java.lang.String EXTRA_GROUP_SUMMARY = "android.support.isGroupSummary";
-    field public static final java.lang.String EXTRA_LOCAL_ONLY = "android.support.localOnly";
-    field public static final java.lang.String EXTRA_REMOTE_INPUTS = "android.support.remoteInputs";
-    field public static final java.lang.String EXTRA_SORT_KEY = "android.support.sortKey";
+    field public static final String EXTRA_ACTION_EXTRAS = "android.support.actionExtras";
+    field public static final String EXTRA_GROUP_KEY = "android.support.groupKey";
+    field public static final String EXTRA_GROUP_SUMMARY = "android.support.isGroupSummary";
+    field public static final String EXTRA_LOCAL_ONLY = "android.support.localOnly";
+    field public static final String EXTRA_REMOTE_INPUTS = "android.support.remoteInputs";
+    field public static final String EXTRA_SORT_KEY = "android.support.sortKey";
   }
 
   public abstract class NotificationCompatSideChannelService extends android.app.Service {
     ctor public NotificationCompatSideChannelService();
-    method public abstract void cancel(java.lang.String, int, java.lang.String);
-    method public abstract void cancelAll(java.lang.String);
-    method public abstract void notify(java.lang.String, int, java.lang.String, android.app.Notification);
-    method public android.os.IBinder onBind(android.content.Intent);
+    method public abstract void cancel(String!, int, String!);
+    method public abstract void cancelAll(String!);
+    method public abstract void notify(String!, int, String!, android.app.Notification!);
+    method public android.os.IBinder! onBind(android.content.Intent!);
   }
 
   public final class NotificationManagerCompat {
     method public boolean areNotificationsEnabled();
     method public void cancel(int);
-    method public void cancel(java.lang.String, int);
+    method public void cancel(String?, int);
     method public void cancelAll();
     method public static androidx.core.app.NotificationManagerCompat from(android.content.Context);
     method public static java.util.Set<java.lang.String> getEnabledListenerPackages(android.content.Context);
     method public int getImportance();
     method public void notify(int, android.app.Notification);
-    method public void notify(java.lang.String, int, android.app.Notification);
-    field public static final java.lang.String ACTION_BIND_SIDE_CHANNEL = "android.support.BIND_NOTIFICATION_SIDE_CHANNEL";
-    field public static final java.lang.String EXTRA_USE_SIDE_CHANNEL = "android.support.useSideChannel";
+    method public void notify(String?, int, android.app.Notification);
+    field public static final String ACTION_BIND_SIDE_CHANNEL = "android.support.BIND_NOTIFICATION_SIDE_CHANNEL";
+    field public static final String EXTRA_USE_SIDE_CHANNEL = "android.support.useSideChannel";
     field public static final int IMPORTANCE_DEFAULT = 3; // 0x3
     field public static final int IMPORTANCE_HIGH = 4; // 0x4
     field public static final int IMPORTANCE_LOW = 2; // 0x2
@@ -599,10 +600,10 @@
 
   public class Person {
     method public static androidx.core.app.Person fromBundle(android.os.Bundle);
-    method public androidx.core.graphics.drawable.IconCompat getIcon();
-    method public java.lang.String getKey();
-    method public java.lang.CharSequence getName();
-    method public java.lang.String getUri();
+    method public androidx.core.graphics.drawable.IconCompat? getIcon();
+    method public String? getKey();
+    method public CharSequence? getName();
+    method public String? getUri();
     method public boolean isBot();
     method public boolean isImportant();
     method public androidx.core.app.Person.Builder toBuilder();
@@ -613,59 +614,59 @@
     ctor public Person.Builder();
     method public androidx.core.app.Person build();
     method public androidx.core.app.Person.Builder setBot(boolean);
-    method public androidx.core.app.Person.Builder setIcon(androidx.core.graphics.drawable.IconCompat);
+    method public androidx.core.app.Person.Builder setIcon(androidx.core.graphics.drawable.IconCompat?);
     method public androidx.core.app.Person.Builder setImportant(boolean);
-    method public androidx.core.app.Person.Builder setKey(java.lang.String);
-    method public androidx.core.app.Person.Builder setName(java.lang.CharSequence);
-    method public androidx.core.app.Person.Builder setUri(java.lang.String);
+    method public androidx.core.app.Person.Builder setKey(String?);
+    method public androidx.core.app.Person.Builder setName(CharSequence?);
+    method public androidx.core.app.Person.Builder setUri(String?);
   }
 
   public final class RemoteActionCompat {
-    ctor public RemoteActionCompat(androidx.core.graphics.drawable.IconCompat, java.lang.CharSequence, java.lang.CharSequence, android.app.PendingIntent);
+    ctor public RemoteActionCompat(androidx.core.graphics.drawable.IconCompat, CharSequence, CharSequence, android.app.PendingIntent);
     ctor public RemoteActionCompat(androidx.core.app.RemoteActionCompat);
     method public static androidx.core.app.RemoteActionCompat createFromBundle(android.os.Bundle);
-    method public static androidx.core.app.RemoteActionCompat createFromRemoteAction(android.app.RemoteAction);
+    method @RequiresApi(26) public static androidx.core.app.RemoteActionCompat createFromRemoteAction(android.app.RemoteAction);
     method public android.app.PendingIntent getActionIntent();
-    method public java.lang.CharSequence getContentDescription();
+    method public CharSequence getContentDescription();
     method public androidx.core.graphics.drawable.IconCompat getIcon();
-    method public java.lang.CharSequence getTitle();
+    method public CharSequence getTitle();
     method public boolean isEnabled();
     method public void setEnabled(boolean);
     method public void setShouldShowIcon(boolean);
     method public boolean shouldShowIcon();
     method public android.os.Bundle toBundle();
-    method public android.app.RemoteAction toRemoteAction();
+    method @RequiresApi(26) public android.app.RemoteAction toRemoteAction();
   }
 
   public final class RemoteInput {
-    method public static void addDataResultToIntent(androidx.core.app.RemoteInput, android.content.Intent, java.util.Map<java.lang.String, android.net.Uri>);
-    method public static void addResultsToIntent(androidx.core.app.RemoteInput[], android.content.Intent, android.os.Bundle);
+    method public static void addDataResultToIntent(androidx.core.app.RemoteInput!, android.content.Intent!, java.util.Map<java.lang.String,android.net.Uri>!);
+    method public static void addResultsToIntent(androidx.core.app.RemoteInput[]!, android.content.Intent!, android.os.Bundle!);
     method public boolean getAllowFreeFormInput();
-    method public java.util.Set<java.lang.String> getAllowedDataTypes();
-    method public java.lang.CharSequence[] getChoices();
-    method public static java.util.Map<java.lang.String, android.net.Uri> getDataResultsFromIntent(android.content.Intent, java.lang.String);
-    method public android.os.Bundle getExtras();
-    method public java.lang.CharSequence getLabel();
-    method public java.lang.String getResultKey();
-    method public static android.os.Bundle getResultsFromIntent(android.content.Intent);
+    method public java.util.Set<java.lang.String>! getAllowedDataTypes();
+    method public CharSequence[]! getChoices();
+    method public static java.util.Map<java.lang.String,android.net.Uri>! getDataResultsFromIntent(android.content.Intent!, String!);
+    method public android.os.Bundle! getExtras();
+    method public CharSequence! getLabel();
+    method public String! getResultKey();
+    method public static android.os.Bundle! getResultsFromIntent(android.content.Intent!);
     method public static int getResultsSource(android.content.Intent);
     method public boolean isDataOnly();
     method public static void setResultsSource(android.content.Intent, int);
-    field public static final java.lang.String EXTRA_RESULTS_DATA = "android.remoteinput.resultsData";
-    field public static final java.lang.String RESULTS_CLIP_LABEL = "android.remoteinput.results";
+    field public static final String EXTRA_RESULTS_DATA = "android.remoteinput.resultsData";
+    field public static final String RESULTS_CLIP_LABEL = "android.remoteinput.results";
     field public static final int SOURCE_CHOICE = 1; // 0x1
     field public static final int SOURCE_FREE_FORM_INPUT = 0; // 0x0
   }
 
   public static final class RemoteInput.Builder {
-    ctor public RemoteInput.Builder(java.lang.String);
+    ctor public RemoteInput.Builder(String);
     method public androidx.core.app.RemoteInput.Builder addExtras(android.os.Bundle);
     method public androidx.core.app.RemoteInput build();
     method public android.os.Bundle getExtras();
-    method public androidx.core.app.RemoteInput.Builder setAllowDataType(java.lang.String, boolean);
+    method public androidx.core.app.RemoteInput.Builder setAllowDataType(String, boolean);
     method public androidx.core.app.RemoteInput.Builder setAllowFreeFormInput(boolean);
-    method public androidx.core.app.RemoteInput.Builder setChoices(java.lang.CharSequence[]);
-    method public androidx.core.app.RemoteInput.Builder setLabel(java.lang.CharSequence);
+    method public androidx.core.app.RemoteInput.Builder setChoices(CharSequence[]?);
+    method public androidx.core.app.RemoteInput.Builder setLabel(CharSequence?);
   }
 
   public final class ServiceCompat {
@@ -676,55 +677,55 @@
   }
 
   public final class ShareCompat {
-    method public static void configureMenuItem(android.view.MenuItem, androidx.core.app.ShareCompat.IntentBuilder);
-    method public static void configureMenuItem(android.view.Menu, int, androidx.core.app.ShareCompat.IntentBuilder);
-    method public static android.content.ComponentName getCallingActivity(android.app.Activity);
-    method public static java.lang.String getCallingPackage(android.app.Activity);
-    field public static final java.lang.String EXTRA_CALLING_ACTIVITY = "androidx.core.app.EXTRA_CALLING_ACTIVITY";
-    field public static final java.lang.String EXTRA_CALLING_PACKAGE = "androidx.core.app.EXTRA_CALLING_PACKAGE";
+    method public static void configureMenuItem(android.view.MenuItem!, androidx.core.app.ShareCompat.IntentBuilder!);
+    method public static void configureMenuItem(android.view.Menu!, int, androidx.core.app.ShareCompat.IntentBuilder!);
+    method public static android.content.ComponentName! getCallingActivity(android.app.Activity!);
+    method public static String! getCallingPackage(android.app.Activity!);
+    field public static final String EXTRA_CALLING_ACTIVITY = "androidx.core.app.EXTRA_CALLING_ACTIVITY";
+    field public static final String EXTRA_CALLING_PACKAGE = "androidx.core.app.EXTRA_CALLING_PACKAGE";
   }
 
   public static class ShareCompat.IntentBuilder {
-    method public androidx.core.app.ShareCompat.IntentBuilder addEmailBcc(java.lang.String);
-    method public androidx.core.app.ShareCompat.IntentBuilder addEmailBcc(java.lang.String[]);
-    method public androidx.core.app.ShareCompat.IntentBuilder addEmailCc(java.lang.String);
-    method public androidx.core.app.ShareCompat.IntentBuilder addEmailCc(java.lang.String[]);
-    method public androidx.core.app.ShareCompat.IntentBuilder addEmailTo(java.lang.String);
-    method public androidx.core.app.ShareCompat.IntentBuilder addEmailTo(java.lang.String[]);
-    method public androidx.core.app.ShareCompat.IntentBuilder addStream(android.net.Uri);
-    method public android.content.Intent createChooserIntent();
-    method public static androidx.core.app.ShareCompat.IntentBuilder from(android.app.Activity);
-    method public android.content.Intent getIntent();
-    method public androidx.core.app.ShareCompat.IntentBuilder setChooserTitle(java.lang.CharSequence);
-    method public androidx.core.app.ShareCompat.IntentBuilder setChooserTitle(int);
-    method public androidx.core.app.ShareCompat.IntentBuilder setEmailBcc(java.lang.String[]);
-    method public androidx.core.app.ShareCompat.IntentBuilder setEmailCc(java.lang.String[]);
-    method public androidx.core.app.ShareCompat.IntentBuilder setEmailTo(java.lang.String[]);
-    method public androidx.core.app.ShareCompat.IntentBuilder setHtmlText(java.lang.String);
-    method public androidx.core.app.ShareCompat.IntentBuilder setStream(android.net.Uri);
-    method public androidx.core.app.ShareCompat.IntentBuilder setSubject(java.lang.String);
-    method public androidx.core.app.ShareCompat.IntentBuilder setText(java.lang.CharSequence);
-    method public androidx.core.app.ShareCompat.IntentBuilder setType(java.lang.String);
+    method public androidx.core.app.ShareCompat.IntentBuilder! addEmailBcc(String!);
+    method public androidx.core.app.ShareCompat.IntentBuilder! addEmailBcc(String[]!);
+    method public androidx.core.app.ShareCompat.IntentBuilder! addEmailCc(String!);
+    method public androidx.core.app.ShareCompat.IntentBuilder! addEmailCc(String[]!);
+    method public androidx.core.app.ShareCompat.IntentBuilder! addEmailTo(String!);
+    method public androidx.core.app.ShareCompat.IntentBuilder! addEmailTo(String[]!);
+    method public androidx.core.app.ShareCompat.IntentBuilder! addStream(android.net.Uri!);
+    method public android.content.Intent! createChooserIntent();
+    method public static androidx.core.app.ShareCompat.IntentBuilder! from(android.app.Activity!);
+    method public android.content.Intent! getIntent();
+    method public androidx.core.app.ShareCompat.IntentBuilder! setChooserTitle(CharSequence!);
+    method public androidx.core.app.ShareCompat.IntentBuilder! setChooserTitle(@StringRes int);
+    method public androidx.core.app.ShareCompat.IntentBuilder! setEmailBcc(String[]!);
+    method public androidx.core.app.ShareCompat.IntentBuilder! setEmailCc(String[]!);
+    method public androidx.core.app.ShareCompat.IntentBuilder! setEmailTo(String[]!);
+    method public androidx.core.app.ShareCompat.IntentBuilder! setHtmlText(String!);
+    method public androidx.core.app.ShareCompat.IntentBuilder! setStream(android.net.Uri!);
+    method public androidx.core.app.ShareCompat.IntentBuilder! setSubject(String!);
+    method public androidx.core.app.ShareCompat.IntentBuilder! setText(CharSequence!);
+    method public androidx.core.app.ShareCompat.IntentBuilder! setType(String!);
     method public void startChooser();
   }
 
   public static class ShareCompat.IntentReader {
-    method public static androidx.core.app.ShareCompat.IntentReader from(android.app.Activity);
-    method public android.content.ComponentName getCallingActivity();
-    method public android.graphics.drawable.Drawable getCallingActivityIcon();
-    method public android.graphics.drawable.Drawable getCallingApplicationIcon();
-    method public java.lang.CharSequence getCallingApplicationLabel();
-    method public java.lang.String getCallingPackage();
-    method public java.lang.String[] getEmailBcc();
-    method public java.lang.String[] getEmailCc();
-    method public java.lang.String[] getEmailTo();
-    method public java.lang.String getHtmlText();
-    method public android.net.Uri getStream();
-    method public android.net.Uri getStream(int);
+    method public static androidx.core.app.ShareCompat.IntentReader! from(android.app.Activity!);
+    method public android.content.ComponentName! getCallingActivity();
+    method public android.graphics.drawable.Drawable! getCallingActivityIcon();
+    method public android.graphics.drawable.Drawable! getCallingApplicationIcon();
+    method public CharSequence! getCallingApplicationLabel();
+    method public String! getCallingPackage();
+    method public String[]! getEmailBcc();
+    method public String[]! getEmailCc();
+    method public String[]! getEmailTo();
+    method public String! getHtmlText();
+    method public android.net.Uri! getStream();
+    method public android.net.Uri! getStream(int);
     method public int getStreamCount();
-    method public java.lang.String getSubject();
-    method public java.lang.CharSequence getText();
-    method public java.lang.String getType();
+    method public String! getSubject();
+    method public CharSequence! getText();
+    method public String! getType();
     method public boolean isMultipleShare();
     method public boolean isShareIntent();
     method public boolean isSingleShare();
@@ -732,40 +733,40 @@
 
   public abstract class SharedElementCallback {
     ctor public SharedElementCallback();
-    method public android.os.Parcelable onCaptureSharedElementSnapshot(android.view.View, android.graphics.Matrix, android.graphics.RectF);
-    method public android.view.View onCreateSnapshotView(android.content.Context, android.os.Parcelable);
-    method public void onMapSharedElements(java.util.List<java.lang.String>, java.util.Map<java.lang.String, android.view.View>);
-    method public void onRejectSharedElements(java.util.List<android.view.View>);
-    method public void onSharedElementEnd(java.util.List<java.lang.String>, java.util.List<android.view.View>, java.util.List<android.view.View>);
-    method public void onSharedElementStart(java.util.List<java.lang.String>, java.util.List<android.view.View>, java.util.List<android.view.View>);
-    method public void onSharedElementsArrived(java.util.List<java.lang.String>, java.util.List<android.view.View>, androidx.core.app.SharedElementCallback.OnSharedElementsReadyListener);
+    method public android.os.Parcelable! onCaptureSharedElementSnapshot(android.view.View!, android.graphics.Matrix!, android.graphics.RectF!);
+    method public android.view.View! onCreateSnapshotView(android.content.Context!, android.os.Parcelable!);
+    method public void onMapSharedElements(java.util.List<java.lang.String>!, java.util.Map<java.lang.String,android.view.View>!);
+    method public void onRejectSharedElements(java.util.List<android.view.View>!);
+    method public void onSharedElementEnd(java.util.List<java.lang.String>!, java.util.List<android.view.View>!, java.util.List<android.view.View>!);
+    method public void onSharedElementStart(java.util.List<java.lang.String>!, java.util.List<android.view.View>!, java.util.List<android.view.View>!);
+    method public void onSharedElementsArrived(java.util.List<java.lang.String>!, java.util.List<android.view.View>!, androidx.core.app.SharedElementCallback.OnSharedElementsReadyListener!);
   }
 
-  public static abstract interface SharedElementCallback.OnSharedElementsReadyListener {
-    method public abstract void onSharedElementsReady();
+  public static interface SharedElementCallback.OnSharedElementsReadyListener {
+    method public void onSharedElementsReady();
   }
 
-  public final class TaskStackBuilder implements java.lang.Iterable {
+  public final class TaskStackBuilder implements java.lang.Iterable<android.content.Intent> {
     method public androidx.core.app.TaskStackBuilder addNextIntent(android.content.Intent);
     method public androidx.core.app.TaskStackBuilder addNextIntentWithParentStack(android.content.Intent);
     method public androidx.core.app.TaskStackBuilder addParentStack(android.app.Activity);
-    method public androidx.core.app.TaskStackBuilder addParentStack(java.lang.Class<?>);
-    method public androidx.core.app.TaskStackBuilder addParentStack(android.content.ComponentName);
+    method public androidx.core.app.TaskStackBuilder addParentStack(Class<?>);
+    method public androidx.core.app.TaskStackBuilder! addParentStack(android.content.ComponentName!);
     method public static androidx.core.app.TaskStackBuilder create(android.content.Context);
-    method public android.content.Intent editIntentAt(int);
-    method public static deprecated androidx.core.app.TaskStackBuilder from(android.content.Context);
-    method public deprecated android.content.Intent getIntent(int);
+    method public android.content.Intent? editIntentAt(int);
+    method @Deprecated public static androidx.core.app.TaskStackBuilder! from(android.content.Context!);
+    method @Deprecated public android.content.Intent! getIntent(int);
     method public int getIntentCount();
     method public android.content.Intent[] getIntents();
-    method public android.app.PendingIntent getPendingIntent(int, int);
-    method public android.app.PendingIntent getPendingIntent(int, int, android.os.Bundle);
-    method public deprecated java.util.Iterator<android.content.Intent> iterator();
+    method public android.app.PendingIntent? getPendingIntent(int, int);
+    method public android.app.PendingIntent? getPendingIntent(int, int, android.os.Bundle?);
+    method @Deprecated public java.util.Iterator<android.content.Intent>! iterator();
     method public void startActivities();
-    method public void startActivities(android.os.Bundle);
+    method public void startActivities(android.os.Bundle?);
   }
 
-  public static abstract interface TaskStackBuilder.SupportParentable {
-    method public abstract android.content.Intent getSupportParentActivityIntent();
+  public static interface TaskStackBuilder.SupportParentable {
+    method public android.content.Intent? getSupportParentActivityIntent();
   }
 
 }
@@ -773,81 +774,81 @@
 package androidx.core.content {
 
   public final class ContentResolverCompat {
-    method public static android.database.Cursor query(android.content.ContentResolver, android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, androidx.core.os.CancellationSignal);
+    method public static android.database.Cursor! query(android.content.ContentResolver!, android.net.Uri!, String[]!, String!, String[]!, String!, androidx.core.os.CancellationSignal!);
   }
 
   public class ContextCompat {
     ctor protected ContextCompat();
-    method public static int checkSelfPermission(android.content.Context, java.lang.String);
-    method public static android.content.Context createDeviceProtectedStorageContext(android.content.Context);
-    method public static java.io.File getCodeCacheDir(android.content.Context);
-    method public static int getColor(android.content.Context, int);
-    method public static android.content.res.ColorStateList getColorStateList(android.content.Context, int);
-    method public static java.io.File getDataDir(android.content.Context);
-    method public static android.graphics.drawable.Drawable getDrawable(android.content.Context, int);
+    method public static int checkSelfPermission(android.content.Context, String);
+    method public static android.content.Context? createDeviceProtectedStorageContext(android.content.Context);
+    method public static java.io.File! getCodeCacheDir(android.content.Context);
+    method @ColorInt public static int getColor(android.content.Context, @ColorRes int);
+    method public static android.content.res.ColorStateList? getColorStateList(android.content.Context, @ColorRes int);
+    method public static java.io.File? getDataDir(android.content.Context);
+    method public static android.graphics.drawable.Drawable? getDrawable(android.content.Context, @DrawableRes int);
     method public static java.io.File[] getExternalCacheDirs(android.content.Context);
-    method public static java.io.File[] getExternalFilesDirs(android.content.Context, java.lang.String);
-    method public static java.util.concurrent.Executor getMainExecutor(android.content.Context);
-    method public static java.io.File getNoBackupFilesDir(android.content.Context);
+    method public static java.io.File[] getExternalFilesDirs(android.content.Context, String?);
+    method public static java.util.concurrent.Executor! getMainExecutor(android.content.Context!);
+    method public static java.io.File? getNoBackupFilesDir(android.content.Context);
     method public static java.io.File[] getObbDirs(android.content.Context);
-    method public static <T> T getSystemService(android.content.Context, java.lang.Class<T>);
-    method public static java.lang.String getSystemServiceName(android.content.Context, java.lang.Class<?>);
+    method public static <T> T? getSystemService(android.content.Context, Class<T>);
+    method public static String? getSystemServiceName(android.content.Context, Class<?>);
     method public static boolean isDeviceProtectedStorage(android.content.Context);
     method public static boolean startActivities(android.content.Context, android.content.Intent[]);
-    method public static boolean startActivities(android.content.Context, android.content.Intent[], android.os.Bundle);
-    method public static void startActivity(android.content.Context, android.content.Intent, android.os.Bundle);
+    method public static boolean startActivities(android.content.Context, android.content.Intent[], android.os.Bundle?);
+    method public static void startActivity(android.content.Context, android.content.Intent, android.os.Bundle?);
     method public static void startForegroundService(android.content.Context, android.content.Intent);
   }
 
   public class FileProvider extends android.content.ContentProvider {
     ctor public FileProvider();
-    method public int delete(android.net.Uri, java.lang.String, java.lang.String[]);
-    method public java.lang.String getType(android.net.Uri);
-    method public static android.net.Uri getUriForFile(android.content.Context, java.lang.String, java.io.File);
-    method public android.net.Uri insert(android.net.Uri, android.content.ContentValues);
+    method public int delete(android.net.Uri, String?, String[]?);
+    method public String! getType(android.net.Uri);
+    method public static android.net.Uri! getUriForFile(android.content.Context, String, java.io.File);
+    method public android.net.Uri! insert(android.net.Uri, android.content.ContentValues!);
     method public boolean onCreate();
-    method public android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String);
-    method public int update(android.net.Uri, android.content.ContentValues, java.lang.String, java.lang.String[]);
+    method public android.database.Cursor! query(android.net.Uri, String[]?, String?, String[]?, String?);
+    method public int update(android.net.Uri, android.content.ContentValues!, String?, String[]?);
   }
 
   public final class IntentCompat {
-    method public static android.content.Intent makeMainSelectorActivity(java.lang.String, java.lang.String);
-    field public static final java.lang.String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
-    field public static final java.lang.String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
-    field public static final java.lang.String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
+    method public static android.content.Intent makeMainSelectorActivity(String, String);
+    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";
   }
 
   public final class MimeTypeFilter {
-    method public static boolean matches(java.lang.String, java.lang.String);
-    method public static java.lang.String matches(java.lang.String, java.lang.String[]);
-    method public static java.lang.String matches(java.lang.String[], java.lang.String);
-    method public static java.lang.String[] matchesMany(java.lang.String[], java.lang.String);
+    method public static boolean matches(String?, String);
+    method public static String? matches(String?, String[]);
+    method public static String? matches(String[]?, String);
+    method public static String[] matchesMany(String[]?, String);
   }
 
   public final class PermissionChecker {
-    method public static int checkCallingOrSelfPermission(android.content.Context, java.lang.String);
-    method public static int checkCallingPermission(android.content.Context, java.lang.String, java.lang.String);
-    method public static int checkPermission(android.content.Context, java.lang.String, int, int, java.lang.String);
-    method public static int checkSelfPermission(android.content.Context, java.lang.String);
+    method public static int checkCallingOrSelfPermission(android.content.Context, String);
+    method public static int checkCallingPermission(android.content.Context, String, String?);
+    method public static int checkPermission(android.content.Context, String, int, int, String?);
+    method public static int checkSelfPermission(android.content.Context, String);
     field public static final int PERMISSION_DENIED = -1; // 0xffffffff
     field public static final int PERMISSION_DENIED_APP_OP = -2; // 0xfffffffe
     field public static final int PERMISSION_GRANTED = 0; // 0x0
   }
 
-  public final deprecated class SharedPreferencesCompat {
+  @Deprecated public final class SharedPreferencesCompat {
   }
 
-  public static final deprecated class SharedPreferencesCompat.EditorCompat {
-    method public deprecated void apply(android.content.SharedPreferences.Editor);
-    method public static deprecated androidx.core.content.SharedPreferencesCompat.EditorCompat getInstance();
+  @Deprecated public static final class SharedPreferencesCompat.EditorCompat {
+    method @Deprecated public void apply(android.content.SharedPreferences.Editor);
+    method @Deprecated public static androidx.core.content.SharedPreferencesCompat.EditorCompat! getInstance();
   }
 
 }
 
 package androidx.core.content.pm {
 
-  public final deprecated class ActivityInfoCompat {
-    field public static final deprecated int CONFIG_UI_MODE = 512; // 0x200
+  @Deprecated public final class ActivityInfoCompat {
+    field @Deprecated public static final int CONFIG_UI_MODE = 512; // 0x200
   }
 
   public final class PackageInfoCompat {
@@ -860,33 +861,33 @@
   }
 
   public class ShortcutInfoCompat {
-    method public android.content.ComponentName getActivity();
-    method public java.lang.CharSequence getDisabledMessage();
-    method public java.lang.String getId();
+    method public android.content.ComponentName? getActivity();
+    method public CharSequence? getDisabledMessage();
+    method public String getId();
     method public android.content.Intent getIntent();
     method public android.content.Intent[] getIntents();
-    method public java.lang.CharSequence getLongLabel();
-    method public java.lang.CharSequence getShortLabel();
-    method public android.content.pm.ShortcutInfo toShortcutInfo();
+    method public CharSequence? getLongLabel();
+    method public CharSequence getShortLabel();
+    method @RequiresApi(25) public android.content.pm.ShortcutInfo! toShortcutInfo();
   }
 
   public static class ShortcutInfoCompat.Builder {
-    ctor public ShortcutInfoCompat.Builder(android.content.Context, java.lang.String);
+    ctor public ShortcutInfoCompat.Builder(android.content.Context, String);
     method public androidx.core.content.pm.ShortcutInfoCompat build();
     method public androidx.core.content.pm.ShortcutInfoCompat.Builder setActivity(android.content.ComponentName);
-    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setAlwaysBadged();
-    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setDisabledMessage(java.lang.CharSequence);
-    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setIcon(androidx.core.graphics.drawable.IconCompat);
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder! setAlwaysBadged();
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setDisabledMessage(CharSequence);
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setIcon(androidx.core.graphics.drawable.IconCompat!);
     method public androidx.core.content.pm.ShortcutInfoCompat.Builder setIntent(android.content.Intent);
     method public androidx.core.content.pm.ShortcutInfoCompat.Builder setIntents(android.content.Intent[]);
-    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setLongLabel(java.lang.CharSequence);
-    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setShortLabel(java.lang.CharSequence);
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setLongLabel(CharSequence);
+    method public androidx.core.content.pm.ShortcutInfoCompat.Builder setShortLabel(CharSequence);
   }
 
   public class ShortcutManagerCompat {
     method public static android.content.Intent createShortcutResultIntent(android.content.Context, androidx.core.content.pm.ShortcutInfoCompat);
     method public static boolean isRequestPinShortcutSupported(android.content.Context);
-    method public static boolean requestPinShortcut(android.content.Context, androidx.core.content.pm.ShortcutInfoCompat, android.content.IntentSender);
+    method public static boolean requestPinShortcut(android.content.Context, androidx.core.content.pm.ShortcutInfoCompat, android.content.IntentSender?);
   }
 
 }
@@ -898,16 +899,16 @@
   }
 
   public final class ResourcesCompat {
-    method public static int getColor(android.content.res.Resources, int, android.content.res.Resources.Theme) throws android.content.res.Resources.NotFoundException;
-    method public static android.content.res.ColorStateList getColorStateList(android.content.res.Resources, int, android.content.res.Resources.Theme) throws android.content.res.Resources.NotFoundException;
-    method public static android.graphics.drawable.Drawable getDrawable(android.content.res.Resources, int, android.content.res.Resources.Theme) throws android.content.res.Resources.NotFoundException;
-    method public static android.graphics.drawable.Drawable getDrawableForDensity(android.content.res.Resources, int, int, android.content.res.Resources.Theme) throws android.content.res.Resources.NotFoundException;
-    method public static float getFloat(android.content.res.Resources, int);
-    method public static android.graphics.Typeface getFont(android.content.Context, int) throws android.content.res.Resources.NotFoundException;
-    method public static void getFont(android.content.Context, int, androidx.core.content.res.ResourcesCompat.FontCallback, android.os.Handler) throws android.content.res.Resources.NotFoundException;
+    method @ColorInt public static int getColor(android.content.res.Resources, @ColorRes int, android.content.res.Resources.Theme?) throws android.content.res.Resources.NotFoundException;
+    method public static android.content.res.ColorStateList? getColorStateList(android.content.res.Resources, @ColorRes int, android.content.res.Resources.Theme?) throws android.content.res.Resources.NotFoundException;
+    method public static android.graphics.drawable.Drawable? getDrawable(android.content.res.Resources, @DrawableRes int, android.content.res.Resources.Theme?) throws android.content.res.Resources.NotFoundException;
+    method public static android.graphics.drawable.Drawable? getDrawableForDensity(android.content.res.Resources, @DrawableRes int, int, android.content.res.Resources.Theme?) throws android.content.res.Resources.NotFoundException;
+    method public static float getFloat(android.content.res.Resources, @DimenRes int);
+    method public static android.graphics.Typeface? getFont(android.content.Context, @FontRes int) throws android.content.res.Resources.NotFoundException;
+    method public static void getFont(android.content.Context, @FontRes int, androidx.core.content.res.ResourcesCompat.FontCallback, android.os.Handler?) throws android.content.res.Resources.NotFoundException;
   }
 
-  public static abstract class ResourcesCompat.FontCallback {
+  public abstract static class ResourcesCompat.FontCallback {
     ctor public ResourcesCompat.FontCallback();
     method public abstract void onFontRetrievalFailed(int);
     method public abstract void onFontRetrieved(android.graphics.Typeface);
@@ -918,12 +919,12 @@
 package androidx.core.database {
 
   public final class CursorWindowCompat {
-    method public static android.database.CursorWindow create(java.lang.String, long);
+    method public static android.database.CursorWindow create(String?, long);
   }
 
-  public final deprecated class DatabaseUtilsCompat {
-    method public static deprecated java.lang.String[] appendSelectionArgs(java.lang.String[], java.lang.String[]);
-    method public static deprecated java.lang.String concatenateWhere(java.lang.String, java.lang.String);
+  @Deprecated public final class DatabaseUtilsCompat {
+    method @Deprecated public static String[]! appendSelectionArgs(String[]!, String[]!);
+    method @Deprecated public static String! concatenateWhere(String!, String!);
   }
 
 }
@@ -945,31 +946,31 @@
   }
 
   public final class ColorUtils {
-    method public static int HSLToColor(float[]);
-    method public static int LABToColor(double, double, double);
-    method public static void LABToXYZ(double, double, double, double[]);
-    method public static void RGBToHSL(int, int, int, float[]);
-    method public static void RGBToLAB(int, int, int, double[]);
-    method public static void RGBToXYZ(int, int, int, double[]);
-    method public static int XYZToColor(double, double, double);
-    method public static void XYZToLAB(double, double, double, double[]);
-    method public static int blendARGB(int, int, float);
-    method public static void blendHSL(float[], float[], float, float[]);
-    method public static void blendLAB(double[], double[], double, double[]);
-    method public static double calculateContrast(int, int);
-    method public static double calculateLuminance(int);
-    method public static int calculateMinimumAlpha(int, int, float);
-    method public static void colorToHSL(int, float[]);
-    method public static void colorToLAB(int, double[]);
-    method public static void colorToXYZ(int, double[]);
-    method public static int compositeColors(int, int);
-    method public static android.graphics.Color compositeColors(android.graphics.Color, android.graphics.Color);
+    method @ColorInt public static int HSLToColor(float[]);
+    method @ColorInt public static int LABToColor(@FloatRange(from=0.0f, to=100) double, @FloatRange(from=0xffffff80, to=127) double, @FloatRange(from=0xffffff80, to=127) double);
+    method public static void LABToXYZ(@FloatRange(from=0.0f, to=100) double, @FloatRange(from=0xffffff80, to=127) double, @FloatRange(from=0xffffff80, to=127) double, double[]);
+    method public static void RGBToHSL(@IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, float[]);
+    method public static void RGBToLAB(@IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, double[]);
+    method public static void RGBToXYZ(@IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, double[]);
+    method @ColorInt public static int XYZToColor(@FloatRange(from=0.0f, to=androidx.core.graphics.ColorUtils.XYZ_WHITE_REFERENCE_X) double, @FloatRange(from=0.0f, to=androidx.core.graphics.ColorUtils.XYZ_WHITE_REFERENCE_Y) double, @FloatRange(from=0.0f, to=androidx.core.graphics.ColorUtils.XYZ_WHITE_REFERENCE_Z) double);
+    method public static void XYZToLAB(@FloatRange(from=0.0f, to=androidx.core.graphics.ColorUtils.XYZ_WHITE_REFERENCE_X) double, @FloatRange(from=0.0f, to=androidx.core.graphics.ColorUtils.XYZ_WHITE_REFERENCE_Y) double, @FloatRange(from=0.0f, to=androidx.core.graphics.ColorUtils.XYZ_WHITE_REFERENCE_Z) double, double[]);
+    method @ColorInt public static int blendARGB(@ColorInt int, @ColorInt int, @FloatRange(from=0.0, to=1.0) float);
+    method public static void blendHSL(float[], float[], @FloatRange(from=0.0, to=1.0) float, float[]);
+    method public static void blendLAB(double[], double[], @FloatRange(from=0.0, to=1.0) double, double[]);
+    method public static double calculateContrast(@ColorInt int, @ColorInt int);
+    method @FloatRange(from=0.0, to=1.0) public static double calculateLuminance(@ColorInt int);
+    method public static int calculateMinimumAlpha(@ColorInt int, @ColorInt int, float);
+    method public static void colorToHSL(@ColorInt int, float[]);
+    method public static void colorToLAB(@ColorInt int, double[]);
+    method public static void colorToXYZ(@ColorInt int, double[]);
+    method public static int compositeColors(@ColorInt int, @ColorInt int);
+    method @RequiresApi(26) public static android.graphics.Color compositeColors(android.graphics.Color, android.graphics.Color);
     method public static double distanceEuclidean(double[], double[]);
-    method public static int setAlphaComponent(int, int);
+    method @ColorInt public static int setAlphaComponent(@ColorInt int, @IntRange(from=0, to=255) int);
   }
 
   public final class PaintCompat {
-    method public static boolean hasGlyph(android.graphics.Paint, java.lang.String);
+    method public static boolean hasGlyph(android.graphics.Paint, String);
   }
 
   public final class PathSegment {
@@ -981,8 +982,8 @@
   }
 
   public final class PathUtils {
-    method public static java.util.Collection<androidx.core.graphics.PathSegment> flatten(android.graphics.Path);
-    method public static java.util.Collection<androidx.core.graphics.PathSegment> flatten(android.graphics.Path, float);
+    method @RequiresApi(26) public static java.util.Collection<androidx.core.graphics.PathSegment> flatten(android.graphics.Path);
+    method @RequiresApi(26) public static java.util.Collection<androidx.core.graphics.PathSegment> flatten(android.graphics.Path, @FloatRange(from=0) float);
   }
 
 }
@@ -994,47 +995,47 @@
     method public static boolean canApplyTheme(android.graphics.drawable.Drawable);
     method public static void clearColorFilter(android.graphics.drawable.Drawable);
     method public static int getAlpha(android.graphics.drawable.Drawable);
-    method public static android.graphics.ColorFilter getColorFilter(android.graphics.drawable.Drawable);
+    method public static android.graphics.ColorFilter! getColorFilter(android.graphics.drawable.Drawable);
     method public static int getLayoutDirection(android.graphics.drawable.Drawable);
-    method public static void inflate(android.graphics.drawable.Drawable, android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet, android.content.res.Resources.Theme) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method public static void inflate(android.graphics.drawable.Drawable, android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet, android.content.res.Resources.Theme?) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
     method public static boolean isAutoMirrored(android.graphics.drawable.Drawable);
-    method public static deprecated void jumpToCurrentState(android.graphics.drawable.Drawable);
+    method @Deprecated public static void jumpToCurrentState(android.graphics.drawable.Drawable);
     method public static void setAutoMirrored(android.graphics.drawable.Drawable, boolean);
     method public static void setHotspot(android.graphics.drawable.Drawable, float, float);
     method public static void setHotspotBounds(android.graphics.drawable.Drawable, int, int, int, int);
     method public static boolean setLayoutDirection(android.graphics.drawable.Drawable, int);
-    method public static void setTint(android.graphics.drawable.Drawable, int);
-    method public static void setTintList(android.graphics.drawable.Drawable, android.content.res.ColorStateList);
+    method public static void setTint(android.graphics.drawable.Drawable, @ColorInt int);
+    method public static void setTintList(android.graphics.drawable.Drawable, android.content.res.ColorStateList?);
     method public static void setTintMode(android.graphics.drawable.Drawable, android.graphics.PorterDuff.Mode);
-    method public static <T extends android.graphics.drawable.Drawable> T unwrap(android.graphics.drawable.Drawable);
-    method public static android.graphics.drawable.Drawable wrap(android.graphics.drawable.Drawable);
+    method public static <T extends android.graphics.drawable.Drawable> T! unwrap(android.graphics.drawable.Drawable);
+    method public static android.graphics.drawable.Drawable! wrap(android.graphics.drawable.Drawable);
   }
 
   public class IconCompat extends androidx.versionedparcelable.CustomVersionedParcelable {
-    method public static androidx.core.graphics.drawable.IconCompat createFromBundle(android.os.Bundle);
-    method public static androidx.core.graphics.drawable.IconCompat createFromIcon(android.content.Context, android.graphics.drawable.Icon);
-    method public static androidx.core.graphics.drawable.IconCompat createWithAdaptiveBitmap(android.graphics.Bitmap);
-    method public static androidx.core.graphics.drawable.IconCompat createWithBitmap(android.graphics.Bitmap);
-    method public static androidx.core.graphics.drawable.IconCompat createWithContentUri(java.lang.String);
-    method public static androidx.core.graphics.drawable.IconCompat createWithContentUri(android.net.Uri);
-    method public static androidx.core.graphics.drawable.IconCompat createWithData(byte[], int, int);
-    method public static androidx.core.graphics.drawable.IconCompat createWithResource(android.content.Context, int);
-    method public int getResId();
-    method public java.lang.String getResPackage();
+    method public static androidx.core.graphics.drawable.IconCompat? createFromBundle(android.os.Bundle);
+    method @RequiresApi(23) public static androidx.core.graphics.drawable.IconCompat? createFromIcon(android.content.Context, android.graphics.drawable.Icon);
+    method public static androidx.core.graphics.drawable.IconCompat! createWithAdaptiveBitmap(android.graphics.Bitmap!);
+    method public static androidx.core.graphics.drawable.IconCompat! createWithBitmap(android.graphics.Bitmap!);
+    method public static androidx.core.graphics.drawable.IconCompat! createWithContentUri(String!);
+    method public static androidx.core.graphics.drawable.IconCompat! createWithContentUri(android.net.Uri!);
+    method public static androidx.core.graphics.drawable.IconCompat! createWithData(byte[]!, int, int);
+    method public static androidx.core.graphics.drawable.IconCompat! createWithResource(android.content.Context!, @DrawableRes int);
+    method @IdRes public int getResId();
+    method public String getResPackage();
     method public int getType();
     method public android.net.Uri getUri();
-    method public android.graphics.drawable.Drawable loadDrawable(android.content.Context);
-    method public androidx.core.graphics.drawable.IconCompat setTint(int);
-    method public androidx.core.graphics.drawable.IconCompat setTintList(android.content.res.ColorStateList);
-    method public androidx.core.graphics.drawable.IconCompat setTintMode(android.graphics.PorterDuff.Mode);
-    method public android.os.Bundle toBundle();
-    method public android.graphics.drawable.Icon toIcon();
+    method public android.graphics.drawable.Drawable! loadDrawable(android.content.Context!);
+    method public androidx.core.graphics.drawable.IconCompat! setTint(@ColorInt int);
+    method public androidx.core.graphics.drawable.IconCompat! setTintList(android.content.res.ColorStateList!);
+    method public androidx.core.graphics.drawable.IconCompat! setTintMode(android.graphics.PorterDuff.Mode!);
+    method public android.os.Bundle! toBundle();
+    method @RequiresApi(23) public android.graphics.drawable.Icon! toIcon();
     field public static final int TYPE_UNKNOWN = -1; // 0xffffffff
   }
 
   public abstract class RoundedBitmapDrawable extends android.graphics.drawable.Drawable {
     method public void draw(android.graphics.Canvas);
-    method public final android.graphics.Bitmap getBitmap();
+    method public final android.graphics.Bitmap? getBitmap();
     method public float getCornerRadius();
     method public int getGravity();
     method public int getOpacity();
@@ -1045,7 +1046,7 @@
     method public void setAlpha(int);
     method public void setAntiAlias(boolean);
     method public void setCircular(boolean);
-    method public void setColorFilter(android.graphics.ColorFilter);
+    method public void setColorFilter(android.graphics.ColorFilter!);
     method public void setCornerRadius(float);
     method public void setDither(boolean);
     method public void setGravity(int);
@@ -1056,8 +1057,8 @@
   }
 
   public final class RoundedBitmapDrawableFactory {
-    method public static androidx.core.graphics.drawable.RoundedBitmapDrawable create(android.content.res.Resources, android.graphics.Bitmap);
-    method public static androidx.core.graphics.drawable.RoundedBitmapDrawable create(android.content.res.Resources, java.lang.String);
+    method public static androidx.core.graphics.drawable.RoundedBitmapDrawable create(android.content.res.Resources, android.graphics.Bitmap?);
+    method public static androidx.core.graphics.drawable.RoundedBitmapDrawable create(android.content.res.Resources, String);
     method public static androidx.core.graphics.drawable.RoundedBitmapDrawable create(android.content.res.Resources, java.io.InputStream);
   }
 
@@ -1066,11 +1067,11 @@
 package androidx.core.hardware.display {
 
   public final class DisplayManagerCompat {
-    method public android.view.Display getDisplay(int);
+    method public android.view.Display? getDisplay(int);
     method public android.view.Display[] getDisplays();
-    method public android.view.Display[] getDisplays(java.lang.String);
+    method public android.view.Display[] getDisplays(String?);
     method public static androidx.core.hardware.display.DisplayManagerCompat getInstance(android.content.Context);
-    field public static final java.lang.String DISPLAY_CATEGORY_PRESENTATION = "android.hardware.display.category.PRESENTATION";
+    field public static final String DISPLAY_CATEGORY_PRESENTATION = "android.hardware.display.category.PRESENTATION";
   }
 
 }
@@ -1078,32 +1079,32 @@
 package androidx.core.hardware.fingerprint {
 
   public final class FingerprintManagerCompat {
-    method public void authenticate(androidx.core.hardware.fingerprint.FingerprintManagerCompat.CryptoObject, int, androidx.core.os.CancellationSignal, androidx.core.hardware.fingerprint.FingerprintManagerCompat.AuthenticationCallback, android.os.Handler);
+    method @RequiresPermission(android.Manifest.permission.USE_FINGERPRINT) public void authenticate(androidx.core.hardware.fingerprint.FingerprintManagerCompat.CryptoObject?, int, androidx.core.os.CancellationSignal?, androidx.core.hardware.fingerprint.FingerprintManagerCompat.AuthenticationCallback, android.os.Handler?);
     method public static androidx.core.hardware.fingerprint.FingerprintManagerCompat from(android.content.Context);
-    method public boolean hasEnrolledFingerprints();
-    method public boolean isHardwareDetected();
+    method @RequiresPermission(android.Manifest.permission.USE_FINGERPRINT) public boolean hasEnrolledFingerprints();
+    method @RequiresPermission(android.Manifest.permission.USE_FINGERPRINT) public boolean isHardwareDetected();
   }
 
-  public static abstract class FingerprintManagerCompat.AuthenticationCallback {
+  public abstract static class FingerprintManagerCompat.AuthenticationCallback {
     ctor public FingerprintManagerCompat.AuthenticationCallback();
-    method public void onAuthenticationError(int, java.lang.CharSequence);
+    method public void onAuthenticationError(int, CharSequence!);
     method public void onAuthenticationFailed();
-    method public void onAuthenticationHelp(int, java.lang.CharSequence);
-    method public void onAuthenticationSucceeded(androidx.core.hardware.fingerprint.FingerprintManagerCompat.AuthenticationResult);
+    method public void onAuthenticationHelp(int, CharSequence!);
+    method public void onAuthenticationSucceeded(androidx.core.hardware.fingerprint.FingerprintManagerCompat.AuthenticationResult!);
   }
 
   public static final class FingerprintManagerCompat.AuthenticationResult {
-    ctor public FingerprintManagerCompat.AuthenticationResult(androidx.core.hardware.fingerprint.FingerprintManagerCompat.CryptoObject);
-    method public androidx.core.hardware.fingerprint.FingerprintManagerCompat.CryptoObject getCryptoObject();
+    ctor public FingerprintManagerCompat.AuthenticationResult(androidx.core.hardware.fingerprint.FingerprintManagerCompat.CryptoObject!);
+    method public androidx.core.hardware.fingerprint.FingerprintManagerCompat.CryptoObject! getCryptoObject();
   }
 
   public static class FingerprintManagerCompat.CryptoObject {
     ctor public FingerprintManagerCompat.CryptoObject(java.security.Signature);
     ctor public FingerprintManagerCompat.CryptoObject(javax.crypto.Cipher);
     ctor public FingerprintManagerCompat.CryptoObject(javax.crypto.Mac);
-    method public javax.crypto.Cipher getCipher();
-    method public javax.crypto.Mac getMac();
-    method public java.security.Signature getSignature();
+    method public javax.crypto.Cipher? getCipher();
+    method public javax.crypto.Mac? getMac();
+    method public java.security.Signature? getSignature();
   }
 
 }
@@ -1121,24 +1122,24 @@
 package androidx.core.net {
 
   public final class ConnectivityManagerCompat {
-    method public static android.net.NetworkInfo getNetworkInfoFromBroadcast(android.net.ConnectivityManager, android.content.Intent);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public static android.net.NetworkInfo? getNetworkInfoFromBroadcast(android.net.ConnectivityManager, android.content.Intent);
     method public static int getRestrictBackgroundStatus(android.net.ConnectivityManager);
-    method public static boolean isActiveNetworkMetered(android.net.ConnectivityManager);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public static boolean isActiveNetworkMetered(android.net.ConnectivityManager);
     field public static final int RESTRICT_BACKGROUND_STATUS_DISABLED = 1; // 0x1
     field public static final int RESTRICT_BACKGROUND_STATUS_ENABLED = 3; // 0x3
     field public static final int RESTRICT_BACKGROUND_STATUS_WHITELISTED = 2; // 0x2
   }
 
   public final class TrafficStatsCompat {
-    method public static deprecated void clearThreadStatsTag();
-    method public static deprecated int getThreadStatsTag();
-    method public static deprecated void incrementOperationCount(int);
-    method public static deprecated void incrementOperationCount(int, int);
-    method public static deprecated void setThreadStatsTag(int);
+    method @Deprecated public static void clearThreadStatsTag();
+    method @Deprecated public static int getThreadStatsTag();
+    method @Deprecated public static void incrementOperationCount(int);
+    method @Deprecated public static void incrementOperationCount(int, int);
+    method @Deprecated public static void setThreadStatsTag(int);
     method public static void tagDatagramSocket(java.net.DatagramSocket) throws java.net.SocketException;
-    method public static deprecated void tagSocket(java.net.Socket) throws java.net.SocketException;
+    method @Deprecated public static void tagSocket(java.net.Socket!) throws java.net.SocketException;
     method public static void untagDatagramSocket(java.net.DatagramSocket) throws java.net.SocketException;
-    method public static deprecated void untagSocket(java.net.Socket) throws java.net.SocketException;
+    method @Deprecated public static void untagSocket(java.net.Socket!) throws java.net.SocketException;
   }
 
 }
@@ -1146,25 +1147,25 @@
 package androidx.core.os {
 
   public class BuildCompat {
-    method public static deprecated boolean isAtLeastN();
-    method public static deprecated boolean isAtLeastNMR1();
-    method public static deprecated boolean isAtLeastO();
-    method public static deprecated boolean isAtLeastOMR1();
-    method public static deprecated boolean isAtLeastP();
+    method @Deprecated public static boolean isAtLeastN();
+    method @Deprecated public static boolean isAtLeastNMR1();
+    method @Deprecated public static boolean isAtLeastO();
+    method @Deprecated public static boolean isAtLeastOMR1();
+    method @Deprecated public static boolean isAtLeastP();
     method public static boolean isAtLeastQ();
   }
 
   public final class CancellationSignal {
     ctor public CancellationSignal();
     method public void cancel();
-    method public java.lang.Object getCancellationSignalObject();
+    method public Object? getCancellationSignalObject();
     method public boolean isCanceled();
-    method public void setOnCancelListener(androidx.core.os.CancellationSignal.OnCancelListener);
+    method public void setOnCancelListener(androidx.core.os.CancellationSignal.OnCancelListener?);
     method public void throwIfCanceled();
   }
 
-  public static abstract interface CancellationSignal.OnCancelListener {
-    method public abstract void onCancel();
+  public static interface CancellationSignal.OnCancelListener {
+    method public void onCancel();
   }
 
   public final class ConfigurationCompat {
@@ -1172,31 +1173,31 @@
   }
 
   public final class EnvironmentCompat {
-    method public static java.lang.String getStorageState(java.io.File);
-    field public static final java.lang.String MEDIA_UNKNOWN = "unknown";
+    method public static String! getStorageState(java.io.File);
+    field public static final String MEDIA_UNKNOWN = "unknown";
   }
 
   public final class HandlerCompat {
     method public static android.os.Handler createAsync(android.os.Looper);
     method public static android.os.Handler createAsync(android.os.Looper, android.os.Handler.Callback);
-    method public static boolean postDelayed(android.os.Handler, java.lang.Runnable, java.lang.Object, long);
+    method public static boolean postDelayed(android.os.Handler, Runnable, Object?, long);
   }
 
   public final class LocaleListCompat {
     method public static androidx.core.os.LocaleListCompat create(java.util.Locale...);
-    method public static androidx.core.os.LocaleListCompat forLanguageTags(java.lang.String);
-    method public java.util.Locale get(int);
-    method public static androidx.core.os.LocaleListCompat getAdjustedDefault();
-    method public static androidx.core.os.LocaleListCompat getDefault();
+    method public static androidx.core.os.LocaleListCompat forLanguageTags(String?);
+    method public java.util.Locale! get(int);
+    method @Size(min=1) public static androidx.core.os.LocaleListCompat getAdjustedDefault();
+    method @Size(min=1) public static androidx.core.os.LocaleListCompat getDefault();
     method public static androidx.core.os.LocaleListCompat getEmptyLocaleList();
-    method public java.util.Locale getFirstMatch(java.lang.String[]);
-    method public int indexOf(java.util.Locale);
+    method public java.util.Locale? getFirstMatch(String[]);
+    method @IntRange(from=0xffffffff) public int indexOf(java.util.Locale!);
     method public boolean isEmpty();
-    method public int size();
-    method public java.lang.String toLanguageTags();
-    method public java.lang.Object unwrap();
-    method public static deprecated androidx.core.os.LocaleListCompat wrap(java.lang.Object);
-    method public static androidx.core.os.LocaleListCompat wrap(android.os.LocaleList);
+    method @IntRange(from=0) public int size();
+    method public String toLanguageTags();
+    method public Object? unwrap();
+    method @Deprecated @RequiresApi(24) public static androidx.core.os.LocaleListCompat! wrap(Object!);
+    method @RequiresApi(24) public static androidx.core.os.LocaleListCompat wrap(android.os.LocaleList);
   }
 
   public final class MessageCompat {
@@ -1206,7 +1207,7 @@
 
   public class OperationCanceledException extends java.lang.RuntimeException {
     ctor public OperationCanceledException();
-    ctor public OperationCanceledException(java.lang.String);
+    ctor public OperationCanceledException(String?);
   }
 
   public final class ParcelCompat {
@@ -1214,17 +1215,17 @@
     method public static void writeBoolean(android.os.Parcel, boolean);
   }
 
-  public final deprecated class ParcelableCompat {
-    method public static deprecated <T> android.os.Parcelable.Creator<T> newCreator(androidx.core.os.ParcelableCompatCreatorCallbacks<T>);
+  @Deprecated public final class ParcelableCompat {
+    method @Deprecated public static <T> android.os.Parcelable.Creator<T>! newCreator(androidx.core.os.ParcelableCompatCreatorCallbacks<T>!);
   }
 
-  public abstract deprecated interface ParcelableCompatCreatorCallbacks<T> {
-    method public abstract T createFromParcel(android.os.Parcel, java.lang.ClassLoader);
-    method public abstract T[] newArray(int);
+  @Deprecated public interface ParcelableCompatCreatorCallbacks<T> {
+    method @Deprecated public T! createFromParcel(android.os.Parcel!, ClassLoader!);
+    method @Deprecated public T[]! newArray(int);
   }
 
   public final class TraceCompat {
-    method public static void beginSection(java.lang.String);
+    method public static void beginSection(String);
     method public static void endSection();
   }
 
@@ -1237,37 +1238,37 @@
 package androidx.core.provider {
 
   public final class FontRequest {
-    ctor public FontRequest(java.lang.String, java.lang.String, java.lang.String, java.util.List<java.util.List<byte[]>>);
-    ctor public FontRequest(java.lang.String, java.lang.String, java.lang.String, int);
-    method public java.util.List<java.util.List<byte[]>> getCertificates();
-    method public int getCertificatesArrayResId();
-    method public java.lang.String getProviderAuthority();
-    method public java.lang.String getProviderPackage();
-    method public java.lang.String getQuery();
+    ctor public FontRequest(String, String, String, java.util.List<java.util.List<byte[]>>);
+    ctor public FontRequest(String, String, String, @ArrayRes int);
+    method public java.util.List<java.util.List<byte[]>>? getCertificates();
+    method @ArrayRes public int getCertificatesArrayResId();
+    method public String getProviderAuthority();
+    method public String getProviderPackage();
+    method public String getQuery();
   }
 
   public class FontsContractCompat {
-    method public static android.graphics.Typeface buildTypeface(android.content.Context, android.os.CancellationSignal, androidx.core.provider.FontsContractCompat.FontInfo[]);
-    method public static androidx.core.provider.FontsContractCompat.FontFamilyResult fetchFonts(android.content.Context, android.os.CancellationSignal, androidx.core.provider.FontRequest) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public static android.graphics.Typeface? buildTypeface(android.content.Context, android.os.CancellationSignal?, androidx.core.provider.FontsContractCompat.FontInfo[]);
+    method public static androidx.core.provider.FontsContractCompat.FontFamilyResult fetchFonts(android.content.Context, android.os.CancellationSignal?, androidx.core.provider.FontRequest) throws android.content.pm.PackageManager.NameNotFoundException;
     method public static void requestFont(android.content.Context, androidx.core.provider.FontRequest, androidx.core.provider.FontsContractCompat.FontRequestCallback, android.os.Handler);
   }
 
   public static final class FontsContractCompat.Columns implements android.provider.BaseColumns {
     ctor public FontsContractCompat.Columns();
-    field public static final java.lang.String FILE_ID = "file_id";
-    field public static final java.lang.String ITALIC = "font_italic";
-    field public static final java.lang.String RESULT_CODE = "result_code";
+    field public static final String FILE_ID = "file_id";
+    field public static final String ITALIC = "font_italic";
+    field public static final String RESULT_CODE = "result_code";
     field public static final int RESULT_CODE_FONT_NOT_FOUND = 1; // 0x1
     field public static final int RESULT_CODE_FONT_UNAVAILABLE = 2; // 0x2
     field public static final int RESULT_CODE_MALFORMED_QUERY = 3; // 0x3
     field public static final int RESULT_CODE_OK = 0; // 0x0
-    field public static final java.lang.String TTC_INDEX = "font_ttc_index";
-    field public static final java.lang.String VARIATION_SETTINGS = "font_variation_settings";
-    field public static final java.lang.String WEIGHT = "font_weight";
+    field public static final String TTC_INDEX = "font_ttc_index";
+    field public static final String VARIATION_SETTINGS = "font_variation_settings";
+    field public static final String WEIGHT = "font_weight";
   }
 
   public static class FontsContractCompat.FontFamilyResult {
-    method public androidx.core.provider.FontsContractCompat.FontInfo[] getFonts();
+    method public androidx.core.provider.FontsContractCompat.FontInfo[]! getFonts();
     method public int getStatusCode();
     field public static final int STATUS_OK = 0; // 0x0
     field public static final int STATUS_UNEXPECTED_DATA_PROVIDED = 2; // 0x2
@@ -1276,16 +1277,16 @@
 
   public static class FontsContractCompat.FontInfo {
     method public int getResultCode();
-    method public int getTtcIndex();
+    method @IntRange(from=0) public int getTtcIndex();
     method public android.net.Uri getUri();
-    method public int getWeight();
+    method @IntRange(from=1, to=1000) public int getWeight();
     method public boolean isItalic();
   }
 
   public static class FontsContractCompat.FontRequestCallback {
     ctor public FontsContractCompat.FontRequestCallback();
     method public void onTypefaceRequestFailed(int);
-    method public void onTypefaceRetrieved(android.graphics.Typeface);
+    method public void onTypefaceRetrieved(android.graphics.Typeface!);
     field public static final int FAIL_REASON_FONT_LOAD_ERROR = -3; // 0xfffffffd
     field public static final int FAIL_REASON_FONT_NOT_FOUND = 1; // 0x1
     field public static final int FAIL_REASON_FONT_UNAVAILABLE = 2; // 0x2
@@ -1300,7 +1301,7 @@
 package androidx.core.telephony.mbms {
 
   public final class MbmsHelper {
-    method public static java.lang.CharSequence getBestNameForService(android.content.Context, android.telephony.mbms.ServiceInfo);
+    method public static CharSequence? getBestNameForService(android.content.Context, android.telephony.mbms.ServiceInfo);
   }
 
 }
@@ -1308,36 +1309,36 @@
 package androidx.core.text {
 
   public final class BidiFormatter {
-    method public static androidx.core.text.BidiFormatter getInstance();
-    method public static androidx.core.text.BidiFormatter getInstance(boolean);
-    method public static androidx.core.text.BidiFormatter getInstance(java.util.Locale);
+    method public static androidx.core.text.BidiFormatter! getInstance();
+    method public static androidx.core.text.BidiFormatter! getInstance(boolean);
+    method public static androidx.core.text.BidiFormatter! getInstance(java.util.Locale!);
     method public boolean getStereoReset();
-    method public boolean isRtl(java.lang.String);
-    method public boolean isRtl(java.lang.CharSequence);
+    method public boolean isRtl(String!);
+    method public boolean isRtl(CharSequence!);
     method public boolean isRtlContext();
-    method public java.lang.String unicodeWrap(java.lang.String, androidx.core.text.TextDirectionHeuristicCompat, boolean);
-    method public java.lang.CharSequence unicodeWrap(java.lang.CharSequence, androidx.core.text.TextDirectionHeuristicCompat, boolean);
-    method public java.lang.String unicodeWrap(java.lang.String, androidx.core.text.TextDirectionHeuristicCompat);
-    method public java.lang.CharSequence unicodeWrap(java.lang.CharSequence, androidx.core.text.TextDirectionHeuristicCompat);
-    method public java.lang.String unicodeWrap(java.lang.String, boolean);
-    method public java.lang.CharSequence unicodeWrap(java.lang.CharSequence, boolean);
-    method public java.lang.String unicodeWrap(java.lang.String);
-    method public java.lang.CharSequence unicodeWrap(java.lang.CharSequence);
+    method public String! unicodeWrap(String!, androidx.core.text.TextDirectionHeuristicCompat!, boolean);
+    method public CharSequence! unicodeWrap(CharSequence!, androidx.core.text.TextDirectionHeuristicCompat!, boolean);
+    method public String! unicodeWrap(String!, androidx.core.text.TextDirectionHeuristicCompat!);
+    method public CharSequence! unicodeWrap(CharSequence!, androidx.core.text.TextDirectionHeuristicCompat!);
+    method public String! unicodeWrap(String!, boolean);
+    method public CharSequence! unicodeWrap(CharSequence!, boolean);
+    method public String! unicodeWrap(String!);
+    method public CharSequence! unicodeWrap(CharSequence!);
   }
 
   public static final class BidiFormatter.Builder {
     ctor public BidiFormatter.Builder();
     ctor public BidiFormatter.Builder(boolean);
-    ctor public BidiFormatter.Builder(java.util.Locale);
-    method public androidx.core.text.BidiFormatter build();
-    method public androidx.core.text.BidiFormatter.Builder setTextDirectionHeuristic(androidx.core.text.TextDirectionHeuristicCompat);
-    method public androidx.core.text.BidiFormatter.Builder stereoReset(boolean);
+    ctor public BidiFormatter.Builder(java.util.Locale!);
+    method public androidx.core.text.BidiFormatter! build();
+    method public androidx.core.text.BidiFormatter.Builder! setTextDirectionHeuristic(androidx.core.text.TextDirectionHeuristicCompat!);
+    method public androidx.core.text.BidiFormatter.Builder! stereoReset(boolean);
   }
 
   public final class HtmlCompat {
-    method public static android.text.Spanned fromHtml(java.lang.String, int);
-    method public static android.text.Spanned fromHtml(java.lang.String, int, android.text.Html.ImageGetter, android.text.Html.TagHandler);
-    method public static java.lang.String toHtml(android.text.Spanned, int);
+    method public static android.text.Spanned fromHtml(String, int);
+    method public static android.text.Spanned fromHtml(String, int, android.text.Html.ImageGetter?, android.text.Html.TagHandler?);
+    method public static String toHtml(android.text.Spanned, int);
     field public static final int FROM_HTML_MODE_COMPACT = 63; // 0x3f
     field public static final int FROM_HTML_MODE_LEGACY = 0; // 0x0
     field public static final int FROM_HTML_OPTION_USE_CSS_COLORS = 256; // 0x100
@@ -1352,61 +1353,61 @@
   }
 
   public final class ICUCompat {
-    method public static java.lang.String maximizeAndGetScript(java.util.Locale);
+    method public static String? maximizeAndGetScript(java.util.Locale!);
   }
 
   public class PrecomputedTextCompat implements android.text.Spannable {
     method public char charAt(int);
-    method public static androidx.core.text.PrecomputedTextCompat create(java.lang.CharSequence, androidx.core.text.PrecomputedTextCompat.Params);
-    method public int getParagraphCount();
-    method public int getParagraphEnd(int);
-    method public int getParagraphStart(int);
+    method public static androidx.core.text.PrecomputedTextCompat! create(CharSequence, androidx.core.text.PrecomputedTextCompat.Params);
+    method @IntRange(from=0) public int getParagraphCount();
+    method @IntRange(from=0) public int getParagraphEnd(@IntRange(from=0) int);
+    method @IntRange(from=0) public int getParagraphStart(@IntRange(from=0) int);
     method public androidx.core.text.PrecomputedTextCompat.Params getParams();
-    method public int getSpanEnd(java.lang.Object);
-    method public int getSpanFlags(java.lang.Object);
-    method public int getSpanStart(java.lang.Object);
-    method public <T> T[] getSpans(int, int, java.lang.Class<T>);
-    method public static java.util.concurrent.Future<androidx.core.text.PrecomputedTextCompat> getTextFuture(java.lang.CharSequence, androidx.core.text.PrecomputedTextCompat.Params, java.util.concurrent.Executor);
+    method public int getSpanEnd(Object!);
+    method public int getSpanFlags(Object!);
+    method public int getSpanStart(Object!);
+    method public <T> T[]! getSpans(int, int, Class<T>!);
+    method @UiThread public static java.util.concurrent.Future<androidx.core.text.PrecomputedTextCompat>! getTextFuture(CharSequence, androidx.core.text.PrecomputedTextCompat.Params, java.util.concurrent.Executor?);
     method public int length();
-    method public int nextSpanTransition(int, int, java.lang.Class);
-    method public void removeSpan(java.lang.Object);
-    method public void setSpan(java.lang.Object, int, int, int);
-    method public java.lang.CharSequence subSequence(int, int);
+    method public int nextSpanTransition(int, int, Class!);
+    method public void removeSpan(Object!);
+    method public void setSpan(Object!, int, int, int);
+    method public CharSequence! subSequence(int, int);
   }
 
   public static final class PrecomputedTextCompat.Params {
-    ctor public PrecomputedTextCompat.Params(android.text.PrecomputedText.Params);
-    method public int getBreakStrategy();
-    method public int getHyphenationFrequency();
-    method public android.text.TextDirectionHeuristic getTextDirection();
+    ctor @RequiresApi(28) public PrecomputedTextCompat.Params(android.text.PrecomputedText.Params);
+    method @RequiresApi(23) public int getBreakStrategy();
+    method @RequiresApi(23) public int getHyphenationFrequency();
+    method @RequiresApi(18) public android.text.TextDirectionHeuristic? getTextDirection();
     method public android.text.TextPaint getTextPaint();
   }
 
   public static class PrecomputedTextCompat.Params.Builder {
     ctor public PrecomputedTextCompat.Params.Builder(android.text.TextPaint);
     method public androidx.core.text.PrecomputedTextCompat.Params build();
-    method public androidx.core.text.PrecomputedTextCompat.Params.Builder setBreakStrategy(int);
-    method public androidx.core.text.PrecomputedTextCompat.Params.Builder setHyphenationFrequency(int);
-    method public androidx.core.text.PrecomputedTextCompat.Params.Builder setTextDirection(android.text.TextDirectionHeuristic);
+    method @RequiresApi(23) public androidx.core.text.PrecomputedTextCompat.Params.Builder! setBreakStrategy(int);
+    method @RequiresApi(23) public androidx.core.text.PrecomputedTextCompat.Params.Builder! setHyphenationFrequency(int);
+    method @RequiresApi(18) public androidx.core.text.PrecomputedTextCompat.Params.Builder! setTextDirection(android.text.TextDirectionHeuristic);
   }
 
-  public abstract interface TextDirectionHeuristicCompat {
-    method public abstract boolean isRtl(char[], int, int);
-    method public abstract boolean isRtl(java.lang.CharSequence, int, int);
+  public interface TextDirectionHeuristicCompat {
+    method public boolean isRtl(char[]!, int, int);
+    method public boolean isRtl(CharSequence!, int, int);
   }
 
   public final class TextDirectionHeuristicsCompat {
-    field public static final androidx.core.text.TextDirectionHeuristicCompat ANYRTL_LTR;
-    field public static final androidx.core.text.TextDirectionHeuristicCompat FIRSTSTRONG_LTR;
-    field public static final androidx.core.text.TextDirectionHeuristicCompat FIRSTSTRONG_RTL;
-    field public static final androidx.core.text.TextDirectionHeuristicCompat LOCALE;
-    field public static final androidx.core.text.TextDirectionHeuristicCompat LTR;
-    field public static final androidx.core.text.TextDirectionHeuristicCompat RTL;
+    field public static final androidx.core.text.TextDirectionHeuristicCompat! ANYRTL_LTR;
+    field public static final androidx.core.text.TextDirectionHeuristicCompat! FIRSTSTRONG_LTR;
+    field public static final androidx.core.text.TextDirectionHeuristicCompat! FIRSTSTRONG_RTL;
+    field public static final androidx.core.text.TextDirectionHeuristicCompat! LOCALE;
+    field public static final androidx.core.text.TextDirectionHeuristicCompat! LTR;
+    field public static final androidx.core.text.TextDirectionHeuristicCompat! RTL;
   }
 
   public final class TextUtilsCompat {
-    method public static int getLayoutDirectionFromLocale(java.util.Locale);
-    method public static java.lang.String htmlEncode(java.lang.String);
+    method public static int getLayoutDirectionFromLocale(java.util.Locale?);
+    method public static String htmlEncode(String);
   }
 
 }
@@ -1416,12 +1417,12 @@
   public final class LinkifyCompat {
     method public static boolean addLinks(android.text.Spannable, int);
     method public static boolean addLinks(android.widget.TextView, int);
-    method public static void addLinks(android.widget.TextView, java.util.regex.Pattern, java.lang.String);
-    method public static void addLinks(android.widget.TextView, java.util.regex.Pattern, java.lang.String, android.text.util.Linkify.MatchFilter, android.text.util.Linkify.TransformFilter);
-    method public static void addLinks(android.widget.TextView, java.util.regex.Pattern, java.lang.String, java.lang.String[], android.text.util.Linkify.MatchFilter, android.text.util.Linkify.TransformFilter);
-    method public static boolean addLinks(android.text.Spannable, java.util.regex.Pattern, java.lang.String);
-    method public static boolean addLinks(android.text.Spannable, java.util.regex.Pattern, java.lang.String, android.text.util.Linkify.MatchFilter, android.text.util.Linkify.TransformFilter);
-    method public static boolean addLinks(android.text.Spannable, java.util.regex.Pattern, java.lang.String, java.lang.String[], android.text.util.Linkify.MatchFilter, android.text.util.Linkify.TransformFilter);
+    method public static void addLinks(android.widget.TextView, java.util.regex.Pattern, String?);
+    method public static void addLinks(android.widget.TextView, java.util.regex.Pattern, String?, android.text.util.Linkify.MatchFilter?, android.text.util.Linkify.TransformFilter?);
+    method public static void addLinks(android.widget.TextView, java.util.regex.Pattern, String?, String[]?, android.text.util.Linkify.MatchFilter?, android.text.util.Linkify.TransformFilter?);
+    method public static boolean addLinks(android.text.Spannable, java.util.regex.Pattern, String?);
+    method public static boolean addLinks(android.text.Spannable, java.util.regex.Pattern, String?, android.text.util.Linkify.MatchFilter?, android.text.util.Linkify.TransformFilter?);
+    method public static boolean addLinks(android.text.Spannable, java.util.regex.Pattern, String?, String[]?, android.text.util.Linkify.MatchFilter?, android.text.util.Linkify.TransformFilter?);
   }
 
 }
@@ -1431,58 +1432,58 @@
   public class AtomicFile {
     ctor public AtomicFile(java.io.File);
     method public void delete();
-    method public void failWrite(java.io.FileOutputStream);
-    method public void finishWrite(java.io.FileOutputStream);
+    method public void failWrite(java.io.FileOutputStream?);
+    method public void finishWrite(java.io.FileOutputStream?);
     method public java.io.File getBaseFile();
     method public java.io.FileInputStream openRead() throws java.io.FileNotFoundException;
     method public byte[] readFully() throws java.io.IOException;
     method public java.io.FileOutputStream startWrite() throws java.io.IOException;
   }
 
-  public abstract interface Consumer<T> {
-    method public abstract void accept(T);
+  public interface Consumer<T> {
+    method public void accept(T!);
   }
 
   public class ObjectsCompat {
-    method public static boolean equals(java.lang.Object, java.lang.Object);
-    method public static int hash(java.lang.Object...);
-    method public static int hashCode(java.lang.Object);
+    method public static boolean equals(Object?, Object?);
+    method public static int hash(java.lang.Object...?);
+    method public static int hashCode(Object?);
   }
 
   public class Pair<F, S> {
-    ctor public Pair(F, S);
-    method public static <A, B> androidx.core.util.Pair<A, B> create(A, B);
-    field public final F first;
-    field public final S second;
+    ctor public Pair(F?, S?);
+    method public static <A, B> androidx.core.util.Pair<A,B> create(A?, B?);
+    field public final F? first;
+    field public final S? second;
   }
 
   public final class PatternsCompat {
-    field public static final java.util.regex.Pattern DOMAIN_NAME;
-    field public static final java.util.regex.Pattern EMAIL_ADDRESS;
-    field public static final java.util.regex.Pattern IP_ADDRESS;
-    field public static final java.util.regex.Pattern WEB_URL;
+    field public static final java.util.regex.Pattern! DOMAIN_NAME;
+    field public static final java.util.regex.Pattern! EMAIL_ADDRESS;
+    field public static final java.util.regex.Pattern! IP_ADDRESS;
+    field public static final java.util.regex.Pattern! WEB_URL;
   }
 
   public final class Pools {
   }
 
-  public static abstract interface Pools.Pool<T> {
-    method public abstract T acquire();
-    method public abstract boolean release(T);
-  }
-
-  public static class Pools.SimplePool<T> implements androidx.core.util.Pools.Pool {
-    ctor public Pools.SimplePool(int);
-    method public T acquire();
+  public static interface Pools.Pool<T> {
+    method public T? acquire();
     method public boolean release(T);
   }
 
-  public static class Pools.SynchronizedPool<T> extends androidx.core.util.Pools.SimplePool {
+  public static class Pools.SimplePool<T> implements androidx.core.util.Pools.Pool<T> {
+    ctor public Pools.SimplePool(int);
+    method public T! acquire();
+    method public boolean release(T);
+  }
+
+  public static class Pools.SynchronizedPool<T> extends androidx.core.util.Pools.SimplePool<T> {
     ctor public Pools.SynchronizedPool(int);
   }
 
-  public abstract interface Supplier<T> {
-    method public abstract T get();
+  public interface Supplier<T> {
+    method public T! get();
   }
 
 }
@@ -1491,38 +1492,38 @@
 
   public class AccessibilityDelegateCompat {
     ctor public AccessibilityDelegateCompat();
-    method public boolean dispatchPopulateAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
-    method public androidx.core.view.accessibility.AccessibilityNodeProviderCompat getAccessibilityNodeProvider(android.view.View);
-    method public void onInitializeAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
-    method public void onInitializeAccessibilityNodeInfo(android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat);
-    method public void onPopulateAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
-    method public boolean onRequestSendAccessibilityEvent(android.view.ViewGroup, android.view.View, android.view.accessibility.AccessibilityEvent);
-    method public boolean performAccessibilityAction(android.view.View, int, android.os.Bundle);
-    method public void sendAccessibilityEvent(android.view.View, int);
-    method public void sendAccessibilityEventUnchecked(android.view.View, android.view.accessibility.AccessibilityEvent);
+    method public boolean dispatchPopulateAccessibilityEvent(android.view.View!, android.view.accessibility.AccessibilityEvent!);
+    method public androidx.core.view.accessibility.AccessibilityNodeProviderCompat! getAccessibilityNodeProvider(android.view.View!);
+    method public void onInitializeAccessibilityEvent(android.view.View!, android.view.accessibility.AccessibilityEvent!);
+    method public void onInitializeAccessibilityNodeInfo(android.view.View!, androidx.core.view.accessibility.AccessibilityNodeInfoCompat!);
+    method public void onPopulateAccessibilityEvent(android.view.View!, android.view.accessibility.AccessibilityEvent!);
+    method public boolean onRequestSendAccessibilityEvent(android.view.ViewGroup!, android.view.View!, android.view.accessibility.AccessibilityEvent!);
+    method public boolean performAccessibilityAction(android.view.View!, int, android.os.Bundle!);
+    method public void sendAccessibilityEvent(android.view.View!, int);
+    method public void sendAccessibilityEventUnchecked(android.view.View!, android.view.accessibility.AccessibilityEvent!);
   }
 
   public abstract class ActionProvider {
-    ctor public ActionProvider(android.content.Context);
-    method public android.content.Context getContext();
+    ctor public ActionProvider(android.content.Context!);
+    method public android.content.Context! getContext();
     method public boolean hasSubMenu();
     method public boolean isVisible();
-    method public abstract android.view.View onCreateActionView();
-    method public android.view.View onCreateActionView(android.view.MenuItem);
+    method public abstract android.view.View! onCreateActionView();
+    method public android.view.View! onCreateActionView(android.view.MenuItem!);
     method public boolean onPerformDefaultAction();
-    method public void onPrepareSubMenu(android.view.SubMenu);
+    method public void onPrepareSubMenu(android.view.SubMenu!);
     method public boolean overridesItemVisibility();
     method public void refreshVisibility();
-    method public void setVisibilityListener(androidx.core.view.ActionProvider.VisibilityListener);
+    method public void setVisibilityListener(androidx.core.view.ActionProvider.VisibilityListener!);
   }
 
-  public static abstract interface ActionProvider.VisibilityListener {
-    method public abstract void onActionProviderVisibilityChanged(boolean);
+  public static interface ActionProvider.VisibilityListener {
+    method public void onActionProviderVisibilityChanged(boolean);
   }
 
   public final class DisplayCutoutCompat {
-    ctor public DisplayCutoutCompat(android.graphics.Rect, java.util.List<android.graphics.Rect>);
-    method public java.util.List<android.graphics.Rect> getBoundingRects();
+    ctor public DisplayCutoutCompat(android.graphics.Rect!, java.util.List<android.graphics.Rect>!);
+    method public java.util.List<android.graphics.Rect>! getBoundingRects();
     method public int getSafeInsetBottom();
     method public int getSafeInsetLeft();
     method public int getSafeInsetRight();
@@ -1534,31 +1535,31 @@
   }
 
   public class DragStartHelper {
-    ctor public DragStartHelper(android.view.View, androidx.core.view.DragStartHelper.OnDragStartListener);
+    ctor public DragStartHelper(android.view.View!, androidx.core.view.DragStartHelper.OnDragStartListener!);
     method public void attach();
     method public void detach();
-    method public void getTouchPosition(android.graphics.Point);
-    method public boolean onLongClick(android.view.View);
-    method public boolean onTouch(android.view.View, android.view.MotionEvent);
+    method public void getTouchPosition(android.graphics.Point!);
+    method public boolean onLongClick(android.view.View!);
+    method public boolean onTouch(android.view.View!, android.view.MotionEvent!);
   }
 
-  public static abstract interface DragStartHelper.OnDragStartListener {
-    method public abstract boolean onDragStart(android.view.View, androidx.core.view.DragStartHelper);
+  public static interface DragStartHelper.OnDragStartListener {
+    method public boolean onDragStart(android.view.View!, androidx.core.view.DragStartHelper!);
   }
 
   public final class GestureDetectorCompat {
-    ctor public GestureDetectorCompat(android.content.Context, android.view.GestureDetector.OnGestureListener);
-    ctor public GestureDetectorCompat(android.content.Context, android.view.GestureDetector.OnGestureListener, android.os.Handler);
+    ctor public GestureDetectorCompat(android.content.Context!, android.view.GestureDetector.OnGestureListener!);
+    ctor public GestureDetectorCompat(android.content.Context!, android.view.GestureDetector.OnGestureListener!, android.os.Handler!);
     method public boolean isLongpressEnabled();
-    method public boolean onTouchEvent(android.view.MotionEvent);
+    method public boolean onTouchEvent(android.view.MotionEvent!);
     method public void setIsLongpressEnabled(boolean);
-    method public void setOnDoubleTapListener(android.view.GestureDetector.OnDoubleTapListener);
+    method public void setOnDoubleTapListener(android.view.GestureDetector.OnDoubleTapListener!);
   }
 
   public final class GravityCompat {
-    method public static void apply(int, int, int, android.graphics.Rect, android.graphics.Rect, int);
-    method public static void apply(int, int, int, android.graphics.Rect, int, int, android.graphics.Rect, int);
-    method public static void applyDisplay(int, android.graphics.Rect, android.graphics.Rect, int);
+    method public static void apply(int, int, int, android.graphics.Rect!, android.graphics.Rect!, int);
+    method public static void apply(int, int, int, android.graphics.Rect!, int, int, android.graphics.Rect!, int);
+    method public static void applyDisplay(int, android.graphics.Rect!, android.graphics.Rect!, int);
     method public static int getAbsoluteGravity(int, int);
     field public static final int END = 8388613; // 0x800005
     field public static final int RELATIVE_HORIZONTAL_GRAVITY_MASK = 8388615; // 0x800007
@@ -1591,170 +1592,170 @@
   }
 
   public final class LayoutInflaterCompat {
-    method public static deprecated androidx.core.view.LayoutInflaterFactory getFactory(android.view.LayoutInflater);
-    method public static deprecated void setFactory(android.view.LayoutInflater, androidx.core.view.LayoutInflaterFactory);
+    method @Deprecated public static androidx.core.view.LayoutInflaterFactory! getFactory(android.view.LayoutInflater!);
+    method @Deprecated public static void setFactory(android.view.LayoutInflater, androidx.core.view.LayoutInflaterFactory);
     method public static void setFactory2(android.view.LayoutInflater, android.view.LayoutInflater.Factory2);
   }
 
-  public abstract deprecated interface LayoutInflaterFactory {
-    method public abstract android.view.View onCreateView(android.view.View, java.lang.String, android.content.Context, android.util.AttributeSet);
+  @Deprecated public interface LayoutInflaterFactory {
+    method @Deprecated public android.view.View! onCreateView(android.view.View!, String!, android.content.Context!, android.util.AttributeSet!);
   }
 
   public final class MarginLayoutParamsCompat {
-    method public static int getLayoutDirection(android.view.ViewGroup.MarginLayoutParams);
-    method public static int getMarginEnd(android.view.ViewGroup.MarginLayoutParams);
-    method public static int getMarginStart(android.view.ViewGroup.MarginLayoutParams);
-    method public static boolean isMarginRelative(android.view.ViewGroup.MarginLayoutParams);
-    method public static void resolveLayoutDirection(android.view.ViewGroup.MarginLayoutParams, int);
-    method public static void setLayoutDirection(android.view.ViewGroup.MarginLayoutParams, int);
-    method public static void setMarginEnd(android.view.ViewGroup.MarginLayoutParams, int);
-    method public static void setMarginStart(android.view.ViewGroup.MarginLayoutParams, int);
+    method public static int getLayoutDirection(android.view.ViewGroup.MarginLayoutParams!);
+    method public static int getMarginEnd(android.view.ViewGroup.MarginLayoutParams!);
+    method public static int getMarginStart(android.view.ViewGroup.MarginLayoutParams!);
+    method public static boolean isMarginRelative(android.view.ViewGroup.MarginLayoutParams!);
+    method public static void resolveLayoutDirection(android.view.ViewGroup.MarginLayoutParams!, int);
+    method public static void setLayoutDirection(android.view.ViewGroup.MarginLayoutParams!, int);
+    method public static void setMarginEnd(android.view.ViewGroup.MarginLayoutParams!, int);
+    method public static void setMarginStart(android.view.ViewGroup.MarginLayoutParams!, int);
   }
 
   public final class MenuCompat {
-    method public static void setGroupDividerEnabled(android.view.Menu, boolean);
-    method public static deprecated void setShowAsAction(android.view.MenuItem, int);
+    method public static void setGroupDividerEnabled(android.view.Menu!, boolean);
+    method @Deprecated public static void setShowAsAction(android.view.MenuItem!, int);
   }
 
   public final class MenuItemCompat {
-    method public static deprecated boolean collapseActionView(android.view.MenuItem);
-    method public static deprecated boolean expandActionView(android.view.MenuItem);
-    method public static androidx.core.view.ActionProvider getActionProvider(android.view.MenuItem);
-    method public static deprecated android.view.View getActionView(android.view.MenuItem);
-    method public static int getAlphabeticModifiers(android.view.MenuItem);
-    method public static java.lang.CharSequence getContentDescription(android.view.MenuItem);
-    method public static android.content.res.ColorStateList getIconTintList(android.view.MenuItem);
-    method public static android.graphics.PorterDuff.Mode getIconTintMode(android.view.MenuItem);
-    method public static int getNumericModifiers(android.view.MenuItem);
-    method public static java.lang.CharSequence getTooltipText(android.view.MenuItem);
-    method public static deprecated boolean isActionViewExpanded(android.view.MenuItem);
-    method public static android.view.MenuItem setActionProvider(android.view.MenuItem, androidx.core.view.ActionProvider);
-    method public static deprecated android.view.MenuItem setActionView(android.view.MenuItem, android.view.View);
-    method public static deprecated android.view.MenuItem setActionView(android.view.MenuItem, int);
-    method public static void setAlphabeticShortcut(android.view.MenuItem, char, int);
-    method public static void setContentDescription(android.view.MenuItem, java.lang.CharSequence);
-    method public static void setIconTintList(android.view.MenuItem, android.content.res.ColorStateList);
-    method public static void setIconTintMode(android.view.MenuItem, android.graphics.PorterDuff.Mode);
-    method public static void setNumericShortcut(android.view.MenuItem, char, int);
-    method public static deprecated android.view.MenuItem setOnActionExpandListener(android.view.MenuItem, androidx.core.view.MenuItemCompat.OnActionExpandListener);
-    method public static void setShortcut(android.view.MenuItem, char, char, int, int);
-    method public static deprecated void setShowAsAction(android.view.MenuItem, int);
-    method public static void setTooltipText(android.view.MenuItem, java.lang.CharSequence);
-    field public static final deprecated int SHOW_AS_ACTION_ALWAYS = 2; // 0x2
-    field public static final deprecated int SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW = 8; // 0x8
-    field public static final deprecated int SHOW_AS_ACTION_IF_ROOM = 1; // 0x1
-    field public static final deprecated int SHOW_AS_ACTION_NEVER = 0; // 0x0
-    field public static final deprecated int SHOW_AS_ACTION_WITH_TEXT = 4; // 0x4
+    method @Deprecated public static boolean collapseActionView(android.view.MenuItem!);
+    method @Deprecated public static boolean expandActionView(android.view.MenuItem!);
+    method public static androidx.core.view.ActionProvider! getActionProvider(android.view.MenuItem!);
+    method @Deprecated public static android.view.View! getActionView(android.view.MenuItem!);
+    method public static int getAlphabeticModifiers(android.view.MenuItem!);
+    method public static CharSequence! getContentDescription(android.view.MenuItem!);
+    method public static android.content.res.ColorStateList! getIconTintList(android.view.MenuItem!);
+    method public static android.graphics.PorterDuff.Mode! getIconTintMode(android.view.MenuItem!);
+    method public static int getNumericModifiers(android.view.MenuItem!);
+    method public static CharSequence! getTooltipText(android.view.MenuItem!);
+    method @Deprecated public static boolean isActionViewExpanded(android.view.MenuItem!);
+    method public static android.view.MenuItem! setActionProvider(android.view.MenuItem!, androidx.core.view.ActionProvider!);
+    method @Deprecated public static android.view.MenuItem! setActionView(android.view.MenuItem!, android.view.View!);
+    method @Deprecated public static android.view.MenuItem! setActionView(android.view.MenuItem!, int);
+    method public static void setAlphabeticShortcut(android.view.MenuItem!, char, int);
+    method public static void setContentDescription(android.view.MenuItem!, CharSequence!);
+    method public static void setIconTintList(android.view.MenuItem!, android.content.res.ColorStateList!);
+    method public static void setIconTintMode(android.view.MenuItem!, android.graphics.PorterDuff.Mode!);
+    method public static void setNumericShortcut(android.view.MenuItem!, char, int);
+    method @Deprecated public static android.view.MenuItem! setOnActionExpandListener(android.view.MenuItem!, androidx.core.view.MenuItemCompat.OnActionExpandListener!);
+    method public static void setShortcut(android.view.MenuItem!, char, char, int, int);
+    method @Deprecated public static void setShowAsAction(android.view.MenuItem!, int);
+    method public static void setTooltipText(android.view.MenuItem!, CharSequence!);
+    field @Deprecated public static final int SHOW_AS_ACTION_ALWAYS = 2; // 0x2
+    field @Deprecated public static final int SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW = 8; // 0x8
+    field @Deprecated public static final int SHOW_AS_ACTION_IF_ROOM = 1; // 0x1
+    field @Deprecated public static final int SHOW_AS_ACTION_NEVER = 0; // 0x0
+    field @Deprecated public static final int SHOW_AS_ACTION_WITH_TEXT = 4; // 0x4
   }
 
-  public static abstract deprecated interface MenuItemCompat.OnActionExpandListener {
-    method public abstract boolean onMenuItemActionCollapse(android.view.MenuItem);
-    method public abstract boolean onMenuItemActionExpand(android.view.MenuItem);
+  @Deprecated public static interface MenuItemCompat.OnActionExpandListener {
+    method @Deprecated public boolean onMenuItemActionCollapse(android.view.MenuItem!);
+    method @Deprecated public boolean onMenuItemActionExpand(android.view.MenuItem!);
   }
 
   public final class MotionEventCompat {
-    method public static deprecated int findPointerIndex(android.view.MotionEvent, int);
-    method public static deprecated int getActionIndex(android.view.MotionEvent);
-    method public static deprecated int getActionMasked(android.view.MotionEvent);
-    method public static deprecated float getAxisValue(android.view.MotionEvent, int);
-    method public static deprecated float getAxisValue(android.view.MotionEvent, int, int);
-    method public static deprecated int getButtonState(android.view.MotionEvent);
-    method public static deprecated int getPointerCount(android.view.MotionEvent);
-    method public static deprecated int getPointerId(android.view.MotionEvent, int);
-    method public static deprecated int getSource(android.view.MotionEvent);
-    method public static deprecated float getX(android.view.MotionEvent, int);
-    method public static deprecated float getY(android.view.MotionEvent, int);
-    method public static boolean isFromSource(android.view.MotionEvent, int);
-    field public static final deprecated int ACTION_HOVER_ENTER = 9; // 0x9
-    field public static final deprecated int ACTION_HOVER_EXIT = 10; // 0xa
-    field public static final deprecated int ACTION_HOVER_MOVE = 7; // 0x7
-    field public static final deprecated int ACTION_MASK = 255; // 0xff
-    field public static final deprecated int ACTION_POINTER_DOWN = 5; // 0x5
-    field public static final deprecated int ACTION_POINTER_INDEX_MASK = 65280; // 0xff00
-    field public static final deprecated int ACTION_POINTER_INDEX_SHIFT = 8; // 0x8
-    field public static final deprecated int ACTION_POINTER_UP = 6; // 0x6
-    field public static final deprecated int ACTION_SCROLL = 8; // 0x8
-    field public static final deprecated int AXIS_BRAKE = 23; // 0x17
-    field public static final deprecated int AXIS_DISTANCE = 24; // 0x18
-    field public static final deprecated int AXIS_GAS = 22; // 0x16
-    field public static final deprecated int AXIS_GENERIC_1 = 32; // 0x20
-    field public static final deprecated int AXIS_GENERIC_10 = 41; // 0x29
-    field public static final deprecated int AXIS_GENERIC_11 = 42; // 0x2a
-    field public static final deprecated int AXIS_GENERIC_12 = 43; // 0x2b
-    field public static final deprecated int AXIS_GENERIC_13 = 44; // 0x2c
-    field public static final deprecated int AXIS_GENERIC_14 = 45; // 0x2d
-    field public static final deprecated int AXIS_GENERIC_15 = 46; // 0x2e
-    field public static final deprecated int AXIS_GENERIC_16 = 47; // 0x2f
-    field public static final deprecated int AXIS_GENERIC_2 = 33; // 0x21
-    field public static final deprecated int AXIS_GENERIC_3 = 34; // 0x22
-    field public static final deprecated int AXIS_GENERIC_4 = 35; // 0x23
-    field public static final deprecated int AXIS_GENERIC_5 = 36; // 0x24
-    field public static final deprecated int AXIS_GENERIC_6 = 37; // 0x25
-    field public static final deprecated int AXIS_GENERIC_7 = 38; // 0x26
-    field public static final deprecated int AXIS_GENERIC_8 = 39; // 0x27
-    field public static final deprecated int AXIS_GENERIC_9 = 40; // 0x28
-    field public static final deprecated int AXIS_HAT_X = 15; // 0xf
-    field public static final deprecated int AXIS_HAT_Y = 16; // 0x10
-    field public static final deprecated int AXIS_HSCROLL = 10; // 0xa
-    field public static final deprecated int AXIS_LTRIGGER = 17; // 0x11
-    field public static final deprecated int AXIS_ORIENTATION = 8; // 0x8
-    field public static final deprecated int AXIS_PRESSURE = 2; // 0x2
+    method @Deprecated public static int findPointerIndex(android.view.MotionEvent!, int);
+    method @Deprecated public static int getActionIndex(android.view.MotionEvent!);
+    method @Deprecated public static int getActionMasked(android.view.MotionEvent!);
+    method @Deprecated public static float getAxisValue(android.view.MotionEvent!, int);
+    method @Deprecated public static float getAxisValue(android.view.MotionEvent!, int, int);
+    method @Deprecated public static int getButtonState(android.view.MotionEvent!);
+    method @Deprecated public static int getPointerCount(android.view.MotionEvent!);
+    method @Deprecated public static int getPointerId(android.view.MotionEvent!, int);
+    method @Deprecated public static int getSource(android.view.MotionEvent!);
+    method @Deprecated public static float getX(android.view.MotionEvent!, int);
+    method @Deprecated public static float getY(android.view.MotionEvent!, int);
+    method public static boolean isFromSource(android.view.MotionEvent!, int);
+    field @Deprecated public static final int ACTION_HOVER_ENTER = 9; // 0x9
+    field @Deprecated public static final int ACTION_HOVER_EXIT = 10; // 0xa
+    field @Deprecated public static final int ACTION_HOVER_MOVE = 7; // 0x7
+    field @Deprecated public static final int ACTION_MASK = 255; // 0xff
+    field @Deprecated public static final int ACTION_POINTER_DOWN = 5; // 0x5
+    field @Deprecated public static final int ACTION_POINTER_INDEX_MASK = 65280; // 0xff00
+    field @Deprecated public static final int ACTION_POINTER_INDEX_SHIFT = 8; // 0x8
+    field @Deprecated public static final int ACTION_POINTER_UP = 6; // 0x6
+    field @Deprecated public static final int ACTION_SCROLL = 8; // 0x8
+    field @Deprecated public static final int AXIS_BRAKE = 23; // 0x17
+    field @Deprecated public static final int AXIS_DISTANCE = 24; // 0x18
+    field @Deprecated public static final int AXIS_GAS = 22; // 0x16
+    field @Deprecated public static final int AXIS_GENERIC_1 = 32; // 0x20
+    field @Deprecated public static final int AXIS_GENERIC_10 = 41; // 0x29
+    field @Deprecated public static final int AXIS_GENERIC_11 = 42; // 0x2a
+    field @Deprecated public static final int AXIS_GENERIC_12 = 43; // 0x2b
+    field @Deprecated public static final int AXIS_GENERIC_13 = 44; // 0x2c
+    field @Deprecated public static final int AXIS_GENERIC_14 = 45; // 0x2d
+    field @Deprecated public static final int AXIS_GENERIC_15 = 46; // 0x2e
+    field @Deprecated public static final int AXIS_GENERIC_16 = 47; // 0x2f
+    field @Deprecated public static final int AXIS_GENERIC_2 = 33; // 0x21
+    field @Deprecated public static final int AXIS_GENERIC_3 = 34; // 0x22
+    field @Deprecated public static final int AXIS_GENERIC_4 = 35; // 0x23
+    field @Deprecated public static final int AXIS_GENERIC_5 = 36; // 0x24
+    field @Deprecated public static final int AXIS_GENERIC_6 = 37; // 0x25
+    field @Deprecated public static final int AXIS_GENERIC_7 = 38; // 0x26
+    field @Deprecated public static final int AXIS_GENERIC_8 = 39; // 0x27
+    field @Deprecated public static final int AXIS_GENERIC_9 = 40; // 0x28
+    field @Deprecated public static final int AXIS_HAT_X = 15; // 0xf
+    field @Deprecated public static final int AXIS_HAT_Y = 16; // 0x10
+    field @Deprecated public static final int AXIS_HSCROLL = 10; // 0xa
+    field @Deprecated public static final int AXIS_LTRIGGER = 17; // 0x11
+    field @Deprecated public static final int AXIS_ORIENTATION = 8; // 0x8
+    field @Deprecated public static final int AXIS_PRESSURE = 2; // 0x2
     field public static final int AXIS_RELATIVE_X = 27; // 0x1b
     field public static final int AXIS_RELATIVE_Y = 28; // 0x1c
-    field public static final deprecated int AXIS_RTRIGGER = 18; // 0x12
-    field public static final deprecated int AXIS_RUDDER = 20; // 0x14
-    field public static final deprecated int AXIS_RX = 12; // 0xc
-    field public static final deprecated int AXIS_RY = 13; // 0xd
-    field public static final deprecated int AXIS_RZ = 14; // 0xe
+    field @Deprecated public static final int AXIS_RTRIGGER = 18; // 0x12
+    field @Deprecated public static final int AXIS_RUDDER = 20; // 0x14
+    field @Deprecated public static final int AXIS_RX = 12; // 0xc
+    field @Deprecated public static final int AXIS_RY = 13; // 0xd
+    field @Deprecated public static final int AXIS_RZ = 14; // 0xe
     field public static final int AXIS_SCROLL = 26; // 0x1a
-    field public static final deprecated int AXIS_SIZE = 3; // 0x3
-    field public static final deprecated int AXIS_THROTTLE = 19; // 0x13
-    field public static final deprecated int AXIS_TILT = 25; // 0x19
-    field public static final deprecated int AXIS_TOOL_MAJOR = 6; // 0x6
-    field public static final deprecated int AXIS_TOOL_MINOR = 7; // 0x7
-    field public static final deprecated int AXIS_TOUCH_MAJOR = 4; // 0x4
-    field public static final deprecated int AXIS_TOUCH_MINOR = 5; // 0x5
-    field public static final deprecated int AXIS_VSCROLL = 9; // 0x9
-    field public static final deprecated int AXIS_WHEEL = 21; // 0x15
-    field public static final deprecated int AXIS_X = 0; // 0x0
-    field public static final deprecated int AXIS_Y = 1; // 0x1
-    field public static final deprecated int AXIS_Z = 11; // 0xb
-    field public static final deprecated int BUTTON_PRIMARY = 1; // 0x1
+    field @Deprecated public static final int AXIS_SIZE = 3; // 0x3
+    field @Deprecated public static final int AXIS_THROTTLE = 19; // 0x13
+    field @Deprecated public static final int AXIS_TILT = 25; // 0x19
+    field @Deprecated public static final int AXIS_TOOL_MAJOR = 6; // 0x6
+    field @Deprecated public static final int AXIS_TOOL_MINOR = 7; // 0x7
+    field @Deprecated public static final int AXIS_TOUCH_MAJOR = 4; // 0x4
+    field @Deprecated public static final int AXIS_TOUCH_MINOR = 5; // 0x5
+    field @Deprecated public static final int AXIS_VSCROLL = 9; // 0x9
+    field @Deprecated public static final int AXIS_WHEEL = 21; // 0x15
+    field @Deprecated public static final int AXIS_X = 0; // 0x0
+    field @Deprecated public static final int AXIS_Y = 1; // 0x1
+    field @Deprecated public static final int AXIS_Z = 11; // 0xb
+    field @Deprecated public static final int BUTTON_PRIMARY = 1; // 0x1
   }
 
-  public abstract interface NestedScrollingChild {
-    method public abstract boolean dispatchNestedFling(float, float, boolean);
-    method public abstract boolean dispatchNestedPreFling(float, float);
-    method public abstract boolean dispatchNestedPreScroll(int, int, int[], int[]);
-    method public abstract boolean dispatchNestedScroll(int, int, int, int, int[]);
-    method public abstract boolean hasNestedScrollingParent();
-    method public abstract boolean isNestedScrollingEnabled();
-    method public abstract void setNestedScrollingEnabled(boolean);
-    method public abstract boolean startNestedScroll(int);
-    method public abstract void stopNestedScroll();
+  public interface NestedScrollingChild {
+    method public boolean dispatchNestedFling(float, float, boolean);
+    method public boolean dispatchNestedPreFling(float, float);
+    method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?);
+    method public boolean dispatchNestedScroll(int, int, int, int, int[]?);
+    method public boolean hasNestedScrollingParent();
+    method public boolean isNestedScrollingEnabled();
+    method public void setNestedScrollingEnabled(boolean);
+    method public boolean startNestedScroll(int);
+    method public void stopNestedScroll();
   }
 
-  public abstract interface NestedScrollingChild2 implements androidx.core.view.NestedScrollingChild {
-    method public abstract boolean dispatchNestedPreScroll(int, int, int[], int[], int);
-    method public abstract boolean dispatchNestedScroll(int, int, int, int, int[], int);
-    method public abstract boolean hasNestedScrollingParent(int);
-    method public abstract boolean startNestedScroll(int, int);
-    method public abstract void stopNestedScroll(int);
+  public interface NestedScrollingChild2 extends androidx.core.view.NestedScrollingChild {
+    method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?, int);
+    method public boolean dispatchNestedScroll(int, int, int, int, int[]?, int);
+    method public boolean hasNestedScrollingParent(int);
+    method public boolean startNestedScroll(int, int);
+    method public void stopNestedScroll(int);
   }
 
-  public abstract interface NestedScrollingChild3 implements androidx.core.view.NestedScrollingChild2 {
-    method public abstract void dispatchNestedScroll(int, int, int, int, int[], int, int[]);
+  public interface NestedScrollingChild3 extends androidx.core.view.NestedScrollingChild2 {
+    method public void dispatchNestedScroll(int, int, int, int, int[]?, int, int[]);
   }
 
   public class NestedScrollingChildHelper {
     ctor public NestedScrollingChildHelper(android.view.View);
     method public boolean dispatchNestedFling(float, float, boolean);
     method public boolean dispatchNestedPreFling(float, float);
-    method public boolean dispatchNestedPreScroll(int, int, int[], int[]);
-    method public boolean dispatchNestedPreScroll(int, int, int[], int[], int);
-    method public boolean dispatchNestedScroll(int, int, int, int, int[]);
-    method public boolean dispatchNestedScroll(int, int, int, int, int[], int);
-    method public void dispatchNestedScroll(int, int, int, int, int[], int, int[]);
+    method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?);
+    method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?, int);
+    method public boolean dispatchNestedScroll(int, int, int, int, int[]?);
+    method public boolean dispatchNestedScroll(int, int, int, int, int[]?, int);
+    method public void dispatchNestedScroll(int, int, int, int, int[]?, int, int[]?);
     method public boolean hasNestedScrollingParent();
     method public boolean hasNestedScrollingParent(int);
     method public boolean isNestedScrollingEnabled();
@@ -1767,27 +1768,27 @@
     method public void stopNestedScroll(int);
   }
 
-  public abstract interface NestedScrollingParent {
-    method public abstract int getNestedScrollAxes();
-    method public abstract boolean onNestedFling(android.view.View, float, float, boolean);
-    method public abstract boolean onNestedPreFling(android.view.View, float, float);
-    method public abstract void onNestedPreScroll(android.view.View, int, int, int[]);
-    method public abstract void onNestedScroll(android.view.View, int, int, int, int);
-    method public abstract void onNestedScrollAccepted(android.view.View, android.view.View, int);
-    method public abstract boolean onStartNestedScroll(android.view.View, android.view.View, int);
-    method public abstract void onStopNestedScroll(android.view.View);
+  public interface NestedScrollingParent {
+    method public int getNestedScrollAxes();
+    method public boolean onNestedFling(android.view.View, float, float, boolean);
+    method public boolean onNestedPreFling(android.view.View, float, float);
+    method public void onNestedPreScroll(android.view.View, int, int, int[]);
+    method public void onNestedScroll(android.view.View, int, int, int, int);
+    method public void onNestedScrollAccepted(android.view.View, android.view.View, int);
+    method public boolean onStartNestedScroll(android.view.View, android.view.View, int);
+    method public void onStopNestedScroll(android.view.View);
   }
 
-  public abstract interface NestedScrollingParent2 implements androidx.core.view.NestedScrollingParent {
-    method public abstract void onNestedPreScroll(android.view.View, int, int, int[], int);
-    method public abstract void onNestedScroll(android.view.View, int, int, int, int, int);
-    method public abstract void onNestedScrollAccepted(android.view.View, android.view.View, int, int);
-    method public abstract boolean onStartNestedScroll(android.view.View, android.view.View, int, int);
-    method public abstract void onStopNestedScroll(android.view.View, int);
+  public interface NestedScrollingParent2 extends androidx.core.view.NestedScrollingParent {
+    method public void onNestedPreScroll(android.view.View, int, int, int[], int);
+    method public void onNestedScroll(android.view.View, int, int, int, int, int);
+    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);
   }
 
-  public abstract interface NestedScrollingParent3 implements androidx.core.view.NestedScrollingParent2 {
-    method public abstract void onNestedScroll(android.view.View, int, int, int, int, int, int[]);
+  public interface NestedScrollingParent3 extends androidx.core.view.NestedScrollingParent2 {
+    method public void onNestedScroll(android.view.View, int, int, int, int, int, int[]);
   }
 
   public class NestedScrollingParentHelper {
@@ -1799,22 +1800,22 @@
     method public void onStopNestedScroll(android.view.View, int);
   }
 
-  public abstract interface OnApplyWindowInsetsListener {
-    method public abstract androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View, androidx.core.view.WindowInsetsCompat);
+  public interface OnApplyWindowInsetsListener {
+    method public androidx.core.view.WindowInsetsCompat! onApplyWindowInsets(android.view.View!, androidx.core.view.WindowInsetsCompat!);
   }
 
   public final class OneShotPreDrawListener implements android.view.View.OnAttachStateChangeListener android.view.ViewTreeObserver.OnPreDrawListener {
-    method public static androidx.core.view.OneShotPreDrawListener add(android.view.View, java.lang.Runnable);
+    method public static androidx.core.view.OneShotPreDrawListener add(android.view.View, Runnable);
     method public boolean onPreDraw();
-    method public void onViewAttachedToWindow(android.view.View);
-    method public void onViewDetachedFromWindow(android.view.View);
+    method public void onViewAttachedToWindow(android.view.View!);
+    method public void onViewDetachedFromWindow(android.view.View!);
     method public void removeListener();
   }
 
   public final class PointerIconCompat {
-    method public static androidx.core.view.PointerIconCompat create(android.graphics.Bitmap, float, float);
-    method public static androidx.core.view.PointerIconCompat getSystemIcon(android.content.Context, int);
-    method public static androidx.core.view.PointerIconCompat load(android.content.res.Resources, int);
+    method public static androidx.core.view.PointerIconCompat! create(android.graphics.Bitmap!, float, float);
+    method public static androidx.core.view.PointerIconCompat! getSystemIcon(android.content.Context!, int);
+    method public static androidx.core.view.PointerIconCompat! load(android.content.res.Resources!, int);
     field public static final int TYPE_ALIAS = 1010; // 0x3f2
     field public static final int TYPE_ALL_SCROLL = 1013; // 0x3f5
     field public static final int TYPE_ARROW = 1000; // 0x3e8
@@ -1841,31 +1842,31 @@
   }
 
   public final class ScaleGestureDetectorCompat {
-    method public static deprecated boolean isQuickScaleEnabled(java.lang.Object);
-    method public static boolean isQuickScaleEnabled(android.view.ScaleGestureDetector);
-    method public static deprecated void setQuickScaleEnabled(java.lang.Object, boolean);
-    method public static void setQuickScaleEnabled(android.view.ScaleGestureDetector, boolean);
+    method @Deprecated public static boolean isQuickScaleEnabled(Object!);
+    method public static boolean isQuickScaleEnabled(android.view.ScaleGestureDetector!);
+    method @Deprecated public static void setQuickScaleEnabled(Object!, boolean);
+    method public static void setQuickScaleEnabled(android.view.ScaleGestureDetector!, boolean);
   }
 
-  public abstract interface ScrollingView {
-    method public abstract int computeHorizontalScrollExtent();
-    method public abstract int computeHorizontalScrollOffset();
-    method public abstract int computeHorizontalScrollRange();
-    method public abstract int computeVerticalScrollExtent();
-    method public abstract int computeVerticalScrollOffset();
-    method public abstract int computeVerticalScrollRange();
+  public interface ScrollingView {
+    method public int computeHorizontalScrollExtent();
+    method public int computeHorizontalScrollOffset();
+    method public int computeHorizontalScrollRange();
+    method public int computeVerticalScrollExtent();
+    method public int computeVerticalScrollOffset();
+    method public int computeVerticalScrollRange();
   }
 
-  public abstract interface TintableBackgroundView {
-    method public abstract android.content.res.ColorStateList getSupportBackgroundTintList();
-    method public abstract android.graphics.PorterDuff.Mode getSupportBackgroundTintMode();
-    method public abstract void setSupportBackgroundTintList(android.content.res.ColorStateList);
-    method public abstract void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode);
+  public interface TintableBackgroundView {
+    method public android.content.res.ColorStateList? getSupportBackgroundTintList();
+    method public android.graphics.PorterDuff.Mode? getSupportBackgroundTintMode();
+    method public void setSupportBackgroundTintList(android.content.res.ColorStateList?);
+    method public void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode?);
   }
 
-  public final deprecated class VelocityTrackerCompat {
-    method public static deprecated float getXVelocity(android.view.VelocityTracker, int);
-    method public static deprecated float getYVelocity(android.view.VelocityTracker, int);
+  @Deprecated public final class VelocityTrackerCompat {
+    method @Deprecated public static float getXVelocity(android.view.VelocityTracker!, int);
+    method @Deprecated public static float getYVelocity(android.view.VelocityTracker!, int);
   }
 
   public class ViewCompat {
@@ -1873,64 +1874,64 @@
     method public static void addKeyboardNavigationClusters(android.view.View, java.util.Collection<android.view.View>, int);
     method public static void addOnUnhandledKeyEventListener(android.view.View, androidx.core.view.ViewCompat.OnUnhandledKeyEventListenerCompat);
     method public static androidx.core.view.ViewPropertyAnimatorCompat animate(android.view.View);
-    method public static deprecated boolean canScrollHorizontally(android.view.View, int);
-    method public static deprecated boolean canScrollVertically(android.view.View, int);
+    method @Deprecated public static boolean canScrollHorizontally(android.view.View!, int);
+    method @Deprecated public static boolean canScrollVertically(android.view.View!, int);
     method public static void cancelDragAndDrop(android.view.View);
-    method public static deprecated int combineMeasuredStates(int, int);
-    method public static androidx.core.view.WindowInsetsCompat dispatchApplyWindowInsets(android.view.View, androidx.core.view.WindowInsetsCompat);
+    method @Deprecated public static int combineMeasuredStates(int, int);
+    method public static androidx.core.view.WindowInsetsCompat! dispatchApplyWindowInsets(android.view.View, androidx.core.view.WindowInsetsCompat!);
     method public static void dispatchFinishTemporaryDetach(android.view.View);
     method public static boolean dispatchNestedFling(android.view.View, float, float, boolean);
     method public static boolean dispatchNestedPreFling(android.view.View, float, float);
-    method public static boolean dispatchNestedPreScroll(android.view.View, int, int, int[], int[]);
-    method public static boolean dispatchNestedPreScroll(android.view.View, int, int, int[], int[], int);
-    method public static boolean dispatchNestedScroll(android.view.View, int, int, int, int, int[]);
-    method public static void dispatchNestedScroll(android.view.View, int, int, int, int, int[], int, int[]);
-    method public static boolean dispatchNestedScroll(android.view.View, int, int, int, int, int[], int);
+    method public static boolean dispatchNestedPreScroll(android.view.View, int, int, int[]?, int[]?);
+    method public static boolean dispatchNestedPreScroll(android.view.View, int, int, int[]?, int[]?, int);
+    method public static boolean dispatchNestedScroll(android.view.View, int, int, int, int, int[]?);
+    method public static void dispatchNestedScroll(android.view.View, int, int, int, int, int[]?, int, int[]);
+    method public static boolean dispatchNestedScroll(android.view.View, int, int, int, int, int[]?, int);
     method public static void dispatchStartTemporaryDetach(android.view.View);
-    method public static void enableAccessibleClickableSpanSupport(android.view.View);
+    method public static void enableAccessibleClickableSpanSupport(android.view.View!);
     method public static int generateViewId();
-    method public static androidx.core.view.AccessibilityDelegateCompat getAccessibilityDelegate(android.view.View);
+    method public static androidx.core.view.AccessibilityDelegateCompat? getAccessibilityDelegate(android.view.View);
     method public static int getAccessibilityLiveRegion(android.view.View);
-    method public static androidx.core.view.accessibility.AccessibilityNodeProviderCompat getAccessibilityNodeProvider(android.view.View);
-    method public static java.lang.CharSequence getAccessibilityPaneTitle(android.view.View);
-    method public static deprecated float getAlpha(android.view.View);
-    method public static android.content.res.ColorStateList getBackgroundTintList(android.view.View);
-    method public static android.graphics.PorterDuff.Mode getBackgroundTintMode(android.view.View);
-    method public static android.graphics.Rect getClipBounds(android.view.View);
-    method public static android.view.Display getDisplay(android.view.View);
+    method public static androidx.core.view.accessibility.AccessibilityNodeProviderCompat! getAccessibilityNodeProvider(android.view.View);
+    method @UiThread public static CharSequence! getAccessibilityPaneTitle(android.view.View!);
+    method @Deprecated public static float getAlpha(android.view.View!);
+    method public static android.content.res.ColorStateList! getBackgroundTintList(android.view.View);
+    method public static android.graphics.PorterDuff.Mode! getBackgroundTintMode(android.view.View);
+    method public static android.graphics.Rect? getClipBounds(android.view.View);
+    method public static android.view.Display? getDisplay(android.view.View);
     method public static float getElevation(android.view.View);
     method public static boolean getFitsSystemWindows(android.view.View);
     method public static int getImportantForAccessibility(android.view.View);
     method public static int getImportantForAutofill(android.view.View);
     method public static int getLabelFor(android.view.View);
-    method public static deprecated int getLayerType(android.view.View);
+    method @Deprecated public static int getLayerType(android.view.View!);
     method public static int getLayoutDirection(android.view.View);
-    method public static deprecated android.graphics.Matrix getMatrix(android.view.View);
-    method public static deprecated int getMeasuredHeightAndState(android.view.View);
-    method public static deprecated int getMeasuredState(android.view.View);
-    method public static deprecated int getMeasuredWidthAndState(android.view.View);
+    method @Deprecated public static android.graphics.Matrix? getMatrix(android.view.View!);
+    method @Deprecated public static int getMeasuredHeightAndState(android.view.View!);
+    method @Deprecated public static int getMeasuredState(android.view.View!);
+    method @Deprecated public static int getMeasuredWidthAndState(android.view.View!);
     method public static int getMinimumHeight(android.view.View);
     method public static int getMinimumWidth(android.view.View);
     method public static int getNextClusterForwardId(android.view.View);
-    method public static deprecated int getOverScrollMode(android.view.View);
-    method public static int getPaddingEnd(android.view.View);
-    method public static int getPaddingStart(android.view.View);
-    method public static android.view.ViewParent getParentForAccessibility(android.view.View);
-    method public static deprecated float getPivotX(android.view.View);
-    method public static deprecated float getPivotY(android.view.View);
-    method public static deprecated float getRotation(android.view.View);
-    method public static deprecated float getRotationX(android.view.View);
-    method public static deprecated float getRotationY(android.view.View);
-    method public static deprecated float getScaleX(android.view.View);
-    method public static deprecated float getScaleY(android.view.View);
+    method @Deprecated public static int getOverScrollMode(android.view.View!);
+    method @Px public static int getPaddingEnd(android.view.View);
+    method @Px public static int getPaddingStart(android.view.View);
+    method public static android.view.ViewParent! getParentForAccessibility(android.view.View);
+    method @Deprecated public static float getPivotX(android.view.View!);
+    method @Deprecated public static float getPivotY(android.view.View!);
+    method @Deprecated public static float getRotation(android.view.View!);
+    method @Deprecated public static float getRotationX(android.view.View!);
+    method @Deprecated public static float getRotationY(android.view.View!);
+    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 public static java.lang.String getTransitionName(android.view.View);
-    method public static deprecated float getTranslationX(android.view.View);
-    method public static deprecated float getTranslationY(android.view.View);
+    method public static String? getTransitionName(android.view.View);
+    method @Deprecated public static float getTranslationX(android.view.View!);
+    method @Deprecated public static float getTranslationY(android.view.View!);
     method public static float getTranslationZ(android.view.View);
     method public static int getWindowSystemUiVisibility(android.view.View);
-    method public static deprecated float getX(android.view.View);
-    method public static deprecated float getY(android.view.View);
+    method @Deprecated public static float getX(android.view.View!);
+    method @Deprecated public static float getY(android.view.View!);
     method public static float getZ(android.view.View);
     method public static boolean hasAccessibilityDelegate(android.view.View);
     method public static boolean hasExplicitFocusable(android.view.View);
@@ -1939,7 +1940,7 @@
     method public static boolean hasOnClickListeners(android.view.View);
     method public static boolean hasOverlappingRendering(android.view.View);
     method public static boolean hasTransientState(android.view.View);
-    method public static boolean isAccessibilityHeading(android.view.View);
+    method @UiThread public static boolean isAccessibilityHeading(android.view.View!);
     method public static boolean isAttachedToWindow(android.view.View);
     method public static boolean isFocusedByDefault(android.view.View);
     method public static boolean isImportantForAccessibility(android.view.View);
@@ -1949,81 +1950,81 @@
     method public static boolean isLaidOut(android.view.View);
     method public static boolean isLayoutDirectionResolved(android.view.View);
     method public static boolean isNestedScrollingEnabled(android.view.View);
-    method public static deprecated boolean isOpaque(android.view.View);
+    method @Deprecated public static boolean isOpaque(android.view.View!);
     method public static boolean isPaddingRelative(android.view.View);
-    method public static boolean isScreenReaderFocusable(android.view.View);
-    method public static deprecated void jumpDrawablesToCurrentState(android.view.View);
-    method public static android.view.View keyboardNavigationClusterSearch(android.view.View, android.view.View, int);
+    method @UiThread public static boolean isScreenReaderFocusable(android.view.View!);
+    method @Deprecated public static void jumpDrawablesToCurrentState(android.view.View!);
+    method public static android.view.View! keyboardNavigationClusterSearch(android.view.View, android.view.View!, int);
     method public static void offsetLeftAndRight(android.view.View, int);
     method public static void offsetTopAndBottom(android.view.View, int);
-    method public static androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View, androidx.core.view.WindowInsetsCompat);
-    method public static deprecated void onInitializeAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
-    method public static void onInitializeAccessibilityNodeInfo(android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat);
-    method public static deprecated void onPopulateAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
-    method public static boolean performAccessibilityAction(android.view.View, int, android.os.Bundle);
+    method public static androidx.core.view.WindowInsetsCompat! onApplyWindowInsets(android.view.View, androidx.core.view.WindowInsetsCompat!);
+    method @Deprecated public static void onInitializeAccessibilityEvent(android.view.View!, android.view.accessibility.AccessibilityEvent!);
+    method public static void onInitializeAccessibilityNodeInfo(android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat!);
+    method @Deprecated public static void onPopulateAccessibilityEvent(android.view.View!, android.view.accessibility.AccessibilityEvent!);
+    method public static boolean performAccessibilityAction(android.view.View, int, android.os.Bundle!);
     method public static void postInvalidateOnAnimation(android.view.View);
     method public static void postInvalidateOnAnimation(android.view.View, int, int, int, int);
-    method public static void postOnAnimation(android.view.View, java.lang.Runnable);
-    method public static void postOnAnimationDelayed(android.view.View, java.lang.Runnable, long);
+    method public static void postOnAnimation(android.view.View, Runnable!);
+    method public static void postOnAnimationDelayed(android.view.View, Runnable!, long);
     method public static void removeOnUnhandledKeyEventListener(android.view.View, androidx.core.view.ViewCompat.OnUnhandledKeyEventListenerCompat);
     method public static void requestApplyInsets(android.view.View);
-    method public static <T extends android.view.View> T requireViewById(android.view.View, int);
-    method public static deprecated int resolveSizeAndState(int, int, int);
+    method public static <T extends android.view.View> T requireViewById(android.view.View, @IdRes int);
+    method @Deprecated public static int resolveSizeAndState(int, int, int);
     method public static boolean restoreDefaultFocus(android.view.View);
-    method public static void setAccessibilityDelegate(android.view.View, androidx.core.view.AccessibilityDelegateCompat);
-    method public static void setAccessibilityHeading(android.view.View, boolean);
+    method public static void setAccessibilityDelegate(android.view.View, androidx.core.view.AccessibilityDelegateCompat!);
+    method @UiThread public static void setAccessibilityHeading(android.view.View!, boolean);
     method public static void setAccessibilityLiveRegion(android.view.View, int);
-    method public static void setAccessibilityPaneTitle(android.view.View, java.lang.CharSequence);
-    method public static deprecated void setActivated(android.view.View, boolean);
-    method public static deprecated void setAlpha(android.view.View, float);
-    method public static void setAutofillHints(android.view.View, java.lang.String...);
-    method public static void setBackground(android.view.View, android.graphics.drawable.Drawable);
-    method public static void setBackgroundTintList(android.view.View, android.content.res.ColorStateList);
-    method public static void setBackgroundTintMode(android.view.View, android.graphics.PorterDuff.Mode);
-    method public static deprecated void setChildrenDrawingOrderEnabled(android.view.ViewGroup, boolean);
-    method public static void setClipBounds(android.view.View, android.graphics.Rect);
+    method @UiThread public static void setAccessibilityPaneTitle(android.view.View!, CharSequence!);
+    method @Deprecated public static void setActivated(android.view.View!, boolean);
+    method @Deprecated public static void setAlpha(android.view.View!, @FloatRange(from=0.0, to=1.0) float);
+    method public static void setAutofillHints(android.view.View, java.lang.String...?);
+    method public static void setBackground(android.view.View, android.graphics.drawable.Drawable?);
+    method public static void setBackgroundTintList(android.view.View, android.content.res.ColorStateList!);
+    method public static void setBackgroundTintMode(android.view.View, android.graphics.PorterDuff.Mode!);
+    method @Deprecated public static void setChildrenDrawingOrderEnabled(android.view.ViewGroup!, boolean);
+    method public static void setClipBounds(android.view.View, android.graphics.Rect!);
     method public static void setElevation(android.view.View, float);
-    method public static deprecated void setFitsSystemWindows(android.view.View, boolean);
+    method @Deprecated public static void setFitsSystemWindows(android.view.View!, boolean);
     method public static void setFocusedByDefault(android.view.View, boolean);
     method public static void setHasTransientState(android.view.View, boolean);
     method public static void setImportantForAccessibility(android.view.View, int);
     method public static void setImportantForAutofill(android.view.View, int);
     method public static void setKeyboardNavigationCluster(android.view.View, boolean);
-    method public static void setLabelFor(android.view.View, int);
-    method public static void setLayerPaint(android.view.View, android.graphics.Paint);
-    method public static deprecated void setLayerType(android.view.View, int, android.graphics.Paint);
+    method public static void setLabelFor(android.view.View, @IdRes int);
+    method public static void setLayerPaint(android.view.View, android.graphics.Paint!);
+    method @Deprecated public static void setLayerType(android.view.View!, int, android.graphics.Paint!);
     method public static void setLayoutDirection(android.view.View, int);
     method public static void setNestedScrollingEnabled(android.view.View, boolean);
     method public static void setNextClusterForwardId(android.view.View, int);
-    method public static void setOnApplyWindowInsetsListener(android.view.View, androidx.core.view.OnApplyWindowInsetsListener);
-    method public static deprecated void setOverScrollMode(android.view.View, int);
-    method public static void setPaddingRelative(android.view.View, int, int, int, int);
-    method public static deprecated void setPivotX(android.view.View, float);
-    method public static deprecated void setPivotY(android.view.View, float);
-    method public static void setPointerIcon(android.view.View, androidx.core.view.PointerIconCompat);
-    method public static deprecated void setRotation(android.view.View, float);
-    method public static deprecated void setRotationX(android.view.View, float);
-    method public static deprecated void setRotationY(android.view.View, float);
-    method public static deprecated void setSaveFromParentEnabled(android.view.View, boolean);
-    method public static deprecated void setScaleX(android.view.View, float);
-    method public static deprecated void setScaleY(android.view.View, float);
-    method public static void setScreenReaderFocusable(android.view.View, boolean);
+    method public static void setOnApplyWindowInsetsListener(android.view.View, androidx.core.view.OnApplyWindowInsetsListener!);
+    method @Deprecated public static void setOverScrollMode(android.view.View!, int);
+    method public static void setPaddingRelative(android.view.View, @Px int, @Px int, @Px int, @Px int);
+    method @Deprecated public static void setPivotX(android.view.View!, float);
+    method @Deprecated public static void setPivotY(android.view.View!, float);
+    method public static void setPointerIcon(android.view.View, androidx.core.view.PointerIconCompat!);
+    method @Deprecated public static void setRotation(android.view.View!, float);
+    method @Deprecated public static void setRotationX(android.view.View!, float);
+    method @Deprecated public static void setRotationY(android.view.View!, float);
+    method @Deprecated public static void setSaveFromParentEnabled(android.view.View!, boolean);
+    method @Deprecated public static void setScaleX(android.view.View!, float);
+    method @Deprecated public static void setScaleY(android.view.View!, float);
+    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 public static void setTooltipText(android.view.View, java.lang.CharSequence);
-    method public static void setTransitionName(android.view.View, java.lang.String);
-    method public static deprecated void setTranslationX(android.view.View, float);
-    method public static deprecated void setTranslationY(android.view.View, float);
+    method public static void setTooltipText(android.view.View, CharSequence?);
+    method public static void setTransitionName(android.view.View, String!);
+    method @Deprecated public static void setTranslationX(android.view.View!, float);
+    method @Deprecated public static void setTranslationY(android.view.View!, float);
     method public static void setTranslationZ(android.view.View, float);
-    method public static deprecated void setX(android.view.View, float);
-    method public static deprecated void setY(android.view.View, float);
+    method @Deprecated public static void setX(android.view.View!, float);
+    method @Deprecated public static void setY(android.view.View!, float);
     method public static void setZ(android.view.View, float);
-    method public static boolean startDragAndDrop(android.view.View, android.content.ClipData, android.view.View.DragShadowBuilder, java.lang.Object, int);
+    method public static boolean startDragAndDrop(android.view.View, android.content.ClipData!, android.view.View.DragShadowBuilder!, Object!, int);
     method public static boolean startNestedScroll(android.view.View, int);
     method public static boolean startNestedScroll(android.view.View, int, int);
     method public static void stopNestedScroll(android.view.View);
     method public static void stopNestedScroll(android.view.View, int);
-    method public static void updateDragShadow(android.view.View, android.view.View.DragShadowBuilder);
+    method public static void updateDragShadow(android.view.View, android.view.View.DragShadowBuilder!);
     field public static final int ACCESSIBILITY_LIVE_REGION_ASSERTIVE = 2; // 0x2
     field public static final int ACCESSIBILITY_LIVE_REGION_NONE = 0; // 0x0
     field public static final int ACCESSIBILITY_LIVE_REGION_POLITE = 1; // 0x1
@@ -2031,20 +2032,20 @@
     field public static final int IMPORTANT_FOR_ACCESSIBILITY_NO = 2; // 0x2
     field public static final int IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS = 4; // 0x4
     field public static final int IMPORTANT_FOR_ACCESSIBILITY_YES = 1; // 0x1
-    field public static final deprecated int LAYER_TYPE_HARDWARE = 2; // 0x2
-    field public static final deprecated int LAYER_TYPE_NONE = 0; // 0x0
-    field public static final deprecated int LAYER_TYPE_SOFTWARE = 1; // 0x1
+    field @Deprecated public static final int LAYER_TYPE_HARDWARE = 2; // 0x2
+    field @Deprecated public static final int LAYER_TYPE_NONE = 0; // 0x0
+    field @Deprecated public static final int LAYER_TYPE_SOFTWARE = 1; // 0x1
     field public static final int LAYOUT_DIRECTION_INHERIT = 2; // 0x2
     field public static final int LAYOUT_DIRECTION_LOCALE = 3; // 0x3
     field public static final int LAYOUT_DIRECTION_LTR = 0; // 0x0
     field public static final int LAYOUT_DIRECTION_RTL = 1; // 0x1
-    field public static final deprecated int MEASURED_HEIGHT_STATE_SHIFT = 16; // 0x10
-    field public static final deprecated int MEASURED_SIZE_MASK = 16777215; // 0xffffff
-    field public static final deprecated int MEASURED_STATE_MASK = -16777216; // 0xff000000
-    field public static final deprecated int MEASURED_STATE_TOO_SMALL = 16777216; // 0x1000000
-    field public static final deprecated int OVER_SCROLL_ALWAYS = 0; // 0x0
-    field public static final deprecated int OVER_SCROLL_IF_CONTENT_SCROLLS = 1; // 0x1
-    field public static final deprecated int OVER_SCROLL_NEVER = 2; // 0x2
+    field @Deprecated public static final int MEASURED_HEIGHT_STATE_SHIFT = 16; // 0x10
+    field @Deprecated public static final int MEASURED_SIZE_MASK = 16777215; // 0xffffff
+    field @Deprecated public static final int MEASURED_STATE_MASK = -16777216; // 0xff000000
+    field @Deprecated public static final int MEASURED_STATE_TOO_SMALL = 16777216; // 0x1000000
+    field @Deprecated public static final int OVER_SCROLL_ALWAYS = 0; // 0x0
+    field @Deprecated public static final int OVER_SCROLL_IF_CONTENT_SCROLLS = 1; // 0x1
+    field @Deprecated public static final int OVER_SCROLL_NEVER = 2; // 0x2
     field public static final int SCROLL_AXIS_HORIZONTAL = 1; // 0x1
     field public static final int SCROLL_AXIS_NONE = 0; // 0x0
     field public static final int SCROLL_AXIS_VERTICAL = 2; // 0x2
@@ -2058,119 +2059,119 @@
     field public static final int TYPE_TOUCH = 0; // 0x0
   }
 
-  public static abstract interface ViewCompat.OnUnhandledKeyEventListenerCompat {
-    method public abstract boolean onUnhandledKeyEvent(android.view.View, android.view.KeyEvent);
+  public static interface ViewCompat.OnUnhandledKeyEventListenerCompat {
+    method public boolean onUnhandledKeyEvent(android.view.View!, android.view.KeyEvent!);
   }
 
   public final class ViewConfigurationCompat {
     method public static float getScaledHorizontalScrollFactor(android.view.ViewConfiguration, android.content.Context);
-    method public static int getScaledHoverSlop(android.view.ViewConfiguration);
-    method public static deprecated int getScaledPagingTouchSlop(android.view.ViewConfiguration);
+    method public static int getScaledHoverSlop(android.view.ViewConfiguration!);
+    method @Deprecated public static int getScaledPagingTouchSlop(android.view.ViewConfiguration!);
     method public static float getScaledVerticalScrollFactor(android.view.ViewConfiguration, android.content.Context);
-    method public static deprecated boolean hasPermanentMenuKey(android.view.ViewConfiguration);
-    method public static boolean shouldShowMenuShortcutsWhenKeyboardPresent(android.view.ViewConfiguration, android.content.Context);
+    method @Deprecated public static boolean hasPermanentMenuKey(android.view.ViewConfiguration!);
+    method public static boolean shouldShowMenuShortcutsWhenKeyboardPresent(android.view.ViewConfiguration!, android.content.Context);
   }
 
   public final class ViewGroupCompat {
     method public static int getLayoutMode(android.view.ViewGroup);
     method public static int getNestedScrollAxes(android.view.ViewGroup);
     method public static boolean isTransitionGroup(android.view.ViewGroup);
-    method public static deprecated boolean onRequestSendAccessibilityEvent(android.view.ViewGroup, android.view.View, android.view.accessibility.AccessibilityEvent);
+    method @Deprecated public static boolean onRequestSendAccessibilityEvent(android.view.ViewGroup!, android.view.View!, android.view.accessibility.AccessibilityEvent!);
     method public static void setLayoutMode(android.view.ViewGroup, int);
-    method public static deprecated void setMotionEventSplittingEnabled(android.view.ViewGroup, boolean);
+    method @Deprecated public static void setMotionEventSplittingEnabled(android.view.ViewGroup!, boolean);
     method public static void setTransitionGroup(android.view.ViewGroup, boolean);
     field public static final int LAYOUT_MODE_CLIP_BOUNDS = 0; // 0x0
     field public static final int LAYOUT_MODE_OPTICAL_BOUNDS = 1; // 0x1
   }
 
   public final class ViewParentCompat {
-    method public static void notifySubtreeAccessibilityStateChanged(android.view.ViewParent, android.view.View, android.view.View, int);
-    method public static boolean onNestedFling(android.view.ViewParent, android.view.View, float, float, boolean);
-    method public static boolean onNestedPreFling(android.view.ViewParent, android.view.View, float, float);
-    method public static void onNestedPreScroll(android.view.ViewParent, android.view.View, int, int, int[]);
-    method public static void onNestedPreScroll(android.view.ViewParent, android.view.View, int, int, int[], int);
-    method public static void onNestedScroll(android.view.ViewParent, android.view.View, int, int, int, int);
-    method public static void onNestedScroll(android.view.ViewParent, android.view.View, int, int, int, int, int);
-    method public static void onNestedScroll(android.view.ViewParent, android.view.View, int, int, int, int, int, int[]);
-    method public static void onNestedScrollAccepted(android.view.ViewParent, android.view.View, android.view.View, int);
-    method public static void onNestedScrollAccepted(android.view.ViewParent, android.view.View, android.view.View, int, int);
-    method public static boolean onStartNestedScroll(android.view.ViewParent, android.view.View, android.view.View, int);
-    method public static boolean onStartNestedScroll(android.view.ViewParent, android.view.View, android.view.View, int, int);
-    method public static void onStopNestedScroll(android.view.ViewParent, android.view.View);
-    method public static void onStopNestedScroll(android.view.ViewParent, android.view.View, int);
-    method public static deprecated boolean requestSendAccessibilityEvent(android.view.ViewParent, android.view.View, android.view.accessibility.AccessibilityEvent);
+    method public static void notifySubtreeAccessibilityStateChanged(android.view.ViewParent!, android.view.View!, android.view.View!, int);
+    method public static boolean onNestedFling(android.view.ViewParent!, android.view.View!, float, float, boolean);
+    method public static boolean onNestedPreFling(android.view.ViewParent!, android.view.View!, float, float);
+    method public static void onNestedPreScroll(android.view.ViewParent!, android.view.View!, int, int, int[]!);
+    method public static void onNestedPreScroll(android.view.ViewParent!, android.view.View!, int, int, int[]!, int);
+    method public static void onNestedScroll(android.view.ViewParent!, android.view.View!, int, int, int, int);
+    method public static void onNestedScroll(android.view.ViewParent!, android.view.View!, int, int, int, int, int);
+    method public static void onNestedScroll(android.view.ViewParent!, android.view.View!, int, int, int, int, int, int[]);
+    method public static void onNestedScrollAccepted(android.view.ViewParent!, android.view.View!, android.view.View!, int);
+    method public static void onNestedScrollAccepted(android.view.ViewParent!, android.view.View!, android.view.View!, int, int);
+    method public static boolean onStartNestedScroll(android.view.ViewParent!, android.view.View!, android.view.View!, int);
+    method public static boolean onStartNestedScroll(android.view.ViewParent!, android.view.View!, android.view.View!, int, int);
+    method public static void onStopNestedScroll(android.view.ViewParent!, android.view.View!);
+    method public static void onStopNestedScroll(android.view.ViewParent!, android.view.View!, int);
+    method @Deprecated public static boolean requestSendAccessibilityEvent(android.view.ViewParent!, android.view.View!, android.view.accessibility.AccessibilityEvent!);
   }
 
   public final class ViewPropertyAnimatorCompat {
-    method public androidx.core.view.ViewPropertyAnimatorCompat alpha(float);
-    method public androidx.core.view.ViewPropertyAnimatorCompat alphaBy(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! alpha(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! alphaBy(float);
     method public void cancel();
     method public long getDuration();
-    method public android.view.animation.Interpolator getInterpolator();
+    method public android.view.animation.Interpolator! getInterpolator();
     method public long getStartDelay();
-    method public androidx.core.view.ViewPropertyAnimatorCompat rotation(float);
-    method public androidx.core.view.ViewPropertyAnimatorCompat rotationBy(float);
-    method public androidx.core.view.ViewPropertyAnimatorCompat rotationX(float);
-    method public androidx.core.view.ViewPropertyAnimatorCompat rotationXBy(float);
-    method public androidx.core.view.ViewPropertyAnimatorCompat rotationY(float);
-    method public androidx.core.view.ViewPropertyAnimatorCompat rotationYBy(float);
-    method public androidx.core.view.ViewPropertyAnimatorCompat scaleX(float);
-    method public androidx.core.view.ViewPropertyAnimatorCompat scaleXBy(float);
-    method public androidx.core.view.ViewPropertyAnimatorCompat scaleY(float);
-    method public androidx.core.view.ViewPropertyAnimatorCompat scaleYBy(float);
-    method public androidx.core.view.ViewPropertyAnimatorCompat setDuration(long);
-    method public androidx.core.view.ViewPropertyAnimatorCompat setInterpolator(android.view.animation.Interpolator);
-    method public androidx.core.view.ViewPropertyAnimatorCompat setListener(androidx.core.view.ViewPropertyAnimatorListener);
-    method public androidx.core.view.ViewPropertyAnimatorCompat setStartDelay(long);
-    method public androidx.core.view.ViewPropertyAnimatorCompat setUpdateListener(androidx.core.view.ViewPropertyAnimatorUpdateListener);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! rotation(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! rotationBy(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! rotationX(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! rotationXBy(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! rotationY(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! rotationYBy(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! scaleX(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! scaleXBy(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! scaleY(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! scaleYBy(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! setDuration(long);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! setInterpolator(android.view.animation.Interpolator!);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! setListener(androidx.core.view.ViewPropertyAnimatorListener!);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! setStartDelay(long);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! setUpdateListener(androidx.core.view.ViewPropertyAnimatorUpdateListener!);
     method public void start();
-    method public androidx.core.view.ViewPropertyAnimatorCompat translationX(float);
-    method public androidx.core.view.ViewPropertyAnimatorCompat translationXBy(float);
-    method public androidx.core.view.ViewPropertyAnimatorCompat translationY(float);
-    method public androidx.core.view.ViewPropertyAnimatorCompat translationYBy(float);
-    method public androidx.core.view.ViewPropertyAnimatorCompat translationZ(float);
-    method public androidx.core.view.ViewPropertyAnimatorCompat translationZBy(float);
-    method public androidx.core.view.ViewPropertyAnimatorCompat withEndAction(java.lang.Runnable);
-    method public androidx.core.view.ViewPropertyAnimatorCompat withLayer();
-    method public androidx.core.view.ViewPropertyAnimatorCompat withStartAction(java.lang.Runnable);
-    method public androidx.core.view.ViewPropertyAnimatorCompat x(float);
-    method public androidx.core.view.ViewPropertyAnimatorCompat xBy(float);
-    method public androidx.core.view.ViewPropertyAnimatorCompat y(float);
-    method public androidx.core.view.ViewPropertyAnimatorCompat yBy(float);
-    method public androidx.core.view.ViewPropertyAnimatorCompat z(float);
-    method public androidx.core.view.ViewPropertyAnimatorCompat zBy(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! translationX(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! translationXBy(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! translationY(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! translationYBy(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! translationZ(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! translationZBy(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! withEndAction(Runnable!);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! withLayer();
+    method public androidx.core.view.ViewPropertyAnimatorCompat! withStartAction(Runnable!);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! x(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! xBy(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! y(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! yBy(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! z(float);
+    method public androidx.core.view.ViewPropertyAnimatorCompat! zBy(float);
   }
 
-  public abstract interface ViewPropertyAnimatorListener {
-    method public abstract void onAnimationCancel(android.view.View);
-    method public abstract void onAnimationEnd(android.view.View);
-    method public abstract void onAnimationStart(android.view.View);
+  public interface ViewPropertyAnimatorListener {
+    method public void onAnimationCancel(android.view.View!);
+    method public void onAnimationEnd(android.view.View!);
+    method public void onAnimationStart(android.view.View!);
   }
 
   public class ViewPropertyAnimatorListenerAdapter implements androidx.core.view.ViewPropertyAnimatorListener {
     ctor public ViewPropertyAnimatorListenerAdapter();
-    method public void onAnimationCancel(android.view.View);
-    method public void onAnimationEnd(android.view.View);
-    method public void onAnimationStart(android.view.View);
+    method public void onAnimationCancel(android.view.View!);
+    method public void onAnimationEnd(android.view.View!);
+    method public void onAnimationStart(android.view.View!);
   }
 
-  public abstract interface ViewPropertyAnimatorUpdateListener {
-    method public abstract void onAnimationUpdate(android.view.View);
+  public interface ViewPropertyAnimatorUpdateListener {
+    method public void onAnimationUpdate(android.view.View!);
   }
 
   public final class WindowCompat {
-    method public static <T extends android.view.View> T requireViewById(android.view.Window, int);
+    method public static <T extends android.view.View> T requireViewById(android.view.Window, @IdRes int);
     field public static final int FEATURE_ACTION_BAR = 8; // 0x8
     field public static final int FEATURE_ACTION_BAR_OVERLAY = 9; // 0x9
     field public static final int FEATURE_ACTION_MODE_OVERLAY = 10; // 0xa
   }
 
   public class WindowInsetsCompat {
-    ctor public WindowInsetsCompat(androidx.core.view.WindowInsetsCompat);
-    method public androidx.core.view.WindowInsetsCompat consumeDisplayCutout();
-    method public androidx.core.view.WindowInsetsCompat consumeStableInsets();
-    method public androidx.core.view.WindowInsetsCompat consumeSystemWindowInsets();
-    method public androidx.core.view.DisplayCutoutCompat getDisplayCutout();
+    ctor public WindowInsetsCompat(androidx.core.view.WindowInsetsCompat!);
+    method public androidx.core.view.WindowInsetsCompat! consumeDisplayCutout();
+    method public androidx.core.view.WindowInsetsCompat! consumeStableInsets();
+    method public androidx.core.view.WindowInsetsCompat! consumeSystemWindowInsets();
+    method public androidx.core.view.DisplayCutoutCompat? getDisplayCutout();
     method public int getStableInsetBottom();
     method public int getStableInsetLeft();
     method public int getStableInsetRight();
@@ -2184,8 +2185,8 @@
     method public boolean hasSystemWindowInsets();
     method public boolean isConsumed();
     method public boolean isRound();
-    method public androidx.core.view.WindowInsetsCompat replaceSystemWindowInsets(int, int, int, int);
-    method public androidx.core.view.WindowInsetsCompat replaceSystemWindowInsets(android.graphics.Rect);
+    method public androidx.core.view.WindowInsetsCompat! replaceSystemWindowInsets(int, int, int, int);
+    method public androidx.core.view.WindowInsetsCompat! replaceSystemWindowInsets(android.graphics.Rect!);
   }
 
 }
@@ -2193,20 +2194,20 @@
 package androidx.core.view.accessibility {
 
   public final class AccessibilityClickableSpanCompat extends android.text.style.ClickableSpan {
-    method public void onClick(android.view.View);
+    method public void onClick(android.view.View!);
   }
 
   public final class AccessibilityEventCompat {
-    method public static deprecated void appendRecord(android.view.accessibility.AccessibilityEvent, androidx.core.view.accessibility.AccessibilityRecordCompat);
-    method public static deprecated 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 public static int getMovementGranularity(android.view.accessibility.AccessibilityEvent);
-    method public static deprecated androidx.core.view.accessibility.AccessibilityRecordCompat getRecord(android.view.accessibility.AccessibilityEvent, int);
-    method public static deprecated 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 setMovementGranularity(android.view.accessibility.AccessibilityEvent, int);
+    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 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 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
@@ -2219,89 +2220,89 @@
     field public static final int TYPE_ASSIST_READING_CONTEXT = 16777216; // 0x1000000
     field public static final int TYPE_GESTURE_DETECTION_END = 524288; // 0x80000
     field public static final int TYPE_GESTURE_DETECTION_START = 262144; // 0x40000
-    field public static final deprecated int TYPE_TOUCH_EXPLORATION_GESTURE_END = 1024; // 0x400
-    field public static final deprecated int TYPE_TOUCH_EXPLORATION_GESTURE_START = 512; // 0x200
+    field @Deprecated public static final int TYPE_TOUCH_EXPLORATION_GESTURE_END = 1024; // 0x400
+    field @Deprecated public static final int TYPE_TOUCH_EXPLORATION_GESTURE_START = 512; // 0x200
     field public static final int TYPE_TOUCH_INTERACTION_END = 2097152; // 0x200000
     field public static final int TYPE_TOUCH_INTERACTION_START = 1048576; // 0x100000
     field public static final int TYPE_VIEW_ACCESSIBILITY_FOCUSED = 32768; // 0x8000
     field public static final int TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED = 65536; // 0x10000
     field public static final int TYPE_VIEW_CONTEXT_CLICKED = 8388608; // 0x800000
-    field public static final deprecated int TYPE_VIEW_HOVER_ENTER = 128; // 0x80
-    field public static final deprecated int TYPE_VIEW_HOVER_EXIT = 256; // 0x100
-    field public static final deprecated int TYPE_VIEW_SCROLLED = 4096; // 0x1000
-    field public static final deprecated int TYPE_VIEW_TEXT_SELECTION_CHANGED = 8192; // 0x2000
+    field @Deprecated public static final int TYPE_VIEW_HOVER_ENTER = 128; // 0x80
+    field @Deprecated public static final int TYPE_VIEW_HOVER_EXIT = 256; // 0x100
+    field @Deprecated public static final int TYPE_VIEW_SCROLLED = 4096; // 0x1000
+    field @Deprecated public static final int TYPE_VIEW_TEXT_SELECTION_CHANGED = 8192; // 0x2000
     field public static final int TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY = 131072; // 0x20000
     field public static final int TYPE_WINDOWS_CHANGED = 4194304; // 0x400000
-    field public static final deprecated int TYPE_WINDOW_CONTENT_CHANGED = 2048; // 0x800
+    field @Deprecated public static final int TYPE_WINDOW_CONTENT_CHANGED = 2048; // 0x800
   }
 
   public final class AccessibilityManagerCompat {
-    method public static deprecated 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);
-    method public static deprecated java.util.List<android.accessibilityservice.AccessibilityServiceInfo> getEnabledAccessibilityServiceList(android.view.accessibility.AccessibilityManager, int);
-    method public static deprecated java.util.List<android.accessibilityservice.AccessibilityServiceInfo> getInstalledAccessibilityServiceList(android.view.accessibility.AccessibilityManager);
-    method public static deprecated boolean isTouchExplorationEnabled(android.view.accessibility.AccessibilityManager);
-    method public static deprecated boolean removeAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager, androidx.core.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener);
-    method public static boolean removeTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager, androidx.core.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener);
+    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!);
+    method @Deprecated public static java.util.List<android.accessibilityservice.AccessibilityServiceInfo>! getEnabledAccessibilityServiceList(android.view.accessibility.AccessibilityManager!, int);
+    method @Deprecated public static java.util.List<android.accessibilityservice.AccessibilityServiceInfo>! getInstalledAccessibilityServiceList(android.view.accessibility.AccessibilityManager!);
+    method @Deprecated public static boolean isTouchExplorationEnabled(android.view.accessibility.AccessibilityManager!);
+    method @Deprecated public static boolean removeAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager!, androidx.core.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener!);
+    method public static boolean removeTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager!, androidx.core.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener!);
   }
 
-  public static abstract deprecated interface AccessibilityManagerCompat.AccessibilityStateChangeListener {
-    method public abstract deprecated void onAccessibilityStateChanged(boolean);
+  @Deprecated public static interface AccessibilityManagerCompat.AccessibilityStateChangeListener {
+    method @Deprecated public void onAccessibilityStateChanged(boolean);
   }
 
-  public static abstract deprecated class AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat implements androidx.core.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener {
-    ctor public AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat();
+  @Deprecated public abstract static class AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat implements androidx.core.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener {
+    ctor @Deprecated public AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat();
   }
 
-  public static abstract interface AccessibilityManagerCompat.TouchExplorationStateChangeListener {
-    method public abstract void onTouchExplorationStateChanged(boolean);
+  public static interface AccessibilityManagerCompat.TouchExplorationStateChangeListener {
+    method public void onTouchExplorationStateChanged(boolean);
   }
 
   public class AccessibilityNodeInfoCompat {
-    ctor public deprecated AccessibilityNodeInfoCompat(java.lang.Object);
+    ctor @Deprecated public AccessibilityNodeInfoCompat(Object!);
     method public void addAction(int);
-    method public void addAction(androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat);
-    method public void addChild(android.view.View);
-    method public void addChild(android.view.View, int);
+    method public void addAction(androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat!);
+    method public void addChild(android.view.View!);
+    method public void addChild(android.view.View!, int);
     method public boolean canOpenPopup();
-    method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat> findAccessibilityNodeInfosByText(java.lang.String);
-    method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat> findAccessibilityNodeInfosByViewId(java.lang.String);
-    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat findFocus(int);
-    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat focusSearch(int);
-    method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat> getActionList();
+    method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat>! findAccessibilityNodeInfosByText(String!);
+    method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat>! findAccessibilityNodeInfosByViewId(String!);
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! findFocus(int);
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! focusSearch(int);
+    method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat>! getActionList();
     method public int getActions();
-    method public void getBoundsInParent(android.graphics.Rect);
-    method public void getBoundsInScreen(android.graphics.Rect);
-    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat getChild(int);
+    method public void getBoundsInParent(android.graphics.Rect!);
+    method public void getBoundsInScreen(android.graphics.Rect!);
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getChild(int);
     method public int getChildCount();
-    method public java.lang.CharSequence getClassName();
-    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat getCollectionInfo();
-    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat getCollectionItemInfo();
-    method public java.lang.CharSequence getContentDescription();
+    method public CharSequence! getClassName();
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat! getCollectionInfo();
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat! getCollectionItemInfo();
+    method public CharSequence! getContentDescription();
     method public int getDrawingOrder();
-    method public java.lang.CharSequence getError();
-    method public android.os.Bundle getExtras();
-    method public java.lang.CharSequence getHintText();
-    method public deprecated java.lang.Object getInfo();
+    method public CharSequence! getError();
+    method public android.os.Bundle! getExtras();
+    method public CharSequence? getHintText();
+    method @Deprecated public Object! getInfo();
     method public int getInputType();
-    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat getLabelFor();
-    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat getLabeledBy();
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getLabelFor();
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getLabeledBy();
     method public int getLiveRegion();
     method public int getMaxTextLength();
     method public int getMovementGranularities();
-    method public java.lang.CharSequence getPackageName();
-    method public java.lang.CharSequence getPaneTitle();
-    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat getParent();
-    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat getRangeInfo();
-    method public java.lang.CharSequence getRoleDescription();
-    method public java.lang.CharSequence getText();
+    method public CharSequence! getPackageName();
+    method public CharSequence? getPaneTitle();
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getParent();
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! getRangeInfo();
+    method public CharSequence? getRoleDescription();
+    method public CharSequence! getText();
     method public int getTextSelectionEnd();
     method public int getTextSelectionStart();
-    method public java.lang.CharSequence getTooltipText();
-    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat getTraversalAfter();
-    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat getTraversalBefore();
-    method public java.lang.String getViewIdResourceName();
-    method public androidx.core.view.accessibility.AccessibilityWindowInfoCompat getWindow();
+    method public CharSequence? getTooltipText();
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getTraversalAfter();
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getTraversalBefore();
+    method public String! getViewIdResourceName();
+    method public androidx.core.view.accessibility.AccessibilityWindowInfoCompat! getWindow();
     method public int getWindowId();
     method public boolean isAccessibilityFocused();
     method public boolean isCheckable();
@@ -2324,86 +2325,86 @@
     method public boolean isSelected();
     method public boolean isShowingHintText();
     method public boolean isVisibleToUser();
-    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat obtain(android.view.View);
-    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat obtain(android.view.View, int);
-    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat obtain();
-    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat obtain(androidx.core.view.accessibility.AccessibilityNodeInfoCompat);
+    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! obtain(android.view.View!);
+    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! obtain(android.view.View!, int);
+    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! obtain();
+    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! obtain(androidx.core.view.accessibility.AccessibilityNodeInfoCompat!);
     method public boolean performAction(int);
-    method public boolean performAction(int, android.os.Bundle);
+    method public boolean performAction(int, android.os.Bundle!);
     method public void recycle();
     method public boolean refresh();
-    method public boolean removeAction(androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat);
-    method public boolean removeChild(android.view.View);
-    method public boolean removeChild(android.view.View, int);
+    method public boolean removeAction(androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat!);
+    method public boolean removeChild(android.view.View!);
+    method public boolean removeChild(android.view.View!, int);
     method public void setAccessibilityFocused(boolean);
-    method public void setBoundsInParent(android.graphics.Rect);
-    method public void setBoundsInScreen(android.graphics.Rect);
+    method public void setBoundsInParent(android.graphics.Rect!);
+    method public void setBoundsInScreen(android.graphics.Rect!);
     method public void setCanOpenPopup(boolean);
     method public void setCheckable(boolean);
     method public void setChecked(boolean);
-    method public void setClassName(java.lang.CharSequence);
-    method public deprecated void setClickable(boolean);
-    method public void setCollectionInfo(java.lang.Object);
-    method public void setCollectionItemInfo(java.lang.Object);
-    method public void setContentDescription(java.lang.CharSequence);
+    method public void setClassName(CharSequence!);
+    method @Deprecated public void setClickable(boolean);
+    method public void setCollectionInfo(Object!);
+    method public void setCollectionItemInfo(Object!);
+    method public void setContentDescription(CharSequence!);
     method public void setContentInvalid(boolean);
-    method public deprecated void setContextClickable(boolean);
+    method @Deprecated public void setContextClickable(boolean);
     method public void setDismissable(boolean);
     method public void setDrawingOrder(int);
     method public void setEditable(boolean);
     method public void setEnabled(boolean);
-    method public void setError(java.lang.CharSequence);
-    method public deprecated void setFocusable(boolean);
+    method public void setError(CharSequence!);
+    method @Deprecated public void setFocusable(boolean);
     method public void setFocused(boolean);
     method public void setHeading(boolean);
-    method public void setHintText(java.lang.CharSequence);
+    method public void setHintText(CharSequence?);
     method public void setImportantForAccessibility(boolean);
     method public void setInputType(int);
-    method public void setLabelFor(android.view.View);
-    method public void setLabelFor(android.view.View, int);
-    method public void setLabeledBy(android.view.View);
-    method public void setLabeledBy(android.view.View, int);
+    method public void setLabelFor(android.view.View!);
+    method public void setLabelFor(android.view.View!, int);
+    method public void setLabeledBy(android.view.View!);
+    method public void setLabeledBy(android.view.View!, int);
     method public void setLiveRegion(int);
-    method public deprecated void setLongClickable(boolean);
+    method @Deprecated public void setLongClickable(boolean);
     method public void setMaxTextLength(int);
     method public void setMovementGranularities(int);
     method public void setMultiLine(boolean);
-    method public void setPackageName(java.lang.CharSequence);
-    method public void setPaneTitle(java.lang.CharSequence);
-    method public void setParent(android.view.View);
-    method public void setParent(android.view.View, int);
+    method public void setPackageName(CharSequence!);
+    method public void setPaneTitle(CharSequence?);
+    method public void setParent(android.view.View!);
+    method public void setParent(android.view.View!, int);
     method public void setPassword(boolean);
-    method public void setRangeInfo(androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat);
-    method public void setRoleDescription(java.lang.CharSequence);
+    method public void setRangeInfo(androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat!);
+    method public void setRoleDescription(CharSequence?);
     method public void setScreenReaderFocusable(boolean);
-    method public deprecated void setScrollable(boolean);
+    method @Deprecated public void setScrollable(boolean);
     method public void setSelected(boolean);
     method public void setShowingHintText(boolean);
-    method public void setSource(android.view.View);
-    method public void setSource(android.view.View, int);
-    method public void setText(java.lang.CharSequence);
+    method public void setSource(android.view.View!);
+    method public void setSource(android.view.View!, int);
+    method public void setText(CharSequence!);
     method public void setTextSelection(int, int);
-    method public void setTooltipText(java.lang.CharSequence);
-    method public void setTraversalAfter(android.view.View);
-    method public void setTraversalAfter(android.view.View, int);
-    method public void setTraversalBefore(android.view.View);
-    method public void setTraversalBefore(android.view.View, int);
-    method public void setViewIdResourceName(java.lang.String);
+    method public void setTooltipText(CharSequence?);
+    method public void setTraversalAfter(android.view.View!);
+    method public void setTraversalAfter(android.view.View!, int);
+    method public void setTraversalBefore(android.view.View!);
+    method public void setTraversalBefore(android.view.View!, int);
+    method public void setViewIdResourceName(String!);
     method public void setVisibleToUser(boolean);
-    method public android.view.accessibility.AccessibilityNodeInfo unwrap();
-    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat wrap(android.view.accessibility.AccessibilityNodeInfo);
+    method public android.view.accessibility.AccessibilityNodeInfo! unwrap();
+    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! wrap(android.view.accessibility.AccessibilityNodeInfo);
     field public static final int ACTION_ACCESSIBILITY_FOCUS = 64; // 0x40
-    field public static final java.lang.String ACTION_ARGUMENT_COLUMN_INT = "android.view.accessibility.action.ARGUMENT_COLUMN_INT";
-    field public static final java.lang.String ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN = "ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN";
-    field public static final java.lang.String ACTION_ARGUMENT_HTML_ELEMENT_STRING = "ACTION_ARGUMENT_HTML_ELEMENT_STRING";
-    field public static final java.lang.String ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT = "ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT";
-    field public static final java.lang.String ACTION_ARGUMENT_MOVE_WINDOW_X = "ACTION_ARGUMENT_MOVE_WINDOW_X";
-    field public static final java.lang.String ACTION_ARGUMENT_MOVE_WINDOW_Y = "ACTION_ARGUMENT_MOVE_WINDOW_Y";
-    field public static final java.lang.String ACTION_ARGUMENT_PROGRESS_VALUE = "android.view.accessibility.action.ARGUMENT_PROGRESS_VALUE";
-    field public static final java.lang.String ACTION_ARGUMENT_ROW_INT = "android.view.accessibility.action.ARGUMENT_ROW_INT";
-    field public static final java.lang.String ACTION_ARGUMENT_SELECTION_END_INT = "ACTION_ARGUMENT_SELECTION_END_INT";
-    field public static final java.lang.String ACTION_ARGUMENT_SELECTION_START_INT = "ACTION_ARGUMENT_SELECTION_START_INT";
-    field public static final java.lang.String ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE = "ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE";
+    field public static final String ACTION_ARGUMENT_COLUMN_INT = "android.view.accessibility.action.ARGUMENT_COLUMN_INT";
+    field public static final String ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN = "ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN";
+    field public static final String ACTION_ARGUMENT_HTML_ELEMENT_STRING = "ACTION_ARGUMENT_HTML_ELEMENT_STRING";
+    field public static final String ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT = "ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT";
+    field public static final String ACTION_ARGUMENT_MOVE_WINDOW_X = "ACTION_ARGUMENT_MOVE_WINDOW_X";
+    field public static final String ACTION_ARGUMENT_MOVE_WINDOW_Y = "ACTION_ARGUMENT_MOVE_WINDOW_Y";
+    field public static final String ACTION_ARGUMENT_PROGRESS_VALUE = "android.view.accessibility.action.ARGUMENT_PROGRESS_VALUE";
+    field public static final String ACTION_ARGUMENT_ROW_INT = "android.view.accessibility.action.ARGUMENT_ROW_INT";
+    field public static final String ACTION_ARGUMENT_SELECTION_END_INT = "ACTION_ARGUMENT_SELECTION_END_INT";
+    field public static final String ACTION_ARGUMENT_SELECTION_START_INT = "ACTION_ARGUMENT_SELECTION_START_INT";
+    field public static final String ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE = "ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE";
     field public static final int ACTION_CLEAR_ACCESSIBILITY_FOCUS = 128; // 0x80
     field public static final int ACTION_CLEAR_FOCUS = 2; // 0x2
     field public static final int ACTION_CLEAR_SELECTION = 8; // 0x8
@@ -2435,42 +2436,42 @@
   }
 
   public static class AccessibilityNodeInfoCompat.AccessibilityActionCompat {
-    ctor public AccessibilityNodeInfoCompat.AccessibilityActionCompat(int, java.lang.CharSequence);
+    ctor public AccessibilityNodeInfoCompat.AccessibilityActionCompat(int, CharSequence!);
     method public int getId();
-    method public java.lang.CharSequence getLabel();
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_ACCESSIBILITY_FOCUS;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_CLEAR_ACCESSIBILITY_FOCUS;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_CLEAR_FOCUS;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_CLEAR_SELECTION;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_CLICK;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_COLLAPSE;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_CONTEXT_CLICK;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_COPY;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_CUT;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_DISMISS;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_EXPAND;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_FOCUS;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_HIDE_TOOLTIP;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_LONG_CLICK;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_MOVE_WINDOW;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_NEXT_AT_MOVEMENT_GRANULARITY;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_NEXT_HTML_ELEMENT;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PASTE;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PREVIOUS_HTML_ELEMENT;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_SCROLL_BACKWARD;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_SCROLL_DOWN;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_SCROLL_FORWARD;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_SCROLL_LEFT;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_SCROLL_RIGHT;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_SCROLL_TO_POSITION;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_SCROLL_UP;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_SELECT;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_SET_PROGRESS;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_SET_SELECTION;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_SET_TEXT;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_SHOW_ON_SCREEN;
-    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_SHOW_TOOLTIP;
+    method public CharSequence! getLabel();
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_ACCESSIBILITY_FOCUS;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CLEAR_ACCESSIBILITY_FOCUS;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CLEAR_FOCUS;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CLEAR_SELECTION;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CLICK;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_COLLAPSE;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CONTEXT_CLICK;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_COPY;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CUT;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_DISMISS;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_EXPAND;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_FOCUS;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_HIDE_TOOLTIP;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_LONG_CLICK;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_MOVE_WINDOW;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_NEXT_AT_MOVEMENT_GRANULARITY;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_NEXT_HTML_ELEMENT;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_PASTE;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_PREVIOUS_HTML_ELEMENT;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_BACKWARD;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_DOWN;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_FORWARD;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_LEFT;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_RIGHT;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_TO_POSITION;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_UP;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SELECT;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SET_PROGRESS;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SET_SELECTION;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SET_TEXT;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SHOW_ON_SCREEN;
+    field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SHOW_TOOLTIP;
   }
 
   public static class AccessibilityNodeInfoCompat.CollectionInfoCompat {
@@ -2478,8 +2479,8 @@
     method public int getRowCount();
     method public int getSelectionMode();
     method public boolean isHierarchical();
-    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat obtain(int, int, boolean, int);
-    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat obtain(int, int, boolean);
+    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat! obtain(int, int, boolean, int);
+    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat! obtain(int, int, boolean);
     field public static final int SELECTION_MODE_MULTIPLE = 2; // 0x2
     field public static final int SELECTION_MODE_NONE = 0; // 0x0
     field public static final int SELECTION_MODE_SINGLE = 1; // 0x1
@@ -2490,10 +2491,10 @@
     method public int getColumnSpan();
     method public int getRowIndex();
     method public int getRowSpan();
-    method public deprecated boolean isHeading();
+    method @Deprecated public boolean isHeading();
     method public boolean isSelected();
-    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat obtain(int, int, int, int, boolean, boolean);
-    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat obtain(int, int, int, int, boolean);
+    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat! obtain(int, int, int, int, boolean, boolean);
+    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat! obtain(int, int, int, int, boolean);
   }
 
   public static class AccessibilityNodeInfoCompat.RangeInfoCompat {
@@ -2501,7 +2502,7 @@
     method public float getMax();
     method public float getMin();
     method public int getType();
-    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat obtain(int, float, float, float);
+    method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! obtain(int, float, float, float);
     field public static final int RANGE_TYPE_FLOAT = 1; // 0x1
     field public static final int RANGE_TYPE_INT = 0; // 0x0
     field public static final int RANGE_TYPE_PERCENT = 2; // 0x2
@@ -2509,89 +2510,89 @@
 
   public class AccessibilityNodeProviderCompat {
     ctor public AccessibilityNodeProviderCompat();
-    ctor public AccessibilityNodeProviderCompat(java.lang.Object);
-    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat createAccessibilityNodeInfo(int);
-    method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat> findAccessibilityNodeInfosByText(java.lang.String, int);
-    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat findFocus(int);
-    method public java.lang.Object getProvider();
-    method public boolean performAction(int, int, android.os.Bundle);
+    ctor public AccessibilityNodeProviderCompat(Object!);
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat? createAccessibilityNodeInfo(int);
+    method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat>? findAccessibilityNodeInfosByText(String!, int);
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat? findFocus(int);
+    method public Object! getProvider();
+    method public boolean performAction(int, int, android.os.Bundle!);
     field public static final int HOST_VIEW_ID = -1; // 0xffffffff
   }
 
   public class AccessibilityRecordCompat {
-    ctor public deprecated AccessibilityRecordCompat(java.lang.Object);
-    method public deprecated boolean equals(java.lang.Object);
-    method public deprecated int getAddedCount();
-    method public deprecated java.lang.CharSequence getBeforeText();
-    method public deprecated java.lang.CharSequence getClassName();
-    method public deprecated java.lang.CharSequence getContentDescription();
-    method public deprecated int getCurrentItemIndex();
-    method public deprecated int getFromIndex();
-    method public deprecated java.lang.Object getImpl();
-    method public deprecated int getItemCount();
-    method public deprecated int getMaxScrollX();
-    method public static int getMaxScrollX(android.view.accessibility.AccessibilityRecord);
-    method public deprecated int getMaxScrollY();
-    method public static int getMaxScrollY(android.view.accessibility.AccessibilityRecord);
-    method public deprecated android.os.Parcelable getParcelableData();
-    method public deprecated int getRemovedCount();
-    method public deprecated int getScrollX();
-    method public deprecated int getScrollY();
-    method public deprecated androidx.core.view.accessibility.AccessibilityNodeInfoCompat getSource();
-    method public deprecated java.util.List<java.lang.CharSequence> getText();
-    method public deprecated int getToIndex();
-    method public deprecated int getWindowId();
-    method public deprecated int hashCode();
-    method public deprecated boolean isChecked();
-    method public deprecated boolean isEnabled();
-    method public deprecated boolean isFullScreen();
-    method public deprecated boolean isPassword();
-    method public deprecated boolean isScrollable();
-    method public static deprecated androidx.core.view.accessibility.AccessibilityRecordCompat obtain(androidx.core.view.accessibility.AccessibilityRecordCompat);
-    method public static deprecated androidx.core.view.accessibility.AccessibilityRecordCompat obtain();
-    method public deprecated void recycle();
-    method public deprecated void setAddedCount(int);
-    method public deprecated void setBeforeText(java.lang.CharSequence);
-    method public deprecated void setChecked(boolean);
-    method public deprecated void setClassName(java.lang.CharSequence);
-    method public deprecated void setContentDescription(java.lang.CharSequence);
-    method public deprecated void setCurrentItemIndex(int);
-    method public deprecated void setEnabled(boolean);
-    method public deprecated void setFromIndex(int);
-    method public deprecated void setFullScreen(boolean);
-    method public deprecated void setItemCount(int);
-    method public deprecated void setMaxScrollX(int);
-    method public static void setMaxScrollX(android.view.accessibility.AccessibilityRecord, int);
-    method public deprecated void setMaxScrollY(int);
-    method public static void setMaxScrollY(android.view.accessibility.AccessibilityRecord, int);
-    method public deprecated void setParcelableData(android.os.Parcelable);
-    method public deprecated void setPassword(boolean);
-    method public deprecated void setRemovedCount(int);
-    method public deprecated void setScrollX(int);
-    method public deprecated void setScrollY(int);
-    method public deprecated void setScrollable(boolean);
-    method public deprecated void setSource(android.view.View);
-    method public deprecated void setSource(android.view.View, int);
-    method public static void setSource(android.view.accessibility.AccessibilityRecord, android.view.View, int);
-    method public deprecated void setToIndex(int);
+    ctor @Deprecated public AccessibilityRecordCompat(Object!);
+    method @Deprecated public boolean equals(Object?);
+    method @Deprecated public int getAddedCount();
+    method @Deprecated public CharSequence! getBeforeText();
+    method @Deprecated public CharSequence! getClassName();
+    method @Deprecated public CharSequence! getContentDescription();
+    method @Deprecated public int getCurrentItemIndex();
+    method @Deprecated public int getFromIndex();
+    method @Deprecated public Object! getImpl();
+    method @Deprecated public int getItemCount();
+    method @Deprecated public int getMaxScrollX();
+    method public static int getMaxScrollX(android.view.accessibility.AccessibilityRecord!);
+    method @Deprecated public int getMaxScrollY();
+    method public static int getMaxScrollY(android.view.accessibility.AccessibilityRecord!);
+    method @Deprecated public android.os.Parcelable! getParcelableData();
+    method @Deprecated public int getRemovedCount();
+    method @Deprecated public int getScrollX();
+    method @Deprecated public int getScrollY();
+    method @Deprecated public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getSource();
+    method @Deprecated public java.util.List<java.lang.CharSequence>! getText();
+    method @Deprecated public int getToIndex();
+    method @Deprecated public int getWindowId();
+    method @Deprecated public int hashCode();
+    method @Deprecated public boolean isChecked();
+    method @Deprecated public boolean isEnabled();
+    method @Deprecated public boolean isFullScreen();
+    method @Deprecated public boolean isPassword();
+    method @Deprecated public boolean isScrollable();
+    method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! obtain(androidx.core.view.accessibility.AccessibilityRecordCompat!);
+    method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! obtain();
+    method @Deprecated public void recycle();
+    method @Deprecated public void setAddedCount(int);
+    method @Deprecated public void setBeforeText(CharSequence!);
+    method @Deprecated public void setChecked(boolean);
+    method @Deprecated public void setClassName(CharSequence!);
+    method @Deprecated public void setContentDescription(CharSequence!);
+    method @Deprecated public void setCurrentItemIndex(int);
+    method @Deprecated public void setEnabled(boolean);
+    method @Deprecated public void setFromIndex(int);
+    method @Deprecated public void setFullScreen(boolean);
+    method @Deprecated public void setItemCount(int);
+    method @Deprecated public void setMaxScrollX(int);
+    method public static void setMaxScrollX(android.view.accessibility.AccessibilityRecord!, int);
+    method @Deprecated public void setMaxScrollY(int);
+    method public static void setMaxScrollY(android.view.accessibility.AccessibilityRecord!, int);
+    method @Deprecated public void setParcelableData(android.os.Parcelable!);
+    method @Deprecated public void setPassword(boolean);
+    method @Deprecated public void setRemovedCount(int);
+    method @Deprecated public void setScrollX(int);
+    method @Deprecated public void setScrollY(int);
+    method @Deprecated public void setScrollable(boolean);
+    method @Deprecated public void setSource(android.view.View!);
+    method @Deprecated public void setSource(android.view.View!, int);
+    method public static void setSource(android.view.accessibility.AccessibilityRecord, android.view.View!, int);
+    method @Deprecated public void setToIndex(int);
   }
 
   public class AccessibilityWindowInfoCompat {
-    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat getAnchor();
-    method public void getBoundsInScreen(android.graphics.Rect);
-    method public androidx.core.view.accessibility.AccessibilityWindowInfoCompat getChild(int);
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getAnchor();
+    method public void getBoundsInScreen(android.graphics.Rect!);
+    method public androidx.core.view.accessibility.AccessibilityWindowInfoCompat! getChild(int);
     method public int getChildCount();
     method public int getId();
     method public int getLayer();
-    method public androidx.core.view.accessibility.AccessibilityWindowInfoCompat getParent();
-    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat getRoot();
-    method public java.lang.CharSequence getTitle();
+    method public androidx.core.view.accessibility.AccessibilityWindowInfoCompat! getParent();
+    method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getRoot();
+    method public CharSequence! getTitle();
     method public int getType();
     method public boolean isAccessibilityFocused();
     method public boolean isActive();
     method public boolean isFocused();
-    method public static androidx.core.view.accessibility.AccessibilityWindowInfoCompat obtain();
-    method public static androidx.core.view.accessibility.AccessibilityWindowInfoCompat obtain(androidx.core.view.accessibility.AccessibilityWindowInfoCompat);
+    method public static androidx.core.view.accessibility.AccessibilityWindowInfoCompat! obtain();
+    method public static androidx.core.view.accessibility.AccessibilityWindowInfoCompat! obtain(androidx.core.view.accessibility.AccessibilityWindowInfoCompat!);
     method public void recycle();
     field public static final int TYPE_ACCESSIBILITY_OVERLAY = 4; // 0x4
     field public static final int TYPE_APPLICATION = 1; // 0x1
@@ -2605,9 +2606,9 @@
 package androidx.core.view.animation {
 
   public final class PathInterpolatorCompat {
-    method public static android.view.animation.Interpolator create(android.graphics.Path);
-    method public static android.view.animation.Interpolator create(float, float);
-    method public static android.view.animation.Interpolator create(float, float, float, float);
+    method public static android.view.animation.Interpolator! create(android.graphics.Path!);
+    method public static android.view.animation.Interpolator! create(float, float);
+    method public static android.view.animation.Interpolator! create(float, float, float, float);
   }
 
 }
@@ -2615,33 +2616,33 @@
 package androidx.core.view.inputmethod {
 
   public final class EditorInfoCompat {
-    ctor public deprecated EditorInfoCompat();
-    method public static java.lang.String[] getContentMimeTypes(android.view.inputmethod.EditorInfo);
-    method public static void setContentMimeTypes(android.view.inputmethod.EditorInfo, java.lang.String[]);
+    ctor @Deprecated public EditorInfoCompat();
+    method public static String[] getContentMimeTypes(android.view.inputmethod.EditorInfo!);
+    method public static void setContentMimeTypes(android.view.inputmethod.EditorInfo, String[]?);
     field public static final int IME_FLAG_FORCE_ASCII = -2147483648; // 0x80000000
     field public static final int IME_FLAG_NO_PERSONALIZED_LEARNING = 16777216; // 0x1000000
   }
 
   public final class InputConnectionCompat {
-    ctor public deprecated InputConnectionCompat();
-    method public static boolean commitContent(android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo, androidx.core.view.inputmethod.InputContentInfoCompat, int, android.os.Bundle);
+    ctor @Deprecated public InputConnectionCompat();
+    method public static boolean commitContent(android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo, androidx.core.view.inputmethod.InputContentInfoCompat, int, android.os.Bundle?);
     method public static android.view.inputmethod.InputConnection createWrapper(android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo, androidx.core.view.inputmethod.InputConnectionCompat.OnCommitContentListener);
     field public static final int INPUT_CONTENT_GRANT_READ_URI_PERMISSION = 1; // 0x1
   }
 
-  public static abstract interface InputConnectionCompat.OnCommitContentListener {
-    method public abstract boolean onCommitContent(androidx.core.view.inputmethod.InputContentInfoCompat, int, android.os.Bundle);
+  public static interface InputConnectionCompat.OnCommitContentListener {
+    method public boolean onCommitContent(androidx.core.view.inputmethod.InputContentInfoCompat!, int, android.os.Bundle!);
   }
 
   public final class InputContentInfoCompat {
-    ctor public InputContentInfoCompat(android.net.Uri, android.content.ClipDescription, android.net.Uri);
+    ctor public InputContentInfoCompat(android.net.Uri, android.content.ClipDescription, android.net.Uri?);
     method public android.net.Uri getContentUri();
     method public android.content.ClipDescription getDescription();
-    method public android.net.Uri getLinkUri();
+    method public android.net.Uri? getLinkUri();
     method public void releasePermission();
     method public void requestPermission();
-    method public java.lang.Object unwrap();
-    method public static androidx.core.view.inputmethod.InputContentInfoCompat wrap(java.lang.Object);
+    method public Object? unwrap();
+    method public static androidx.core.view.inputmethod.InputContentInfoCompat? wrap(Object?);
   }
 
 }
@@ -2654,12 +2655,12 @@
     method public abstract boolean canTargetScrollVertically(int);
     method public boolean isEnabled();
     method public boolean isExclusive();
-    method public boolean onTouch(android.view.View, android.view.MotionEvent);
+    method public boolean onTouch(android.view.View!, android.view.MotionEvent!);
     method public abstract void scrollTargetBy(int, int);
     method public androidx.core.widget.AutoScrollHelper setActivationDelay(int);
     method public androidx.core.widget.AutoScrollHelper setEdgeType(int);
-    method public androidx.core.widget.AutoScrollHelper setEnabled(boolean);
-    method public androidx.core.widget.AutoScrollHelper setExclusive(boolean);
+    method public androidx.core.widget.AutoScrollHelper! setEnabled(boolean);
+    method public androidx.core.widget.AutoScrollHelper! setExclusive(boolean);
     method public androidx.core.widget.AutoScrollHelper setMaximumEdges(float, float);
     method public androidx.core.widget.AutoScrollHelper setMaximumVelocity(float, float);
     method public androidx.core.widget.AutoScrollHelper setMinimumVelocity(float, float);
@@ -2676,45 +2677,45 @@
   }
 
   public final class CompoundButtonCompat {
-    method public static android.graphics.drawable.Drawable getButtonDrawable(android.widget.CompoundButton);
-    method public static android.content.res.ColorStateList getButtonTintList(android.widget.CompoundButton);
-    method public static android.graphics.PorterDuff.Mode getButtonTintMode(android.widget.CompoundButton);
-    method public static void setButtonTintList(android.widget.CompoundButton, android.content.res.ColorStateList);
-    method public static void setButtonTintMode(android.widget.CompoundButton, android.graphics.PorterDuff.Mode);
+    method public static android.graphics.drawable.Drawable? getButtonDrawable(android.widget.CompoundButton);
+    method public static android.content.res.ColorStateList? getButtonTintList(android.widget.CompoundButton);
+    method public static android.graphics.PorterDuff.Mode? getButtonTintMode(android.widget.CompoundButton);
+    method public static void setButtonTintList(android.widget.CompoundButton, android.content.res.ColorStateList?);
+    method public static void setButtonTintMode(android.widget.CompoundButton, android.graphics.PorterDuff.Mode?);
   }
 
   public class ContentLoadingProgressBar extends android.widget.ProgressBar {
     ctor public ContentLoadingProgressBar(android.content.Context);
-    ctor public ContentLoadingProgressBar(android.content.Context, android.util.AttributeSet);
-    method public synchronized void hide();
+    ctor public ContentLoadingProgressBar(android.content.Context, android.util.AttributeSet?);
+    method public void hide();
     method public void onAttachedToWindow();
     method public void onDetachedFromWindow();
-    method public synchronized void show();
+    method public void show();
   }
 
   public final class EdgeEffectCompat {
-    ctor public deprecated EdgeEffectCompat(android.content.Context);
-    method public deprecated boolean draw(android.graphics.Canvas);
-    method public deprecated void finish();
-    method public deprecated boolean isFinished();
-    method public deprecated boolean onAbsorb(int);
-    method public deprecated boolean onPull(float);
-    method public deprecated boolean onPull(float, float);
+    ctor @Deprecated public EdgeEffectCompat(android.content.Context!);
+    method @Deprecated public boolean draw(android.graphics.Canvas!);
+    method @Deprecated public void finish();
+    method @Deprecated public boolean isFinished();
+    method @Deprecated public boolean onAbsorb(int);
+    method @Deprecated public boolean onPull(float);
+    method @Deprecated public boolean onPull(float, float);
     method public static void onPull(android.widget.EdgeEffect, float, float);
-    method public deprecated boolean onRelease();
-    method public deprecated void setSize(int, int);
+    method @Deprecated public boolean onRelease();
+    method @Deprecated public void setSize(int, int);
   }
 
   public class ImageViewCompat {
-    method public static android.content.res.ColorStateList getImageTintList(android.widget.ImageView);
-    method public static android.graphics.PorterDuff.Mode getImageTintMode(android.widget.ImageView);
-    method public static void setImageTintList(android.widget.ImageView, android.content.res.ColorStateList);
-    method public static void setImageTintMode(android.widget.ImageView, android.graphics.PorterDuff.Mode);
+    method public static android.content.res.ColorStateList? getImageTintList(android.widget.ImageView);
+    method public static android.graphics.PorterDuff.Mode? getImageTintMode(android.widget.ImageView);
+    method public static void setImageTintList(android.widget.ImageView, android.content.res.ColorStateList?);
+    method public static void setImageTintMode(android.widget.ImageView, android.graphics.PorterDuff.Mode?);
   }
 
   public final class ListPopupWindowCompat {
-    method public static deprecated android.view.View.OnTouchListener createDragToOpenListener(java.lang.Object, android.view.View);
-    method public static android.view.View.OnTouchListener createDragToOpenListener(android.widget.ListPopupWindow, android.view.View);
+    method @Deprecated public static android.view.View.OnTouchListener! createDragToOpenListener(Object!, android.view.View!);
+    method public static android.view.View.OnTouchListener? createDragToOpenListener(android.widget.ListPopupWindow, android.view.View);
   }
 
   public class ListViewAutoScrollHelper extends androidx.core.widget.AutoScrollHelper {
@@ -2731,19 +2732,19 @@
 
   public class NestedScrollView extends android.widget.FrameLayout implements androidx.core.view.NestedScrollingChild3 androidx.core.view.NestedScrollingParent3 androidx.core.view.ScrollingView {
     ctor public NestedScrollView(android.content.Context);
-    ctor public NestedScrollView(android.content.Context, android.util.AttributeSet);
-    ctor public NestedScrollView(android.content.Context, android.util.AttributeSet, int);
+    ctor public NestedScrollView(android.content.Context, android.util.AttributeSet?);
+    ctor public NestedScrollView(android.content.Context, android.util.AttributeSet?, int);
     method public boolean arrowScroll(int);
-    method public int computeHorizontalScrollExtent();
-    method public int computeHorizontalScrollOffset();
-    method public int computeHorizontalScrollRange();
-    method protected int computeScrollDeltaToGetChildRectOnScreen(android.graphics.Rect);
-    method public int computeVerticalScrollExtent();
-    method public int computeVerticalScrollOffset();
-    method public int computeVerticalScrollRange();
-    method public boolean dispatchNestedPreScroll(int, int, int[], int[], int);
-    method public void dispatchNestedScroll(int, int, int, int, int[], int, int[]);
-    method public boolean dispatchNestedScroll(int, int, int, int, int[], int);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int computeHorizontalScrollExtent();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int computeHorizontalScrollOffset();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int computeHorizontalScrollRange();
+    method protected int computeScrollDeltaToGetChildRectOnScreen(android.graphics.Rect!);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int computeVerticalScrollExtent();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int computeVerticalScrollOffset();
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int computeVerticalScrollRange();
+    method public boolean dispatchNestedPreScroll(int, int, int[]!, int[]!, int);
+    method public void dispatchNestedScroll(int, int, int, int, int[]?, int, int[]);
+    method public boolean dispatchNestedScroll(int, int, int, int, int[]!, int);
     method public boolean executeKeyEvent(android.view.KeyEvent);
     method public void fling(int);
     method public boolean fullScroll(int);
@@ -2760,7 +2761,7 @@
     method public void onStopNestedScroll(android.view.View, int);
     method public boolean pageScroll(int);
     method public void setFillViewport(boolean);
-    method public void setOnScrollChangeListener(androidx.core.widget.NestedScrollView.OnScrollChangeListener);
+    method public void setOnScrollChangeListener(androidx.core.widget.NestedScrollView.OnScrollChangeListener?);
     method public void setSmoothScrollingEnabled(boolean);
     method public final void smoothScrollBy(int, int);
     method public final void smoothScrollTo(int, int);
@@ -2768,12 +2769,12 @@
     method public void stopNestedScroll(int);
   }
 
-  public static abstract interface NestedScrollView.OnScrollChangeListener {
-    method public abstract void onScrollChange(androidx.core.widget.NestedScrollView, int, int, int, int);
+  public static interface NestedScrollView.OnScrollChangeListener {
+    method public void onScrollChange(androidx.core.widget.NestedScrollView!, int, int, int, int);
   }
 
   public final class PopupMenuCompat {
-    method public static android.view.View.OnTouchListener getDragToOpenListener(java.lang.Object);
+    method public static android.view.View.OnTouchListener? getDragToOpenListener(Object);
   }
 
   public final class PopupWindowCompat {
@@ -2784,25 +2785,25 @@
     method public static void showAsDropDown(android.widget.PopupWindow, android.view.View, int, int, int);
   }
 
-  public final deprecated class ScrollerCompat {
-    method public deprecated void abortAnimation();
-    method public deprecated boolean computeScrollOffset();
-    method public static deprecated androidx.core.widget.ScrollerCompat create(android.content.Context);
-    method public static deprecated androidx.core.widget.ScrollerCompat create(android.content.Context, android.view.animation.Interpolator);
-    method public deprecated void fling(int, int, int, int, int, int, int, int);
-    method public deprecated void fling(int, int, int, int, int, int, int, int, int, int);
-    method public deprecated float getCurrVelocity();
-    method public deprecated int getCurrX();
-    method public deprecated int getCurrY();
-    method public deprecated int getFinalX();
-    method public deprecated int getFinalY();
-    method public deprecated boolean isFinished();
-    method public deprecated boolean isOverScrolled();
-    method public deprecated void notifyHorizontalEdgeReached(int, int, int);
-    method public deprecated void notifyVerticalEdgeReached(int, int, int);
-    method public deprecated boolean springBack(int, int, int, int, int, int);
-    method public deprecated void startScroll(int, int, int, int);
-    method public deprecated void startScroll(int, int, int, int, int);
+  @Deprecated public final class ScrollerCompat {
+    method @Deprecated public void abortAnimation();
+    method @Deprecated public boolean computeScrollOffset();
+    method @Deprecated public static androidx.core.widget.ScrollerCompat! create(android.content.Context!);
+    method @Deprecated public static androidx.core.widget.ScrollerCompat! create(android.content.Context!, android.view.animation.Interpolator!);
+    method @Deprecated public void fling(int, int, int, int, int, int, int, int);
+    method @Deprecated public void fling(int, int, int, int, int, int, int, int, int, int);
+    method @Deprecated public float getCurrVelocity();
+    method @Deprecated public int getCurrX();
+    method @Deprecated public int getCurrY();
+    method @Deprecated public int getFinalX();
+    method @Deprecated public int getFinalY();
+    method @Deprecated public boolean isFinished();
+    method @Deprecated public boolean isOverScrolled();
+    method @Deprecated public void notifyHorizontalEdgeReached(int, int, int);
+    method @Deprecated public void notifyVerticalEdgeReached(int, int, int);
+    method @Deprecated public boolean springBack(int, int, int, int, int, int);
+    method @Deprecated public void startScroll(int, int, int, int);
+    method @Deprecated public void startScroll(int, int, int, int, int);
   }
 
   public final class TextViewCompat {
@@ -2820,25 +2821,25 @@
     method public static void setAutoSizeTextTypeUniformWithConfiguration(android.widget.TextView, int, int, int, int) throws java.lang.IllegalArgumentException;
     method public static void setAutoSizeTextTypeUniformWithPresetSizes(android.widget.TextView, int[], int) throws java.lang.IllegalArgumentException;
     method public static void setAutoSizeTextTypeWithDefaults(android.widget.TextView, int);
-    method public static void setCompoundDrawablesRelative(android.widget.TextView, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable);
-    method public static void setCompoundDrawablesRelativeWithIntrinsicBounds(android.widget.TextView, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable);
-    method public static void setCompoundDrawablesRelativeWithIntrinsicBounds(android.widget.TextView, int, int, int, int);
+    method public static void setCompoundDrawablesRelative(android.widget.TextView, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?);
+    method public static void setCompoundDrawablesRelativeWithIntrinsicBounds(android.widget.TextView, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?);
+    method public static void setCompoundDrawablesRelativeWithIntrinsicBounds(android.widget.TextView, @DrawableRes int, @DrawableRes int, @DrawableRes int, @DrawableRes int);
     method public static void setCustomSelectionActionModeCallback(android.widget.TextView, android.view.ActionMode.Callback);
-    method public static void setFirstBaselineToTopHeight(android.widget.TextView, int);
-    method public static void setLastBaselineToBottomHeight(android.widget.TextView, int);
-    method public static void setLineHeight(android.widget.TextView, int);
+    method public static void setFirstBaselineToTopHeight(android.widget.TextView, @Px @IntRange(from=0) int);
+    method public static void setLastBaselineToBottomHeight(android.widget.TextView, @Px @IntRange(from=0) int);
+    method public static void setLineHeight(android.widget.TextView, @Px @IntRange(from=0) int);
     method public static void setPrecomputedText(android.widget.TextView, androidx.core.text.PrecomputedTextCompat);
-    method public static void setTextAppearance(android.widget.TextView, int);
+    method public static void setTextAppearance(android.widget.TextView, @StyleRes int);
     method public static void setTextMetricsParams(android.widget.TextView, androidx.core.text.PrecomputedTextCompat.Params);
     field public static final int AUTO_SIZE_TEXT_TYPE_NONE = 0; // 0x0
     field public static final int AUTO_SIZE_TEXT_TYPE_UNIFORM = 1; // 0x1
   }
 
-  public abstract interface TintableCompoundButton {
-    method public abstract android.content.res.ColorStateList getSupportButtonTintList();
-    method public abstract android.graphics.PorterDuff.Mode getSupportButtonTintMode();
-    method public abstract void setSupportButtonTintList(android.content.res.ColorStateList);
-    method public abstract void setSupportButtonTintMode(android.graphics.PorterDuff.Mode);
+  public interface TintableCompoundButton {
+    method public android.content.res.ColorStateList? getSupportButtonTintList();
+    method public android.graphics.PorterDuff.Mode? getSupportButtonTintMode();
+    method public void setSupportButtonTintList(android.content.res.ColorStateList?);
+    method public void setSupportButtonTintMode(android.graphics.PorterDuff.Mode?);
   }
 
 }
diff --git a/cursoradapter/api/1.0.0.txt b/cursoradapter/api/1.0.0.txt
index f97da0f..691a875 100644
--- a/cursoradapter/api/1.0.0.txt
+++ b/cursoradapter/api/1.0.0.txt
@@ -1,60 +1,61 @@
+// Signature format: 2.0
 package androidx.cursoradapter.widget {
 
   public abstract class CursorAdapter extends android.widget.BaseAdapter implements android.widget.Filterable {
-    ctor public deprecated CursorAdapter(android.content.Context, android.database.Cursor);
-    ctor public CursorAdapter(android.content.Context, android.database.Cursor, boolean);
-    ctor public CursorAdapter(android.content.Context, android.database.Cursor, int);
-    method public abstract void bindView(android.view.View, android.content.Context, android.database.Cursor);
-    method public void changeCursor(android.database.Cursor);
-    method public java.lang.CharSequence convertToString(android.database.Cursor);
+    ctor @Deprecated public CursorAdapter(android.content.Context!, android.database.Cursor!);
+    ctor public CursorAdapter(android.content.Context!, android.database.Cursor!, boolean);
+    ctor public CursorAdapter(android.content.Context!, android.database.Cursor!, int);
+    method public abstract void bindView(android.view.View!, android.content.Context!, android.database.Cursor!);
+    method public void changeCursor(android.database.Cursor!);
+    method public CharSequence! convertToString(android.database.Cursor!);
     method public int getCount();
-    method public android.database.Cursor getCursor();
-    method public android.widget.Filter getFilter();
-    method public android.widget.FilterQueryProvider getFilterQueryProvider();
-    method public java.lang.Object getItem(int);
+    method public android.database.Cursor! getCursor();
+    method public android.widget.Filter! getFilter();
+    method public android.widget.FilterQueryProvider! getFilterQueryProvider();
+    method public Object! getItem(int);
     method public long getItemId(int);
-    method public android.view.View getView(int, android.view.View, android.view.ViewGroup);
-    method protected deprecated void init(android.content.Context, android.database.Cursor, boolean);
-    method public android.view.View newDropDownView(android.content.Context, android.database.Cursor, android.view.ViewGroup);
-    method public abstract android.view.View newView(android.content.Context, android.database.Cursor, android.view.ViewGroup);
+    method public android.view.View! getView(int, android.view.View!, android.view.ViewGroup!);
+    method @Deprecated protected void init(android.content.Context!, android.database.Cursor!, boolean);
+    method public android.view.View! newDropDownView(android.content.Context!, android.database.Cursor!, android.view.ViewGroup!);
+    method public abstract android.view.View! newView(android.content.Context!, android.database.Cursor!, android.view.ViewGroup!);
     method protected void onContentChanged();
-    method public android.database.Cursor runQueryOnBackgroundThread(java.lang.CharSequence);
-    method public void setFilterQueryProvider(android.widget.FilterQueryProvider);
-    method public android.database.Cursor swapCursor(android.database.Cursor);
-    field public static final deprecated int FLAG_AUTO_REQUERY = 1; // 0x1
+    method public android.database.Cursor! runQueryOnBackgroundThread(CharSequence!);
+    method public void setFilterQueryProvider(android.widget.FilterQueryProvider!);
+    method public android.database.Cursor! swapCursor(android.database.Cursor!);
+    field @Deprecated public static final int FLAG_AUTO_REQUERY = 1; // 0x1
     field public static final int FLAG_REGISTER_CONTENT_OBSERVER = 2; // 0x2
   }
 
   public abstract class ResourceCursorAdapter extends androidx.cursoradapter.widget.CursorAdapter {
-    ctor public deprecated ResourceCursorAdapter(android.content.Context, int, android.database.Cursor);
-    ctor public deprecated ResourceCursorAdapter(android.content.Context, int, android.database.Cursor, boolean);
-    ctor public ResourceCursorAdapter(android.content.Context, int, android.database.Cursor, int);
-    method public android.view.View newView(android.content.Context, android.database.Cursor, android.view.ViewGroup);
+    ctor @Deprecated public ResourceCursorAdapter(android.content.Context!, int, android.database.Cursor!);
+    ctor @Deprecated public ResourceCursorAdapter(android.content.Context!, int, android.database.Cursor!, boolean);
+    ctor public ResourceCursorAdapter(android.content.Context!, int, android.database.Cursor!, int);
+    method public android.view.View! newView(android.content.Context!, android.database.Cursor!, android.view.ViewGroup!);
     method public void setDropDownViewResource(int);
     method public void setViewResource(int);
   }
 
   public class SimpleCursorAdapter extends androidx.cursoradapter.widget.ResourceCursorAdapter {
-    ctor public deprecated SimpleCursorAdapter(android.content.Context, int, android.database.Cursor, java.lang.String[], int[]);
-    ctor public SimpleCursorAdapter(android.content.Context, int, android.database.Cursor, java.lang.String[], int[], int);
-    method public void bindView(android.view.View, android.content.Context, android.database.Cursor);
-    method public void changeCursorAndColumns(android.database.Cursor, java.lang.String[], int[]);
-    method public androidx.cursoradapter.widget.SimpleCursorAdapter.CursorToStringConverter getCursorToStringConverter();
+    ctor @Deprecated public SimpleCursorAdapter(android.content.Context!, int, android.database.Cursor!, String[]!, int[]!);
+    ctor public SimpleCursorAdapter(android.content.Context!, int, android.database.Cursor!, String[]!, int[]!, int);
+    method public void bindView(android.view.View!, android.content.Context!, android.database.Cursor!);
+    method public void changeCursorAndColumns(android.database.Cursor!, String[]!, int[]!);
+    method public androidx.cursoradapter.widget.SimpleCursorAdapter.CursorToStringConverter! getCursorToStringConverter();
     method public int getStringConversionColumn();
-    method public androidx.cursoradapter.widget.SimpleCursorAdapter.ViewBinder getViewBinder();
-    method public void setCursorToStringConverter(androidx.cursoradapter.widget.SimpleCursorAdapter.CursorToStringConverter);
+    method public androidx.cursoradapter.widget.SimpleCursorAdapter.ViewBinder! getViewBinder();
+    method public void setCursorToStringConverter(androidx.cursoradapter.widget.SimpleCursorAdapter.CursorToStringConverter!);
     method public void setStringConversionColumn(int);
-    method public void setViewBinder(androidx.cursoradapter.widget.SimpleCursorAdapter.ViewBinder);
-    method public void setViewImage(android.widget.ImageView, java.lang.String);
-    method public void setViewText(android.widget.TextView, java.lang.String);
+    method public void setViewBinder(androidx.cursoradapter.widget.SimpleCursorAdapter.ViewBinder!);
+    method public void setViewImage(android.widget.ImageView!, String!);
+    method public void setViewText(android.widget.TextView!, String!);
   }
 
-  public static abstract interface SimpleCursorAdapter.CursorToStringConverter {
-    method public abstract java.lang.CharSequence convertToString(android.database.Cursor);
+  public static interface SimpleCursorAdapter.CursorToStringConverter {
+    method public CharSequence! convertToString(android.database.Cursor!);
   }
 
-  public static abstract interface SimpleCursorAdapter.ViewBinder {
-    method public abstract boolean setViewValue(android.view.View, android.database.Cursor, int);
+  public static interface SimpleCursorAdapter.ViewBinder {
+    method public boolean setViewValue(android.view.View!, android.database.Cursor!, int);
   }
 
 }
diff --git a/customview/api/1.0.0.txt b/customview/api/1.0.0.txt
index a07bfc14..03155c6 100644
--- a/customview/api/1.0.0.txt
+++ b/customview/api/1.0.0.txt
@@ -1,14 +1,15 @@
+// Signature format: 2.0
 package androidx.customview.view {
 
   public abstract class AbsSavedState implements android.os.Parcelable {
     ctor protected AbsSavedState(android.os.Parcelable);
     ctor protected AbsSavedState(android.os.Parcel);
-    ctor protected AbsSavedState(android.os.Parcel, java.lang.ClassLoader);
+    ctor protected AbsSavedState(android.os.Parcel, ClassLoader?);
     method public int describeContents();
-    method public final android.os.Parcelable getSuperState();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<androidx.customview.view.AbsSavedState> CREATOR;
-    field public static final androidx.customview.view.AbsSavedState EMPTY_STATE;
+    method public final android.os.Parcelable? getSuperState();
+    method public void writeToParcel(android.os.Parcel!, int);
+    field public static final android.os.Parcelable.Creator<androidx.customview.view.AbsSavedState>! CREATOR;
+    field public static final androidx.customview.view.AbsSavedState! EMPTY_STATE;
   }
 
 }
@@ -21,15 +22,15 @@
     method public final boolean dispatchHoverEvent(android.view.MotionEvent);
     method public final boolean dispatchKeyEvent(android.view.KeyEvent);
     method public final int getAccessibilityFocusedVirtualViewId();
-    method public deprecated int getFocusedVirtualView();
+    method @Deprecated public int getFocusedVirtualView();
     method public final int getKeyboardFocusedVirtualViewId();
     method protected abstract int getVirtualViewAt(float, float);
-    method protected abstract void getVisibleVirtualViews(java.util.List<java.lang.Integer>);
+    method protected abstract void getVisibleVirtualViews(java.util.List<java.lang.Integer>!);
     method public final void invalidateRoot();
     method public final void invalidateVirtualView(int);
     method public final void invalidateVirtualView(int, int);
-    method public final void onFocusChanged(boolean, int, android.graphics.Rect);
-    method protected abstract boolean onPerformActionForVirtualView(int, int, android.os.Bundle);
+    method public final void onFocusChanged(boolean, int, android.graphics.Rect?);
+    method protected abstract boolean onPerformActionForVirtualView(int, int, android.os.Bundle?);
     method protected void onPopulateEventForHost(android.view.accessibility.AccessibilityEvent);
     method protected void onPopulateEventForVirtualView(int, android.view.accessibility.AccessibilityEvent);
     method protected void onPopulateNodeForHost(androidx.core.view.accessibility.AccessibilityNodeInfoCompat);
@@ -49,21 +50,21 @@
     method public boolean checkTouchSlop(int);
     method public boolean checkTouchSlop(int, int);
     method public boolean continueSettling(boolean);
-    method public static androidx.customview.widget.ViewDragHelper create(android.view.ViewGroup, androidx.customview.widget.ViewDragHelper.Callback);
-    method public static androidx.customview.widget.ViewDragHelper create(android.view.ViewGroup, float, androidx.customview.widget.ViewDragHelper.Callback);
-    method public android.view.View findTopChildUnder(int, int);
+    method public static androidx.customview.widget.ViewDragHelper! create(android.view.ViewGroup, androidx.customview.widget.ViewDragHelper.Callback);
+    method public static androidx.customview.widget.ViewDragHelper! create(android.view.ViewGroup, float, androidx.customview.widget.ViewDragHelper.Callback);
+    method public android.view.View? findTopChildUnder(int, int);
     method public void flingCapturedView(int, int, int, int);
     method public int getActivePointerId();
-    method public android.view.View getCapturedView();
-    method public int getEdgeSize();
+    method public android.view.View? getCapturedView();
+    method @Px public int getEdgeSize();
     method public float getMinVelocity();
-    method public int getTouchSlop();
+    method @Px public int getTouchSlop();
     method public int getViewDragState();
     method public boolean isCapturedViewUnder(int, int);
     method public boolean isEdgeTouched(int);
     method public boolean isEdgeTouched(int, int);
     method public boolean isPointerDown(int);
-    method public boolean isViewUnder(android.view.View, int, int);
+    method public boolean isViewUnder(android.view.View?, int, int);
     method public void processTouchEvent(android.view.MotionEvent);
     method public void setEdgeTrackingEnabled(int);
     method public void setMinVelocity(float);
@@ -84,7 +85,7 @@
     field public static final int STATE_SETTLING = 2; // 0x2
   }
 
-  public static abstract class ViewDragHelper.Callback {
+  public abstract static class ViewDragHelper.Callback {
     ctor public ViewDragHelper.Callback();
     method public int clampViewPositionHorizontal(android.view.View, int, int);
     method public int clampViewPositionVertical(android.view.View, int, int);
@@ -96,7 +97,7 @@
     method public void onEdgeTouched(int, int);
     method public void onViewCaptured(android.view.View, int);
     method public void onViewDragStateChanged(int);
-    method public void onViewPositionChanged(android.view.View, int, int, int, int);
+    method public void onViewPositionChanged(android.view.View, int, int, @Px int, @Px int);
     method public void onViewReleased(android.view.View, float, float);
     method public abstract boolean tryCaptureView(android.view.View, int);
   }
diff --git a/documentfile/api/1.0.0.txt b/documentfile/api/1.0.0.txt
index bced8a4..eb18f37 100644
--- a/documentfile/api/1.0.0.txt
+++ b/documentfile/api/1.0.0.txt
@@ -1,28 +1,29 @@
+// Signature format: 2.0
 package androidx.documentfile.provider {
 
   public abstract class DocumentFile {
     method public abstract boolean canRead();
     method public abstract boolean canWrite();
-    method public abstract androidx.documentfile.provider.DocumentFile createDirectory(java.lang.String);
-    method public abstract androidx.documentfile.provider.DocumentFile createFile(java.lang.String, java.lang.String);
+    method public abstract androidx.documentfile.provider.DocumentFile? createDirectory(String);
+    method public abstract androidx.documentfile.provider.DocumentFile? createFile(String, String);
     method public abstract boolean delete();
     method public abstract boolean exists();
-    method public androidx.documentfile.provider.DocumentFile findFile(java.lang.String);
+    method public androidx.documentfile.provider.DocumentFile? findFile(String);
     method public static androidx.documentfile.provider.DocumentFile fromFile(java.io.File);
-    method public static androidx.documentfile.provider.DocumentFile fromSingleUri(android.content.Context, android.net.Uri);
-    method public static androidx.documentfile.provider.DocumentFile fromTreeUri(android.content.Context, android.net.Uri);
-    method public abstract java.lang.String getName();
-    method public androidx.documentfile.provider.DocumentFile getParentFile();
-    method public abstract java.lang.String getType();
+    method public static androidx.documentfile.provider.DocumentFile? fromSingleUri(android.content.Context, android.net.Uri);
+    method public static androidx.documentfile.provider.DocumentFile? fromTreeUri(android.content.Context, android.net.Uri);
+    method public abstract String? getName();
+    method public androidx.documentfile.provider.DocumentFile? getParentFile();
+    method public abstract String? getType();
     method public abstract android.net.Uri getUri();
     method public abstract boolean isDirectory();
-    method public static boolean isDocumentUri(android.content.Context, android.net.Uri);
+    method public static boolean isDocumentUri(android.content.Context, android.net.Uri?);
     method public abstract boolean isFile();
     method public abstract boolean isVirtual();
     method public abstract long lastModified();
     method public abstract long length();
     method public abstract androidx.documentfile.provider.DocumentFile[] listFiles();
-    method public abstract boolean renameTo(java.lang.String);
+    method public abstract boolean renameTo(String);
   }
 
 }
diff --git a/drawerlayout/api/1.0.0.txt b/drawerlayout/api/1.0.0.txt
index 769758b..4bb8cc2 100644
--- a/drawerlayout/api/1.0.0.txt
+++ b/drawerlayout/api/1.0.0.txt
@@ -1,9 +1,10 @@
+// Signature format: 2.0
 package androidx.drawerlayout.widget {
 
   public class DrawerLayout extends android.view.ViewGroup {
     ctor public DrawerLayout(android.content.Context);
-    ctor public DrawerLayout(android.content.Context, android.util.AttributeSet);
-    ctor public DrawerLayout(android.content.Context, android.util.AttributeSet, int);
+    ctor public DrawerLayout(android.content.Context, android.util.AttributeSet?);
+    ctor public DrawerLayout(android.content.Context, android.util.AttributeSet?, int);
     method public void addDrawerListener(androidx.drawerlayout.widget.DrawerLayout.DrawerListener);
     method public void closeDrawer(android.view.View);
     method public void closeDrawer(android.view.View, boolean);
@@ -13,30 +14,30 @@
     method public float getDrawerElevation();
     method public int getDrawerLockMode(int);
     method public int getDrawerLockMode(android.view.View);
-    method public java.lang.CharSequence getDrawerTitle(int);
-    method public android.graphics.drawable.Drawable getStatusBarBackgroundDrawable();
+    method public CharSequence? getDrawerTitle(int);
+    method public android.graphics.drawable.Drawable? getStatusBarBackgroundDrawable();
     method public boolean isDrawerOpen(android.view.View);
     method public boolean isDrawerOpen(int);
     method public boolean isDrawerVisible(android.view.View);
     method public boolean isDrawerVisible(int);
-    method public void onDraw(android.graphics.Canvas);
+    method public void onDraw(android.graphics.Canvas!);
     method public void openDrawer(android.view.View);
     method public void openDrawer(android.view.View, boolean);
     method public void openDrawer(int);
     method public void openDrawer(int, boolean);
     method public void removeDrawerListener(androidx.drawerlayout.widget.DrawerLayout.DrawerListener);
     method public void setDrawerElevation(float);
-    method public deprecated void setDrawerListener(androidx.drawerlayout.widget.DrawerLayout.DrawerListener);
+    method @Deprecated public void setDrawerListener(androidx.drawerlayout.widget.DrawerLayout.DrawerListener!);
     method public void setDrawerLockMode(int);
     method public void setDrawerLockMode(int, int);
     method public void setDrawerLockMode(int, android.view.View);
-    method public void setDrawerShadow(android.graphics.drawable.Drawable, int);
-    method public void setDrawerShadow(int, int);
-    method public void setDrawerTitle(int, java.lang.CharSequence);
-    method public void setScrimColor(int);
-    method public void setStatusBarBackground(android.graphics.drawable.Drawable);
+    method public void setDrawerShadow(android.graphics.drawable.Drawable!, int);
+    method public void setDrawerShadow(@DrawableRes int, int);
+    method public void setDrawerTitle(int, CharSequence?);
+    method public void setScrimColor(@ColorInt int);
+    method public void setStatusBarBackground(android.graphics.drawable.Drawable?);
     method public void setStatusBarBackground(int);
-    method public void setStatusBarBackgroundColor(int);
+    method public void setStatusBarBackgroundColor(@ColorInt int);
     field public static final int LOCK_MODE_LOCKED_CLOSED = 1; // 0x1
     field public static final int LOCK_MODE_LOCKED_OPEN = 2; // 0x2
     field public static final int LOCK_MODE_UNDEFINED = 3; // 0x3
@@ -46,15 +47,15 @@
     field public static final int STATE_SETTLING = 2; // 0x2
   }
 
-  public static abstract interface DrawerLayout.DrawerListener {
-    method public abstract void onDrawerClosed(android.view.View);
-    method public abstract void onDrawerOpened(android.view.View);
-    method public abstract void onDrawerSlide(android.view.View, float);
-    method public abstract void onDrawerStateChanged(int);
+  public static interface DrawerLayout.DrawerListener {
+    method public void onDrawerClosed(android.view.View);
+    method public void onDrawerOpened(android.view.View);
+    method public void onDrawerSlide(android.view.View, float);
+    method public void onDrawerStateChanged(int);
   }
 
   public static class DrawerLayout.LayoutParams extends android.view.ViewGroup.MarginLayoutParams {
-    ctor public DrawerLayout.LayoutParams(android.content.Context, android.util.AttributeSet);
+    ctor public DrawerLayout.LayoutParams(android.content.Context, android.util.AttributeSet?);
     ctor public DrawerLayout.LayoutParams(int, int);
     ctor public DrawerLayout.LayoutParams(int, int, int);
     ctor public DrawerLayout.LayoutParams(androidx.drawerlayout.widget.DrawerLayout.LayoutParams);
@@ -64,16 +65,16 @@
   }
 
   protected static class DrawerLayout.SavedState extends androidx.customview.view.AbsSavedState {
-    ctor public DrawerLayout.SavedState(android.os.Parcel, java.lang.ClassLoader);
+    ctor public DrawerLayout.SavedState(android.os.Parcel, ClassLoader?);
     ctor public DrawerLayout.SavedState(android.os.Parcelable);
-    field public static final android.os.Parcelable.Creator<androidx.drawerlayout.widget.DrawerLayout.SavedState> CREATOR;
+    field public static final android.os.Parcelable.Creator<androidx.drawerlayout.widget.DrawerLayout.SavedState>! CREATOR;
   }
 
-  public static abstract class DrawerLayout.SimpleDrawerListener implements androidx.drawerlayout.widget.DrawerLayout.DrawerListener {
+  public abstract static class DrawerLayout.SimpleDrawerListener implements androidx.drawerlayout.widget.DrawerLayout.DrawerListener {
     ctor public DrawerLayout.SimpleDrawerListener();
-    method public void onDrawerClosed(android.view.View);
-    method public void onDrawerOpened(android.view.View);
-    method public void onDrawerSlide(android.view.View, float);
+    method public void onDrawerClosed(android.view.View!);
+    method public void onDrawerOpened(android.view.View!);
+    method public void onDrawerSlide(android.view.View!, float);
     method public void onDrawerStateChanged(int);
   }
 
diff --git a/dynamic-animation/api/1.0.0.txt b/dynamic-animation/api/1.0.0.txt
index 1a62176..5903cec 100644
--- a/dynamic-animation/api/1.0.0.txt
+++ b/dynamic-animation/api/1.0.0.txt
@@ -1,65 +1,66 @@
+// Signature format: 2.0
 package androidx.dynamicanimation.animation {
 
   public abstract class DynamicAnimation<T extends androidx.dynamicanimation.animation.DynamicAnimation<T>> {
-    method public T addEndListener(androidx.dynamicanimation.animation.DynamicAnimation.OnAnimationEndListener);
-    method public T addUpdateListener(androidx.dynamicanimation.animation.DynamicAnimation.OnAnimationUpdateListener);
+    method public T! addEndListener(androidx.dynamicanimation.animation.DynamicAnimation.OnAnimationEndListener!);
+    method public T! addUpdateListener(androidx.dynamicanimation.animation.DynamicAnimation.OnAnimationUpdateListener!);
     method public void cancel();
     method public float getMinimumVisibleChange();
     method public boolean isRunning();
-    method public void removeEndListener(androidx.dynamicanimation.animation.DynamicAnimation.OnAnimationEndListener);
-    method public void removeUpdateListener(androidx.dynamicanimation.animation.DynamicAnimation.OnAnimationUpdateListener);
-    method public T setMaxValue(float);
-    method public T setMinValue(float);
-    method public T setMinimumVisibleChange(float);
-    method public T setStartValue(float);
-    method public T setStartVelocity(float);
+    method public void removeEndListener(androidx.dynamicanimation.animation.DynamicAnimation.OnAnimationEndListener!);
+    method public void removeUpdateListener(androidx.dynamicanimation.animation.DynamicAnimation.OnAnimationUpdateListener!);
+    method public T! setMaxValue(float);
+    method public T! setMinValue(float);
+    method public T! setMinimumVisibleChange(@FloatRange(from=0.0, fromInclusive=false) float);
+    method public T! setStartValue(float);
+    method public T! setStartVelocity(float);
     method public void start();
-    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty ALPHA;
+    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty! ALPHA;
     field public static final float MIN_VISIBLE_CHANGE_ALPHA = 0.00390625f;
     field public static final float MIN_VISIBLE_CHANGE_PIXELS = 1.0f;
     field public static final float MIN_VISIBLE_CHANGE_ROTATION_DEGREES = 0.1f;
     field public static final float MIN_VISIBLE_CHANGE_SCALE = 0.002f;
-    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty ROTATION;
-    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty ROTATION_X;
-    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty ROTATION_Y;
-    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty SCALE_X;
-    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty SCALE_Y;
-    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty SCROLL_X;
-    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty SCROLL_Y;
-    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty TRANSLATION_X;
-    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty TRANSLATION_Y;
-    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty TRANSLATION_Z;
-    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty X;
-    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty Y;
-    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty Z;
+    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty! ROTATION;
+    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty! ROTATION_X;
+    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty! ROTATION_Y;
+    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty! SCALE_X;
+    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty! SCALE_Y;
+    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty! SCROLL_X;
+    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty! SCROLL_Y;
+    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty! TRANSLATION_X;
+    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty! TRANSLATION_Y;
+    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty! TRANSLATION_Z;
+    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty! X;
+    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty! Y;
+    field public static final androidx.dynamicanimation.animation.DynamicAnimation.ViewProperty! Z;
   }
 
-  public static abstract interface DynamicAnimation.OnAnimationEndListener {
-    method public abstract void onAnimationEnd(androidx.dynamicanimation.animation.DynamicAnimation, boolean, float, float);
+  public static interface DynamicAnimation.OnAnimationEndListener {
+    method public void onAnimationEnd(androidx.dynamicanimation.animation.DynamicAnimation!, boolean, float, float);
   }
 
-  public static abstract interface DynamicAnimation.OnAnimationUpdateListener {
-    method public abstract void onAnimationUpdate(androidx.dynamicanimation.animation.DynamicAnimation, float, float);
+  public static interface DynamicAnimation.OnAnimationUpdateListener {
+    method public void onAnimationUpdate(androidx.dynamicanimation.animation.DynamicAnimation!, float, float);
   }
 
-  public static abstract class DynamicAnimation.ViewProperty extends androidx.dynamicanimation.animation.FloatPropertyCompat {
+  public abstract static class DynamicAnimation.ViewProperty extends androidx.dynamicanimation.animation.FloatPropertyCompat<android.view.View> {
   }
 
-  public final class FlingAnimation extends androidx.dynamicanimation.animation.DynamicAnimation {
-    ctor public FlingAnimation(androidx.dynamicanimation.animation.FloatValueHolder);
-    ctor public FlingAnimation(K, androidx.dynamicanimation.animation.FloatPropertyCompat<K>);
+  public final class FlingAnimation extends androidx.dynamicanimation.animation.DynamicAnimation<androidx.dynamicanimation.animation.FlingAnimation> {
+    ctor public FlingAnimation(androidx.dynamicanimation.animation.FloatValueHolder!);
+    ctor public FlingAnimation(K!, androidx.dynamicanimation.animation.FloatPropertyCompat<K>!);
     method public float getFriction();
-    method public androidx.dynamicanimation.animation.FlingAnimation setFriction(float);
-    method public androidx.dynamicanimation.animation.FlingAnimation setMaxValue(float);
-    method public androidx.dynamicanimation.animation.FlingAnimation setMinValue(float);
-    method public androidx.dynamicanimation.animation.FlingAnimation setStartVelocity(float);
+    method public androidx.dynamicanimation.animation.FlingAnimation! setFriction(@FloatRange(from=0.0, fromInclusive=false) float);
+    method public androidx.dynamicanimation.animation.FlingAnimation! setMaxValue(float);
+    method public androidx.dynamicanimation.animation.FlingAnimation! setMinValue(float);
+    method public androidx.dynamicanimation.animation.FlingAnimation! setStartVelocity(float);
   }
 
   public abstract class FloatPropertyCompat<T> {
-    ctor public FloatPropertyCompat(java.lang.String);
-    method public static <T> androidx.dynamicanimation.animation.FloatPropertyCompat<T> createFloatPropertyCompat(android.util.FloatProperty<T>);
-    method public abstract float getValue(T);
-    method public abstract void setValue(T, float);
+    ctor public FloatPropertyCompat(String!);
+    method @RequiresApi(24) public static <T> androidx.dynamicanimation.animation.FloatPropertyCompat<T>! createFloatPropertyCompat(android.util.FloatProperty<T>!);
+    method public abstract float getValue(T!);
+    method public abstract void setValue(T!, float);
   }
 
   public final class FloatValueHolder {
@@ -69,14 +70,14 @@
     method public void setValue(float);
   }
 
-  public final class SpringAnimation extends androidx.dynamicanimation.animation.DynamicAnimation {
-    ctor public SpringAnimation(androidx.dynamicanimation.animation.FloatValueHolder);
-    ctor public SpringAnimation(K, androidx.dynamicanimation.animation.FloatPropertyCompat<K>);
-    ctor public SpringAnimation(K, androidx.dynamicanimation.animation.FloatPropertyCompat<K>, float);
+  public final class SpringAnimation extends androidx.dynamicanimation.animation.DynamicAnimation<androidx.dynamicanimation.animation.SpringAnimation> {
+    ctor public SpringAnimation(androidx.dynamicanimation.animation.FloatValueHolder!);
+    ctor public SpringAnimation(K!, androidx.dynamicanimation.animation.FloatPropertyCompat<K>!);
+    ctor public SpringAnimation(K!, androidx.dynamicanimation.animation.FloatPropertyCompat<K>!, float);
     method public void animateToFinalPosition(float);
     method public boolean canSkipToEnd();
-    method public androidx.dynamicanimation.animation.SpringForce getSpring();
-    method public androidx.dynamicanimation.animation.SpringAnimation setSpring(androidx.dynamicanimation.animation.SpringForce);
+    method public androidx.dynamicanimation.animation.SpringForce! getSpring();
+    method public androidx.dynamicanimation.animation.SpringAnimation! setSpring(androidx.dynamicanimation.animation.SpringForce!);
     method public void skipToEnd();
   }
 
@@ -86,9 +87,9 @@
     method public float getDampingRatio();
     method public float getFinalPosition();
     method public float getStiffness();
-    method public androidx.dynamicanimation.animation.SpringForce setDampingRatio(float);
-    method public androidx.dynamicanimation.animation.SpringForce setFinalPosition(float);
-    method public androidx.dynamicanimation.animation.SpringForce setStiffness(float);
+    method public androidx.dynamicanimation.animation.SpringForce! setDampingRatio(@FloatRange(from=0.0) float);
+    method public androidx.dynamicanimation.animation.SpringForce! setFinalPosition(float);
+    method public androidx.dynamicanimation.animation.SpringForce! setStiffness(@FloatRange(from=0.0, fromInclusive=false) float);
     field public static final float DAMPING_RATIO_HIGH_BOUNCY = 0.2f;
     field public static final float DAMPING_RATIO_LOW_BOUNCY = 0.75f;
     field public static final float DAMPING_RATIO_MEDIUM_BOUNCY = 0.5f;
diff --git a/emoji/appcompat/api/1.0.0.txt b/emoji/appcompat/api/1.0.0.txt
index 8d3945e..f5a3c05 100644
--- a/emoji/appcompat/api/1.0.0.txt
+++ b/emoji/appcompat/api/1.0.0.txt
@@ -1,23 +1,24 @@
+// Signature format: 2.0
 package androidx.emoji.widget {
 
   public class EmojiAppCompatButton extends androidx.appcompat.widget.AppCompatButton {
-    ctor public EmojiAppCompatButton(android.content.Context);
-    ctor public EmojiAppCompatButton(android.content.Context, android.util.AttributeSet);
-    ctor public EmojiAppCompatButton(android.content.Context, android.util.AttributeSet, int);
+    ctor public EmojiAppCompatButton(android.content.Context!);
+    ctor public EmojiAppCompatButton(android.content.Context!, android.util.AttributeSet!);
+    ctor public EmojiAppCompatButton(android.content.Context!, android.util.AttributeSet!, int);
   }
 
   public class EmojiAppCompatEditText extends androidx.appcompat.widget.AppCompatEditText {
-    ctor public EmojiAppCompatEditText(android.content.Context);
-    ctor public EmojiAppCompatEditText(android.content.Context, android.util.AttributeSet);
-    ctor public EmojiAppCompatEditText(android.content.Context, android.util.AttributeSet, int);
+    ctor public EmojiAppCompatEditText(android.content.Context!);
+    ctor public EmojiAppCompatEditText(android.content.Context!, android.util.AttributeSet!);
+    ctor public EmojiAppCompatEditText(android.content.Context!, android.util.AttributeSet!, int);
     method public int getMaxEmojiCount();
-    method public void setMaxEmojiCount(int);
+    method public void setMaxEmojiCount(@IntRange(from=0) int);
   }
 
   public class EmojiAppCompatTextView extends androidx.appcompat.widget.AppCompatTextView {
-    ctor public EmojiAppCompatTextView(android.content.Context);
-    ctor public EmojiAppCompatTextView(android.content.Context, android.util.AttributeSet);
-    ctor public EmojiAppCompatTextView(android.content.Context, android.util.AttributeSet, int);
+    ctor public EmojiAppCompatTextView(android.content.Context!);
+    ctor public EmojiAppCompatTextView(android.content.Context!, android.util.AttributeSet!);
+    ctor public EmojiAppCompatTextView(android.content.Context!, android.util.AttributeSet!, int);
   }
 
 }
diff --git a/emoji/bundled/api/1.0.0.txt b/emoji/bundled/api/1.0.0.txt
index f216675..d1f77a5 100644
--- a/emoji/bundled/api/1.0.0.txt
+++ b/emoji/bundled/api/1.0.0.txt
@@ -1,3 +1,4 @@
+// Signature format: 2.0
 package androidx.emoji.bundled {
 
   public class BundledEmojiCompatConfig extends androidx.emoji.text.EmojiCompat.Config {
diff --git a/emoji/core/api/1.0.0.txt b/emoji/core/api/1.0.0.txt
index 7b343a1..83b830a 100644
--- a/emoji/core/api/1.0.0.txt
+++ b/emoji/core/api/1.0.0.txt
@@ -1,23 +1,24 @@
+// Signature format: 2.0
 package androidx.emoji.text {
 
-  public class EmojiCompat {
-    method public static androidx.emoji.text.EmojiCompat get();
-    method public java.lang.String getAssetSignature();
+  @AnyThread public class EmojiCompat {
+    method public static androidx.emoji.text.EmojiCompat! get();
+    method public String getAssetSignature();
     method public int getLoadState();
-    method public static boolean handleDeleteSurroundingText(android.view.inputmethod.InputConnection, android.text.Editable, int, int, boolean);
-    method public static boolean handleOnKeyDown(android.text.Editable, int, android.view.KeyEvent);
-    method public boolean hasEmojiGlyph(java.lang.CharSequence);
-    method public boolean hasEmojiGlyph(java.lang.CharSequence, int);
-    method public static androidx.emoji.text.EmojiCompat init(androidx.emoji.text.EmojiCompat.Config);
+    method public static boolean handleDeleteSurroundingText(android.view.inputmethod.InputConnection, android.text.Editable, @IntRange(from=0) int, @IntRange(from=0) int, boolean);
+    method public static boolean handleOnKeyDown(android.text.Editable, int, android.view.KeyEvent!);
+    method public boolean hasEmojiGlyph(CharSequence);
+    method public boolean hasEmojiGlyph(CharSequence, @IntRange(from=0) int);
+    method public static androidx.emoji.text.EmojiCompat! init(androidx.emoji.text.EmojiCompat.Config);
     method public void load();
-    method public java.lang.CharSequence process(java.lang.CharSequence);
-    method public java.lang.CharSequence process(java.lang.CharSequence, int, int);
-    method public java.lang.CharSequence process(java.lang.CharSequence, int, int, int);
-    method public java.lang.CharSequence process(java.lang.CharSequence, int, int, int, int);
+    method @CheckResult public CharSequence! process(CharSequence);
+    method @CheckResult public CharSequence! process(CharSequence, @IntRange(from=0) int, @IntRange(from=0) int);
+    method @CheckResult public CharSequence! process(CharSequence, @IntRange(from=0) int, @IntRange(from=0) int, @IntRange(from=0) int);
+    method @CheckResult public CharSequence! process(CharSequence, @IntRange(from=0) int, @IntRange(from=0) int, @IntRange(from=0) int, int);
     method public void registerInitCallback(androidx.emoji.text.EmojiCompat.InitCallback);
     method public void unregisterInitCallback(androidx.emoji.text.EmojiCompat.InitCallback);
-    field public static final java.lang.String EDITOR_INFO_METAVERSION_KEY = "android.support.text.emoji.emojiCompat_metadataVersion";
-    field public static final java.lang.String EDITOR_INFO_REPLACE_ALL_KEY = "android.support.text.emoji.emojiCompat_replaceAll";
+    field public static final String EDITOR_INFO_METAVERSION_KEY = "android.support.text.emoji.emojiCompat_metadataVersion";
+    field public static final String EDITOR_INFO_REPLACE_ALL_KEY = "android.support.text.emoji.emojiCompat_replaceAll";
     field public static final int LOAD_STATE_DEFAULT = 3; // 0x3
     field public static final int LOAD_STATE_FAILED = 2; // 0x2
     field public static final int LOAD_STATE_LOADING = 0; // 0x0
@@ -29,43 +30,43 @@
     field public static final int REPLACE_STRATEGY_NON_EXISTENT = 2; // 0x2
   }
 
-  public static abstract class EmojiCompat.Config {
+  public abstract static class EmojiCompat.Config {
     ctor protected EmojiCompat.Config(androidx.emoji.text.EmojiCompat.MetadataRepoLoader);
-    method protected final androidx.emoji.text.EmojiCompat.MetadataRepoLoader getMetadataRepoLoader();
-    method public androidx.emoji.text.EmojiCompat.Config registerInitCallback(androidx.emoji.text.EmojiCompat.InitCallback);
-    method public androidx.emoji.text.EmojiCompat.Config setEmojiSpanIndicatorColor(int);
-    method public androidx.emoji.text.EmojiCompat.Config setEmojiSpanIndicatorEnabled(boolean);
-    method public androidx.emoji.text.EmojiCompat.Config setMetadataLoadStrategy(int);
-    method public androidx.emoji.text.EmojiCompat.Config setReplaceAll(boolean);
-    method public androidx.emoji.text.EmojiCompat.Config setUseEmojiAsDefaultStyle(boolean);
-    method public androidx.emoji.text.EmojiCompat.Config setUseEmojiAsDefaultStyle(boolean, java.util.List<java.lang.Integer>);
-    method public androidx.emoji.text.EmojiCompat.Config unregisterInitCallback(androidx.emoji.text.EmojiCompat.InitCallback);
+    method protected final androidx.emoji.text.EmojiCompat.MetadataRepoLoader! getMetadataRepoLoader();
+    method public androidx.emoji.text.EmojiCompat.Config! registerInitCallback(androidx.emoji.text.EmojiCompat.InitCallback);
+    method public androidx.emoji.text.EmojiCompat.Config! setEmojiSpanIndicatorColor(@ColorInt int);
+    method public androidx.emoji.text.EmojiCompat.Config! setEmojiSpanIndicatorEnabled(boolean);
+    method public androidx.emoji.text.EmojiCompat.Config! setMetadataLoadStrategy(int);
+    method public androidx.emoji.text.EmojiCompat.Config! setReplaceAll(boolean);
+    method public androidx.emoji.text.EmojiCompat.Config! setUseEmojiAsDefaultStyle(boolean);
+    method public androidx.emoji.text.EmojiCompat.Config! setUseEmojiAsDefaultStyle(boolean, java.util.List<java.lang.Integer>?);
+    method public androidx.emoji.text.EmojiCompat.Config! unregisterInitCallback(androidx.emoji.text.EmojiCompat.InitCallback);
   }
 
-  public static abstract class EmojiCompat.InitCallback {
+  public abstract static class EmojiCompat.InitCallback {
     ctor public EmojiCompat.InitCallback();
-    method public void onFailed(java.lang.Throwable);
+    method public void onFailed(Throwable?);
     method public void onInitialized();
   }
 
-  public static abstract interface EmojiCompat.MetadataRepoLoader {
-    method public abstract void load(androidx.emoji.text.EmojiCompat.MetadataRepoLoaderCallback);
+  public static interface EmojiCompat.MetadataRepoLoader {
+    method public void load(androidx.emoji.text.EmojiCompat.MetadataRepoLoaderCallback);
   }
 
-  public static abstract class EmojiCompat.MetadataRepoLoaderCallback {
+  public abstract static class EmojiCompat.MetadataRepoLoaderCallback {
     ctor public EmojiCompat.MetadataRepoLoaderCallback();
-    method public abstract void onFailed(java.lang.Throwable);
+    method public abstract void onFailed(Throwable?);
     method public abstract void onLoaded(androidx.emoji.text.MetadataRepo);
   }
 
-  public abstract class EmojiSpan extends android.text.style.ReplacementSpan {
-    method public int getSize(android.graphics.Paint, java.lang.CharSequence, int, int, android.graphics.Paint.FontMetricsInt);
+  @RequiresApi(19) public abstract class EmojiSpan extends android.text.style.ReplacementSpan {
+    method public int getSize(android.graphics.Paint, CharSequence!, int, int, android.graphics.Paint.FontMetricsInt!);
   }
 
   public class FontRequestEmojiCompatConfig extends androidx.emoji.text.EmojiCompat.Config {
     ctor public FontRequestEmojiCompatConfig(android.content.Context, androidx.core.provider.FontRequest);
-    method public androidx.emoji.text.FontRequestEmojiCompatConfig setHandler(android.os.Handler);
-    method public androidx.emoji.text.FontRequestEmojiCompatConfig setRetryPolicy(androidx.emoji.text.FontRequestEmojiCompatConfig.RetryPolicy);
+    method public androidx.emoji.text.FontRequestEmojiCompatConfig! setHandler(android.os.Handler!);
+    method public androidx.emoji.text.FontRequestEmojiCompatConfig! setRetryPolicy(androidx.emoji.text.FontRequestEmojiCompatConfig.RetryPolicy!);
   }
 
   public static class FontRequestEmojiCompatConfig.ExponentialBackoffRetryPolicy extends androidx.emoji.text.FontRequestEmojiCompatConfig.RetryPolicy {
@@ -73,15 +74,15 @@
     method public long getRetryDelay();
   }
 
-  public static abstract class FontRequestEmojiCompatConfig.RetryPolicy {
+  public abstract static class FontRequestEmojiCompatConfig.RetryPolicy {
     ctor public FontRequestEmojiCompatConfig.RetryPolicy();
     method public abstract long getRetryDelay();
   }
 
-  public final class MetadataRepo {
-    method public static androidx.emoji.text.MetadataRepo create(android.graphics.Typeface, java.io.InputStream) throws java.io.IOException;
-    method public static androidx.emoji.text.MetadataRepo create(android.graphics.Typeface, java.nio.ByteBuffer) throws java.io.IOException;
-    method public static androidx.emoji.text.MetadataRepo create(android.content.res.AssetManager, java.lang.String) throws java.io.IOException;
+  @AnyThread @RequiresApi(19) public final class MetadataRepo {
+    method public static androidx.emoji.text.MetadataRepo! create(android.graphics.Typeface, java.io.InputStream) throws java.io.IOException;
+    method public static androidx.emoji.text.MetadataRepo! create(android.graphics.Typeface, java.nio.ByteBuffer) throws java.io.IOException;
+    method public static androidx.emoji.text.MetadataRepo! create(android.content.res.AssetManager, String!) throws java.io.IOException;
   }
 
 }
@@ -89,44 +90,44 @@
 package androidx.emoji.widget {
 
   public class EmojiButton extends android.widget.Button {
-    ctor public EmojiButton(android.content.Context);
-    ctor public EmojiButton(android.content.Context, android.util.AttributeSet);
-    ctor public EmojiButton(android.content.Context, android.util.AttributeSet, int);
-    ctor public EmojiButton(android.content.Context, android.util.AttributeSet, int, int);
+    ctor public EmojiButton(android.content.Context!);
+    ctor public EmojiButton(android.content.Context!, android.util.AttributeSet!);
+    ctor public EmojiButton(android.content.Context!, android.util.AttributeSet!, int);
+    ctor @RequiresApi(android.os.Build.VERSION_CODES.LOLLIPOP) public EmojiButton(android.content.Context!, android.util.AttributeSet!, int, int);
   }
 
   public class EmojiEditText extends android.widget.EditText {
-    ctor public EmojiEditText(android.content.Context);
-    ctor public EmojiEditText(android.content.Context, android.util.AttributeSet);
-    ctor public EmojiEditText(android.content.Context, android.util.AttributeSet, int);
-    ctor public EmojiEditText(android.content.Context, android.util.AttributeSet, int, int);
+    ctor public EmojiEditText(android.content.Context!);
+    ctor public EmojiEditText(android.content.Context!, android.util.AttributeSet!);
+    ctor public EmojiEditText(android.content.Context!, android.util.AttributeSet!, int);
+    ctor @RequiresApi(android.os.Build.VERSION_CODES.LOLLIPOP) public EmojiEditText(android.content.Context!, android.util.AttributeSet!, int, int);
     method public int getMaxEmojiCount();
-    method public void setMaxEmojiCount(int);
+    method public void setMaxEmojiCount(@IntRange(from=0) int);
   }
 
   public final class EmojiEditTextHelper {
     ctor public EmojiEditTextHelper(android.widget.EditText);
     method public android.text.method.KeyListener getKeyListener(android.text.method.KeyListener);
     method public int getMaxEmojiCount();
-    method public android.view.inputmethod.InputConnection onCreateInputConnection(android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo);
-    method public void setMaxEmojiCount(int);
+    method public android.view.inputmethod.InputConnection? onCreateInputConnection(android.view.inputmethod.InputConnection?, android.view.inputmethod.EditorInfo);
+    method public void setMaxEmojiCount(@IntRange(from=0) int);
   }
 
   public class EmojiExtractTextLayout extends android.widget.LinearLayout {
-    ctor public EmojiExtractTextLayout(android.content.Context);
-    ctor public EmojiExtractTextLayout(android.content.Context, android.util.AttributeSet);
-    ctor public EmojiExtractTextLayout(android.content.Context, android.util.AttributeSet, int);
-    ctor public EmojiExtractTextLayout(android.content.Context, android.util.AttributeSet, int, int);
+    ctor public EmojiExtractTextLayout(android.content.Context!);
+    ctor public EmojiExtractTextLayout(android.content.Context!, android.util.AttributeSet?);
+    ctor public EmojiExtractTextLayout(android.content.Context!, android.util.AttributeSet?, int);
+    ctor @RequiresApi(api=android.os.Build.VERSION_CODES.LOLLIPOP) public EmojiExtractTextLayout(android.content.Context!, android.util.AttributeSet!, int, int);
     method public int getEmojiReplaceStrategy();
-    method public void onUpdateExtractingViews(android.inputmethodservice.InputMethodService, android.view.inputmethod.EditorInfo);
+    method public void onUpdateExtractingViews(android.inputmethodservice.InputMethodService!, android.view.inputmethod.EditorInfo!);
     method public void setEmojiReplaceStrategy(int);
   }
 
   public class EmojiTextView extends android.widget.TextView {
-    ctor public EmojiTextView(android.content.Context);
-    ctor public EmojiTextView(android.content.Context, android.util.AttributeSet);
-    ctor public EmojiTextView(android.content.Context, android.util.AttributeSet, int);
-    ctor public EmojiTextView(android.content.Context, android.util.AttributeSet, int, int);
+    ctor public EmojiTextView(android.content.Context!);
+    ctor public EmojiTextView(android.content.Context!, android.util.AttributeSet!);
+    ctor public EmojiTextView(android.content.Context!, android.util.AttributeSet!, int);
+    ctor @RequiresApi(api=android.os.Build.VERSION_CODES.LOLLIPOP) public EmojiTextView(android.content.Context!, android.util.AttributeSet!, int, int);
   }
 
   public final class EmojiTextViewHelper {
@@ -134,7 +135,7 @@
     method public android.text.InputFilter[] getFilters(android.text.InputFilter[]);
     method public void setAllCaps(boolean);
     method public void updateTransformationMethod();
-    method public android.text.method.TransformationMethod wrapTransformationMethod(android.text.method.TransformationMethod);
+    method public android.text.method.TransformationMethod? wrapTransformationMethod(android.text.method.TransformationMethod?);
   }
 
 }
diff --git a/exifinterface/api/1.0.0.txt b/exifinterface/api/1.0.0.txt
index 0e407ce..6cd01d3 100644
--- a/exifinterface/api/1.0.0.txt
+++ b/exifinterface/api/1.0.0.txt
@@ -1,21 +1,22 @@
+// Signature format: 2.0
 package androidx.exifinterface.media {
 
   public class ExifInterface {
-    ctor public ExifInterface(java.lang.String) throws java.io.IOException;
+    ctor public ExifInterface(String) throws java.io.IOException;
     ctor public ExifInterface(java.io.InputStream) throws java.io.IOException;
     method public void flipHorizontally();
     method public void flipVertically();
     method public double getAltitude(double);
-    method public java.lang.String getAttribute(java.lang.String);
-    method public double getAttributeDouble(java.lang.String, double);
-    method public int getAttributeInt(java.lang.String, int);
-    method public deprecated boolean getLatLong(float[]);
-    method public double[] getLatLong();
+    method public String? getAttribute(String);
+    method public double getAttributeDouble(String, double);
+    method public int getAttributeInt(String, int);
+    method @Deprecated public boolean getLatLong(float[]!);
+    method public double[]? getLatLong();
     method public int getRotationDegrees();
-    method public byte[] getThumbnail();
-    method public android.graphics.Bitmap getThumbnailBitmap();
-    method public byte[] getThumbnailBytes();
-    method public long[] getThumbnailRange();
+    method public byte[]? getThumbnail();
+    method public android.graphics.Bitmap? getThumbnailBitmap();
+    method public byte[]? getThumbnailBytes();
+    method public long[]? getThumbnailRange();
     method public boolean hasThumbnail();
     method public boolean isFlipped();
     method public boolean isThumbnailCompressed();
@@ -23,14 +24,14 @@
     method public void rotate(int);
     method public void saveAttributes() throws java.io.IOException;
     method public void setAltitude(double);
-    method public void setAttribute(java.lang.String, java.lang.String);
-    method public void setGpsInfo(android.location.Location);
+    method public void setAttribute(String, String?);
+    method public void setGpsInfo(android.location.Location!);
     method public void setLatLong(double, double);
     field public static final short ALTITUDE_ABOVE_SEA_LEVEL = 0; // 0x0
     field public static final short ALTITUDE_BELOW_SEA_LEVEL = 1; // 0x1
-    field public static final int[] BITS_PER_SAMPLE_GREYSCALE_1;
-    field public static final int[] BITS_PER_SAMPLE_GREYSCALE_2;
-    field public static final int[] BITS_PER_SAMPLE_RGB;
+    field public static final int[]! BITS_PER_SAMPLE_GREYSCALE_1;
+    field public static final int[]! BITS_PER_SAMPLE_GREYSCALE_2;
+    field public static final int[]! BITS_PER_SAMPLE_RGB;
     field public static final int COLOR_SPACE_S_RGB = 1; // 0x1
     field public static final int COLOR_SPACE_UNCALIBRATED = 65535; // 0xffff
     field public static final short CONTRAST_HARD = 2; // 0x2
@@ -74,22 +75,22 @@
     field public static final short GAIN_CONTROL_LOW_GAIN_DOWN = 3; // 0x3
     field public static final short GAIN_CONTROL_LOW_GAIN_UP = 1; // 0x1
     field public static final short GAIN_CONTROL_NONE = 0; // 0x0
-    field public static final java.lang.String GPS_DIRECTION_MAGNETIC = "M";
-    field public static final java.lang.String GPS_DIRECTION_TRUE = "T";
-    field public static final java.lang.String GPS_DISTANCE_KILOMETERS = "K";
-    field public static final java.lang.String GPS_DISTANCE_MILES = "M";
-    field public static final java.lang.String GPS_DISTANCE_NAUTICAL_MILES = "N";
-    field public static final java.lang.String GPS_MEASUREMENT_2D = "2";
-    field public static final java.lang.String GPS_MEASUREMENT_3D = "3";
+    field public static final String GPS_DIRECTION_MAGNETIC = "M";
+    field public static final String GPS_DIRECTION_TRUE = "T";
+    field public static final String GPS_DISTANCE_KILOMETERS = "K";
+    field public static final String GPS_DISTANCE_MILES = "M";
+    field public static final String GPS_DISTANCE_NAUTICAL_MILES = "N";
+    field public static final String GPS_MEASUREMENT_2D = "2";
+    field public static final String GPS_MEASUREMENT_3D = "3";
     field public static final short GPS_MEASUREMENT_DIFFERENTIAL_CORRECTED = 1; // 0x1
-    field public static final java.lang.String GPS_MEASUREMENT_INTERRUPTED = "V";
-    field public static final java.lang.String GPS_MEASUREMENT_IN_PROGRESS = "A";
+    field public static final String GPS_MEASUREMENT_INTERRUPTED = "V";
+    field public static final String GPS_MEASUREMENT_IN_PROGRESS = "A";
     field public static final short GPS_MEASUREMENT_NO_DIFFERENTIAL = 0; // 0x0
-    field public static final java.lang.String GPS_SPEED_KILOMETERS_PER_HOUR = "K";
-    field public static final java.lang.String GPS_SPEED_KNOTS = "N";
-    field public static final java.lang.String GPS_SPEED_MILES_PER_HOUR = "M";
-    field public static final java.lang.String LATITUDE_NORTH = "N";
-    field public static final java.lang.String LATITUDE_SOUTH = "S";
+    field public static final String GPS_SPEED_KILOMETERS_PER_HOUR = "K";
+    field public static final String GPS_SPEED_KNOTS = "N";
+    field public static final String GPS_SPEED_MILES_PER_HOUR = "M";
+    field public static final String LATITUDE_NORTH = "N";
+    field public static final String LATITUDE_SOUTH = "S";
     field public static final short LIGHT_SOURCE_CLOUDY_WEATHER = 10; // 0xa
     field public static final short LIGHT_SOURCE_COOL_WHITE_FLUORESCENT = 14; // 0xe
     field public static final short LIGHT_SOURCE_D50 = 23; // 0x17
@@ -112,8 +113,8 @@
     field public static final short LIGHT_SOURCE_UNKNOWN = 0; // 0x0
     field public static final short LIGHT_SOURCE_WARM_WHITE_FLUORESCENT = 16; // 0x10
     field public static final short LIGHT_SOURCE_WHITE_FLUORESCENT = 15; // 0xf
-    field public static final java.lang.String LONGITUDE_EAST = "E";
-    field public static final java.lang.String LONGITUDE_WEST = "W";
+    field public static final String LONGITUDE_EAST = "E";
+    field public static final String LONGITUDE_WEST = "W";
     field public static final short METERING_MODE_AVERAGE = 1; // 0x1
     field public static final short METERING_MODE_CENTER_WEIGHT_AVERAGE = 2; // 0x2
     field public static final short METERING_MODE_MULTI_SPOT = 4; // 0x4
@@ -171,157 +172,157 @@
     field public static final short SUBJECT_DISTANCE_RANGE_DISTANT_VIEW = 3; // 0x3
     field public static final short SUBJECT_DISTANCE_RANGE_MACRO = 1; // 0x1
     field public static final short SUBJECT_DISTANCE_RANGE_UNKNOWN = 0; // 0x0
-    field public static final java.lang.String TAG_APERTURE_VALUE = "ApertureValue";
-    field public static final java.lang.String TAG_ARTIST = "Artist";
-    field public static final java.lang.String TAG_BITS_PER_SAMPLE = "BitsPerSample";
-    field public static final java.lang.String TAG_BODY_SERIAL_NUMBER = "BodySerialNumber";
-    field public static final java.lang.String TAG_BRIGHTNESS_VALUE = "BrightnessValue";
-    field public static final java.lang.String TAG_CAMARA_OWNER_NAME = "CameraOwnerName";
-    field public static final java.lang.String TAG_CFA_PATTERN = "CFAPattern";
-    field public static final java.lang.String TAG_COLOR_SPACE = "ColorSpace";
-    field public static final java.lang.String TAG_COMPONENTS_CONFIGURATION = "ComponentsConfiguration";
-    field public static final java.lang.String TAG_COMPRESSED_BITS_PER_PIXEL = "CompressedBitsPerPixel";
-    field public static final java.lang.String TAG_COMPRESSION = "Compression";
-    field public static final java.lang.String TAG_CONTRAST = "Contrast";
-    field public static final java.lang.String TAG_COPYRIGHT = "Copyright";
-    field public static final java.lang.String TAG_CUSTOM_RENDERED = "CustomRendered";
-    field public static final java.lang.String TAG_DATETIME = "DateTime";
-    field public static final java.lang.String TAG_DATETIME_DIGITIZED = "DateTimeDigitized";
-    field public static final java.lang.String TAG_DATETIME_ORIGINAL = "DateTimeOriginal";
-    field public static final java.lang.String TAG_DEFAULT_CROP_SIZE = "DefaultCropSize";
-    field public static final java.lang.String TAG_DEVICE_SETTING_DESCRIPTION = "DeviceSettingDescription";
-    field public static final java.lang.String TAG_DIGITAL_ZOOM_RATIO = "DigitalZoomRatio";
-    field public static final java.lang.String TAG_DNG_VERSION = "DNGVersion";
-    field public static final java.lang.String TAG_EXIF_VERSION = "ExifVersion";
-    field public static final java.lang.String TAG_EXPOSURE_BIAS_VALUE = "ExposureBiasValue";
-    field public static final java.lang.String TAG_EXPOSURE_INDEX = "ExposureIndex";
-    field public static final java.lang.String TAG_EXPOSURE_MODE = "ExposureMode";
-    field public static final java.lang.String TAG_EXPOSURE_PROGRAM = "ExposureProgram";
-    field public static final java.lang.String TAG_EXPOSURE_TIME = "ExposureTime";
-    field public static final java.lang.String TAG_FILE_SOURCE = "FileSource";
-    field public static final java.lang.String TAG_FLASH = "Flash";
-    field public static final java.lang.String TAG_FLASHPIX_VERSION = "FlashpixVersion";
-    field public static final java.lang.String TAG_FLASH_ENERGY = "FlashEnergy";
-    field public static final java.lang.String TAG_FOCAL_LENGTH = "FocalLength";
-    field public static final java.lang.String TAG_FOCAL_LENGTH_IN_35MM_FILM = "FocalLengthIn35mmFilm";
-    field public static final java.lang.String TAG_FOCAL_PLANE_RESOLUTION_UNIT = "FocalPlaneResolutionUnit";
-    field public static final java.lang.String TAG_FOCAL_PLANE_X_RESOLUTION = "FocalPlaneXResolution";
-    field public static final java.lang.String TAG_FOCAL_PLANE_Y_RESOLUTION = "FocalPlaneYResolution";
-    field public static final java.lang.String TAG_F_NUMBER = "FNumber";
-    field public static final java.lang.String TAG_GAIN_CONTROL = "GainControl";
-    field public static final java.lang.String TAG_GAMMA = "Gamma";
-    field public static final java.lang.String TAG_GPS_ALTITUDE = "GPSAltitude";
-    field public static final java.lang.String TAG_GPS_ALTITUDE_REF = "GPSAltitudeRef";
-    field public static final java.lang.String TAG_GPS_AREA_INFORMATION = "GPSAreaInformation";
-    field public static final java.lang.String TAG_GPS_DATESTAMP = "GPSDateStamp";
-    field public static final java.lang.String TAG_GPS_DEST_BEARING = "GPSDestBearing";
-    field public static final java.lang.String TAG_GPS_DEST_BEARING_REF = "GPSDestBearingRef";
-    field public static final java.lang.String TAG_GPS_DEST_DISTANCE = "GPSDestDistance";
-    field public static final java.lang.String TAG_GPS_DEST_DISTANCE_REF = "GPSDestDistanceRef";
-    field public static final java.lang.String TAG_GPS_DEST_LATITUDE = "GPSDestLatitude";
-    field public static final java.lang.String TAG_GPS_DEST_LATITUDE_REF = "GPSDestLatitudeRef";
-    field public static final java.lang.String TAG_GPS_DEST_LONGITUDE = "GPSDestLongitude";
-    field public static final java.lang.String TAG_GPS_DEST_LONGITUDE_REF = "GPSDestLongitudeRef";
-    field public static final java.lang.String TAG_GPS_DIFFERENTIAL = "GPSDifferential";
-    field public static final java.lang.String TAG_GPS_DOP = "GPSDOP";
-    field public static final java.lang.String TAG_GPS_H_POSITIONING_ERROR = "GPSHPositioningError";
-    field public static final java.lang.String TAG_GPS_IMG_DIRECTION = "GPSImgDirection";
-    field public static final java.lang.String TAG_GPS_IMG_DIRECTION_REF = "GPSImgDirectionRef";
-    field public static final java.lang.String TAG_GPS_LATITUDE = "GPSLatitude";
-    field public static final java.lang.String TAG_GPS_LATITUDE_REF = "GPSLatitudeRef";
-    field public static final java.lang.String TAG_GPS_LONGITUDE = "GPSLongitude";
-    field public static final java.lang.String TAG_GPS_LONGITUDE_REF = "GPSLongitudeRef";
-    field public static final java.lang.String TAG_GPS_MAP_DATUM = "GPSMapDatum";
-    field public static final java.lang.String TAG_GPS_MEASURE_MODE = "GPSMeasureMode";
-    field public static final java.lang.String TAG_GPS_PROCESSING_METHOD = "GPSProcessingMethod";
-    field public static final java.lang.String TAG_GPS_SATELLITES = "GPSSatellites";
-    field public static final java.lang.String TAG_GPS_SPEED = "GPSSpeed";
-    field public static final java.lang.String TAG_GPS_SPEED_REF = "GPSSpeedRef";
-    field public static final java.lang.String TAG_GPS_STATUS = "GPSStatus";
-    field public static final java.lang.String TAG_GPS_TIMESTAMP = "GPSTimeStamp";
-    field public static final java.lang.String TAG_GPS_TRACK = "GPSTrack";
-    field public static final java.lang.String TAG_GPS_TRACK_REF = "GPSTrackRef";
-    field public static final java.lang.String TAG_GPS_VERSION_ID = "GPSVersionID";
-    field public static final java.lang.String TAG_IMAGE_DESCRIPTION = "ImageDescription";
-    field public static final java.lang.String TAG_IMAGE_LENGTH = "ImageLength";
-    field public static final java.lang.String TAG_IMAGE_UNIQUE_ID = "ImageUniqueID";
-    field public static final java.lang.String TAG_IMAGE_WIDTH = "ImageWidth";
-    field public static final java.lang.String TAG_INTEROPERABILITY_INDEX = "InteroperabilityIndex";
-    field public static final java.lang.String TAG_ISO_SPEED = "ISOSpeed";
-    field public static final java.lang.String TAG_ISO_SPEED_LATITUDE_YYY = "ISOSpeedLatitudeyyy";
-    field public static final java.lang.String TAG_ISO_SPEED_LATITUDE_ZZZ = "ISOSpeedLatitudezzz";
-    field public static final deprecated java.lang.String TAG_ISO_SPEED_RATINGS = "ISOSpeedRatings";
-    field public static final java.lang.String TAG_JPEG_INTERCHANGE_FORMAT = "JPEGInterchangeFormat";
-    field public static final java.lang.String TAG_JPEG_INTERCHANGE_FORMAT_LENGTH = "JPEGInterchangeFormatLength";
-    field public static final java.lang.String TAG_LENS_MAKE = "LensMake";
-    field public static final java.lang.String TAG_LENS_MODEL = "LensModel";
-    field public static final java.lang.String TAG_LENS_SERIAL_NUMBER = "LensSerialNumber";
-    field public static final java.lang.String TAG_LENS_SPECIFICATION = "LensSpecification";
-    field public static final java.lang.String TAG_LIGHT_SOURCE = "LightSource";
-    field public static final java.lang.String TAG_MAKE = "Make";
-    field public static final java.lang.String TAG_MAKER_NOTE = "MakerNote";
-    field public static final java.lang.String TAG_MAX_APERTURE_VALUE = "MaxApertureValue";
-    field public static final java.lang.String TAG_METERING_MODE = "MeteringMode";
-    field public static final java.lang.String TAG_MODEL = "Model";
-    field public static final java.lang.String TAG_NEW_SUBFILE_TYPE = "NewSubfileType";
-    field public static final java.lang.String TAG_OECF = "OECF";
-    field public static final java.lang.String TAG_ORF_ASPECT_FRAME = "AspectFrame";
-    field public static final java.lang.String TAG_ORF_PREVIEW_IMAGE_LENGTH = "PreviewImageLength";
-    field public static final java.lang.String TAG_ORF_PREVIEW_IMAGE_START = "PreviewImageStart";
-    field public static final java.lang.String TAG_ORF_THUMBNAIL_IMAGE = "ThumbnailImage";
-    field public static final java.lang.String TAG_ORIENTATION = "Orientation";
-    field public static final java.lang.String TAG_PHOTOGRAPHIC_SENSITIVITY = "PhotographicSensitivity";
-    field public static final java.lang.String TAG_PHOTOMETRIC_INTERPRETATION = "PhotometricInterpretation";
-    field public static final java.lang.String TAG_PIXEL_X_DIMENSION = "PixelXDimension";
-    field public static final java.lang.String TAG_PIXEL_Y_DIMENSION = "PixelYDimension";
-    field public static final java.lang.String TAG_PLANAR_CONFIGURATION = "PlanarConfiguration";
-    field public static final java.lang.String TAG_PRIMARY_CHROMATICITIES = "PrimaryChromaticities";
-    field public static final java.lang.String TAG_RECOMMENDED_EXPOSURE_INDEX = "RecommendedExposureIndex";
-    field public static final java.lang.String TAG_REFERENCE_BLACK_WHITE = "ReferenceBlackWhite";
-    field public static final java.lang.String TAG_RELATED_SOUND_FILE = "RelatedSoundFile";
-    field public static final java.lang.String TAG_RESOLUTION_UNIT = "ResolutionUnit";
-    field public static final java.lang.String TAG_ROWS_PER_STRIP = "RowsPerStrip";
-    field public static final java.lang.String TAG_RW2_ISO = "ISO";
-    field public static final java.lang.String TAG_RW2_JPG_FROM_RAW = "JpgFromRaw";
-    field public static final java.lang.String TAG_RW2_SENSOR_BOTTOM_BORDER = "SensorBottomBorder";
-    field public static final java.lang.String TAG_RW2_SENSOR_LEFT_BORDER = "SensorLeftBorder";
-    field public static final java.lang.String TAG_RW2_SENSOR_RIGHT_BORDER = "SensorRightBorder";
-    field public static final java.lang.String TAG_RW2_SENSOR_TOP_BORDER = "SensorTopBorder";
-    field public static final java.lang.String TAG_SAMPLES_PER_PIXEL = "SamplesPerPixel";
-    field public static final java.lang.String TAG_SATURATION = "Saturation";
-    field public static final java.lang.String TAG_SCENE_CAPTURE_TYPE = "SceneCaptureType";
-    field public static final java.lang.String TAG_SCENE_TYPE = "SceneType";
-    field public static final java.lang.String TAG_SENSING_METHOD = "SensingMethod";
-    field public static final java.lang.String TAG_SENSITIVITY_TYPE = "SensitivityType";
-    field public static final java.lang.String TAG_SHARPNESS = "Sharpness";
-    field public static final java.lang.String TAG_SHUTTER_SPEED_VALUE = "ShutterSpeedValue";
-    field public static final java.lang.String TAG_SOFTWARE = "Software";
-    field public static final java.lang.String TAG_SPATIAL_FREQUENCY_RESPONSE = "SpatialFrequencyResponse";
-    field public static final java.lang.String TAG_SPECTRAL_SENSITIVITY = "SpectralSensitivity";
-    field public static final java.lang.String TAG_STANDARD_OUTPUT_SENSITIVITY = "StandardOutputSensitivity";
-    field public static final java.lang.String TAG_STRIP_BYTE_COUNTS = "StripByteCounts";
-    field public static final java.lang.String TAG_STRIP_OFFSETS = "StripOffsets";
-    field public static final java.lang.String TAG_SUBFILE_TYPE = "SubfileType";
-    field public static final java.lang.String TAG_SUBJECT_AREA = "SubjectArea";
-    field public static final java.lang.String TAG_SUBJECT_DISTANCE = "SubjectDistance";
-    field public static final java.lang.String TAG_SUBJECT_DISTANCE_RANGE = "SubjectDistanceRange";
-    field public static final java.lang.String TAG_SUBJECT_LOCATION = "SubjectLocation";
-    field public static final java.lang.String TAG_SUBSEC_TIME = "SubSecTime";
-    field public static final java.lang.String TAG_SUBSEC_TIME_DIGITIZED = "SubSecTimeDigitized";
-    field public static final java.lang.String TAG_SUBSEC_TIME_ORIGINAL = "SubSecTimeOriginal";
-    field public static final java.lang.String TAG_THUMBNAIL_IMAGE_LENGTH = "ThumbnailImageLength";
-    field public static final java.lang.String TAG_THUMBNAIL_IMAGE_WIDTH = "ThumbnailImageWidth";
-    field public static final java.lang.String TAG_TRANSFER_FUNCTION = "TransferFunction";
-    field public static final java.lang.String TAG_USER_COMMENT = "UserComment";
-    field public static final java.lang.String TAG_WHITE_BALANCE = "WhiteBalance";
-    field public static final java.lang.String TAG_WHITE_POINT = "WhitePoint";
-    field public static final java.lang.String TAG_X_RESOLUTION = "XResolution";
-    field public static final java.lang.String TAG_Y_CB_CR_COEFFICIENTS = "YCbCrCoefficients";
-    field public static final java.lang.String TAG_Y_CB_CR_POSITIONING = "YCbCrPositioning";
-    field public static final java.lang.String TAG_Y_CB_CR_SUB_SAMPLING = "YCbCrSubSampling";
-    field public static final java.lang.String TAG_Y_RESOLUTION = "YResolution";
-    field public static final deprecated int WHITEBALANCE_AUTO = 0; // 0x0
-    field public static final deprecated int WHITEBALANCE_MANUAL = 1; // 0x1
+    field public static final String TAG_APERTURE_VALUE = "ApertureValue";
+    field public static final String TAG_ARTIST = "Artist";
+    field public static final String TAG_BITS_PER_SAMPLE = "BitsPerSample";
+    field public static final String TAG_BODY_SERIAL_NUMBER = "BodySerialNumber";
+    field public static final String TAG_BRIGHTNESS_VALUE = "BrightnessValue";
+    field public static final String TAG_CAMARA_OWNER_NAME = "CameraOwnerName";
+    field public static final String TAG_CFA_PATTERN = "CFAPattern";
+    field public static final String TAG_COLOR_SPACE = "ColorSpace";
+    field public static final String TAG_COMPONENTS_CONFIGURATION = "ComponentsConfiguration";
+    field public static final String TAG_COMPRESSED_BITS_PER_PIXEL = "CompressedBitsPerPixel";
+    field public static final String TAG_COMPRESSION = "Compression";
+    field public static final String TAG_CONTRAST = "Contrast";
+    field public static final String TAG_COPYRIGHT = "Copyright";
+    field public static final String TAG_CUSTOM_RENDERED = "CustomRendered";
+    field public static final String TAG_DATETIME = "DateTime";
+    field public static final String TAG_DATETIME_DIGITIZED = "DateTimeDigitized";
+    field public static final String TAG_DATETIME_ORIGINAL = "DateTimeOriginal";
+    field public static final String TAG_DEFAULT_CROP_SIZE = "DefaultCropSize";
+    field public static final String TAG_DEVICE_SETTING_DESCRIPTION = "DeviceSettingDescription";
+    field public static final String TAG_DIGITAL_ZOOM_RATIO = "DigitalZoomRatio";
+    field public static final String TAG_DNG_VERSION = "DNGVersion";
+    field public static final String TAG_EXIF_VERSION = "ExifVersion";
+    field public static final String TAG_EXPOSURE_BIAS_VALUE = "ExposureBiasValue";
+    field public static final String TAG_EXPOSURE_INDEX = "ExposureIndex";
+    field public static final String TAG_EXPOSURE_MODE = "ExposureMode";
+    field public static final String TAG_EXPOSURE_PROGRAM = "ExposureProgram";
+    field public static final String TAG_EXPOSURE_TIME = "ExposureTime";
+    field public static final String TAG_FILE_SOURCE = "FileSource";
+    field public static final String TAG_FLASH = "Flash";
+    field public static final String TAG_FLASHPIX_VERSION = "FlashpixVersion";
+    field public static final String TAG_FLASH_ENERGY = "FlashEnergy";
+    field public static final String TAG_FOCAL_LENGTH = "FocalLength";
+    field public static final String TAG_FOCAL_LENGTH_IN_35MM_FILM = "FocalLengthIn35mmFilm";
+    field public static final String TAG_FOCAL_PLANE_RESOLUTION_UNIT = "FocalPlaneResolutionUnit";
+    field public static final String TAG_FOCAL_PLANE_X_RESOLUTION = "FocalPlaneXResolution";
+    field public static final String TAG_FOCAL_PLANE_Y_RESOLUTION = "FocalPlaneYResolution";
+    field public static final String TAG_F_NUMBER = "FNumber";
+    field public static final String TAG_GAIN_CONTROL = "GainControl";
+    field public static final String TAG_GAMMA = "Gamma";
+    field public static final String TAG_GPS_ALTITUDE = "GPSAltitude";
+    field public static final String TAG_GPS_ALTITUDE_REF = "GPSAltitudeRef";
+    field public static final String TAG_GPS_AREA_INFORMATION = "GPSAreaInformation";
+    field public static final String TAG_GPS_DATESTAMP = "GPSDateStamp";
+    field public static final String TAG_GPS_DEST_BEARING = "GPSDestBearing";
+    field public static final String TAG_GPS_DEST_BEARING_REF = "GPSDestBearingRef";
+    field public static final String TAG_GPS_DEST_DISTANCE = "GPSDestDistance";
+    field public static final String TAG_GPS_DEST_DISTANCE_REF = "GPSDestDistanceRef";
+    field public static final String TAG_GPS_DEST_LATITUDE = "GPSDestLatitude";
+    field public static final String TAG_GPS_DEST_LATITUDE_REF = "GPSDestLatitudeRef";
+    field public static final String TAG_GPS_DEST_LONGITUDE = "GPSDestLongitude";
+    field public static final String TAG_GPS_DEST_LONGITUDE_REF = "GPSDestLongitudeRef";
+    field public static final String TAG_GPS_DIFFERENTIAL = "GPSDifferential";
+    field public static final String TAG_GPS_DOP = "GPSDOP";
+    field public static final String TAG_GPS_H_POSITIONING_ERROR = "GPSHPositioningError";
+    field public static final String TAG_GPS_IMG_DIRECTION = "GPSImgDirection";
+    field public static final String TAG_GPS_IMG_DIRECTION_REF = "GPSImgDirectionRef";
+    field public static final String TAG_GPS_LATITUDE = "GPSLatitude";
+    field public static final String TAG_GPS_LATITUDE_REF = "GPSLatitudeRef";
+    field public static final String TAG_GPS_LONGITUDE = "GPSLongitude";
+    field public static final String TAG_GPS_LONGITUDE_REF = "GPSLongitudeRef";
+    field public static final String TAG_GPS_MAP_DATUM = "GPSMapDatum";
+    field public static final String TAG_GPS_MEASURE_MODE = "GPSMeasureMode";
+    field public static final String TAG_GPS_PROCESSING_METHOD = "GPSProcessingMethod";
+    field public static final String TAG_GPS_SATELLITES = "GPSSatellites";
+    field public static final String TAG_GPS_SPEED = "GPSSpeed";
+    field public static final String TAG_GPS_SPEED_REF = "GPSSpeedRef";
+    field public static final String TAG_GPS_STATUS = "GPSStatus";
+    field public static final String TAG_GPS_TIMESTAMP = "GPSTimeStamp";
+    field public static final String TAG_GPS_TRACK = "GPSTrack";
+    field public static final String TAG_GPS_TRACK_REF = "GPSTrackRef";
+    field public static final String TAG_GPS_VERSION_ID = "GPSVersionID";
+    field public static final String TAG_IMAGE_DESCRIPTION = "ImageDescription";
+    field public static final String TAG_IMAGE_LENGTH = "ImageLength";
+    field public static final String TAG_IMAGE_UNIQUE_ID = "ImageUniqueID";
+    field public static final String TAG_IMAGE_WIDTH = "ImageWidth";
+    field public static final String TAG_INTEROPERABILITY_INDEX = "InteroperabilityIndex";
+    field public static final String TAG_ISO_SPEED = "ISOSpeed";
+    field public static final String TAG_ISO_SPEED_LATITUDE_YYY = "ISOSpeedLatitudeyyy";
+    field public static final String TAG_ISO_SPEED_LATITUDE_ZZZ = "ISOSpeedLatitudezzz";
+    field @Deprecated public static final String TAG_ISO_SPEED_RATINGS = "ISOSpeedRatings";
+    field public static final String TAG_JPEG_INTERCHANGE_FORMAT = "JPEGInterchangeFormat";
+    field public static final String TAG_JPEG_INTERCHANGE_FORMAT_LENGTH = "JPEGInterchangeFormatLength";
+    field public static final String TAG_LENS_MAKE = "LensMake";
+    field public static final String TAG_LENS_MODEL = "LensModel";
+    field public static final String TAG_LENS_SERIAL_NUMBER = "LensSerialNumber";
+    field public static final String TAG_LENS_SPECIFICATION = "LensSpecification";
+    field public static final String TAG_LIGHT_SOURCE = "LightSource";
+    field public static final String TAG_MAKE = "Make";
+    field public static final String TAG_MAKER_NOTE = "MakerNote";
+    field public static final String TAG_MAX_APERTURE_VALUE = "MaxApertureValue";
+    field public static final String TAG_METERING_MODE = "MeteringMode";
+    field public static final String TAG_MODEL = "Model";
+    field public static final String TAG_NEW_SUBFILE_TYPE = "NewSubfileType";
+    field public static final String TAG_OECF = "OECF";
+    field public static final String TAG_ORF_ASPECT_FRAME = "AspectFrame";
+    field public static final String TAG_ORF_PREVIEW_IMAGE_LENGTH = "PreviewImageLength";
+    field public static final String TAG_ORF_PREVIEW_IMAGE_START = "PreviewImageStart";
+    field public static final String TAG_ORF_THUMBNAIL_IMAGE = "ThumbnailImage";
+    field public static final String TAG_ORIENTATION = "Orientation";
+    field public static final String TAG_PHOTOGRAPHIC_SENSITIVITY = "PhotographicSensitivity";
+    field public static final String TAG_PHOTOMETRIC_INTERPRETATION = "PhotometricInterpretation";
+    field public static final String TAG_PIXEL_X_DIMENSION = "PixelXDimension";
+    field public static final String TAG_PIXEL_Y_DIMENSION = "PixelYDimension";
+    field public static final String TAG_PLANAR_CONFIGURATION = "PlanarConfiguration";
+    field public static final String TAG_PRIMARY_CHROMATICITIES = "PrimaryChromaticities";
+    field public static final String TAG_RECOMMENDED_EXPOSURE_INDEX = "RecommendedExposureIndex";
+    field public static final String TAG_REFERENCE_BLACK_WHITE = "ReferenceBlackWhite";
+    field public static final String TAG_RELATED_SOUND_FILE = "RelatedSoundFile";
+    field public static final String TAG_RESOLUTION_UNIT = "ResolutionUnit";
+    field public static final String TAG_ROWS_PER_STRIP = "RowsPerStrip";
+    field public static final String TAG_RW2_ISO = "ISO";
+    field public static final String TAG_RW2_JPG_FROM_RAW = "JpgFromRaw";
+    field public static final String TAG_RW2_SENSOR_BOTTOM_BORDER = "SensorBottomBorder";
+    field public static final String TAG_RW2_SENSOR_LEFT_BORDER = "SensorLeftBorder";
+    field public static final String TAG_RW2_SENSOR_RIGHT_BORDER = "SensorRightBorder";
+    field public static final String TAG_RW2_SENSOR_TOP_BORDER = "SensorTopBorder";
+    field public static final String TAG_SAMPLES_PER_PIXEL = "SamplesPerPixel";
+    field public static final String TAG_SATURATION = "Saturation";
+    field public static final String TAG_SCENE_CAPTURE_TYPE = "SceneCaptureType";
+    field public static final String TAG_SCENE_TYPE = "SceneType";
+    field public static final String TAG_SENSING_METHOD = "SensingMethod";
+    field public static final String TAG_SENSITIVITY_TYPE = "SensitivityType";
+    field public static final String TAG_SHARPNESS = "Sharpness";
+    field public static final String TAG_SHUTTER_SPEED_VALUE = "ShutterSpeedValue";
+    field public static final String TAG_SOFTWARE = "Software";
+    field public static final String TAG_SPATIAL_FREQUENCY_RESPONSE = "SpatialFrequencyResponse";
+    field public static final String TAG_SPECTRAL_SENSITIVITY = "SpectralSensitivity";
+    field public static final String TAG_STANDARD_OUTPUT_SENSITIVITY = "StandardOutputSensitivity";
+    field public static final String TAG_STRIP_BYTE_COUNTS = "StripByteCounts";
+    field public static final String TAG_STRIP_OFFSETS = "StripOffsets";
+    field public static final String TAG_SUBFILE_TYPE = "SubfileType";
+    field public static final String TAG_SUBJECT_AREA = "SubjectArea";
+    field public static final String TAG_SUBJECT_DISTANCE = "SubjectDistance";
+    field public static final String TAG_SUBJECT_DISTANCE_RANGE = "SubjectDistanceRange";
+    field public static final String TAG_SUBJECT_LOCATION = "SubjectLocation";
+    field public static final String TAG_SUBSEC_TIME = "SubSecTime";
+    field public static final String TAG_SUBSEC_TIME_DIGITIZED = "SubSecTimeDigitized";
+    field public static final String TAG_SUBSEC_TIME_ORIGINAL = "SubSecTimeOriginal";
+    field public static final String TAG_THUMBNAIL_IMAGE_LENGTH = "ThumbnailImageLength";
+    field public static final String TAG_THUMBNAIL_IMAGE_WIDTH = "ThumbnailImageWidth";
+    field public static final String TAG_TRANSFER_FUNCTION = "TransferFunction";
+    field public static final String TAG_USER_COMMENT = "UserComment";
+    field public static final String TAG_WHITE_BALANCE = "WhiteBalance";
+    field public static final String TAG_WHITE_POINT = "WhitePoint";
+    field public static final String TAG_X_RESOLUTION = "XResolution";
+    field public static final String TAG_Y_CB_CR_COEFFICIENTS = "YCbCrCoefficients";
+    field public static final String TAG_Y_CB_CR_POSITIONING = "YCbCrPositioning";
+    field public static final String TAG_Y_CB_CR_SUB_SAMPLING = "YCbCrSubSampling";
+    field public static final String TAG_Y_RESOLUTION = "YResolution";
+    field @Deprecated public static final int WHITEBALANCE_AUTO = 0; // 0x0
+    field @Deprecated public static final int WHITEBALANCE_MANUAL = 1; // 0x1
     field public static final short WHITE_BALANCE_AUTO = 0; // 0x0
     field public static final short WHITE_BALANCE_MANUAL = 1; // 0x1
     field public static final short Y_CB_CR_POSITIONING_CENTERED = 1; // 0x1
diff --git a/fragment/api/current.txt b/fragment/api/current.txt
index 736dccf..db40436 100644
--- a/fragment/api/current.txt
+++ b/fragment/api/current.txt
@@ -1,23 +1,24 @@
+// Signature format: 2.0
 package androidx.fragment.app {
 
   public class DialogFragment extends androidx.fragment.app.Fragment implements android.content.DialogInterface.OnCancelListener android.content.DialogInterface.OnDismissListener {
     ctor public DialogFragment();
     method public void dismiss();
     method public void dismissAllowingStateLoss();
-    method public android.app.Dialog getDialog();
+    method public android.app.Dialog? getDialog();
     method public boolean getShowsDialog();
-    method public int getTheme();
+    method @StyleRes public int getTheme();
     method public boolean isCancelable();
     method public void onCancel(android.content.DialogInterface);
-    method public android.app.Dialog onCreateDialog(android.os.Bundle);
+    method public android.app.Dialog onCreateDialog(android.os.Bundle?);
     method public void onDismiss(android.content.DialogInterface);
     method public final android.app.Dialog requireDialog();
     method public void setCancelable(boolean);
     method public void setShowsDialog(boolean);
-    method public void setStyle(int, int);
-    method public void show(androidx.fragment.app.FragmentManager, java.lang.String);
-    method public int show(androidx.fragment.app.FragmentTransaction, java.lang.String);
-    method public void showNow(androidx.fragment.app.FragmentManager, java.lang.String);
+    method public void setStyle(int, @StyleRes int);
+    method public void show(androidx.fragment.app.FragmentManager, String?);
+    method public int show(androidx.fragment.app.FragmentTransaction, String?);
+    method public void showNow(androidx.fragment.app.FragmentManager, String?);
     field public static final int STYLE_NORMAL = 0; // 0x0
     field public static final int STYLE_NO_FRAME = 2; // 0x2
     field public static final int STYLE_NO_INPUT = 3; // 0x3
@@ -26,43 +27,43 @@
 
   public class Fragment implements android.content.ComponentCallbacks androidx.lifecycle.LifecycleOwner android.view.View.OnCreateContextMenuListener androidx.lifecycle.ViewModelStoreOwner {
     ctor public Fragment();
-    method public void dump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
-    method public final boolean equals(java.lang.Object);
-    method public final androidx.fragment.app.FragmentActivity getActivity();
+    method public void dump(String, java.io.FileDescriptor?, java.io.PrintWriter, String[]?);
+    method public final boolean equals(Object?);
+    method public final androidx.fragment.app.FragmentActivity? getActivity();
     method public boolean getAllowEnterTransitionOverlap();
     method public boolean getAllowReturnTransitionOverlap();
-    method public final android.os.Bundle getArguments();
+    method public final android.os.Bundle? getArguments();
     method public final androidx.fragment.app.FragmentManager getChildFragmentManager();
-    method public android.content.Context getContext();
-    method public java.lang.Object getEnterTransition();
-    method public java.lang.Object getExitTransition();
-    method public final androidx.fragment.app.FragmentManager getFragmentManager();
-    method public final java.lang.Object getHost();
+    method public android.content.Context? getContext();
+    method public Object? getEnterTransition();
+    method public Object? getExitTransition();
+    method public final androidx.fragment.app.FragmentManager? getFragmentManager();
+    method public final Object? getHost();
     method public final int getId();
     method public final android.view.LayoutInflater getLayoutInflater();
     method public androidx.lifecycle.Lifecycle getLifecycle();
-    method public deprecated androidx.loader.app.LoaderManager getLoaderManager();
-    method public final androidx.fragment.app.Fragment getParentFragment();
-    method public java.lang.Object getReenterTransition();
+    method @Deprecated public androidx.loader.app.LoaderManager getLoaderManager();
+    method public final androidx.fragment.app.Fragment? getParentFragment();
+    method public Object? getReenterTransition();
     method public final android.content.res.Resources getResources();
     method public final boolean getRetainInstance();
-    method public java.lang.Object getReturnTransition();
-    method public java.lang.Object getSharedElementEnterTransition();
-    method public java.lang.Object getSharedElementReturnTransition();
-    method public final java.lang.String getString(int);
-    method public final java.lang.String getString(int, java.lang.Object...);
-    method public final java.lang.String getTag();
-    method public final androidx.fragment.app.Fragment getTargetFragment();
+    method public Object? getReturnTransition();
+    method public Object? getSharedElementEnterTransition();
+    method public Object? getSharedElementReturnTransition();
+    method public final String getString(@StringRes int);
+    method public final String getString(@StringRes int, java.lang.Object...?);
+    method public final String? getTag();
+    method public final androidx.fragment.app.Fragment? getTargetFragment();
     method public final int getTargetRequestCode();
-    method public final java.lang.CharSequence getText(int);
+    method public final CharSequence getText(@StringRes int);
     method public boolean getUserVisibleHint();
-    method public android.view.View getView();
-    method public androidx.lifecycle.LifecycleOwner getViewLifecycleOwner();
+    method public android.view.View? getView();
+    method @MainThread public androidx.lifecycle.LifecycleOwner getViewLifecycleOwner();
     method public androidx.lifecycle.LiveData<androidx.lifecycle.LifecycleOwner> getViewLifecycleOwnerLiveData();
     method public androidx.lifecycle.ViewModelStore getViewModelStore();
     method public final int hashCode();
-    method public static deprecated androidx.fragment.app.Fragment instantiate(android.content.Context, java.lang.String);
-    method public static deprecated androidx.fragment.app.Fragment instantiate(android.content.Context, java.lang.String, android.os.Bundle);
+    method @Deprecated public static androidx.fragment.app.Fragment instantiate(android.content.Context, String);
+    method @Deprecated public static androidx.fragment.app.Fragment instantiate(android.content.Context, String, android.os.Bundle?);
     method public final boolean isAdded();
     method public final boolean isDetached();
     method public final boolean isHidden();
@@ -71,77 +72,77 @@
     method public final boolean isResumed();
     method public final boolean isStateSaved();
     method public final boolean isVisible();
-    method public void onActivityCreated(android.os.Bundle);
-    method public void onActivityResult(int, int, android.content.Intent);
-    method public void onAttach(android.content.Context);
-    method public deprecated void onAttach(android.app.Activity);
+    method @CallSuper public void onActivityCreated(android.os.Bundle?);
+    method public void onActivityResult(int, int, android.content.Intent?);
+    method @CallSuper public void onAttach(android.content.Context);
+    method @Deprecated @CallSuper public void onAttach(android.app.Activity);
     method public void onAttachFragment(androidx.fragment.app.Fragment);
-    method public void onConfigurationChanged(android.content.res.Configuration);
+    method @CallSuper public void onConfigurationChanged(android.content.res.Configuration);
     method public boolean onContextItemSelected(android.view.MenuItem);
-    method public void onCreate(android.os.Bundle);
-    method public android.view.animation.Animation onCreateAnimation(int, boolean, int);
-    method public android.animation.Animator onCreateAnimator(int, boolean, int);
-    method public void onCreateContextMenu(android.view.ContextMenu, android.view.View, android.view.ContextMenu.ContextMenuInfo);
+    method @CallSuper public void onCreate(android.os.Bundle?);
+    method public android.view.animation.Animation? onCreateAnimation(int, boolean, int);
+    method public android.animation.Animator? onCreateAnimator(int, boolean, int);
+    method public void onCreateContextMenu(android.view.ContextMenu, android.view.View, android.view.ContextMenu.ContextMenuInfo?);
     method public void onCreateOptionsMenu(android.view.Menu, android.view.MenuInflater);
-    method public android.view.View onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle);
-    method public void onDestroy();
+    method public android.view.View? onCreateView(android.view.LayoutInflater, android.view.ViewGroup?, android.os.Bundle?);
+    method @CallSuper public void onDestroy();
     method public void onDestroyOptionsMenu();
-    method public void onDestroyView();
-    method public void onDetach();
-    method public android.view.LayoutInflater onGetLayoutInflater(android.os.Bundle);
+    method @CallSuper public void onDestroyView();
+    method @CallSuper public void onDetach();
+    method public android.view.LayoutInflater onGetLayoutInflater(android.os.Bundle?);
     method public void onHiddenChanged(boolean);
-    method public void onInflate(android.content.Context, android.util.AttributeSet, android.os.Bundle);
-    method public deprecated void onInflate(android.app.Activity, android.util.AttributeSet, android.os.Bundle);
-    method public void onLowMemory();
+    method @CallSuper public void onInflate(android.content.Context, android.util.AttributeSet, android.os.Bundle?);
+    method @Deprecated @CallSuper public void onInflate(android.app.Activity, android.util.AttributeSet, android.os.Bundle?);
+    method @CallSuper public void onLowMemory();
     method public void onMultiWindowModeChanged(boolean);
     method public boolean onOptionsItemSelected(android.view.MenuItem);
     method public void onOptionsMenuClosed(android.view.Menu);
-    method public void onPause();
+    method @CallSuper public void onPause();
     method public void onPictureInPictureModeChanged(boolean);
     method public void onPrepareOptionsMenu(android.view.Menu);
-    method public void onRequestPermissionsResult(int, java.lang.String[], int[]);
-    method public void onResume();
+    method public void onRequestPermissionsResult(int, String[], int[]);
+    method @CallSuper public void onResume();
     method public void onSaveInstanceState(android.os.Bundle);
-    method public void onStart();
-    method public void onStop();
-    method public void onViewCreated(android.view.View, android.os.Bundle);
-    method public void onViewStateRestored(android.os.Bundle);
+    method @CallSuper public void onStart();
+    method @CallSuper public void onStop();
+    method public void onViewCreated(android.view.View, android.os.Bundle?);
+    method @CallSuper public void onViewStateRestored(android.os.Bundle?);
     method public void postponeEnterTransition();
     method public void registerForContextMenu(android.view.View);
-    method public final void requestPermissions(java.lang.String[], int);
+    method public final void requestPermissions(String[], int);
     method public final androidx.fragment.app.FragmentActivity requireActivity();
     method public final android.content.Context requireContext();
     method public final androidx.fragment.app.FragmentManager requireFragmentManager();
-    method public final java.lang.Object requireHost();
+    method public final Object requireHost();
     method public void setAllowEnterTransitionOverlap(boolean);
     method public void setAllowReturnTransitionOverlap(boolean);
-    method public void setArguments(android.os.Bundle);
-    method public void setEnterSharedElementCallback(androidx.core.app.SharedElementCallback);
-    method public void setEnterTransition(java.lang.Object);
-    method public void setExitSharedElementCallback(androidx.core.app.SharedElementCallback);
-    method public void setExitTransition(java.lang.Object);
+    method public void setArguments(android.os.Bundle?);
+    method public void setEnterSharedElementCallback(androidx.core.app.SharedElementCallback?);
+    method public void setEnterTransition(Object?);
+    method public void setExitSharedElementCallback(androidx.core.app.SharedElementCallback?);
+    method public void setExitTransition(Object?);
     method public void setHasOptionsMenu(boolean);
-    method public void setInitialSavedState(androidx.fragment.app.Fragment.SavedState);
+    method public void setInitialSavedState(androidx.fragment.app.Fragment.SavedState?);
     method public void setMenuVisibility(boolean);
-    method public void setReenterTransition(java.lang.Object);
+    method public void setReenterTransition(Object?);
     method public void setRetainInstance(boolean);
-    method public void setReturnTransition(java.lang.Object);
-    method public void setSharedElementEnterTransition(java.lang.Object);
-    method public void setSharedElementReturnTransition(java.lang.Object);
-    method public void setTargetFragment(androidx.fragment.app.Fragment, int);
+    method public void setReturnTransition(Object?);
+    method public void setSharedElementEnterTransition(Object?);
+    method public void setSharedElementReturnTransition(Object?);
+    method public void setTargetFragment(androidx.fragment.app.Fragment?, int);
     method public void setUserVisibleHint(boolean);
-    method public boolean shouldShowRequestPermissionRationale(java.lang.String);
-    method public void startActivity(android.content.Intent);
-    method public void startActivity(android.content.Intent, android.os.Bundle);
-    method public void startActivityForResult(android.content.Intent, int);
-    method public void startActivityForResult(android.content.Intent, int, android.os.Bundle);
-    method public void startIntentSenderForResult(android.content.IntentSender, int, android.content.Intent, int, int, int, android.os.Bundle) throws android.content.IntentSender.SendIntentException;
+    method public boolean shouldShowRequestPermissionRationale(String);
+    method public void startActivity(android.content.Intent!);
+    method public void startActivity(android.content.Intent!, android.os.Bundle?);
+    method public void startActivityForResult(android.content.Intent!, int);
+    method public void startActivityForResult(android.content.Intent!, int, android.os.Bundle?);
+    method public void startIntentSenderForResult(android.content.IntentSender!, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException;
     method public void startPostponedEnterTransition();
     method public void unregisterForContextMenu(android.view.View);
   }
 
   public static class Fragment.InstantiationException extends java.lang.RuntimeException {
-    ctor public Fragment.InstantiationException(java.lang.String, java.lang.Exception);
+    ctor public Fragment.InstantiationException(String, Exception?);
   }
 
   public static class Fragment.SavedState implements android.os.Parcelable {
@@ -152,23 +153,23 @@
 
   public class FragmentActivity extends androidx.activity.ComponentActivity implements androidx.core.app.ActivityCompat.OnRequestPermissionsResultCallback androidx.core.app.ActivityCompat.RequestPermissionsRequestCodeValidator androidx.lifecycle.ViewModelStoreOwner {
     ctor public FragmentActivity();
-    method public java.lang.Object getLastCustomNonConfigurationInstance();
+    method public Object? getLastCustomNonConfigurationInstance();
     method public androidx.fragment.app.FragmentManager getSupportFragmentManager();
-    method public deprecated androidx.loader.app.LoaderManager getSupportLoaderManager();
+    method @Deprecated public androidx.loader.app.LoaderManager getSupportLoaderManager();
     method public androidx.lifecycle.ViewModelStore getViewModelStore();
     method public void onAttachFragment(androidx.fragment.app.Fragment);
-    method public void onMultiWindowModeChanged(boolean);
-    method public void onPictureInPictureModeChanged(boolean);
+    method @CallSuper public void onMultiWindowModeChanged(boolean);
+    method @CallSuper public void onPictureInPictureModeChanged(boolean);
     method protected void onResumeFragments();
-    method public java.lang.Object onRetainCustomNonConfigurationInstance();
-    method public final java.lang.Object onRetainNonConfigurationInstance();
-    method public void setEnterSharedElementCallback(androidx.core.app.SharedElementCallback);
-    method public void setExitSharedElementCallback(androidx.core.app.SharedElementCallback);
-    method public void startActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent, int);
-    method public void startActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent, int, android.os.Bundle);
-    method public void startIntentSenderFromFragment(androidx.fragment.app.Fragment, android.content.IntentSender, int, android.content.Intent, int, int, int, android.os.Bundle) throws android.content.IntentSender.SendIntentException;
+    method public Object? onRetainCustomNonConfigurationInstance();
+    method public final Object? onRetainNonConfigurationInstance();
+    method public void setEnterSharedElementCallback(androidx.core.app.SharedElementCallback?);
+    method public void setExitSharedElementCallback(androidx.core.app.SharedElementCallback?);
+    method public void startActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent!, int);
+    method public void startActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent!, int, android.os.Bundle?);
+    method public void startIntentSenderFromFragment(androidx.fragment.app.Fragment, android.content.IntentSender!, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException;
     method public void supportFinishAfterTransition();
-    method public deprecated void supportInvalidateOptionsMenu();
+    method @Deprecated public void supportInvalidateOptionsMenu();
     method public void supportPostponeEnterTransition();
     method public void supportStartPostponedEnterTransition();
     method public final void validateRequestPermissionsRequestCode(int);
@@ -176,13 +177,13 @@
 
   public abstract class FragmentContainer {
     ctor public FragmentContainer();
-    method public deprecated androidx.fragment.app.Fragment instantiate(android.content.Context, java.lang.String, android.os.Bundle);
-    method public abstract android.view.View onFindViewById(int);
+    method @Deprecated public androidx.fragment.app.Fragment instantiate(android.content.Context, String, android.os.Bundle?);
+    method public abstract android.view.View? onFindViewById(@IdRes int);
     method public abstract boolean onHasView();
   }
 
   public class FragmentController {
-    method public void attachHost(androidx.fragment.app.Fragment);
+    method public void attachHost(androidx.fragment.app.Fragment?);
     method public static androidx.fragment.app.FragmentController createController(androidx.fragment.app.FragmentHostCallback<?>);
     method public void dispatchActivityCreated();
     method public void dispatchConfigurationChanged(android.content.res.Configuration);
@@ -198,54 +199,54 @@
     method public void dispatchPause();
     method public void dispatchPictureInPictureModeChanged(boolean);
     method public boolean dispatchPrepareOptionsMenu(android.view.Menu);
-    method public deprecated void dispatchReallyStop();
+    method @Deprecated public void dispatchReallyStop();
     method public void dispatchResume();
     method public void dispatchStart();
     method public void dispatchStop();
-    method public deprecated void doLoaderDestroy();
-    method public deprecated void doLoaderRetain();
-    method public deprecated void doLoaderStart();
-    method public deprecated void doLoaderStop(boolean);
-    method public deprecated void dumpLoaders(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
+    method @Deprecated public void doLoaderDestroy();
+    method @Deprecated public void doLoaderRetain();
+    method @Deprecated public void doLoaderStart();
+    method @Deprecated public void doLoaderStop(boolean);
+    method @Deprecated public void dumpLoaders(String, java.io.FileDescriptor?, java.io.PrintWriter, String[]?);
     method public boolean execPendingActions();
-    method public androidx.fragment.app.Fragment findFragmentByWho(java.lang.String);
-    method public java.util.List<androidx.fragment.app.Fragment> getActiveFragments(java.util.List<androidx.fragment.app.Fragment>);
+    method public androidx.fragment.app.Fragment? findFragmentByWho(String);
+    method public java.util.List<androidx.fragment.app.Fragment> getActiveFragments(java.util.List<androidx.fragment.app.Fragment>!);
     method public int getActiveFragmentsCount();
     method public androidx.fragment.app.FragmentManager getSupportFragmentManager();
-    method public deprecated androidx.loader.app.LoaderManager getSupportLoaderManager();
+    method @Deprecated public androidx.loader.app.LoaderManager! getSupportLoaderManager();
     method public void noteStateNotSaved();
-    method public android.view.View onCreateView(android.view.View, java.lang.String, android.content.Context, android.util.AttributeSet);
-    method public deprecated void reportLoaderStart();
-    method public deprecated void restoreAllState(android.os.Parcelable, java.util.List<androidx.fragment.app.Fragment>);
-    method public void restoreAllState(android.os.Parcelable, androidx.fragment.app.FragmentManagerNonConfig);
-    method public deprecated void restoreLoaderNonConfig(androidx.collection.SimpleArrayMap<java.lang.String, androidx.loader.app.LoaderManager>);
-    method public deprecated androidx.collection.SimpleArrayMap<java.lang.String, androidx.loader.app.LoaderManager> retainLoaderNonConfig();
-    method public androidx.fragment.app.FragmentManagerNonConfig retainNestedNonConfig();
-    method public deprecated java.util.List<androidx.fragment.app.Fragment> retainNonConfig();
-    method public android.os.Parcelable saveAllState();
+    method public android.view.View? onCreateView(android.view.View?, String, android.content.Context, android.util.AttributeSet);
+    method @Deprecated public void reportLoaderStart();
+    method @Deprecated public void restoreAllState(android.os.Parcelable?, java.util.List<androidx.fragment.app.Fragment>?);
+    method public void restoreAllState(android.os.Parcelable?, androidx.fragment.app.FragmentManagerNonConfig?);
+    method @Deprecated public void restoreLoaderNonConfig(androidx.collection.SimpleArrayMap<java.lang.String,androidx.loader.app.LoaderManager>!);
+    method @Deprecated public androidx.collection.SimpleArrayMap<java.lang.String,androidx.loader.app.LoaderManager>? retainLoaderNonConfig();
+    method public androidx.fragment.app.FragmentManagerNonConfig? retainNestedNonConfig();
+    method @Deprecated public java.util.List<androidx.fragment.app.Fragment>? retainNonConfig();
+    method public android.os.Parcelable? saveAllState();
   }
 
   public class FragmentFactory {
     ctor public FragmentFactory();
-    method public androidx.fragment.app.Fragment instantiate(java.lang.ClassLoader, java.lang.String, android.os.Bundle);
-    method public static java.lang.Class<? extends androidx.fragment.app.Fragment> loadFragmentClass(java.lang.ClassLoader, java.lang.String);
+    method public androidx.fragment.app.Fragment instantiate(ClassLoader, String, android.os.Bundle?);
+    method public static Class<? extends androidx.fragment.app.Fragment> loadFragmentClass(ClassLoader, String);
   }
 
   public abstract class FragmentHostCallback<E> extends androidx.fragment.app.FragmentContainer {
     ctor public FragmentHostCallback(android.content.Context, android.os.Handler, int);
-    method public void onDump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
-    method public android.view.View onFindViewById(int);
-    method public abstract E onGetHost();
+    method public void onDump(String, java.io.FileDescriptor?, java.io.PrintWriter, String[]?);
+    method public android.view.View? onFindViewById(int);
+    method public abstract E? onGetHost();
     method public android.view.LayoutInflater onGetLayoutInflater();
     method public int onGetWindowAnimations();
     method public boolean onHasView();
     method public boolean onHasWindowAnimations();
-    method public void onRequestPermissionsFromFragment(androidx.fragment.app.Fragment, java.lang.String[], int);
+    method public void onRequestPermissionsFromFragment(androidx.fragment.app.Fragment, String[], int);
     method public boolean onShouldSaveFragmentState(androidx.fragment.app.Fragment);
-    method public boolean onShouldShowRequestPermissionRationale(java.lang.String);
-    method public void onStartActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent, int);
-    method public void onStartActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent, int, android.os.Bundle);
-    method public void onStartIntentSenderFromFragment(androidx.fragment.app.Fragment, android.content.IntentSender, int, android.content.Intent, int, int, int, android.os.Bundle) throws android.content.IntentSender.SendIntentException;
+    method public boolean onShouldShowRequestPermissionRationale(String);
+    method public void onStartActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent!, int);
+    method public void onStartActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent!, int, android.os.Bundle?);
+    method public void onStartIntentSenderFromFragment(androidx.fragment.app.Fragment, android.content.IntentSender!, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException;
     method public void onSupportInvalidateOptionsMenu();
   }
 
@@ -253,63 +254,63 @@
     ctor public FragmentManager();
     method public abstract void addOnBackStackChangedListener(androidx.fragment.app.FragmentManager.OnBackStackChangedListener);
     method public abstract androidx.fragment.app.FragmentTransaction beginTransaction();
-    method public abstract void dump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
+    method public abstract void dump(String, java.io.FileDescriptor?, java.io.PrintWriter, String[]?);
     method public static void enableDebugLogging(boolean);
     method public abstract boolean executePendingTransactions();
-    method public abstract androidx.fragment.app.Fragment findFragmentById(int);
-    method public abstract androidx.fragment.app.Fragment findFragmentByTag(java.lang.String);
+    method public abstract androidx.fragment.app.Fragment? findFragmentById(@IdRes int);
+    method public abstract androidx.fragment.app.Fragment? findFragmentByTag(String?);
     method public abstract androidx.fragment.app.FragmentManager.BackStackEntry getBackStackEntryAt(int);
     method public abstract int getBackStackEntryCount();
-    method public abstract androidx.fragment.app.Fragment getFragment(android.os.Bundle, java.lang.String);
+    method public abstract androidx.fragment.app.Fragment? getFragment(android.os.Bundle, String);
     method public abstract androidx.fragment.app.FragmentFactory getFragmentFactory();
     method public abstract java.util.List<androidx.fragment.app.Fragment> getFragments();
-    method public abstract androidx.fragment.app.Fragment getPrimaryNavigationFragment();
+    method public abstract androidx.fragment.app.Fragment? getPrimaryNavigationFragment();
     method public abstract boolean isDestroyed();
     method public abstract boolean isStateSaved();
     method public abstract void popBackStack();
-    method public abstract void popBackStack(java.lang.String, int);
+    method public abstract void popBackStack(String?, int);
     method public abstract void popBackStack(int, int);
     method public abstract boolean popBackStackImmediate();
-    method public abstract boolean popBackStackImmediate(java.lang.String, int);
+    method public abstract boolean popBackStackImmediate(String?, int);
     method public abstract boolean popBackStackImmediate(int, int);
-    method public abstract void putFragment(android.os.Bundle, java.lang.String, androidx.fragment.app.Fragment);
+    method public abstract void putFragment(android.os.Bundle, String, androidx.fragment.app.Fragment);
     method public abstract void registerFragmentLifecycleCallbacks(androidx.fragment.app.FragmentManager.FragmentLifecycleCallbacks, boolean);
     method public abstract void removeOnBackStackChangedListener(androidx.fragment.app.FragmentManager.OnBackStackChangedListener);
-    method public abstract androidx.fragment.app.Fragment.SavedState saveFragmentInstanceState(androidx.fragment.app.Fragment);
+    method public abstract androidx.fragment.app.Fragment.SavedState? saveFragmentInstanceState(androidx.fragment.app.Fragment);
     method public abstract void setFragmentFactory(androidx.fragment.app.FragmentFactory);
     method public abstract void unregisterFragmentLifecycleCallbacks(androidx.fragment.app.FragmentManager.FragmentLifecycleCallbacks);
     field public static final int POP_BACK_STACK_INCLUSIVE = 1; // 0x1
   }
 
-  public static abstract interface FragmentManager.BackStackEntry {
-    method public abstract java.lang.CharSequence getBreadCrumbShortTitle();
-    method public abstract int getBreadCrumbShortTitleRes();
-    method public abstract java.lang.CharSequence getBreadCrumbTitle();
-    method public abstract int getBreadCrumbTitleRes();
-    method public abstract int getId();
-    method public abstract java.lang.String getName();
+  public static interface FragmentManager.BackStackEntry {
+    method public CharSequence? getBreadCrumbShortTitle();
+    method @StringRes public int getBreadCrumbShortTitleRes();
+    method public CharSequence? getBreadCrumbTitle();
+    method @StringRes public int getBreadCrumbTitleRes();
+    method public int getId();
+    method public String? getName();
   }
 
-  public static abstract class FragmentManager.FragmentLifecycleCallbacks {
+  public abstract static class FragmentManager.FragmentLifecycleCallbacks {
     ctor public FragmentManager.FragmentLifecycleCallbacks();
-    method public void onFragmentActivityCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.os.Bundle);
+    method public void onFragmentActivityCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.os.Bundle?);
     method public void onFragmentAttached(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.content.Context);
-    method public void onFragmentCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.os.Bundle);
+    method public void onFragmentCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.os.Bundle?);
     method public void onFragmentDestroyed(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
     method public void onFragmentDetached(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
     method public void onFragmentPaused(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
     method public void onFragmentPreAttached(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.content.Context);
-    method public void onFragmentPreCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.os.Bundle);
+    method public void onFragmentPreCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.os.Bundle?);
     method public void onFragmentResumed(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
     method public void onFragmentSaveInstanceState(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.os.Bundle);
     method public void onFragmentStarted(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
     method public void onFragmentStopped(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
-    method public void onFragmentViewCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.view.View, android.os.Bundle);
+    method public void onFragmentViewCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.view.View, android.os.Bundle?);
     method public void onFragmentViewDestroyed(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
   }
 
-  public static abstract interface FragmentManager.OnBackStackChangedListener {
-    method public abstract void onBackStackChanged();
+  public static interface FragmentManager.OnBackStackChangedListener {
+    method public void onBackStackChanged();
   }
 
   public class FragmentManagerNonConfig {
@@ -319,32 +320,32 @@
     ctor public FragmentPagerAdapter(androidx.fragment.app.FragmentManager);
     method public abstract androidx.fragment.app.Fragment getItem(int);
     method public long getItemId(int);
-    method public boolean isViewFromObject(android.view.View, java.lang.Object);
+    method public boolean isViewFromObject(android.view.View, Object);
   }
 
   public abstract class FragmentStatePagerAdapter extends androidx.viewpager.widget.PagerAdapter {
     ctor public FragmentStatePagerAdapter(androidx.fragment.app.FragmentManager);
     method public abstract androidx.fragment.app.Fragment getItem(int);
-    method public boolean isViewFromObject(android.view.View, java.lang.Object);
+    method public boolean isViewFromObject(android.view.View, Object);
   }
 
   public class FragmentTabHost extends android.widget.TabHost implements android.widget.TabHost.OnTabChangeListener {
     ctor public FragmentTabHost(android.content.Context);
-    ctor public FragmentTabHost(android.content.Context, android.util.AttributeSet);
-    method public void addTab(android.widget.TabHost.TabSpec, java.lang.Class<?>, android.os.Bundle);
-    method public void onTabChanged(java.lang.String);
-    method public deprecated void setup();
+    ctor public FragmentTabHost(android.content.Context, android.util.AttributeSet?);
+    method public void addTab(android.widget.TabHost.TabSpec, Class<?>, android.os.Bundle?);
+    method public void onTabChanged(String?);
+    method @Deprecated public void setup();
     method public void setup(android.content.Context, androidx.fragment.app.FragmentManager);
     method public void setup(android.content.Context, androidx.fragment.app.FragmentManager, int);
   }
 
   public abstract class FragmentTransaction {
     ctor public FragmentTransaction();
-    method public abstract androidx.fragment.app.FragmentTransaction add(androidx.fragment.app.Fragment, java.lang.String);
-    method public abstract androidx.fragment.app.FragmentTransaction add(int, androidx.fragment.app.Fragment);
-    method public abstract androidx.fragment.app.FragmentTransaction add(int, androidx.fragment.app.Fragment, java.lang.String);
-    method public abstract androidx.fragment.app.FragmentTransaction addSharedElement(android.view.View, java.lang.String);
-    method public abstract androidx.fragment.app.FragmentTransaction addToBackStack(java.lang.String);
+    method public abstract androidx.fragment.app.FragmentTransaction add(androidx.fragment.app.Fragment, String?);
+    method public abstract androidx.fragment.app.FragmentTransaction add(@IdRes int, androidx.fragment.app.Fragment);
+    method public abstract androidx.fragment.app.FragmentTransaction add(@IdRes int, androidx.fragment.app.Fragment, String?);
+    method public abstract androidx.fragment.app.FragmentTransaction addSharedElement(android.view.View, String);
+    method public abstract androidx.fragment.app.FragmentTransaction addToBackStack(String?);
     method public abstract androidx.fragment.app.FragmentTransaction attach(androidx.fragment.app.Fragment);
     method public abstract int commit();
     method public abstract int commitAllowingStateLoss();
@@ -356,20 +357,20 @@
     method public abstract boolean isAddToBackStackAllowed();
     method public abstract boolean isEmpty();
     method public abstract androidx.fragment.app.FragmentTransaction remove(androidx.fragment.app.Fragment);
-    method public abstract androidx.fragment.app.FragmentTransaction replace(int, androidx.fragment.app.Fragment);
-    method public abstract androidx.fragment.app.FragmentTransaction replace(int, androidx.fragment.app.Fragment, java.lang.String);
-    method public abstract androidx.fragment.app.FragmentTransaction runOnCommit(java.lang.Runnable);
-    method public abstract deprecated androidx.fragment.app.FragmentTransaction setAllowOptimization(boolean);
-    method public abstract androidx.fragment.app.FragmentTransaction setBreadCrumbShortTitle(int);
-    method public abstract androidx.fragment.app.FragmentTransaction setBreadCrumbShortTitle(java.lang.CharSequence);
-    method public abstract androidx.fragment.app.FragmentTransaction setBreadCrumbTitle(int);
-    method public abstract androidx.fragment.app.FragmentTransaction setBreadCrumbTitle(java.lang.CharSequence);
-    method public abstract androidx.fragment.app.FragmentTransaction setCustomAnimations(int, int);
-    method public abstract androidx.fragment.app.FragmentTransaction setCustomAnimations(int, int, int, int);
-    method public abstract androidx.fragment.app.FragmentTransaction setPrimaryNavigationFragment(androidx.fragment.app.Fragment);
+    method public abstract androidx.fragment.app.FragmentTransaction replace(@IdRes int, androidx.fragment.app.Fragment);
+    method public abstract androidx.fragment.app.FragmentTransaction replace(@IdRes int, androidx.fragment.app.Fragment, String?);
+    method public abstract androidx.fragment.app.FragmentTransaction runOnCommit(Runnable);
+    method @Deprecated public abstract androidx.fragment.app.FragmentTransaction setAllowOptimization(boolean);
+    method public abstract androidx.fragment.app.FragmentTransaction setBreadCrumbShortTitle(@StringRes int);
+    method public abstract androidx.fragment.app.FragmentTransaction setBreadCrumbShortTitle(CharSequence?);
+    method public abstract androidx.fragment.app.FragmentTransaction setBreadCrumbTitle(@StringRes int);
+    method public abstract androidx.fragment.app.FragmentTransaction setBreadCrumbTitle(CharSequence?);
+    method public abstract androidx.fragment.app.FragmentTransaction setCustomAnimations(@AnimatorRes @AnimRes int, @AnimatorRes @AnimRes int);
+    method public abstract androidx.fragment.app.FragmentTransaction setCustomAnimations(@AnimatorRes @AnimRes int, @AnimatorRes @AnimRes int, @AnimatorRes @AnimRes int, @AnimatorRes @AnimRes int);
+    method public abstract androidx.fragment.app.FragmentTransaction setPrimaryNavigationFragment(androidx.fragment.app.Fragment?);
     method public abstract androidx.fragment.app.FragmentTransaction setReorderingAllowed(boolean);
     method public abstract androidx.fragment.app.FragmentTransaction setTransition(int);
-    method public abstract androidx.fragment.app.FragmentTransaction setTransitionStyle(int);
+    method public abstract androidx.fragment.app.FragmentTransaction setTransitionStyle(@StyleRes int);
     method public abstract androidx.fragment.app.FragmentTransaction show(androidx.fragment.app.Fragment);
     field public static final int TRANSIT_ENTER_MASK = 4096; // 0x1000
     field public static final int TRANSIT_EXIT_MASK = 8192; // 0x2000
@@ -382,14 +383,14 @@
 
   public class ListFragment extends androidx.fragment.app.Fragment {
     ctor public ListFragment();
-    method public android.widget.ListAdapter getListAdapter();
+    method public android.widget.ListAdapter? getListAdapter();
     method public android.widget.ListView getListView();
     method public long getSelectedItemId();
     method public int getSelectedItemPosition();
     method public void onListItemClick(android.widget.ListView, android.view.View, int, long);
     method public final android.widget.ListAdapter requireListAdapter();
-    method public void setEmptyText(java.lang.CharSequence);
-    method public void setListAdapter(android.widget.ListAdapter);
+    method public void setEmptyText(CharSequence?);
+    method public void setListAdapter(android.widget.ListAdapter?);
     method public void setListShown(boolean);
     method public void setListShownNoAnimation(boolean);
     method public void setSelection(int);
diff --git a/graphics/drawable/animated/api/1.0.0.txt b/graphics/drawable/animated/api/1.0.0.txt
index fecb2f7..a81c3a2 100644
--- a/graphics/drawable/animated/api/1.0.0.txt
+++ b/graphics/drawable/animated/api/1.0.0.txt
@@ -1,33 +1,34 @@
+// Signature format: 2.0
 package androidx.vectordrawable.graphics.drawable {
 
-  public abstract interface Animatable2Compat implements android.graphics.drawable.Animatable {
-    method public abstract void clearAnimationCallbacks();
-    method public abstract void registerAnimationCallback(androidx.vectordrawable.graphics.drawable.Animatable2Compat.AnimationCallback);
-    method public abstract boolean unregisterAnimationCallback(androidx.vectordrawable.graphics.drawable.Animatable2Compat.AnimationCallback);
+  public interface Animatable2Compat extends android.graphics.drawable.Animatable {
+    method public void clearAnimationCallbacks();
+    method public void registerAnimationCallback(androidx.vectordrawable.graphics.drawable.Animatable2Compat.AnimationCallback);
+    method public boolean unregisterAnimationCallback(androidx.vectordrawable.graphics.drawable.Animatable2Compat.AnimationCallback);
   }
 
-  public static abstract class Animatable2Compat.AnimationCallback {
+  public abstract static class Animatable2Compat.AnimationCallback {
     ctor public Animatable2Compat.AnimationCallback();
-    method public void onAnimationEnd(android.graphics.drawable.Drawable);
-    method public void onAnimationStart(android.graphics.drawable.Drawable);
+    method public void onAnimationEnd(android.graphics.drawable.Drawable!);
+    method public void onAnimationStart(android.graphics.drawable.Drawable!);
   }
 
   public class AnimatedVectorDrawableCompat extends android.graphics.drawable.Drawable implements androidx.vectordrawable.graphics.drawable.Animatable2Compat androidx.core.graphics.drawable.TintAwareDrawable {
     method public void clearAnimationCallbacks();
-    method public static void clearAnimationCallbacks(android.graphics.drawable.Drawable);
-    method public static androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat create(android.content.Context, int);
-    method public static androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat createFromXmlInner(android.content.Context, android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet, android.content.res.Resources.Theme) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
-    method public void draw(android.graphics.Canvas);
+    method public static void clearAnimationCallbacks(android.graphics.drawable.Drawable!);
+    method public static androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat? create(android.content.Context, @DrawableRes int);
+    method public static androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat! createFromXmlInner(android.content.Context!, android.content.res.Resources!, org.xmlpull.v1.XmlPullParser!, android.util.AttributeSet!, android.content.res.Resources.Theme!) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method public void draw(android.graphics.Canvas!);
     method public int getOpacity();
     method public boolean isRunning();
     method public void registerAnimationCallback(androidx.vectordrawable.graphics.drawable.Animatable2Compat.AnimationCallback);
-    method public static void registerAnimationCallback(android.graphics.drawable.Drawable, androidx.vectordrawable.graphics.drawable.Animatable2Compat.AnimationCallback);
+    method public static void registerAnimationCallback(android.graphics.drawable.Drawable!, androidx.vectordrawable.graphics.drawable.Animatable2Compat.AnimationCallback!);
     method public void setAlpha(int);
-    method public void setColorFilter(android.graphics.ColorFilter);
+    method public void setColorFilter(android.graphics.ColorFilter!);
     method public void start();
     method public void stop();
     method public boolean unregisterAnimationCallback(androidx.vectordrawable.graphics.drawable.Animatable2Compat.AnimationCallback);
-    method public static boolean unregisterAnimationCallback(android.graphics.drawable.Drawable, androidx.vectordrawable.graphics.drawable.Animatable2Compat.AnimationCallback);
+    method public static boolean unregisterAnimationCallback(android.graphics.drawable.Drawable!, androidx.vectordrawable.graphics.drawable.Animatable2Compat.AnimationCallback!);
   }
 
 }
diff --git a/graphics/drawable/static/api/1.0.0.txt b/graphics/drawable/static/api/1.0.0.txt
index 5f8a295..53c58ae7 100644
--- a/graphics/drawable/static/api/1.0.0.txt
+++ b/graphics/drawable/static/api/1.0.0.txt
@@ -1,12 +1,13 @@
+// Signature format: 2.0
 package androidx.vectordrawable.graphics.drawable {
 
   public class VectorDrawableCompat extends android.graphics.drawable.Drawable implements androidx.core.graphics.drawable.TintAwareDrawable {
-    method public static androidx.vectordrawable.graphics.drawable.VectorDrawableCompat create(android.content.res.Resources, int, android.content.res.Resources.Theme);
-    method public static androidx.vectordrawable.graphics.drawable.VectorDrawableCompat createFromXmlInner(android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet, android.content.res.Resources.Theme) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
-    method public void draw(android.graphics.Canvas);
+    method public static androidx.vectordrawable.graphics.drawable.VectorDrawableCompat? create(android.content.res.Resources, @DrawableRes int, android.content.res.Resources.Theme?);
+    method public static androidx.vectordrawable.graphics.drawable.VectorDrawableCompat! createFromXmlInner(android.content.res.Resources!, org.xmlpull.v1.XmlPullParser!, android.util.AttributeSet!, android.content.res.Resources.Theme!) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method public void draw(android.graphics.Canvas!);
     method public int getOpacity();
     method public void setAlpha(int);
-    method public void setColorFilter(android.graphics.ColorFilter);
+    method public void setColorFilter(android.graphics.ColorFilter!);
   }
 
 }
diff --git a/gridlayout/api/1.0.0.txt b/gridlayout/api/1.0.0.txt
index a60d194..9c7a8da 100644
--- a/gridlayout/api/1.0.0.txt
+++ b/gridlayout/api/1.0.0.txt
@@ -1,16 +1,17 @@
+// Signature format: 2.0
 package androidx.gridlayout.widget {
 
   public class GridLayout extends android.view.ViewGroup {
-    ctor public GridLayout(android.content.Context, android.util.AttributeSet, int);
-    ctor public GridLayout(android.content.Context, android.util.AttributeSet);
-    ctor public GridLayout(android.content.Context);
-    method protected androidx.gridlayout.widget.GridLayout.LayoutParams generateDefaultLayoutParams();
-    method public androidx.gridlayout.widget.GridLayout.LayoutParams generateLayoutParams(android.util.AttributeSet);
-    method protected androidx.gridlayout.widget.GridLayout.LayoutParams generateLayoutParams(android.view.ViewGroup.LayoutParams);
+    ctor public GridLayout(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public GridLayout(android.content.Context!, android.util.AttributeSet!);
+    ctor public GridLayout(android.content.Context!);
+    method protected androidx.gridlayout.widget.GridLayout.LayoutParams! generateDefaultLayoutParams();
+    method public androidx.gridlayout.widget.GridLayout.LayoutParams! generateLayoutParams(android.util.AttributeSet!);
+    method protected androidx.gridlayout.widget.GridLayout.LayoutParams! generateLayoutParams(android.view.ViewGroup.LayoutParams!);
     method public int getAlignmentMode();
     method public int getColumnCount();
     method public int getOrientation();
-    method public android.util.Printer getPrinter();
+    method public android.util.Printer! getPrinter();
     method public int getRowCount();
     method public boolean getUseDefaultMargins();
     method public boolean isColumnOrderPreserved();
@@ -19,51 +20,51 @@
     method public void setColumnCount(int);
     method public void setColumnOrderPreserved(boolean);
     method public void setOrientation(int);
-    method public void setPrinter(android.util.Printer);
+    method public void setPrinter(android.util.Printer!);
     method public void setRowCount(int);
     method public void setRowOrderPreserved(boolean);
     method public void setUseDefaultMargins(boolean);
-    method public static androidx.gridlayout.widget.GridLayout.Spec spec(int, int, androidx.gridlayout.widget.GridLayout.Alignment, float);
-    method public static androidx.gridlayout.widget.GridLayout.Spec spec(int, androidx.gridlayout.widget.GridLayout.Alignment, float);
-    method public static androidx.gridlayout.widget.GridLayout.Spec spec(int, int, float);
-    method public static androidx.gridlayout.widget.GridLayout.Spec spec(int, float);
-    method public static androidx.gridlayout.widget.GridLayout.Spec spec(int, int, androidx.gridlayout.widget.GridLayout.Alignment);
-    method public static androidx.gridlayout.widget.GridLayout.Spec spec(int, androidx.gridlayout.widget.GridLayout.Alignment);
-    method public static androidx.gridlayout.widget.GridLayout.Spec spec(int, int);
-    method public static androidx.gridlayout.widget.GridLayout.Spec spec(int);
+    method public static androidx.gridlayout.widget.GridLayout.Spec! spec(int, int, androidx.gridlayout.widget.GridLayout.Alignment!, float);
+    method public static androidx.gridlayout.widget.GridLayout.Spec! spec(int, androidx.gridlayout.widget.GridLayout.Alignment!, float);
+    method public static androidx.gridlayout.widget.GridLayout.Spec! spec(int, int, float);
+    method public static androidx.gridlayout.widget.GridLayout.Spec! spec(int, float);
+    method public static androidx.gridlayout.widget.GridLayout.Spec! spec(int, int, androidx.gridlayout.widget.GridLayout.Alignment!);
+    method public static androidx.gridlayout.widget.GridLayout.Spec! spec(int, androidx.gridlayout.widget.GridLayout.Alignment!);
+    method public static androidx.gridlayout.widget.GridLayout.Spec! spec(int, int);
+    method public static androidx.gridlayout.widget.GridLayout.Spec! spec(int);
     field public static final int ALIGN_BOUNDS = 0; // 0x0
     field public static final int ALIGN_MARGINS = 1; // 0x1
-    field public static final androidx.gridlayout.widget.GridLayout.Alignment BASELINE;
-    field public static final androidx.gridlayout.widget.GridLayout.Alignment BOTTOM;
-    field public static final androidx.gridlayout.widget.GridLayout.Alignment CENTER;
-    field public static final androidx.gridlayout.widget.GridLayout.Alignment END;
-    field public static final androidx.gridlayout.widget.GridLayout.Alignment FILL;
+    field public static final androidx.gridlayout.widget.GridLayout.Alignment! BASELINE;
+    field public static final androidx.gridlayout.widget.GridLayout.Alignment! BOTTOM;
+    field public static final androidx.gridlayout.widget.GridLayout.Alignment! CENTER;
+    field public static final androidx.gridlayout.widget.GridLayout.Alignment! END;
+    field public static final androidx.gridlayout.widget.GridLayout.Alignment! FILL;
     field public static final int HORIZONTAL = 0; // 0x0
-    field public static final androidx.gridlayout.widget.GridLayout.Alignment LEFT;
-    field public static final androidx.gridlayout.widget.GridLayout.Alignment RIGHT;
-    field public static final androidx.gridlayout.widget.GridLayout.Alignment START;
-    field public static final androidx.gridlayout.widget.GridLayout.Alignment TOP;
+    field public static final androidx.gridlayout.widget.GridLayout.Alignment! LEFT;
+    field public static final androidx.gridlayout.widget.GridLayout.Alignment! RIGHT;
+    field public static final androidx.gridlayout.widget.GridLayout.Alignment! START;
+    field public static final androidx.gridlayout.widget.GridLayout.Alignment! TOP;
     field public static final int UNDEFINED = -2147483648; // 0x80000000
     field public static final int VERTICAL = 1; // 0x1
   }
 
-  public static abstract class GridLayout.Alignment {
+  public abstract static class GridLayout.Alignment {
   }
 
   public static class GridLayout.LayoutParams extends android.view.ViewGroup.MarginLayoutParams {
-    ctor public GridLayout.LayoutParams(androidx.gridlayout.widget.GridLayout.Spec, androidx.gridlayout.widget.GridLayout.Spec);
+    ctor public GridLayout.LayoutParams(androidx.gridlayout.widget.GridLayout.Spec!, androidx.gridlayout.widget.GridLayout.Spec!);
     ctor public GridLayout.LayoutParams();
-    ctor public GridLayout.LayoutParams(android.view.ViewGroup.LayoutParams);
-    ctor public GridLayout.LayoutParams(android.view.ViewGroup.MarginLayoutParams);
-    ctor public GridLayout.LayoutParams(androidx.gridlayout.widget.GridLayout.LayoutParams);
-    ctor public GridLayout.LayoutParams(android.content.Context, android.util.AttributeSet);
+    ctor public GridLayout.LayoutParams(android.view.ViewGroup.LayoutParams!);
+    ctor public GridLayout.LayoutParams(android.view.ViewGroup.MarginLayoutParams!);
+    ctor public GridLayout.LayoutParams(androidx.gridlayout.widget.GridLayout.LayoutParams!);
+    ctor public GridLayout.LayoutParams(android.content.Context!, android.util.AttributeSet!);
     method public void setGravity(int);
-    field public androidx.gridlayout.widget.GridLayout.Spec columnSpec;
-    field public androidx.gridlayout.widget.GridLayout.Spec rowSpec;
+    field public androidx.gridlayout.widget.GridLayout.Spec! columnSpec;
+    field public androidx.gridlayout.widget.GridLayout.Spec! rowSpec;
   }
 
   public static class GridLayout.Spec {
-    method public androidx.gridlayout.widget.GridLayout.Alignment getAbsoluteAlignment(boolean);
+    method public androidx.gridlayout.widget.GridLayout.Alignment! getAbsoluteAlignment(boolean);
   }
 
 }
diff --git a/heifwriter/api/1.0.0.txt b/heifwriter/api/1.0.0.txt
index 6438011..5403f3e 100644
--- a/heifwriter/api/1.0.0.txt
+++ b/heifwriter/api/1.0.0.txt
@@ -1,3 +1,4 @@
+// Signature format: 2.0
 package androidx.heifwriter {
 
   public final class HeifWriter implements java.lang.AutoCloseable {
@@ -15,15 +16,15 @@
   }
 
   public static final class HeifWriter.Builder {
-    ctor public HeifWriter.Builder(java.lang.String, int, int, int);
+    ctor public HeifWriter.Builder(String, int, int, int);
     ctor public HeifWriter.Builder(java.io.FileDescriptor, int, int, int);
-    method public androidx.heifwriter.HeifWriter build() throws java.io.IOException;
-    method public androidx.heifwriter.HeifWriter.Builder setGridEnabled(boolean);
-    method public androidx.heifwriter.HeifWriter.Builder setHandler(android.os.Handler);
-    method public androidx.heifwriter.HeifWriter.Builder setMaxImages(int);
-    method public androidx.heifwriter.HeifWriter.Builder setPrimaryIndex(int);
-    method public androidx.heifwriter.HeifWriter.Builder setQuality(int);
-    method public androidx.heifwriter.HeifWriter.Builder setRotation(int);
+    method public androidx.heifwriter.HeifWriter! build() throws java.io.IOException;
+    method public androidx.heifwriter.HeifWriter.Builder! setGridEnabled(boolean);
+    method public androidx.heifwriter.HeifWriter.Builder! setHandler(android.os.Handler?);
+    method public androidx.heifwriter.HeifWriter.Builder! setMaxImages(int);
+    method public androidx.heifwriter.HeifWriter.Builder! setPrimaryIndex(int);
+    method public androidx.heifwriter.HeifWriter.Builder! setQuality(int);
+    method public androidx.heifwriter.HeifWriter.Builder! setRotation(int);
   }
 
 }
diff --git a/interpolator/api/1.0.0.txt b/interpolator/api/1.0.0.txt
index b3e9d04..83c2124f 100644
--- a/interpolator/api/1.0.0.txt
+++ b/interpolator/api/1.0.0.txt
@@ -1,15 +1,19 @@
+// Signature format: 2.0
 package androidx.interpolator.view.animation {
 
   public class FastOutLinearInInterpolator implements android.view.animation.Interpolator {
     ctor public FastOutLinearInInterpolator();
+    method public float getInterpolation(float);
   }
 
   public class FastOutSlowInInterpolator implements android.view.animation.Interpolator {
     ctor public FastOutSlowInInterpolator();
+    method public float getInterpolation(float);
   }
 
   public class LinearOutSlowInInterpolator implements android.view.animation.Interpolator {
     ctor public LinearOutSlowInInterpolator();
+    method public float getInterpolation(float);
   }
 
 }
diff --git a/leanback-preference/api/current.txt b/leanback-preference/api/current.txt
index 8ef4bca..75f7d49 100644
--- a/leanback-preference/api/current.txt
+++ b/leanback-preference/api/current.txt
@@ -1,8 +1,9 @@
+// Signature format: 2.0
 package androidx.leanback.preference {
 
-  public abstract deprecated class BaseLeanbackPreferenceFragment extends androidx.preference.PreferenceFragment {
-    ctor public BaseLeanbackPreferenceFragment();
-    method public androidx.recyclerview.widget.RecyclerView onCreateRecyclerView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle);
+  @Deprecated public abstract class BaseLeanbackPreferenceFragment extends androidx.preference.PreferenceFragment {
+    ctor @Deprecated public BaseLeanbackPreferenceFragment();
+    method @Deprecated public androidx.recyclerview.widget.RecyclerView! onCreateRecyclerView(android.view.LayoutInflater!, android.view.ViewGroup!, android.os.Bundle!);
   }
 
   public abstract class BaseLeanbackPreferenceFragmentCompat extends androidx.preference.PreferenceFragmentCompat {
@@ -11,92 +12,101 @@
 
   public class LeanbackEditTextPreferenceDialogFragmentCompat extends androidx.leanback.preference.LeanbackPreferenceDialogFragmentCompat {
     ctor public LeanbackEditTextPreferenceDialogFragmentCompat();
-    method public static androidx.leanback.preference.LeanbackEditTextPreferenceDialogFragmentCompat newInstance(java.lang.String);
-    field public static final java.lang.String EXTRA_IME_OPTIONS = "ime_option";
-    field public static final java.lang.String EXTRA_INPUT_TYPE = "input_type";
+    method public static androidx.leanback.preference.LeanbackEditTextPreferenceDialogFragmentCompat! newInstance(String!);
+    field public static final String EXTRA_IME_OPTIONS = "ime_option";
+    field public static final String EXTRA_INPUT_TYPE = "input_type";
   }
 
-  public deprecated class LeanbackListPreferenceDialogFragment extends androidx.leanback.preference.LeanbackPreferenceDialogFragment {
-    ctor public LeanbackListPreferenceDialogFragment();
-    method public static androidx.leanback.preference.LeanbackListPreferenceDialogFragment newInstanceMulti(java.lang.String);
-    method public static androidx.leanback.preference.LeanbackListPreferenceDialogFragment newInstanceSingle(java.lang.String);
-    method public androidx.recyclerview.widget.RecyclerView.Adapter onCreateAdapter();
+  @Deprecated public class LeanbackListPreferenceDialogFragment extends androidx.leanback.preference.LeanbackPreferenceDialogFragment {
+    ctor @Deprecated public LeanbackListPreferenceDialogFragment();
+    method @Deprecated public static androidx.leanback.preference.LeanbackListPreferenceDialogFragment! newInstanceMulti(String!);
+    method @Deprecated public static androidx.leanback.preference.LeanbackListPreferenceDialogFragment! newInstanceSingle(String!);
+    method @Deprecated public androidx.recyclerview.widget.RecyclerView.Adapter! onCreateAdapter();
+    method @Deprecated public android.view.View? onCreateView(android.view.LayoutInflater!, android.view.ViewGroup!, android.os.Bundle!);
+    method @Deprecated public void onSaveInstanceState(android.os.Bundle!);
   }
 
-  public deprecated class LeanbackListPreferenceDialogFragment.AdapterMulti extends androidx.recyclerview.widget.RecyclerView.Adapter implements androidx.leanback.preference.LeanbackListPreferenceDialogFragment.ViewHolder.OnItemClickListener {
-    ctor public LeanbackListPreferenceDialogFragment.AdapterMulti(java.lang.CharSequence[], java.lang.CharSequence[], java.util.Set<java.lang.String>);
-    method public int getItemCount();
-    method public void onBindViewHolder(androidx.leanback.preference.LeanbackListPreferenceDialogFragment.ViewHolder, int);
-    method public androidx.leanback.preference.LeanbackListPreferenceDialogFragment.ViewHolder onCreateViewHolder(android.view.ViewGroup, int);
-    method public void onItemClick(androidx.leanback.preference.LeanbackListPreferenceDialogFragment.ViewHolder);
+  @Deprecated public class LeanbackListPreferenceDialogFragment.AdapterMulti extends androidx.recyclerview.widget.RecyclerView.Adapter<androidx.leanback.preference.LeanbackListPreferenceDialogFragment.ViewHolder> implements androidx.leanback.preference.LeanbackListPreferenceDialogFragment.ViewHolder.OnItemClickListener {
+    ctor @Deprecated public LeanbackListPreferenceDialogFragment.AdapterMulti(CharSequence[]!, CharSequence[]!, java.util.Set<java.lang.String>!);
+    method @Deprecated public int getItemCount();
+    method @Deprecated public void onBindViewHolder(androidx.leanback.preference.LeanbackListPreferenceDialogFragment.ViewHolder!, int);
+    method @Deprecated public androidx.leanback.preference.LeanbackListPreferenceDialogFragment.ViewHolder! onCreateViewHolder(android.view.ViewGroup!, int);
+    method @Deprecated public void onItemClick(androidx.leanback.preference.LeanbackListPreferenceDialogFragment.ViewHolder!);
   }
 
-  public deprecated class LeanbackListPreferenceDialogFragment.AdapterSingle extends androidx.recyclerview.widget.RecyclerView.Adapter implements androidx.leanback.preference.LeanbackListPreferenceDialogFragment.ViewHolder.OnItemClickListener {
-    ctor public LeanbackListPreferenceDialogFragment.AdapterSingle(java.lang.CharSequence[], java.lang.CharSequence[], java.lang.CharSequence);
-    method public int getItemCount();
-    method public void onBindViewHolder(androidx.leanback.preference.LeanbackListPreferenceDialogFragment.ViewHolder, int);
-    method public androidx.leanback.preference.LeanbackListPreferenceDialogFragment.ViewHolder onCreateViewHolder(android.view.ViewGroup, int);
-    method public void onItemClick(androidx.leanback.preference.LeanbackListPreferenceDialogFragment.ViewHolder);
+  @Deprecated public class LeanbackListPreferenceDialogFragment.AdapterSingle extends androidx.recyclerview.widget.RecyclerView.Adapter<androidx.leanback.preference.LeanbackListPreferenceDialogFragment.ViewHolder> implements androidx.leanback.preference.LeanbackListPreferenceDialogFragment.ViewHolder.OnItemClickListener {
+    ctor @Deprecated public LeanbackListPreferenceDialogFragment.AdapterSingle(CharSequence[]!, CharSequence[]!, CharSequence!);
+    method @Deprecated public int getItemCount();
+    method @Deprecated public void onBindViewHolder(androidx.leanback.preference.LeanbackListPreferenceDialogFragment.ViewHolder!, int);
+    method @Deprecated public androidx.leanback.preference.LeanbackListPreferenceDialogFragment.ViewHolder! onCreateViewHolder(android.view.ViewGroup!, int);
+    method @Deprecated public void onItemClick(androidx.leanback.preference.LeanbackListPreferenceDialogFragment.ViewHolder!);
   }
 
-  public static deprecated class LeanbackListPreferenceDialogFragment.ViewHolder extends androidx.recyclerview.widget.RecyclerView.ViewHolder implements android.view.View.OnClickListener {
-    ctor public LeanbackListPreferenceDialogFragment.ViewHolder(android.view.View, androidx.leanback.preference.LeanbackListPreferenceDialogFragment.ViewHolder.OnItemClickListener);
-    method public android.view.ViewGroup getContainer();
-    method public android.widget.TextView getTitleView();
-    method public android.widget.Checkable getWidgetView();
-    method public void onClick(android.view.View);
+  @Deprecated public static class LeanbackListPreferenceDialogFragment.ViewHolder extends androidx.recyclerview.widget.RecyclerView.ViewHolder implements android.view.View.OnClickListener {
+    ctor @Deprecated public LeanbackListPreferenceDialogFragment.ViewHolder(android.view.View, androidx.leanback.preference.LeanbackListPreferenceDialogFragment.ViewHolder.OnItemClickListener);
+    method @Deprecated public android.view.ViewGroup! getContainer();
+    method @Deprecated public android.widget.TextView! getTitleView();
+    method @Deprecated public android.widget.Checkable! getWidgetView();
+    method @Deprecated public void onClick(android.view.View!);
   }
 
-  public static abstract interface LeanbackListPreferenceDialogFragment.ViewHolder.OnItemClickListener {
-    method public abstract void onItemClick(androidx.leanback.preference.LeanbackListPreferenceDialogFragment.ViewHolder);
+  @Deprecated public static interface LeanbackListPreferenceDialogFragment.ViewHolder.OnItemClickListener {
+    method @Deprecated public void onItemClick(androidx.leanback.preference.LeanbackListPreferenceDialogFragment.ViewHolder!);
   }
 
   public class LeanbackListPreferenceDialogFragmentCompat extends androidx.leanback.preference.LeanbackPreferenceDialogFragmentCompat {
     ctor public LeanbackListPreferenceDialogFragmentCompat();
-    method public static androidx.leanback.preference.LeanbackListPreferenceDialogFragmentCompat newInstanceMulti(java.lang.String);
-    method public static androidx.leanback.preference.LeanbackListPreferenceDialogFragmentCompat newInstanceSingle(java.lang.String);
+    method public static androidx.leanback.preference.LeanbackListPreferenceDialogFragmentCompat! newInstanceMulti(String!);
+    method public static androidx.leanback.preference.LeanbackListPreferenceDialogFragmentCompat! newInstanceSingle(String!);
   }
 
   public static final class LeanbackListPreferenceDialogFragmentCompat.ViewHolder extends androidx.recyclerview.widget.RecyclerView.ViewHolder implements android.view.View.OnClickListener {
-    method public android.view.ViewGroup getContainer();
-    method public android.widget.TextView getTitleView();
-    method public android.widget.Checkable getWidgetView();
-    method public void onClick(android.view.View);
+    method public android.view.ViewGroup! getContainer();
+    method public android.widget.TextView! getTitleView();
+    method public android.widget.Checkable! getWidgetView();
+    method public void onClick(android.view.View!);
   }
 
-  public deprecated class LeanbackPreferenceDialogFragment extends android.app.Fragment {
-    ctor public LeanbackPreferenceDialogFragment();
-    method public androidx.preference.DialogPreference getPreference();
-    field public static final java.lang.String ARG_KEY = "key";
+  @Deprecated public class LeanbackPreferenceDialogFragment extends android.app.Fragment {
+    ctor @Deprecated public LeanbackPreferenceDialogFragment();
+    method @Deprecated public androidx.preference.DialogPreference! getPreference();
+    method @Deprecated public void onCreate(android.os.Bundle!);
+    field @Deprecated public static final String ARG_KEY = "key";
   }
 
   public class LeanbackPreferenceDialogFragmentCompat extends androidx.fragment.app.Fragment {
     ctor public LeanbackPreferenceDialogFragmentCompat();
-    method public androidx.preference.DialogPreference getPreference();
-    field public static final java.lang.String ARG_KEY = "key";
+    method public androidx.preference.DialogPreference! getPreference();
+    field public static final String ARG_KEY = "key";
   }
 
-  public abstract deprecated class LeanbackPreferenceFragment extends androidx.leanback.preference.BaseLeanbackPreferenceFragment {
-    ctor public LeanbackPreferenceFragment();
-    method public void setTitle(java.lang.CharSequence);
+  @Deprecated public abstract class LeanbackPreferenceFragment extends androidx.leanback.preference.BaseLeanbackPreferenceFragment {
+    ctor @Deprecated public LeanbackPreferenceFragment();
+    method @Deprecated public android.view.View! onCreateView(android.view.LayoutInflater!, android.view.ViewGroup!, android.os.Bundle!);
+    method @Deprecated public void onViewCreated(android.view.View!, android.os.Bundle!);
+    method @Deprecated public void setTitle(CharSequence!);
   }
 
   public abstract class LeanbackPreferenceFragmentCompat extends androidx.leanback.preference.BaseLeanbackPreferenceFragmentCompat {
     ctor public LeanbackPreferenceFragmentCompat();
-    method public void setTitle(java.lang.CharSequence);
+    method public void setTitle(CharSequence!);
   }
 
-  public abstract deprecated class LeanbackSettingsFragment extends android.app.Fragment implements androidx.preference.PreferenceFragment.OnPreferenceDisplayDialogCallback androidx.preference.PreferenceFragment.OnPreferenceStartFragmentCallback androidx.preference.PreferenceFragment.OnPreferenceStartScreenCallback {
-    ctor public LeanbackSettingsFragment();
-    method public boolean onPreferenceDisplayDialog(androidx.preference.PreferenceFragment, androidx.preference.Preference);
-    method public abstract void onPreferenceStartInitialScreen();
-    method public void startImmersiveFragment(android.app.Fragment);
-    method public void startPreferenceFragment(android.app.Fragment);
+  @Deprecated public abstract class LeanbackSettingsFragment extends android.app.Fragment implements androidx.preference.PreferenceFragment.OnPreferenceDisplayDialogCallback androidx.preference.PreferenceFragment.OnPreferenceStartFragmentCallback androidx.preference.PreferenceFragment.OnPreferenceStartScreenCallback {
+    ctor @Deprecated public LeanbackSettingsFragment();
+    method @Deprecated public android.view.View! onCreateView(android.view.LayoutInflater!, android.view.ViewGroup!, android.os.Bundle!);
+    method @Deprecated public void onPause();
+    method @Deprecated public boolean onPreferenceDisplayDialog(androidx.preference.PreferenceFragment, androidx.preference.Preference!);
+    method @Deprecated public abstract void onPreferenceStartInitialScreen();
+    method @Deprecated public void onResume();
+    method @Deprecated public void onViewCreated(android.view.View!, android.os.Bundle!);
+    method @Deprecated public void startImmersiveFragment(android.app.Fragment);
+    method @Deprecated public void startPreferenceFragment(android.app.Fragment);
   }
 
   public abstract class LeanbackSettingsFragmentCompat extends androidx.fragment.app.Fragment implements androidx.preference.PreferenceFragmentCompat.OnPreferenceDisplayDialogCallback androidx.preference.PreferenceFragmentCompat.OnPreferenceStartFragmentCallback androidx.preference.PreferenceFragmentCompat.OnPreferenceStartScreenCallback {
     ctor public LeanbackSettingsFragmentCompat();
-    method public boolean onPreferenceDisplayDialog(androidx.preference.PreferenceFragmentCompat, androidx.preference.Preference);
+    method public boolean onPreferenceDisplayDialog(androidx.preference.PreferenceFragmentCompat, androidx.preference.Preference!);
     method public abstract void onPreferenceStartInitialScreen();
     method public void startImmersiveFragment(androidx.fragment.app.Fragment);
     method public void startPreferenceFragment(androidx.fragment.app.Fragment);
diff --git a/leanback/build.gradle b/leanback/build.gradle
index 1d4b834..5e79067 100644
--- a/leanback/build.gradle
+++ b/leanback/build.gradle
@@ -43,4 +43,5 @@
     description = "Android Support Leanback v17"
     failOnUncheckedWarnings = false
     failOnDeprecationWarnings = false
+    useMetalava = false
 }
diff --git a/legacy/core-ui/api/1.0.0.txt b/legacy/core-ui/api/1.0.0.txt
index be74c65..4e71f40 100644
--- a/legacy/core-ui/api/1.0.0.txt
+++ b/legacy/core-ui/api/1.0.0.txt
@@ -1,41 +1,42 @@
+// Signature format: 2.0
 package androidx.legacy.app {
 
-  public deprecated class ActionBarDrawerToggle implements androidx.drawerlayout.widget.DrawerLayout.DrawerListener {
-    ctor public ActionBarDrawerToggle(android.app.Activity, androidx.drawerlayout.widget.DrawerLayout, int, int, int);
-    ctor public ActionBarDrawerToggle(android.app.Activity, androidx.drawerlayout.widget.DrawerLayout, boolean, int, int, int);
-    method public boolean isDrawerIndicatorEnabled();
-    method public void onConfigurationChanged(android.content.res.Configuration);
-    method public void onDrawerClosed(android.view.View);
-    method public void onDrawerOpened(android.view.View);
-    method public void onDrawerSlide(android.view.View, float);
-    method public void onDrawerStateChanged(int);
-    method public boolean onOptionsItemSelected(android.view.MenuItem);
-    method public void setDrawerIndicatorEnabled(boolean);
-    method public void setHomeAsUpIndicator(android.graphics.drawable.Drawable);
-    method public void setHomeAsUpIndicator(int);
-    method public void syncState();
+  @Deprecated public class ActionBarDrawerToggle implements androidx.drawerlayout.widget.DrawerLayout.DrawerListener {
+    ctor @Deprecated public ActionBarDrawerToggle(android.app.Activity!, androidx.drawerlayout.widget.DrawerLayout!, @DrawableRes int, @StringRes int, @StringRes int);
+    ctor @Deprecated public ActionBarDrawerToggle(android.app.Activity!, androidx.drawerlayout.widget.DrawerLayout!, boolean, @DrawableRes int, @StringRes int, @StringRes int);
+    method @Deprecated public boolean isDrawerIndicatorEnabled();
+    method @Deprecated public void onConfigurationChanged(android.content.res.Configuration!);
+    method @Deprecated public void onDrawerClosed(android.view.View!);
+    method @Deprecated public void onDrawerOpened(android.view.View!);
+    method @Deprecated public void onDrawerSlide(android.view.View!, float);
+    method @Deprecated public void onDrawerStateChanged(int);
+    method @Deprecated public boolean onOptionsItemSelected(android.view.MenuItem!);
+    method @Deprecated public void setDrawerIndicatorEnabled(boolean);
+    method @Deprecated public void setHomeAsUpIndicator(android.graphics.drawable.Drawable!);
+    method @Deprecated public void setHomeAsUpIndicator(int);
+    method @Deprecated public void syncState();
   }
 
-  public static abstract deprecated interface ActionBarDrawerToggle.Delegate {
-    method public abstract android.graphics.drawable.Drawable getThemeUpIndicator();
-    method public abstract void setActionBarDescription(int);
-    method public abstract void setActionBarUpIndicator(android.graphics.drawable.Drawable, int);
+  @Deprecated public static interface ActionBarDrawerToggle.Delegate {
+    method @Deprecated public android.graphics.drawable.Drawable? getThemeUpIndicator();
+    method @Deprecated public void setActionBarDescription(@StringRes int);
+    method @Deprecated public void setActionBarUpIndicator(android.graphics.drawable.Drawable!, @StringRes int);
   }
 
-  public static abstract deprecated interface ActionBarDrawerToggle.DelegateProvider {
-    method public abstract androidx.legacy.app.ActionBarDrawerToggle.Delegate getDrawerToggleDelegate();
+  @Deprecated public static interface ActionBarDrawerToggle.DelegateProvider {
+    method @Deprecated public androidx.legacy.app.ActionBarDrawerToggle.Delegate? getDrawerToggleDelegate();
   }
 
 }
 
 package androidx.legacy.widget {
 
-  public deprecated class Space extends android.view.View {
-    ctor public deprecated Space(android.content.Context, android.util.AttributeSet, int);
-    ctor public deprecated Space(android.content.Context, android.util.AttributeSet);
-    ctor public deprecated Space(android.content.Context);
-    method public deprecated void draw(android.graphics.Canvas);
-    method protected deprecated void onMeasure(int, int);
+  @Deprecated public class Space extends android.view.View {
+    ctor @Deprecated public Space(android.content.Context, android.util.AttributeSet?, int);
+    ctor @Deprecated public Space(android.content.Context, android.util.AttributeSet?);
+    ctor @Deprecated public Space(android.content.Context);
+    method @Deprecated public void draw(android.graphics.Canvas!);
+    method @Deprecated protected void onMeasure(int, int);
   }
 
 }
diff --git a/legacy/core-utils/api/1.0.0.txt b/legacy/core-utils/api/1.0.0.txt
index c29f72f..f36337a 100644
--- a/legacy/core-utils/api/1.0.0.txt
+++ b/legacy/core-utils/api/1.0.0.txt
@@ -1,9 +1,10 @@
+// Signature format: 2.0
 package androidx.legacy.content {
 
-  public abstract deprecated class WakefulBroadcastReceiver extends android.content.BroadcastReceiver {
-    ctor public WakefulBroadcastReceiver();
-    method public static boolean completeWakefulIntent(android.content.Intent);
-    method public static android.content.ComponentName startWakefulService(android.content.Context, android.content.Intent);
+  @Deprecated public abstract class WakefulBroadcastReceiver extends android.content.BroadcastReceiver {
+    ctor @Deprecated public WakefulBroadcastReceiver();
+    method @Deprecated public static boolean completeWakefulIntent(android.content.Intent!);
+    method @Deprecated public static android.content.ComponentName! startWakefulService(android.content.Context!, android.content.Intent!);
   }
 
 }
diff --git a/legacy/preference-v14/build.gradle b/legacy/preference-v14/build.gradle
index cd9f580..79e3ffd 100644
--- a/legacy/preference-v14/build.gradle
+++ b/legacy/preference-v14/build.gradle
@@ -32,4 +32,5 @@
     mavenGroup = LibraryGroups.LEGACY
     inceptionYear = "2015"
     description = "Android Support Preference v14"
+    useMetalava = false
 }
diff --git a/legacy/v13/api/1.0.0.txt b/legacy/v13/api/1.0.0.txt
index d34c851..d4892b1 100644
--- a/legacy/v13/api/1.0.0.txt
+++ b/legacy/v13/api/1.0.0.txt
@@ -1,73 +1,74 @@
+// Signature format: 2.0
 package androidx.legacy.app {
 
-  public deprecated class ActivityCompat extends androidx.core.app.ActivityCompat {
-    ctor protected deprecated ActivityCompat();
+  @Deprecated public class ActivityCompat extends androidx.core.app.ActivityCompat {
+    ctor @Deprecated protected ActivityCompat();
   }
 
-  public deprecated class FragmentCompat {
-    ctor public deprecated FragmentCompat();
-    method public static deprecated void requestPermissions(android.app.Fragment, java.lang.String[], int);
-    method public static deprecated void setMenuVisibility(android.app.Fragment, boolean);
-    method public static deprecated void setPermissionCompatDelegate(androidx.legacy.app.FragmentCompat.PermissionCompatDelegate);
-    method public static deprecated void setUserVisibleHint(android.app.Fragment, boolean);
-    method public static deprecated boolean shouldShowRequestPermissionRationale(android.app.Fragment, java.lang.String);
+  @Deprecated public class FragmentCompat {
+    ctor @Deprecated public FragmentCompat();
+    method @Deprecated public static void requestPermissions(android.app.Fragment, String[], int);
+    method @Deprecated public static void setMenuVisibility(android.app.Fragment!, boolean);
+    method @Deprecated public static void setPermissionCompatDelegate(androidx.legacy.app.FragmentCompat.PermissionCompatDelegate!);
+    method @Deprecated public static void setUserVisibleHint(android.app.Fragment!, boolean);
+    method @Deprecated public static boolean shouldShowRequestPermissionRationale(android.app.Fragment, String);
   }
 
-  public static abstract deprecated interface FragmentCompat.OnRequestPermissionsResultCallback {
-    method public abstract deprecated void onRequestPermissionsResult(int, java.lang.String[], int[]);
+  @Deprecated public static interface FragmentCompat.OnRequestPermissionsResultCallback {
+    method @Deprecated public void onRequestPermissionsResult(int, String[], int[]);
   }
 
-  public static abstract deprecated interface FragmentCompat.PermissionCompatDelegate {
-    method public abstract deprecated boolean requestPermissions(android.app.Fragment, java.lang.String[], int);
+  @Deprecated public static interface FragmentCompat.PermissionCompatDelegate {
+    method @Deprecated public boolean requestPermissions(android.app.Fragment!, String[]!, int);
   }
 
-  public abstract deprecated class FragmentPagerAdapter extends androidx.viewpager.widget.PagerAdapter {
-    ctor public deprecated FragmentPagerAdapter(android.app.FragmentManager);
-    method public deprecated void destroyItem(android.view.ViewGroup, int, java.lang.Object);
-    method public deprecated void finishUpdate(android.view.ViewGroup);
-    method public abstract deprecated android.app.Fragment getItem(int);
-    method public deprecated long getItemId(int);
-    method public deprecated java.lang.Object instantiateItem(android.view.ViewGroup, int);
-    method public deprecated boolean isViewFromObject(android.view.View, java.lang.Object);
-    method public deprecated void restoreState(android.os.Parcelable, java.lang.ClassLoader);
-    method public deprecated android.os.Parcelable saveState();
-    method public deprecated void setPrimaryItem(android.view.ViewGroup, int, java.lang.Object);
-    method public deprecated void startUpdate(android.view.ViewGroup);
+  @Deprecated public abstract class FragmentPagerAdapter extends androidx.viewpager.widget.PagerAdapter {
+    ctor @Deprecated public FragmentPagerAdapter(android.app.FragmentManager!);
+    method @Deprecated public void destroyItem(android.view.ViewGroup!, int, Object!);
+    method @Deprecated public void finishUpdate(android.view.ViewGroup!);
+    method @Deprecated public abstract android.app.Fragment! getItem(int);
+    method @Deprecated public long getItemId(int);
+    method @Deprecated public Object! instantiateItem(android.view.ViewGroup!, int);
+    method @Deprecated public boolean isViewFromObject(android.view.View!, Object!);
+    method @Deprecated public void restoreState(android.os.Parcelable!, ClassLoader!);
+    method @Deprecated public android.os.Parcelable! saveState();
+    method @Deprecated public void setPrimaryItem(android.view.ViewGroup!, int, Object!);
+    method @Deprecated public void startUpdate(android.view.ViewGroup!);
   }
 
-  public abstract deprecated class FragmentStatePagerAdapter extends androidx.viewpager.widget.PagerAdapter {
-    ctor public deprecated FragmentStatePagerAdapter(android.app.FragmentManager);
-    method public deprecated void destroyItem(android.view.ViewGroup, int, java.lang.Object);
-    method public deprecated void finishUpdate(android.view.ViewGroup);
-    method public abstract deprecated android.app.Fragment getItem(int);
-    method public deprecated java.lang.Object instantiateItem(android.view.ViewGroup, int);
-    method public deprecated boolean isViewFromObject(android.view.View, java.lang.Object);
-    method public deprecated void restoreState(android.os.Parcelable, java.lang.ClassLoader);
-    method public deprecated android.os.Parcelable saveState();
-    method public deprecated void setPrimaryItem(android.view.ViewGroup, int, java.lang.Object);
-    method public deprecated void startUpdate(android.view.ViewGroup);
+  @Deprecated public abstract class FragmentStatePagerAdapter extends androidx.viewpager.widget.PagerAdapter {
+    ctor @Deprecated public FragmentStatePagerAdapter(android.app.FragmentManager!);
+    method @Deprecated public void destroyItem(android.view.ViewGroup!, int, Object!);
+    method @Deprecated public void finishUpdate(android.view.ViewGroup!);
+    method @Deprecated public abstract android.app.Fragment! getItem(int);
+    method @Deprecated public Object! instantiateItem(android.view.ViewGroup!, int);
+    method @Deprecated public boolean isViewFromObject(android.view.View!, Object!);
+    method @Deprecated public void restoreState(android.os.Parcelable!, ClassLoader!);
+    method @Deprecated public android.os.Parcelable! saveState();
+    method @Deprecated public void setPrimaryItem(android.view.ViewGroup!, int, Object!);
+    method @Deprecated public void startUpdate(android.view.ViewGroup!);
   }
 
-  public deprecated class FragmentTabHost extends android.widget.TabHost implements android.widget.TabHost.OnTabChangeListener {
-    ctor public deprecated FragmentTabHost(android.content.Context);
-    ctor public deprecated FragmentTabHost(android.content.Context, android.util.AttributeSet);
-    method public deprecated void addTab(android.widget.TabHost.TabSpec, java.lang.Class<?>, android.os.Bundle);
-    method protected deprecated void onAttachedToWindow();
-    method protected deprecated void onDetachedFromWindow();
-    method protected deprecated void onRestoreInstanceState(android.os.Parcelable);
-    method protected deprecated android.os.Parcelable onSaveInstanceState();
-    method public deprecated void onTabChanged(java.lang.String);
-    method public deprecated void setOnTabChangedListener(android.widget.TabHost.OnTabChangeListener);
-    method public deprecated void setup();
-    method public deprecated void setup(android.content.Context, android.app.FragmentManager);
-    method public deprecated void setup(android.content.Context, android.app.FragmentManager, int);
+  @Deprecated public class FragmentTabHost extends android.widget.TabHost implements android.widget.TabHost.OnTabChangeListener {
+    ctor @Deprecated public FragmentTabHost(android.content.Context!);
+    ctor @Deprecated public FragmentTabHost(android.content.Context!, android.util.AttributeSet!);
+    method @Deprecated public void addTab(android.widget.TabHost.TabSpec!, Class<?>!, android.os.Bundle!);
+    method @Deprecated protected void onAttachedToWindow();
+    method @Deprecated protected void onDetachedFromWindow();
+    method @Deprecated protected void onRestoreInstanceState(android.os.Parcelable!);
+    method @Deprecated protected android.os.Parcelable! onSaveInstanceState();
+    method @Deprecated public void onTabChanged(String!);
+    method @Deprecated public void setOnTabChangedListener(android.widget.TabHost.OnTabChangeListener!);
+    method @Deprecated public void setup();
+    method @Deprecated public void setup(android.content.Context!, android.app.FragmentManager!);
+    method @Deprecated public void setup(android.content.Context!, android.app.FragmentManager!, int);
   }
 
 }
 
 package androidx.legacy.view {
 
-  public deprecated class ViewCompat extends androidx.core.view.ViewCompat {
+  @Deprecated public class ViewCompat extends androidx.core.view.ViewCompat {
   }
 
 }
diff --git a/legacy/v4/build.gradle b/legacy/v4/build.gradle
index e4622e7..85e8f81 100644
--- a/legacy/v4/build.gradle
+++ b/legacy/v4/build.gradle
@@ -20,4 +20,5 @@
     mavenGroup = LibraryGroups.LEGACY
     inceptionYear = "2011"
     description = "The Support Library is a static library that you can add to your Android application in order to use APIs that are either not available for older platform versions or utility APIs that aren't a part of the framework APIs. Compatible on devices running API 14 or later."
+    useMetalava = false
 }
diff --git a/lifecycle/common-java8/api/2.0.0.txt b/lifecycle/common-java8/api/2.0.0.txt
index 07ed08c..2df8249 100644
--- a/lifecycle/common-java8/api/2.0.0.txt
+++ b/lifecycle/common-java8/api/2.0.0.txt
@@ -1,6 +1,7 @@
+// Signature format: 2.0
 package androidx.lifecycle {
 
-  public abstract interface DefaultLifecycleObserver implements androidx.lifecycle.LifecycleObserver {
+  public interface DefaultLifecycleObserver extends androidx.lifecycle.LifecycleObserver androidx.lifecycle.LifecycleObserver {
     method public default void onCreate(androidx.lifecycle.LifecycleOwner);
     method public default void onDestroy(androidx.lifecycle.LifecycleOwner);
     method public default void onPause(androidx.lifecycle.LifecycleOwner);
diff --git a/lifecycle/common/api/2.0.0.txt b/lifecycle/common/api/2.0.0.txt
index 370089b..fb2c0d2 100644
--- a/lifecycle/common/api/2.0.0.txt
+++ b/lifecycle/common/api/2.0.0.txt
@@ -1,15 +1,14 @@
+// Signature format: 2.0
 package androidx.lifecycle {
 
   public abstract class Lifecycle {
     ctor public Lifecycle();
-    method public abstract void addObserver(androidx.lifecycle.LifecycleObserver);
-    method public abstract androidx.lifecycle.Lifecycle.State getCurrentState();
-    method public abstract void removeObserver(androidx.lifecycle.LifecycleObserver);
+    method @MainThread public abstract void addObserver(androidx.lifecycle.LifecycleObserver);
+    method @MainThread public abstract androidx.lifecycle.Lifecycle.State getCurrentState();
+    method @MainThread public abstract void removeObserver(androidx.lifecycle.LifecycleObserver);
   }
 
-  public static final class Lifecycle.Event extends java.lang.Enum {
-    method public static androidx.lifecycle.Lifecycle.Event valueOf(java.lang.String);
-    method public static final androidx.lifecycle.Lifecycle.Event[] values();
+  public static enum Lifecycle.Event {
     enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_ANY;
     enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_CREATE;
     enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_DESTROY;
@@ -19,10 +18,8 @@
     enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_STOP;
   }
 
-  public static final class Lifecycle.State extends java.lang.Enum {
+  public static enum Lifecycle.State {
     method public boolean isAtLeast(androidx.lifecycle.Lifecycle.State);
-    method public static androidx.lifecycle.Lifecycle.State valueOf(java.lang.String);
-    method public static final androidx.lifecycle.Lifecycle.State[] values();
     enum_constant public static final androidx.lifecycle.Lifecycle.State CREATED;
     enum_constant public static final androidx.lifecycle.Lifecycle.State DESTROYED;
     enum_constant public static final androidx.lifecycle.Lifecycle.State INITIALIZED;
@@ -30,14 +27,15 @@
     enum_constant public static final androidx.lifecycle.Lifecycle.State STARTED;
   }
 
-  public abstract interface LifecycleObserver {
+  public interface LifecycleObserver {
   }
 
-  public abstract interface LifecycleOwner {
-    method public abstract androidx.lifecycle.Lifecycle getLifecycle();
+  public interface LifecycleOwner {
+    method public androidx.lifecycle.Lifecycle getLifecycle();
   }
 
-  public abstract class OnLifecycleEvent implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target(java.lang.annotation.ElementType.METHOD) public @interface OnLifecycleEvent {
+    method public abstract androidx.lifecycle.Lifecycle.Event value();
   }
 
 }
diff --git a/lifecycle/extensions/api/2.0.0.txt b/lifecycle/extensions/api/2.0.0.txt
index 413342a..c3b2a11 100644
--- a/lifecycle/extensions/api/2.0.0.txt
+++ b/lifecycle/extensions/api/2.0.0.txt
@@ -1,20 +1,21 @@
+// Signature format: 2.0
 package androidx.lifecycle {
 
   public class ViewModelProviders {
-    ctor public deprecated ViewModelProviders();
-    method public static androidx.lifecycle.ViewModelProvider of(androidx.fragment.app.Fragment);
-    method public static androidx.lifecycle.ViewModelProvider of(androidx.fragment.app.FragmentActivity);
-    method public static androidx.lifecycle.ViewModelProvider of(androidx.fragment.app.Fragment, androidx.lifecycle.ViewModelProvider.Factory);
-    method public static androidx.lifecycle.ViewModelProvider of(androidx.fragment.app.FragmentActivity, androidx.lifecycle.ViewModelProvider.Factory);
+    ctor @Deprecated public ViewModelProviders();
+    method @MainThread public static androidx.lifecycle.ViewModelProvider of(androidx.fragment.app.Fragment);
+    method @MainThread public static androidx.lifecycle.ViewModelProvider of(androidx.fragment.app.FragmentActivity);
+    method @MainThread public static androidx.lifecycle.ViewModelProvider of(androidx.fragment.app.Fragment, androidx.lifecycle.ViewModelProvider.Factory?);
+    method @MainThread public static androidx.lifecycle.ViewModelProvider of(androidx.fragment.app.FragmentActivity, androidx.lifecycle.ViewModelProvider.Factory?);
   }
 
-  public static deprecated class ViewModelProviders.DefaultFactory extends androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory {
-    ctor public deprecated ViewModelProviders.DefaultFactory(android.app.Application);
+  @Deprecated public static class ViewModelProviders.DefaultFactory extends androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory {
+    ctor @Deprecated public ViewModelProviders.DefaultFactory(android.app.Application);
   }
 
-  public deprecated class ViewModelStores {
-    method public static deprecated androidx.lifecycle.ViewModelStore of(androidx.fragment.app.FragmentActivity);
-    method public static deprecated androidx.lifecycle.ViewModelStore of(androidx.fragment.app.Fragment);
+  @Deprecated public class ViewModelStores {
+    method @Deprecated @MainThread public static androidx.lifecycle.ViewModelStore of(androidx.fragment.app.FragmentActivity);
+    method @Deprecated @MainThread public static androidx.lifecycle.ViewModelStore of(androidx.fragment.app.Fragment);
   }
 
 }
diff --git a/lifecycle/livedata-core/api/current.txt b/lifecycle/livedata-core/api/current.txt
index ac0a36a8..b59c9e6 100644
--- a/lifecycle/livedata-core/api/current.txt
+++ b/lifecycle/livedata-core/api/current.txt
@@ -1,30 +1,31 @@
+// Signature format: 2.0
 package androidx.lifecycle {
 
   public abstract class LiveData<T> {
-    ctor public LiveData(T);
+    ctor public LiveData(T!);
     ctor public LiveData();
-    method public T getValue();
+    method public T? getValue();
     method public boolean hasActiveObservers();
     method public boolean hasObservers();
-    method public void observe(androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Observer<? super T>);
-    method public void observeForever(androidx.lifecycle.Observer<? super T>);
+    method @MainThread public void observe(androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Observer<? super T>);
+    method @MainThread public void observeForever(androidx.lifecycle.Observer<? super T>);
     method protected void onActive();
     method protected void onInactive();
-    method protected void postValue(T);
-    method public void removeObserver(androidx.lifecycle.Observer<? super T>);
-    method public void removeObservers(androidx.lifecycle.LifecycleOwner);
-    method protected void setValue(T);
+    method protected void postValue(T!);
+    method @MainThread public void removeObserver(androidx.lifecycle.Observer<? super T>);
+    method @MainThread public void removeObservers(androidx.lifecycle.LifecycleOwner);
+    method @MainThread protected void setValue(T!);
   }
 
-  public class MutableLiveData<T> extends androidx.lifecycle.LiveData {
-    ctor public MutableLiveData(T);
+  public class MutableLiveData<T> extends androidx.lifecycle.LiveData<T> {
+    ctor public MutableLiveData(T!);
     ctor public MutableLiveData();
-    method public void postValue(T);
-    method public void setValue(T);
+    method public void postValue(T!);
+    method public void setValue(T!);
   }
 
-  public abstract interface Observer<T> {
-    method public abstract void onChanged(T);
+  public interface Observer<T> {
+    method public void onChanged(T!);
   }
 
 }
diff --git a/lifecycle/livedata/api/current.txt b/lifecycle/livedata/api/current.txt
index 88ef93c..5d12ff2 100644
--- a/lifecycle/livedata/api/current.txt
+++ b/lifecycle/livedata/api/current.txt
@@ -1,14 +1,15 @@
+// Signature format: 2.0
 package androidx.lifecycle {
 
-  public class MediatorLiveData<T> extends androidx.lifecycle.MutableLiveData {
+  public class MediatorLiveData<T> extends androidx.lifecycle.MutableLiveData<T> {
     ctor public MediatorLiveData();
-    method public <S> void addSource(androidx.lifecycle.LiveData<S>, androidx.lifecycle.Observer<? super S>);
-    method public <S> void removeSource(androidx.lifecycle.LiveData<S>);
+    method @MainThread public <S> void addSource(androidx.lifecycle.LiveData<S>, androidx.lifecycle.Observer<? super S>);
+    method @MainThread public <S> void removeSource(androidx.lifecycle.LiveData<S>);
   }
 
   public class Transformations {
-    method public static <X, Y> androidx.lifecycle.LiveData<Y> map(androidx.lifecycle.LiveData<X>, androidx.arch.core.util.Function<X, Y>);
-    method public static <X, Y> androidx.lifecycle.LiveData<Y> switchMap(androidx.lifecycle.LiveData<X>, androidx.arch.core.util.Function<X, androidx.lifecycle.LiveData<Y>>);
+    method @MainThread public static <X, Y> androidx.lifecycle.LiveData<Y> map(androidx.lifecycle.LiveData<X>, androidx.arch.core.util.Function<X,Y>);
+    method @MainThread public static <X, Y> androidx.lifecycle.LiveData<Y> switchMap(androidx.lifecycle.LiveData<X>, androidx.arch.core.util.Function<X,androidx.lifecycle.LiveData<Y>>);
   }
 
 }
diff --git a/lifecycle/process/api/2.0.0.txt b/lifecycle/process/api/2.0.0.txt
index 0855b71..ee2ae90 100644
--- a/lifecycle/process/api/2.0.0.txt
+++ b/lifecycle/process/api/2.0.0.txt
@@ -1,3 +1,4 @@
+// Signature format: 2.0
 package androidx.lifecycle {
 
   public class ProcessLifecycleOwner implements androidx.lifecycle.LifecycleOwner {
diff --git a/lifecycle/reactivestreams/api/2.0.0.txt b/lifecycle/reactivestreams/api/2.0.0.txt
index d342cca..ac0dbcb 100644
--- a/lifecycle/reactivestreams/api/2.0.0.txt
+++ b/lifecycle/reactivestreams/api/2.0.0.txt
@@ -1,3 +1,4 @@
+// Signature format: 2.0
 package androidx.lifecycle {
 
   public final class LiveDataReactiveStreams {
diff --git a/lifecycle/runtime/api/2.0.0.txt b/lifecycle/runtime/api/2.0.0.txt
index 84da3d1..767450d 100644
--- a/lifecycle/runtime/api/2.0.0.txt
+++ b/lifecycle/runtime/api/2.0.0.txt
@@ -1,3 +1,4 @@
+// Signature format: 2.0
 package androidx.lifecycle {
 
   public class LifecycleRegistry extends androidx.lifecycle.Lifecycle {
@@ -6,12 +7,12 @@
     method public androidx.lifecycle.Lifecycle.State getCurrentState();
     method public int getObserverCount();
     method public void handleLifecycleEvent(androidx.lifecycle.Lifecycle.Event);
-    method public void markState(androidx.lifecycle.Lifecycle.State);
+    method @MainThread public void markState(androidx.lifecycle.Lifecycle.State);
     method public void removeObserver(androidx.lifecycle.LifecycleObserver);
   }
 
-  public abstract deprecated interface LifecycleRegistryOwner implements androidx.lifecycle.LifecycleOwner {
-    method public abstract androidx.lifecycle.LifecycleRegistry getLifecycle();
+  @Deprecated public interface LifecycleRegistryOwner extends androidx.lifecycle.LifecycleOwner {
+    method @Deprecated public androidx.lifecycle.LifecycleRegistry getLifecycle();
   }
 
 }
diff --git a/lifecycle/service/api/2.0.0.txt b/lifecycle/service/api/2.0.0.txt
index 93f4772..b7273c0 100644
--- a/lifecycle/service/api/2.0.0.txt
+++ b/lifecycle/service/api/2.0.0.txt
@@ -1,10 +1,11 @@
+// Signature format: 2.0
 package androidx.lifecycle {
 
   public class LifecycleService extends android.app.Service implements androidx.lifecycle.LifecycleOwner {
     ctor public LifecycleService();
     method public androidx.lifecycle.Lifecycle getLifecycle();
-    method public android.os.IBinder onBind(android.content.Intent);
-    method public void onStart(android.content.Intent, int);
+    method @CallSuper public android.os.IBinder? onBind(android.content.Intent);
+    method @CallSuper public void onStart(android.content.Intent, int);
   }
 
   public class ServiceLifecycleDispatcher {
diff --git a/lifecycle/viewmodel/api/2.0.0.txt b/lifecycle/viewmodel/api/2.0.0.txt
index 802ac19..2bfd246 100644
--- a/lifecycle/viewmodel/api/2.0.0.txt
+++ b/lifecycle/viewmodel/api/2.0.0.txt
@@ -1,3 +1,4 @@
+// Signature format: 2.0
 package androidx.lifecycle {
 
   public class AndroidViewModel extends androidx.lifecycle.ViewModel {
@@ -13,8 +14,8 @@
   public class ViewModelProvider {
     ctor public ViewModelProvider(androidx.lifecycle.ViewModelStoreOwner, androidx.lifecycle.ViewModelProvider.Factory);
     ctor public ViewModelProvider(androidx.lifecycle.ViewModelStore, androidx.lifecycle.ViewModelProvider.Factory);
-    method public <T extends androidx.lifecycle.ViewModel> T get(java.lang.Class<T>);
-    method public <T extends androidx.lifecycle.ViewModel> T get(java.lang.String, java.lang.Class<T>);
+    method @MainThread public <T extends androidx.lifecycle.ViewModel> T get(Class<T>);
+    method @MainThread public <T extends androidx.lifecycle.ViewModel> T get(String, Class<T>);
   }
 
   public static class ViewModelProvider.AndroidViewModelFactory extends androidx.lifecycle.ViewModelProvider.NewInstanceFactory {
@@ -22,13 +23,13 @@
     method public static androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory getInstance(android.app.Application);
   }
 
-  public static abstract interface ViewModelProvider.Factory {
-    method public abstract <T extends androidx.lifecycle.ViewModel> T create(java.lang.Class<T>);
+  public static interface ViewModelProvider.Factory {
+    method public <T extends androidx.lifecycle.ViewModel> T create(Class<T>);
   }
 
   public static class ViewModelProvider.NewInstanceFactory implements androidx.lifecycle.ViewModelProvider.Factory {
     ctor public ViewModelProvider.NewInstanceFactory();
-    method public <T extends androidx.lifecycle.ViewModel> T create(java.lang.Class<T>);
+    method public <T extends androidx.lifecycle.ViewModel> T create(Class<T>);
   }
 
   public class ViewModelStore {
@@ -36,8 +37,8 @@
     method public final void clear();
   }
 
-  public abstract interface ViewModelStoreOwner {
-    method public abstract androidx.lifecycle.ViewModelStore getViewModelStore();
+  public interface ViewModelStoreOwner {
+    method public androidx.lifecycle.ViewModelStore getViewModelStore();
   }
 
 }
diff --git a/loader/api/1.0.0.txt b/loader/api/1.0.0.txt
index 27d6b05..ba1f38c 100644
--- a/loader/api/1.0.0.txt
+++ b/loader/api/1.0.0.txt
@@ -1,99 +1,100 @@
+// Signature format: 2.0
 package androidx.loader.app {
 
   public abstract class LoaderManager {
     ctor public LoaderManager();
-    method public abstract void destroyLoader(int);
-    method public abstract deprecated void dump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
+    method @MainThread public abstract void destroyLoader(int);
+    method @Deprecated public abstract void dump(String!, java.io.FileDescriptor!, java.io.PrintWriter!, String[]!);
     method public static void enableDebugLogging(boolean);
     method public static <T extends androidx.lifecycle.LifecycleOwner & androidx.lifecycle.ViewModelStoreOwner> androidx.loader.app.LoaderManager getInstance(T);
-    method public abstract <D> androidx.loader.content.Loader<D> getLoader(int);
+    method public abstract <D> androidx.loader.content.Loader<D>? getLoader(int);
     method public boolean hasRunningLoaders();
-    method public abstract <D> androidx.loader.content.Loader<D> initLoader(int, android.os.Bundle, androidx.loader.app.LoaderManager.LoaderCallbacks<D>);
+    method @MainThread public abstract <D> androidx.loader.content.Loader<D> initLoader(int, android.os.Bundle?, androidx.loader.app.LoaderManager.LoaderCallbacks<D>);
     method public abstract void markForRedelivery();
-    method public abstract <D> androidx.loader.content.Loader<D> restartLoader(int, android.os.Bundle, androidx.loader.app.LoaderManager.LoaderCallbacks<D>);
+    method @MainThread public abstract <D> androidx.loader.content.Loader<D> restartLoader(int, android.os.Bundle?, androidx.loader.app.LoaderManager.LoaderCallbacks<D>);
   }
 
-  public static abstract interface LoaderManager.LoaderCallbacks<D> {
-    method public abstract androidx.loader.content.Loader<D> onCreateLoader(int, android.os.Bundle);
-    method public abstract void onLoadFinished(androidx.loader.content.Loader<D>, D);
-    method public abstract void onLoaderReset(androidx.loader.content.Loader<D>);
+  public static interface LoaderManager.LoaderCallbacks<D> {
+    method @MainThread public androidx.loader.content.Loader<D> onCreateLoader(int, android.os.Bundle?);
+    method @MainThread public void onLoadFinished(androidx.loader.content.Loader<D>, D!);
+    method @MainThread public void onLoaderReset(androidx.loader.content.Loader<D>);
   }
 
 }
 
 package androidx.loader.content {
 
-  public abstract class AsyncTaskLoader<D> extends androidx.loader.content.Loader {
+  public abstract class AsyncTaskLoader<D> extends androidx.loader.content.Loader<D> {
     ctor public AsyncTaskLoader(android.content.Context);
     method public void cancelLoadInBackground();
     method public boolean isLoadInBackgroundCanceled();
-    method public abstract D loadInBackground();
-    method public void onCanceled(D);
-    method protected D onLoadInBackground();
+    method public abstract D? loadInBackground();
+    method public void onCanceled(D?);
+    method protected D? onLoadInBackground();
     method public void setUpdateThrottle(long);
   }
 
-  public class CursorLoader extends androidx.loader.content.AsyncTaskLoader {
+  public class CursorLoader extends androidx.loader.content.AsyncTaskLoader<android.database.Cursor> {
     ctor public CursorLoader(android.content.Context);
-    ctor public CursorLoader(android.content.Context, android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String);
-    method public void deliverResult(android.database.Cursor);
-    method public java.lang.String[] getProjection();
-    method public java.lang.String getSelection();
-    method public java.lang.String[] getSelectionArgs();
-    method public java.lang.String getSortOrder();
+    ctor public CursorLoader(android.content.Context, android.net.Uri, String[]?, String?, String[]?, String?);
+    method public void deliverResult(android.database.Cursor!);
+    method public String[]? getProjection();
+    method public String? getSelection();
+    method public String[]? getSelectionArgs();
+    method public String? getSortOrder();
     method public android.net.Uri getUri();
-    method public android.database.Cursor loadInBackground();
-    method public void onCanceled(android.database.Cursor);
-    method public void setProjection(java.lang.String[]);
-    method public void setSelection(java.lang.String);
-    method public void setSelectionArgs(java.lang.String[]);
-    method public void setSortOrder(java.lang.String);
+    method public android.database.Cursor! loadInBackground();
+    method public void onCanceled(android.database.Cursor!);
+    method public void setProjection(String[]?);
+    method public void setSelection(String?);
+    method public void setSelectionArgs(String[]?);
+    method public void setSortOrder(String?);
     method public void setUri(android.net.Uri);
   }
 
   public class Loader<D> {
     ctor public Loader(android.content.Context);
-    method public void abandon();
-    method public boolean cancelLoad();
+    method @MainThread public void abandon();
+    method @MainThread public boolean cancelLoad();
     method public void commitContentChanged();
-    method public java.lang.String dataToString(D);
-    method public void deliverCancellation();
-    method public void deliverResult(D);
-    method public deprecated void dump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
-    method public void forceLoad();
+    method public String dataToString(D?);
+    method @MainThread public void deliverCancellation();
+    method @MainThread public void deliverResult(D?);
+    method @Deprecated public void dump(String!, java.io.FileDescriptor!, java.io.PrintWriter!, String[]!);
+    method @MainThread public void forceLoad();
     method public android.content.Context getContext();
     method public int getId();
     method public boolean isAbandoned();
     method public boolean isReset();
     method public boolean isStarted();
-    method protected void onAbandon();
-    method protected boolean onCancelLoad();
-    method public void onContentChanged();
-    method protected void onForceLoad();
-    method protected void onReset();
-    method protected void onStartLoading();
-    method protected void onStopLoading();
-    method public void registerListener(int, androidx.loader.content.Loader.OnLoadCompleteListener<D>);
-    method public void registerOnLoadCanceledListener(androidx.loader.content.Loader.OnLoadCanceledListener<D>);
-    method public void reset();
+    method @MainThread protected void onAbandon();
+    method @MainThread protected boolean onCancelLoad();
+    method @MainThread public void onContentChanged();
+    method @MainThread protected void onForceLoad();
+    method @MainThread protected void onReset();
+    method @MainThread protected void onStartLoading();
+    method @MainThread protected void onStopLoading();
+    method @MainThread public void registerListener(int, androidx.loader.content.Loader.OnLoadCompleteListener<D>);
+    method @MainThread public void registerOnLoadCanceledListener(androidx.loader.content.Loader.OnLoadCanceledListener<D>);
+    method @MainThread public void reset();
     method public void rollbackContentChanged();
-    method public final void startLoading();
-    method public void stopLoading();
+    method @MainThread public final void startLoading();
+    method @MainThread public void stopLoading();
     method public boolean takeContentChanged();
-    method public void unregisterListener(androidx.loader.content.Loader.OnLoadCompleteListener<D>);
-    method public void unregisterOnLoadCanceledListener(androidx.loader.content.Loader.OnLoadCanceledListener<D>);
+    method @MainThread public void unregisterListener(androidx.loader.content.Loader.OnLoadCompleteListener<D>);
+    method @MainThread public void unregisterOnLoadCanceledListener(androidx.loader.content.Loader.OnLoadCanceledListener<D>);
   }
 
   public final class Loader.ForceLoadContentObserver extends android.database.ContentObserver {
     ctor public Loader.ForceLoadContentObserver();
   }
 
-  public static abstract interface Loader.OnLoadCanceledListener<D> {
-    method public abstract void onLoadCanceled(androidx.loader.content.Loader<D>);
+  public static interface Loader.OnLoadCanceledListener<D> {
+    method public void onLoadCanceled(androidx.loader.content.Loader<D>);
   }
 
-  public static abstract interface Loader.OnLoadCompleteListener<D> {
-    method public abstract void onLoadComplete(androidx.loader.content.Loader<D>, D);
+  public static interface Loader.OnLoadCompleteListener<D> {
+    method public void onLoadComplete(androidx.loader.content.Loader<D>, D?);
   }
 
 }
diff --git a/localbroadcastmanager/api/1.0.0.txt b/localbroadcastmanager/api/1.0.0.txt
index 814538c..8513cd9 100644
--- a/localbroadcastmanager/api/1.0.0.txt
+++ b/localbroadcastmanager/api/1.0.0.txt
@@ -1,3 +1,4 @@
+// Signature format: 2.0
 package androidx.localbroadcastmanager.content {
 
   public final class LocalBroadcastManager {
diff --git a/media-widget/api/current.txt b/media-widget/api/current.txt
index 5cf4911..bc36437 100644
--- a/media-widget/api/current.txt
+++ b/media-widget/api/current.txt
@@ -1,32 +1,39 @@
+// Signature format: 2.0
 package androidx.media.widget {
 
-  public class MediaControlView2 extends android.view.ViewGroup {
+  @RequiresApi(21) public class MediaControlView2 extends android.view.ViewGroup {
     ctor public MediaControlView2(android.content.Context);
-    ctor public MediaControlView2(android.content.Context, android.util.AttributeSet);
-    ctor public MediaControlView2(android.content.Context, android.util.AttributeSet, int);
+    ctor public MediaControlView2(android.content.Context, android.util.AttributeSet?);
+    ctor public MediaControlView2(android.content.Context, android.util.AttributeSet?, int);
+    method public boolean checkLayoutParams(android.view.ViewGroup.LayoutParams!);
+    method public android.view.ViewGroup.LayoutParams! generateDefaultLayoutParams();
+    method public android.view.ViewGroup.LayoutParams! generateLayoutParams(android.view.ViewGroup.LayoutParams!);
     method public void onMeasure(int, int);
     method public void requestPlayButtonFocus();
-    method public void setMediaSessionToken2(androidx.media2.SessionToken2);
-    method public void setOnFullScreenListener(androidx.media.widget.MediaControlView2.OnFullScreenListener);
+    method public void setMediaSessionToken2(androidx.media2.SessionToken2!);
+    method public void setOnFullScreenListener(androidx.media.widget.MediaControlView2.OnFullScreenListener!);
   }
 
-  public static abstract interface MediaControlView2.OnFullScreenListener {
-    method public abstract void onFullScreen(android.view.View, boolean);
+  public static interface MediaControlView2.OnFullScreenListener {
+    method public void onFullScreen(android.view.View!, boolean);
   }
 
   public class VideoView2 extends android.view.ViewGroup {
     ctor public VideoView2(android.content.Context);
-    ctor public VideoView2(android.content.Context, android.util.AttributeSet);
-    ctor public VideoView2(android.content.Context, android.util.AttributeSet, int);
-    method public androidx.media.widget.MediaControlView2 getMediaControlView2();
-    method public androidx.media2.SessionToken2 getMediaSessionToken2();
+    ctor public VideoView2(android.content.Context, android.util.AttributeSet?);
+    ctor public VideoView2(android.content.Context, android.util.AttributeSet?, int);
+    method public boolean checkLayoutParams(android.view.ViewGroup.LayoutParams!);
+    method public android.view.ViewGroup.LayoutParams! generateDefaultLayoutParams();
+    method public android.view.ViewGroup.LayoutParams! generateLayoutParams(android.view.ViewGroup.LayoutParams!);
+    method public androidx.media.widget.MediaControlView2! getMediaControlView2();
+    method public androidx.media2.SessionToken2! getMediaSessionToken2();
     method public int getViewType();
     method public void onAttachedToWindow();
     method public void onDetachedFromWindow();
     method public void onMeasure(int, int);
     method public void setAudioAttributes(androidx.media.AudioAttributesCompat);
-    method public void setMediaControlView2(androidx.media.widget.MediaControlView2, long);
-    method public void setMediaItem2(androidx.media2.MediaItem2);
+    method public void setMediaControlView2(androidx.media.widget.MediaControlView2!, long);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void setMediaItem2(androidx.media2.MediaItem2);
     method public void setViewType(int);
     field public static final int VIEW_TYPE_SURFACEVIEW = 0; // 0x0
     field public static final int VIEW_TYPE_TEXTUREVIEW = 1; // 0x1
diff --git a/media/api/1.0.0.txt b/media/api/1.0.0.txt
index d0be122..3f2e9f9 100644
--- a/media/api/1.0.0.txt
+++ b/media/api/1.0.0.txt
@@ -1,27 +1,28 @@
+// Signature format: 2.0
 package android.support.v4.media {
 
   public final class MediaBrowserCompat {
-    ctor public MediaBrowserCompat(android.content.Context, android.content.ComponentName, android.support.v4.media.MediaBrowserCompat.ConnectionCallback, android.os.Bundle);
+    ctor public MediaBrowserCompat(android.content.Context!, android.content.ComponentName!, android.support.v4.media.MediaBrowserCompat.ConnectionCallback!, android.os.Bundle!);
     method public void connect();
     method public void disconnect();
-    method public android.os.Bundle getExtras();
-    method public void getItem(java.lang.String, android.support.v4.media.MediaBrowserCompat.ItemCallback);
-    method public java.lang.String getRoot();
+    method public android.os.Bundle? getExtras();
+    method public void getItem(String, android.support.v4.media.MediaBrowserCompat.ItemCallback);
+    method public String getRoot();
     method public android.content.ComponentName getServiceComponent();
     method public android.support.v4.media.session.MediaSessionCompat.Token getSessionToken();
     method public boolean isConnected();
-    method public void search(java.lang.String, android.os.Bundle, android.support.v4.media.MediaBrowserCompat.SearchCallback);
-    method public void sendCustomAction(java.lang.String, android.os.Bundle, android.support.v4.media.MediaBrowserCompat.CustomActionCallback);
-    method public void subscribe(java.lang.String, android.support.v4.media.MediaBrowserCompat.SubscriptionCallback);
-    method public void subscribe(java.lang.String, android.os.Bundle, android.support.v4.media.MediaBrowserCompat.SubscriptionCallback);
-    method public void unsubscribe(java.lang.String);
-    method public void unsubscribe(java.lang.String, android.support.v4.media.MediaBrowserCompat.SubscriptionCallback);
-    field public static final java.lang.String CUSTOM_ACTION_DOWNLOAD = "android.support.v4.media.action.DOWNLOAD";
-    field public static final java.lang.String CUSTOM_ACTION_REMOVE_DOWNLOADED_FILE = "android.support.v4.media.action.REMOVE_DOWNLOADED_FILE";
-    field public static final java.lang.String EXTRA_DOWNLOAD_PROGRESS = "android.media.browse.extra.DOWNLOAD_PROGRESS";
-    field public static final java.lang.String EXTRA_MEDIA_ID = "android.media.browse.extra.MEDIA_ID";
-    field public static final java.lang.String EXTRA_PAGE = "android.media.browse.extra.PAGE";
-    field public static final java.lang.String EXTRA_PAGE_SIZE = "android.media.browse.extra.PAGE_SIZE";
+    method public void search(String, android.os.Bundle!, android.support.v4.media.MediaBrowserCompat.SearchCallback);
+    method public void sendCustomAction(String, android.os.Bundle!, android.support.v4.media.MediaBrowserCompat.CustomActionCallback?);
+    method public void subscribe(String, android.support.v4.media.MediaBrowserCompat.SubscriptionCallback);
+    method public void subscribe(String, android.os.Bundle, android.support.v4.media.MediaBrowserCompat.SubscriptionCallback);
+    method public void unsubscribe(String);
+    method public void unsubscribe(String, android.support.v4.media.MediaBrowserCompat.SubscriptionCallback);
+    field public static final String CUSTOM_ACTION_DOWNLOAD = "android.support.v4.media.action.DOWNLOAD";
+    field public static final String CUSTOM_ACTION_REMOVE_DOWNLOADED_FILE = "android.support.v4.media.action.REMOVE_DOWNLOADED_FILE";
+    field public static final String EXTRA_DOWNLOAD_PROGRESS = "android.media.browse.extra.DOWNLOAD_PROGRESS";
+    field public static final String EXTRA_MEDIA_ID = "android.media.browse.extra.MEDIA_ID";
+    field public static final String EXTRA_PAGE = "android.media.browse.extra.PAGE";
+    field public static final String EXTRA_PAGE_SIZE = "android.media.browse.extra.PAGE_SIZE";
   }
 
   public static class MediaBrowserCompat.ConnectionCallback {
@@ -31,62 +32,62 @@
     method public void onConnectionSuspended();
   }
 
-  public static abstract class MediaBrowserCompat.CustomActionCallback {
+  public abstract static class MediaBrowserCompat.CustomActionCallback {
     ctor public MediaBrowserCompat.CustomActionCallback();
-    method public void onError(java.lang.String, android.os.Bundle, android.os.Bundle);
-    method public void onProgressUpdate(java.lang.String, android.os.Bundle, android.os.Bundle);
-    method public void onResult(java.lang.String, android.os.Bundle, android.os.Bundle);
+    method public void onError(String!, android.os.Bundle!, android.os.Bundle!);
+    method public void onProgressUpdate(String!, android.os.Bundle!, android.os.Bundle!);
+    method public void onResult(String!, android.os.Bundle!, android.os.Bundle!);
   }
 
-  public static abstract class MediaBrowserCompat.ItemCallback {
+  public abstract static class MediaBrowserCompat.ItemCallback {
     ctor public MediaBrowserCompat.ItemCallback();
-    method public void onError(java.lang.String);
-    method public void onItemLoaded(android.support.v4.media.MediaBrowserCompat.MediaItem);
+    method public void onError(String);
+    method public void onItemLoaded(android.support.v4.media.MediaBrowserCompat.MediaItem!);
   }
 
   public static class MediaBrowserCompat.MediaItem implements android.os.Parcelable {
     ctor public MediaBrowserCompat.MediaItem(android.support.v4.media.MediaDescriptionCompat, int);
     method public int describeContents();
-    method public static android.support.v4.media.MediaBrowserCompat.MediaItem fromMediaItem(java.lang.Object);
-    method public static java.util.List<android.support.v4.media.MediaBrowserCompat.MediaItem> fromMediaItemList(java.util.List<?>);
+    method public static android.support.v4.media.MediaBrowserCompat.MediaItem! fromMediaItem(Object!);
+    method public static java.util.List<android.support.v4.media.MediaBrowserCompat.MediaItem>! fromMediaItemList(java.util.List<?>!);
     method public android.support.v4.media.MediaDescriptionCompat getDescription();
     method public int getFlags();
-    method public java.lang.String getMediaId();
+    method public String? getMediaId();
     method public boolean isBrowsable();
     method public boolean isPlayable();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.support.v4.media.MediaBrowserCompat.MediaItem> CREATOR;
+    method public void writeToParcel(android.os.Parcel!, int);
+    field public static final android.os.Parcelable.Creator<android.support.v4.media.MediaBrowserCompat.MediaItem>! CREATOR;
     field public static final int FLAG_BROWSABLE = 1; // 0x1
     field public static final int FLAG_PLAYABLE = 2; // 0x2
   }
 
-  public static abstract class MediaBrowserCompat.SearchCallback {
+  public abstract static class MediaBrowserCompat.SearchCallback {
     ctor public MediaBrowserCompat.SearchCallback();
-    method public void onError(java.lang.String, android.os.Bundle);
-    method public void onSearchResult(java.lang.String, android.os.Bundle, java.util.List<android.support.v4.media.MediaBrowserCompat.MediaItem>);
+    method public void onError(String, android.os.Bundle!);
+    method public void onSearchResult(String, android.os.Bundle!, java.util.List<android.support.v4.media.MediaBrowserCompat.MediaItem>);
   }
 
-  public static abstract class MediaBrowserCompat.SubscriptionCallback {
+  public abstract static class MediaBrowserCompat.SubscriptionCallback {
     ctor public MediaBrowserCompat.SubscriptionCallback();
-    method public void onChildrenLoaded(java.lang.String, java.util.List<android.support.v4.media.MediaBrowserCompat.MediaItem>);
-    method public void onChildrenLoaded(java.lang.String, java.util.List<android.support.v4.media.MediaBrowserCompat.MediaItem>, android.os.Bundle);
-    method public void onError(java.lang.String);
-    method public void onError(java.lang.String, android.os.Bundle);
+    method public void onChildrenLoaded(String, java.util.List<android.support.v4.media.MediaBrowserCompat.MediaItem>);
+    method public void onChildrenLoaded(String, java.util.List<android.support.v4.media.MediaBrowserCompat.MediaItem>, android.os.Bundle);
+    method public void onError(String);
+    method public void onError(String, android.os.Bundle);
   }
 
   public final class MediaDescriptionCompat implements android.os.Parcelable {
     method public int describeContents();
-    method public static android.support.v4.media.MediaDescriptionCompat fromMediaDescription(java.lang.Object);
-    method public java.lang.CharSequence getDescription();
-    method public android.os.Bundle getExtras();
-    method public android.graphics.Bitmap getIconBitmap();
-    method public android.net.Uri getIconUri();
-    method public java.lang.Object getMediaDescription();
-    method public java.lang.String getMediaId();
-    method public android.net.Uri getMediaUri();
-    method public java.lang.CharSequence getSubtitle();
-    method public java.lang.CharSequence getTitle();
-    method public void writeToParcel(android.os.Parcel, int);
+    method public static android.support.v4.media.MediaDescriptionCompat! fromMediaDescription(Object!);
+    method public CharSequence? getDescription();
+    method public android.os.Bundle? getExtras();
+    method public android.graphics.Bitmap? getIconBitmap();
+    method public android.net.Uri? getIconUri();
+    method public Object! getMediaDescription();
+    method public String? getMediaId();
+    method public android.net.Uri? getMediaUri();
+    method public CharSequence? getSubtitle();
+    method public CharSequence? getTitle();
+    method public void writeToParcel(android.os.Parcel!, int);
     field public static final long BT_FOLDER_TYPE_ALBUMS = 2L; // 0x2L
     field public static final long BT_FOLDER_TYPE_ARTISTS = 3L; // 0x3L
     field public static final long BT_FOLDER_TYPE_GENRES = 4L; // 0x4L
@@ -94,9 +95,9 @@
     field public static final long BT_FOLDER_TYPE_PLAYLISTS = 5L; // 0x5L
     field public static final long BT_FOLDER_TYPE_TITLES = 1L; // 0x1L
     field public static final long BT_FOLDER_TYPE_YEARS = 6L; // 0x6L
-    field public static final android.os.Parcelable.Creator<android.support.v4.media.MediaDescriptionCompat> CREATOR;
-    field public static final java.lang.String EXTRA_BT_FOLDER_TYPE = "android.media.extra.BT_FOLDER_TYPE";
-    field public static final java.lang.String EXTRA_DOWNLOAD_STATUS = "android.media.extra.DOWNLOAD_STATUS";
+    field public static final android.os.Parcelable.Creator<android.support.v4.media.MediaDescriptionCompat>! CREATOR;
+    field public static final String EXTRA_BT_FOLDER_TYPE = "android.media.extra.BT_FOLDER_TYPE";
+    field public static final String EXTRA_DOWNLOAD_STATUS = "android.media.extra.DOWNLOAD_STATUS";
     field public static final long STATUS_DOWNLOADED = 2L; // 0x2L
     field public static final long STATUS_DOWNLOADING = 1L; // 0x1L
     field public static final long STATUS_NOT_DOWNLOADED = 0L; // 0x0L
@@ -104,94 +105,94 @@
 
   public static final class MediaDescriptionCompat.Builder {
     ctor public MediaDescriptionCompat.Builder();
-    method public android.support.v4.media.MediaDescriptionCompat build();
-    method public android.support.v4.media.MediaDescriptionCompat.Builder setDescription(java.lang.CharSequence);
-    method public android.support.v4.media.MediaDescriptionCompat.Builder setExtras(android.os.Bundle);
-    method public android.support.v4.media.MediaDescriptionCompat.Builder setIconBitmap(android.graphics.Bitmap);
-    method public android.support.v4.media.MediaDescriptionCompat.Builder setIconUri(android.net.Uri);
-    method public android.support.v4.media.MediaDescriptionCompat.Builder setMediaId(java.lang.String);
-    method public android.support.v4.media.MediaDescriptionCompat.Builder setMediaUri(android.net.Uri);
-    method public android.support.v4.media.MediaDescriptionCompat.Builder setSubtitle(java.lang.CharSequence);
-    method public android.support.v4.media.MediaDescriptionCompat.Builder setTitle(java.lang.CharSequence);
+    method public android.support.v4.media.MediaDescriptionCompat! build();
+    method public android.support.v4.media.MediaDescriptionCompat.Builder! setDescription(CharSequence?);
+    method public android.support.v4.media.MediaDescriptionCompat.Builder! setExtras(android.os.Bundle?);
+    method public android.support.v4.media.MediaDescriptionCompat.Builder! setIconBitmap(android.graphics.Bitmap?);
+    method public android.support.v4.media.MediaDescriptionCompat.Builder! setIconUri(android.net.Uri?);
+    method public android.support.v4.media.MediaDescriptionCompat.Builder! setMediaId(String?);
+    method public android.support.v4.media.MediaDescriptionCompat.Builder! setMediaUri(android.net.Uri?);
+    method public android.support.v4.media.MediaDescriptionCompat.Builder! setSubtitle(CharSequence?);
+    method public android.support.v4.media.MediaDescriptionCompat.Builder! setTitle(CharSequence?);
   }
 
   public final class MediaMetadataCompat implements android.os.Parcelable {
-    method public boolean containsKey(java.lang.String);
+    method public boolean containsKey(String!);
     method public int describeContents();
-    method public static android.support.v4.media.MediaMetadataCompat fromMediaMetadata(java.lang.Object);
-    method public android.graphics.Bitmap getBitmap(java.lang.String);
-    method public android.os.Bundle getBundle();
-    method public android.support.v4.media.MediaDescriptionCompat getDescription();
-    method public long getLong(java.lang.String);
-    method public java.lang.Object getMediaMetadata();
-    method public android.support.v4.media.RatingCompat getRating(java.lang.String);
-    method public java.lang.String getString(java.lang.String);
-    method public java.lang.CharSequence getText(java.lang.String);
-    method public java.util.Set<java.lang.String> keySet();
+    method public static android.support.v4.media.MediaMetadataCompat! fromMediaMetadata(Object!);
+    method public android.graphics.Bitmap! getBitmap(String!);
+    method public android.os.Bundle! getBundle();
+    method public android.support.v4.media.MediaDescriptionCompat! getDescription();
+    method public long getLong(String!);
+    method public Object! getMediaMetadata();
+    method public android.support.v4.media.RatingCompat! getRating(String!);
+    method public String! getString(String!);
+    method public CharSequence! getText(String!);
+    method public java.util.Set<java.lang.String>! keySet();
     method public int size();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.support.v4.media.MediaMetadataCompat> CREATOR;
-    field public static final java.lang.String METADATA_KEY_ADVERTISEMENT = "android.media.metadata.ADVERTISEMENT";
-    field public static final java.lang.String METADATA_KEY_ALBUM = "android.media.metadata.ALBUM";
-    field public static final java.lang.String METADATA_KEY_ALBUM_ART = "android.media.metadata.ALBUM_ART";
-    field public static final java.lang.String METADATA_KEY_ALBUM_ARTIST = "android.media.metadata.ALBUM_ARTIST";
-    field public static final java.lang.String METADATA_KEY_ALBUM_ART_URI = "android.media.metadata.ALBUM_ART_URI";
-    field public static final java.lang.String METADATA_KEY_ART = "android.media.metadata.ART";
-    field public static final java.lang.String METADATA_KEY_ARTIST = "android.media.metadata.ARTIST";
-    field public static final java.lang.String METADATA_KEY_ART_URI = "android.media.metadata.ART_URI";
-    field public static final java.lang.String METADATA_KEY_AUTHOR = "android.media.metadata.AUTHOR";
-    field public static final java.lang.String METADATA_KEY_BT_FOLDER_TYPE = "android.media.metadata.BT_FOLDER_TYPE";
-    field public static final java.lang.String METADATA_KEY_COMPILATION = "android.media.metadata.COMPILATION";
-    field public static final java.lang.String METADATA_KEY_COMPOSER = "android.media.metadata.COMPOSER";
-    field public static final java.lang.String METADATA_KEY_DATE = "android.media.metadata.DATE";
-    field public static final java.lang.String METADATA_KEY_DISC_NUMBER = "android.media.metadata.DISC_NUMBER";
-    field public static final java.lang.String METADATA_KEY_DISPLAY_DESCRIPTION = "android.media.metadata.DISPLAY_DESCRIPTION";
-    field public static final java.lang.String METADATA_KEY_DISPLAY_ICON = "android.media.metadata.DISPLAY_ICON";
-    field public static final java.lang.String METADATA_KEY_DISPLAY_ICON_URI = "android.media.metadata.DISPLAY_ICON_URI";
-    field public static final java.lang.String METADATA_KEY_DISPLAY_SUBTITLE = "android.media.metadata.DISPLAY_SUBTITLE";
-    field public static final java.lang.String METADATA_KEY_DISPLAY_TITLE = "android.media.metadata.DISPLAY_TITLE";
-    field public static final java.lang.String METADATA_KEY_DOWNLOAD_STATUS = "android.media.metadata.DOWNLOAD_STATUS";
-    field public static final java.lang.String METADATA_KEY_DURATION = "android.media.metadata.DURATION";
-    field public static final java.lang.String METADATA_KEY_GENRE = "android.media.metadata.GENRE";
-    field public static final java.lang.String METADATA_KEY_MEDIA_ID = "android.media.metadata.MEDIA_ID";
-    field public static final java.lang.String METADATA_KEY_MEDIA_URI = "android.media.metadata.MEDIA_URI";
-    field public static final java.lang.String METADATA_KEY_NUM_TRACKS = "android.media.metadata.NUM_TRACKS";
-    field public static final java.lang.String METADATA_KEY_RATING = "android.media.metadata.RATING";
-    field public static final java.lang.String METADATA_KEY_TITLE = "android.media.metadata.TITLE";
-    field public static final java.lang.String METADATA_KEY_TRACK_NUMBER = "android.media.metadata.TRACK_NUMBER";
-    field public static final java.lang.String METADATA_KEY_USER_RATING = "android.media.metadata.USER_RATING";
-    field public static final java.lang.String METADATA_KEY_WRITER = "android.media.metadata.WRITER";
-    field public static final java.lang.String METADATA_KEY_YEAR = "android.media.metadata.YEAR";
+    method public void writeToParcel(android.os.Parcel!, int);
+    field public static final android.os.Parcelable.Creator<android.support.v4.media.MediaMetadataCompat>! CREATOR;
+    field public static final String METADATA_KEY_ADVERTISEMENT = "android.media.metadata.ADVERTISEMENT";
+    field public static final String METADATA_KEY_ALBUM = "android.media.metadata.ALBUM";
+    field public static final String METADATA_KEY_ALBUM_ART = "android.media.metadata.ALBUM_ART";
+    field public static final String METADATA_KEY_ALBUM_ARTIST = "android.media.metadata.ALBUM_ARTIST";
+    field public static final String METADATA_KEY_ALBUM_ART_URI = "android.media.metadata.ALBUM_ART_URI";
+    field public static final String METADATA_KEY_ART = "android.media.metadata.ART";
+    field public static final String METADATA_KEY_ARTIST = "android.media.metadata.ARTIST";
+    field public static final String METADATA_KEY_ART_URI = "android.media.metadata.ART_URI";
+    field public static final String METADATA_KEY_AUTHOR = "android.media.metadata.AUTHOR";
+    field public static final String METADATA_KEY_BT_FOLDER_TYPE = "android.media.metadata.BT_FOLDER_TYPE";
+    field public static final String METADATA_KEY_COMPILATION = "android.media.metadata.COMPILATION";
+    field public static final String METADATA_KEY_COMPOSER = "android.media.metadata.COMPOSER";
+    field public static final String METADATA_KEY_DATE = "android.media.metadata.DATE";
+    field public static final String METADATA_KEY_DISC_NUMBER = "android.media.metadata.DISC_NUMBER";
+    field public static final String METADATA_KEY_DISPLAY_DESCRIPTION = "android.media.metadata.DISPLAY_DESCRIPTION";
+    field public static final String METADATA_KEY_DISPLAY_ICON = "android.media.metadata.DISPLAY_ICON";
+    field public static final String METADATA_KEY_DISPLAY_ICON_URI = "android.media.metadata.DISPLAY_ICON_URI";
+    field public static final String METADATA_KEY_DISPLAY_SUBTITLE = "android.media.metadata.DISPLAY_SUBTITLE";
+    field public static final String METADATA_KEY_DISPLAY_TITLE = "android.media.metadata.DISPLAY_TITLE";
+    field public static final String METADATA_KEY_DOWNLOAD_STATUS = "android.media.metadata.DOWNLOAD_STATUS";
+    field public static final String METADATA_KEY_DURATION = "android.media.metadata.DURATION";
+    field public static final String METADATA_KEY_GENRE = "android.media.metadata.GENRE";
+    field public static final String METADATA_KEY_MEDIA_ID = "android.media.metadata.MEDIA_ID";
+    field public static final String METADATA_KEY_MEDIA_URI = "android.media.metadata.MEDIA_URI";
+    field public static final String METADATA_KEY_NUM_TRACKS = "android.media.metadata.NUM_TRACKS";
+    field public static final String METADATA_KEY_RATING = "android.media.metadata.RATING";
+    field public static final String METADATA_KEY_TITLE = "android.media.metadata.TITLE";
+    field public static final String METADATA_KEY_TRACK_NUMBER = "android.media.metadata.TRACK_NUMBER";
+    field public static final String METADATA_KEY_USER_RATING = "android.media.metadata.USER_RATING";
+    field public static final String METADATA_KEY_WRITER = "android.media.metadata.WRITER";
+    field public static final String METADATA_KEY_YEAR = "android.media.metadata.YEAR";
   }
 
   public static final class MediaMetadataCompat.Builder {
     ctor public MediaMetadataCompat.Builder();
-    ctor public MediaMetadataCompat.Builder(android.support.v4.media.MediaMetadataCompat);
-    method public android.support.v4.media.MediaMetadataCompat build();
-    method public android.support.v4.media.MediaMetadataCompat.Builder putBitmap(java.lang.String, android.graphics.Bitmap);
-    method public android.support.v4.media.MediaMetadataCompat.Builder putLong(java.lang.String, long);
-    method public android.support.v4.media.MediaMetadataCompat.Builder putRating(java.lang.String, android.support.v4.media.RatingCompat);
-    method public android.support.v4.media.MediaMetadataCompat.Builder putString(java.lang.String, java.lang.String);
-    method public android.support.v4.media.MediaMetadataCompat.Builder putText(java.lang.String, java.lang.CharSequence);
+    ctor public MediaMetadataCompat.Builder(android.support.v4.media.MediaMetadataCompat!);
+    method public android.support.v4.media.MediaMetadataCompat! build();
+    method public android.support.v4.media.MediaMetadataCompat.Builder! putBitmap(String!, android.graphics.Bitmap!);
+    method public android.support.v4.media.MediaMetadataCompat.Builder! putLong(String!, long);
+    method public android.support.v4.media.MediaMetadataCompat.Builder! putRating(String!, android.support.v4.media.RatingCompat!);
+    method public android.support.v4.media.MediaMetadataCompat.Builder! putString(String!, String!);
+    method public android.support.v4.media.MediaMetadataCompat.Builder! putText(String!, CharSequence!);
   }
 
   public final class RatingCompat implements android.os.Parcelable {
     method public int describeContents();
-    method public static android.support.v4.media.RatingCompat fromRating(java.lang.Object);
+    method public static android.support.v4.media.RatingCompat! fromRating(Object!);
     method public float getPercentRating();
-    method public java.lang.Object getRating();
+    method public Object! getRating();
     method public int getRatingStyle();
     method public float getStarRating();
     method public boolean hasHeart();
     method public boolean isRated();
     method public boolean isThumbUp();
-    method public static android.support.v4.media.RatingCompat newHeartRating(boolean);
-    method public static android.support.v4.media.RatingCompat newPercentageRating(float);
-    method public static android.support.v4.media.RatingCompat newStarRating(int, float);
-    method public static android.support.v4.media.RatingCompat newThumbRating(boolean);
-    method public static android.support.v4.media.RatingCompat newUnratedRating(int);
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.support.v4.media.RatingCompat> CREATOR;
+    method public static android.support.v4.media.RatingCompat! newHeartRating(boolean);
+    method public static android.support.v4.media.RatingCompat! newPercentageRating(float);
+    method public static android.support.v4.media.RatingCompat! newStarRating(int, float);
+    method public static android.support.v4.media.RatingCompat! newThumbRating(boolean);
+    method public static android.support.v4.media.RatingCompat! newUnratedRating(int);
+    method public void writeToParcel(android.os.Parcel!, int);
+    field public static final android.os.Parcelable.Creator<android.support.v4.media.RatingCompat>! CREATOR;
     field public static final int RATING_3_STARS = 3; // 0x3
     field public static final int RATING_4_STARS = 4; // 0x4
     field public static final int RATING_5_STARS = 5; // 0x5
@@ -206,53 +207,53 @@
 package android.support.v4.media.session {
 
   public final class MediaControllerCompat {
-    ctor public MediaControllerCompat(android.content.Context, android.support.v4.media.session.MediaSessionCompat);
-    ctor public MediaControllerCompat(android.content.Context, android.support.v4.media.session.MediaSessionCompat.Token) throws android.os.RemoteException;
-    method public void addQueueItem(android.support.v4.media.MediaDescriptionCompat);
-    method public void addQueueItem(android.support.v4.media.MediaDescriptionCompat, int);
+    ctor public MediaControllerCompat(android.content.Context!, android.support.v4.media.session.MediaSessionCompat);
+    ctor public MediaControllerCompat(android.content.Context!, android.support.v4.media.session.MediaSessionCompat.Token) throws android.os.RemoteException;
+    method public void addQueueItem(android.support.v4.media.MediaDescriptionCompat!);
+    method public void addQueueItem(android.support.v4.media.MediaDescriptionCompat!, int);
     method public void adjustVolume(int, int);
-    method public boolean dispatchMediaButtonEvent(android.view.KeyEvent);
-    method public android.os.Bundle getExtras();
+    method public boolean dispatchMediaButtonEvent(android.view.KeyEvent!);
+    method public android.os.Bundle! getExtras();
     method public long getFlags();
-    method public static android.support.v4.media.session.MediaControllerCompat getMediaController(android.app.Activity);
-    method public java.lang.Object getMediaController();
-    method public android.support.v4.media.MediaMetadataCompat getMetadata();
-    method public java.lang.String getPackageName();
-    method public android.support.v4.media.session.MediaControllerCompat.PlaybackInfo getPlaybackInfo();
-    method public android.support.v4.media.session.PlaybackStateCompat getPlaybackState();
-    method public java.util.List<android.support.v4.media.session.MediaSessionCompat.QueueItem> getQueue();
-    method public java.lang.CharSequence getQueueTitle();
+    method public static android.support.v4.media.session.MediaControllerCompat! getMediaController(android.app.Activity);
+    method public Object! getMediaController();
+    method public android.support.v4.media.MediaMetadataCompat! getMetadata();
+    method public String! getPackageName();
+    method public android.support.v4.media.session.MediaControllerCompat.PlaybackInfo! getPlaybackInfo();
+    method public android.support.v4.media.session.PlaybackStateCompat! getPlaybackState();
+    method public java.util.List<android.support.v4.media.session.MediaSessionCompat.QueueItem>! getQueue();
+    method public CharSequence! getQueueTitle();
     method public int getRatingType();
     method public int getRepeatMode();
-    method public android.app.PendingIntent getSessionActivity();
-    method public android.support.v4.media.session.MediaSessionCompat.Token getSessionToken();
+    method public android.app.PendingIntent! getSessionActivity();
+    method public android.support.v4.media.session.MediaSessionCompat.Token! getSessionToken();
     method public int getShuffleMode();
-    method public android.support.v4.media.session.MediaControllerCompat.TransportControls getTransportControls();
+    method public android.support.v4.media.session.MediaControllerCompat.TransportControls! getTransportControls();
     method public boolean isCaptioningEnabled();
     method public boolean isSessionReady();
     method public void registerCallback(android.support.v4.media.session.MediaControllerCompat.Callback);
-    method public void registerCallback(android.support.v4.media.session.MediaControllerCompat.Callback, android.os.Handler);
-    method public void removeQueueItem(android.support.v4.media.MediaDescriptionCompat);
-    method public deprecated void removeQueueItemAt(int);
-    method public void sendCommand(java.lang.String, android.os.Bundle, android.os.ResultReceiver);
-    method public static void setMediaController(android.app.Activity, android.support.v4.media.session.MediaControllerCompat);
+    method public void registerCallback(android.support.v4.media.session.MediaControllerCompat.Callback, android.os.Handler!);
+    method public void removeQueueItem(android.support.v4.media.MediaDescriptionCompat!);
+    method @Deprecated public void removeQueueItemAt(int);
+    method public void sendCommand(String, android.os.Bundle?, android.os.ResultReceiver?);
+    method public static void setMediaController(android.app.Activity, android.support.v4.media.session.MediaControllerCompat!);
     method public void setVolumeTo(int, int);
     method public void unregisterCallback(android.support.v4.media.session.MediaControllerCompat.Callback);
   }
 
-  public static abstract class MediaControllerCompat.Callback implements android.os.IBinder.DeathRecipient {
+  public abstract static class MediaControllerCompat.Callback implements android.os.IBinder.DeathRecipient {
     ctor public MediaControllerCompat.Callback();
     method public void binderDied();
-    method public void onAudioInfoChanged(android.support.v4.media.session.MediaControllerCompat.PlaybackInfo);
+    method public void onAudioInfoChanged(android.support.v4.media.session.MediaControllerCompat.PlaybackInfo!);
     method public void onCaptioningEnabledChanged(boolean);
-    method public void onExtrasChanged(android.os.Bundle);
-    method public void onMetadataChanged(android.support.v4.media.MediaMetadataCompat);
-    method public void onPlaybackStateChanged(android.support.v4.media.session.PlaybackStateCompat);
-    method public void onQueueChanged(java.util.List<android.support.v4.media.session.MediaSessionCompat.QueueItem>);
-    method public void onQueueTitleChanged(java.lang.CharSequence);
+    method public void onExtrasChanged(android.os.Bundle!);
+    method public void onMetadataChanged(android.support.v4.media.MediaMetadataCompat!);
+    method public void onPlaybackStateChanged(android.support.v4.media.session.PlaybackStateCompat!);
+    method public void onQueueChanged(java.util.List<android.support.v4.media.session.MediaSessionCompat.QueueItem>!);
+    method public void onQueueTitleChanged(CharSequence!);
     method public void onRepeatModeChanged(int);
     method public void onSessionDestroyed();
-    method public void onSessionEvent(java.lang.String, android.os.Bundle);
+    method public void onSessionEvent(String!, android.os.Bundle!);
     method public void onSessionReady();
     method public void onShuffleModeChanged(int);
   }
@@ -267,70 +268,70 @@
     field public static final int PLAYBACK_TYPE_REMOTE = 2; // 0x2
   }
 
-  public static abstract class MediaControllerCompat.TransportControls {
+  public abstract static class MediaControllerCompat.TransportControls {
     method public abstract void fastForward();
     method public abstract void pause();
     method public abstract void play();
-    method public abstract void playFromMediaId(java.lang.String, android.os.Bundle);
-    method public abstract void playFromSearch(java.lang.String, android.os.Bundle);
-    method public abstract void playFromUri(android.net.Uri, android.os.Bundle);
+    method public abstract void playFromMediaId(String!, android.os.Bundle!);
+    method public abstract void playFromSearch(String!, android.os.Bundle!);
+    method public abstract void playFromUri(android.net.Uri!, android.os.Bundle!);
     method public abstract void prepare();
-    method public abstract void prepareFromMediaId(java.lang.String, android.os.Bundle);
-    method public abstract void prepareFromSearch(java.lang.String, android.os.Bundle);
-    method public abstract void prepareFromUri(android.net.Uri, android.os.Bundle);
+    method public abstract void prepareFromMediaId(String!, android.os.Bundle!);
+    method public abstract void prepareFromSearch(String!, android.os.Bundle!);
+    method public abstract void prepareFromUri(android.net.Uri!, android.os.Bundle!);
     method public abstract void rewind();
     method public abstract void seekTo(long);
-    method public abstract void sendCustomAction(android.support.v4.media.session.PlaybackStateCompat.CustomAction, android.os.Bundle);
-    method public abstract void sendCustomAction(java.lang.String, android.os.Bundle);
+    method public abstract void sendCustomAction(android.support.v4.media.session.PlaybackStateCompat.CustomAction!, android.os.Bundle!);
+    method public abstract void sendCustomAction(String!, android.os.Bundle!);
     method public abstract void setCaptioningEnabled(boolean);
-    method public abstract void setRating(android.support.v4.media.RatingCompat);
-    method public abstract void setRating(android.support.v4.media.RatingCompat, android.os.Bundle);
+    method public abstract void setRating(android.support.v4.media.RatingCompat!);
+    method public abstract void setRating(android.support.v4.media.RatingCompat!, android.os.Bundle!);
     method public abstract void setRepeatMode(int);
     method public abstract void setShuffleMode(int);
     method public abstract void skipToNext();
     method public abstract void skipToPrevious();
     method public abstract void skipToQueueItem(long);
     method public abstract void stop();
-    field public static final java.lang.String EXTRA_LEGACY_STREAM_TYPE = "android.media.session.extra.LEGACY_STREAM_TYPE";
+    field public static final String EXTRA_LEGACY_STREAM_TYPE = "android.media.session.extra.LEGACY_STREAM_TYPE";
   }
 
   public class MediaSessionCompat {
-    ctor public MediaSessionCompat(android.content.Context, java.lang.String);
-    ctor public MediaSessionCompat(android.content.Context, java.lang.String, android.content.ComponentName, android.app.PendingIntent);
-    method public void addOnActiveChangeListener(android.support.v4.media.session.MediaSessionCompat.OnActiveChangeListener);
-    method public static android.support.v4.media.session.MediaSessionCompat fromMediaSession(android.content.Context, java.lang.Object);
-    method public android.support.v4.media.session.MediaControllerCompat getController();
+    ctor public MediaSessionCompat(android.content.Context!, String!);
+    ctor public MediaSessionCompat(android.content.Context!, String!, android.content.ComponentName!, android.app.PendingIntent!);
+    method public void addOnActiveChangeListener(android.support.v4.media.session.MediaSessionCompat.OnActiveChangeListener!);
+    method public static android.support.v4.media.session.MediaSessionCompat! fromMediaSession(android.content.Context!, Object!);
+    method public android.support.v4.media.session.MediaControllerCompat! getController();
     method public final androidx.media.MediaSessionManager.RemoteUserInfo getCurrentControllerInfo();
-    method public java.lang.Object getMediaSession();
-    method public java.lang.Object getRemoteControlClient();
-    method public android.support.v4.media.session.MediaSessionCompat.Token getSessionToken();
+    method public Object! getMediaSession();
+    method public Object! getRemoteControlClient();
+    method public android.support.v4.media.session.MediaSessionCompat.Token! getSessionToken();
     method public boolean isActive();
     method public void release();
-    method public void removeOnActiveChangeListener(android.support.v4.media.session.MediaSessionCompat.OnActiveChangeListener);
-    method public void sendSessionEvent(java.lang.String, android.os.Bundle);
+    method public void removeOnActiveChangeListener(android.support.v4.media.session.MediaSessionCompat.OnActiveChangeListener!);
+    method public void sendSessionEvent(String!, android.os.Bundle!);
     method public void setActive(boolean);
-    method public void setCallback(android.support.v4.media.session.MediaSessionCompat.Callback);
-    method public void setCallback(android.support.v4.media.session.MediaSessionCompat.Callback, android.os.Handler);
+    method public void setCallback(android.support.v4.media.session.MediaSessionCompat.Callback!);
+    method public void setCallback(android.support.v4.media.session.MediaSessionCompat.Callback!, android.os.Handler!);
     method public void setCaptioningEnabled(boolean);
-    method public void setExtras(android.os.Bundle);
+    method public void setExtras(android.os.Bundle!);
     method public void setFlags(int);
-    method public void setMediaButtonReceiver(android.app.PendingIntent);
-    method public void setMetadata(android.support.v4.media.MediaMetadataCompat);
-    method public void setPlaybackState(android.support.v4.media.session.PlaybackStateCompat);
+    method public void setMediaButtonReceiver(android.app.PendingIntent!);
+    method public void setMetadata(android.support.v4.media.MediaMetadataCompat!);
+    method public void setPlaybackState(android.support.v4.media.session.PlaybackStateCompat!);
     method public void setPlaybackToLocal(int);
-    method public void setPlaybackToRemote(androidx.media.VolumeProviderCompat);
-    method public void setQueue(java.util.List<android.support.v4.media.session.MediaSessionCompat.QueueItem>);
-    method public void setQueueTitle(java.lang.CharSequence);
+    method public void setPlaybackToRemote(androidx.media.VolumeProviderCompat!);
+    method public void setQueue(java.util.List<android.support.v4.media.session.MediaSessionCompat.QueueItem>!);
+    method public void setQueueTitle(CharSequence!);
     method public void setRatingType(int);
     method public void setRepeatMode(int);
-    method public void setSessionActivity(android.app.PendingIntent);
+    method public void setSessionActivity(android.app.PendingIntent!);
     method public void setShuffleMode(int);
-    field public static final java.lang.String ACTION_FLAG_AS_INAPPROPRIATE = "android.support.v4.media.session.action.FLAG_AS_INAPPROPRIATE";
-    field public static final java.lang.String ACTION_FOLLOW = "android.support.v4.media.session.action.FOLLOW";
-    field public static final java.lang.String ACTION_SKIP_AD = "android.support.v4.media.session.action.SKIP_AD";
-    field public static final java.lang.String ACTION_UNFOLLOW = "android.support.v4.media.session.action.UNFOLLOW";
-    field public static final java.lang.String ARGUMENT_MEDIA_ATTRIBUTE = "android.support.v4.media.session.ARGUMENT_MEDIA_ATTRIBUTE";
-    field public static final java.lang.String ARGUMENT_MEDIA_ATTRIBUTE_VALUE = "android.support.v4.media.session.ARGUMENT_MEDIA_ATTRIBUTE_VALUE";
+    field public static final String ACTION_FLAG_AS_INAPPROPRIATE = "android.support.v4.media.session.action.FLAG_AS_INAPPROPRIATE";
+    field public static final String ACTION_FOLLOW = "android.support.v4.media.session.action.FOLLOW";
+    field public static final String ACTION_SKIP_AD = "android.support.v4.media.session.action.SKIP_AD";
+    field public static final String ACTION_UNFOLLOW = "android.support.v4.media.session.action.UNFOLLOW";
+    field public static final String ARGUMENT_MEDIA_ATTRIBUTE = "android.support.v4.media.session.ARGUMENT_MEDIA_ATTRIBUTE";
+    field public static final String ARGUMENT_MEDIA_ATTRIBUTE_VALUE = "android.support.v4.media.session.ARGUMENT_MEDIA_ATTRIBUTE_VALUE";
     field public static final int FLAG_HANDLES_MEDIA_BUTTONS = 1; // 0x1
     field public static final int FLAG_HANDLES_QUEUE_COMMANDS = 4; // 0x4
     field public static final int FLAG_HANDLES_TRANSPORT_CONTROLS = 2; // 0x2
@@ -339,30 +340,30 @@
     field public static final int MEDIA_ATTRIBUTE_PLAYLIST = 2; // 0x2
   }
 
-  public static abstract class MediaSessionCompat.Callback {
+  public abstract static class MediaSessionCompat.Callback {
     ctor public MediaSessionCompat.Callback();
-    method public void onAddQueueItem(android.support.v4.media.MediaDescriptionCompat);
-    method public void onAddQueueItem(android.support.v4.media.MediaDescriptionCompat, int);
-    method public void onCommand(java.lang.String, android.os.Bundle, android.os.ResultReceiver);
-    method public void onCustomAction(java.lang.String, android.os.Bundle);
+    method public void onAddQueueItem(android.support.v4.media.MediaDescriptionCompat!);
+    method public void onAddQueueItem(android.support.v4.media.MediaDescriptionCompat!, int);
+    method public void onCommand(String!, android.os.Bundle!, android.os.ResultReceiver!);
+    method public void onCustomAction(String!, android.os.Bundle!);
     method public void onFastForward();
-    method public boolean onMediaButtonEvent(android.content.Intent);
+    method public boolean onMediaButtonEvent(android.content.Intent!);
     method public void onPause();
     method public void onPlay();
-    method public void onPlayFromMediaId(java.lang.String, android.os.Bundle);
-    method public void onPlayFromSearch(java.lang.String, android.os.Bundle);
-    method public void onPlayFromUri(android.net.Uri, android.os.Bundle);
+    method public void onPlayFromMediaId(String!, android.os.Bundle!);
+    method public void onPlayFromSearch(String!, android.os.Bundle!);
+    method public void onPlayFromUri(android.net.Uri!, android.os.Bundle!);
     method public void onPrepare();
-    method public void onPrepareFromMediaId(java.lang.String, android.os.Bundle);
-    method public void onPrepareFromSearch(java.lang.String, android.os.Bundle);
-    method public void onPrepareFromUri(android.net.Uri, android.os.Bundle);
-    method public void onRemoveQueueItem(android.support.v4.media.MediaDescriptionCompat);
-    method public deprecated void onRemoveQueueItemAt(int);
+    method public void onPrepareFromMediaId(String!, android.os.Bundle!);
+    method public void onPrepareFromSearch(String!, android.os.Bundle!);
+    method public void onPrepareFromUri(android.net.Uri!, android.os.Bundle!);
+    method public void onRemoveQueueItem(android.support.v4.media.MediaDescriptionCompat!);
+    method @Deprecated public void onRemoveQueueItemAt(int);
     method public void onRewind();
     method public void onSeekTo(long);
     method public void onSetCaptioningEnabled(boolean);
-    method public void onSetRating(android.support.v4.media.RatingCompat);
-    method public void onSetRating(android.support.v4.media.RatingCompat, android.os.Bundle);
+    method public void onSetRating(android.support.v4.media.RatingCompat!);
+    method public void onSetRating(android.support.v4.media.RatingCompat!, android.os.Bundle!);
     method public void onSetRepeatMode(int);
     method public void onSetShuffleMode(int);
     method public void onSkipToNext();
@@ -371,37 +372,37 @@
     method public void onStop();
   }
 
-  public static abstract interface MediaSessionCompat.OnActiveChangeListener {
-    method public abstract void onActiveChanged();
+  public static interface MediaSessionCompat.OnActiveChangeListener {
+    method public void onActiveChanged();
   }
 
   public static final class MediaSessionCompat.QueueItem implements android.os.Parcelable {
-    ctor public MediaSessionCompat.QueueItem(android.support.v4.media.MediaDescriptionCompat, long);
+    ctor public MediaSessionCompat.QueueItem(android.support.v4.media.MediaDescriptionCompat!, long);
     method public int describeContents();
-    method public static android.support.v4.media.session.MediaSessionCompat.QueueItem fromQueueItem(java.lang.Object);
-    method public static java.util.List<android.support.v4.media.session.MediaSessionCompat.QueueItem> fromQueueItemList(java.util.List<?>);
-    method public android.support.v4.media.MediaDescriptionCompat getDescription();
+    method public static android.support.v4.media.session.MediaSessionCompat.QueueItem! fromQueueItem(Object!);
+    method public static java.util.List<android.support.v4.media.session.MediaSessionCompat.QueueItem>! fromQueueItemList(java.util.List<?>!);
+    method public android.support.v4.media.MediaDescriptionCompat! getDescription();
     method public long getQueueId();
-    method public java.lang.Object getQueueItem();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.support.v4.media.session.MediaSessionCompat.QueueItem> CREATOR;
+    method public Object! getQueueItem();
+    method public void writeToParcel(android.os.Parcel!, int);
+    field public static final android.os.Parcelable.Creator<android.support.v4.media.session.MediaSessionCompat.QueueItem>! CREATOR;
     field public static final int UNKNOWN_ID = -1; // 0xffffffff
   }
 
   public static final class MediaSessionCompat.Token implements android.os.Parcelable {
     method public int describeContents();
-    method public static android.support.v4.media.session.MediaSessionCompat.Token fromToken(java.lang.Object);
-    method public java.lang.Object getToken();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.support.v4.media.session.MediaSessionCompat.Token> CREATOR;
+    method public static android.support.v4.media.session.MediaSessionCompat.Token! fromToken(Object!);
+    method public Object! getToken();
+    method public void writeToParcel(android.os.Parcel!, int);
+    field public static final android.os.Parcelable.Creator<android.support.v4.media.session.MediaSessionCompat.Token>! CREATOR;
   }
 
   public class ParcelableVolumeInfo implements android.os.Parcelable {
     ctor public ParcelableVolumeInfo(int, int, int, int, int);
-    ctor public ParcelableVolumeInfo(android.os.Parcel);
+    ctor public ParcelableVolumeInfo(android.os.Parcel!);
     method public int describeContents();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.support.v4.media.session.ParcelableVolumeInfo> CREATOR;
+    method public void writeToParcel(android.os.Parcel!, int);
+    field public static final android.os.Parcelable.Creator<android.support.v4.media.session.ParcelableVolumeInfo>! CREATOR;
     field public int audioStream;
     field public int controlType;
     field public int currentVolume;
@@ -411,21 +412,21 @@
 
   public final class PlaybackStateCompat implements android.os.Parcelable {
     method public int describeContents();
-    method public static android.support.v4.media.session.PlaybackStateCompat fromPlaybackState(java.lang.Object);
+    method public static android.support.v4.media.session.PlaybackStateCompat! fromPlaybackState(Object!);
     method public long getActions();
     method public long getActiveQueueItemId();
     method public long getBufferedPosition();
-    method public java.util.List<android.support.v4.media.session.PlaybackStateCompat.CustomAction> getCustomActions();
+    method public java.util.List<android.support.v4.media.session.PlaybackStateCompat.CustomAction>! getCustomActions();
     method public int getErrorCode();
-    method public java.lang.CharSequence getErrorMessage();
-    method public android.os.Bundle getExtras();
+    method public CharSequence! getErrorMessage();
+    method public android.os.Bundle? getExtras();
     method public long getLastPositionUpdateTime();
     method public float getPlaybackSpeed();
-    method public java.lang.Object getPlaybackState();
+    method public Object! getPlaybackState();
     method public long getPosition();
     method public int getState();
     method public static int toKeyCode(long);
-    method public void writeToParcel(android.os.Parcel, int);
+    method public void writeToParcel(android.os.Parcel!, int);
     field public static final long ACTION_FAST_FORWARD = 64L; // 0x40L
     field public static final long ACTION_PAUSE = 2L; // 0x2L
     field public static final long ACTION_PLAY = 4L; // 0x4L
@@ -443,12 +444,12 @@
     field public static final long ACTION_SET_RATING = 128L; // 0x80L
     field public static final long ACTION_SET_REPEAT_MODE = 262144L; // 0x40000L
     field public static final long ACTION_SET_SHUFFLE_MODE = 2097152L; // 0x200000L
-    field public static final deprecated long ACTION_SET_SHUFFLE_MODE_ENABLED = 524288L; // 0x80000L
+    field @Deprecated public static final long ACTION_SET_SHUFFLE_MODE_ENABLED = 524288L; // 0x80000L
     field public static final long ACTION_SKIP_TO_NEXT = 32L; // 0x20L
     field public static final long ACTION_SKIP_TO_PREVIOUS = 16L; // 0x10L
     field public static final long ACTION_SKIP_TO_QUEUE_ITEM = 4096L; // 0x1000L
     field public static final long ACTION_STOP = 1L; // 0x1L
-    field public static final android.os.Parcelable.Creator<android.support.v4.media.session.PlaybackStateCompat> CREATOR;
+    field public static final android.os.Parcelable.Creator<android.support.v4.media.session.PlaybackStateCompat>! CREATOR;
     field public static final int ERROR_CODE_ACTION_ABORTED = 10; // 0xa
     field public static final int ERROR_CODE_APP_ERROR = 1; // 0x1
     field public static final int ERROR_CODE_AUTHENTICATION_EXPIRED = 3; // 0x3
@@ -487,36 +488,36 @@
 
   public static final class PlaybackStateCompat.Builder {
     ctor public PlaybackStateCompat.Builder();
-    ctor public PlaybackStateCompat.Builder(android.support.v4.media.session.PlaybackStateCompat);
-    method public android.support.v4.media.session.PlaybackStateCompat.Builder addCustomAction(java.lang.String, java.lang.String, int);
-    method public android.support.v4.media.session.PlaybackStateCompat.Builder addCustomAction(android.support.v4.media.session.PlaybackStateCompat.CustomAction);
-    method public android.support.v4.media.session.PlaybackStateCompat build();
-    method public android.support.v4.media.session.PlaybackStateCompat.Builder setActions(long);
-    method public android.support.v4.media.session.PlaybackStateCompat.Builder setActiveQueueItemId(long);
-    method public android.support.v4.media.session.PlaybackStateCompat.Builder setBufferedPosition(long);
-    method public deprecated android.support.v4.media.session.PlaybackStateCompat.Builder setErrorMessage(java.lang.CharSequence);
-    method public android.support.v4.media.session.PlaybackStateCompat.Builder setErrorMessage(int, java.lang.CharSequence);
-    method public android.support.v4.media.session.PlaybackStateCompat.Builder setExtras(android.os.Bundle);
-    method public android.support.v4.media.session.PlaybackStateCompat.Builder setState(int, long, float);
-    method public android.support.v4.media.session.PlaybackStateCompat.Builder setState(int, long, float, long);
+    ctor public PlaybackStateCompat.Builder(android.support.v4.media.session.PlaybackStateCompat!);
+    method public android.support.v4.media.session.PlaybackStateCompat.Builder! addCustomAction(String!, String!, int);
+    method public android.support.v4.media.session.PlaybackStateCompat.Builder! addCustomAction(android.support.v4.media.session.PlaybackStateCompat.CustomAction!);
+    method public android.support.v4.media.session.PlaybackStateCompat! build();
+    method public android.support.v4.media.session.PlaybackStateCompat.Builder! setActions(long);
+    method public android.support.v4.media.session.PlaybackStateCompat.Builder! setActiveQueueItemId(long);
+    method public android.support.v4.media.session.PlaybackStateCompat.Builder! setBufferedPosition(long);
+    method @Deprecated public android.support.v4.media.session.PlaybackStateCompat.Builder! setErrorMessage(CharSequence!);
+    method public android.support.v4.media.session.PlaybackStateCompat.Builder! setErrorMessage(int, CharSequence!);
+    method public android.support.v4.media.session.PlaybackStateCompat.Builder! setExtras(android.os.Bundle!);
+    method public android.support.v4.media.session.PlaybackStateCompat.Builder! setState(int, long, float);
+    method public android.support.v4.media.session.PlaybackStateCompat.Builder! setState(int, long, float, long);
   }
 
   public static final class PlaybackStateCompat.CustomAction implements android.os.Parcelable {
     method public int describeContents();
-    method public static android.support.v4.media.session.PlaybackStateCompat.CustomAction fromCustomAction(java.lang.Object);
-    method public java.lang.String getAction();
-    method public java.lang.Object getCustomAction();
-    method public android.os.Bundle getExtras();
+    method public static android.support.v4.media.session.PlaybackStateCompat.CustomAction! fromCustomAction(Object!);
+    method public String! getAction();
+    method public Object! getCustomAction();
+    method public android.os.Bundle! getExtras();
     method public int getIcon();
-    method public java.lang.CharSequence getName();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.support.v4.media.session.PlaybackStateCompat.CustomAction> CREATOR;
+    method public CharSequence! getName();
+    method public void writeToParcel(android.os.Parcel!, int);
+    field public static final android.os.Parcelable.Creator<android.support.v4.media.session.PlaybackStateCompat.CustomAction>! CREATOR;
   }
 
   public static final class PlaybackStateCompat.CustomAction.Builder {
-    ctor public PlaybackStateCompat.CustomAction.Builder(java.lang.String, java.lang.CharSequence, int);
-    method public android.support.v4.media.session.PlaybackStateCompat.CustomAction build();
-    method public android.support.v4.media.session.PlaybackStateCompat.CustomAction.Builder setExtras(android.os.Bundle);
+    ctor public PlaybackStateCompat.CustomAction.Builder(String!, CharSequence!, int);
+    method public android.support.v4.media.session.PlaybackStateCompat.CustomAction! build();
+    method public android.support.v4.media.session.PlaybackStateCompat.CustomAction.Builder! setExtras(android.os.Bundle!);
   }
 
 }
@@ -529,8 +530,8 @@
     method public int getLegacyStreamType();
     method public int getUsage();
     method public int getVolumeControlStream();
-    method public java.lang.Object unwrap();
-    method public static androidx.media.AudioAttributesCompat wrap(java.lang.Object);
+    method public Object? unwrap();
+    method public static androidx.media.AudioAttributesCompat? wrap(Object);
     field public static final int CONTENT_TYPE_MOVIE = 3; // 0x3
     field public static final int CONTENT_TYPE_MUSIC = 2; // 0x2
     field public static final int CONTENT_TYPE_SONIFICATION = 4; // 0x4
@@ -558,48 +559,48 @@
 
   public static class AudioAttributesCompat.Builder {
     ctor public AudioAttributesCompat.Builder();
-    ctor public AudioAttributesCompat.Builder(androidx.media.AudioAttributesCompat);
-    method public androidx.media.AudioAttributesCompat build();
-    method public androidx.media.AudioAttributesCompat.Builder setContentType(int);
-    method public androidx.media.AudioAttributesCompat.Builder setFlags(int);
-    method public androidx.media.AudioAttributesCompat.Builder setLegacyStreamType(int);
-    method public androidx.media.AudioAttributesCompat.Builder setUsage(int);
+    ctor public AudioAttributesCompat.Builder(androidx.media.AudioAttributesCompat!);
+    method public androidx.media.AudioAttributesCompat! build();
+    method public androidx.media.AudioAttributesCompat.Builder! setContentType(int);
+    method public androidx.media.AudioAttributesCompat.Builder! setFlags(int);
+    method public androidx.media.AudioAttributesCompat.Builder! setLegacyStreamType(int);
+    method public androidx.media.AudioAttributesCompat.Builder! setUsage(int);
   }
 
   public abstract class MediaBrowserServiceCompat extends android.app.Service {
     ctor public MediaBrowserServiceCompat();
-    method public void dump(java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
-    method public final android.os.Bundle getBrowserRootHints();
+    method public void dump(java.io.FileDescriptor!, java.io.PrintWriter!, String[]!);
+    method public final android.os.Bundle! getBrowserRootHints();
     method public final androidx.media.MediaSessionManager.RemoteUserInfo getCurrentBrowserInfo();
-    method public android.support.v4.media.session.MediaSessionCompat.Token getSessionToken();
-    method public void notifyChildrenChanged(java.lang.String);
-    method public void notifyChildrenChanged(java.lang.String, android.os.Bundle);
-    method public android.os.IBinder onBind(android.content.Intent);
-    method public void onCustomAction(java.lang.String, android.os.Bundle, androidx.media.MediaBrowserServiceCompat.Result<android.os.Bundle>);
-    method public abstract androidx.media.MediaBrowserServiceCompat.BrowserRoot onGetRoot(java.lang.String, int, android.os.Bundle);
-    method public abstract void onLoadChildren(java.lang.String, androidx.media.MediaBrowserServiceCompat.Result<java.util.List<android.support.v4.media.MediaBrowserCompat.MediaItem>>);
-    method public void onLoadChildren(java.lang.String, androidx.media.MediaBrowserServiceCompat.Result<java.util.List<android.support.v4.media.MediaBrowserCompat.MediaItem>>, android.os.Bundle);
-    method public void onLoadItem(java.lang.String, androidx.media.MediaBrowserServiceCompat.Result<android.support.v4.media.MediaBrowserCompat.MediaItem>);
-    method public void onSearch(java.lang.String, android.os.Bundle, androidx.media.MediaBrowserServiceCompat.Result<java.util.List<android.support.v4.media.MediaBrowserCompat.MediaItem>>);
-    method public void setSessionToken(android.support.v4.media.session.MediaSessionCompat.Token);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.media.browse.MediaBrowserService";
+    method public android.support.v4.media.session.MediaSessionCompat.Token? getSessionToken();
+    method public void notifyChildrenChanged(String);
+    method public void notifyChildrenChanged(String, android.os.Bundle);
+    method public android.os.IBinder! onBind(android.content.Intent!);
+    method public void onCustomAction(String, android.os.Bundle!, androidx.media.MediaBrowserServiceCompat.Result<android.os.Bundle>);
+    method public abstract androidx.media.MediaBrowserServiceCompat.BrowserRoot? onGetRoot(String, int, android.os.Bundle?);
+    method public abstract void onLoadChildren(String, androidx.media.MediaBrowserServiceCompat.Result<java.util.List<android.support.v4.media.MediaBrowserCompat.MediaItem>>);
+    method public void onLoadChildren(String, androidx.media.MediaBrowserServiceCompat.Result<java.util.List<android.support.v4.media.MediaBrowserCompat.MediaItem>>, android.os.Bundle);
+    method public void onLoadItem(String!, androidx.media.MediaBrowserServiceCompat.Result<android.support.v4.media.MediaBrowserCompat.MediaItem>);
+    method public void onSearch(String, android.os.Bundle!, androidx.media.MediaBrowserServiceCompat.Result<java.util.List<android.support.v4.media.MediaBrowserCompat.MediaItem>>);
+    method public void setSessionToken(android.support.v4.media.session.MediaSessionCompat.Token!);
+    field public static final String SERVICE_INTERFACE = "android.media.browse.MediaBrowserService";
   }
 
   public static final class MediaBrowserServiceCompat.BrowserRoot {
-    ctor public MediaBrowserServiceCompat.BrowserRoot(java.lang.String, android.os.Bundle);
-    method public android.os.Bundle getExtras();
-    method public java.lang.String getRootId();
-    field public static final java.lang.String EXTRA_OFFLINE = "android.service.media.extra.OFFLINE";
-    field public static final java.lang.String EXTRA_RECENT = "android.service.media.extra.RECENT";
-    field public static final java.lang.String EXTRA_SUGGESTED = "android.service.media.extra.SUGGESTED";
-    field public static final deprecated java.lang.String EXTRA_SUGGESTION_KEYWORDS = "android.service.media.extra.SUGGESTION_KEYWORDS";
+    ctor public MediaBrowserServiceCompat.BrowserRoot(String, android.os.Bundle?);
+    method public android.os.Bundle! getExtras();
+    method public String! getRootId();
+    field public static final String EXTRA_OFFLINE = "android.service.media.extra.OFFLINE";
+    field public static final String EXTRA_RECENT = "android.service.media.extra.RECENT";
+    field public static final String EXTRA_SUGGESTED = "android.service.media.extra.SUGGESTED";
+    field @Deprecated public static final String EXTRA_SUGGESTION_KEYWORDS = "android.service.media.extra.SUGGESTION_KEYWORDS";
   }
 
   public static class MediaBrowserServiceCompat.Result<T> {
     method public void detach();
-    method public void sendError(android.os.Bundle);
-    method public void sendProgressUpdate(android.os.Bundle);
-    method public void sendResult(T);
+    method public void sendError(android.os.Bundle!);
+    method public void sendProgressUpdate(android.os.Bundle!);
+    method public void sendResult(T!);
   }
 
   public final class MediaSessionManager {
@@ -608,11 +609,11 @@
   }
 
   public static final class MediaSessionManager.RemoteUserInfo {
-    ctor public MediaSessionManager.RemoteUserInfo(java.lang.String, int, int);
-    method public java.lang.String getPackageName();
+    ctor public MediaSessionManager.RemoteUserInfo(String, int, int);
+    method public String getPackageName();
     method public int getPid();
     method public int getUid();
-    field public static final java.lang.String LEGACY_CONTROLLER = "android.media.session.MediaController";
+    field public static final String LEGACY_CONTROLLER = "android.media.session.MediaController";
   }
 
   public abstract class VolumeProviderCompat {
@@ -620,19 +621,19 @@
     method public final int getCurrentVolume();
     method public final int getMaxVolume();
     method public final int getVolumeControl();
-    method public java.lang.Object getVolumeProvider();
+    method public Object! getVolumeProvider();
     method public void onAdjustVolume(int);
     method public void onSetVolumeTo(int);
-    method public void setCallback(androidx.media.VolumeProviderCompat.Callback);
+    method public void setCallback(androidx.media.VolumeProviderCompat.Callback!);
     method public final void setCurrentVolume(int);
     field public static final int VOLUME_CONTROL_ABSOLUTE = 2; // 0x2
     field public static final int VOLUME_CONTROL_FIXED = 0; // 0x0
     field public static final int VOLUME_CONTROL_RELATIVE = 1; // 0x1
   }
 
-  public static abstract class VolumeProviderCompat.Callback {
+  public abstract static class VolumeProviderCompat.Callback {
     ctor public VolumeProviderCompat.Callback();
-    method public abstract void onVolumeChanged(androidx.media.VolumeProviderCompat);
+    method public abstract void onVolumeChanged(androidx.media.VolumeProviderCompat!);
   }
 
 }
@@ -648,12 +649,12 @@
 
   public static class NotificationCompat.MediaStyle extends androidx.core.app.NotificationCompat.Style {
     ctor public NotificationCompat.MediaStyle();
-    ctor public NotificationCompat.MediaStyle(androidx.core.app.NotificationCompat.Builder);
-    method public static android.support.v4.media.session.MediaSessionCompat.Token getMediaSession(android.app.Notification);
-    method public androidx.media.app.NotificationCompat.MediaStyle setCancelButtonIntent(android.app.PendingIntent);
-    method public androidx.media.app.NotificationCompat.MediaStyle setMediaSession(android.support.v4.media.session.MediaSessionCompat.Token);
-    method public androidx.media.app.NotificationCompat.MediaStyle setShowActionsInCompactView(int...);
-    method public androidx.media.app.NotificationCompat.MediaStyle setShowCancelButton(boolean);
+    ctor public NotificationCompat.MediaStyle(androidx.core.app.NotificationCompat.Builder!);
+    method public static android.support.v4.media.session.MediaSessionCompat.Token! getMediaSession(android.app.Notification!);
+    method public androidx.media.app.NotificationCompat.MediaStyle! setCancelButtonIntent(android.app.PendingIntent!);
+    method public androidx.media.app.NotificationCompat.MediaStyle! setMediaSession(android.support.v4.media.session.MediaSessionCompat.Token!);
+    method public androidx.media.app.NotificationCompat.MediaStyle! setShowActionsInCompactView(int...!);
+    method public androidx.media.app.NotificationCompat.MediaStyle! setShowCancelButton(boolean);
   }
 
 }
@@ -662,10 +663,10 @@
 
   public class MediaButtonReceiver extends android.content.BroadcastReceiver {
     ctor public MediaButtonReceiver();
-    method public static android.app.PendingIntent buildMediaButtonPendingIntent(android.content.Context, long);
-    method public static android.app.PendingIntent buildMediaButtonPendingIntent(android.content.Context, android.content.ComponentName, long);
-    method public static android.view.KeyEvent handleIntent(android.support.v4.media.session.MediaSessionCompat, android.content.Intent);
-    method public void onReceive(android.content.Context, android.content.Intent);
+    method public static android.app.PendingIntent! buildMediaButtonPendingIntent(android.content.Context!, long);
+    method public static android.app.PendingIntent! buildMediaButtonPendingIntent(android.content.Context!, android.content.ComponentName!, long);
+    method public static android.view.KeyEvent! handleIntent(android.support.v4.media.session.MediaSessionCompat!, android.content.Intent!);
+    method public void onReceive(android.content.Context!, android.content.Intent!);
   }
 
 }
diff --git a/media2/api/current.txt b/media2/api/current.txt
index f1211cf..930aa8f 100644
--- a/media2/api/current.txt
+++ b/media2/api/current.txt
@@ -1,3 +1,4 @@
+// Signature format: 2.0
 package androidx.media2 {
 
   public class CallbackMediaItem2 extends androidx.media2.MediaItem2 {
@@ -6,13 +7,17 @@
 
   public static final class CallbackMediaItem2.Builder {
     ctor public CallbackMediaItem2.Builder(androidx.media2.DataSourceCallback2);
-    method public androidx.media2.CallbackMediaItem2 build();
+    method public androidx.media2.CallbackMediaItem2! build();
+    method public androidx.media2.CallbackMediaItem2.Builder! setEndPosition(long);
+    method public androidx.media2.CallbackMediaItem2.Builder! setMediaId(String!);
+    method public androidx.media2.CallbackMediaItem2.Builder! setMetadata(androidx.media2.MediaMetadata2!);
+    method public androidx.media2.CallbackMediaItem2.Builder! setStartPosition(long);
   }
 
   public abstract class DataSourceCallback2 implements java.io.Closeable {
     ctor public DataSourceCallback2();
     method public abstract long getSize() throws java.io.IOException;
-    method public abstract int readAt(long, byte[], int, int) throws java.io.IOException;
+    method public abstract int readAt(long, byte[]!, int, int) throws java.io.IOException;
   }
 
   public class FileMediaItem2 extends androidx.media2.MediaItem2 {
@@ -25,7 +30,11 @@
   public static final class FileMediaItem2.Builder {
     ctor public FileMediaItem2.Builder(java.io.FileDescriptor);
     ctor public FileMediaItem2.Builder(java.io.FileDescriptor, long, long);
-    method public androidx.media2.FileMediaItem2 build();
+    method public androidx.media2.FileMediaItem2! build();
+    method public androidx.media2.FileMediaItem2.Builder! setEndPosition(long);
+    method public androidx.media2.FileMediaItem2.Builder! setMediaId(String!);
+    method public androidx.media2.FileMediaItem2.Builder! setMetadata(androidx.media2.MediaMetadata2!);
+    method public androidx.media2.FileMediaItem2.Builder! setStartPosition(long);
   }
 
   public final class HeartRating2 implements androidx.media2.Rating2 {
@@ -37,23 +46,23 @@
 
   public class MediaBrowser2 extends androidx.media2.MediaController2 {
     ctor public MediaBrowser2(android.content.Context, androidx.media2.SessionToken2, java.util.concurrent.Executor, androidx.media2.MediaBrowser2.BrowserCallback);
-    method public void getChildren(java.lang.String, int, int, android.os.Bundle);
-    method public void getItem(java.lang.String);
-    method public void getLibraryRoot(android.os.Bundle);
-    method public void getSearchResult(java.lang.String, int, int, android.os.Bundle);
-    method public void search(java.lang.String, android.os.Bundle);
-    method public void subscribe(java.lang.String, android.os.Bundle);
-    method public void unsubscribe(java.lang.String);
+    method public void getChildren(String, int, int, android.os.Bundle?);
+    method public void getItem(String);
+    method public void getLibraryRoot(android.os.Bundle?);
+    method public void getSearchResult(String, int, int, android.os.Bundle?);
+    method public void search(String, android.os.Bundle?);
+    method public void subscribe(String, android.os.Bundle?);
+    method public void unsubscribe(String);
   }
 
   public static class MediaBrowser2.BrowserCallback extends androidx.media2.MediaController2.ControllerCallback {
     ctor public MediaBrowser2.BrowserCallback();
-    method public void onChildrenChanged(androidx.media2.MediaBrowser2, java.lang.String, int, android.os.Bundle);
-    method public void onGetChildrenDone(androidx.media2.MediaBrowser2, java.lang.String, int, int, java.util.List<androidx.media2.MediaItem2>, android.os.Bundle);
-    method public void onGetItemDone(androidx.media2.MediaBrowser2, java.lang.String, androidx.media2.MediaItem2);
-    method public void onGetLibraryRootDone(androidx.media2.MediaBrowser2, android.os.Bundle, java.lang.String, android.os.Bundle);
-    method public void onGetSearchResultDone(androidx.media2.MediaBrowser2, java.lang.String, int, int, java.util.List<androidx.media2.MediaItem2>, android.os.Bundle);
-    method public void onSearchResultChanged(androidx.media2.MediaBrowser2, java.lang.String, int, android.os.Bundle);
+    method public void onChildrenChanged(androidx.media2.MediaBrowser2, String, int, android.os.Bundle?);
+    method public void onGetChildrenDone(androidx.media2.MediaBrowser2, String, int, int, java.util.List<androidx.media2.MediaItem2>?, android.os.Bundle?);
+    method public void onGetItemDone(androidx.media2.MediaBrowser2, String, androidx.media2.MediaItem2?);
+    method public void onGetLibraryRootDone(androidx.media2.MediaBrowser2, android.os.Bundle?, String?, android.os.Bundle?);
+    method public void onGetSearchResultDone(androidx.media2.MediaBrowser2, String, int, int, java.util.List<androidx.media2.MediaItem2>?, android.os.Bundle?);
+    method public void onSearchResultChanged(androidx.media2.MediaBrowser2, String, int, android.os.Bundle?);
   }
 
   public class MediaController2 implements java.lang.AutoCloseable {
@@ -65,68 +74,68 @@
     method public void fastForward();
     method public long getBufferedPosition();
     method public int getBufferingState();
-    method public androidx.media2.SessionToken2 getConnectedSessionToken();
-    method public androidx.media2.MediaItem2 getCurrentMediaItem();
+    method public androidx.media2.SessionToken2? getConnectedSessionToken();
+    method public androidx.media2.MediaItem2! getCurrentMediaItem();
     method public long getCurrentPosition();
     method public long getDuration();
-    method public androidx.media2.MediaController2.PlaybackInfo getPlaybackInfo();
+    method public androidx.media2.MediaController2.PlaybackInfo? getPlaybackInfo();
     method public float getPlaybackSpeed();
     method public int getPlayerState();
-    method public java.util.List<androidx.media2.MediaItem2> getPlaylist();
-    method public androidx.media2.MediaMetadata2 getPlaylistMetadata();
+    method public java.util.List<androidx.media2.MediaItem2>? getPlaylist();
+    method public androidx.media2.MediaMetadata2? getPlaylistMetadata();
     method public int getRepeatMode();
-    method public android.app.PendingIntent getSessionActivity();
+    method public android.app.PendingIntent? getSessionActivity();
     method public int getShuffleMode();
     method public boolean isConnected();
     method public void pause();
     method public void play();
-    method public void playFromMediaId(java.lang.String, android.os.Bundle);
-    method public void playFromSearch(java.lang.String, android.os.Bundle);
-    method public void playFromUri(android.net.Uri, android.os.Bundle);
+    method public void playFromMediaId(String, android.os.Bundle?);
+    method public void playFromSearch(String, android.os.Bundle?);
+    method public void playFromUri(android.net.Uri, android.os.Bundle?);
     method public void prepare();
-    method public void prepareFromMediaId(java.lang.String, android.os.Bundle);
-    method public void prepareFromSearch(java.lang.String, android.os.Bundle);
-    method public void prepareFromUri(android.net.Uri, android.os.Bundle);
+    method public void prepareFromMediaId(String, android.os.Bundle?);
+    method public void prepareFromSearch(String, android.os.Bundle?);
+    method public void prepareFromUri(android.net.Uri, android.os.Bundle?);
     method public void removePlaylistItem(androidx.media2.MediaItem2);
     method public void replacePlaylistItem(int, androidx.media2.MediaItem2);
     method public void reset();
     method public void rewind();
     method public void seekTo(long);
-    method public void sendCustomCommand(androidx.media2.SessionCommand2, android.os.Bundle, android.os.ResultReceiver);
+    method public void sendCustomCommand(androidx.media2.SessionCommand2, android.os.Bundle?, android.os.ResultReceiver?);
     method public void setPlaybackSpeed(float);
-    method public void setPlaylist(java.util.List<androidx.media2.MediaItem2>, androidx.media2.MediaMetadata2);
-    method public void setRating(java.lang.String, androidx.media2.Rating2);
+    method public void setPlaylist(java.util.List<androidx.media2.MediaItem2>, androidx.media2.MediaMetadata2?);
+    method public void setRating(String, androidx.media2.Rating2);
     method public void setRepeatMode(int);
     method public void setShuffleMode(int);
     method public void setVolumeTo(int, int);
     method public void skipToNextItem();
     method public void skipToPlaylistItem(androidx.media2.MediaItem2);
     method public void skipToPreviousItem();
-    method public void updatePlaylistMetadata(androidx.media2.MediaMetadata2);
+    method public void updatePlaylistMetadata(androidx.media2.MediaMetadata2?);
   }
 
-  public static abstract class MediaController2.ControllerCallback {
+  public abstract static class MediaController2.ControllerCallback {
     ctor public MediaController2.ControllerCallback();
     method public void onAllowedCommandsChanged(androidx.media2.MediaController2, androidx.media2.SessionCommandGroup2);
     method public void onBufferingStateChanged(androidx.media2.MediaController2, androidx.media2.MediaItem2, int);
     method public void onConnected(androidx.media2.MediaController2, androidx.media2.SessionCommandGroup2);
-    method public void onCurrentMediaItemChanged(androidx.media2.MediaController2, androidx.media2.MediaItem2);
-    method public void onCustomCommand(androidx.media2.MediaController2, androidx.media2.SessionCommand2, android.os.Bundle, android.os.ResultReceiver);
+    method public void onCurrentMediaItemChanged(androidx.media2.MediaController2, androidx.media2.MediaItem2?);
+    method public void onCustomCommand(androidx.media2.MediaController2, androidx.media2.SessionCommand2, android.os.Bundle?, android.os.ResultReceiver?);
     method public void onCustomLayoutChanged(androidx.media2.MediaController2, java.util.List<androidx.media2.MediaSession2.CommandButton>);
     method public void onDisconnected(androidx.media2.MediaController2);
-    method public void onError(androidx.media2.MediaController2, int, android.os.Bundle);
+    method public void onError(androidx.media2.MediaController2, int, android.os.Bundle?);
     method public void onPlaybackInfoChanged(androidx.media2.MediaController2, androidx.media2.MediaController2.PlaybackInfo);
     method public void onPlaybackSpeedChanged(androidx.media2.MediaController2, float);
     method public void onPlayerStateChanged(androidx.media2.MediaController2, int);
-    method public void onPlaylistChanged(androidx.media2.MediaController2, java.util.List<androidx.media2.MediaItem2>, androidx.media2.MediaMetadata2);
-    method public void onPlaylistMetadataChanged(androidx.media2.MediaController2, androidx.media2.MediaMetadata2);
+    method public void onPlaylistChanged(androidx.media2.MediaController2, java.util.List<androidx.media2.MediaItem2>, androidx.media2.MediaMetadata2?);
+    method public void onPlaylistMetadataChanged(androidx.media2.MediaController2, androidx.media2.MediaMetadata2?);
     method public void onRepeatModeChanged(androidx.media2.MediaController2, int);
     method public void onSeekCompleted(androidx.media2.MediaController2, long);
     method public void onShuffleModeChanged(androidx.media2.MediaController2, int);
   }
 
   public static final class MediaController2.PlaybackInfo implements androidx.versionedparcelable.VersionedParcelable {
-    method public androidx.media.AudioAttributesCompat getAudioAttributes();
+    method public androidx.media.AudioAttributesCompat! getAudioAttributes();
     method public int getControlType();
     method public int getCurrentVolume();
     method public int getMaxVolume();
@@ -138,12 +147,12 @@
   public class MediaItem2 implements androidx.versionedparcelable.VersionedParcelable {
     method public long getEndPosition();
     method public int getFlags();
-    method public java.lang.String getMediaId();
-    method public androidx.media2.MediaMetadata2 getMetadata();
+    method public String? getMediaId();
+    method public androidx.media2.MediaMetadata2? getMetadata();
     method public long getStartPosition();
     method public boolean isBrowsable();
     method public boolean isPlayable();
-    method public void setMetadata(androidx.media2.MediaMetadata2);
+    method public void setMetadata(androidx.media2.MediaMetadata2?);
     field public static final int FLAG_BROWSABLE = 1; // 0x1
     field public static final int FLAG_PLAYABLE = 2; // 0x2
     field public static final long POSITION_UNKNOWN = 576460752303423487L; // 0x7ffffffffffffffL
@@ -151,60 +160,65 @@
 
   public static class MediaItem2.Builder {
     ctor public MediaItem2.Builder(int);
+    method public androidx.media2.MediaItem2! build();
+    method public androidx.media2.MediaItem2.BuilderBase! setEndPosition(long);
+    method public androidx.media2.MediaItem2.BuilderBase! setMediaId(String!);
+    method public androidx.media2.MediaItem2.BuilderBase! setMetadata(androidx.media2.MediaMetadata2!);
+    method public androidx.media2.MediaItem2.BuilderBase! setStartPosition(long);
   }
 
   public abstract class MediaLibraryService2 extends androidx.media2.MediaSessionService2 {
     ctor public MediaLibraryService2();
     method public abstract androidx.media2.MediaLibraryService2.MediaLibrarySession onGetSession();
-    field public static final java.lang.String SERVICE_INTERFACE = "android.media.MediaLibraryService2";
+    field public static final String SERVICE_INTERFACE = "android.media.MediaLibraryService2";
   }
 
   public static final class MediaLibraryService2.LibraryRoot {
-    ctor public MediaLibraryService2.LibraryRoot(java.lang.String, android.os.Bundle);
-    method public android.os.Bundle getExtras();
-    method public java.lang.String getRootId();
-    field public static final java.lang.String EXTRA_OFFLINE = "android.media.extra.OFFLINE";
-    field public static final java.lang.String EXTRA_RECENT = "android.media.extra.RECENT";
-    field public static final java.lang.String EXTRA_SUGGESTED = "android.media.extra.SUGGESTED";
+    ctor public MediaLibraryService2.LibraryRoot(String, android.os.Bundle?);
+    method public android.os.Bundle! getExtras();
+    method public String! getRootId();
+    field public static final String EXTRA_OFFLINE = "android.media.extra.OFFLINE";
+    field public static final String EXTRA_RECENT = "android.media.extra.RECENT";
+    field public static final String EXTRA_SUGGESTED = "android.media.extra.SUGGESTED";
   }
 
   public static final class MediaLibraryService2.MediaLibrarySession extends androidx.media2.MediaSession2 {
-    method public void notifyChildrenChanged(androidx.media2.MediaSession2.ControllerInfo, java.lang.String, int, android.os.Bundle);
-    method public void notifyChildrenChanged(java.lang.String, int, android.os.Bundle);
-    method public void notifySearchResultChanged(androidx.media2.MediaSession2.ControllerInfo, java.lang.String, int, android.os.Bundle);
+    method public void notifyChildrenChanged(androidx.media2.MediaSession2.ControllerInfo, String, int, android.os.Bundle?);
+    method public void notifyChildrenChanged(String, int, android.os.Bundle?);
+    method public void notifySearchResultChanged(androidx.media2.MediaSession2.ControllerInfo, String, int, android.os.Bundle?);
   }
 
   public static final class MediaLibraryService2.MediaLibrarySession.Builder {
     ctor public MediaLibraryService2.MediaLibrarySession.Builder(androidx.media2.MediaLibraryService2, java.util.concurrent.Executor, androidx.media2.MediaLibraryService2.MediaLibrarySession.MediaLibrarySessionCallback);
     method public androidx.media2.MediaLibraryService2.MediaLibrarySession build();
-    method public androidx.media2.MediaLibraryService2.MediaLibrarySession.Builder setId(java.lang.String);
+    method public androidx.media2.MediaLibraryService2.MediaLibrarySession.Builder setId(String);
     method public androidx.media2.MediaLibraryService2.MediaLibrarySession.Builder setPlayer(androidx.media2.MediaPlayerConnector);
     method public androidx.media2.MediaLibraryService2.MediaLibrarySession.Builder setPlaylistAgent(androidx.media2.MediaPlaylistAgent);
-    method public androidx.media2.MediaLibraryService2.MediaLibrarySession.Builder setSessionActivity(android.app.PendingIntent);
+    method public androidx.media2.MediaLibraryService2.MediaLibrarySession.Builder setSessionActivity(android.app.PendingIntent?);
   }
 
   public static class MediaLibraryService2.MediaLibrarySession.MediaLibrarySessionCallback extends androidx.media2.MediaSession2.SessionCallback {
     ctor public MediaLibraryService2.MediaLibrarySession.MediaLibrarySessionCallback();
-    method public java.util.List<androidx.media2.MediaItem2> onGetChildren(androidx.media2.MediaLibraryService2.MediaLibrarySession, androidx.media2.MediaSession2.ControllerInfo, java.lang.String, int, int, android.os.Bundle);
-    method public androidx.media2.MediaItem2 onGetItem(androidx.media2.MediaLibraryService2.MediaLibrarySession, androidx.media2.MediaSession2.ControllerInfo, java.lang.String);
-    method public androidx.media2.MediaLibraryService2.LibraryRoot onGetLibraryRoot(androidx.media2.MediaLibraryService2.MediaLibrarySession, androidx.media2.MediaSession2.ControllerInfo, android.os.Bundle);
-    method public java.util.List<androidx.media2.MediaItem2> onGetSearchResult(androidx.media2.MediaLibraryService2.MediaLibrarySession, androidx.media2.MediaSession2.ControllerInfo, java.lang.String, int, int, android.os.Bundle);
-    method public void onSearch(androidx.media2.MediaLibraryService2.MediaLibrarySession, androidx.media2.MediaSession2.ControllerInfo, java.lang.String, android.os.Bundle);
-    method public void onSubscribe(androidx.media2.MediaLibraryService2.MediaLibrarySession, androidx.media2.MediaSession2.ControllerInfo, java.lang.String, android.os.Bundle);
-    method public void onUnsubscribe(androidx.media2.MediaLibraryService2.MediaLibrarySession, androidx.media2.MediaSession2.ControllerInfo, java.lang.String);
+    method public java.util.List<androidx.media2.MediaItem2>? onGetChildren(androidx.media2.MediaLibraryService2.MediaLibrarySession, androidx.media2.MediaSession2.ControllerInfo, String, int, int, android.os.Bundle?);
+    method public androidx.media2.MediaItem2? onGetItem(androidx.media2.MediaLibraryService2.MediaLibrarySession, androidx.media2.MediaSession2.ControllerInfo, String);
+    method public androidx.media2.MediaLibraryService2.LibraryRoot? onGetLibraryRoot(androidx.media2.MediaLibraryService2.MediaLibrarySession, androidx.media2.MediaSession2.ControllerInfo, android.os.Bundle?);
+    method public java.util.List<androidx.media2.MediaItem2>? onGetSearchResult(androidx.media2.MediaLibraryService2.MediaLibrarySession, androidx.media2.MediaSession2.ControllerInfo, String, int, int, android.os.Bundle?);
+    method public void onSearch(androidx.media2.MediaLibraryService2.MediaLibrarySession, androidx.media2.MediaSession2.ControllerInfo, String, android.os.Bundle?);
+    method public void onSubscribe(androidx.media2.MediaLibraryService2.MediaLibrarySession, androidx.media2.MediaSession2.ControllerInfo, String, android.os.Bundle?);
+    method public void onUnsubscribe(androidx.media2.MediaLibraryService2.MediaLibrarySession, androidx.media2.MediaSession2.ControllerInfo, String);
   }
 
   public final class MediaMetadata2 implements androidx.versionedparcelable.VersionedParcelable {
-    method public boolean containsKey(java.lang.String);
-    method public static androidx.media2.MediaMetadata2 fromBundle(android.os.Bundle);
-    method public android.graphics.Bitmap getBitmap(java.lang.String);
-    method public android.os.Bundle getExtras();
-    method public float getFloat(java.lang.String);
-    method public long getLong(java.lang.String);
-    method public java.lang.String getMediaId();
-    method public androidx.media2.Rating2 getRating(java.lang.String);
-    method public java.lang.String getString(java.lang.String);
-    method public java.lang.CharSequence getText(java.lang.String);
+    method public boolean containsKey(String);
+    method public static androidx.media2.MediaMetadata2 fromBundle(android.os.Bundle?);
+    method public android.graphics.Bitmap? getBitmap(String);
+    method public android.os.Bundle? getExtras();
+    method public float getFloat(String);
+    method public long getLong(String);
+    method public String? getMediaId();
+    method public androidx.media2.Rating2? getRating(String);
+    method public String? getString(String);
+    method public CharSequence? getText(String);
     method public java.util.Set<java.lang.String> keySet();
     method public int size();
     method public android.os.Bundle toBundle();
@@ -215,38 +229,38 @@
     field public static final long BT_FOLDER_TYPE_PLAYLISTS = 5L; // 0x5L
     field public static final long BT_FOLDER_TYPE_TITLES = 1L; // 0x1L
     field public static final long BT_FOLDER_TYPE_YEARS = 6L; // 0x6L
-    field public static final java.lang.String METADATA_KEY_ADVERTISEMENT = "android.media.metadata.ADVERTISEMENT";
-    field public static final java.lang.String METADATA_KEY_ALBUM = "android.media.metadata.ALBUM";
-    field public static final java.lang.String METADATA_KEY_ALBUM_ART = "android.media.metadata.ALBUM_ART";
-    field public static final java.lang.String METADATA_KEY_ALBUM_ARTIST = "android.media.metadata.ALBUM_ARTIST";
-    field public static final java.lang.String METADATA_KEY_ALBUM_ART_URI = "android.media.metadata.ALBUM_ART_URI";
-    field public static final java.lang.String METADATA_KEY_ART = "android.media.metadata.ART";
-    field public static final java.lang.String METADATA_KEY_ARTIST = "android.media.metadata.ARTIST";
-    field public static final java.lang.String METADATA_KEY_ART_URI = "android.media.metadata.ART_URI";
-    field public static final java.lang.String METADATA_KEY_AUTHOR = "android.media.metadata.AUTHOR";
-    field public static final java.lang.String METADATA_KEY_BT_FOLDER_TYPE = "android.media.metadata.BT_FOLDER_TYPE";
-    field public static final java.lang.String METADATA_KEY_COMPILATION = "android.media.metadata.COMPILATION";
-    field public static final java.lang.String METADATA_KEY_COMPOSER = "android.media.metadata.COMPOSER";
-    field public static final java.lang.String METADATA_KEY_DATE = "android.media.metadata.DATE";
-    field public static final java.lang.String METADATA_KEY_DISC_NUMBER = "android.media.metadata.DISC_NUMBER";
-    field public static final java.lang.String METADATA_KEY_DISPLAY_DESCRIPTION = "android.media.metadata.DISPLAY_DESCRIPTION";
-    field public static final java.lang.String METADATA_KEY_DISPLAY_ICON = "android.media.metadata.DISPLAY_ICON";
-    field public static final java.lang.String METADATA_KEY_DISPLAY_ICON_URI = "android.media.metadata.DISPLAY_ICON_URI";
-    field public static final java.lang.String METADATA_KEY_DISPLAY_SUBTITLE = "android.media.metadata.DISPLAY_SUBTITLE";
-    field public static final java.lang.String METADATA_KEY_DISPLAY_TITLE = "android.media.metadata.DISPLAY_TITLE";
-    field public static final java.lang.String METADATA_KEY_DOWNLOAD_STATUS = "android.media.metadata.DOWNLOAD_STATUS";
-    field public static final java.lang.String METADATA_KEY_DURATION = "android.media.metadata.DURATION";
-    field public static final java.lang.String METADATA_KEY_EXTRAS = "android.media.metadata.EXTRAS";
-    field public static final java.lang.String METADATA_KEY_GENRE = "android.media.metadata.GENRE";
-    field public static final java.lang.String METADATA_KEY_MEDIA_ID = "android.media.metadata.MEDIA_ID";
-    field public static final java.lang.String METADATA_KEY_MEDIA_URI = "android.media.metadata.MEDIA_URI";
-    field public static final java.lang.String METADATA_KEY_NUM_TRACKS = "android.media.metadata.NUM_TRACKS";
-    field public static final java.lang.String METADATA_KEY_RATING = "android.media.metadata.RATING";
-    field public static final java.lang.String METADATA_KEY_TITLE = "android.media.metadata.TITLE";
-    field public static final java.lang.String METADATA_KEY_TRACK_NUMBER = "android.media.metadata.TRACK_NUMBER";
-    field public static final java.lang.String METADATA_KEY_USER_RATING = "android.media.metadata.USER_RATING";
-    field public static final java.lang.String METADATA_KEY_WRITER = "android.media.metadata.WRITER";
-    field public static final java.lang.String METADATA_KEY_YEAR = "android.media.metadata.YEAR";
+    field public static final String METADATA_KEY_ADVERTISEMENT = "android.media.metadata.ADVERTISEMENT";
+    field public static final String METADATA_KEY_ALBUM = "android.media.metadata.ALBUM";
+    field public static final String METADATA_KEY_ALBUM_ART = "android.media.metadata.ALBUM_ART";
+    field public static final String METADATA_KEY_ALBUM_ARTIST = "android.media.metadata.ALBUM_ARTIST";
+    field public static final String METADATA_KEY_ALBUM_ART_URI = "android.media.metadata.ALBUM_ART_URI";
+    field public static final String METADATA_KEY_ART = "android.media.metadata.ART";
+    field public static final String METADATA_KEY_ARTIST = "android.media.metadata.ARTIST";
+    field public static final String METADATA_KEY_ART_URI = "android.media.metadata.ART_URI";
+    field public static final String METADATA_KEY_AUTHOR = "android.media.metadata.AUTHOR";
+    field public static final String METADATA_KEY_BT_FOLDER_TYPE = "android.media.metadata.BT_FOLDER_TYPE";
+    field public static final String METADATA_KEY_COMPILATION = "android.media.metadata.COMPILATION";
+    field public static final String METADATA_KEY_COMPOSER = "android.media.metadata.COMPOSER";
+    field public static final String METADATA_KEY_DATE = "android.media.metadata.DATE";
+    field public static final String METADATA_KEY_DISC_NUMBER = "android.media.metadata.DISC_NUMBER";
+    field public static final String METADATA_KEY_DISPLAY_DESCRIPTION = "android.media.metadata.DISPLAY_DESCRIPTION";
+    field public static final String METADATA_KEY_DISPLAY_ICON = "android.media.metadata.DISPLAY_ICON";
+    field public static final String METADATA_KEY_DISPLAY_ICON_URI = "android.media.metadata.DISPLAY_ICON_URI";
+    field public static final String METADATA_KEY_DISPLAY_SUBTITLE = "android.media.metadata.DISPLAY_SUBTITLE";
+    field public static final String METADATA_KEY_DISPLAY_TITLE = "android.media.metadata.DISPLAY_TITLE";
+    field public static final String METADATA_KEY_DOWNLOAD_STATUS = "android.media.metadata.DOWNLOAD_STATUS";
+    field public static final String METADATA_KEY_DURATION = "android.media.metadata.DURATION";
+    field public static final String METADATA_KEY_EXTRAS = "android.media.metadata.EXTRAS";
+    field public static final String METADATA_KEY_GENRE = "android.media.metadata.GENRE";
+    field public static final String METADATA_KEY_MEDIA_ID = "android.media.metadata.MEDIA_ID";
+    field public static final String METADATA_KEY_MEDIA_URI = "android.media.metadata.MEDIA_URI";
+    field public static final String METADATA_KEY_NUM_TRACKS = "android.media.metadata.NUM_TRACKS";
+    field public static final String METADATA_KEY_RATING = "android.media.metadata.RATING";
+    field public static final String METADATA_KEY_TITLE = "android.media.metadata.TITLE";
+    field public static final String METADATA_KEY_TRACK_NUMBER = "android.media.metadata.TRACK_NUMBER";
+    field public static final String METADATA_KEY_USER_RATING = "android.media.metadata.USER_RATING";
+    field public static final String METADATA_KEY_WRITER = "android.media.metadata.WRITER";
+    field public static final String METADATA_KEY_YEAR = "android.media.metadata.YEAR";
     field public static final long STATUS_DOWNLOADED = 2L; // 0x2L
     field public static final long STATUS_DOWNLOADING = 1L; // 0x1L
     field public static final long STATUS_NOT_DOWNLOADED = 0L; // 0x0L
@@ -256,13 +270,13 @@
     ctor public MediaMetadata2.Builder();
     ctor public MediaMetadata2.Builder(androidx.media2.MediaMetadata2);
     method public androidx.media2.MediaMetadata2 build();
-    method public androidx.media2.MediaMetadata2.Builder putBitmap(java.lang.String, android.graphics.Bitmap);
-    method public androidx.media2.MediaMetadata2.Builder putFloat(java.lang.String, float);
-    method public androidx.media2.MediaMetadata2.Builder putLong(java.lang.String, long);
-    method public androidx.media2.MediaMetadata2.Builder putRating(java.lang.String, androidx.media2.Rating2);
-    method public androidx.media2.MediaMetadata2.Builder putString(java.lang.String, java.lang.String);
-    method public androidx.media2.MediaMetadata2.Builder putText(java.lang.String, java.lang.CharSequence);
-    method public androidx.media2.MediaMetadata2.Builder setExtras(android.os.Bundle);
+    method public androidx.media2.MediaMetadata2.Builder putBitmap(String, android.graphics.Bitmap?);
+    method public androidx.media2.MediaMetadata2.Builder putFloat(String, float);
+    method public androidx.media2.MediaMetadata2.Builder putLong(String, long);
+    method public androidx.media2.MediaMetadata2.Builder putRating(String, androidx.media2.Rating2?);
+    method public androidx.media2.MediaMetadata2.Builder putString(String, String?);
+    method public androidx.media2.MediaMetadata2.Builder putText(String, CharSequence?);
+    method public androidx.media2.MediaMetadata2.Builder! setExtras(android.os.Bundle?);
   }
 
   public abstract class MediaPlayer2 {
@@ -271,36 +285,36 @@
     method public abstract void clearEventCallback();
     method public abstract void clearPendingCommands();
     method public abstract void close();
-    method public static final androidx.media2.MediaPlayer2 create(android.content.Context);
+    method public static final androidx.media2.MediaPlayer2! create(android.content.Context);
     method public abstract void deselectTrack(int);
-    method public abstract androidx.media.AudioAttributesCompat getAudioAttributes();
+    method public abstract androidx.media.AudioAttributesCompat? getAudioAttributes();
     method public abstract int getAudioSessionId();
     method public abstract long getBufferedPosition();
-    method public abstract androidx.media2.MediaItem2 getCurrentMediaItem();
+    method public abstract androidx.media2.MediaItem2? getCurrentMediaItem();
     method public abstract long getCurrentPosition();
-    method public abstract androidx.media2.MediaPlayer2.DrmInfo getDrmInfo();
-    method public abstract android.media.MediaDrm.KeyRequest getDrmKeyRequest(byte[], byte[], java.lang.String, int, java.util.Map<java.lang.String, java.lang.String>) throws androidx.media2.MediaPlayer2.NoDrmSchemeException;
-    method public abstract java.lang.String getDrmPropertyString(java.lang.String) throws androidx.media2.MediaPlayer2.NoDrmSchemeException;
+    method public abstract androidx.media2.MediaPlayer2.DrmInfo! getDrmInfo();
+    method public abstract android.media.MediaDrm.KeyRequest getDrmKeyRequest(byte[]?, byte[]?, String?, int, java.util.Map<java.lang.String,java.lang.String>?) throws androidx.media2.MediaPlayer2.NoDrmSchemeException;
+    method public abstract String getDrmPropertyString(String) throws androidx.media2.MediaPlayer2.NoDrmSchemeException;
     method public abstract long getDuration();
     method public float getMaxPlayerVolume();
-    method public abstract androidx.media2.MediaPlayerConnector getMediaPlayerConnector();
-    method public abstract android.os.PersistableBundle getMetrics();
+    method public abstract androidx.media2.MediaPlayerConnector! getMediaPlayerConnector();
+    method public abstract android.os.PersistableBundle! getMetrics();
     method public abstract void getNextMediaItems(java.util.List<androidx.media2.MediaItem2>);
     method public abstract androidx.media2.PlaybackParams2 getPlaybackParams();
     method public abstract float getPlayerVolume();
     method public abstract int getSelectedTrack(int);
     method public abstract int getState();
-    method public abstract androidx.media2.MediaTimestamp2 getTimestamp();
-    method public abstract java.util.List<androidx.media2.MediaPlayer2.TrackInfo> getTrackInfo();
+    method public abstract androidx.media2.MediaTimestamp2? getTimestamp();
+    method public abstract java.util.List<androidx.media2.MediaPlayer2.TrackInfo>! getTrackInfo();
     method public abstract int getVideoHeight();
     method public abstract int getVideoWidth();
     method public abstract void loopCurrent(boolean);
-    method public void notifyWhenCommandLabelReached(java.lang.Object);
+    method public void notifyWhenCommandLabelReached(Object);
     method public abstract void pause();
     method public abstract void play();
     method public abstract void prepare();
     method public abstract void prepareDrm(java.util.UUID);
-    method public abstract byte[] provideDrmKeyResponse(byte[], byte[]) throws android.media.DeniedByServerException, androidx.media2.MediaPlayer2.NoDrmSchemeException;
+    method public abstract byte[]! provideDrmKeyResponse(byte[]?, byte[]) throws android.media.DeniedByServerException, androidx.media2.MediaPlayer2.NoDrmSchemeException;
     method public abstract void releaseDrm() throws androidx.media2.MediaPlayer2.NoDrmSchemeException;
     method public abstract void reset();
     method public abstract void restoreDrmKeys(byte[]) throws androidx.media2.MediaPlayer2.NoDrmSchemeException;
@@ -311,14 +325,14 @@
     method public abstract void setAudioSessionId(int);
     method public abstract void setAuxEffectSendLevel(float);
     method public abstract void setDrmEventCallback(java.util.concurrent.Executor, androidx.media2.MediaPlayer2.DrmEventCallback);
-    method public abstract void setDrmPropertyString(java.lang.String, java.lang.String) throws androidx.media2.MediaPlayer2.NoDrmSchemeException;
+    method public abstract void setDrmPropertyString(String, String) throws androidx.media2.MediaPlayer2.NoDrmSchemeException;
     method public abstract void setEventCallback(java.util.concurrent.Executor, androidx.media2.MediaPlayer2.EventCallback);
     method public abstract void setMediaItem(androidx.media2.MediaItem2);
     method public abstract void setNextMediaItem(androidx.media2.MediaItem2);
-    method public abstract void setOnDrmConfigHelper(androidx.media2.MediaPlayer2.OnDrmConfigHelper);
+    method public abstract void setOnDrmConfigHelper(androidx.media2.MediaPlayer2.OnDrmConfigHelper!);
     method public abstract void setPlaybackParams(androidx.media2.PlaybackParams2);
     method public abstract void setPlayerVolume(float);
-    method public abstract void setSurface(android.view.Surface);
+    method public abstract void setSurface(android.view.Surface!);
     method public abstract void skipToNext();
     field public static final int CALL_COMPLETED_ATTACH_AUX_EFFECT = 1; // 0x1
     field public static final int CALL_COMPLETED_DESELECT_TRACK = 2; // 0x2
@@ -388,59 +402,59 @@
     field public static final int VIDEO_SCALING_MODE_SCALE_TO_FIT = 1; // 0x1
   }
 
-  public static abstract class MediaPlayer2.DrmEventCallback {
+  public abstract static class MediaPlayer2.DrmEventCallback {
     ctor public MediaPlayer2.DrmEventCallback();
-    method public void onDrmInfo(androidx.media2.MediaPlayer2, androidx.media2.MediaItem2, androidx.media2.MediaPlayer2.DrmInfo);
-    method public void onDrmPrepared(androidx.media2.MediaPlayer2, androidx.media2.MediaItem2, int);
+    method public void onDrmInfo(androidx.media2.MediaPlayer2!, androidx.media2.MediaItem2!, androidx.media2.MediaPlayer2.DrmInfo!);
+    method public void onDrmPrepared(androidx.media2.MediaPlayer2!, androidx.media2.MediaItem2!, int);
   }
 
-  public static abstract class MediaPlayer2.DrmInfo {
+  public abstract static class MediaPlayer2.DrmInfo {
     ctor public MediaPlayer2.DrmInfo();
-    method public abstract java.util.Map<java.util.UUID, byte[]> getPssh();
-    method public abstract java.util.List<java.util.UUID> getSupportedSchemes();
+    method public abstract java.util.Map<java.util.UUID,byte[]>! getPssh();
+    method public abstract java.util.List<java.util.UUID>! getSupportedSchemes();
   }
 
-  public static abstract class MediaPlayer2.EventCallback {
+  public abstract static class MediaPlayer2.EventCallback {
     ctor public MediaPlayer2.EventCallback();
-    method public void onCallCompleted(androidx.media2.MediaPlayer2, androidx.media2.MediaItem2, int, int);
-    method public void onCommandLabelReached(androidx.media2.MediaPlayer2, java.lang.Object);
-    method public void onError(androidx.media2.MediaPlayer2, androidx.media2.MediaItem2, int, int);
-    method public void onInfo(androidx.media2.MediaPlayer2, androidx.media2.MediaItem2, int, int);
-    method public void onMediaTimeDiscontinuity(androidx.media2.MediaPlayer2, androidx.media2.MediaItem2, androidx.media2.MediaTimestamp2);
-    method public void onSubtitleData(androidx.media2.MediaPlayer2, androidx.media2.MediaItem2, androidx.media2.SubtitleData2);
-    method public void onTimedMetaDataAvailable(androidx.media2.MediaPlayer2, androidx.media2.MediaItem2, androidx.media2.TimedMetaData2);
-    method public void onVideoSizeChanged(androidx.media2.MediaPlayer2, androidx.media2.MediaItem2, int, int);
+    method public void onCallCompleted(androidx.media2.MediaPlayer2!, androidx.media2.MediaItem2!, int, int);
+    method public void onCommandLabelReached(androidx.media2.MediaPlayer2!, Object);
+    method public void onError(androidx.media2.MediaPlayer2!, androidx.media2.MediaItem2!, int, int);
+    method public void onInfo(androidx.media2.MediaPlayer2!, androidx.media2.MediaItem2!, int, int);
+    method public void onMediaTimeDiscontinuity(androidx.media2.MediaPlayer2!, androidx.media2.MediaItem2!, androidx.media2.MediaTimestamp2!);
+    method public void onSubtitleData(androidx.media2.MediaPlayer2!, androidx.media2.MediaItem2!, androidx.media2.SubtitleData2);
+    method public void onTimedMetaDataAvailable(androidx.media2.MediaPlayer2!, androidx.media2.MediaItem2!, androidx.media2.TimedMetaData2!);
+    method public void onVideoSizeChanged(androidx.media2.MediaPlayer2!, androidx.media2.MediaItem2!, int, int);
   }
 
   public static final class MediaPlayer2.MetricsConstants {
-    field public static final java.lang.String CODEC_AUDIO = "android.media.mediaplayer.audio.codec";
-    field public static final java.lang.String CODEC_VIDEO = "android.media.mediaplayer.video.codec";
-    field public static final java.lang.String DURATION = "android.media.mediaplayer.durationMs";
-    field public static final java.lang.String ERRORS = "android.media.mediaplayer.err";
-    field public static final java.lang.String ERROR_CODE = "android.media.mediaplayer.errcode";
-    field public static final java.lang.String FRAMES = "android.media.mediaplayer.frames";
-    field public static final java.lang.String FRAMES_DROPPED = "android.media.mediaplayer.dropped";
-    field public static final java.lang.String HEIGHT = "android.media.mediaplayer.height";
-    field public static final java.lang.String MIME_TYPE_AUDIO = "android.media.mediaplayer.audio.mime";
-    field public static final java.lang.String MIME_TYPE_VIDEO = "android.media.mediaplayer.video.mime";
-    field public static final java.lang.String PLAYING = "android.media.mediaplayer.playingMs";
-    field public static final java.lang.String WIDTH = "android.media.mediaplayer.width";
+    field public static final String CODEC_AUDIO = "android.media.mediaplayer.audio.codec";
+    field public static final String CODEC_VIDEO = "android.media.mediaplayer.video.codec";
+    field public static final String DURATION = "android.media.mediaplayer.durationMs";
+    field public static final String ERRORS = "android.media.mediaplayer.err";
+    field public static final String ERROR_CODE = "android.media.mediaplayer.errcode";
+    field public static final String FRAMES = "android.media.mediaplayer.frames";
+    field public static final String FRAMES_DROPPED = "android.media.mediaplayer.dropped";
+    field public static final String HEIGHT = "android.media.mediaplayer.height";
+    field public static final String MIME_TYPE_AUDIO = "android.media.mediaplayer.audio.mime";
+    field public static final String MIME_TYPE_VIDEO = "android.media.mediaplayer.video.mime";
+    field public static final String PLAYING = "android.media.mediaplayer.playingMs";
+    field public static final String WIDTH = "android.media.mediaplayer.width";
   }
 
   public static class MediaPlayer2.NoDrmSchemeException extends android.media.MediaDrmException {
-    ctor public MediaPlayer2.NoDrmSchemeException(java.lang.String);
+    ctor public MediaPlayer2.NoDrmSchemeException(String!);
   }
 
-  public static abstract interface MediaPlayer2.OnDrmConfigHelper {
-    method public abstract void onDrmConfig(androidx.media2.MediaPlayer2, androidx.media2.MediaItem2);
+  public static interface MediaPlayer2.OnDrmConfigHelper {
+    method public void onDrmConfig(androidx.media2.MediaPlayer2!, androidx.media2.MediaItem2!);
   }
 
-  public static abstract class MediaPlayer2.TrackInfo {
+  public abstract static class MediaPlayer2.TrackInfo {
     ctor public MediaPlayer2.TrackInfo();
-    method public abstract android.media.MediaFormat getFormat();
-    method public abstract java.lang.String getLanguage();
+    method public abstract android.media.MediaFormat! getFormat();
+    method public abstract String! getLanguage();
     method public abstract int getTrackType();
-    method public abstract java.lang.String toString();
+    method public abstract String toString();
     field public static final int MEDIA_TRACK_TYPE_AUDIO = 2; // 0x2
     field public static final int MEDIA_TRACK_TYPE_METADATA = 5; // 0x5
     field public static final int MEDIA_TRACK_TYPE_SUBTITLE = 4; // 0x4
@@ -450,10 +464,10 @@
 
   public abstract class MediaPlayerConnector implements java.lang.AutoCloseable {
     ctor public MediaPlayerConnector();
-    method public abstract androidx.media.AudioAttributesCompat getAudioAttributes();
+    method public abstract androidx.media.AudioAttributesCompat? getAudioAttributes();
     method public long getBufferedPosition();
     method public abstract int getBufferingState();
-    method public abstract androidx.media2.MediaItem2 getCurrentMediaItem();
+    method public abstract androidx.media2.MediaItem2? getCurrentMediaItem();
     method public long getCurrentPosition();
     method public long getDuration();
     method public float getMaxPlayerVolume();
@@ -487,10 +501,10 @@
     field public static final long UNKNOWN_TIME = -1L; // 0xffffffffffffffffL
   }
 
-  public static abstract class MediaPlayerConnector.PlayerEventCallback {
+  public abstract static class MediaPlayerConnector.PlayerEventCallback {
     ctor public MediaPlayerConnector.PlayerEventCallback();
     method public void onBufferingStateChanged(androidx.media2.MediaPlayerConnector, androidx.media2.MediaItem2, int);
-    method public void onCurrentMediaItemChanged(androidx.media2.MediaPlayerConnector, androidx.media2.MediaItem2);
+    method public void onCurrentMediaItemChanged(androidx.media2.MediaPlayerConnector, androidx.media2.MediaItem2?);
     method public void onMediaPrepared(androidx.media2.MediaPlayerConnector, androidx.media2.MediaItem2);
     method public void onPlaybackSpeedChanged(androidx.media2.MediaPlayerConnector, float);
     method public void onPlayerStateChanged(androidx.media2.MediaPlayerConnector, int);
@@ -500,10 +514,10 @@
   public abstract class MediaPlaylistAgent {
     ctor public MediaPlaylistAgent();
     method public abstract void addPlaylistItem(int, androidx.media2.MediaItem2);
-    method public abstract androidx.media2.MediaItem2 getCurrentMediaItem();
-    method public androidx.media2.MediaItem2 getMediaItem(androidx.media2.MediaItem2);
-    method public abstract java.util.List<androidx.media2.MediaItem2> getPlaylist();
-    method public abstract androidx.media2.MediaMetadata2 getPlaylistMetadata();
+    method public abstract androidx.media2.MediaItem2! getCurrentMediaItem();
+    method public androidx.media2.MediaItem2? getMediaItem(androidx.media2.MediaItem2);
+    method public abstract java.util.List<androidx.media2.MediaItem2>? getPlaylist();
+    method public abstract androidx.media2.MediaMetadata2? getPlaylistMetadata();
     method public abstract int getRepeatMode();
     method public abstract int getShuffleMode();
     method protected final void notifyPlaylistChanged();
@@ -513,14 +527,14 @@
     method public final void registerPlaylistEventCallback(java.util.concurrent.Executor, androidx.media2.MediaPlaylistAgent.PlaylistEventCallback);
     method public abstract void removePlaylistItem(androidx.media2.MediaItem2);
     method public abstract void replacePlaylistItem(int, androidx.media2.MediaItem2);
-    method public abstract void setPlaylist(java.util.List<androidx.media2.MediaItem2>, androidx.media2.MediaMetadata2);
+    method public abstract void setPlaylist(java.util.List<androidx.media2.MediaItem2>, androidx.media2.MediaMetadata2?);
     method public abstract void setRepeatMode(int);
     method public abstract void setShuffleMode(int);
     method public abstract void skipToNextItem();
     method public abstract void skipToPlaylistItem(androidx.media2.MediaItem2);
     method public abstract void skipToPreviousItem();
     method public final void unregisterPlaylistEventCallback(androidx.media2.MediaPlaylistAgent.PlaylistEventCallback);
-    method public abstract void updatePlaylistMetadata(androidx.media2.MediaMetadata2);
+    method public abstract void updatePlaylistMetadata(androidx.media2.MediaMetadata2?);
     field public static final int REPEAT_MODE_ALL = 2; // 0x2
     field public static final int REPEAT_MODE_GROUP = 3; // 0x3
     field public static final int REPEAT_MODE_NONE = 0; // 0x0
@@ -530,10 +544,10 @@
     field public static final int SHUFFLE_MODE_NONE = 0; // 0x0
   }
 
-  public static abstract class MediaPlaylistAgent.PlaylistEventCallback {
+  public abstract static class MediaPlaylistAgent.PlaylistEventCallback {
     ctor public MediaPlaylistAgent.PlaylistEventCallback();
-    method public void onPlaylistChanged(androidx.media2.MediaPlaylistAgent, java.util.List<androidx.media2.MediaItem2>, androidx.media2.MediaMetadata2);
-    method public void onPlaylistMetadataChanged(androidx.media2.MediaPlaylistAgent, androidx.media2.MediaMetadata2);
+    method public void onPlaylistChanged(androidx.media2.MediaPlaylistAgent, java.util.List<androidx.media2.MediaItem2>, androidx.media2.MediaMetadata2?);
+    method public void onPlaylistMetadataChanged(androidx.media2.MediaPlaylistAgent, androidx.media2.MediaMetadata2?);
     method public void onRepeatModeChanged(androidx.media2.MediaPlaylistAgent, int);
     method public void onShuffleModeChanged(androidx.media2.MediaPlaylistAgent, int);
   }
@@ -545,20 +559,20 @@
     method public long getBufferedPosition();
     method public int getBufferingState();
     method public java.util.List<androidx.media2.MediaSession2.ControllerInfo> getConnectedControllers();
-    method public androidx.media2.MediaItem2 getCurrentMediaItem();
+    method public androidx.media2.MediaItem2! getCurrentMediaItem();
     method public long getCurrentPosition();
     method public long getDuration();
-    method public java.lang.String getId();
+    method public String getId();
     method public float getPlaybackSpeed();
-    method public androidx.media2.MediaPlayerConnector getPlayerConnector();
+    method public androidx.media2.MediaPlayerConnector? getPlayerConnector();
     method public int getPlayerState();
-    method public java.util.List<androidx.media2.MediaItem2> getPlaylist();
+    method public java.util.List<androidx.media2.MediaItem2>! getPlaylist();
     method public androidx.media2.MediaPlaylistAgent getPlaylistAgent();
-    method public androidx.media2.MediaMetadata2 getPlaylistMetadata();
+    method public androidx.media2.MediaMetadata2! getPlaylistMetadata();
     method public int getRepeatMode();
     method public int getShuffleMode();
     method public androidx.media2.SessionToken2 getToken();
-    method public void notifyError(int, android.os.Bundle);
+    method public void notifyError(int, android.os.Bundle?);
     method public void pause();
     method public void play();
     method public void prepare();
@@ -566,20 +580,20 @@
     method public void replacePlaylistItem(int, androidx.media2.MediaItem2);
     method public void reset();
     method public void seekTo(long);
-    method public void sendCustomCommand(androidx.media2.SessionCommand2, android.os.Bundle);
-    method public void sendCustomCommand(androidx.media2.MediaSession2.ControllerInfo, androidx.media2.SessionCommand2, android.os.Bundle, android.os.ResultReceiver);
+    method public void sendCustomCommand(androidx.media2.SessionCommand2, android.os.Bundle?);
+    method public void sendCustomCommand(androidx.media2.MediaSession2.ControllerInfo, androidx.media2.SessionCommand2, android.os.Bundle?, android.os.ResultReceiver?);
     method public void setAllowedCommands(androidx.media2.MediaSession2.ControllerInfo, androidx.media2.SessionCommandGroup2);
     method public void setCustomLayout(androidx.media2.MediaSession2.ControllerInfo, java.util.List<androidx.media2.MediaSession2.CommandButton>);
     method public void setOnDataSourceMissingHelper(androidx.media2.MediaSession2.OnDataSourceMissingHelper);
     method public void setPlaybackSpeed(float);
-    method public void setPlaylist(java.util.List<androidx.media2.MediaItem2>, androidx.media2.MediaMetadata2);
+    method public void setPlaylist(java.util.List<androidx.media2.MediaItem2>, androidx.media2.MediaMetadata2?);
     method public void setRepeatMode(int);
     method public void setShuffleMode(int);
     method public void skipToNextItem();
     method public void skipToPlaylistItem(androidx.media2.MediaItem2);
     method public void skipToPreviousItem();
-    method public void updatePlayerConnector(androidx.media2.MediaPlayerConnector, androidx.media2.MediaPlaylistAgent);
-    method public void updatePlaylistMetadata(androidx.media2.MediaMetadata2);
+    method public void updatePlayerConnector(androidx.media2.MediaPlayerConnector, androidx.media2.MediaPlaylistAgent?);
+    method public void updatePlaylistMetadata(androidx.media2.MediaMetadata2?);
     field public static final int ERROR_CODE_ACTION_ABORTED = 10; // 0xa
     field public static final int ERROR_CODE_APP_ERROR = 1; // 0x1
     field public static final int ERROR_CODE_AUTHENTICATION_EXPIRED = 3; // 0x3
@@ -596,19 +610,19 @@
   }
 
   public static final class MediaSession2.Builder {
-    ctor public MediaSession2.Builder(android.content.Context);
+    ctor public MediaSession2.Builder(android.content.Context!);
     method public androidx.media2.MediaSession2 build();
-    method public androidx.media2.MediaSession2.Builder setId(java.lang.String);
+    method public androidx.media2.MediaSession2.Builder setId(String);
     method public androidx.media2.MediaSession2.Builder setPlayer(androidx.media2.MediaPlayerConnector);
     method public androidx.media2.MediaSession2.Builder setPlaylistAgent(androidx.media2.MediaPlaylistAgent);
-    method public androidx.media2.MediaSession2.Builder setSessionActivity(android.app.PendingIntent);
+    method public androidx.media2.MediaSession2.Builder setSessionActivity(android.app.PendingIntent?);
     method public androidx.media2.MediaSession2.Builder setSessionCallback(java.util.concurrent.Executor, androidx.media2.MediaSession2.SessionCallback);
   }
 
   public static final class MediaSession2.CommandButton implements androidx.versionedparcelable.VersionedParcelable {
-    method public androidx.media2.SessionCommand2 getCommand();
-    method public java.lang.String getDisplayName();
-    method public android.os.Bundle getExtras();
+    method public androidx.media2.SessionCommand2? getCommand();
+    method public String? getDisplayName();
+    method public android.os.Bundle? getExtras();
     method public int getIconResId();
     method public boolean isEnabled();
   }
@@ -616,50 +630,50 @@
   public static final class MediaSession2.CommandButton.Builder {
     ctor public MediaSession2.CommandButton.Builder();
     method public androidx.media2.MediaSession2.CommandButton build();
-    method public androidx.media2.MediaSession2.CommandButton.Builder setCommand(androidx.media2.SessionCommand2);
-    method public androidx.media2.MediaSession2.CommandButton.Builder setDisplayName(java.lang.String);
+    method public androidx.media2.MediaSession2.CommandButton.Builder setCommand(androidx.media2.SessionCommand2?);
+    method public androidx.media2.MediaSession2.CommandButton.Builder setDisplayName(String?);
     method public androidx.media2.MediaSession2.CommandButton.Builder setEnabled(boolean);
-    method public androidx.media2.MediaSession2.CommandButton.Builder setExtras(android.os.Bundle);
+    method public androidx.media2.MediaSession2.CommandButton.Builder setExtras(android.os.Bundle?);
     method public androidx.media2.MediaSession2.CommandButton.Builder setIconResId(int);
   }
 
   public static final class MediaSession2.ControllerInfo {
-    method public java.lang.String getPackageName();
+    method public String getPackageName();
     method public int getUid();
   }
 
-  public static abstract interface MediaSession2.OnDataSourceMissingHelper {
-    method public abstract androidx.media2.MediaItem2 onDataSourceMissing(androidx.media2.MediaSession2, androidx.media2.MediaItem2);
+  public static interface MediaSession2.OnDataSourceMissingHelper {
+    method public androidx.media2.MediaItem2? onDataSourceMissing(androidx.media2.MediaSession2, androidx.media2.MediaItem2);
   }
 
-  public static abstract class MediaSession2.SessionCallback {
+  public abstract static class MediaSession2.SessionCallback {
     ctor public MediaSession2.SessionCallback();
     method public void onBufferingStateChanged(androidx.media2.MediaSession2, androidx.media2.MediaPlayerConnector, androidx.media2.MediaItem2, int);
     method public boolean onCommandRequest(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo, androidx.media2.SessionCommand2);
-    method public androidx.media2.SessionCommandGroup2 onConnect(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo);
-    method public void onCurrentMediaItemChanged(androidx.media2.MediaSession2, androidx.media2.MediaPlayerConnector, androidx.media2.MediaItem2);
-    method public void onCustomCommand(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo, androidx.media2.SessionCommand2, android.os.Bundle, android.os.ResultReceiver);
+    method public androidx.media2.SessionCommandGroup2? onConnect(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo);
+    method public void onCurrentMediaItemChanged(androidx.media2.MediaSession2, androidx.media2.MediaPlayerConnector, androidx.media2.MediaItem2?);
+    method public void onCustomCommand(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo, androidx.media2.SessionCommand2, android.os.Bundle?, android.os.ResultReceiver?);
     method public void onDisconnected(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo);
-    method public void onFastForward(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo);
+    method public void onFastForward(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo!);
     method public void onMediaPrepared(androidx.media2.MediaSession2, androidx.media2.MediaPlayerConnector, androidx.media2.MediaItem2);
-    method public void onPlayFromMediaId(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo, java.lang.String, android.os.Bundle);
-    method public void onPlayFromSearch(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo, java.lang.String, android.os.Bundle);
-    method public void onPlayFromUri(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo, android.net.Uri, android.os.Bundle);
+    method public void onPlayFromMediaId(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo, String, android.os.Bundle?);
+    method public void onPlayFromSearch(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo, String, android.os.Bundle?);
+    method public void onPlayFromUri(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo, android.net.Uri, android.os.Bundle?);
     method public void onPlaybackSpeedChanged(androidx.media2.MediaSession2, androidx.media2.MediaPlayerConnector, float);
     method public void onPlayerStateChanged(androidx.media2.MediaSession2, androidx.media2.MediaPlayerConnector, int);
-    method public void onPlaylistChanged(androidx.media2.MediaSession2, androidx.media2.MediaPlaylistAgent, java.util.List<androidx.media2.MediaItem2>, androidx.media2.MediaMetadata2);
-    method public void onPlaylistMetadataChanged(androidx.media2.MediaSession2, androidx.media2.MediaPlaylistAgent, androidx.media2.MediaMetadata2);
-    method public void onPrepareFromMediaId(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo, java.lang.String, android.os.Bundle);
-    method public void onPrepareFromSearch(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo, java.lang.String, android.os.Bundle);
-    method public void onPrepareFromUri(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo, android.net.Uri, android.os.Bundle);
+    method public void onPlaylistChanged(androidx.media2.MediaSession2, androidx.media2.MediaPlaylistAgent, java.util.List<androidx.media2.MediaItem2>, androidx.media2.MediaMetadata2?);
+    method public void onPlaylistMetadataChanged(androidx.media2.MediaSession2, androidx.media2.MediaPlaylistAgent, androidx.media2.MediaMetadata2?);
+    method public void onPrepareFromMediaId(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo, String, android.os.Bundle?);
+    method public void onPrepareFromSearch(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo, String, android.os.Bundle?);
+    method public void onPrepareFromUri(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo, android.net.Uri, android.os.Bundle?);
     method public void onRepeatModeChanged(androidx.media2.MediaSession2, androidx.media2.MediaPlaylistAgent, int);
-    method public void onRewind(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo);
+    method public void onRewind(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo!);
     method public void onSeekCompleted(androidx.media2.MediaSession2, androidx.media2.MediaPlayerConnector, long);
-    method public void onSetRating(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo, java.lang.String, androidx.media2.Rating2);
+    method public void onSetRating(androidx.media2.MediaSession2, androidx.media2.MediaSession2.ControllerInfo, String, androidx.media2.Rating2);
     method public void onShuffleModeChanged(androidx.media2.MediaSession2, androidx.media2.MediaPlaylistAgent, int);
   }
 
-  public final class MediaSessionManager2 {
+  @RequiresApi(28) public final class MediaSessionManager2 {
     method public static androidx.media2.MediaSessionManager2 getInstance(android.content.Context);
     method public java.util.List<androidx.media2.SessionToken2> getSessionServiceTokens();
   }
@@ -668,11 +682,11 @@
     ctor public MediaSessionService2();
     method public final void addSession(androidx.media2.MediaSession2);
     method public final java.util.List<androidx.media2.MediaSession2> getSessions();
-    method public android.os.IBinder onBind(android.content.Intent);
+    method @CallSuper public android.os.IBinder? onBind(android.content.Intent!);
     method public abstract androidx.media2.MediaSession2 onGetSession();
-    method public androidx.media2.MediaSessionService2.MediaNotification onUpdateNotification(androidx.media2.MediaSession2);
+    method public androidx.media2.MediaSessionService2.MediaNotification? onUpdateNotification(androidx.media2.MediaSession2);
     method public final void removeSession(androidx.media2.MediaSession2);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.media.MediaSessionService2";
+    field public static final String SERVICE_INTERFACE = "android.media.MediaSessionService2";
   }
 
   public static class MediaSessionService2.MediaNotification {
@@ -685,7 +699,7 @@
     method public long getAnchorMediaTimeUs();
     method public long getAnchorSystemNanoTime();
     method public float getMediaClockRate();
-    field public static final androidx.media2.MediaTimestamp2 TIMESTAMP_UNKNOWN;
+    field public static final androidx.media2.MediaTimestamp2! TIMESTAMP_UNKNOWN;
   }
 
   public final class PercentageRating2 implements androidx.media2.Rating2 {
@@ -696,9 +710,9 @@
   }
 
   public final class PlaybackParams2 {
-    method public java.lang.Integer getAudioFallbackMode();
-    method public java.lang.Float getPitch();
-    method public java.lang.Float getSpeed();
+    method public Integer! getAudioFallbackMode();
+    method public Float! getPitch();
+    method public Float! getSpeed();
     field public static final int AUDIO_FALLBACK_MODE_DEFAULT = 0; // 0x0
     field public static final int AUDIO_FALLBACK_MODE_FAIL = 2; // 0x2
     field public static final int AUDIO_FALLBACK_MODE_MUTE = 1; // 0x1
@@ -706,22 +720,22 @@
 
   public static final class PlaybackParams2.Builder {
     ctor public PlaybackParams2.Builder();
-    method public androidx.media2.PlaybackParams2 build();
-    method public androidx.media2.PlaybackParams2.Builder setAudioFallbackMode(int);
-    method public androidx.media2.PlaybackParams2.Builder setPitch(float);
-    method public androidx.media2.PlaybackParams2.Builder setSpeed(float);
+    method public androidx.media2.PlaybackParams2! build();
+    method public androidx.media2.PlaybackParams2.Builder! setAudioFallbackMode(int);
+    method public androidx.media2.PlaybackParams2.Builder! setPitch(float);
+    method public androidx.media2.PlaybackParams2.Builder! setSpeed(float);
   }
 
-  public abstract interface Rating2 implements androidx.versionedparcelable.VersionedParcelable {
-    method public abstract boolean isRated();
+  public interface Rating2 extends androidx.versionedparcelable.VersionedParcelable {
+    method public boolean isRated();
   }
 
   public final class SessionCommand2 implements androidx.versionedparcelable.VersionedParcelable {
     ctor public SessionCommand2(int);
-    ctor public SessionCommand2(java.lang.String, android.os.Bundle);
+    ctor public SessionCommand2(String, android.os.Bundle?);
     method public int getCommandCode();
-    method public java.lang.String getCustomCommand();
-    method public android.os.Bundle getExtras();
+    method public String? getCustomCommand();
+    method public android.os.Bundle? getExtras();
     field public static final int COMMAND_CODE_CUSTOM = 0; // 0x0
     field public static final int COMMAND_CODE_LIBRARY_GET_CHILDREN = 50003; // 0xc353
     field public static final int COMMAND_CODE_LIBRARY_GET_ITEM = 50004; // 0xc354
@@ -765,7 +779,7 @@
 
   public final class SessionCommandGroup2 implements androidx.versionedparcelable.VersionedParcelable {
     ctor public SessionCommandGroup2();
-    ctor public SessionCommandGroup2(java.util.Collection<androidx.media2.SessionCommand2>);
+    ctor public SessionCommandGroup2(java.util.Collection<androidx.media2.SessionCommand2>?);
     method public java.util.Set<androidx.media2.SessionCommand2> getCommands();
     method public boolean hasCommand(androidx.media2.SessionCommand2);
     method public boolean hasCommand(int);
@@ -773,9 +787,9 @@
 
   public static final class SessionCommandGroup2.Builder {
     ctor public SessionCommandGroup2.Builder();
-    ctor public SessionCommandGroup2.Builder(androidx.media2.SessionCommandGroup2);
+    ctor public SessionCommandGroup2.Builder(androidx.media2.SessionCommandGroup2!);
     method public androidx.media2.SessionCommandGroup2.Builder addAllPredefinedCommands(int);
-    method public androidx.media2.SessionCommandGroup2.Builder addCommand(androidx.media2.SessionCommand2);
+    method public androidx.media2.SessionCommandGroup2.Builder addCommand(androidx.media2.SessionCommand2!);
     method public androidx.media2.SessionCommandGroup2.Builder addCommand(int);
     method public androidx.media2.SessionCommandGroup2 build();
     method public androidx.media2.SessionCommandGroup2.Builder removeCommand(androidx.media2.SessionCommand2);
@@ -784,8 +798,8 @@
 
   public final class SessionToken2 implements androidx.versionedparcelable.VersionedParcelable {
     ctor public SessionToken2(android.content.Context, android.content.ComponentName);
-    method public java.lang.String getPackageName();
-    method public java.lang.String getServiceName();
+    method public String getPackageName();
+    method public String? getServiceName();
     method public int getType();
     method public int getUid();
     field public static final int TYPE_LIBRARY_SERVICE = 2; // 0x2
@@ -794,8 +808,8 @@
   }
 
   public final class StarRating2 implements androidx.media2.Rating2 {
-    ctor public StarRating2(int);
-    ctor public StarRating2(int, float);
+    ctor public StarRating2(@IntRange(from=1) int);
+    ctor public StarRating2(@IntRange(from=1) int, float);
     method public int getMaxStars();
     method public float getStarRating();
     method public boolean isRated();
@@ -806,9 +820,9 @@
     method public long getDurationUs();
     method public long getStartTimeUs();
     method public int getTrackIndex();
-    field public static final java.lang.String MIMETYPE_TEXT_CEA_608 = "text/cea-608";
-    field public static final java.lang.String MIMETYPE_TEXT_CEA_708 = "text/cea-708";
-    field public static final java.lang.String MIMETYPE_TEXT_VTT = "text/vtt";
+    field public static final String MIMETYPE_TEXT_CEA_608 = "text/cea-608";
+    field public static final String MIMETYPE_TEXT_CEA_708 = "text/cea-708";
+    field public static final String MIMETYPE_TEXT_VTT = "text/vtt";
   }
 
   public final class ThumbRating2 implements androidx.media2.Rating2 {
@@ -819,21 +833,25 @@
   }
 
   public class TimedMetaData2 {
-    method public byte[] getMetaData();
+    method public byte[]! getMetaData();
     method public long getTimestamp();
   }
 
   public class UriMediaItem2 extends androidx.media2.MediaItem2 {
     method public android.net.Uri getUri();
     method public android.content.Context getUriContext();
-    method public java.util.List<java.net.HttpCookie> getUriCookies();
-    method public java.util.Map<java.lang.String, java.lang.String> getUriHeaders();
+    method public java.util.List<java.net.HttpCookie>? getUriCookies();
+    method public java.util.Map<java.lang.String,java.lang.String>? getUriHeaders();
   }
 
   public static final class UriMediaItem2.Builder {
     ctor public UriMediaItem2.Builder(android.content.Context, android.net.Uri);
-    ctor public UriMediaItem2.Builder(android.content.Context, android.net.Uri, java.util.Map<java.lang.String, java.lang.String>, java.util.List<java.net.HttpCookie>);
-    method public androidx.media2.UriMediaItem2 build();
+    ctor public UriMediaItem2.Builder(android.content.Context, android.net.Uri, java.util.Map<java.lang.String,java.lang.String>?, java.util.List<java.net.HttpCookie>?);
+    method public androidx.media2.UriMediaItem2! build();
+    method public androidx.media2.UriMediaItem2.Builder! setEndPosition(long);
+    method public androidx.media2.UriMediaItem2.Builder! setMediaId(String!);
+    method public androidx.media2.UriMediaItem2.Builder! setMetadata(androidx.media2.MediaMetadata2!);
+    method public androidx.media2.UriMediaItem2.Builder! setStartPosition(long);
   }
 
 }
diff --git a/mediarouter/api/current.txt b/mediarouter/api/current.txt
index 887614f..af6767a 100644
--- a/mediarouter/api/current.txt
+++ b/mediarouter/api/current.txt
@@ -1,33 +1,34 @@
+// Signature format: 2.0
 package androidx.mediarouter.app {
 
   public class MediaRouteActionProvider extends androidx.core.view.ActionProvider {
-    ctor public MediaRouteActionProvider(android.content.Context);
+    ctor public MediaRouteActionProvider(android.content.Context!);
     method public androidx.mediarouter.app.MediaRouteDialogFactory getDialogFactory();
-    method public androidx.mediarouter.app.MediaRouteButton getMediaRouteButton();
+    method public androidx.mediarouter.app.MediaRouteButton? getMediaRouteButton();
     method public androidx.mediarouter.media.MediaRouteSelector getRouteSelector();
-    method public android.view.View onCreateActionView();
-    method public androidx.mediarouter.app.MediaRouteButton onCreateMediaRouteButton();
+    method public android.view.View! onCreateActionView();
+    method public androidx.mediarouter.app.MediaRouteButton! onCreateMediaRouteButton();
     method public void setDialogFactory(androidx.mediarouter.app.MediaRouteDialogFactory);
     method public void setRouteSelector(androidx.mediarouter.media.MediaRouteSelector);
   }
 
   public class MediaRouteButton extends android.view.View {
-    ctor public MediaRouteButton(android.content.Context);
-    ctor public MediaRouteButton(android.content.Context, android.util.AttributeSet);
-    ctor public MediaRouteButton(android.content.Context, android.util.AttributeSet, int);
+    ctor public MediaRouteButton(android.content.Context!);
+    ctor public MediaRouteButton(android.content.Context!, android.util.AttributeSet!);
+    ctor public MediaRouteButton(android.content.Context!, android.util.AttributeSet!, int);
     method public androidx.mediarouter.app.MediaRouteDialogFactory getDialogFactory();
     method public androidx.mediarouter.media.MediaRouteSelector getRouteSelector();
     method public void onAttachedToWindow();
     method public void onDetachedFromWindow();
     method public void setDialogFactory(androidx.mediarouter.app.MediaRouteDialogFactory);
-    method public void setRemoteIndicatorDrawable(android.graphics.drawable.Drawable);
-    method public void setRouteSelector(androidx.mediarouter.media.MediaRouteSelector);
+    method public void setRemoteIndicatorDrawable(android.graphics.drawable.Drawable!);
+    method public void setRouteSelector(androidx.mediarouter.media.MediaRouteSelector!);
     method public boolean showDialog();
   }
 
   public class MediaRouteChooserDialog extends androidx.appcompat.app.AppCompatDialog {
-    ctor public MediaRouteChooserDialog(android.content.Context);
-    ctor public MediaRouteChooserDialog(android.content.Context, int);
+    ctor public MediaRouteChooserDialog(android.content.Context!);
+    ctor public MediaRouteChooserDialog(android.content.Context!, int);
     method public androidx.mediarouter.media.MediaRouteSelector getRouteSelector();
     method public boolean onFilterRoute(androidx.mediarouter.media.MediaRouter.RouteInfo);
     method public void onFilterRoutes(java.util.List<androidx.mediarouter.media.MediaRouter.RouteInfo>);
@@ -37,25 +38,25 @@
 
   public class MediaRouteChooserDialogFragment extends androidx.fragment.app.DialogFragment {
     ctor public MediaRouteChooserDialogFragment();
-    method public androidx.mediarouter.media.MediaRouteSelector getRouteSelector();
-    method public androidx.mediarouter.app.MediaRouteChooserDialog onCreateChooserDialog(android.content.Context, android.os.Bundle);
-    method public void setRouteSelector(androidx.mediarouter.media.MediaRouteSelector);
+    method public androidx.mediarouter.media.MediaRouteSelector! getRouteSelector();
+    method public androidx.mediarouter.app.MediaRouteChooserDialog! onCreateChooserDialog(android.content.Context!, android.os.Bundle!);
+    method public void setRouteSelector(androidx.mediarouter.media.MediaRouteSelector!);
   }
 
   public class MediaRouteControllerDialog extends androidx.appcompat.app.AlertDialog {
-    ctor public MediaRouteControllerDialog(android.content.Context);
-    ctor public MediaRouteControllerDialog(android.content.Context, int);
-    method public android.view.View getMediaControlView();
-    method public android.support.v4.media.session.MediaSessionCompat.Token getMediaSession();
-    method public androidx.mediarouter.media.MediaRouter.RouteInfo getRoute();
+    ctor public MediaRouteControllerDialog(android.content.Context!);
+    ctor public MediaRouteControllerDialog(android.content.Context!, int);
+    method public android.view.View! getMediaControlView();
+    method public android.support.v4.media.session.MediaSessionCompat.Token! getMediaSession();
+    method public androidx.mediarouter.media.MediaRouter.RouteInfo! getRoute();
     method public boolean isVolumeControlEnabled();
-    method public android.view.View onCreateMediaControlView(android.os.Bundle);
+    method public android.view.View! onCreateMediaControlView(android.os.Bundle!);
     method public void setVolumeControlEnabled(boolean);
   }
 
   public class MediaRouteControllerDialogFragment extends androidx.fragment.app.DialogFragment {
     ctor public MediaRouteControllerDialogFragment();
-    method public androidx.mediarouter.app.MediaRouteControllerDialog onCreateControllerDialog(android.content.Context, android.os.Bundle);
+    method public androidx.mediarouter.app.MediaRouteControllerDialog! onCreateControllerDialog(android.content.Context!, android.os.Bundle!);
   }
 
   public class MediaRouteDialogFactory {
@@ -67,11 +68,11 @@
 
   public class MediaRouteDiscoveryFragment extends androidx.fragment.app.Fragment {
     ctor public MediaRouteDiscoveryFragment();
-    method public androidx.mediarouter.media.MediaRouter getMediaRouter();
-    method public androidx.mediarouter.media.MediaRouteSelector getRouteSelector();
-    method public androidx.mediarouter.media.MediaRouter.Callback onCreateCallback();
+    method public androidx.mediarouter.media.MediaRouter! getMediaRouter();
+    method public androidx.mediarouter.media.MediaRouteSelector! getRouteSelector();
+    method public androidx.mediarouter.media.MediaRouter.Callback! onCreateCallback();
     method public int onPrepareCallbackFlags();
-    method public void setRouteSelector(androidx.mediarouter.media.MediaRouteSelector);
+    method public void setRouteSelector(androidx.mediarouter.media.MediaRouteSelector!);
   }
 
 }
@@ -79,63 +80,63 @@
 package androidx.mediarouter.media {
 
   public final class MediaControlIntent {
-    field public static final java.lang.String ACTION_END_SESSION = "android.media.intent.action.END_SESSION";
-    field public static final java.lang.String ACTION_ENQUEUE = "android.media.intent.action.ENQUEUE";
-    field public static final java.lang.String ACTION_GET_SESSION_STATUS = "android.media.intent.action.GET_SESSION_STATUS";
-    field public static final java.lang.String ACTION_GET_STATUS = "android.media.intent.action.GET_STATUS";
-    field public static final java.lang.String ACTION_PAUSE = "android.media.intent.action.PAUSE";
-    field public static final java.lang.String ACTION_PLAY = "android.media.intent.action.PLAY";
-    field public static final java.lang.String ACTION_REMOVE = "android.media.intent.action.REMOVE";
-    field public static final java.lang.String ACTION_RESUME = "android.media.intent.action.RESUME";
-    field public static final java.lang.String ACTION_SEEK = "android.media.intent.action.SEEK";
-    field public static final java.lang.String ACTION_SEND_MESSAGE = "android.media.intent.action.SEND_MESSAGE";
-    field public static final java.lang.String ACTION_START_SESSION = "android.media.intent.action.START_SESSION";
-    field public static final java.lang.String ACTION_STOP = "android.media.intent.action.STOP";
-    field public static final java.lang.String CATEGORY_LIVE_AUDIO = "android.media.intent.category.LIVE_AUDIO";
-    field public static final java.lang.String CATEGORY_LIVE_VIDEO = "android.media.intent.category.LIVE_VIDEO";
-    field public static final java.lang.String CATEGORY_REMOTE_PLAYBACK = "android.media.intent.category.REMOTE_PLAYBACK";
+    field public static final String ACTION_END_SESSION = "android.media.intent.action.END_SESSION";
+    field public static final String ACTION_ENQUEUE = "android.media.intent.action.ENQUEUE";
+    field public static final String ACTION_GET_SESSION_STATUS = "android.media.intent.action.GET_SESSION_STATUS";
+    field public static final String ACTION_GET_STATUS = "android.media.intent.action.GET_STATUS";
+    field public static final String ACTION_PAUSE = "android.media.intent.action.PAUSE";
+    field public static final String ACTION_PLAY = "android.media.intent.action.PLAY";
+    field public static final String ACTION_REMOVE = "android.media.intent.action.REMOVE";
+    field public static final String ACTION_RESUME = "android.media.intent.action.RESUME";
+    field public static final String ACTION_SEEK = "android.media.intent.action.SEEK";
+    field public static final String ACTION_SEND_MESSAGE = "android.media.intent.action.SEND_MESSAGE";
+    field public static final String ACTION_START_SESSION = "android.media.intent.action.START_SESSION";
+    field public static final String ACTION_STOP = "android.media.intent.action.STOP";
+    field public static final String CATEGORY_LIVE_AUDIO = "android.media.intent.category.LIVE_AUDIO";
+    field public static final String CATEGORY_LIVE_VIDEO = "android.media.intent.category.LIVE_VIDEO";
+    field public static final String CATEGORY_REMOTE_PLAYBACK = "android.media.intent.category.REMOTE_PLAYBACK";
     field public static final int ERROR_INVALID_ITEM_ID = 3; // 0x3
     field public static final int ERROR_INVALID_SESSION_ID = 2; // 0x2
     field public static final int ERROR_UNKNOWN = 0; // 0x0
     field public static final int ERROR_UNSUPPORTED_OPERATION = 1; // 0x1
-    field public static final java.lang.String EXTRA_ERROR_CODE = "android.media.intent.extra.ERROR_CODE";
-    field public static final java.lang.String EXTRA_ITEM_CONTENT_POSITION = "android.media.intent.extra.ITEM_POSITION";
-    field public static final java.lang.String EXTRA_ITEM_HTTP_HEADERS = "android.media.intent.extra.HTTP_HEADERS";
-    field public static final java.lang.String EXTRA_ITEM_ID = "android.media.intent.extra.ITEM_ID";
-    field public static final java.lang.String EXTRA_ITEM_METADATA = "android.media.intent.extra.ITEM_METADATA";
-    field public static final java.lang.String EXTRA_ITEM_STATUS = "android.media.intent.extra.ITEM_STATUS";
-    field public static final java.lang.String EXTRA_ITEM_STATUS_UPDATE_RECEIVER = "android.media.intent.extra.ITEM_STATUS_UPDATE_RECEIVER";
-    field public static final java.lang.String EXTRA_MESSAGE = "android.media.intent.extra.MESSAGE";
-    field public static final java.lang.String EXTRA_MESSAGE_RECEIVER = "android.media.intent.extra.MESSAGE_RECEIVER";
-    field public static final java.lang.String EXTRA_SESSION_ID = "android.media.intent.extra.SESSION_ID";
-    field public static final java.lang.String EXTRA_SESSION_STATUS = "android.media.intent.extra.SESSION_STATUS";
-    field public static final java.lang.String EXTRA_SESSION_STATUS_UPDATE_RECEIVER = "android.media.intent.extra.SESSION_STATUS_UPDATE_RECEIVER";
+    field public static final String EXTRA_ERROR_CODE = "android.media.intent.extra.ERROR_CODE";
+    field public static final String EXTRA_ITEM_CONTENT_POSITION = "android.media.intent.extra.ITEM_POSITION";
+    field public static final String EXTRA_ITEM_HTTP_HEADERS = "android.media.intent.extra.HTTP_HEADERS";
+    field public static final String EXTRA_ITEM_ID = "android.media.intent.extra.ITEM_ID";
+    field public static final String EXTRA_ITEM_METADATA = "android.media.intent.extra.ITEM_METADATA";
+    field public static final String EXTRA_ITEM_STATUS = "android.media.intent.extra.ITEM_STATUS";
+    field public static final String EXTRA_ITEM_STATUS_UPDATE_RECEIVER = "android.media.intent.extra.ITEM_STATUS_UPDATE_RECEIVER";
+    field public static final String EXTRA_MESSAGE = "android.media.intent.extra.MESSAGE";
+    field public static final String EXTRA_MESSAGE_RECEIVER = "android.media.intent.extra.MESSAGE_RECEIVER";
+    field public static final String EXTRA_SESSION_ID = "android.media.intent.extra.SESSION_ID";
+    field public static final String EXTRA_SESSION_STATUS = "android.media.intent.extra.SESSION_STATUS";
+    field public static final String EXTRA_SESSION_STATUS_UPDATE_RECEIVER = "android.media.intent.extra.SESSION_STATUS_UPDATE_RECEIVER";
   }
 
   public final class MediaItemMetadata {
-    field public static final java.lang.String KEY_ALBUM_ARTIST = "android.media.metadata.ALBUM_ARTIST";
-    field public static final java.lang.String KEY_ALBUM_TITLE = "android.media.metadata.ALBUM_TITLE";
-    field public static final java.lang.String KEY_ARTIST = "android.media.metadata.ARTIST";
-    field public static final java.lang.String KEY_ARTWORK_URI = "android.media.metadata.ARTWORK_URI";
-    field public static final java.lang.String KEY_AUTHOR = "android.media.metadata.AUTHOR";
-    field public static final java.lang.String KEY_COMPOSER = "android.media.metadata.COMPOSER";
-    field public static final java.lang.String KEY_DISC_NUMBER = "android.media.metadata.DISC_NUMBER";
-    field public static final java.lang.String KEY_DURATION = "android.media.metadata.DURATION";
-    field public static final java.lang.String KEY_TITLE = "android.media.metadata.TITLE";
-    field public static final java.lang.String KEY_TRACK_NUMBER = "android.media.metadata.TRACK_NUMBER";
-    field public static final java.lang.String KEY_YEAR = "android.media.metadata.YEAR";
+    field public static final String KEY_ALBUM_ARTIST = "android.media.metadata.ALBUM_ARTIST";
+    field public static final String KEY_ALBUM_TITLE = "android.media.metadata.ALBUM_TITLE";
+    field public static final String KEY_ARTIST = "android.media.metadata.ARTIST";
+    field public static final String KEY_ARTWORK_URI = "android.media.metadata.ARTWORK_URI";
+    field public static final String KEY_AUTHOR = "android.media.metadata.AUTHOR";
+    field public static final String KEY_COMPOSER = "android.media.metadata.COMPOSER";
+    field public static final String KEY_DISC_NUMBER = "android.media.metadata.DISC_NUMBER";
+    field public static final String KEY_DURATION = "android.media.metadata.DURATION";
+    field public static final String KEY_TITLE = "android.media.metadata.TITLE";
+    field public static final String KEY_TRACK_NUMBER = "android.media.metadata.TRACK_NUMBER";
+    field public static final String KEY_YEAR = "android.media.metadata.YEAR";
   }
 
   public final class MediaItemStatus {
-    method public android.os.Bundle asBundle();
-    method public static androidx.mediarouter.media.MediaItemStatus fromBundle(android.os.Bundle);
+    method public android.os.Bundle! asBundle();
+    method public static androidx.mediarouter.media.MediaItemStatus! fromBundle(android.os.Bundle!);
     method public long getContentDuration();
     method public long getContentPosition();
-    method public android.os.Bundle getExtras();
+    method public android.os.Bundle! getExtras();
     method public int getPlaybackState();
     method public long getTimestamp();
-    field public static final java.lang.String EXTRA_HTTP_RESPONSE_HEADERS = "android.media.status.extra.HTTP_RESPONSE_HEADERS";
-    field public static final java.lang.String EXTRA_HTTP_STATUS_CODE = "android.media.status.extra.HTTP_STATUS_CODE";
+    field public static final String EXTRA_HTTP_RESPONSE_HEADERS = "android.media.status.extra.HTTP_RESPONSE_HEADERS";
+    field public static final String EXTRA_HTTP_STATUS_CODE = "android.media.status.extra.HTTP_STATUS_CODE";
     field public static final int PLAYBACK_STATE_BUFFERING = 3; // 0x3
     field public static final int PLAYBACK_STATE_CANCELED = 5; // 0x5
     field public static final int PLAYBACK_STATE_ERROR = 7; // 0x7
@@ -148,103 +149,103 @@
 
   public static final class MediaItemStatus.Builder {
     ctor public MediaItemStatus.Builder(int);
-    ctor public MediaItemStatus.Builder(androidx.mediarouter.media.MediaItemStatus);
-    method public androidx.mediarouter.media.MediaItemStatus build();
-    method public androidx.mediarouter.media.MediaItemStatus.Builder setContentDuration(long);
-    method public androidx.mediarouter.media.MediaItemStatus.Builder setContentPosition(long);
-    method public androidx.mediarouter.media.MediaItemStatus.Builder setExtras(android.os.Bundle);
-    method public androidx.mediarouter.media.MediaItemStatus.Builder setPlaybackState(int);
-    method public androidx.mediarouter.media.MediaItemStatus.Builder setTimestamp(long);
+    ctor public MediaItemStatus.Builder(androidx.mediarouter.media.MediaItemStatus!);
+    method public androidx.mediarouter.media.MediaItemStatus! build();
+    method public androidx.mediarouter.media.MediaItemStatus.Builder! setContentDuration(long);
+    method public androidx.mediarouter.media.MediaItemStatus.Builder! setContentPosition(long);
+    method public androidx.mediarouter.media.MediaItemStatus.Builder! setExtras(android.os.Bundle!);
+    method public androidx.mediarouter.media.MediaItemStatus.Builder! setPlaybackState(int);
+    method public androidx.mediarouter.media.MediaItemStatus.Builder! setTimestamp(long);
   }
 
   public final class MediaRouteDescriptor {
-    method public android.os.Bundle asBundle();
+    method public android.os.Bundle! asBundle();
     method public boolean canDisconnectAndKeepPlaying();
-    method public static androidx.mediarouter.media.MediaRouteDescriptor fromBundle(android.os.Bundle);
+    method public static androidx.mediarouter.media.MediaRouteDescriptor! fromBundle(android.os.Bundle!);
     method public int getConnectionState();
-    method public java.util.List<android.content.IntentFilter> getControlFilters();
-    method public java.lang.String getDescription();
+    method public java.util.List<android.content.IntentFilter>! getControlFilters();
+    method public String! getDescription();
     method public int getDeviceType();
-    method public android.os.Bundle getExtras();
-    method public android.net.Uri getIconUri();
-    method public java.lang.String getId();
-    method public java.lang.String getName();
+    method public android.os.Bundle! getExtras();
+    method public android.net.Uri! getIconUri();
+    method public String! getId();
+    method public String! getName();
     method public int getPlaybackStream();
     method public int getPlaybackType();
     method public int getPresentationDisplayId();
-    method public android.content.IntentSender getSettingsActivity();
+    method public android.content.IntentSender! getSettingsActivity();
     method public int getVolume();
     method public int getVolumeHandling();
     method public int getVolumeMax();
-    method public deprecated boolean isConnecting();
+    method @Deprecated public boolean isConnecting();
     method public boolean isDynamicGroupRoute();
     method public boolean isEnabled();
     method public boolean isValid();
   }
 
   public static final class MediaRouteDescriptor.Builder {
-    ctor public MediaRouteDescriptor.Builder(java.lang.String, java.lang.String);
-    ctor public MediaRouteDescriptor.Builder(androidx.mediarouter.media.MediaRouteDescriptor);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder addControlFilter(android.content.IntentFilter);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder addControlFilters(java.util.Collection<android.content.IntentFilter>);
-    method public androidx.mediarouter.media.MediaRouteDescriptor build();
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setCanDisconnect(boolean);
-    method public deprecated androidx.mediarouter.media.MediaRouteDescriptor.Builder setConnecting(boolean);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setConnectionState(int);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setDescription(java.lang.String);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setDeviceType(int);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setEnabled(boolean);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setExtras(android.os.Bundle);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setIconUri(android.net.Uri);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setId(java.lang.String);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setIsDynamicGroupRoute(boolean);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setName(java.lang.String);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setPlaybackStream(int);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setPlaybackType(int);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setPresentationDisplayId(int);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setSettingsActivity(android.content.IntentSender);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setVolume(int);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setVolumeHandling(int);
-    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder setVolumeMax(int);
+    ctor public MediaRouteDescriptor.Builder(String!, String!);
+    ctor public MediaRouteDescriptor.Builder(androidx.mediarouter.media.MediaRouteDescriptor!);
+    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder! addControlFilter(android.content.IntentFilter!);
+    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder! addControlFilters(java.util.Collection<android.content.IntentFilter>!);
+    method public androidx.mediarouter.media.MediaRouteDescriptor! build();
+    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder! setCanDisconnect(boolean);
+    method @Deprecated public androidx.mediarouter.media.MediaRouteDescriptor.Builder! setConnecting(boolean);
+    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder! setConnectionState(int);
+    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder! setDescription(String!);
+    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder! setDeviceType(int);
+    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder! setEnabled(boolean);
+    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder! setExtras(android.os.Bundle!);
+    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder! setIconUri(android.net.Uri!);
+    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder! setId(String!);
+    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder! setIsDynamicGroupRoute(boolean);
+    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder! setName(String!);
+    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder! setPlaybackStream(int);
+    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder! setPlaybackType(int);
+    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder! setPresentationDisplayId(int);
+    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder! setSettingsActivity(android.content.IntentSender!);
+    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder! setVolume(int);
+    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder! setVolumeHandling(int);
+    method public androidx.mediarouter.media.MediaRouteDescriptor.Builder! setVolumeMax(int);
   }
 
   public final class MediaRouteDiscoveryRequest {
-    ctor public MediaRouteDiscoveryRequest(androidx.mediarouter.media.MediaRouteSelector, boolean);
-    method public android.os.Bundle asBundle();
-    method public static androidx.mediarouter.media.MediaRouteDiscoveryRequest fromBundle(android.os.Bundle);
-    method public androidx.mediarouter.media.MediaRouteSelector getSelector();
+    ctor public MediaRouteDiscoveryRequest(androidx.mediarouter.media.MediaRouteSelector!, boolean);
+    method public android.os.Bundle! asBundle();
+    method public static androidx.mediarouter.media.MediaRouteDiscoveryRequest! fromBundle(android.os.Bundle!);
+    method public androidx.mediarouter.media.MediaRouteSelector! getSelector();
     method public boolean isActiveScan();
     method public boolean isValid();
   }
 
   public abstract class MediaRouteProvider {
     ctor public MediaRouteProvider(android.content.Context);
-    method public final android.content.Context getContext();
-    method public final androidx.mediarouter.media.MediaRouteProviderDescriptor getDescriptor();
-    method public final androidx.mediarouter.media.MediaRouteDiscoveryRequest getDiscoveryRequest();
-    method public final android.os.Handler getHandler();
-    method public final androidx.mediarouter.media.MediaRouteProvider.ProviderMetadata getMetadata();
-    method public androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController onCreateDynamicGroupRouteController(java.lang.String);
-    method public androidx.mediarouter.media.MediaRouteProvider.RouteController onCreateRouteController(java.lang.String);
-    method public void onDiscoveryRequestChanged(androidx.mediarouter.media.MediaRouteDiscoveryRequest);
-    method public final void setCallback(androidx.mediarouter.media.MediaRouteProvider.Callback);
-    method public final void setDescriptor(androidx.mediarouter.media.MediaRouteProviderDescriptor);
-    method public final void setDiscoveryRequest(androidx.mediarouter.media.MediaRouteDiscoveryRequest);
+    method public final android.content.Context! getContext();
+    method public final androidx.mediarouter.media.MediaRouteProviderDescriptor? getDescriptor();
+    method public final androidx.mediarouter.media.MediaRouteDiscoveryRequest? getDiscoveryRequest();
+    method public final android.os.Handler! getHandler();
+    method public final androidx.mediarouter.media.MediaRouteProvider.ProviderMetadata! getMetadata();
+    method public androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController? onCreateDynamicGroupRouteController(String);
+    method public androidx.mediarouter.media.MediaRouteProvider.RouteController? onCreateRouteController(String);
+    method public void onDiscoveryRequestChanged(androidx.mediarouter.media.MediaRouteDiscoveryRequest?);
+    method public final void setCallback(androidx.mediarouter.media.MediaRouteProvider.Callback?);
+    method public final void setDescriptor(androidx.mediarouter.media.MediaRouteProviderDescriptor?);
+    method public final void setDiscoveryRequest(androidx.mediarouter.media.MediaRouteDiscoveryRequest!);
   }
 
-  public static abstract class MediaRouteProvider.Callback {
+  public abstract static class MediaRouteProvider.Callback {
     ctor public MediaRouteProvider.Callback();
-    method public void onDescriptorChanged(androidx.mediarouter.media.MediaRouteProvider, androidx.mediarouter.media.MediaRouteProviderDescriptor);
+    method public void onDescriptorChanged(androidx.mediarouter.media.MediaRouteProvider, androidx.mediarouter.media.MediaRouteProviderDescriptor?);
   }
 
-  public static abstract class MediaRouteProvider.DynamicGroupRouteController extends androidx.mediarouter.media.MediaRouteProvider.RouteController {
+  public abstract static class MediaRouteProvider.DynamicGroupRouteController extends androidx.mediarouter.media.MediaRouteProvider.RouteController {
     ctor public MediaRouteProvider.DynamicGroupRouteController();
-    method public abstract java.lang.String getDynamicGroupRouteId();
-    method public java.lang.String getGroupableSelectionTitle();
-    method public java.lang.String getTransferableSectionTitle();
-    method public abstract void onAddMemberRoute(java.lang.String);
-    method public abstract void onRemoveMemberRoute(java.lang.String);
-    method public abstract void onUpdateMemberRoutes(java.util.List<java.lang.String>);
+    method public abstract String getDynamicGroupRouteId();
+    method public String? getGroupableSelectionTitle();
+    method public String? getTransferableSectionTitle();
+    method public abstract void onAddMemberRoute(String);
+    method public abstract void onRemoveMemberRoute(String!);
+    method public abstract void onUpdateMemberRoutes(java.util.List<java.lang.String>?);
     method public abstract void setOnDynamicRoutesChangedListener(java.util.concurrent.Executor, androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.OnDynamicRoutesChangedListener);
   }
 
@@ -261,27 +262,27 @@
   }
 
   public static final class MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor.Builder {
-    ctor public MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor.Builder(androidx.mediarouter.media.MediaRouteDescriptor);
-    ctor public MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor.Builder(androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor);
-    method public androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor build();
-    method public androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor.Builder setIsGroupable(boolean);
-    method public androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor.Builder setIsTransferable(boolean);
-    method public androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor.Builder setIsUnselectable(boolean);
-    method public androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor.Builder setSelectionState(int);
+    ctor public MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor.Builder(androidx.mediarouter.media.MediaRouteDescriptor!);
+    ctor public MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor.Builder(androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor!);
+    method public androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor! build();
+    method public androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor.Builder! setIsGroupable(boolean);
+    method public androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor.Builder! setIsTransferable(boolean);
+    method public androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor.Builder! setIsUnselectable(boolean);
+    method public androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor.Builder! setSelectionState(int);
   }
 
-  public static abstract interface MediaRouteProvider.DynamicGroupRouteController.OnDynamicRoutesChangedListener {
-    method public abstract void onRoutesChanged(androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController, java.util.Collection<androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor>);
+  public static interface MediaRouteProvider.DynamicGroupRouteController.OnDynamicRoutesChangedListener {
+    method public void onRoutesChanged(androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController!, java.util.Collection<androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor>!);
   }
 
   public static final class MediaRouteProvider.ProviderMetadata {
-    method public android.content.ComponentName getComponentName();
-    method public java.lang.String getPackageName();
+    method public android.content.ComponentName! getComponentName();
+    method public String! getPackageName();
   }
 
-  public static abstract class MediaRouteProvider.RouteController {
+  public abstract static class MediaRouteProvider.RouteController {
     ctor public MediaRouteProvider.RouteController();
-    method public boolean onControlRequest(android.content.Intent, androidx.mediarouter.media.MediaRouter.ControlRequestCallback);
+    method public boolean onControlRequest(android.content.Intent!, androidx.mediarouter.media.MediaRouter.ControlRequestCallback?);
     method public void onRelease();
     method public void onSelect();
     method public void onSetVolume(int);
@@ -291,8 +292,8 @@
   }
 
   public final class MediaRouteProviderDescriptor {
-    method public android.os.Bundle asBundle();
-    method public static androidx.mediarouter.media.MediaRouteProviderDescriptor fromBundle(android.os.Bundle);
+    method public android.os.Bundle! asBundle();
+    method public static androidx.mediarouter.media.MediaRouteProviderDescriptor! fromBundle(android.os.Bundle!);
     method public java.util.List<androidx.mediarouter.media.MediaRouteDescriptor> getRoutes();
     method public boolean isValid();
     method public boolean supportsDynamicGroupRoute();
@@ -300,61 +301,61 @@
 
   public static final class MediaRouteProviderDescriptor.Builder {
     ctor public MediaRouteProviderDescriptor.Builder();
-    ctor public MediaRouteProviderDescriptor.Builder(androidx.mediarouter.media.MediaRouteProviderDescriptor);
-    method public androidx.mediarouter.media.MediaRouteProviderDescriptor.Builder addRoute(androidx.mediarouter.media.MediaRouteDescriptor);
-    method public androidx.mediarouter.media.MediaRouteProviderDescriptor.Builder addRoutes(java.util.Collection<androidx.mediarouter.media.MediaRouteDescriptor>);
-    method public androidx.mediarouter.media.MediaRouteProviderDescriptor build();
-    method public androidx.mediarouter.media.MediaRouteProviderDescriptor.Builder setSupportsDynamicGroupRoute(boolean);
+    ctor public MediaRouteProviderDescriptor.Builder(androidx.mediarouter.media.MediaRouteProviderDescriptor!);
+    method public androidx.mediarouter.media.MediaRouteProviderDescriptor.Builder! addRoute(androidx.mediarouter.media.MediaRouteDescriptor!);
+    method public androidx.mediarouter.media.MediaRouteProviderDescriptor.Builder! addRoutes(java.util.Collection<androidx.mediarouter.media.MediaRouteDescriptor>!);
+    method public androidx.mediarouter.media.MediaRouteProviderDescriptor! build();
+    method public androidx.mediarouter.media.MediaRouteProviderDescriptor.Builder! setSupportsDynamicGroupRoute(boolean);
   }
 
   public abstract class MediaRouteProviderService extends android.app.Service {
     ctor public MediaRouteProviderService();
-    method public androidx.mediarouter.media.MediaRouteProvider getMediaRouteProvider();
-    method public android.os.IBinder onBind(android.content.Intent);
-    method public abstract androidx.mediarouter.media.MediaRouteProvider onCreateMediaRouteProvider();
-    field public static final java.lang.String SERVICE_INTERFACE = "android.media.MediaRouteProviderService";
+    method public androidx.mediarouter.media.MediaRouteProvider! getMediaRouteProvider();
+    method public android.os.IBinder! onBind(android.content.Intent!);
+    method public abstract androidx.mediarouter.media.MediaRouteProvider! onCreateMediaRouteProvider();
+    field public static final String SERVICE_INTERFACE = "android.media.MediaRouteProviderService";
   }
 
   public final class MediaRouteSelector {
-    method public android.os.Bundle asBundle();
-    method public boolean contains(androidx.mediarouter.media.MediaRouteSelector);
-    method public static androidx.mediarouter.media.MediaRouteSelector fromBundle(android.os.Bundle);
-    method public java.util.List<java.lang.String> getControlCategories();
-    method public boolean hasControlCategory(java.lang.String);
+    method public android.os.Bundle! asBundle();
+    method public boolean contains(androidx.mediarouter.media.MediaRouteSelector!);
+    method public static androidx.mediarouter.media.MediaRouteSelector! fromBundle(android.os.Bundle?);
+    method public java.util.List<java.lang.String>! getControlCategories();
+    method public boolean hasControlCategory(String!);
     method public boolean isEmpty();
     method public boolean isValid();
-    method public boolean matchesControlFilters(java.util.List<android.content.IntentFilter>);
-    field public static final androidx.mediarouter.media.MediaRouteSelector EMPTY;
+    method public boolean matchesControlFilters(java.util.List<android.content.IntentFilter>!);
+    field public static final androidx.mediarouter.media.MediaRouteSelector! EMPTY;
   }
 
   public static final class MediaRouteSelector.Builder {
     ctor public MediaRouteSelector.Builder();
     ctor public MediaRouteSelector.Builder(androidx.mediarouter.media.MediaRouteSelector);
     method public androidx.mediarouter.media.MediaRouteSelector.Builder addControlCategories(java.util.Collection<java.lang.String>);
-    method public androidx.mediarouter.media.MediaRouteSelector.Builder addControlCategory(java.lang.String);
+    method public androidx.mediarouter.media.MediaRouteSelector.Builder addControlCategory(String);
     method public androidx.mediarouter.media.MediaRouteSelector.Builder addSelector(androidx.mediarouter.media.MediaRouteSelector);
     method public androidx.mediarouter.media.MediaRouteSelector build();
   }
 
   public final class MediaRouter {
-    method public void addCallback(androidx.mediarouter.media.MediaRouteSelector, androidx.mediarouter.media.MediaRouter.Callback);
+    method public void addCallback(androidx.mediarouter.media.MediaRouteSelector!, androidx.mediarouter.media.MediaRouter.Callback!);
     method public void addCallback(androidx.mediarouter.media.MediaRouteSelector, androidx.mediarouter.media.MediaRouter.Callback, int);
     method public void addProvider(androidx.mediarouter.media.MediaRouteProvider);
-    method public void addRemoteControlClient(java.lang.Object);
-    method public androidx.mediarouter.media.MediaRouter.RouteInfo getBluetoothRoute();
+    method public void addRemoteControlClient(Object);
+    method public androidx.mediarouter.media.MediaRouter.RouteInfo! getBluetoothRoute();
     method public androidx.mediarouter.media.MediaRouter.RouteInfo getDefaultRoute();
-    method public static androidx.mediarouter.media.MediaRouter getInstance(android.content.Context);
-    method public android.support.v4.media.session.MediaSessionCompat.Token getMediaSessionToken();
-    method public java.util.List<androidx.mediarouter.media.MediaRouter.ProviderInfo> getProviders();
-    method public java.util.List<androidx.mediarouter.media.MediaRouter.RouteInfo> getRoutes();
+    method public static androidx.mediarouter.media.MediaRouter! getInstance(android.content.Context);
+    method public android.support.v4.media.session.MediaSessionCompat.Token! getMediaSessionToken();
+    method public java.util.List<androidx.mediarouter.media.MediaRouter.ProviderInfo>! getProviders();
+    method public java.util.List<androidx.mediarouter.media.MediaRouter.RouteInfo>! getRoutes();
     method public androidx.mediarouter.media.MediaRouter.RouteInfo getSelectedRoute();
     method public boolean isRouteAvailable(androidx.mediarouter.media.MediaRouteSelector, int);
     method public void removeCallback(androidx.mediarouter.media.MediaRouter.Callback);
     method public void removeProvider(androidx.mediarouter.media.MediaRouteProvider);
-    method public void removeRemoteControlClient(java.lang.Object);
+    method public void removeRemoteControlClient(Object);
     method public void selectRoute(androidx.mediarouter.media.MediaRouter.RouteInfo);
-    method public void setMediaSession(java.lang.Object);
-    method public void setMediaSessionCompat(android.support.v4.media.session.MediaSessionCompat);
+    method public void setMediaSession(Object!);
+    method public void setMediaSessionCompat(android.support.v4.media.session.MediaSessionCompat!);
     method public void unselect(int);
     method public androidx.mediarouter.media.MediaRouter.RouteInfo updateSelectedRoute(androidx.mediarouter.media.MediaRouteSelector);
     field public static final int AVAILABILITY_FLAG_IGNORE_DEFAULT_ROUTE = 1; // 0x1
@@ -369,54 +370,54 @@
     field public static final int UNSELECT_REASON_UNKNOWN = 0; // 0x0
   }
 
-  public static abstract class MediaRouter.Callback {
+  public abstract static class MediaRouter.Callback {
     ctor public MediaRouter.Callback();
-    method public void onProviderAdded(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.ProviderInfo);
-    method public void onProviderChanged(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.ProviderInfo);
-    method public void onProviderRemoved(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.ProviderInfo);
-    method public void onRouteAdded(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.RouteInfo);
-    method public void onRouteChanged(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.RouteInfo);
-    method public void onRoutePresentationDisplayChanged(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.RouteInfo);
-    method public void onRouteRemoved(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.RouteInfo);
-    method public void onRouteSelected(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.RouteInfo);
-    method public void onRouteUnselected(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.RouteInfo);
-    method public void onRouteUnselected(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.RouteInfo, int);
-    method public void onRouteVolumeChanged(androidx.mediarouter.media.MediaRouter, androidx.mediarouter.media.MediaRouter.RouteInfo);
+    method public void onProviderAdded(androidx.mediarouter.media.MediaRouter!, androidx.mediarouter.media.MediaRouter.ProviderInfo!);
+    method public void onProviderChanged(androidx.mediarouter.media.MediaRouter!, androidx.mediarouter.media.MediaRouter.ProviderInfo!);
+    method public void onProviderRemoved(androidx.mediarouter.media.MediaRouter!, androidx.mediarouter.media.MediaRouter.ProviderInfo!);
+    method public void onRouteAdded(androidx.mediarouter.media.MediaRouter!, androidx.mediarouter.media.MediaRouter.RouteInfo!);
+    method public void onRouteChanged(androidx.mediarouter.media.MediaRouter!, androidx.mediarouter.media.MediaRouter.RouteInfo!);
+    method public void onRoutePresentationDisplayChanged(androidx.mediarouter.media.MediaRouter!, androidx.mediarouter.media.MediaRouter.RouteInfo!);
+    method public void onRouteRemoved(androidx.mediarouter.media.MediaRouter!, androidx.mediarouter.media.MediaRouter.RouteInfo!);
+    method public void onRouteSelected(androidx.mediarouter.media.MediaRouter!, androidx.mediarouter.media.MediaRouter.RouteInfo!);
+    method public void onRouteUnselected(androidx.mediarouter.media.MediaRouter!, androidx.mediarouter.media.MediaRouter.RouteInfo!);
+    method public void onRouteUnselected(androidx.mediarouter.media.MediaRouter!, androidx.mediarouter.media.MediaRouter.RouteInfo!, int);
+    method public void onRouteVolumeChanged(androidx.mediarouter.media.MediaRouter!, androidx.mediarouter.media.MediaRouter.RouteInfo!);
   }
 
-  public static abstract class MediaRouter.ControlRequestCallback {
+  public abstract static class MediaRouter.ControlRequestCallback {
     ctor public MediaRouter.ControlRequestCallback();
-    method public void onError(java.lang.String, android.os.Bundle);
-    method public void onResult(android.os.Bundle);
+    method public void onError(String!, android.os.Bundle!);
+    method public void onResult(android.os.Bundle!);
   }
 
   public static final class MediaRouter.ProviderInfo {
-    method public android.content.ComponentName getComponentName();
-    method public java.lang.String getPackageName();
-    method public androidx.mediarouter.media.MediaRouteProvider getProviderInstance();
-    method public java.util.List<androidx.mediarouter.media.MediaRouter.RouteInfo> getRoutes();
+    method public android.content.ComponentName! getComponentName();
+    method public String! getPackageName();
+    method public androidx.mediarouter.media.MediaRouteProvider! getProviderInstance();
+    method public java.util.List<androidx.mediarouter.media.MediaRouter.RouteInfo>! getRoutes();
   }
 
   public static class MediaRouter.RouteInfo {
     method public boolean canDisconnect();
     method public int getConnectionState();
-    method public java.util.List<android.content.IntentFilter> getControlFilters();
-    method public java.lang.String getDescription();
+    method public java.util.List<android.content.IntentFilter>! getControlFilters();
+    method public String? getDescription();
     method public int getDeviceType();
-    method public android.os.Bundle getExtras();
-    method public android.net.Uri getIconUri();
-    method public java.lang.String getId();
-    method public java.lang.String getName();
+    method public android.os.Bundle? getExtras();
+    method public android.net.Uri! getIconUri();
+    method public String getId();
+    method public String! getName();
     method public int getPlaybackStream();
     method public int getPlaybackType();
-    method public android.view.Display getPresentationDisplay();
-    method public androidx.mediarouter.media.MediaRouter.ProviderInfo getProvider();
-    method public android.content.IntentSender getSettingsIntent();
+    method public android.view.Display? getPresentationDisplay();
+    method public androidx.mediarouter.media.MediaRouter.ProviderInfo! getProvider();
+    method public android.content.IntentSender? getSettingsIntent();
     method public int getVolume();
     method public int getVolumeHandling();
     method public int getVolumeMax();
     method public boolean isBluetooth();
-    method public deprecated boolean isConnecting();
+    method @Deprecated public boolean isConnecting();
     method public boolean isDefault();
     method public boolean isDeviceSpeaker();
     method public boolean isEnabled();
@@ -425,9 +426,9 @@
     method public void requestSetVolume(int);
     method public void requestUpdateVolume(int);
     method public void select();
-    method public void sendControlRequest(android.content.Intent, androidx.mediarouter.media.MediaRouter.ControlRequestCallback);
-    method public boolean supportsControlAction(java.lang.String, java.lang.String);
-    method public boolean supportsControlCategory(java.lang.String);
+    method public void sendControlRequest(android.content.Intent, androidx.mediarouter.media.MediaRouter.ControlRequestCallback?);
+    method public boolean supportsControlAction(String, String);
+    method public boolean supportsControlCategory(String);
     method public boolean supportsControlRequest(android.content.Intent);
     field public static final int CONNECTION_STATE_CONNECTED = 2; // 0x2
     field public static final int CONNECTION_STATE_CONNECTING = 1; // 0x1
@@ -441,9 +442,9 @@
   }
 
   public final class MediaSessionStatus {
-    method public android.os.Bundle asBundle();
-    method public static androidx.mediarouter.media.MediaSessionStatus fromBundle(android.os.Bundle);
-    method public android.os.Bundle getExtras();
+    method public android.os.Bundle! asBundle();
+    method public static androidx.mediarouter.media.MediaSessionStatus! fromBundle(android.os.Bundle!);
+    method public android.os.Bundle! getExtras();
     method public int getSessionState();
     method public long getTimestamp();
     method public boolean isQueuePaused();
@@ -454,64 +455,64 @@
 
   public static final class MediaSessionStatus.Builder {
     ctor public MediaSessionStatus.Builder(int);
-    ctor public MediaSessionStatus.Builder(androidx.mediarouter.media.MediaSessionStatus);
-    method public androidx.mediarouter.media.MediaSessionStatus build();
-    method public androidx.mediarouter.media.MediaSessionStatus.Builder setExtras(android.os.Bundle);
-    method public androidx.mediarouter.media.MediaSessionStatus.Builder setQueuePaused(boolean);
-    method public androidx.mediarouter.media.MediaSessionStatus.Builder setSessionState(int);
-    method public androidx.mediarouter.media.MediaSessionStatus.Builder setTimestamp(long);
+    ctor public MediaSessionStatus.Builder(androidx.mediarouter.media.MediaSessionStatus!);
+    method public androidx.mediarouter.media.MediaSessionStatus! build();
+    method public androidx.mediarouter.media.MediaSessionStatus.Builder! setExtras(android.os.Bundle!);
+    method public androidx.mediarouter.media.MediaSessionStatus.Builder! setQueuePaused(boolean);
+    method public androidx.mediarouter.media.MediaSessionStatus.Builder! setSessionState(int);
+    method public androidx.mediarouter.media.MediaSessionStatus.Builder! setTimestamp(long);
   }
 
   public class RemotePlaybackClient {
-    ctor public RemotePlaybackClient(android.content.Context, androidx.mediarouter.media.MediaRouter.RouteInfo);
-    method public void endSession(android.os.Bundle, androidx.mediarouter.media.RemotePlaybackClient.SessionActionCallback);
-    method public void enqueue(android.net.Uri, java.lang.String, android.os.Bundle, long, android.os.Bundle, androidx.mediarouter.media.RemotePlaybackClient.ItemActionCallback);
-    method public java.lang.String getSessionId();
-    method public void getSessionStatus(android.os.Bundle, androidx.mediarouter.media.RemotePlaybackClient.SessionActionCallback);
-    method public void getStatus(java.lang.String, android.os.Bundle, androidx.mediarouter.media.RemotePlaybackClient.ItemActionCallback);
+    ctor public RemotePlaybackClient(android.content.Context!, androidx.mediarouter.media.MediaRouter.RouteInfo!);
+    method public void endSession(android.os.Bundle!, androidx.mediarouter.media.RemotePlaybackClient.SessionActionCallback!);
+    method public void enqueue(android.net.Uri!, String!, android.os.Bundle!, long, android.os.Bundle!, androidx.mediarouter.media.RemotePlaybackClient.ItemActionCallback!);
+    method public String! getSessionId();
+    method public void getSessionStatus(android.os.Bundle!, androidx.mediarouter.media.RemotePlaybackClient.SessionActionCallback!);
+    method public void getStatus(String!, android.os.Bundle!, androidx.mediarouter.media.RemotePlaybackClient.ItemActionCallback!);
     method public boolean hasSession();
     method public boolean isMessagingSupported();
     method public boolean isQueuingSupported();
     method public boolean isRemotePlaybackSupported();
     method public boolean isSessionManagementSupported();
-    method public void pause(android.os.Bundle, androidx.mediarouter.media.RemotePlaybackClient.SessionActionCallback);
-    method public void play(android.net.Uri, java.lang.String, android.os.Bundle, long, android.os.Bundle, androidx.mediarouter.media.RemotePlaybackClient.ItemActionCallback);
+    method public void pause(android.os.Bundle!, androidx.mediarouter.media.RemotePlaybackClient.SessionActionCallback!);
+    method public void play(android.net.Uri!, String!, android.os.Bundle!, long, android.os.Bundle!, androidx.mediarouter.media.RemotePlaybackClient.ItemActionCallback!);
     method public void release();
-    method public void remove(java.lang.String, android.os.Bundle, androidx.mediarouter.media.RemotePlaybackClient.ItemActionCallback);
-    method public void resume(android.os.Bundle, androidx.mediarouter.media.RemotePlaybackClient.SessionActionCallback);
-    method public void seek(java.lang.String, long, android.os.Bundle, androidx.mediarouter.media.RemotePlaybackClient.ItemActionCallback);
-    method public void sendMessage(android.os.Bundle, androidx.mediarouter.media.RemotePlaybackClient.SessionActionCallback);
-    method public void setOnMessageReceivedListener(androidx.mediarouter.media.RemotePlaybackClient.OnMessageReceivedListener);
-    method public void setSessionId(java.lang.String);
-    method public void setStatusCallback(androidx.mediarouter.media.RemotePlaybackClient.StatusCallback);
-    method public void startSession(android.os.Bundle, androidx.mediarouter.media.RemotePlaybackClient.SessionActionCallback);
-    method public void stop(android.os.Bundle, androidx.mediarouter.media.RemotePlaybackClient.SessionActionCallback);
+    method public void remove(String!, android.os.Bundle!, androidx.mediarouter.media.RemotePlaybackClient.ItemActionCallback!);
+    method public void resume(android.os.Bundle!, androidx.mediarouter.media.RemotePlaybackClient.SessionActionCallback!);
+    method public void seek(String!, long, android.os.Bundle!, androidx.mediarouter.media.RemotePlaybackClient.ItemActionCallback!);
+    method public void sendMessage(android.os.Bundle!, androidx.mediarouter.media.RemotePlaybackClient.SessionActionCallback!);
+    method public void setOnMessageReceivedListener(androidx.mediarouter.media.RemotePlaybackClient.OnMessageReceivedListener!);
+    method public void setSessionId(String!);
+    method public void setStatusCallback(androidx.mediarouter.media.RemotePlaybackClient.StatusCallback!);
+    method public void startSession(android.os.Bundle!, androidx.mediarouter.media.RemotePlaybackClient.SessionActionCallback!);
+    method public void stop(android.os.Bundle!, androidx.mediarouter.media.RemotePlaybackClient.SessionActionCallback!);
   }
 
-  public static abstract class RemotePlaybackClient.ActionCallback {
+  public abstract static class RemotePlaybackClient.ActionCallback {
     ctor public RemotePlaybackClient.ActionCallback();
-    method public void onError(java.lang.String, int, android.os.Bundle);
+    method public void onError(String!, int, android.os.Bundle!);
   }
 
-  public static abstract class RemotePlaybackClient.ItemActionCallback extends androidx.mediarouter.media.RemotePlaybackClient.ActionCallback {
+  public abstract static class RemotePlaybackClient.ItemActionCallback extends androidx.mediarouter.media.RemotePlaybackClient.ActionCallback {
     ctor public RemotePlaybackClient.ItemActionCallback();
-    method public void onResult(android.os.Bundle, java.lang.String, androidx.mediarouter.media.MediaSessionStatus, java.lang.String, androidx.mediarouter.media.MediaItemStatus);
+    method public void onResult(android.os.Bundle!, String!, androidx.mediarouter.media.MediaSessionStatus!, String!, androidx.mediarouter.media.MediaItemStatus!);
   }
 
-  public static abstract interface RemotePlaybackClient.OnMessageReceivedListener {
-    method public abstract void onMessageReceived(java.lang.String, android.os.Bundle);
+  public static interface RemotePlaybackClient.OnMessageReceivedListener {
+    method public void onMessageReceived(String!, android.os.Bundle!);
   }
 
-  public static abstract class RemotePlaybackClient.SessionActionCallback extends androidx.mediarouter.media.RemotePlaybackClient.ActionCallback {
+  public abstract static class RemotePlaybackClient.SessionActionCallback extends androidx.mediarouter.media.RemotePlaybackClient.ActionCallback {
     ctor public RemotePlaybackClient.SessionActionCallback();
-    method public void onResult(android.os.Bundle, java.lang.String, androidx.mediarouter.media.MediaSessionStatus);
+    method public void onResult(android.os.Bundle!, String!, androidx.mediarouter.media.MediaSessionStatus!);
   }
 
-  public static abstract class RemotePlaybackClient.StatusCallback {
+  public abstract static class RemotePlaybackClient.StatusCallback {
     ctor public RemotePlaybackClient.StatusCallback();
-    method public void onItemStatusChanged(android.os.Bundle, java.lang.String, androidx.mediarouter.media.MediaSessionStatus, java.lang.String, androidx.mediarouter.media.MediaItemStatus);
-    method public void onSessionChanged(java.lang.String);
-    method public void onSessionStatusChanged(android.os.Bundle, java.lang.String, androidx.mediarouter.media.MediaSessionStatus);
+    method public void onItemStatusChanged(android.os.Bundle!, String!, androidx.mediarouter.media.MediaSessionStatus!, String!, androidx.mediarouter.media.MediaItemStatus!);
+    method public void onSessionChanged(String!);
+    method public void onSessionStatusChanged(android.os.Bundle!, String!, androidx.mediarouter.media.MediaSessionStatus!);
   }
 
 }
diff --git a/paging/common/api/current.txt b/paging/common/api/current.txt
index 7bfadcb..c8e0be1 100644
--- a/paging/common/api/current.txt
+++ b/paging/common/api/current.txt
@@ -1,49 +1,49 @@
+// Signature format: 2.0
 package androidx.paging {
 
   public abstract class DataSource<Key, Value> {
-    method public void addInvalidatedCallback(androidx.paging.DataSource.InvalidatedCallback);
-    method public void invalidate();
-    method public boolean isInvalid();
-    method public abstract <ToValue> androidx.paging.DataSource<Key, ToValue> map(androidx.arch.core.util.Function<Value, ToValue>);
-    method public abstract <ToValue> androidx.paging.DataSource<Key, ToValue> mapByPage(androidx.arch.core.util.Function<java.util.List<Value>, java.util.List<ToValue>>);
-    method public void removeInvalidatedCallback(androidx.paging.DataSource.InvalidatedCallback);
+    method @AnyThread public void addInvalidatedCallback(androidx.paging.DataSource.InvalidatedCallback);
+    method @AnyThread public void invalidate();
+    method @WorkerThread public boolean isInvalid();
+    method public abstract <ToValue> androidx.paging.DataSource<Key,ToValue> map(androidx.arch.core.util.Function<Value,ToValue>);
+    method public abstract <ToValue> androidx.paging.DataSource<Key,ToValue> mapByPage(androidx.arch.core.util.Function<java.util.List<Value>,java.util.List<ToValue>>);
+    method @AnyThread public void removeInvalidatedCallback(androidx.paging.DataSource.InvalidatedCallback);
   }
 
-  public static abstract class DataSource.Factory<Key, Value> {
+  public abstract static class DataSource.Factory<Key, Value> {
     ctor public DataSource.Factory();
-    method public abstract androidx.paging.DataSource<Key, Value> create();
-    method public <ToValue> androidx.paging.DataSource.Factory<Key, ToValue> map(androidx.arch.core.util.Function<Value, ToValue>);
-    method public <ToValue> androidx.paging.DataSource.Factory<Key, ToValue> mapByPage(androidx.arch.core.util.Function<java.util.List<Value>, java.util.List<ToValue>>);
+    method public abstract androidx.paging.DataSource<Key,Value> create();
+    method public <ToValue> androidx.paging.DataSource.Factory<Key,ToValue> map(androidx.arch.core.util.Function<Value,ToValue>);
+    method public <ToValue> androidx.paging.DataSource.Factory<Key,ToValue> mapByPage(androidx.arch.core.util.Function<java.util.List<Value>,java.util.List<ToValue>>);
   }
 
-  public static abstract interface DataSource.InvalidatedCallback {
-    method public abstract void onInvalidated();
+  public static interface DataSource.InvalidatedCallback {
+    method @AnyThread public void onInvalidated();
   }
 
-  public abstract class ItemKeyedDataSource<Key, Value> extends androidx.paging.DataSource {
-    ctor public ItemKeyedDataSource();
+  public abstract class ItemKeyedDataSource<Key, Value> extends androidx.paging.DataSource<Key,Value> {
     method public abstract Key getKey(Value);
     method public abstract void loadAfter(androidx.paging.ItemKeyedDataSource.LoadParams<Key>, androidx.paging.ItemKeyedDataSource.LoadCallback<Value>);
     method public abstract void loadBefore(androidx.paging.ItemKeyedDataSource.LoadParams<Key>, androidx.paging.ItemKeyedDataSource.LoadCallback<Value>);
     method public abstract void loadInitial(androidx.paging.ItemKeyedDataSource.LoadInitialParams<Key>, androidx.paging.ItemKeyedDataSource.LoadInitialCallback<Value>);
-    method public final <ToValue> androidx.paging.ItemKeyedDataSource<Key, ToValue> map(androidx.arch.core.util.Function<Value, ToValue>);
-    method public final <ToValue> androidx.paging.ItemKeyedDataSource<Key, ToValue> mapByPage(androidx.arch.core.util.Function<java.util.List<Value>, java.util.List<ToValue>>);
+    method public final <ToValue> androidx.paging.ItemKeyedDataSource<Key,ToValue> map(androidx.arch.core.util.Function<Value,ToValue>);
+    method public final <ToValue> androidx.paging.ItemKeyedDataSource<Key,ToValue> mapByPage(androidx.arch.core.util.Function<java.util.List<Value>,java.util.List<ToValue>>);
   }
 
-  public static abstract class ItemKeyedDataSource.LoadCallback<Value> {
+  public abstract static class ItemKeyedDataSource.LoadCallback<Value> {
     ctor public ItemKeyedDataSource.LoadCallback();
     method public abstract void onResult(java.util.List<Value>);
   }
 
-  public static abstract class ItemKeyedDataSource.LoadInitialCallback<Value> extends androidx.paging.ItemKeyedDataSource.LoadCallback {
+  public abstract static class ItemKeyedDataSource.LoadInitialCallback<Value> extends androidx.paging.ItemKeyedDataSource.LoadCallback<Value> {
     ctor public ItemKeyedDataSource.LoadInitialCallback();
     method public abstract void onResult(java.util.List<Value>, int, int);
   }
 
   public static class ItemKeyedDataSource.LoadInitialParams<Key> {
-    ctor public ItemKeyedDataSource.LoadInitialParams(Key, int, boolean);
+    ctor public ItemKeyedDataSource.LoadInitialParams(Key?, int, boolean);
     field public final boolean placeholdersEnabled;
-    field public final Key requestedInitialKey;
+    field public final Key? requestedInitialKey;
     field public final int requestedLoadSize;
   }
 
@@ -53,24 +53,23 @@
     field public final int requestedLoadSize;
   }
 
-  public abstract class PageKeyedDataSource<Key, Value> extends androidx.paging.DataSource {
-    ctor public PageKeyedDataSource();
-    method public abstract void loadAfter(androidx.paging.PageKeyedDataSource.LoadParams<Key>, androidx.paging.PageKeyedDataSource.LoadCallback<Key, Value>);
-    method public abstract void loadBefore(androidx.paging.PageKeyedDataSource.LoadParams<Key>, androidx.paging.PageKeyedDataSource.LoadCallback<Key, Value>);
-    method public abstract void loadInitial(androidx.paging.PageKeyedDataSource.LoadInitialParams<Key>, androidx.paging.PageKeyedDataSource.LoadInitialCallback<Key, Value>);
-    method public final <ToValue> androidx.paging.PageKeyedDataSource<Key, ToValue> map(androidx.arch.core.util.Function<Value, ToValue>);
-    method public final <ToValue> androidx.paging.PageKeyedDataSource<Key, ToValue> mapByPage(androidx.arch.core.util.Function<java.util.List<Value>, java.util.List<ToValue>>);
+  public abstract class PageKeyedDataSource<Key, Value> extends androidx.paging.DataSource<Key,Value> {
+    method public abstract void loadAfter(androidx.paging.PageKeyedDataSource.LoadParams<Key>, androidx.paging.PageKeyedDataSource.LoadCallback<Key,Value>);
+    method public abstract void loadBefore(androidx.paging.PageKeyedDataSource.LoadParams<Key>, androidx.paging.PageKeyedDataSource.LoadCallback<Key,Value>);
+    method public abstract void loadInitial(androidx.paging.PageKeyedDataSource.LoadInitialParams<Key>, androidx.paging.PageKeyedDataSource.LoadInitialCallback<Key,Value>);
+    method public final <ToValue> androidx.paging.PageKeyedDataSource<Key,ToValue> map(androidx.arch.core.util.Function<Value,ToValue>);
+    method public final <ToValue> androidx.paging.PageKeyedDataSource<Key,ToValue> mapByPage(androidx.arch.core.util.Function<java.util.List<Value>,java.util.List<ToValue>>);
   }
 
-  public static abstract class PageKeyedDataSource.LoadCallback<Key, Value> {
+  public abstract static class PageKeyedDataSource.LoadCallback<Key, Value> {
     ctor public PageKeyedDataSource.LoadCallback();
-    method public abstract void onResult(java.util.List<Value>, Key);
+    method public abstract void onResult(java.util.List<Value>, Key?);
   }
 
-  public static abstract class PageKeyedDataSource.LoadInitialCallback<Key, Value> {
+  public abstract static class PageKeyedDataSource.LoadInitialCallback<Key, Value> {
     ctor public PageKeyedDataSource.LoadInitialCallback();
-    method public abstract void onResult(java.util.List<Value>, int, int, Key, Key);
-    method public abstract void onResult(java.util.List<Value>, Key, Key);
+    method public abstract void onResult(java.util.List<Value>, int, int, Key?, Key?);
+    method public abstract void onResult(java.util.List<Value>, Key?, Key?);
   }
 
   public static class PageKeyedDataSource.LoadInitialParams<Key> {
@@ -85,13 +84,13 @@
     field public final int requestedLoadSize;
   }
 
-  public abstract class PagedList<T> extends java.util.AbstractList {
-    method public void addWeakCallback(java.util.List<T>, androidx.paging.PagedList.Callback);
+  public abstract class PagedList<T> extends java.util.AbstractList<T> {
+    method public void addWeakCallback(java.util.List<T>?, androidx.paging.PagedList.Callback);
     method public void detach();
-    method public T get(int);
+    method public T? get(int);
     method public androidx.paging.PagedList.Config getConfig();
-    method public abstract androidx.paging.DataSource<?, T> getDataSource();
-    method public abstract java.lang.Object getLastKey();
+    method public abstract androidx.paging.DataSource<?,T> getDataSource();
+    method public abstract Object? getLastKey();
     method public int getLoadedCount();
     method public int getPositionOffset();
     method public boolean isDetached();
@@ -102,7 +101,7 @@
     method public java.util.List<T> snapshot();
   }
 
-  public static abstract class PagedList.BoundaryCallback<T> {
+  @MainThread public abstract static class PagedList.BoundaryCallback<T> {
     ctor public PagedList.BoundaryCallback();
     method public void onItemAtEndLoaded(T);
     method public void onItemAtFrontLoaded(T);
@@ -110,16 +109,16 @@
   }
 
   public static final class PagedList.Builder<Key, Value> {
-    ctor public PagedList.Builder(androidx.paging.DataSource<Key, Value>, androidx.paging.PagedList.Config);
-    ctor public PagedList.Builder(androidx.paging.DataSource<Key, Value>, int);
-    method public androidx.paging.PagedList<Value> build();
-    method public androidx.paging.PagedList.Builder<Key, Value> setBoundaryCallback(androidx.paging.PagedList.BoundaryCallback);
-    method public androidx.paging.PagedList.Builder<Key, Value> setFetchExecutor(java.util.concurrent.Executor);
-    method public androidx.paging.PagedList.Builder<Key, Value> setInitialKey(Key);
-    method public androidx.paging.PagedList.Builder<Key, Value> setNotifyExecutor(java.util.concurrent.Executor);
+    ctor public PagedList.Builder(androidx.paging.DataSource<Key,Value>, androidx.paging.PagedList.Config);
+    ctor public PagedList.Builder(androidx.paging.DataSource<Key,Value>, int);
+    method @WorkerThread public androidx.paging.PagedList<Value> build();
+    method public androidx.paging.PagedList.Builder<Key,Value> setBoundaryCallback(androidx.paging.PagedList.BoundaryCallback?);
+    method public androidx.paging.PagedList.Builder<Key,Value> setFetchExecutor(java.util.concurrent.Executor);
+    method public androidx.paging.PagedList.Builder<Key,Value> setInitialKey(Key?);
+    method public androidx.paging.PagedList.Builder<Key,Value> setNotifyExecutor(java.util.concurrent.Executor);
   }
 
-  public static abstract class PagedList.Callback {
+  public abstract static class PagedList.Callback {
     ctor public PagedList.Callback();
     method public abstract void onChanged(int, int);
     method public abstract void onInserted(int, int);
@@ -139,23 +138,22 @@
     ctor public PagedList.Config.Builder();
     method public androidx.paging.PagedList.Config build();
     method public androidx.paging.PagedList.Config.Builder setEnablePlaceholders(boolean);
-    method public androidx.paging.PagedList.Config.Builder setInitialLoadSizeHint(int);
-    method public androidx.paging.PagedList.Config.Builder setMaxSize(int);
-    method public androidx.paging.PagedList.Config.Builder setPageSize(int);
-    method public androidx.paging.PagedList.Config.Builder setPrefetchDistance(int);
+    method public androidx.paging.PagedList.Config.Builder setInitialLoadSizeHint(@IntRange(from=1) int);
+    method public androidx.paging.PagedList.Config.Builder setMaxSize(@IntRange(from=2) int);
+    method public androidx.paging.PagedList.Config.Builder setPageSize(@IntRange(from=1) int);
+    method public androidx.paging.PagedList.Config.Builder setPrefetchDistance(@IntRange(from=0) int);
   }
 
-  public abstract class PositionalDataSource<T> extends androidx.paging.DataSource {
-    ctor public PositionalDataSource();
+  public abstract class PositionalDataSource<T> extends androidx.paging.DataSource<java.lang.Integer,T> {
     method public static int computeInitialLoadPosition(androidx.paging.PositionalDataSource.LoadInitialParams, int);
     method public static int computeInitialLoadSize(androidx.paging.PositionalDataSource.LoadInitialParams, int, int);
-    method public abstract void loadInitial(androidx.paging.PositionalDataSource.LoadInitialParams, androidx.paging.PositionalDataSource.LoadInitialCallback<T>);
-    method public abstract void loadRange(androidx.paging.PositionalDataSource.LoadRangeParams, androidx.paging.PositionalDataSource.LoadRangeCallback<T>);
-    method public final <V> androidx.paging.PositionalDataSource<V> map(androidx.arch.core.util.Function<T, V>);
-    method public final <V> androidx.paging.PositionalDataSource<V> mapByPage(androidx.arch.core.util.Function<java.util.List<T>, java.util.List<V>>);
+    method @WorkerThread public abstract void loadInitial(androidx.paging.PositionalDataSource.LoadInitialParams, androidx.paging.PositionalDataSource.LoadInitialCallback<T>);
+    method @WorkerThread public abstract void loadRange(androidx.paging.PositionalDataSource.LoadRangeParams, androidx.paging.PositionalDataSource.LoadRangeCallback<T>);
+    method public final <V> androidx.paging.PositionalDataSource<V> map(androidx.arch.core.util.Function<T,V>);
+    method public final <V> androidx.paging.PositionalDataSource<V> mapByPage(androidx.arch.core.util.Function<java.util.List<T>,java.util.List<V>>);
   }
 
-  public static abstract class PositionalDataSource.LoadInitialCallback<T> {
+  public abstract static class PositionalDataSource.LoadInitialCallback<T> {
     ctor public PositionalDataSource.LoadInitialCallback();
     method public abstract void onResult(java.util.List<T>, int, int);
     method public abstract void onResult(java.util.List<T>, int);
@@ -169,7 +167,7 @@
     field public final int requestedStartPosition;
   }
 
-  public static abstract class PositionalDataSource.LoadRangeCallback<T> {
+  public abstract static class PositionalDataSource.LoadRangeCallback<T> {
     ctor public PositionalDataSource.LoadRangeCallback();
     method public abstract void onResult(java.util.List<T>);
   }
diff --git a/paging/runtime/api/current.txt b/paging/runtime/api/current.txt
index ad82afd..0f658df 100644
--- a/paging/runtime/api/current.txt
+++ b/paging/runtime/api/current.txt
@@ -1,40 +1,41 @@
+// Signature format: 2.0
 package androidx.paging {
 
   public class AsyncPagedListDiffer<T> {
     ctor public AsyncPagedListDiffer(androidx.recyclerview.widget.RecyclerView.Adapter, androidx.recyclerview.widget.DiffUtil.ItemCallback<T>);
     ctor public AsyncPagedListDiffer(androidx.recyclerview.widget.ListUpdateCallback, androidx.recyclerview.widget.AsyncDifferConfig<T>);
     method public void addPagedListListener(androidx.paging.AsyncPagedListDiffer.PagedListListener<T>);
-    method public androidx.paging.PagedList<T> getCurrentList();
-    method public T getItem(int);
+    method public androidx.paging.PagedList<T>? getCurrentList();
+    method public T? getItem(int);
     method public int getItemCount();
     method public void removePagedListListener(androidx.paging.AsyncPagedListDiffer.PagedListListener<T>);
-    method public void submitList(androidx.paging.PagedList<T>);
-    method public void submitList(androidx.paging.PagedList<T>, java.lang.Runnable);
+    method public void submitList(androidx.paging.PagedList<T>?);
+    method public void submitList(androidx.paging.PagedList<T>?, Runnable?);
   }
 
-  public static abstract interface AsyncPagedListDiffer.PagedListListener<T> {
-    method public abstract void onCurrentListChanged(androidx.paging.PagedList<T>, androidx.paging.PagedList<T>);
+  public static interface AsyncPagedListDiffer.PagedListListener<T> {
+    method public void onCurrentListChanged(androidx.paging.PagedList<T>?, androidx.paging.PagedList<T>?);
   }
 
   public final class LivePagedListBuilder<Key, Value> {
-    ctor public LivePagedListBuilder(androidx.paging.DataSource.Factory<Key, Value>, androidx.paging.PagedList.Config);
-    ctor public LivePagedListBuilder(androidx.paging.DataSource.Factory<Key, Value>, int);
+    ctor public LivePagedListBuilder(androidx.paging.DataSource.Factory<Key,Value>, androidx.paging.PagedList.Config);
+    ctor public LivePagedListBuilder(androidx.paging.DataSource.Factory<Key,Value>, int);
     method public androidx.lifecycle.LiveData<androidx.paging.PagedList<Value>> build();
-    method public androidx.paging.LivePagedListBuilder<Key, Value> setBoundaryCallback(androidx.paging.PagedList.BoundaryCallback<Value>);
-    method public androidx.paging.LivePagedListBuilder<Key, Value> setFetchExecutor(java.util.concurrent.Executor);
-    method public androidx.paging.LivePagedListBuilder<Key, Value> setInitialLoadKey(Key);
+    method public androidx.paging.LivePagedListBuilder<Key,Value> setBoundaryCallback(androidx.paging.PagedList.BoundaryCallback<Value>?);
+    method public androidx.paging.LivePagedListBuilder<Key,Value> setFetchExecutor(java.util.concurrent.Executor);
+    method public androidx.paging.LivePagedListBuilder<Key,Value> setInitialLoadKey(Key?);
   }
 
-  public abstract class PagedListAdapter<T, VH extends androidx.recyclerview.widget.RecyclerView.ViewHolder> extends androidx.recyclerview.widget.RecyclerView.Adapter {
+  public abstract class PagedListAdapter<T, VH extends androidx.recyclerview.widget.RecyclerView.ViewHolder> extends androidx.recyclerview.widget.RecyclerView.Adapter<VH> {
     ctor protected PagedListAdapter(androidx.recyclerview.widget.DiffUtil.ItemCallback<T>);
     ctor protected PagedListAdapter(androidx.recyclerview.widget.AsyncDifferConfig<T>);
-    method public androidx.paging.PagedList<T> getCurrentList();
-    method protected T getItem(int);
+    method public androidx.paging.PagedList<T>? getCurrentList();
+    method protected T? getItem(int);
     method public int getItemCount();
-    method public deprecated void onCurrentListChanged(androidx.paging.PagedList<T>);
-    method public void onCurrentListChanged(androidx.paging.PagedList<T>, androidx.paging.PagedList<T>);
-    method public void submitList(androidx.paging.PagedList<T>);
-    method public void submitList(androidx.paging.PagedList<T>, java.lang.Runnable);
+    method @Deprecated public void onCurrentListChanged(androidx.paging.PagedList<T>?);
+    method public void onCurrentListChanged(androidx.paging.PagedList<T>?, androidx.paging.PagedList<T>?);
+    method public void submitList(androidx.paging.PagedList<T>?);
+    method public void submitList(androidx.paging.PagedList<T>?, Runnable?);
   }
 
 }
diff --git a/paging/rxjava2/api/current.txt b/paging/rxjava2/api/current.txt
index 9036be4..067f422 100644
--- a/paging/rxjava2/api/current.txt
+++ b/paging/rxjava2/api/current.txt
@@ -1,14 +1,15 @@
+// Signature format: 2.0
 package androidx.paging {
 
   public final class RxPagedListBuilder<Key, Value> {
-    ctor public RxPagedListBuilder(androidx.paging.DataSource.Factory<Key, Value>, androidx.paging.PagedList.Config);
-    ctor public RxPagedListBuilder(androidx.paging.DataSource.Factory<Key, Value>, int);
+    ctor public RxPagedListBuilder(androidx.paging.DataSource.Factory<Key,Value>, androidx.paging.PagedList.Config);
+    ctor public RxPagedListBuilder(androidx.paging.DataSource.Factory<Key,Value>, int);
     method public io.reactivex.Flowable<androidx.paging.PagedList<Value>> buildFlowable(io.reactivex.BackpressureStrategy);
     method public io.reactivex.Observable<androidx.paging.PagedList<Value>> buildObservable();
-    method public androidx.paging.RxPagedListBuilder<Key, Value> setBoundaryCallback(androidx.paging.PagedList.BoundaryCallback<Value>);
-    method public androidx.paging.RxPagedListBuilder<Key, Value> setFetchScheduler(io.reactivex.Scheduler);
-    method public androidx.paging.RxPagedListBuilder<Key, Value> setInitialLoadKey(Key);
-    method public androidx.paging.RxPagedListBuilder<Key, Value> setNotifyScheduler(io.reactivex.Scheduler);
+    method public androidx.paging.RxPagedListBuilder<Key,Value> setBoundaryCallback(androidx.paging.PagedList.BoundaryCallback<Value>?);
+    method public androidx.paging.RxPagedListBuilder<Key,Value> setFetchScheduler(io.reactivex.Scheduler);
+    method public androidx.paging.RxPagedListBuilder<Key,Value> setInitialLoadKey(Key?);
+    method public androidx.paging.RxPagedListBuilder<Key,Value> setNotifyScheduler(io.reactivex.Scheduler);
   }
 
 }
diff --git a/palette/api/1.0.0.txt b/palette/api/1.0.0.txt
index 04657c9..33fbc68 100644
--- a/palette/api/1.0.0.txt
+++ b/palette/api/1.0.0.txt
@@ -1,30 +1,31 @@
+// Signature format: 2.0
 package androidx.palette.graphics {
 
   public final class Palette {
     method public static androidx.palette.graphics.Palette.Builder from(android.graphics.Bitmap);
     method public static androidx.palette.graphics.Palette from(java.util.List<androidx.palette.graphics.Palette.Swatch>);
-    method public static deprecated androidx.palette.graphics.Palette generate(android.graphics.Bitmap);
-    method public static deprecated androidx.palette.graphics.Palette generate(android.graphics.Bitmap, int);
-    method public static deprecated android.os.AsyncTask<android.graphics.Bitmap, java.lang.Void, androidx.palette.graphics.Palette> generateAsync(android.graphics.Bitmap, androidx.palette.graphics.Palette.PaletteAsyncListener);
-    method public static deprecated android.os.AsyncTask<android.graphics.Bitmap, java.lang.Void, androidx.palette.graphics.Palette> generateAsync(android.graphics.Bitmap, int, androidx.palette.graphics.Palette.PaletteAsyncListener);
-    method public int getColorForTarget(androidx.palette.graphics.Target, int);
-    method public int getDarkMutedColor(int);
-    method public androidx.palette.graphics.Palette.Swatch getDarkMutedSwatch();
-    method public int getDarkVibrantColor(int);
-    method public androidx.palette.graphics.Palette.Swatch getDarkVibrantSwatch();
-    method public int getDominantColor(int);
-    method public androidx.palette.graphics.Palette.Swatch getDominantSwatch();
-    method public int getLightMutedColor(int);
-    method public androidx.palette.graphics.Palette.Swatch getLightMutedSwatch();
-    method public int getLightVibrantColor(int);
-    method public androidx.palette.graphics.Palette.Swatch getLightVibrantSwatch();
-    method public int getMutedColor(int);
-    method public androidx.palette.graphics.Palette.Swatch getMutedSwatch();
-    method public androidx.palette.graphics.Palette.Swatch getSwatchForTarget(androidx.palette.graphics.Target);
+    method @Deprecated public static androidx.palette.graphics.Palette generate(android.graphics.Bitmap);
+    method @Deprecated public static androidx.palette.graphics.Palette generate(android.graphics.Bitmap, int);
+    method @Deprecated public static android.os.AsyncTask<android.graphics.Bitmap,java.lang.Void,androidx.palette.graphics.Palette> generateAsync(android.graphics.Bitmap, androidx.palette.graphics.Palette.PaletteAsyncListener);
+    method @Deprecated public static android.os.AsyncTask<android.graphics.Bitmap,java.lang.Void,androidx.palette.graphics.Palette> generateAsync(android.graphics.Bitmap, int, androidx.palette.graphics.Palette.PaletteAsyncListener);
+    method @ColorInt public int getColorForTarget(androidx.palette.graphics.Target, @ColorInt int);
+    method @ColorInt public int getDarkMutedColor(@ColorInt int);
+    method public androidx.palette.graphics.Palette.Swatch? getDarkMutedSwatch();
+    method @ColorInt public int getDarkVibrantColor(@ColorInt int);
+    method public androidx.palette.graphics.Palette.Swatch? getDarkVibrantSwatch();
+    method @ColorInt public int getDominantColor(@ColorInt int);
+    method public androidx.palette.graphics.Palette.Swatch? getDominantSwatch();
+    method @ColorInt public int getLightMutedColor(@ColorInt int);
+    method public androidx.palette.graphics.Palette.Swatch? getLightMutedSwatch();
+    method @ColorInt public int getLightVibrantColor(@ColorInt int);
+    method public androidx.palette.graphics.Palette.Swatch? getLightVibrantSwatch();
+    method @ColorInt public int getMutedColor(@ColorInt int);
+    method public androidx.palette.graphics.Palette.Swatch? getMutedSwatch();
+    method public androidx.palette.graphics.Palette.Swatch? getSwatchForTarget(androidx.palette.graphics.Target);
     method public java.util.List<androidx.palette.graphics.Palette.Swatch> getSwatches();
     method public java.util.List<androidx.palette.graphics.Target> getTargets();
-    method public int getVibrantColor(int);
-    method public androidx.palette.graphics.Palette.Swatch getVibrantSwatch();
+    method @ColorInt public int getVibrantColor(@ColorInt int);
+    method public androidx.palette.graphics.Palette.Swatch? getVibrantSwatch();
   }
 
   public static final class Palette.Builder {
@@ -36,40 +37,40 @@
     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 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 public deprecated androidx.palette.graphics.Palette.Builder resizeBitmapSize(int);
-    method public androidx.palette.graphics.Palette.Builder setRegion(int, int, int, int);
+    method @Deprecated public androidx.palette.graphics.Palette.Builder resizeBitmapSize(int);
+    method public androidx.palette.graphics.Palette.Builder setRegion(@Px int, @Px int, @Px int, @Px int);
   }
 
-  public static abstract interface Palette.Filter {
-    method public abstract boolean isAllowed(int, float[]);
+  public static interface Palette.Filter {
+    method public boolean isAllowed(@ColorInt int, float[]);
   }
 
-  public static abstract interface Palette.PaletteAsyncListener {
-    method public abstract void onGenerated(androidx.palette.graphics.Palette);
+  public static interface Palette.PaletteAsyncListener {
+    method public void onGenerated(androidx.palette.graphics.Palette?);
   }
 
   public static final class Palette.Swatch {
-    ctor public Palette.Swatch(int, int);
-    method public int getBodyTextColor();
+    ctor public Palette.Swatch(@ColorInt int, int);
+    method @ColorInt public int getBodyTextColor();
     method public float[] getHsl();
     method public int getPopulation();
-    method public int getRgb();
-    method public int getTitleTextColor();
+    method @ColorInt public int getRgb();
+    method @ColorInt public int getTitleTextColor();
   }
 
   public final class Target {
     method public float getLightnessWeight();
-    method public float getMaximumLightness();
-    method public float getMaximumSaturation();
-    method public float getMinimumLightness();
-    method public float getMinimumSaturation();
+    method @FloatRange(from=0, to=1) public float getMaximumLightness();
+    method @FloatRange(from=0, to=1) public float getMaximumSaturation();
+    method @FloatRange(from=0, to=1) public float getMinimumLightness();
+    method @FloatRange(from=0, to=1) public float getMinimumSaturation();
     method public float getPopulationWeight();
     method public float getSaturationWeight();
-    method public float getTargetLightness();
-    method public float getTargetSaturation();
+    method @FloatRange(from=0, to=1) public float getTargetLightness();
+    method @FloatRange(from=0, to=1) public float getTargetSaturation();
     method public boolean isExclusive();
     field public static final androidx.palette.graphics.Target DARK_MUTED;
     field public static final androidx.palette.graphics.Target DARK_VIBRANT;
@@ -84,15 +85,15 @@
     ctor public Target.Builder(androidx.palette.graphics.Target);
     method public androidx.palette.graphics.Target build();
     method public androidx.palette.graphics.Target.Builder setExclusive(boolean);
-    method public androidx.palette.graphics.Target.Builder setLightnessWeight(float);
-    method public androidx.palette.graphics.Target.Builder setMaximumLightness(float);
-    method public androidx.palette.graphics.Target.Builder setMaximumSaturation(float);
-    method public androidx.palette.graphics.Target.Builder setMinimumLightness(float);
-    method public androidx.palette.graphics.Target.Builder setMinimumSaturation(float);
-    method public androidx.palette.graphics.Target.Builder setPopulationWeight(float);
-    method public androidx.palette.graphics.Target.Builder setSaturationWeight(float);
-    method public androidx.palette.graphics.Target.Builder setTargetLightness(float);
-    method public androidx.palette.graphics.Target.Builder setTargetSaturation(float);
+    method public androidx.palette.graphics.Target.Builder setLightnessWeight(@FloatRange(from=0) float);
+    method public androidx.palette.graphics.Target.Builder setMaximumLightness(@FloatRange(from=0, to=1) float);
+    method public androidx.palette.graphics.Target.Builder setMaximumSaturation(@FloatRange(from=0, to=1) float);
+    method public androidx.palette.graphics.Target.Builder setMinimumLightness(@FloatRange(from=0, to=1) float);
+    method public androidx.palette.graphics.Target.Builder setMinimumSaturation(@FloatRange(from=0, to=1) float);
+    method public androidx.palette.graphics.Target.Builder setPopulationWeight(@FloatRange(from=0) float);
+    method public androidx.palette.graphics.Target.Builder setSaturationWeight(@FloatRange(from=0) float);
+    method public androidx.palette.graphics.Target.Builder setTargetLightness(@FloatRange(from=0, to=1) float);
+    method public androidx.palette.graphics.Target.Builder setTargetSaturation(@FloatRange(from=0, to=1) float);
   }
 
 }
diff --git a/percent/api/1.0.0.txt b/percent/api/1.0.0.txt
index deeaae7..0a80f73 100644
--- a/percent/api/1.0.0.txt
+++ b/percent/api/1.0.0.txt
@@ -1,69 +1,77 @@
+// Signature format: 2.0
 package androidx.percentlayout.widget {
 
-  public deprecated class PercentFrameLayout extends android.widget.FrameLayout {
-    ctor public PercentFrameLayout(android.content.Context);
-    ctor public PercentFrameLayout(android.content.Context, android.util.AttributeSet);
-    ctor public PercentFrameLayout(android.content.Context, android.util.AttributeSet, int);
-    method protected androidx.percentlayout.widget.PercentFrameLayout.LayoutParams generateDefaultLayoutParams();
-    method public androidx.percentlayout.widget.PercentFrameLayout.LayoutParams generateLayoutParams(android.util.AttributeSet);
+  @Deprecated public class PercentFrameLayout extends android.widget.FrameLayout {
+    ctor @Deprecated public PercentFrameLayout(android.content.Context!);
+    ctor @Deprecated public PercentFrameLayout(android.content.Context!, android.util.AttributeSet!);
+    ctor @Deprecated public PercentFrameLayout(android.content.Context!, android.util.AttributeSet!, int);
+    method @Deprecated protected androidx.percentlayout.widget.PercentFrameLayout.LayoutParams! generateDefaultLayoutParams();
+    method @Deprecated public androidx.percentlayout.widget.PercentFrameLayout.LayoutParams! generateLayoutParams(android.util.AttributeSet!);
+    method @Deprecated protected void onLayout(boolean, int, int, int, int);
+    method @Deprecated protected void onMeasure(int, int);
   }
 
-  public static deprecated class PercentFrameLayout.LayoutParams extends android.widget.FrameLayout.LayoutParams implements androidx.percentlayout.widget.PercentLayoutHelper.PercentLayoutParams {
-    ctor public PercentFrameLayout.LayoutParams(android.content.Context, android.util.AttributeSet);
-    ctor public PercentFrameLayout.LayoutParams(int, int);
-    ctor public PercentFrameLayout.LayoutParams(int, int, int);
-    ctor public PercentFrameLayout.LayoutParams(android.view.ViewGroup.LayoutParams);
-    ctor public PercentFrameLayout.LayoutParams(android.view.ViewGroup.MarginLayoutParams);
-    ctor public PercentFrameLayout.LayoutParams(android.widget.FrameLayout.LayoutParams);
-    ctor public PercentFrameLayout.LayoutParams(androidx.percentlayout.widget.PercentFrameLayout.LayoutParams);
-    method public androidx.percentlayout.widget.PercentLayoutHelper.PercentLayoutInfo getPercentLayoutInfo();
+  @Deprecated public static class PercentFrameLayout.LayoutParams extends android.widget.FrameLayout.LayoutParams implements androidx.percentlayout.widget.PercentLayoutHelper.PercentLayoutParams {
+    ctor @Deprecated public PercentFrameLayout.LayoutParams(android.content.Context!, android.util.AttributeSet!);
+    ctor @Deprecated public PercentFrameLayout.LayoutParams(int, int);
+    ctor @Deprecated public PercentFrameLayout.LayoutParams(int, int, int);
+    ctor @Deprecated public PercentFrameLayout.LayoutParams(android.view.ViewGroup.LayoutParams!);
+    ctor @Deprecated public PercentFrameLayout.LayoutParams(android.view.ViewGroup.MarginLayoutParams!);
+    ctor @Deprecated public PercentFrameLayout.LayoutParams(android.widget.FrameLayout.LayoutParams!);
+    ctor @Deprecated @RequiresApi(19) public PercentFrameLayout.LayoutParams(androidx.percentlayout.widget.PercentFrameLayout.LayoutParams!);
+    method @Deprecated public androidx.percentlayout.widget.PercentLayoutHelper.PercentLayoutInfo! getPercentLayoutInfo();
+    method @Deprecated protected void setBaseAttributes(android.content.res.TypedArray!, int, int);
   }
 
-  public deprecated class PercentLayoutHelper {
-    ctor public PercentLayoutHelper(android.view.ViewGroup);
-    method public void adjustChildren(int, int);
-    method public static void fetchWidthAndHeight(android.view.ViewGroup.LayoutParams, android.content.res.TypedArray, int, int);
-    method public static androidx.percentlayout.widget.PercentLayoutHelper.PercentLayoutInfo getPercentLayoutInfo(android.content.Context, android.util.AttributeSet);
-    method public boolean handleMeasuredStateTooSmall();
-    method public void restoreOriginalParams();
+  @Deprecated public class PercentLayoutHelper {
+    ctor @Deprecated public PercentLayoutHelper(android.view.ViewGroup);
+    method @Deprecated public void adjustChildren(int, int);
+    method @Deprecated public static void fetchWidthAndHeight(android.view.ViewGroup.LayoutParams!, android.content.res.TypedArray!, int, int);
+    method @Deprecated public static androidx.percentlayout.widget.PercentLayoutHelper.PercentLayoutInfo! getPercentLayoutInfo(android.content.Context!, android.util.AttributeSet!);
+    method @Deprecated public boolean handleMeasuredStateTooSmall();
+    method @Deprecated public void restoreOriginalParams();
   }
 
-  public static deprecated class PercentLayoutHelper.PercentLayoutInfo {
-    ctor public PercentLayoutHelper.PercentLayoutInfo();
-    method public void fillLayoutParams(android.view.ViewGroup.LayoutParams, int, int);
-    method public deprecated void fillMarginLayoutParams(android.view.ViewGroup.MarginLayoutParams, int, int);
-    method public void fillMarginLayoutParams(android.view.View, android.view.ViewGroup.MarginLayoutParams, int, int);
-    method public void restoreLayoutParams(android.view.ViewGroup.LayoutParams);
-    method public void restoreMarginLayoutParams(android.view.ViewGroup.MarginLayoutParams);
-    field public float aspectRatio;
-    field public float bottomMarginPercent;
-    field public float endMarginPercent;
-    field public float heightPercent;
-    field public float leftMarginPercent;
-    field public float rightMarginPercent;
-    field public float startMarginPercent;
-    field public float topMarginPercent;
-    field public float widthPercent;
+  @Deprecated public static class PercentLayoutHelper.PercentLayoutInfo {
+    ctor @Deprecated public PercentLayoutHelper.PercentLayoutInfo();
+    method @Deprecated public void fillLayoutParams(android.view.ViewGroup.LayoutParams!, int, int);
+    method @Deprecated public void fillMarginLayoutParams(android.view.ViewGroup.MarginLayoutParams!, int, int);
+    method @Deprecated public void fillMarginLayoutParams(android.view.View!, android.view.ViewGroup.MarginLayoutParams!, int, int);
+    method @Deprecated public void restoreLayoutParams(android.view.ViewGroup.LayoutParams!);
+    method @Deprecated public void restoreMarginLayoutParams(android.view.ViewGroup.MarginLayoutParams!);
+    method @Deprecated public String toString();
+    field @Deprecated public float aspectRatio;
+    field @Deprecated public float bottomMarginPercent;
+    field @Deprecated public float endMarginPercent;
+    field @Deprecated public float heightPercent;
+    field @Deprecated public float leftMarginPercent;
+    field @Deprecated public float rightMarginPercent;
+    field @Deprecated public float startMarginPercent;
+    field @Deprecated public float topMarginPercent;
+    field @Deprecated public float widthPercent;
   }
 
-  public static abstract deprecated interface PercentLayoutHelper.PercentLayoutParams {
-    method public abstract androidx.percentlayout.widget.PercentLayoutHelper.PercentLayoutInfo getPercentLayoutInfo();
+  @Deprecated public static interface PercentLayoutHelper.PercentLayoutParams {
+    method @Deprecated public androidx.percentlayout.widget.PercentLayoutHelper.PercentLayoutInfo! getPercentLayoutInfo();
   }
 
-  public deprecated class PercentRelativeLayout extends android.widget.RelativeLayout {
-    ctor public PercentRelativeLayout(android.content.Context);
-    ctor public PercentRelativeLayout(android.content.Context, android.util.AttributeSet);
-    ctor public PercentRelativeLayout(android.content.Context, android.util.AttributeSet, int);
-    method protected androidx.percentlayout.widget.PercentRelativeLayout.LayoutParams generateDefaultLayoutParams();
-    method public androidx.percentlayout.widget.PercentRelativeLayout.LayoutParams generateLayoutParams(android.util.AttributeSet);
+  @Deprecated public class PercentRelativeLayout extends android.widget.RelativeLayout {
+    ctor @Deprecated public PercentRelativeLayout(android.content.Context!);
+    ctor @Deprecated public PercentRelativeLayout(android.content.Context!, android.util.AttributeSet!);
+    ctor @Deprecated public PercentRelativeLayout(android.content.Context!, android.util.AttributeSet!, int);
+    method @Deprecated protected androidx.percentlayout.widget.PercentRelativeLayout.LayoutParams! generateDefaultLayoutParams();
+    method @Deprecated public androidx.percentlayout.widget.PercentRelativeLayout.LayoutParams! generateLayoutParams(android.util.AttributeSet!);
+    method @Deprecated protected void onLayout(boolean, int, int, int, int);
+    method @Deprecated protected void onMeasure(int, int);
   }
 
-  public static deprecated class PercentRelativeLayout.LayoutParams extends android.widget.RelativeLayout.LayoutParams implements androidx.percentlayout.widget.PercentLayoutHelper.PercentLayoutParams {
-    ctor public PercentRelativeLayout.LayoutParams(android.content.Context, android.util.AttributeSet);
-    ctor public PercentRelativeLayout.LayoutParams(int, int);
-    ctor public PercentRelativeLayout.LayoutParams(android.view.ViewGroup.LayoutParams);
-    ctor public PercentRelativeLayout.LayoutParams(android.view.ViewGroup.MarginLayoutParams);
-    method public androidx.percentlayout.widget.PercentLayoutHelper.PercentLayoutInfo getPercentLayoutInfo();
+  @Deprecated public static class PercentRelativeLayout.LayoutParams extends android.widget.RelativeLayout.LayoutParams implements androidx.percentlayout.widget.PercentLayoutHelper.PercentLayoutParams {
+    ctor @Deprecated public PercentRelativeLayout.LayoutParams(android.content.Context!, android.util.AttributeSet!);
+    ctor @Deprecated public PercentRelativeLayout.LayoutParams(int, int);
+    ctor @Deprecated public PercentRelativeLayout.LayoutParams(android.view.ViewGroup.LayoutParams!);
+    ctor @Deprecated public PercentRelativeLayout.LayoutParams(android.view.ViewGroup.MarginLayoutParams!);
+    method @Deprecated public androidx.percentlayout.widget.PercentLayoutHelper.PercentLayoutInfo! getPercentLayoutInfo();
+    method @Deprecated protected void setBaseAttributes(android.content.res.TypedArray!, int, int);
   }
 
 }
diff --git a/persistence/db-framework/api/current.txt b/persistence/db-framework/api/current.txt
index b784c5f..19c73cc 100644
--- a/persistence/db-framework/api/current.txt
+++ b/persistence/db-framework/api/current.txt
@@ -1,8 +1,9 @@
+// Signature format: 2.0
 package androidx.sqlite.db.framework {
 
   public final class FrameworkSQLiteOpenHelperFactory implements androidx.sqlite.db.SupportSQLiteOpenHelper.Factory {
     ctor public FrameworkSQLiteOpenHelperFactory();
-    method public androidx.sqlite.db.SupportSQLiteOpenHelper create(androidx.sqlite.db.SupportSQLiteOpenHelper.Configuration);
+    method public androidx.sqlite.db.SupportSQLiteOpenHelper! create(androidx.sqlite.db.SupportSQLiteOpenHelper.Configuration!);
   }
 
 }
diff --git a/persistence/db/api/current.txt b/persistence/db/api/current.txt
index 270d88c..3a28736 100644
--- a/persistence/db/api/current.txt
+++ b/persistence/db/api/current.txt
@@ -1,124 +1,125 @@
+// Signature format: 2.0
 package androidx.sqlite.db {
 
   public final class SimpleSQLiteQuery implements androidx.sqlite.db.SupportSQLiteQuery {
-    ctor public SimpleSQLiteQuery(java.lang.String, java.lang.Object[]);
-    ctor public SimpleSQLiteQuery(java.lang.String);
-    method public static void bind(androidx.sqlite.db.SupportSQLiteProgram, java.lang.Object[]);
-    method public void bindTo(androidx.sqlite.db.SupportSQLiteProgram);
+    ctor public SimpleSQLiteQuery(String!, Object[]?);
+    ctor public SimpleSQLiteQuery(String!);
+    method public static void bind(androidx.sqlite.db.SupportSQLiteProgram!, Object[]!);
+    method public void bindTo(androidx.sqlite.db.SupportSQLiteProgram!);
     method public int getArgCount();
-    method public java.lang.String getSql();
+    method public String! getSql();
   }
 
-  public abstract interface SupportSQLiteDatabase implements java.io.Closeable {
-    method public abstract void beginTransaction();
-    method public abstract void beginTransactionNonExclusive();
-    method public abstract void beginTransactionWithListener(android.database.sqlite.SQLiteTransactionListener);
-    method public abstract void beginTransactionWithListenerNonExclusive(android.database.sqlite.SQLiteTransactionListener);
-    method public abstract androidx.sqlite.db.SupportSQLiteStatement compileStatement(java.lang.String);
-    method public abstract int delete(java.lang.String, java.lang.String, java.lang.Object[]);
-    method public abstract void disableWriteAheadLogging();
-    method public abstract boolean enableWriteAheadLogging();
-    method public abstract void endTransaction();
-    method public abstract void execSQL(java.lang.String) throws android.database.SQLException;
-    method public abstract void execSQL(java.lang.String, java.lang.Object[]) throws android.database.SQLException;
-    method public abstract java.util.List<android.util.Pair<java.lang.String, java.lang.String>> getAttachedDbs();
-    method public abstract long getMaximumSize();
-    method public abstract long getPageSize();
-    method public abstract java.lang.String getPath();
-    method public abstract int getVersion();
-    method public abstract boolean inTransaction();
-    method public abstract long insert(java.lang.String, int, android.content.ContentValues) throws android.database.SQLException;
-    method public abstract boolean isDatabaseIntegrityOk();
-    method public abstract boolean isDbLockedByCurrentThread();
-    method public abstract boolean isOpen();
-    method public abstract boolean isReadOnly();
-    method public abstract boolean isWriteAheadLoggingEnabled();
-    method public abstract boolean needUpgrade(int);
-    method public abstract android.database.Cursor query(java.lang.String);
-    method public abstract android.database.Cursor query(java.lang.String, java.lang.Object[]);
-    method public abstract android.database.Cursor query(androidx.sqlite.db.SupportSQLiteQuery);
-    method public abstract android.database.Cursor query(androidx.sqlite.db.SupportSQLiteQuery, android.os.CancellationSignal);
-    method public abstract void setForeignKeyConstraintsEnabled(boolean);
-    method public abstract void setLocale(java.util.Locale);
-    method public abstract void setMaxSqlCacheSize(int);
-    method public abstract long setMaximumSize(long);
-    method public abstract void setPageSize(long);
-    method public abstract void setTransactionSuccessful();
-    method public abstract void setVersion(int);
-    method public abstract int update(java.lang.String, int, android.content.ContentValues, java.lang.String, java.lang.Object[]);
-    method public abstract boolean yieldIfContendedSafely();
-    method public abstract boolean yieldIfContendedSafely(long);
+  public interface SupportSQLiteDatabase extends java.io.Closeable {
+    method public void beginTransaction();
+    method public void beginTransactionNonExclusive();
+    method public void beginTransactionWithListener(android.database.sqlite.SQLiteTransactionListener!);
+    method public void beginTransactionWithListenerNonExclusive(android.database.sqlite.SQLiteTransactionListener!);
+    method public androidx.sqlite.db.SupportSQLiteStatement! compileStatement(String!);
+    method public int delete(String!, String!, Object[]!);
+    method @RequiresApi(api=android.os.Build.VERSION_CODES.JELLY_BEAN) public void disableWriteAheadLogging();
+    method public boolean enableWriteAheadLogging();
+    method public void endTransaction();
+    method public void execSQL(String!) throws android.database.SQLException;
+    method public void execSQL(String!, Object[]!) throws android.database.SQLException;
+    method public java.util.List<android.util.Pair<java.lang.String,java.lang.String>>! getAttachedDbs();
+    method public long getMaximumSize();
+    method public long getPageSize();
+    method public String! getPath();
+    method public int getVersion();
+    method public boolean inTransaction();
+    method public long insert(String!, int, android.content.ContentValues!) throws android.database.SQLException;
+    method public boolean isDatabaseIntegrityOk();
+    method public boolean isDbLockedByCurrentThread();
+    method public boolean isOpen();
+    method public boolean isReadOnly();
+    method @RequiresApi(api=android.os.Build.VERSION_CODES.JELLY_BEAN) public boolean isWriteAheadLoggingEnabled();
+    method public boolean needUpgrade(int);
+    method public android.database.Cursor! query(String!);
+    method public android.database.Cursor! query(String!, Object[]!);
+    method public android.database.Cursor! query(androidx.sqlite.db.SupportSQLiteQuery!);
+    method @RequiresApi(api=android.os.Build.VERSION_CODES.JELLY_BEAN) public android.database.Cursor! query(androidx.sqlite.db.SupportSQLiteQuery!, android.os.CancellationSignal!);
+    method @RequiresApi(api=android.os.Build.VERSION_CODES.JELLY_BEAN) public void setForeignKeyConstraintsEnabled(boolean);
+    method public void setLocale(java.util.Locale!);
+    method public void setMaxSqlCacheSize(int);
+    method public long setMaximumSize(long);
+    method public void setPageSize(long);
+    method public void setTransactionSuccessful();
+    method public void setVersion(int);
+    method public int update(String!, int, android.content.ContentValues!, String!, Object[]!);
+    method public boolean yieldIfContendedSafely();
+    method public boolean yieldIfContendedSafely(long);
   }
 
-  public abstract interface SupportSQLiteOpenHelper {
-    method public abstract void close();
-    method public abstract java.lang.String getDatabaseName();
-    method public abstract androidx.sqlite.db.SupportSQLiteDatabase getReadableDatabase();
-    method public abstract androidx.sqlite.db.SupportSQLiteDatabase getWritableDatabase();
-    method public abstract void setWriteAheadLoggingEnabled(boolean);
+  public interface SupportSQLiteOpenHelper {
+    method public void close();
+    method public String! getDatabaseName();
+    method public androidx.sqlite.db.SupportSQLiteDatabase! getReadableDatabase();
+    method public androidx.sqlite.db.SupportSQLiteDatabase! getWritableDatabase();
+    method @RequiresApi(api=android.os.Build.VERSION_CODES.JELLY_BEAN) public void setWriteAheadLoggingEnabled(boolean);
   }
 
-  public static abstract class SupportSQLiteOpenHelper.Callback {
+  public abstract static class SupportSQLiteOpenHelper.Callback {
     ctor public SupportSQLiteOpenHelper.Callback(int);
-    method public void onConfigure(androidx.sqlite.db.SupportSQLiteDatabase);
-    method public void onCorruption(androidx.sqlite.db.SupportSQLiteDatabase);
-    method public abstract void onCreate(androidx.sqlite.db.SupportSQLiteDatabase);
-    method public void onDowngrade(androidx.sqlite.db.SupportSQLiteDatabase, int, int);
-    method public void onOpen(androidx.sqlite.db.SupportSQLiteDatabase);
-    method public abstract void onUpgrade(androidx.sqlite.db.SupportSQLiteDatabase, int, int);
+    method public void onConfigure(androidx.sqlite.db.SupportSQLiteDatabase!);
+    method public void onCorruption(androidx.sqlite.db.SupportSQLiteDatabase!);
+    method public abstract void onCreate(androidx.sqlite.db.SupportSQLiteDatabase!);
+    method public void onDowngrade(androidx.sqlite.db.SupportSQLiteDatabase!, int, int);
+    method public void onOpen(androidx.sqlite.db.SupportSQLiteDatabase!);
+    method public abstract void onUpgrade(androidx.sqlite.db.SupportSQLiteDatabase!, int, int);
     field public final int version;
   }
 
   public static class SupportSQLiteOpenHelper.Configuration {
-    method public static androidx.sqlite.db.SupportSQLiteOpenHelper.Configuration.Builder builder(android.content.Context);
+    method public static androidx.sqlite.db.SupportSQLiteOpenHelper.Configuration.Builder! builder(android.content.Context!);
     field public final androidx.sqlite.db.SupportSQLiteOpenHelper.Callback callback;
     field public final android.content.Context context;
-    field public final java.lang.String name;
+    field public final String? name;
   }
 
   public static class SupportSQLiteOpenHelper.Configuration.Builder {
-    method public androidx.sqlite.db.SupportSQLiteOpenHelper.Configuration build();
-    method public androidx.sqlite.db.SupportSQLiteOpenHelper.Configuration.Builder callback(androidx.sqlite.db.SupportSQLiteOpenHelper.Callback);
-    method public androidx.sqlite.db.SupportSQLiteOpenHelper.Configuration.Builder name(java.lang.String);
+    method public androidx.sqlite.db.SupportSQLiteOpenHelper.Configuration! build();
+    method public androidx.sqlite.db.SupportSQLiteOpenHelper.Configuration.Builder! callback(androidx.sqlite.db.SupportSQLiteOpenHelper.Callback);
+    method public androidx.sqlite.db.SupportSQLiteOpenHelper.Configuration.Builder! name(String?);
   }
 
-  public static abstract interface SupportSQLiteOpenHelper.Factory {
-    method public abstract androidx.sqlite.db.SupportSQLiteOpenHelper create(androidx.sqlite.db.SupportSQLiteOpenHelper.Configuration);
+  public static interface SupportSQLiteOpenHelper.Factory {
+    method public androidx.sqlite.db.SupportSQLiteOpenHelper! create(androidx.sqlite.db.SupportSQLiteOpenHelper.Configuration!);
   }
 
-  public abstract interface SupportSQLiteProgram implements java.io.Closeable {
-    method public abstract void bindBlob(int, byte[]);
-    method public abstract void bindDouble(int, double);
-    method public abstract void bindLong(int, long);
-    method public abstract void bindNull(int);
-    method public abstract void bindString(int, java.lang.String);
-    method public abstract void clearBindings();
+  public interface SupportSQLiteProgram extends java.io.Closeable {
+    method public void bindBlob(int, byte[]!);
+    method public void bindDouble(int, double);
+    method public void bindLong(int, long);
+    method public void bindNull(int);
+    method public void bindString(int, String!);
+    method public void clearBindings();
   }
 
-  public abstract interface SupportSQLiteQuery {
-    method public abstract void bindTo(androidx.sqlite.db.SupportSQLiteProgram);
-    method public abstract int getArgCount();
-    method public abstract java.lang.String getSql();
+  public interface SupportSQLiteQuery {
+    method public void bindTo(androidx.sqlite.db.SupportSQLiteProgram!);
+    method public int getArgCount();
+    method public String! getSql();
   }
 
   public final class SupportSQLiteQueryBuilder {
-    method public static androidx.sqlite.db.SupportSQLiteQueryBuilder builder(java.lang.String);
-    method public androidx.sqlite.db.SupportSQLiteQueryBuilder columns(java.lang.String[]);
-    method public androidx.sqlite.db.SupportSQLiteQuery create();
-    method public androidx.sqlite.db.SupportSQLiteQueryBuilder distinct();
-    method public androidx.sqlite.db.SupportSQLiteQueryBuilder groupBy(java.lang.String);
-    method public androidx.sqlite.db.SupportSQLiteQueryBuilder having(java.lang.String);
-    method public androidx.sqlite.db.SupportSQLiteQueryBuilder limit(java.lang.String);
-    method public androidx.sqlite.db.SupportSQLiteQueryBuilder orderBy(java.lang.String);
-    method public androidx.sqlite.db.SupportSQLiteQueryBuilder selection(java.lang.String, java.lang.Object[]);
+    method public static androidx.sqlite.db.SupportSQLiteQueryBuilder! builder(String!);
+    method public androidx.sqlite.db.SupportSQLiteQueryBuilder! columns(String[]!);
+    method public androidx.sqlite.db.SupportSQLiteQuery! create();
+    method public androidx.sqlite.db.SupportSQLiteQueryBuilder! distinct();
+    method public androidx.sqlite.db.SupportSQLiteQueryBuilder! groupBy(String!);
+    method public androidx.sqlite.db.SupportSQLiteQueryBuilder! having(String!);
+    method public androidx.sqlite.db.SupportSQLiteQueryBuilder! limit(String!);
+    method public androidx.sqlite.db.SupportSQLiteQueryBuilder! orderBy(String!);
+    method public androidx.sqlite.db.SupportSQLiteQueryBuilder! selection(String!, Object[]!);
   }
 
-  public abstract interface SupportSQLiteStatement implements androidx.sqlite.db.SupportSQLiteProgram {
-    method public abstract void execute();
-    method public abstract long executeInsert();
-    method public abstract int executeUpdateDelete();
-    method public abstract long simpleQueryForLong();
-    method public abstract java.lang.String simpleQueryForString();
+  public interface SupportSQLiteStatement extends androidx.sqlite.db.SupportSQLiteProgram {
+    method public void execute();
+    method public long executeInsert();
+    method public int executeUpdateDelete();
+    method public long simpleQueryForLong();
+    method public String! simpleQueryForString();
   }
 
 }
diff --git a/preference/api/current.txt b/preference/api/current.txt
index 2fc6a05..adcd547 100644
--- a/preference/api/current.txt
+++ b/preference/api/current.txt
@@ -1,163 +1,164 @@
+// Signature format: 2.0
 package androidx.preference {
 
   public class CheckBoxPreference extends androidx.preference.TwoStatePreference {
-    ctor public CheckBoxPreference(android.content.Context, android.util.AttributeSet, int);
-    ctor public CheckBoxPreference(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public CheckBoxPreference(android.content.Context, android.util.AttributeSet);
-    ctor public CheckBoxPreference(android.content.Context);
+    ctor public CheckBoxPreference(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public CheckBoxPreference(android.content.Context!, android.util.AttributeSet!, int, int);
+    ctor public CheckBoxPreference(android.content.Context!, android.util.AttributeSet!);
+    ctor public CheckBoxPreference(android.content.Context!);
   }
 
   public abstract class DialogPreference extends androidx.preference.Preference {
-    ctor public DialogPreference(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public DialogPreference(android.content.Context, android.util.AttributeSet, int);
-    ctor public DialogPreference(android.content.Context, android.util.AttributeSet);
-    ctor public DialogPreference(android.content.Context);
-    method public android.graphics.drawable.Drawable getDialogIcon();
+    ctor public DialogPreference(android.content.Context!, android.util.AttributeSet!, int, int);
+    ctor public DialogPreference(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public DialogPreference(android.content.Context!, android.util.AttributeSet!);
+    ctor public DialogPreference(android.content.Context!);
+    method public android.graphics.drawable.Drawable! getDialogIcon();
     method public int getDialogLayoutResource();
-    method public java.lang.CharSequence getDialogMessage();
-    method public java.lang.CharSequence getDialogTitle();
-    method public java.lang.CharSequence getNegativeButtonText();
-    method public java.lang.CharSequence getPositiveButtonText();
-    method public void setDialogIcon(android.graphics.drawable.Drawable);
+    method public CharSequence! getDialogMessage();
+    method public CharSequence! getDialogTitle();
+    method public CharSequence! getNegativeButtonText();
+    method public CharSequence! getPositiveButtonText();
+    method public void setDialogIcon(android.graphics.drawable.Drawable!);
     method public void setDialogIcon(int);
     method public void setDialogLayoutResource(int);
-    method public void setDialogMessage(java.lang.CharSequence);
+    method public void setDialogMessage(CharSequence!);
     method public void setDialogMessage(int);
-    method public void setDialogTitle(java.lang.CharSequence);
+    method public void setDialogTitle(CharSequence!);
     method public void setDialogTitle(int);
-    method public void setNegativeButtonText(java.lang.CharSequence);
+    method public void setNegativeButtonText(CharSequence!);
     method public void setNegativeButtonText(int);
-    method public void setPositiveButtonText(java.lang.CharSequence);
+    method public void setPositiveButtonText(CharSequence!);
     method public void setPositiveButtonText(int);
   }
 
-  public static abstract interface DialogPreference.TargetFragment {
-    method public abstract androidx.preference.Preference findPreference(java.lang.CharSequence);
+  public static interface DialogPreference.TargetFragment {
+    method public androidx.preference.Preference! findPreference(CharSequence!);
   }
 
   public class DropDownPreference extends androidx.preference.ListPreference {
-    ctor public DropDownPreference(android.content.Context);
-    ctor public DropDownPreference(android.content.Context, android.util.AttributeSet);
-    ctor public DropDownPreference(android.content.Context, android.util.AttributeSet, int);
-    ctor public DropDownPreference(android.content.Context, android.util.AttributeSet, int, int);
-    method protected android.widget.ArrayAdapter createAdapter();
+    ctor public DropDownPreference(android.content.Context!);
+    ctor public DropDownPreference(android.content.Context!, android.util.AttributeSet!);
+    ctor public DropDownPreference(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public DropDownPreference(android.content.Context!, android.util.AttributeSet!, int, int);
+    method protected android.widget.ArrayAdapter! createAdapter();
   }
 
   public class EditTextPreference extends androidx.preference.DialogPreference {
-    ctor public EditTextPreference(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public EditTextPreference(android.content.Context, android.util.AttributeSet, int);
-    ctor public EditTextPreference(android.content.Context, android.util.AttributeSet);
-    ctor public EditTextPreference(android.content.Context);
-    method public java.lang.String getText();
-    method public void setText(java.lang.String);
+    ctor public EditTextPreference(android.content.Context!, android.util.AttributeSet!, int, int);
+    ctor public EditTextPreference(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public EditTextPreference(android.content.Context!, android.util.AttributeSet!);
+    ctor public EditTextPreference(android.content.Context!);
+    method public String! getText();
+    method public void setText(String!);
   }
 
-  public deprecated class EditTextPreferenceDialogFragment extends androidx.preference.PreferenceDialogFragment {
-    ctor public deprecated EditTextPreferenceDialogFragment();
-    method public static deprecated androidx.preference.EditTextPreferenceDialogFragment newInstance(java.lang.String);
-    method protected void onBindDialogView(android.view.View);
-    method public deprecated void onDialogClosed(boolean);
+  @Deprecated public class EditTextPreferenceDialogFragment extends androidx.preference.PreferenceDialogFragment {
+    ctor @Deprecated public EditTextPreferenceDialogFragment();
+    method @Deprecated public static androidx.preference.EditTextPreferenceDialogFragment! newInstance(String!);
+    method @Deprecated protected void onBindDialogView(android.view.View!);
+    method @Deprecated public void onDialogClosed(boolean);
   }
 
   public class EditTextPreferenceDialogFragmentCompat extends androidx.preference.PreferenceDialogFragmentCompat {
     ctor public EditTextPreferenceDialogFragmentCompat();
-    method public static androidx.preference.EditTextPreferenceDialogFragmentCompat newInstance(java.lang.String);
+    method public static androidx.preference.EditTextPreferenceDialogFragmentCompat! newInstance(String!);
     method public void onDialogClosed(boolean);
   }
 
   public class ListPreference extends androidx.preference.DialogPreference {
-    ctor public ListPreference(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public ListPreference(android.content.Context, android.util.AttributeSet, int);
-    ctor public ListPreference(android.content.Context, android.util.AttributeSet);
-    ctor public ListPreference(android.content.Context);
-    method public int findIndexOfValue(java.lang.String);
-    method public java.lang.CharSequence[] getEntries();
-    method public java.lang.CharSequence getEntry();
-    method public java.lang.CharSequence[] getEntryValues();
-    method public java.lang.String getValue();
-    method public void setEntries(java.lang.CharSequence[]);
-    method public void setEntries(int);
-    method public void setEntryValues(java.lang.CharSequence[]);
-    method public void setEntryValues(int);
-    method public void setValue(java.lang.String);
+    ctor public ListPreference(android.content.Context!, android.util.AttributeSet!, int, int);
+    ctor public ListPreference(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public ListPreference(android.content.Context!, android.util.AttributeSet!);
+    ctor public ListPreference(android.content.Context!);
+    method public int findIndexOfValue(String!);
+    method public CharSequence[]! getEntries();
+    method public CharSequence! getEntry();
+    method public CharSequence[]! getEntryValues();
+    method public String! getValue();
+    method public void setEntries(CharSequence[]!);
+    method public void setEntries(@ArrayRes int);
+    method public void setEntryValues(CharSequence[]!);
+    method public void setEntryValues(@ArrayRes int);
+    method public void setValue(String!);
     method public void setValueIndex(int);
   }
 
-  public deprecated class ListPreferenceDialogFragment extends androidx.preference.PreferenceDialogFragment {
-    ctor public deprecated ListPreferenceDialogFragment();
-    method public static deprecated androidx.preference.ListPreferenceDialogFragment newInstance(java.lang.String);
-    method public deprecated void onDialogClosed(boolean);
-    method protected void onPrepareDialogBuilder(android.app.AlertDialog.Builder);
+  @Deprecated public class ListPreferenceDialogFragment extends androidx.preference.PreferenceDialogFragment {
+    ctor @Deprecated public ListPreferenceDialogFragment();
+    method @Deprecated public static androidx.preference.ListPreferenceDialogFragment! newInstance(String!);
+    method @Deprecated public void onDialogClosed(boolean);
+    method @Deprecated protected void onPrepareDialogBuilder(android.app.AlertDialog.Builder!);
   }
 
   public class ListPreferenceDialogFragmentCompat extends androidx.preference.PreferenceDialogFragmentCompat {
     ctor public ListPreferenceDialogFragmentCompat();
-    method public static androidx.preference.ListPreferenceDialogFragmentCompat newInstance(java.lang.String);
+    method public static androidx.preference.ListPreferenceDialogFragmentCompat! newInstance(String!);
     method public void onDialogClosed(boolean);
   }
 
   public class MultiSelectListPreference extends androidx.preference.DialogPreference {
-    ctor public MultiSelectListPreference(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public MultiSelectListPreference(android.content.Context, android.util.AttributeSet, int);
-    ctor public MultiSelectListPreference(android.content.Context, android.util.AttributeSet);
-    ctor public MultiSelectListPreference(android.content.Context);
-    method public int findIndexOfValue(java.lang.String);
-    method public java.lang.CharSequence[] getEntries();
-    method public java.lang.CharSequence[] getEntryValues();
-    method protected boolean[] getSelectedItems();
-    method public java.util.Set<java.lang.String> getValues();
-    method public void setEntries(java.lang.CharSequence[]);
-    method public void setEntries(int);
-    method public void setEntryValues(java.lang.CharSequence[]);
-    method public void setEntryValues(int);
-    method public void setValues(java.util.Set<java.lang.String>);
+    ctor public MultiSelectListPreference(android.content.Context!, android.util.AttributeSet!, int, int);
+    ctor public MultiSelectListPreference(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public MultiSelectListPreference(android.content.Context!, android.util.AttributeSet!);
+    ctor public MultiSelectListPreference(android.content.Context!);
+    method public int findIndexOfValue(String!);
+    method public CharSequence[]! getEntries();
+    method public CharSequence[]! getEntryValues();
+    method protected boolean[]! getSelectedItems();
+    method public java.util.Set<java.lang.String>! getValues();
+    method public void setEntries(CharSequence[]!);
+    method public void setEntries(@ArrayRes int);
+    method public void setEntryValues(CharSequence[]!);
+    method public void setEntryValues(@ArrayRes int);
+    method public void setValues(java.util.Set<java.lang.String>!);
   }
 
-  public deprecated class MultiSelectListPreferenceDialogFragment extends androidx.preference.PreferenceDialogFragment {
-    ctor public deprecated MultiSelectListPreferenceDialogFragment();
-    method public static deprecated androidx.preference.MultiSelectListPreferenceDialogFragment newInstance(java.lang.String);
-    method public deprecated void onDialogClosed(boolean);
-    method protected void onPrepareDialogBuilder(android.app.AlertDialog.Builder);
+  @Deprecated public class MultiSelectListPreferenceDialogFragment extends androidx.preference.PreferenceDialogFragment {
+    ctor @Deprecated public MultiSelectListPreferenceDialogFragment();
+    method @Deprecated public static androidx.preference.MultiSelectListPreferenceDialogFragment! newInstance(String!);
+    method @Deprecated public void onDialogClosed(boolean);
+    method @Deprecated protected void onPrepareDialogBuilder(android.app.AlertDialog.Builder!);
   }
 
   public class MultiSelectListPreferenceDialogFragmentCompat extends androidx.preference.PreferenceDialogFragmentCompat {
     ctor public MultiSelectListPreferenceDialogFragmentCompat();
-    method public static androidx.preference.MultiSelectListPreferenceDialogFragmentCompat newInstance(java.lang.String);
+    method public static androidx.preference.MultiSelectListPreferenceDialogFragmentCompat! newInstance(String!);
     method public void onDialogClosed(boolean);
   }
 
-  public class Preference implements java.lang.Comparable {
-    ctor public Preference(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public Preference(android.content.Context, android.util.AttributeSet, int);
-    ctor public Preference(android.content.Context, android.util.AttributeSet);
-    ctor public Preference(android.content.Context);
-    method public boolean callChangeListener(java.lang.Object);
+  public class Preference implements java.lang.Comparable<androidx.preference.Preference> {
+    ctor public Preference(android.content.Context!, android.util.AttributeSet!, int, int);
+    ctor public Preference(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public Preference(android.content.Context!, android.util.AttributeSet!);
+    ctor public Preference(android.content.Context!);
+    method public boolean callChangeListener(Object!);
     method public int compareTo(androidx.preference.Preference);
-    method protected androidx.preference.Preference findPreferenceInHierarchy(java.lang.String);
-    method public android.content.Context getContext();
-    method public java.lang.String getDependency();
-    method public android.os.Bundle getExtras();
-    method public java.lang.String getFragment();
-    method public android.graphics.drawable.Drawable getIcon();
-    method public android.content.Intent getIntent();
-    method public java.lang.String getKey();
+    method protected androidx.preference.Preference! findPreferenceInHierarchy(String!);
+    method public android.content.Context! getContext();
+    method public String! getDependency();
+    method public android.os.Bundle! getExtras();
+    method public String! getFragment();
+    method public android.graphics.drawable.Drawable! getIcon();
+    method public android.content.Intent! getIntent();
+    method public String! getKey();
     method public final int getLayoutResource();
-    method public androidx.preference.Preference.OnPreferenceChangeListener getOnPreferenceChangeListener();
-    method public androidx.preference.Preference.OnPreferenceClickListener getOnPreferenceClickListener();
+    method public androidx.preference.Preference.OnPreferenceChangeListener! getOnPreferenceChangeListener();
+    method public androidx.preference.Preference.OnPreferenceClickListener! getOnPreferenceClickListener();
     method public int getOrder();
-    method public androidx.preference.PreferenceGroup getParent();
+    method public androidx.preference.PreferenceGroup? getParent();
     method protected boolean getPersistedBoolean(boolean);
     method protected float getPersistedFloat(float);
     method protected int getPersistedInt(int);
     method protected long getPersistedLong(long);
-    method protected java.lang.String getPersistedString(java.lang.String);
-    method public java.util.Set<java.lang.String> getPersistedStringSet(java.util.Set<java.lang.String>);
-    method public androidx.preference.PreferenceDataStore getPreferenceDataStore();
-    method public androidx.preference.PreferenceManager getPreferenceManager();
-    method public android.content.SharedPreferences getSharedPreferences();
+    method protected String! getPersistedString(String!);
+    method public java.util.Set<java.lang.String>! getPersistedStringSet(java.util.Set<java.lang.String>!);
+    method public androidx.preference.PreferenceDataStore? getPreferenceDataStore();
+    method public androidx.preference.PreferenceManager! getPreferenceManager();
+    method public android.content.SharedPreferences! getSharedPreferences();
     method public boolean getShouldDisableView();
-    method public java.lang.CharSequence getSummary();
-    method public java.lang.CharSequence getTitle();
+    method public CharSequence! getSummary();
+    method public CharSequence! getTitle();
     method public final int getWidgetLayoutResource();
     method public boolean hasKey();
     method public boolean isEnabled();
@@ -171,49 +172,49 @@
     method public void notifyDependencyChange(boolean);
     method protected void notifyHierarchyChanged();
     method public void onAttached();
-    method protected void onAttachedToHierarchy(androidx.preference.PreferenceManager);
-    method public void onBindViewHolder(androidx.preference.PreferenceViewHolder);
+    method protected void onAttachedToHierarchy(androidx.preference.PreferenceManager!);
+    method public void onBindViewHolder(androidx.preference.PreferenceViewHolder!);
     method protected void onClick();
-    method public void onDependencyChanged(androidx.preference.Preference, boolean);
+    method public void onDependencyChanged(androidx.preference.Preference!, boolean);
     method public void onDetached();
-    method protected java.lang.Object onGetDefaultValue(android.content.res.TypedArray, int);
-    method public void onInitializeAccessibilityNodeInfo(androidx.core.view.accessibility.AccessibilityNodeInfoCompat);
-    method public void onParentChanged(androidx.preference.Preference, boolean);
+    method protected Object! onGetDefaultValue(android.content.res.TypedArray!, int);
+    method @CallSuper public void onInitializeAccessibilityNodeInfo(androidx.core.view.accessibility.AccessibilityNodeInfoCompat!);
+    method public void onParentChanged(androidx.preference.Preference!, boolean);
     method protected void onPrepareForRemoval();
-    method protected void onRestoreInstanceState(android.os.Parcelable);
-    method protected android.os.Parcelable onSaveInstanceState();
-    method protected deprecated void onSetInitialValue(boolean, java.lang.Object);
-    method protected void onSetInitialValue(java.lang.Object);
-    method public android.os.Bundle peekExtras();
+    method protected void onRestoreInstanceState(android.os.Parcelable!);
+    method protected android.os.Parcelable! onSaveInstanceState();
+    method @Deprecated protected void onSetInitialValue(boolean, Object!);
+    method protected void onSetInitialValue(Object?);
+    method public android.os.Bundle! peekExtras();
     method protected boolean persistBoolean(boolean);
     method protected boolean persistFloat(float);
     method protected boolean persistInt(int);
     method protected boolean persistLong(long);
-    method protected boolean persistString(java.lang.String);
-    method public boolean persistStringSet(java.util.Set<java.lang.String>);
-    method public void restoreHierarchyState(android.os.Bundle);
-    method public void saveHierarchyState(android.os.Bundle);
-    method public void setDefaultValue(java.lang.Object);
-    method public void setDependency(java.lang.String);
+    method protected boolean persistString(String!);
+    method public boolean persistStringSet(java.util.Set<java.lang.String>!);
+    method public void restoreHierarchyState(android.os.Bundle!);
+    method public void saveHierarchyState(android.os.Bundle!);
+    method public void setDefaultValue(Object!);
+    method public void setDependency(String!);
     method public void setEnabled(boolean);
-    method public void setFragment(java.lang.String);
-    method public void setIcon(android.graphics.drawable.Drawable);
+    method public void setFragment(String!);
+    method public void setIcon(android.graphics.drawable.Drawable!);
     method public void setIcon(int);
     method public void setIconSpaceReserved(boolean);
-    method public void setIntent(android.content.Intent);
-    method public void setKey(java.lang.String);
+    method public void setIntent(android.content.Intent!);
+    method public void setKey(String!);
     method public void setLayoutResource(int);
-    method public void setOnPreferenceChangeListener(androidx.preference.Preference.OnPreferenceChangeListener);
-    method public void setOnPreferenceClickListener(androidx.preference.Preference.OnPreferenceClickListener);
+    method public void setOnPreferenceChangeListener(androidx.preference.Preference.OnPreferenceChangeListener!);
+    method public void setOnPreferenceClickListener(androidx.preference.Preference.OnPreferenceClickListener!);
     method public void setOrder(int);
     method public void setPersistent(boolean);
-    method public void setPreferenceDataStore(androidx.preference.PreferenceDataStore);
+    method public void setPreferenceDataStore(androidx.preference.PreferenceDataStore!);
     method public void setSelectable(boolean);
     method public void setShouldDisableView(boolean);
     method public void setSingleLineTitle(boolean);
-    method public void setSummary(java.lang.CharSequence);
+    method public void setSummary(CharSequence!);
     method public void setSummary(int);
-    method public void setTitle(java.lang.CharSequence);
+    method public void setTitle(CharSequence!);
     method public void setTitle(int);
     method public void setViewId(int);
     method public final void setVisible(boolean);
@@ -224,215 +225,226 @@
   }
 
   public static class Preference.BaseSavedState extends android.view.AbsSavedState {
-    ctor public Preference.BaseSavedState(android.os.Parcel);
-    ctor public Preference.BaseSavedState(android.os.Parcelable);
-    field public static final android.os.Parcelable.Creator<androidx.preference.Preference.BaseSavedState> CREATOR;
+    ctor public Preference.BaseSavedState(android.os.Parcel!);
+    ctor public Preference.BaseSavedState(android.os.Parcelable!);
+    field public static final android.os.Parcelable.Creator<androidx.preference.Preference.BaseSavedState>! CREATOR;
   }
 
-  public static abstract interface Preference.OnPreferenceChangeListener {
-    method public abstract boolean onPreferenceChange(androidx.preference.Preference, java.lang.Object);
+  public static interface Preference.OnPreferenceChangeListener {
+    method public boolean onPreferenceChange(androidx.preference.Preference!, Object!);
   }
 
-  public static abstract interface Preference.OnPreferenceClickListener {
-    method public abstract boolean onPreferenceClick(androidx.preference.Preference);
+  public static interface Preference.OnPreferenceClickListener {
+    method public boolean onPreferenceClick(androidx.preference.Preference!);
   }
 
   public class PreferenceCategory extends androidx.preference.PreferenceGroup {
-    ctor public PreferenceCategory(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public PreferenceCategory(android.content.Context, android.util.AttributeSet, int);
-    ctor public PreferenceCategory(android.content.Context, android.util.AttributeSet);
-    ctor public PreferenceCategory(android.content.Context);
+    ctor public PreferenceCategory(android.content.Context!, android.util.AttributeSet!, int, int);
+    ctor public PreferenceCategory(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public PreferenceCategory(android.content.Context!, android.util.AttributeSet!);
+    ctor public PreferenceCategory(android.content.Context!);
   }
 
   public abstract class PreferenceDataStore {
     ctor public PreferenceDataStore();
-    method public boolean getBoolean(java.lang.String, boolean);
-    method public float getFloat(java.lang.String, float);
-    method public int getInt(java.lang.String, int);
-    method public long getLong(java.lang.String, long);
-    method public java.lang.String getString(java.lang.String, java.lang.String);
-    method public java.util.Set<java.lang.String> getStringSet(java.lang.String, java.util.Set<java.lang.String>);
-    method public void putBoolean(java.lang.String, boolean);
-    method public void putFloat(java.lang.String, float);
-    method public void putInt(java.lang.String, int);
-    method public void putLong(java.lang.String, long);
-    method public void putString(java.lang.String, java.lang.String);
-    method public void putStringSet(java.lang.String, java.util.Set<java.lang.String>);
+    method public boolean getBoolean(String!, boolean);
+    method public float getFloat(String!, float);
+    method public int getInt(String!, int);
+    method public long getLong(String!, long);
+    method public String? getString(String!, String?);
+    method public java.util.Set<java.lang.String>? getStringSet(String!, java.util.Set<java.lang.String>?);
+    method public void putBoolean(String!, boolean);
+    method public void putFloat(String!, float);
+    method public void putInt(String!, int);
+    method public void putLong(String!, long);
+    method public void putString(String!, String?);
+    method public void putStringSet(String!, java.util.Set<java.lang.String>?);
   }
 
-  public abstract deprecated class PreferenceDialogFragment extends android.app.DialogFragment implements android.content.DialogInterface.OnClickListener {
-    ctor public deprecated PreferenceDialogFragment();
-    method public deprecated androidx.preference.DialogPreference getPreference();
-    method protected deprecated void onBindDialogView(android.view.View);
-    method public deprecated void onClick(android.content.DialogInterface, int);
-    method protected deprecated android.view.View onCreateDialogView(android.content.Context);
-    method public abstract deprecated void onDialogClosed(boolean);
-    method protected deprecated void onPrepareDialogBuilder(android.app.AlertDialog.Builder);
-    field protected static final deprecated java.lang.String ARG_KEY = "key";
+  @Deprecated public abstract class PreferenceDialogFragment extends android.app.DialogFragment implements android.content.DialogInterface.OnClickListener {
+    ctor @Deprecated public PreferenceDialogFragment();
+    method @Deprecated public androidx.preference.DialogPreference! getPreference();
+    method @Deprecated protected void onBindDialogView(android.view.View!);
+    method @Deprecated public void onClick(android.content.DialogInterface!, int);
+    method @Deprecated public void onCreate(android.os.Bundle!);
+    method @Deprecated public android.app.Dialog onCreateDialog(android.os.Bundle!);
+    method @Deprecated protected android.view.View! onCreateDialogView(android.content.Context!);
+    method @Deprecated public abstract void onDialogClosed(boolean);
+    method @Deprecated public void onDismiss(android.content.DialogInterface!);
+    method @Deprecated protected void onPrepareDialogBuilder(android.app.AlertDialog.Builder!);
+    method @Deprecated public void onSaveInstanceState(android.os.Bundle);
+    field @Deprecated protected static final String ARG_KEY = "key";
   }
 
   public abstract class PreferenceDialogFragmentCompat extends androidx.fragment.app.DialogFragment implements android.content.DialogInterface.OnClickListener {
     ctor public PreferenceDialogFragmentCompat();
-    method public androidx.preference.DialogPreference getPreference();
-    method protected void onBindDialogView(android.view.View);
-    method public void onClick(android.content.DialogInterface, int);
-    method protected android.view.View onCreateDialogView(android.content.Context);
+    method public androidx.preference.DialogPreference! getPreference();
+    method protected void onBindDialogView(android.view.View!);
+    method public void onClick(android.content.DialogInterface!, int);
+    method protected android.view.View! onCreateDialogView(android.content.Context!);
     method public abstract void onDialogClosed(boolean);
-    method protected void onPrepareDialogBuilder(androidx.appcompat.app.AlertDialog.Builder);
-    field protected static final java.lang.String ARG_KEY = "key";
+    method protected void onPrepareDialogBuilder(androidx.appcompat.app.AlertDialog.Builder!);
+    field protected static final String ARG_KEY = "key";
   }
 
-  public abstract deprecated class PreferenceFragment extends android.app.Fragment implements androidx.preference.DialogPreference.TargetFragment androidx.preference.PreferenceManager.OnDisplayPreferenceDialogListener androidx.preference.PreferenceManager.OnNavigateToScreenListener androidx.preference.PreferenceManager.OnPreferenceTreeClickListener {
-    ctor public PreferenceFragment();
-    method public deprecated void addPreferencesFromResource(int);
-    method public deprecated androidx.preference.Preference findPreference(java.lang.CharSequence);
-    method public final deprecated androidx.recyclerview.widget.RecyclerView getListView();
-    method public deprecated androidx.preference.PreferenceManager getPreferenceManager();
-    method public deprecated androidx.preference.PreferenceScreen getPreferenceScreen();
-    method protected deprecated androidx.recyclerview.widget.RecyclerView.Adapter onCreateAdapter(androidx.preference.PreferenceScreen);
-    method public deprecated androidx.recyclerview.widget.RecyclerView.LayoutManager onCreateLayoutManager();
-    method public abstract deprecated void onCreatePreferences(android.os.Bundle, java.lang.String);
-    method public deprecated androidx.recyclerview.widget.RecyclerView onCreateRecyclerView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle);
-    method public deprecated void onDisplayPreferenceDialog(androidx.preference.Preference);
-    method public deprecated void onNavigateToScreen(androidx.preference.PreferenceScreen);
-    method public deprecated boolean onPreferenceTreeClick(androidx.preference.Preference);
-    method public deprecated void scrollToPreference(java.lang.String);
-    method public deprecated void scrollToPreference(androidx.preference.Preference);
-    method public deprecated void setDivider(android.graphics.drawable.Drawable);
-    method public deprecated void setDividerHeight(int);
-    method public deprecated void setPreferenceScreen(androidx.preference.PreferenceScreen);
-    method public deprecated void setPreferencesFromResource(int, java.lang.String);
-    field public static final deprecated java.lang.String ARG_PREFERENCE_ROOT = "androidx.preference.PreferenceFragmentCompat.PREFERENCE_ROOT";
+  @Deprecated public abstract class PreferenceFragment extends android.app.Fragment implements androidx.preference.DialogPreference.TargetFragment androidx.preference.PreferenceManager.OnDisplayPreferenceDialogListener androidx.preference.PreferenceManager.OnNavigateToScreenListener androidx.preference.PreferenceManager.OnPreferenceTreeClickListener {
+    ctor @Deprecated public PreferenceFragment();
+    method @Deprecated public void addPreferencesFromResource(@XmlRes int);
+    method @Deprecated public androidx.preference.Preference! findPreference(CharSequence!);
+    method @Deprecated public final androidx.recyclerview.widget.RecyclerView! getListView();
+    method @Deprecated public androidx.preference.PreferenceManager! getPreferenceManager();
+    method @Deprecated public androidx.preference.PreferenceScreen! getPreferenceScreen();
+    method @Deprecated public void onCreate(android.os.Bundle!);
+    method @Deprecated protected androidx.recyclerview.widget.RecyclerView.Adapter! onCreateAdapter(androidx.preference.PreferenceScreen!);
+    method @Deprecated public androidx.recyclerview.widget.RecyclerView.LayoutManager! onCreateLayoutManager();
+    method @Deprecated public abstract void onCreatePreferences(android.os.Bundle!, String!);
+    method @Deprecated public androidx.recyclerview.widget.RecyclerView! onCreateRecyclerView(android.view.LayoutInflater!, android.view.ViewGroup!, android.os.Bundle!);
+    method @Deprecated public android.view.View! onCreateView(android.view.LayoutInflater!, android.view.ViewGroup!, android.os.Bundle!);
+    method @Deprecated public void onDestroyView();
+    method @Deprecated public void onDisplayPreferenceDialog(androidx.preference.Preference!);
+    method @Deprecated public void onNavigateToScreen(androidx.preference.PreferenceScreen!);
+    method @Deprecated public boolean onPreferenceTreeClick(androidx.preference.Preference!);
+    method @Deprecated public void onSaveInstanceState(android.os.Bundle!);
+    method @Deprecated public void onStart();
+    method @Deprecated public void onStop();
+    method @Deprecated public void onViewCreated(android.view.View!, android.os.Bundle!);
+    method @Deprecated public void scrollToPreference(String!);
+    method @Deprecated public void scrollToPreference(androidx.preference.Preference!);
+    method @Deprecated public void setDivider(android.graphics.drawable.Drawable!);
+    method @Deprecated public void setDividerHeight(int);
+    method @Deprecated public void setPreferenceScreen(androidx.preference.PreferenceScreen!);
+    method @Deprecated public void setPreferencesFromResource(@XmlRes int, String?);
+    field @Deprecated public static final String ARG_PREFERENCE_ROOT = "androidx.preference.PreferenceFragmentCompat.PREFERENCE_ROOT";
   }
 
-  public static abstract interface PreferenceFragment.OnPreferenceDisplayDialogCallback {
-    method public abstract boolean onPreferenceDisplayDialog(androidx.preference.PreferenceFragment, androidx.preference.Preference);
+  @Deprecated public static interface PreferenceFragment.OnPreferenceDisplayDialogCallback {
+    method @Deprecated public boolean onPreferenceDisplayDialog(androidx.preference.PreferenceFragment, androidx.preference.Preference!);
   }
 
-  public static abstract interface PreferenceFragment.OnPreferenceStartFragmentCallback {
-    method public abstract boolean onPreferenceStartFragment(androidx.preference.PreferenceFragment, androidx.preference.Preference);
+  @Deprecated public static interface PreferenceFragment.OnPreferenceStartFragmentCallback {
+    method @Deprecated public boolean onPreferenceStartFragment(androidx.preference.PreferenceFragment!, androidx.preference.Preference!);
   }
 
-  public static abstract interface PreferenceFragment.OnPreferenceStartScreenCallback {
-    method public abstract boolean onPreferenceStartScreen(androidx.preference.PreferenceFragment, androidx.preference.PreferenceScreen);
+  @Deprecated public static interface PreferenceFragment.OnPreferenceStartScreenCallback {
+    method @Deprecated public boolean onPreferenceStartScreen(androidx.preference.PreferenceFragment!, androidx.preference.PreferenceScreen!);
   }
 
   public abstract class PreferenceFragmentCompat extends androidx.fragment.app.Fragment implements androidx.preference.DialogPreference.TargetFragment androidx.preference.PreferenceManager.OnDisplayPreferenceDialogListener androidx.preference.PreferenceManager.OnNavigateToScreenListener androidx.preference.PreferenceManager.OnPreferenceTreeClickListener {
     ctor public PreferenceFragmentCompat();
-    method public void addPreferencesFromResource(int);
-    method public androidx.preference.Preference findPreference(java.lang.CharSequence);
-    method public final androidx.recyclerview.widget.RecyclerView getListView();
-    method public androidx.preference.PreferenceManager getPreferenceManager();
-    method public androidx.preference.PreferenceScreen getPreferenceScreen();
-    method protected androidx.recyclerview.widget.RecyclerView.Adapter onCreateAdapter(androidx.preference.PreferenceScreen);
-    method public androidx.recyclerview.widget.RecyclerView.LayoutManager onCreateLayoutManager();
-    method public abstract void onCreatePreferences(android.os.Bundle, java.lang.String);
-    method public androidx.recyclerview.widget.RecyclerView onCreateRecyclerView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle);
-    method public void onDisplayPreferenceDialog(androidx.preference.Preference);
-    method public void onNavigateToScreen(androidx.preference.PreferenceScreen);
-    method public boolean onPreferenceTreeClick(androidx.preference.Preference);
-    method public void scrollToPreference(java.lang.String);
-    method public void scrollToPreference(androidx.preference.Preference);
-    method public void setDivider(android.graphics.drawable.Drawable);
+    method public void addPreferencesFromResource(@XmlRes int);
+    method public androidx.preference.Preference! findPreference(CharSequence!);
+    method public final androidx.recyclerview.widget.RecyclerView! getListView();
+    method public androidx.preference.PreferenceManager! getPreferenceManager();
+    method public androidx.preference.PreferenceScreen! getPreferenceScreen();
+    method protected androidx.recyclerview.widget.RecyclerView.Adapter! onCreateAdapter(androidx.preference.PreferenceScreen!);
+    method public androidx.recyclerview.widget.RecyclerView.LayoutManager! onCreateLayoutManager();
+    method public abstract void onCreatePreferences(android.os.Bundle!, String!);
+    method public androidx.recyclerview.widget.RecyclerView! onCreateRecyclerView(android.view.LayoutInflater!, android.view.ViewGroup!, android.os.Bundle!);
+    method public void onDisplayPreferenceDialog(androidx.preference.Preference!);
+    method public void onNavigateToScreen(androidx.preference.PreferenceScreen!);
+    method public boolean onPreferenceTreeClick(androidx.preference.Preference!);
+    method public void scrollToPreference(String!);
+    method public void scrollToPreference(androidx.preference.Preference!);
+    method public void setDivider(android.graphics.drawable.Drawable!);
     method public void setDividerHeight(int);
-    method public void setPreferenceScreen(androidx.preference.PreferenceScreen);
-    method public void setPreferencesFromResource(int, java.lang.String);
-    field public static final java.lang.String ARG_PREFERENCE_ROOT = "androidx.preference.PreferenceFragmentCompat.PREFERENCE_ROOT";
+    method public void setPreferenceScreen(androidx.preference.PreferenceScreen!);
+    method public void setPreferencesFromResource(@XmlRes int, String?);
+    field public static final String ARG_PREFERENCE_ROOT = "androidx.preference.PreferenceFragmentCompat.PREFERENCE_ROOT";
   }
 
-  public static abstract interface PreferenceFragmentCompat.OnPreferenceDisplayDialogCallback {
-    method public abstract boolean onPreferenceDisplayDialog(androidx.preference.PreferenceFragmentCompat, androidx.preference.Preference);
+  public static interface PreferenceFragmentCompat.OnPreferenceDisplayDialogCallback {
+    method public boolean onPreferenceDisplayDialog(androidx.preference.PreferenceFragmentCompat, androidx.preference.Preference!);
   }
 
-  public static abstract interface PreferenceFragmentCompat.OnPreferenceStartFragmentCallback {
-    method public abstract boolean onPreferenceStartFragment(androidx.preference.PreferenceFragmentCompat, androidx.preference.Preference);
+  public static interface PreferenceFragmentCompat.OnPreferenceStartFragmentCallback {
+    method public boolean onPreferenceStartFragment(androidx.preference.PreferenceFragmentCompat!, androidx.preference.Preference!);
   }
 
-  public static abstract interface PreferenceFragmentCompat.OnPreferenceStartScreenCallback {
-    method public abstract boolean onPreferenceStartScreen(androidx.preference.PreferenceFragmentCompat, androidx.preference.PreferenceScreen);
+  public static interface PreferenceFragmentCompat.OnPreferenceStartScreenCallback {
+    method public boolean onPreferenceStartScreen(androidx.preference.PreferenceFragmentCompat!, androidx.preference.PreferenceScreen!);
   }
 
   public abstract class PreferenceGroup extends androidx.preference.Preference {
-    ctor public PreferenceGroup(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public PreferenceGroup(android.content.Context, android.util.AttributeSet, int);
-    ctor public PreferenceGroup(android.content.Context, android.util.AttributeSet);
-    method public void addItemFromInflater(androidx.preference.Preference);
-    method public boolean addPreference(androidx.preference.Preference);
-    method protected void dispatchRestoreInstanceState(android.os.Bundle);
-    method protected void dispatchSaveInstanceState(android.os.Bundle);
-    method public boolean findAndRemovePreference(java.lang.CharSequence);
-    method public androidx.preference.Preference findPreference(java.lang.CharSequence);
+    ctor public PreferenceGroup(android.content.Context!, android.util.AttributeSet!, int, int);
+    ctor public PreferenceGroup(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public PreferenceGroup(android.content.Context!, android.util.AttributeSet!);
+    method public void addItemFromInflater(androidx.preference.Preference!);
+    method public boolean addPreference(androidx.preference.Preference!);
+    method protected void dispatchRestoreInstanceState(android.os.Bundle!);
+    method protected void dispatchSaveInstanceState(android.os.Bundle!);
+    method public boolean findAndRemovePreference(CharSequence!);
+    method public androidx.preference.Preference! findPreference(CharSequence!);
     method public int getInitialExpandedChildrenCount();
-    method public androidx.preference.Preference getPreference(int);
+    method public androidx.preference.Preference! getPreference(int);
     method public int getPreferenceCount();
     method protected boolean isOnSameScreenAsChildren();
     method public boolean isOrderingAsAdded();
-    method protected boolean onPrepareAddPreference(androidx.preference.Preference);
+    method protected boolean onPrepareAddPreference(androidx.preference.Preference!);
     method public void removeAll();
-    method public boolean removePreference(androidx.preference.Preference);
+    method public boolean removePreference(androidx.preference.Preference!);
     method public void setInitialExpandedChildrenCount(int);
     method public void setOrderingAsAdded(boolean);
   }
 
-  public static abstract interface PreferenceGroup.PreferencePositionCallback {
-    method public abstract int getPreferenceAdapterPosition(java.lang.String);
-    method public abstract int getPreferenceAdapterPosition(androidx.preference.Preference);
+  public static interface PreferenceGroup.PreferencePositionCallback {
+    method public int getPreferenceAdapterPosition(String!);
+    method public int getPreferenceAdapterPosition(androidx.preference.Preference!);
   }
 
   public class PreferenceManager {
-    method public androidx.preference.PreferenceScreen createPreferenceScreen(android.content.Context);
-    method public androidx.preference.Preference findPreference(java.lang.CharSequence);
-    method public android.content.Context getContext();
-    method public static android.content.SharedPreferences getDefaultSharedPreferences(android.content.Context);
-    method public androidx.preference.PreferenceManager.OnDisplayPreferenceDialogListener getOnDisplayPreferenceDialogListener();
-    method public androidx.preference.PreferenceManager.OnNavigateToScreenListener getOnNavigateToScreenListener();
-    method public androidx.preference.PreferenceManager.OnPreferenceTreeClickListener getOnPreferenceTreeClickListener();
-    method public androidx.preference.PreferenceManager.PreferenceComparisonCallback getPreferenceComparisonCallback();
-    method public androidx.preference.PreferenceDataStore getPreferenceDataStore();
-    method public androidx.preference.PreferenceScreen getPreferenceScreen();
-    method public android.content.SharedPreferences getSharedPreferences();
+    method public androidx.preference.PreferenceScreen! createPreferenceScreen(android.content.Context!);
+    method public androidx.preference.Preference! findPreference(CharSequence!);
+    method public android.content.Context! getContext();
+    method public static android.content.SharedPreferences! getDefaultSharedPreferences(android.content.Context!);
+    method public androidx.preference.PreferenceManager.OnDisplayPreferenceDialogListener! getOnDisplayPreferenceDialogListener();
+    method public androidx.preference.PreferenceManager.OnNavigateToScreenListener! getOnNavigateToScreenListener();
+    method public androidx.preference.PreferenceManager.OnPreferenceTreeClickListener! getOnPreferenceTreeClickListener();
+    method public androidx.preference.PreferenceManager.PreferenceComparisonCallback! getPreferenceComparisonCallback();
+    method public androidx.preference.PreferenceDataStore? getPreferenceDataStore();
+    method public androidx.preference.PreferenceScreen! getPreferenceScreen();
+    method public android.content.SharedPreferences! getSharedPreferences();
     method public int getSharedPreferencesMode();
-    method public java.lang.String getSharedPreferencesName();
+    method public String! getSharedPreferencesName();
     method public boolean isStorageDefault();
     method public boolean isStorageDeviceProtected();
-    method public static void setDefaultValues(android.content.Context, int, boolean);
-    method public static void setDefaultValues(android.content.Context, java.lang.String, int, int, boolean);
-    method public void setOnDisplayPreferenceDialogListener(androidx.preference.PreferenceManager.OnDisplayPreferenceDialogListener);
-    method public void setOnNavigateToScreenListener(androidx.preference.PreferenceManager.OnNavigateToScreenListener);
-    method public void setOnPreferenceTreeClickListener(androidx.preference.PreferenceManager.OnPreferenceTreeClickListener);
-    method public void setPreferenceComparisonCallback(androidx.preference.PreferenceManager.PreferenceComparisonCallback);
-    method public void setPreferenceDataStore(androidx.preference.PreferenceDataStore);
-    method public boolean setPreferences(androidx.preference.PreferenceScreen);
+    method public static void setDefaultValues(android.content.Context!, int, boolean);
+    method public static void setDefaultValues(android.content.Context!, String!, int, int, boolean);
+    method public void setOnDisplayPreferenceDialogListener(androidx.preference.PreferenceManager.OnDisplayPreferenceDialogListener!);
+    method public void setOnNavigateToScreenListener(androidx.preference.PreferenceManager.OnNavigateToScreenListener!);
+    method public void setOnPreferenceTreeClickListener(androidx.preference.PreferenceManager.OnPreferenceTreeClickListener!);
+    method public void setPreferenceComparisonCallback(androidx.preference.PreferenceManager.PreferenceComparisonCallback!);
+    method public void setPreferenceDataStore(androidx.preference.PreferenceDataStore!);
+    method public boolean setPreferences(androidx.preference.PreferenceScreen!);
     method public void setSharedPreferencesMode(int);
-    method public void setSharedPreferencesName(java.lang.String);
+    method public void setSharedPreferencesName(String!);
     method public void setStorageDefault();
     method public void setStorageDeviceProtected();
-    method public void showDialog(androidx.preference.Preference);
-    field public static final java.lang.String KEY_HAS_SET_DEFAULT_VALUES = "_has_set_default_values";
+    method public void showDialog(androidx.preference.Preference!);
+    field public static final String KEY_HAS_SET_DEFAULT_VALUES = "_has_set_default_values";
   }
 
-  public static abstract interface PreferenceManager.OnDisplayPreferenceDialogListener {
-    method public abstract void onDisplayPreferenceDialog(androidx.preference.Preference);
+  public static interface PreferenceManager.OnDisplayPreferenceDialogListener {
+    method public void onDisplayPreferenceDialog(androidx.preference.Preference!);
   }
 
-  public static abstract interface PreferenceManager.OnNavigateToScreenListener {
-    method public abstract void onNavigateToScreen(androidx.preference.PreferenceScreen);
+  public static interface PreferenceManager.OnNavigateToScreenListener {
+    method public void onNavigateToScreen(androidx.preference.PreferenceScreen!);
   }
 
-  public static abstract interface PreferenceManager.OnPreferenceTreeClickListener {
-    method public abstract boolean onPreferenceTreeClick(androidx.preference.Preference);
+  public static interface PreferenceManager.OnPreferenceTreeClickListener {
+    method public boolean onPreferenceTreeClick(androidx.preference.Preference!);
   }
 
-  public static abstract class PreferenceManager.PreferenceComparisonCallback {
+  public abstract static class PreferenceManager.PreferenceComparisonCallback {
     ctor public PreferenceManager.PreferenceComparisonCallback();
-    method public abstract boolean arePreferenceContentsTheSame(androidx.preference.Preference, androidx.preference.Preference);
-    method public abstract boolean arePreferenceItemsTheSame(androidx.preference.Preference, androidx.preference.Preference);
+    method public abstract boolean arePreferenceContentsTheSame(androidx.preference.Preference!, androidx.preference.Preference!);
+    method public abstract boolean arePreferenceItemsTheSame(androidx.preference.Preference!, androidx.preference.Preference!);
   }
 
   public static class PreferenceManager.SimplePreferenceComparisonCallback extends androidx.preference.PreferenceManager.PreferenceComparisonCallback {
     ctor public PreferenceManager.SimplePreferenceComparisonCallback();
-    method public boolean arePreferenceContentsTheSame(androidx.preference.Preference, androidx.preference.Preference);
-    method public boolean arePreferenceItemsTheSame(androidx.preference.Preference, androidx.preference.Preference);
+    method public boolean arePreferenceContentsTheSame(androidx.preference.Preference!, androidx.preference.Preference!);
+    method public boolean arePreferenceItemsTheSame(androidx.preference.Preference!, androidx.preference.Preference!);
   }
 
   public final class PreferenceScreen extends androidx.preference.PreferenceGroup {
@@ -441,7 +453,7 @@
   }
 
   public class PreferenceViewHolder extends androidx.recyclerview.widget.RecyclerView.ViewHolder {
-    method public android.view.View findViewById(int);
+    method public android.view.View! findViewById(@IdRes int);
     method public boolean isDividerAllowedAbove();
     method public boolean isDividerAllowedBelow();
     method public void setDividerAllowedAbove(boolean);
@@ -449,10 +461,10 @@
   }
 
   public class SeekBarPreference extends androidx.preference.Preference {
-    ctor public SeekBarPreference(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public SeekBarPreference(android.content.Context, android.util.AttributeSet, int);
-    ctor public SeekBarPreference(android.content.Context, android.util.AttributeSet);
-    ctor public SeekBarPreference(android.content.Context);
+    ctor public SeekBarPreference(android.content.Context!, android.util.AttributeSet!, int, int);
+    ctor public SeekBarPreference(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public SeekBarPreference(android.content.Context!, android.util.AttributeSet!);
+    ctor public SeekBarPreference(android.content.Context!);
     method public int getMax();
     method public int getMin();
     method public final int getSeekBarIncrement();
@@ -466,47 +478,47 @@
   }
 
   public class SwitchPreference extends androidx.preference.TwoStatePreference {
-    ctor public SwitchPreference(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public SwitchPreference(android.content.Context, android.util.AttributeSet, int);
-    ctor public SwitchPreference(android.content.Context, android.util.AttributeSet);
-    ctor public SwitchPreference(android.content.Context);
-    method public java.lang.CharSequence getSwitchTextOff();
-    method public java.lang.CharSequence getSwitchTextOn();
-    method public void setSwitchTextOff(java.lang.CharSequence);
+    ctor public SwitchPreference(android.content.Context!, android.util.AttributeSet!, int, int);
+    ctor public SwitchPreference(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public SwitchPreference(android.content.Context!, android.util.AttributeSet!);
+    ctor public SwitchPreference(android.content.Context!);
+    method public CharSequence! getSwitchTextOff();
+    method public CharSequence! getSwitchTextOn();
+    method public void setSwitchTextOff(CharSequence!);
     method public void setSwitchTextOff(int);
-    method public void setSwitchTextOn(java.lang.CharSequence);
+    method public void setSwitchTextOn(CharSequence!);
     method public void setSwitchTextOn(int);
   }
 
   public class SwitchPreferenceCompat extends androidx.preference.TwoStatePreference {
-    ctor public SwitchPreferenceCompat(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public SwitchPreferenceCompat(android.content.Context, android.util.AttributeSet, int);
-    ctor public SwitchPreferenceCompat(android.content.Context, android.util.AttributeSet);
-    ctor public SwitchPreferenceCompat(android.content.Context);
-    method public java.lang.CharSequence getSwitchTextOff();
-    method public java.lang.CharSequence getSwitchTextOn();
-    method public void setSwitchTextOff(java.lang.CharSequence);
+    ctor public SwitchPreferenceCompat(android.content.Context!, android.util.AttributeSet!, int, int);
+    ctor public SwitchPreferenceCompat(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public SwitchPreferenceCompat(android.content.Context!, android.util.AttributeSet!);
+    ctor public SwitchPreferenceCompat(android.content.Context!);
+    method public CharSequence! getSwitchTextOff();
+    method public CharSequence! getSwitchTextOn();
+    method public void setSwitchTextOff(CharSequence!);
     method public void setSwitchTextOff(int);
-    method public void setSwitchTextOn(java.lang.CharSequence);
+    method public void setSwitchTextOn(CharSequence!);
     method public void setSwitchTextOn(int);
   }
 
   public abstract class TwoStatePreference extends androidx.preference.Preference {
-    ctor public TwoStatePreference(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public TwoStatePreference(android.content.Context, android.util.AttributeSet, int);
-    ctor public TwoStatePreference(android.content.Context, android.util.AttributeSet);
-    ctor public TwoStatePreference(android.content.Context);
+    ctor public TwoStatePreference(android.content.Context!, android.util.AttributeSet!, int, int);
+    ctor public TwoStatePreference(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public TwoStatePreference(android.content.Context!, android.util.AttributeSet!);
+    ctor public TwoStatePreference(android.content.Context!);
     method public boolean getDisableDependentsState();
-    method public java.lang.CharSequence getSummaryOff();
-    method public java.lang.CharSequence getSummaryOn();
+    method public CharSequence! getSummaryOff();
+    method public CharSequence! getSummaryOn();
     method public boolean isChecked();
     method public void setChecked(boolean);
     method public void setDisableDependentsState(boolean);
-    method public void setSummaryOff(java.lang.CharSequence);
+    method public void setSummaryOff(CharSequence!);
     method public void setSummaryOff(int);
-    method public void setSummaryOn(java.lang.CharSequence);
+    method public void setSummaryOn(CharSequence!);
     method public void setSummaryOn(int);
-    method protected void syncSummaryView(androidx.preference.PreferenceViewHolder);
+    method protected void syncSummaryView(androidx.preference.PreferenceViewHolder!);
     field protected boolean mChecked;
   }
 
diff --git a/print/api/1.0.0.txt b/print/api/1.0.0.txt
index d614f94..1ba4459 100644
--- a/print/api/1.0.0.txt
+++ b/print/api/1.0.0.txt
@@ -1,3 +1,4 @@
+// Signature format: 2.0
 package androidx.print {
 
   public final class PrintHelper {
@@ -5,10 +6,10 @@
     method public int getColorMode();
     method public int getOrientation();
     method public int getScaleMode();
-    method public void printBitmap(java.lang.String, android.graphics.Bitmap);
-    method public void printBitmap(java.lang.String, android.graphics.Bitmap, androidx.print.PrintHelper.OnPrintFinishCallback);
-    method public void printBitmap(java.lang.String, android.net.Uri) throws java.io.FileNotFoundException;
-    method public void printBitmap(java.lang.String, android.net.Uri, androidx.print.PrintHelper.OnPrintFinishCallback) throws java.io.FileNotFoundException;
+    method public void printBitmap(String, android.graphics.Bitmap);
+    method public void printBitmap(String, android.graphics.Bitmap, androidx.print.PrintHelper.OnPrintFinishCallback?);
+    method public void printBitmap(String, android.net.Uri) throws java.io.FileNotFoundException;
+    method public void printBitmap(String, android.net.Uri, androidx.print.PrintHelper.OnPrintFinishCallback?) throws java.io.FileNotFoundException;
     method public void setColorMode(int);
     method public void setOrientation(int);
     method public void setScaleMode(int);
@@ -21,8 +22,8 @@
     field public static final int SCALE_MODE_FIT = 1; // 0x1
   }
 
-  public static abstract interface PrintHelper.OnPrintFinishCallback {
-    method public abstract void onFinish();
+  public static interface PrintHelper.OnPrintFinishCallback {
+    method public void onFinish();
   }
 
 }
diff --git a/recommendation/api/1.0.0.txt b/recommendation/api/1.0.0.txt
index 54f3538..d729b7c 100644
--- a/recommendation/api/1.0.0.txt
+++ b/recommendation/api/1.0.0.txt
@@ -1,64 +1,65 @@
+// Signature format: 2.0
 package androidx.recommendation.app {
 
   public final class ContentRecommendation {
-    method public java.lang.String getBackgroundImageUri();
+    method public String! getBackgroundImageUri();
     method public int getBadgeImageResourceId();
     method public int getColor();
-    method public android.graphics.Bitmap getContentImage();
-    method public androidx.recommendation.app.ContentRecommendation.IntentData getContentIntent();
-    method public java.lang.String[] getContentTypes();
-    method public androidx.recommendation.app.ContentRecommendation.IntentData getDismissIntent();
-    method public java.lang.String[] getGenres();
-    method public java.lang.String getGroup();
-    method public java.lang.String getIdTag();
-    method public java.lang.String getMaturityRating();
-    method public android.app.Notification getNotificationObject(android.content.Context);
-    method public java.lang.String getPricingType();
-    method public java.lang.String getPricingValue();
-    method public java.lang.String getPrimaryContentType();
+    method public android.graphics.Bitmap! getContentImage();
+    method public androidx.recommendation.app.ContentRecommendation.IntentData! getContentIntent();
+    method public String[]! getContentTypes();
+    method public androidx.recommendation.app.ContentRecommendation.IntentData! getDismissIntent();
+    method public String[]! getGenres();
+    method public String! getGroup();
+    method public String! getIdTag();
+    method public String! getMaturityRating();
+    method public android.app.Notification! getNotificationObject(android.content.Context!);
+    method public String! getPricingType();
+    method public String! getPricingValue();
+    method public String! getPrimaryContentType();
     method public int getProgressMax();
     method public int getProgressValue();
     method public long getRunningTime();
-    method public java.lang.String getSortKey();
-    method public java.lang.String getSourceName();
+    method public String! getSortKey();
+    method public String! getSourceName();
     method public int getStatus();
-    method public java.lang.String getText();
-    method public java.lang.String getTitle();
+    method public String! getText();
+    method public String! getTitle();
     method public boolean hasProgressInfo();
     method public boolean isAutoDismiss();
     method public void setAutoDismiss(boolean);
-    method public void setGroup(java.lang.String);
+    method public void setGroup(String!);
     method public void setProgress(int, int);
-    method public void setSortKey(java.lang.String);
-    method public void setStatus(int);
-    field public static final java.lang.String CONTENT_MATURITY_ALL = "android.contentMaturity.all";
-    field public static final java.lang.String CONTENT_MATURITY_HIGH = "android.contentMaturity.high";
-    field public static final java.lang.String CONTENT_MATURITY_LOW = "android.contentMaturity.low";
-    field public static final java.lang.String CONTENT_MATURITY_MEDIUM = "android.contentMaturity.medium";
-    field public static final java.lang.String CONTENT_PRICING_FREE = "android.contentPrice.free";
-    field public static final java.lang.String CONTENT_PRICING_PREORDER = "android.contentPrice.preorder";
-    field public static final java.lang.String CONTENT_PRICING_PURCHASE = "android.contentPrice.purchase";
-    field public static final java.lang.String CONTENT_PRICING_RENTAL = "android.contentPrice.rental";
-    field public static final java.lang.String CONTENT_PRICING_SUBSCRIPTION = "android.contentPrice.subscription";
+    method public void setSortKey(String!);
+    method public void setStatus(@androidx.recommendation.app.ContentRecommendation.ContentStatus int);
+    field public static final String CONTENT_MATURITY_ALL = "android.contentMaturity.all";
+    field public static final String CONTENT_MATURITY_HIGH = "android.contentMaturity.high";
+    field public static final String CONTENT_MATURITY_LOW = "android.contentMaturity.low";
+    field public static final String CONTENT_MATURITY_MEDIUM = "android.contentMaturity.medium";
+    field public static final String CONTENT_PRICING_FREE = "android.contentPrice.free";
+    field public static final String CONTENT_PRICING_PREORDER = "android.contentPrice.preorder";
+    field public static final String CONTENT_PRICING_PURCHASE = "android.contentPrice.purchase";
+    field public static final String CONTENT_PRICING_RENTAL = "android.contentPrice.rental";
+    field public static final String CONTENT_PRICING_SUBSCRIPTION = "android.contentPrice.subscription";
     field public static final int CONTENT_STATUS_AVAILABLE = 2; // 0x2
     field public static final int CONTENT_STATUS_PENDING = 1; // 0x1
     field public static final int CONTENT_STATUS_READY = 0; // 0x0
     field public static final int CONTENT_STATUS_UNAVAILABLE = 3; // 0x3
-    field public static final java.lang.String CONTENT_TYPE_APP = "android.contentType.app";
-    field public static final java.lang.String CONTENT_TYPE_BOOK = "android.contentType.book";
-    field public static final java.lang.String CONTENT_TYPE_COMIC = "android.contentType.comic";
-    field public static final java.lang.String CONTENT_TYPE_GAME = "android.contentType.game";
-    field public static final java.lang.String CONTENT_TYPE_MAGAZINE = "android.contentType.magazine";
-    field public static final java.lang.String CONTENT_TYPE_MOVIE = "android.contentType.movie";
-    field public static final java.lang.String CONTENT_TYPE_MUSIC = "android.contentType.music";
-    field public static final java.lang.String CONTENT_TYPE_NEWS = "android.contentType.news";
-    field public static final java.lang.String CONTENT_TYPE_PODCAST = "android.contentType.podcast";
-    field public static final java.lang.String CONTENT_TYPE_RADIO = "android.contentType.radio";
-    field public static final java.lang.String CONTENT_TYPE_SERIAL = "android.contentType.serial";
-    field public static final java.lang.String CONTENT_TYPE_SPORTS = "android.contentType.sports";
-    field public static final java.lang.String CONTENT_TYPE_TRAILER = "android.contentType.trailer";
-    field public static final java.lang.String CONTENT_TYPE_VIDEO = "android.contentType.video";
-    field public static final java.lang.String CONTENT_TYPE_WEBSITE = "android.contentType.website";
+    field public static final String CONTENT_TYPE_APP = "android.contentType.app";
+    field public static final String CONTENT_TYPE_BOOK = "android.contentType.book";
+    field public static final String CONTENT_TYPE_COMIC = "android.contentType.comic";
+    field public static final String CONTENT_TYPE_GAME = "android.contentType.game";
+    field public static final String CONTENT_TYPE_MAGAZINE = "android.contentType.magazine";
+    field public static final String CONTENT_TYPE_MOVIE = "android.contentType.movie";
+    field public static final String CONTENT_TYPE_MUSIC = "android.contentType.music";
+    field public static final String CONTENT_TYPE_NEWS = "android.contentType.news";
+    field public static final String CONTENT_TYPE_PODCAST = "android.contentType.podcast";
+    field public static final String CONTENT_TYPE_RADIO = "android.contentType.radio";
+    field public static final String CONTENT_TYPE_SERIAL = "android.contentType.serial";
+    field public static final String CONTENT_TYPE_SPORTS = "android.contentType.sports";
+    field public static final String CONTENT_TYPE_TRAILER = "android.contentType.trailer";
+    field public static final String CONTENT_TYPE_VIDEO = "android.contentType.video";
+    field public static final String CONTENT_TYPE_WEBSITE = "android.contentType.website";
     field public static final int INTENT_TYPE_ACTIVITY = 1; // 0x1
     field public static final int INTENT_TYPE_BROADCAST = 2; // 0x2
     field public static final int INTENT_TYPE_SERVICE = 3; // 0x3
@@ -66,66 +67,66 @@
 
   public static final class ContentRecommendation.Builder {
     ctor public ContentRecommendation.Builder();
-    method public androidx.recommendation.app.ContentRecommendation build();
-    method public androidx.recommendation.app.ContentRecommendation.Builder setAutoDismiss(boolean);
-    method public androidx.recommendation.app.ContentRecommendation.Builder setBackgroundImageUri(java.lang.String);
-    method public androidx.recommendation.app.ContentRecommendation.Builder setBadgeIcon(int);
-    method public androidx.recommendation.app.ContentRecommendation.Builder setColor(int);
-    method public androidx.recommendation.app.ContentRecommendation.Builder setContentImage(android.graphics.Bitmap);
-    method public androidx.recommendation.app.ContentRecommendation.Builder setContentIntentData(int, android.content.Intent, int, android.os.Bundle);
-    method public androidx.recommendation.app.ContentRecommendation.Builder setContentTypes(java.lang.String[]);
-    method public androidx.recommendation.app.ContentRecommendation.Builder setDismissIntentData(int, android.content.Intent, int, android.os.Bundle);
-    method public androidx.recommendation.app.ContentRecommendation.Builder setGenres(java.lang.String[]);
-    method public androidx.recommendation.app.ContentRecommendation.Builder setGroup(java.lang.String);
-    method public androidx.recommendation.app.ContentRecommendation.Builder setIdTag(java.lang.String);
-    method public androidx.recommendation.app.ContentRecommendation.Builder setMaturityRating(java.lang.String);
-    method public androidx.recommendation.app.ContentRecommendation.Builder setPricingInformation(java.lang.String, java.lang.String);
-    method public androidx.recommendation.app.ContentRecommendation.Builder setProgress(int, int);
-    method public androidx.recommendation.app.ContentRecommendation.Builder setRunningTime(long);
-    method public androidx.recommendation.app.ContentRecommendation.Builder setSortKey(java.lang.String);
-    method public androidx.recommendation.app.ContentRecommendation.Builder setSourceName(java.lang.String);
-    method public androidx.recommendation.app.ContentRecommendation.Builder setStatus(int);
-    method public androidx.recommendation.app.ContentRecommendation.Builder setText(java.lang.String);
-    method public androidx.recommendation.app.ContentRecommendation.Builder setTitle(java.lang.String);
+    method public androidx.recommendation.app.ContentRecommendation! build();
+    method public androidx.recommendation.app.ContentRecommendation.Builder! setAutoDismiss(boolean);
+    method public androidx.recommendation.app.ContentRecommendation.Builder! setBackgroundImageUri(String?);
+    method public androidx.recommendation.app.ContentRecommendation.Builder! setBadgeIcon(@DrawableRes int);
+    method public androidx.recommendation.app.ContentRecommendation.Builder! setColor(@ColorInt int);
+    method public androidx.recommendation.app.ContentRecommendation.Builder! setContentImage(android.graphics.Bitmap!);
+    method public androidx.recommendation.app.ContentRecommendation.Builder! setContentIntentData(@androidx.recommendation.app.ContentRecommendation.IntentType int, android.content.Intent!, int, android.os.Bundle?);
+    method public androidx.recommendation.app.ContentRecommendation.Builder! setContentTypes(String[]!);
+    method public androidx.recommendation.app.ContentRecommendation.Builder! setDismissIntentData(@androidx.recommendation.app.ContentRecommendation.IntentType int, android.content.Intent?, int, android.os.Bundle?);
+    method public androidx.recommendation.app.ContentRecommendation.Builder! setGenres(String[]!);
+    method public androidx.recommendation.app.ContentRecommendation.Builder! setGroup(String?);
+    method public androidx.recommendation.app.ContentRecommendation.Builder! setIdTag(String!);
+    method public androidx.recommendation.app.ContentRecommendation.Builder! setMaturityRating(@androidx.recommendation.app.ContentRecommendation.ContentMaturity String!);
+    method public androidx.recommendation.app.ContentRecommendation.Builder! setPricingInformation(@androidx.recommendation.app.ContentRecommendation.ContentPricing String!, String?);
+    method public androidx.recommendation.app.ContentRecommendation.Builder! setProgress(int, int);
+    method public androidx.recommendation.app.ContentRecommendation.Builder! setRunningTime(long);
+    method public androidx.recommendation.app.ContentRecommendation.Builder! setSortKey(String?);
+    method public androidx.recommendation.app.ContentRecommendation.Builder! setSourceName(String?);
+    method public androidx.recommendation.app.ContentRecommendation.Builder! setStatus(@androidx.recommendation.app.ContentRecommendation.ContentStatus int);
+    method public androidx.recommendation.app.ContentRecommendation.Builder! setText(String?);
+    method public androidx.recommendation.app.ContentRecommendation.Builder! setTitle(String!);
   }
 
-  public static abstract class ContentRecommendation.ContentMaturity implements java.lang.annotation.Annotation {
+  @StringDef({androidx.recommendation.app.ContentRecommendation.CONTENT_MATURITY_ALL, androidx.recommendation.app.ContentRecommendation.CONTENT_MATURITY_LOW, androidx.recommendation.app.ContentRecommendation.CONTENT_MATURITY_MEDIUM, androidx.recommendation.app.ContentRecommendation.CONTENT_MATURITY_HIGH}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ContentRecommendation.ContentMaturity {
   }
 
-  public static abstract class ContentRecommendation.ContentPricing implements java.lang.annotation.Annotation {
+  @StringDef({androidx.recommendation.app.ContentRecommendation.CONTENT_PRICING_FREE, androidx.recommendation.app.ContentRecommendation.CONTENT_PRICING_RENTAL, androidx.recommendation.app.ContentRecommendation.CONTENT_PRICING_PURCHASE, androidx.recommendation.app.ContentRecommendation.CONTENT_PRICING_PREORDER, androidx.recommendation.app.ContentRecommendation.CONTENT_PRICING_SUBSCRIPTION}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ContentRecommendation.ContentPricing {
   }
 
-  public static abstract class ContentRecommendation.ContentStatus implements java.lang.annotation.Annotation {
+  @IntDef({androidx.recommendation.app.ContentRecommendation.CONTENT_STATUS_READY, androidx.recommendation.app.ContentRecommendation.CONTENT_STATUS_PENDING, androidx.recommendation.app.ContentRecommendation.CONTENT_STATUS_AVAILABLE, androidx.recommendation.app.ContentRecommendation.CONTENT_STATUS_UNAVAILABLE}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ContentRecommendation.ContentStatus {
   }
 
-  public static abstract class ContentRecommendation.ContentType implements java.lang.annotation.Annotation {
+  @StringDef({androidx.recommendation.app.ContentRecommendation.CONTENT_TYPE_VIDEO, androidx.recommendation.app.ContentRecommendation.CONTENT_TYPE_MOVIE, androidx.recommendation.app.ContentRecommendation.CONTENT_TYPE_TRAILER, androidx.recommendation.app.ContentRecommendation.CONTENT_TYPE_SERIAL, androidx.recommendation.app.ContentRecommendation.CONTENT_TYPE_MUSIC, androidx.recommendation.app.ContentRecommendation.CONTENT_TYPE_RADIO, androidx.recommendation.app.ContentRecommendation.CONTENT_TYPE_PODCAST, androidx.recommendation.app.ContentRecommendation.CONTENT_TYPE_NEWS, androidx.recommendation.app.ContentRecommendation.CONTENT_TYPE_SPORTS, androidx.recommendation.app.ContentRecommendation.CONTENT_TYPE_APP, androidx.recommendation.app.ContentRecommendation.CONTENT_TYPE_GAME, androidx.recommendation.app.ContentRecommendation.CONTENT_TYPE_BOOK, androidx.recommendation.app.ContentRecommendation.CONTENT_TYPE_COMIC, androidx.recommendation.app.ContentRecommendation.CONTENT_TYPE_MAGAZINE, androidx.recommendation.app.ContentRecommendation.CONTENT_TYPE_WEBSITE}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ContentRecommendation.ContentType {
   }
 
   public static class ContentRecommendation.IntentData {
     ctor public ContentRecommendation.IntentData();
   }
 
-  public static abstract class ContentRecommendation.IntentType implements java.lang.annotation.Annotation {
+  @IntDef({androidx.recommendation.app.ContentRecommendation.INTENT_TYPE_ACTIVITY, androidx.recommendation.app.ContentRecommendation.INTENT_TYPE_BROADCAST, androidx.recommendation.app.ContentRecommendation.INTENT_TYPE_SERVICE}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ContentRecommendation.IntentType {
   }
 
   public final class RecommendationExtender implements android.app.Notification.Extender {
     ctor public RecommendationExtender();
-    ctor public RecommendationExtender(android.app.Notification);
-    method public android.app.Notification.Builder extend(android.app.Notification.Builder);
-    method public java.lang.String[] getContentTypes();
-    method public java.lang.String[] getGenres();
-    method public java.lang.String getMaturityRating();
-    method public java.lang.String getPricingType();
-    method public java.lang.String getPricingValue();
-    method public java.lang.String getPrimaryContentType();
+    ctor public RecommendationExtender(android.app.Notification!);
+    method public android.app.Notification.Builder! extend(android.app.Notification.Builder!);
+    method public String[]! getContentTypes();
+    method public String[]! getGenres();
+    method public String! getMaturityRating();
+    method public String! getPricingType();
+    method public String! getPricingValue();
+    method public String! getPrimaryContentType();
     method public long getRunningTime();
     method public int getStatus();
-    method public androidx.recommendation.app.RecommendationExtender setContentTypes(java.lang.String[]);
-    method public androidx.recommendation.app.RecommendationExtender setGenres(java.lang.String[]);
-    method public androidx.recommendation.app.RecommendationExtender setMaturityRating(java.lang.String);
-    method public androidx.recommendation.app.RecommendationExtender setPricingInformation(java.lang.String, java.lang.String);
-    method public androidx.recommendation.app.RecommendationExtender setRunningTime(long);
-    method public androidx.recommendation.app.RecommendationExtender setStatus(int);
+    method public androidx.recommendation.app.RecommendationExtender! setContentTypes(String[]!);
+    method public androidx.recommendation.app.RecommendationExtender! setGenres(String[]!);
+    method public androidx.recommendation.app.RecommendationExtender! setMaturityRating(@androidx.recommendation.app.ContentRecommendation.ContentMaturity String!);
+    method public androidx.recommendation.app.RecommendationExtender! setPricingInformation(@androidx.recommendation.app.ContentRecommendation.ContentPricing String!, String!);
+    method public androidx.recommendation.app.RecommendationExtender! setRunningTime(long);
+    method public androidx.recommendation.app.RecommendationExtender! setStatus(@androidx.recommendation.app.ContentRecommendation.ContentStatus int);
   }
 
 }
diff --git a/recyclerview/recyclerview/api/current.txt b/recyclerview/recyclerview/api/current.txt
index fb04788..27dd79e 100644
--- a/recyclerview/recyclerview/api/current.txt
+++ b/recyclerview/recyclerview/api/current.txt
@@ -1,8 +1,9 @@
+// Signature format: 2.0
 package androidx.recyclerview.widget {
 
   public final class AdapterListUpdateCallback implements androidx.recyclerview.widget.ListUpdateCallback {
     ctor public AdapterListUpdateCallback(androidx.recyclerview.widget.RecyclerView.Adapter);
-    method public void onChanged(int, int, java.lang.Object);
+    method public void onChanged(int, int, Object!);
     method public void onInserted(int, int);
     method public void onMoved(int, int);
     method public void onRemoved(int, int);
@@ -16,7 +17,7 @@
   public static final class AsyncDifferConfig.Builder<T> {
     ctor public AsyncDifferConfig.Builder(androidx.recyclerview.widget.DiffUtil.ItemCallback<T>);
     method public androidx.recyclerview.widget.AsyncDifferConfig<T> build();
-    method public androidx.recyclerview.widget.AsyncDifferConfig.Builder<T> setBackgroundThreadExecutor(java.util.concurrent.Executor);
+    method public androidx.recyclerview.widget.AsyncDifferConfig.Builder<T> setBackgroundThreadExecutor(java.util.concurrent.Executor!);
   }
 
   public class AsyncListDiffer<T> {
@@ -25,36 +26,36 @@
     method public void addListListener(androidx.recyclerview.widget.AsyncListDiffer.ListListener<T>);
     method public java.util.List<T> getCurrentList();
     method public void removeListListener(androidx.recyclerview.widget.AsyncListDiffer.ListListener<T>);
-    method public void submitList(java.util.List<T>);
-    method public void submitList(java.util.List<T>, java.lang.Runnable);
+    method public void submitList(java.util.List<T>?);
+    method public void submitList(java.util.List<T>?, Runnable?);
   }
 
-  public static abstract interface AsyncListDiffer.ListListener<T> {
-    method public abstract void onCurrentListChanged(java.util.List<T>, java.util.List<T>);
+  public static interface AsyncListDiffer.ListListener<T> {
+    method public void onCurrentListChanged(java.util.List<T>, java.util.List<T>);
   }
 
   public class AsyncListUtil<T> {
-    ctor public AsyncListUtil(java.lang.Class<T>, int, androidx.recyclerview.widget.AsyncListUtil.DataCallback<T>, androidx.recyclerview.widget.AsyncListUtil.ViewCallback);
-    method public T getItem(int);
+    ctor public AsyncListUtil(Class<T>, int, androidx.recyclerview.widget.AsyncListUtil.DataCallback<T>, androidx.recyclerview.widget.AsyncListUtil.ViewCallback);
+    method public T? getItem(int);
     method public int getItemCount();
     method public void onRangeChanged();
     method public void refresh();
   }
 
-  public static abstract class AsyncListUtil.DataCallback<T> {
+  public abstract static class AsyncListUtil.DataCallback<T> {
     ctor public AsyncListUtil.DataCallback();
-    method public abstract void fillData(T[], int, int);
-    method public int getMaxCachedTiles();
-    method public void recycleData(T[], int);
-    method public abstract int refreshData();
+    method @WorkerThread public abstract void fillData(T[], int, int);
+    method @WorkerThread public int getMaxCachedTiles();
+    method @WorkerThread public void recycleData(T[], int);
+    method @WorkerThread public abstract int refreshData();
   }
 
-  public static abstract class AsyncListUtil.ViewCallback {
+  public abstract static class AsyncListUtil.ViewCallback {
     ctor public AsyncListUtil.ViewCallback();
-    method public void extendRangeInto(int[], int[], int);
-    method public abstract void getItemRangeInto(int[]);
-    method public abstract void onDataRefresh();
-    method public abstract void onItemLoaded(int);
+    method @UiThread public void extendRangeInto(int[], int[], int);
+    method @UiThread public abstract void getItemRangeInto(int[]);
+    method @UiThread public abstract void onDataRefresh();
+    method @UiThread public abstract void onItemLoaded(int);
     field public static final int HINT_SCROLL_ASC = 2; // 0x2
     field public static final int HINT_SCROLL_DESC = 1; // 0x1
     field public static final int HINT_SCROLL_NONE = 0; // 0x0
@@ -63,7 +64,7 @@
   public class BatchingListUpdateCallback implements androidx.recyclerview.widget.ListUpdateCallback {
     ctor public BatchingListUpdateCallback(androidx.recyclerview.widget.ListUpdateCallback);
     method public void dispatchLastEvent();
-    method public void onChanged(int, int, java.lang.Object);
+    method public void onChanged(int, int, Object!);
     method public void onInserted(int, int);
     method public void onMoved(int, int);
     method public void onRemoved(int, int);
@@ -71,11 +72,11 @@
 
   public class DefaultItemAnimator extends androidx.recyclerview.widget.SimpleItemAnimator {
     ctor public DefaultItemAnimator();
-    method public boolean animateAdd(androidx.recyclerview.widget.RecyclerView.ViewHolder);
-    method public boolean animateChange(androidx.recyclerview.widget.RecyclerView.ViewHolder, androidx.recyclerview.widget.RecyclerView.ViewHolder, int, int, int, int);
-    method public boolean animateMove(androidx.recyclerview.widget.RecyclerView.ViewHolder, int, int, int, int);
-    method public boolean animateRemove(androidx.recyclerview.widget.RecyclerView.ViewHolder);
-    method public void endAnimation(androidx.recyclerview.widget.RecyclerView.ViewHolder);
+    method public boolean animateAdd(androidx.recyclerview.widget.RecyclerView.ViewHolder!);
+    method public boolean animateChange(androidx.recyclerview.widget.RecyclerView.ViewHolder!, androidx.recyclerview.widget.RecyclerView.ViewHolder!, int, int, int, int);
+    method public boolean animateMove(androidx.recyclerview.widget.RecyclerView.ViewHolder!, int, int, int, int);
+    method public boolean animateRemove(androidx.recyclerview.widget.RecyclerView.ViewHolder!);
+    method public void endAnimation(androidx.recyclerview.widget.RecyclerView.ViewHolder!);
     method public void endAnimations();
     method public boolean isRunning();
     method public void runPendingAnimations();
@@ -86,32 +87,32 @@
     method public static androidx.recyclerview.widget.DiffUtil.DiffResult calculateDiff(androidx.recyclerview.widget.DiffUtil.Callback, boolean);
   }
 
-  public static abstract class DiffUtil.Callback {
+  public abstract static class DiffUtil.Callback {
     ctor public DiffUtil.Callback();
     method public abstract boolean areContentsTheSame(int, int);
     method public abstract boolean areItemsTheSame(int, int);
-    method public java.lang.Object getChangePayload(int, int);
+    method public Object? getChangePayload(int, int);
     method public abstract int getNewListSize();
     method public abstract int getOldListSize();
   }
 
   public static class DiffUtil.DiffResult {
-    method public int convertNewPositionToOld(int);
-    method public int convertOldPositionToNew(int);
+    method public int convertNewPositionToOld(@IntRange(from=0) int);
+    method public int convertOldPositionToNew(@IntRange(from=0) int);
     method public void dispatchUpdatesTo(androidx.recyclerview.widget.RecyclerView.Adapter);
     method public void dispatchUpdatesTo(androidx.recyclerview.widget.ListUpdateCallback);
     field public static final int NO_POSITION = -1; // 0xffffffff
   }
 
-  public static abstract class DiffUtil.ItemCallback<T> {
+  public abstract static class DiffUtil.ItemCallback<T> {
     ctor public DiffUtil.ItemCallback();
     method public abstract boolean areContentsTheSame(T, T);
     method public abstract boolean areItemsTheSame(T, T);
-    method public java.lang.Object getChangePayload(T, T);
+    method public Object? getChangePayload(T, T);
   }
 
   public class DividerItemDecoration extends androidx.recyclerview.widget.RecyclerView.ItemDecoration {
-    ctor public DividerItemDecoration(android.content.Context, int);
+    ctor public DividerItemDecoration(android.content.Context!, int);
     method public void setDrawable(android.graphics.drawable.Drawable);
     method public void setOrientation(int);
     field public static final int HORIZONTAL = 0; // 0x0
@@ -119,13 +120,13 @@
   }
 
   public class GridLayoutManager extends androidx.recyclerview.widget.LinearLayoutManager {
-    ctor public GridLayoutManager(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public GridLayoutManager(android.content.Context, int);
-    ctor public GridLayoutManager(android.content.Context, int, int, boolean);
+    ctor public GridLayoutManager(android.content.Context!, android.util.AttributeSet!, int, int);
+    ctor public GridLayoutManager(android.content.Context!, int);
+    ctor public GridLayoutManager(android.content.Context!, int, int, boolean);
     method public int getSpanCount();
-    method public androidx.recyclerview.widget.GridLayoutManager.SpanSizeLookup getSpanSizeLookup();
+    method public androidx.recyclerview.widget.GridLayoutManager.SpanSizeLookup! getSpanSizeLookup();
     method public void setSpanCount(int);
-    method public void setSpanSizeLookup(androidx.recyclerview.widget.GridLayoutManager.SpanSizeLookup);
+    method public void setSpanSizeLookup(androidx.recyclerview.widget.GridLayoutManager.SpanSizeLookup!);
     field public static final int DEFAULT_SPAN_COUNT = -1; // 0xffffffff
   }
 
@@ -135,17 +136,17 @@
   }
 
   public static class GridLayoutManager.LayoutParams extends androidx.recyclerview.widget.RecyclerView.LayoutParams {
-    ctor public GridLayoutManager.LayoutParams(android.content.Context, android.util.AttributeSet);
+    ctor public GridLayoutManager.LayoutParams(android.content.Context!, android.util.AttributeSet!);
     ctor public GridLayoutManager.LayoutParams(int, int);
-    ctor public GridLayoutManager.LayoutParams(android.view.ViewGroup.MarginLayoutParams);
-    ctor public GridLayoutManager.LayoutParams(android.view.ViewGroup.LayoutParams);
-    ctor public GridLayoutManager.LayoutParams(androidx.recyclerview.widget.RecyclerView.LayoutParams);
+    ctor public GridLayoutManager.LayoutParams(android.view.ViewGroup.MarginLayoutParams!);
+    ctor public GridLayoutManager.LayoutParams(android.view.ViewGroup.LayoutParams!);
+    ctor public GridLayoutManager.LayoutParams(androidx.recyclerview.widget.RecyclerView.LayoutParams!);
     method public int getSpanIndex();
     method public int getSpanSize();
     field public static final int INVALID_SPAN_ID = -1; // 0xffffffff
   }
 
-  public static abstract class GridLayoutManager.SpanSizeLookup {
+  public abstract static class GridLayoutManager.SpanSizeLookup {
     ctor public GridLayoutManager.SpanSizeLookup();
     method public int getSpanGroupIndex(int, int);
     method public int getSpanIndex(int, int);
@@ -157,7 +158,7 @@
 
   public class ItemTouchHelper extends androidx.recyclerview.widget.RecyclerView.ItemDecoration implements androidx.recyclerview.widget.RecyclerView.OnChildAttachStateChangeListener {
     ctor public ItemTouchHelper(androidx.recyclerview.widget.ItemTouchHelper.Callback);
-    method public void attachToRecyclerView(androidx.recyclerview.widget.RecyclerView);
+    method public void attachToRecyclerView(androidx.recyclerview.widget.RecyclerView?);
     method public void onChildViewAttachedToWindow(android.view.View);
     method public void onChildViewDetachedFromWindow(android.view.View);
     method public void startDrag(androidx.recyclerview.widget.RecyclerView.ViewHolder);
@@ -176,10 +177,10 @@
     field public static final int UP = 1; // 0x1
   }
 
-  public static abstract class ItemTouchHelper.Callback {
+  public abstract static class ItemTouchHelper.Callback {
     ctor public ItemTouchHelper.Callback();
     method public boolean canDropOver(androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.widget.RecyclerView.ViewHolder, androidx.recyclerview.widget.RecyclerView.ViewHolder);
-    method public androidx.recyclerview.widget.RecyclerView.ViewHolder chooseDropTarget(androidx.recyclerview.widget.RecyclerView.ViewHolder, java.util.List<androidx.recyclerview.widget.RecyclerView.ViewHolder>, int, int);
+    method public androidx.recyclerview.widget.RecyclerView.ViewHolder! chooseDropTarget(androidx.recyclerview.widget.RecyclerView.ViewHolder, java.util.List<androidx.recyclerview.widget.RecyclerView.ViewHolder>, int, int);
     method public void clearView(androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.widget.RecyclerView.ViewHolder);
     method public int convertToAbsoluteDirection(int, int);
     method public static int convertToRelativeDirection(int, int);
@@ -197,16 +198,16 @@
     method public static int makeFlag(int, int);
     method public static int makeMovementFlags(int, int);
     method public void onChildDraw(android.graphics.Canvas, androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.widget.RecyclerView.ViewHolder, float, float, int, boolean);
-    method public void onChildDrawOver(android.graphics.Canvas, androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.widget.RecyclerView.ViewHolder, float, float, int, boolean);
+    method public void onChildDrawOver(android.graphics.Canvas, androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.widget.RecyclerView.ViewHolder!, float, float, int, boolean);
     method public abstract boolean onMove(androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.widget.RecyclerView.ViewHolder, androidx.recyclerview.widget.RecyclerView.ViewHolder);
     method public void onMoved(androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.widget.RecyclerView.ViewHolder, int, androidx.recyclerview.widget.RecyclerView.ViewHolder, int, int, int);
-    method public void onSelectedChanged(androidx.recyclerview.widget.RecyclerView.ViewHolder, int);
+    method public void onSelectedChanged(androidx.recyclerview.widget.RecyclerView.ViewHolder?, int);
     method public abstract void onSwiped(androidx.recyclerview.widget.RecyclerView.ViewHolder, int);
     field public static final int DEFAULT_DRAG_ANIMATION_DURATION = 200; // 0xc8
     field public static final int DEFAULT_SWIPE_ANIMATION_DURATION = 250; // 0xfa
   }
 
-  public static abstract class ItemTouchHelper.SimpleCallback extends androidx.recyclerview.widget.ItemTouchHelper.Callback {
+  public abstract static class ItemTouchHelper.SimpleCallback extends androidx.recyclerview.widget.ItemTouchHelper.Callback {
     ctor public ItemTouchHelper.SimpleCallback(int, int);
     method public int getDragDirs(androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.widget.RecyclerView.ViewHolder);
     method public int getMovementFlags(androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.widget.RecyclerView.ViewHolder);
@@ -215,28 +216,28 @@
     method public void setDefaultSwipeDirs(int);
   }
 
-  public static abstract interface ItemTouchHelper.ViewDropHandler {
-    method public abstract void prepareForDrop(android.view.View, android.view.View, int, int);
+  public static interface ItemTouchHelper.ViewDropHandler {
+    method public void prepareForDrop(android.view.View, android.view.View, int, int);
   }
 
-  public abstract interface ItemTouchUIUtil {
-    method public abstract void clearView(android.view.View);
-    method public abstract void onDraw(android.graphics.Canvas, androidx.recyclerview.widget.RecyclerView, android.view.View, float, float, int, boolean);
-    method public abstract void onDrawOver(android.graphics.Canvas, androidx.recyclerview.widget.RecyclerView, android.view.View, float, float, int, boolean);
-    method public abstract void onSelected(android.view.View);
+  public interface ItemTouchUIUtil {
+    method public void clearView(android.view.View!);
+    method public void onDraw(android.graphics.Canvas!, androidx.recyclerview.widget.RecyclerView!, android.view.View!, float, float, int, boolean);
+    method public void onDrawOver(android.graphics.Canvas!, androidx.recyclerview.widget.RecyclerView!, android.view.View!, float, float, int, boolean);
+    method public void onSelected(android.view.View!);
   }
 
   public class LinearLayoutManager extends androidx.recyclerview.widget.RecyclerView.LayoutManager implements androidx.recyclerview.widget.ItemTouchHelper.ViewDropHandler androidx.recyclerview.widget.RecyclerView.SmoothScroller.ScrollVectorProvider {
-    ctor public LinearLayoutManager(android.content.Context);
-    ctor public LinearLayoutManager(android.content.Context, int, boolean);
-    ctor public LinearLayoutManager(android.content.Context, android.util.AttributeSet, int, int);
-    method public android.graphics.PointF computeScrollVectorForPosition(int);
+    ctor public LinearLayoutManager(android.content.Context!);
+    ctor public LinearLayoutManager(android.content.Context!, int, boolean);
+    ctor public LinearLayoutManager(android.content.Context!, android.util.AttributeSet!, int, int);
+    method public android.graphics.PointF! computeScrollVectorForPosition(int);
     method public int findFirstCompletelyVisibleItemPosition();
     method public int findFirstVisibleItemPosition();
     method public int findLastCompletelyVisibleItemPosition();
     method public int findLastVisibleItemPosition();
-    method public androidx.recyclerview.widget.RecyclerView.LayoutParams generateDefaultLayoutParams();
-    method protected int getExtraLayoutSpace(androidx.recyclerview.widget.RecyclerView.State);
+    method public androidx.recyclerview.widget.RecyclerView.LayoutParams! generateDefaultLayoutParams();
+    method protected int getExtraLayoutSpace(androidx.recyclerview.widget.RecyclerView.State!);
     method public int getInitialPrefetchItemCount();
     method public int getOrientation();
     method public boolean getRecycleChildrenOnDetach();
@@ -244,7 +245,7 @@
     method public boolean getStackFromEnd();
     method protected boolean isLayoutRTL();
     method public boolean isSmoothScrollbarEnabled();
-    method public void prepareForDrop(android.view.View, android.view.View, int, int);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void prepareForDrop(android.view.View, android.view.View, int, int);
     method public void scrollToPositionWithOffset(int, int);
     method public void setInitialPrefetchItemCount(int);
     method public void setOrientation(int);
@@ -266,94 +267,94 @@
   }
 
   public class LinearSmoothScroller extends androidx.recyclerview.widget.RecyclerView.SmoothScroller {
-    ctor public LinearSmoothScroller(android.content.Context);
+    ctor public LinearSmoothScroller(android.content.Context!);
     method public int calculateDtToFit(int, int, int, int, int);
-    method public int calculateDxToMakeVisible(android.view.View, int);
-    method public int calculateDyToMakeVisible(android.view.View, int);
-    method protected float calculateSpeedPerPixel(android.util.DisplayMetrics);
+    method public int calculateDxToMakeVisible(android.view.View!, int);
+    method public int calculateDyToMakeVisible(android.view.View!, int);
+    method protected float calculateSpeedPerPixel(android.util.DisplayMetrics!);
     method protected int calculateTimeForDeceleration(int);
     method protected int calculateTimeForScrolling(int);
     method protected int getHorizontalSnapPreference();
     method protected int getVerticalSnapPreference();
-    method protected void onSeekTargetStep(int, int, androidx.recyclerview.widget.RecyclerView.State, androidx.recyclerview.widget.RecyclerView.SmoothScroller.Action);
+    method protected void onSeekTargetStep(int, int, androidx.recyclerview.widget.RecyclerView.State!, androidx.recyclerview.widget.RecyclerView.SmoothScroller.Action!);
     method protected void onStart();
     method protected void onStop();
-    method protected void onTargetFound(android.view.View, androidx.recyclerview.widget.RecyclerView.State, androidx.recyclerview.widget.RecyclerView.SmoothScroller.Action);
-    method protected void updateActionForInterimTarget(androidx.recyclerview.widget.RecyclerView.SmoothScroller.Action);
+    method protected void onTargetFound(android.view.View!, androidx.recyclerview.widget.RecyclerView.State!, androidx.recyclerview.widget.RecyclerView.SmoothScroller.Action!);
+    method protected void updateActionForInterimTarget(androidx.recyclerview.widget.RecyclerView.SmoothScroller.Action!);
     field public static final int SNAP_TO_ANY = 0; // 0x0
     field public static final int SNAP_TO_END = 1; // 0x1
     field public static final int SNAP_TO_START = -1; // 0xffffffff
-    field protected final android.view.animation.DecelerateInterpolator mDecelerateInterpolator;
+    field protected final android.view.animation.DecelerateInterpolator! mDecelerateInterpolator;
     field protected int mInterimTargetDx;
     field protected int mInterimTargetDy;
-    field protected final android.view.animation.LinearInterpolator mLinearInterpolator;
-    field protected android.graphics.PointF mTargetVector;
+    field protected final android.view.animation.LinearInterpolator! mLinearInterpolator;
+    field protected android.graphics.PointF! mTargetVector;
   }
 
   public class LinearSnapHelper extends androidx.recyclerview.widget.SnapHelper {
     ctor public LinearSnapHelper();
-    method public int[] calculateDistanceToFinalSnap(androidx.recyclerview.widget.RecyclerView.LayoutManager, android.view.View);
-    method public android.view.View findSnapView(androidx.recyclerview.widget.RecyclerView.LayoutManager);
-    method public int findTargetSnapPosition(androidx.recyclerview.widget.RecyclerView.LayoutManager, int, int);
+    method public int[]! calculateDistanceToFinalSnap(androidx.recyclerview.widget.RecyclerView.LayoutManager, android.view.View);
+    method public android.view.View! findSnapView(androidx.recyclerview.widget.RecyclerView.LayoutManager!);
+    method public int findTargetSnapPosition(androidx.recyclerview.widget.RecyclerView.LayoutManager!, int, int);
   }
 
-  public abstract class ListAdapter<T, VH extends androidx.recyclerview.widget.RecyclerView.ViewHolder> extends androidx.recyclerview.widget.RecyclerView.Adapter {
+  public abstract class ListAdapter<T, VH extends androidx.recyclerview.widget.RecyclerView.ViewHolder> extends androidx.recyclerview.widget.RecyclerView.Adapter<VH> {
     ctor protected ListAdapter(androidx.recyclerview.widget.DiffUtil.ItemCallback<T>);
     ctor protected ListAdapter(androidx.recyclerview.widget.AsyncDifferConfig<T>);
     method public java.util.List<T> getCurrentList();
-    method protected T getItem(int);
+    method protected T! getItem(int);
     method public int getItemCount();
     method public void onCurrentListChanged(java.util.List<T>, java.util.List<T>);
-    method public void submitList(java.util.List<T>);
-    method public void submitList(java.util.List<T>, java.lang.Runnable);
+    method public void submitList(java.util.List<T>?);
+    method public void submitList(java.util.List<T>?, Runnable?);
   }
 
-  public abstract interface ListUpdateCallback {
-    method public abstract void onChanged(int, int, java.lang.Object);
-    method public abstract void onInserted(int, int);
-    method public abstract void onMoved(int, int);
-    method public abstract void onRemoved(int, int);
+  public interface ListUpdateCallback {
+    method public void onChanged(int, int, Object?);
+    method public void onInserted(int, int);
+    method public void onMoved(int, int);
+    method public void onRemoved(int, int);
   }
 
   public abstract class OrientationHelper {
-    method public static androidx.recyclerview.widget.OrientationHelper createHorizontalHelper(androidx.recyclerview.widget.RecyclerView.LayoutManager);
-    method public static androidx.recyclerview.widget.OrientationHelper createOrientationHelper(androidx.recyclerview.widget.RecyclerView.LayoutManager, int);
-    method public static androidx.recyclerview.widget.OrientationHelper createVerticalHelper(androidx.recyclerview.widget.RecyclerView.LayoutManager);
-    method public abstract int getDecoratedEnd(android.view.View);
-    method public abstract int getDecoratedMeasurement(android.view.View);
-    method public abstract int getDecoratedMeasurementInOther(android.view.View);
-    method public abstract int getDecoratedStart(android.view.View);
+    method public static androidx.recyclerview.widget.OrientationHelper! createHorizontalHelper(androidx.recyclerview.widget.RecyclerView.LayoutManager!);
+    method public static androidx.recyclerview.widget.OrientationHelper! createOrientationHelper(androidx.recyclerview.widget.RecyclerView.LayoutManager!, int);
+    method public static androidx.recyclerview.widget.OrientationHelper! createVerticalHelper(androidx.recyclerview.widget.RecyclerView.LayoutManager!);
+    method public abstract int getDecoratedEnd(android.view.View!);
+    method public abstract int getDecoratedMeasurement(android.view.View!);
+    method public abstract int getDecoratedMeasurementInOther(android.view.View!);
+    method public abstract int getDecoratedStart(android.view.View!);
     method public abstract int getEnd();
     method public abstract int getEndAfterPadding();
     method public abstract int getEndPadding();
-    method public androidx.recyclerview.widget.RecyclerView.LayoutManager getLayoutManager();
+    method public androidx.recyclerview.widget.RecyclerView.LayoutManager! getLayoutManager();
     method public abstract int getMode();
     method public abstract int getModeInOther();
     method public abstract int getStartAfterPadding();
     method public abstract int getTotalSpace();
     method public int getTotalSpaceChange();
-    method public abstract int getTransformedEndWithDecoration(android.view.View);
-    method public abstract int getTransformedStartWithDecoration(android.view.View);
-    method public abstract void offsetChild(android.view.View, int);
+    method public abstract int getTransformedEndWithDecoration(android.view.View!);
+    method public abstract int getTransformedStartWithDecoration(android.view.View!);
+    method public abstract void offsetChild(android.view.View!, int);
     method public abstract void offsetChildren(int);
     method public void onLayoutComplete();
     field public static final int HORIZONTAL = 0; // 0x0
     field public static final int VERTICAL = 1; // 0x1
-    field protected final androidx.recyclerview.widget.RecyclerView.LayoutManager mLayoutManager;
+    field protected final androidx.recyclerview.widget.RecyclerView.LayoutManager! mLayoutManager;
   }
 
   public class PagerSnapHelper extends androidx.recyclerview.widget.SnapHelper {
     ctor public PagerSnapHelper();
-    method public int[] calculateDistanceToFinalSnap(androidx.recyclerview.widget.RecyclerView.LayoutManager, android.view.View);
-    method protected androidx.recyclerview.widget.LinearSmoothScroller createSnapScroller(androidx.recyclerview.widget.RecyclerView.LayoutManager);
-    method public android.view.View findSnapView(androidx.recyclerview.widget.RecyclerView.LayoutManager);
-    method public int findTargetSnapPosition(androidx.recyclerview.widget.RecyclerView.LayoutManager, int, int);
+    method public int[]? calculateDistanceToFinalSnap(androidx.recyclerview.widget.RecyclerView.LayoutManager, android.view.View);
+    method protected androidx.recyclerview.widget.LinearSmoothScroller! createSnapScroller(androidx.recyclerview.widget.RecyclerView.LayoutManager!);
+    method public android.view.View? findSnapView(androidx.recyclerview.widget.RecyclerView.LayoutManager!);
+    method public int findTargetSnapPosition(androidx.recyclerview.widget.RecyclerView.LayoutManager!, int, int);
   }
 
   public class RecyclerView extends android.view.ViewGroup implements androidx.core.view.NestedScrollingChild2 androidx.core.view.NestedScrollingChild3 androidx.core.view.ScrollingView {
     ctor public RecyclerView(android.content.Context);
-    ctor public RecyclerView(android.content.Context, android.util.AttributeSet);
-    ctor public RecyclerView(android.content.Context, android.util.AttributeSet, int);
+    ctor public RecyclerView(android.content.Context, android.util.AttributeSet?);
+    ctor public RecyclerView(android.content.Context, android.util.AttributeSet?, int);
     method public void addItemDecoration(androidx.recyclerview.widget.RecyclerView.ItemDecoration, int);
     method public void addItemDecoration(androidx.recyclerview.widget.RecyclerView.ItemDecoration);
     method public void addOnChildAttachStateChangeListener(androidx.recyclerview.widget.RecyclerView.OnChildAttachStateChangeListener);
@@ -367,34 +368,34 @@
     method public int computeVerticalScrollExtent();
     method public int computeVerticalScrollOffset();
     method public int computeVerticalScrollRange();
-    method public boolean dispatchNestedPreScroll(int, int, int[], int[], int);
-    method public boolean dispatchNestedScroll(int, int, int, int, int[], int);
-    method public final void dispatchNestedScroll(int, int, int, int, int[], int, int[]);
-    method public boolean drawChild(android.graphics.Canvas, android.view.View, long);
-    method public android.view.View findChildViewUnder(float, float);
-    method public android.view.View findContainingItemView(android.view.View);
-    method public androidx.recyclerview.widget.RecyclerView.ViewHolder findContainingViewHolder(android.view.View);
-    method public androidx.recyclerview.widget.RecyclerView.ViewHolder findViewHolderForAdapterPosition(int);
-    method public androidx.recyclerview.widget.RecyclerView.ViewHolder findViewHolderForItemId(long);
-    method public androidx.recyclerview.widget.RecyclerView.ViewHolder findViewHolderForLayoutPosition(int);
-    method public deprecated androidx.recyclerview.widget.RecyclerView.ViewHolder findViewHolderForPosition(int);
+    method public boolean dispatchNestedPreScroll(int, int, int[]!, int[]!, int);
+    method public boolean dispatchNestedScroll(int, int, int, int, int[]!, int);
+    method public final void dispatchNestedScroll(int, int, int, int, int[]!, int, int[]!);
+    method public boolean drawChild(android.graphics.Canvas!, android.view.View!, long);
+    method public android.view.View? findChildViewUnder(float, float);
+    method public android.view.View? findContainingItemView(android.view.View);
+    method public androidx.recyclerview.widget.RecyclerView.ViewHolder? findContainingViewHolder(android.view.View);
+    method public androidx.recyclerview.widget.RecyclerView.ViewHolder? findViewHolderForAdapterPosition(int);
+    method public androidx.recyclerview.widget.RecyclerView.ViewHolder! findViewHolderForItemId(long);
+    method public androidx.recyclerview.widget.RecyclerView.ViewHolder? findViewHolderForLayoutPosition(int);
+    method @Deprecated public androidx.recyclerview.widget.RecyclerView.ViewHolder? findViewHolderForPosition(int);
     method public boolean fling(int, int);
-    method public androidx.recyclerview.widget.RecyclerView.Adapter getAdapter();
+    method public androidx.recyclerview.widget.RecyclerView.Adapter? getAdapter();
     method public int getChildAdapterPosition(android.view.View);
     method public long getChildItemId(android.view.View);
     method public int getChildLayoutPosition(android.view.View);
-    method public deprecated int getChildPosition(android.view.View);
-    method public androidx.recyclerview.widget.RecyclerView.ViewHolder getChildViewHolder(android.view.View);
-    method public androidx.recyclerview.widget.RecyclerViewAccessibilityDelegate getCompatAccessibilityDelegate();
+    method @Deprecated public int getChildPosition(android.view.View);
+    method public androidx.recyclerview.widget.RecyclerView.ViewHolder! getChildViewHolder(android.view.View);
+    method public androidx.recyclerview.widget.RecyclerViewAccessibilityDelegate? getCompatAccessibilityDelegate();
     method public void getDecoratedBoundsWithMargins(android.view.View, android.graphics.Rect);
     method public androidx.recyclerview.widget.RecyclerView.EdgeEffectFactory getEdgeEffectFactory();
-    method public androidx.recyclerview.widget.RecyclerView.ItemAnimator getItemAnimator();
+    method public androidx.recyclerview.widget.RecyclerView.ItemAnimator? getItemAnimator();
     method public androidx.recyclerview.widget.RecyclerView.ItemDecoration getItemDecorationAt(int);
     method public int getItemDecorationCount();
-    method public androidx.recyclerview.widget.RecyclerView.LayoutManager getLayoutManager();
+    method public androidx.recyclerview.widget.RecyclerView.LayoutManager? getLayoutManager();
     method public int getMaxFlingVelocity();
     method public int getMinFlingVelocity();
-    method public androidx.recyclerview.widget.RecyclerView.OnFlingListener getOnFlingListener();
+    method public androidx.recyclerview.widget.RecyclerView.OnFlingListener? getOnFlingListener();
     method public boolean getPreserveFocusAfterLayout();
     method public androidx.recyclerview.widget.RecyclerView.RecycledViewPool getRecycledViewPool();
     method public int getScrollState();
@@ -405,42 +406,42 @@
     method public boolean isAnimating();
     method public boolean isComputingLayout();
     method public boolean isLayoutFrozen();
-    method public void offsetChildrenHorizontal(int);
-    method public void offsetChildrenVertical(int);
+    method public void offsetChildrenHorizontal(@Px int);
+    method public void offsetChildrenVertical(@Px int);
     method public void onChildAttachedToWindow(android.view.View);
     method public void onChildDetachedFromWindow(android.view.View);
-    method public void onDraw(android.graphics.Canvas);
+    method public void onDraw(android.graphics.Canvas!);
     method public void onScrollStateChanged(int);
-    method public void onScrolled(int, int);
+    method public void onScrolled(@Px int, @Px int);
     method public void removeItemDecoration(androidx.recyclerview.widget.RecyclerView.ItemDecoration);
     method public void removeItemDecorationAt(int);
     method public void removeOnChildAttachStateChangeListener(androidx.recyclerview.widget.RecyclerView.OnChildAttachStateChangeListener);
     method public void removeOnItemTouchListener(androidx.recyclerview.widget.RecyclerView.OnItemTouchListener);
     method public void removeOnScrollListener(androidx.recyclerview.widget.RecyclerView.OnScrollListener);
     method public void scrollToPosition(int);
-    method public void setAccessibilityDelegateCompat(androidx.recyclerview.widget.RecyclerViewAccessibilityDelegate);
-    method public void setAdapter(androidx.recyclerview.widget.RecyclerView.Adapter);
-    method public void setChildDrawingOrderCallback(androidx.recyclerview.widget.RecyclerView.ChildDrawingOrderCallback);
+    method public void setAccessibilityDelegateCompat(androidx.recyclerview.widget.RecyclerViewAccessibilityDelegate?);
+    method public void setAdapter(androidx.recyclerview.widget.RecyclerView.Adapter?);
+    method public void setChildDrawingOrderCallback(androidx.recyclerview.widget.RecyclerView.ChildDrawingOrderCallback?);
     method public void setEdgeEffectFactory(androidx.recyclerview.widget.RecyclerView.EdgeEffectFactory);
     method public void setHasFixedSize(boolean);
-    method public void setItemAnimator(androidx.recyclerview.widget.RecyclerView.ItemAnimator);
+    method public void setItemAnimator(androidx.recyclerview.widget.RecyclerView.ItemAnimator?);
     method public void setItemViewCacheSize(int);
     method public void setLayoutFrozen(boolean);
-    method public void setLayoutManager(androidx.recyclerview.widget.RecyclerView.LayoutManager);
-    method public void setOnFlingListener(androidx.recyclerview.widget.RecyclerView.OnFlingListener);
-    method public deprecated void setOnScrollListener(androidx.recyclerview.widget.RecyclerView.OnScrollListener);
+    method public void setLayoutManager(androidx.recyclerview.widget.RecyclerView.LayoutManager?);
+    method public void setOnFlingListener(androidx.recyclerview.widget.RecyclerView.OnFlingListener?);
+    method @Deprecated public void setOnScrollListener(androidx.recyclerview.widget.RecyclerView.OnScrollListener?);
     method public void setPreserveFocusAfterLayout(boolean);
-    method public void setRecycledViewPool(androidx.recyclerview.widget.RecyclerView.RecycledViewPool);
-    method public void setRecyclerListener(androidx.recyclerview.widget.RecyclerView.RecyclerListener);
+    method public void setRecycledViewPool(androidx.recyclerview.widget.RecyclerView.RecycledViewPool?);
+    method public void setRecyclerListener(androidx.recyclerview.widget.RecyclerView.RecyclerListener?);
     method public void setScrollingTouchSlop(int);
-    method public void setViewCacheExtension(androidx.recyclerview.widget.RecyclerView.ViewCacheExtension);
-    method public void smoothScrollBy(int, int);
-    method public void smoothScrollBy(int, int, android.view.animation.Interpolator);
+    method public void setViewCacheExtension(androidx.recyclerview.widget.RecyclerView.ViewCacheExtension?);
+    method public void smoothScrollBy(@Px int, @Px int);
+    method public void smoothScrollBy(@Px int, @Px int, android.view.animation.Interpolator?);
     method public void smoothScrollToPosition(int);
     method public boolean startNestedScroll(int, int);
     method public void stopNestedScroll(int);
     method public void stopScroll();
-    method public void swapAdapter(androidx.recyclerview.widget.RecyclerView.Adapter, boolean);
+    method public void swapAdapter(androidx.recyclerview.widget.RecyclerView.Adapter?, boolean);
     field public static final int HORIZONTAL = 0; // 0x0
     field public static final int INVALID_TYPE = -1; // 0xffffffff
     field public static final long NO_ID = -1L; // 0xffffffffffffffffL
@@ -453,7 +454,7 @@
     field public static final int VERTICAL = 1; // 0x1
   }
 
-  public static abstract class RecyclerView.Adapter<VH extends androidx.recyclerview.widget.RecyclerView.ViewHolder> {
+  public abstract static class RecyclerView.Adapter<VH extends androidx.recyclerview.widget.RecyclerView.ViewHolder> {
     ctor public RecyclerView.Adapter();
     method public final void bindViewHolder(VH, int);
     method public final VH createViewHolder(android.view.ViewGroup, int);
@@ -464,11 +465,11 @@
     method public final boolean hasStableIds();
     method public final void notifyDataSetChanged();
     method public final void notifyItemChanged(int);
-    method public final void notifyItemChanged(int, java.lang.Object);
+    method public final void notifyItemChanged(int, Object?);
     method public final void notifyItemInserted(int);
     method public final void notifyItemMoved(int, int);
     method public final void notifyItemRangeChanged(int, int);
-    method public final void notifyItemRangeChanged(int, int, java.lang.Object);
+    method public final void notifyItemRangeChanged(int, int, Object?);
     method public final void notifyItemRangeInserted(int, int);
     method public final void notifyItemRangeRemoved(int, int);
     method public final void notifyItemRemoved(int);
@@ -486,37 +487,37 @@
     method public void unregisterAdapterDataObserver(androidx.recyclerview.widget.RecyclerView.AdapterDataObserver);
   }
 
-  public static abstract class RecyclerView.AdapterDataObserver {
+  public abstract static class RecyclerView.AdapterDataObserver {
     ctor public RecyclerView.AdapterDataObserver();
     method public void onChanged();
     method public void onItemRangeChanged(int, int);
-    method public void onItemRangeChanged(int, int, java.lang.Object);
+    method public void onItemRangeChanged(int, int, Object?);
     method public void onItemRangeInserted(int, int);
     method public void onItemRangeMoved(int, int, int);
     method public void onItemRangeRemoved(int, int);
   }
 
-  public static abstract interface RecyclerView.ChildDrawingOrderCallback {
-    method public abstract int onGetChildDrawingOrder(int, int);
+  public static interface RecyclerView.ChildDrawingOrderCallback {
+    method public int onGetChildDrawingOrder(int, int);
   }
 
   public static class RecyclerView.EdgeEffectFactory {
     ctor public RecyclerView.EdgeEffectFactory();
-    method protected android.widget.EdgeEffect createEdgeEffect(androidx.recyclerview.widget.RecyclerView, int);
+    method protected android.widget.EdgeEffect createEdgeEffect(androidx.recyclerview.widget.RecyclerView, @androidx.recyclerview.widget.RecyclerView.EdgeEffectFactory.EdgeDirection int);
     field public static final int DIRECTION_BOTTOM = 3; // 0x3
     field public static final int DIRECTION_LEFT = 0; // 0x0
     field public static final int DIRECTION_RIGHT = 2; // 0x2
     field public static final int DIRECTION_TOP = 1; // 0x1
   }
 
-  public static abstract class RecyclerView.EdgeEffectFactory.EdgeDirection implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @IntDef({androidx.recyclerview.widget.RecyclerView.EdgeEffectFactory.DIRECTION_LEFT, androidx.recyclerview.widget.RecyclerView.EdgeEffectFactory.DIRECTION_TOP, androidx.recyclerview.widget.RecyclerView.EdgeEffectFactory.DIRECTION_RIGHT, androidx.recyclerview.widget.RecyclerView.EdgeEffectFactory.DIRECTION_BOTTOM}) public static @interface RecyclerView.EdgeEffectFactory.EdgeDirection {
   }
 
-  public static abstract class RecyclerView.ItemAnimator {
+  public abstract static class RecyclerView.ItemAnimator {
     ctor public RecyclerView.ItemAnimator();
-    method public abstract boolean animateAppearance(androidx.recyclerview.widget.RecyclerView.ViewHolder, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo);
+    method public abstract boolean animateAppearance(androidx.recyclerview.widget.RecyclerView.ViewHolder, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo?, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo);
     method public abstract boolean animateChange(androidx.recyclerview.widget.RecyclerView.ViewHolder, androidx.recyclerview.widget.RecyclerView.ViewHolder, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo);
-    method public abstract boolean animateDisappearance(androidx.recyclerview.widget.RecyclerView.ViewHolder, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo);
+    method public abstract boolean animateDisappearance(androidx.recyclerview.widget.RecyclerView.ViewHolder, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo?);
     method public abstract boolean animatePersistence(androidx.recyclerview.widget.RecyclerView.ViewHolder, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo);
     method public boolean canReuseUpdatedViewHolder(androidx.recyclerview.widget.RecyclerView.ViewHolder);
     method public boolean canReuseUpdatedViewHolder(androidx.recyclerview.widget.RecyclerView.ViewHolder, java.util.List<java.lang.Object>);
@@ -530,12 +531,12 @@
     method public long getMoveDuration();
     method public long getRemoveDuration();
     method public abstract boolean isRunning();
-    method public final boolean isRunning(androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemAnimatorFinishedListener);
+    method public final boolean isRunning(androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemAnimatorFinishedListener?);
     method public androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo obtainHolderInfo();
     method public void onAnimationFinished(androidx.recyclerview.widget.RecyclerView.ViewHolder);
     method public void onAnimationStarted(androidx.recyclerview.widget.RecyclerView.ViewHolder);
     method public androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo recordPostLayoutInformation(androidx.recyclerview.widget.RecyclerView.State, androidx.recyclerview.widget.RecyclerView.ViewHolder);
-    method public androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo recordPreLayoutInformation(androidx.recyclerview.widget.RecyclerView.State, androidx.recyclerview.widget.RecyclerView.ViewHolder, int, java.util.List<java.lang.Object>);
+    method public androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo recordPreLayoutInformation(androidx.recyclerview.widget.RecyclerView.State, androidx.recyclerview.widget.RecyclerView.ViewHolder, @androidx.recyclerview.widget.RecyclerView.ItemAnimator.AdapterChanges int, java.util.List<java.lang.Object>);
     method public abstract void runPendingAnimations();
     method public void setAddDuration(long);
     method public void setChangeDuration(long);
@@ -548,52 +549,52 @@
     field public static final int FLAG_REMOVED = 8; // 0x8
   }
 
-  public static abstract class RecyclerView.ItemAnimator.AdapterChanges implements java.lang.annotation.Annotation {
+  @IntDef(flag=true, value={androidx.recyclerview.widget.RecyclerView.ItemAnimator.FLAG_CHANGED, androidx.recyclerview.widget.RecyclerView.ItemAnimator.FLAG_REMOVED, androidx.recyclerview.widget.RecyclerView.ItemAnimator.FLAG_MOVED, androidx.recyclerview.widget.RecyclerView.ItemAnimator.FLAG_INVALIDATED, androidx.recyclerview.widget.RecyclerView.ItemAnimator.FLAG_APPEARED_IN_PRE_LAYOUT}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface RecyclerView.ItemAnimator.AdapterChanges {
   }
 
-  public static abstract interface RecyclerView.ItemAnimator.ItemAnimatorFinishedListener {
-    method public abstract void onAnimationsFinished();
+  public static interface RecyclerView.ItemAnimator.ItemAnimatorFinishedListener {
+    method public void onAnimationsFinished();
   }
 
   public static class RecyclerView.ItemAnimator.ItemHolderInfo {
     ctor public RecyclerView.ItemAnimator.ItemHolderInfo();
     method public androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo setFrom(androidx.recyclerview.widget.RecyclerView.ViewHolder);
-    method public androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo setFrom(androidx.recyclerview.widget.RecyclerView.ViewHolder, int);
+    method public androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo setFrom(androidx.recyclerview.widget.RecyclerView.ViewHolder, @androidx.recyclerview.widget.RecyclerView.ItemAnimator.AdapterChanges int);
     field public int bottom;
-    field public int changeFlags;
+    field @androidx.recyclerview.widget.RecyclerView.ItemAnimator.AdapterChanges public int changeFlags;
     field public int left;
     field public int right;
     field public int top;
   }
 
-  public static abstract class RecyclerView.ItemDecoration {
+  public abstract static class RecyclerView.ItemDecoration {
     ctor public RecyclerView.ItemDecoration();
-    method public deprecated void getItemOffsets(android.graphics.Rect, int, androidx.recyclerview.widget.RecyclerView);
+    method @Deprecated public void getItemOffsets(android.graphics.Rect, int, androidx.recyclerview.widget.RecyclerView);
     method public void getItemOffsets(android.graphics.Rect, android.view.View, androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.widget.RecyclerView.State);
     method public void onDraw(android.graphics.Canvas, androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.widget.RecyclerView.State);
-    method public deprecated void onDraw(android.graphics.Canvas, androidx.recyclerview.widget.RecyclerView);
+    method @Deprecated public void onDraw(android.graphics.Canvas, androidx.recyclerview.widget.RecyclerView);
     method public void onDrawOver(android.graphics.Canvas, androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.widget.RecyclerView.State);
-    method public deprecated void onDrawOver(android.graphics.Canvas, androidx.recyclerview.widget.RecyclerView);
+    method @Deprecated public void onDrawOver(android.graphics.Canvas, androidx.recyclerview.widget.RecyclerView);
   }
 
-  public static abstract class RecyclerView.LayoutManager {
+  public abstract static class RecyclerView.LayoutManager {
     ctor public RecyclerView.LayoutManager();
-    method public void addDisappearingView(android.view.View);
-    method public void addDisappearingView(android.view.View, int);
-    method public void addView(android.view.View);
-    method public void addView(android.view.View, int);
-    method public void assertInLayoutOrScroll(java.lang.String);
-    method public void assertNotInLayoutOrScroll(java.lang.String);
-    method public void attachView(android.view.View, int, androidx.recyclerview.widget.RecyclerView.LayoutParams);
+    method public void addDisappearingView(android.view.View!);
+    method public void addDisappearingView(android.view.View!, int);
+    method public void addView(android.view.View!);
+    method public void addView(android.view.View!, int);
+    method public void assertInLayoutOrScroll(String!);
+    method public void assertNotInLayoutOrScroll(String!);
+    method public void attachView(android.view.View, int, androidx.recyclerview.widget.RecyclerView.LayoutParams!);
     method public void attachView(android.view.View, int);
     method public void attachView(android.view.View);
     method public void calculateItemDecorationsForChild(android.view.View, android.graphics.Rect);
     method public boolean canScrollHorizontally();
     method public boolean canScrollVertically();
-    method public boolean checkLayoutParams(androidx.recyclerview.widget.RecyclerView.LayoutParams);
+    method public boolean checkLayoutParams(androidx.recyclerview.widget.RecyclerView.LayoutParams!);
     method public static int chooseSize(int, int, int);
-    method public void collectAdjacentPrefetchPositions(int, int, androidx.recyclerview.widget.RecyclerView.State, androidx.recyclerview.widget.RecyclerView.LayoutManager.LayoutPrefetchRegistry);
-    method public void collectInitialPrefetchPositions(int, androidx.recyclerview.widget.RecyclerView.LayoutManager.LayoutPrefetchRegistry);
+    method public void collectAdjacentPrefetchPositions(int, int, androidx.recyclerview.widget.RecyclerView.State!, androidx.recyclerview.widget.RecyclerView.LayoutManager.LayoutPrefetchRegistry!);
+    method public void collectInitialPrefetchPositions(int, androidx.recyclerview.widget.RecyclerView.LayoutManager.LayoutPrefetchRegistry!);
     method public int computeHorizontalScrollExtent(androidx.recyclerview.widget.RecyclerView.State);
     method public int computeHorizontalScrollOffset(androidx.recyclerview.widget.RecyclerView.State);
     method public int computeHorizontalScrollRange(androidx.recyclerview.widget.RecyclerView.State);
@@ -605,17 +606,17 @@
     method public void detachAndScrapViewAt(int, androidx.recyclerview.widget.RecyclerView.Recycler);
     method public void detachView(android.view.View);
     method public void detachViewAt(int);
-    method public void endAnimation(android.view.View);
-    method public android.view.View findContainingItemView(android.view.View);
-    method public android.view.View findViewByPosition(int);
-    method public abstract androidx.recyclerview.widget.RecyclerView.LayoutParams generateDefaultLayoutParams();
-    method public androidx.recyclerview.widget.RecyclerView.LayoutParams generateLayoutParams(android.view.ViewGroup.LayoutParams);
-    method public androidx.recyclerview.widget.RecyclerView.LayoutParams generateLayoutParams(android.content.Context, android.util.AttributeSet);
+    method public void endAnimation(android.view.View!);
+    method public android.view.View? findContainingItemView(android.view.View);
+    method public android.view.View? findViewByPosition(int);
+    method public abstract androidx.recyclerview.widget.RecyclerView.LayoutParams! generateDefaultLayoutParams();
+    method public androidx.recyclerview.widget.RecyclerView.LayoutParams! generateLayoutParams(android.view.ViewGroup.LayoutParams!);
+    method public androidx.recyclerview.widget.RecyclerView.LayoutParams! generateLayoutParams(android.content.Context!, android.util.AttributeSet!);
     method public int getBaseline();
     method public int getBottomDecorationHeight(android.view.View);
-    method public android.view.View getChildAt(int);
+    method public android.view.View? getChildAt(int);
     method public int getChildCount();
-    method public static deprecated int getChildMeasureSpec(int, int, int, boolean);
+    method @Deprecated public static int getChildMeasureSpec(int, int, int, boolean);
     method public static int getChildMeasureSpec(int, int, int, int, boolean);
     method public boolean getClipToPadding();
     method public int getColumnCountForAccessibility(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State);
@@ -626,29 +627,29 @@
     method public int getDecoratedMeasuredWidth(android.view.View);
     method public int getDecoratedRight(android.view.View);
     method public int getDecoratedTop(android.view.View);
-    method public android.view.View getFocusedChild();
-    method public int getHeight();
+    method public android.view.View? getFocusedChild();
+    method @Px public int getHeight();
     method public int getHeightMode();
     method public int getItemCount();
     method public int getItemViewType(android.view.View);
     method public int getLayoutDirection();
     method public int getLeftDecorationWidth(android.view.View);
-    method public int getMinimumHeight();
-    method public int getMinimumWidth();
-    method public int getPaddingBottom();
-    method public int getPaddingEnd();
-    method public int getPaddingLeft();
-    method public int getPaddingRight();
-    method public int getPaddingStart();
-    method public int getPaddingTop();
+    method @Px public int getMinimumHeight();
+    method @Px public int getMinimumWidth();
+    method @Px public int getPaddingBottom();
+    method @Px public int getPaddingEnd();
+    method @Px public int getPaddingLeft();
+    method @Px public int getPaddingRight();
+    method @Px public int getPaddingStart();
+    method @Px public int getPaddingTop();
     method public int getPosition(android.view.View);
-    method public static androidx.recyclerview.widget.RecyclerView.LayoutManager.Properties getProperties(android.content.Context, android.util.AttributeSet, int, int);
+    method public static androidx.recyclerview.widget.RecyclerView.LayoutManager.Properties! getProperties(android.content.Context, android.util.AttributeSet?, int, int);
     method public int getRightDecorationWidth(android.view.View);
     method public int getRowCountForAccessibility(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State);
     method public int getSelectionModeForAccessibility(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State);
     method public int getTopDecorationHeight(android.view.View);
     method public void getTransformedBoundingBox(android.view.View, boolean, android.graphics.Rect);
-    method public int getWidth();
+    method @Px public int getWidth();
     method public int getWidthMode();
     method public boolean hasFocus();
     method public void ignoreView(android.view.View);
@@ -665,64 +666,64 @@
     method public void measureChild(android.view.View, int, int);
     method public void measureChildWithMargins(android.view.View, int, int);
     method public void moveView(int, int);
-    method public void offsetChildrenHorizontal(int);
-    method public void offsetChildrenVertical(int);
-    method public void onAdapterChanged(androidx.recyclerview.widget.RecyclerView.Adapter, androidx.recyclerview.widget.RecyclerView.Adapter);
+    method public void offsetChildrenHorizontal(@Px int);
+    method public void offsetChildrenVertical(@Px int);
+    method public void onAdapterChanged(androidx.recyclerview.widget.RecyclerView.Adapter?, androidx.recyclerview.widget.RecyclerView.Adapter?);
     method public boolean onAddFocusables(androidx.recyclerview.widget.RecyclerView, java.util.ArrayList<android.view.View>, int, int);
-    method public void onAttachedToWindow(androidx.recyclerview.widget.RecyclerView);
-    method public deprecated void onDetachedFromWindow(androidx.recyclerview.widget.RecyclerView);
-    method public void onDetachedFromWindow(androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.widget.RecyclerView.Recycler);
-    method public android.view.View onFocusSearchFailed(android.view.View, int, androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State);
+    method @CallSuper public void onAttachedToWindow(androidx.recyclerview.widget.RecyclerView!);
+    method @Deprecated public void onDetachedFromWindow(androidx.recyclerview.widget.RecyclerView!);
+    method @CallSuper public void onDetachedFromWindow(androidx.recyclerview.widget.RecyclerView!, androidx.recyclerview.widget.RecyclerView.Recycler!);
+    method public android.view.View? onFocusSearchFailed(android.view.View, int, androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State);
     method public void onInitializeAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
     method public void onInitializeAccessibilityEvent(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State, android.view.accessibility.AccessibilityEvent);
     method public void onInitializeAccessibilityNodeInfo(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State, androidx.core.view.accessibility.AccessibilityNodeInfoCompat);
     method public void onInitializeAccessibilityNodeInfoForItem(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State, android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat);
-    method public android.view.View onInterceptFocusSearch(android.view.View, int);
+    method public android.view.View? onInterceptFocusSearch(android.view.View, int);
     method public void onItemsAdded(androidx.recyclerview.widget.RecyclerView, int, int);
     method public void onItemsChanged(androidx.recyclerview.widget.RecyclerView);
     method public void onItemsMoved(androidx.recyclerview.widget.RecyclerView, int, int, int);
     method public void onItemsRemoved(androidx.recyclerview.widget.RecyclerView, int, int);
     method public void onItemsUpdated(androidx.recyclerview.widget.RecyclerView, int, int);
-    method public void onItemsUpdated(androidx.recyclerview.widget.RecyclerView, int, int, java.lang.Object);
-    method public void onLayoutChildren(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State);
-    method public void onLayoutCompleted(androidx.recyclerview.widget.RecyclerView.State);
+    method public void onItemsUpdated(androidx.recyclerview.widget.RecyclerView, int, int, Object?);
+    method public void onLayoutChildren(androidx.recyclerview.widget.RecyclerView.Recycler!, androidx.recyclerview.widget.RecyclerView.State!);
+    method public void onLayoutCompleted(androidx.recyclerview.widget.RecyclerView.State!);
     method public void onMeasure(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State, int, int);
-    method public deprecated boolean onRequestChildFocus(androidx.recyclerview.widget.RecyclerView, android.view.View, android.view.View);
-    method public boolean onRequestChildFocus(androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.widget.RecyclerView.State, android.view.View, android.view.View);
-    method public void onRestoreInstanceState(android.os.Parcelable);
-    method public android.os.Parcelable onSaveInstanceState();
+    method @Deprecated public boolean onRequestChildFocus(androidx.recyclerview.widget.RecyclerView, android.view.View, android.view.View?);
+    method public boolean onRequestChildFocus(androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.widget.RecyclerView.State, android.view.View, android.view.View?);
+    method public void onRestoreInstanceState(android.os.Parcelable!);
+    method public android.os.Parcelable? onSaveInstanceState();
     method public void onScrollStateChanged(int);
-    method public boolean performAccessibilityAction(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State, int, android.os.Bundle);
-    method public boolean performAccessibilityActionForItem(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State, android.view.View, int, android.os.Bundle);
-    method public void postOnAnimation(java.lang.Runnable);
+    method public boolean performAccessibilityAction(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State, int, android.os.Bundle?);
+    method public boolean performAccessibilityActionForItem(androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State, android.view.View, int, android.os.Bundle?);
+    method public void postOnAnimation(Runnable!);
     method public void removeAllViews();
     method public void removeAndRecycleAllViews(androidx.recyclerview.widget.RecyclerView.Recycler);
     method public void removeAndRecycleView(android.view.View, androidx.recyclerview.widget.RecyclerView.Recycler);
     method public void removeAndRecycleViewAt(int, androidx.recyclerview.widget.RecyclerView.Recycler);
-    method public boolean removeCallbacks(java.lang.Runnable);
+    method public boolean removeCallbacks(Runnable!);
     method public void removeDetachedView(android.view.View);
-    method public void removeView(android.view.View);
+    method public void removeView(android.view.View!);
     method public void removeViewAt(int);
     method public boolean requestChildRectangleOnScreen(androidx.recyclerview.widget.RecyclerView, android.view.View, android.graphics.Rect, boolean);
     method public boolean requestChildRectangleOnScreen(androidx.recyclerview.widget.RecyclerView, android.view.View, android.graphics.Rect, boolean, boolean);
     method public void requestLayout();
     method public void requestSimpleAnimationsInNextLayout();
-    method public int scrollHorizontallyBy(int, androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State);
+    method public int scrollHorizontallyBy(int, androidx.recyclerview.widget.RecyclerView.Recycler!, androidx.recyclerview.widget.RecyclerView.State!);
     method public void scrollToPosition(int);
-    method public int scrollVerticallyBy(int, androidx.recyclerview.widget.RecyclerView.Recycler, androidx.recyclerview.widget.RecyclerView.State);
-    method public deprecated void setAutoMeasureEnabled(boolean);
+    method public int scrollVerticallyBy(int, androidx.recyclerview.widget.RecyclerView.Recycler!, androidx.recyclerview.widget.RecyclerView.State!);
+    method @Deprecated public void setAutoMeasureEnabled(boolean);
     method public final void setItemPrefetchEnabled(boolean);
-    method public void setMeasuredDimension(android.graphics.Rect, int, int);
+    method public void setMeasuredDimension(android.graphics.Rect!, int, int);
     method public void setMeasuredDimension(int, int);
     method public void setMeasurementCacheEnabled(boolean);
-    method public void smoothScrollToPosition(androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.widget.RecyclerView.State, int);
-    method public void startSmoothScroll(androidx.recyclerview.widget.RecyclerView.SmoothScroller);
+    method public void smoothScrollToPosition(androidx.recyclerview.widget.RecyclerView!, androidx.recyclerview.widget.RecyclerView.State!, int);
+    method public void startSmoothScroll(androidx.recyclerview.widget.RecyclerView.SmoothScroller!);
     method public void stopIgnoringView(android.view.View);
     method public boolean supportsPredictiveItemAnimations();
   }
 
-  public static abstract interface RecyclerView.LayoutManager.LayoutPrefetchRegistry {
-    method public abstract void addPosition(int, int);
+  public static interface RecyclerView.LayoutManager.LayoutPrefetchRegistry {
+    method public void addPosition(int, int);
   }
 
   public static class RecyclerView.LayoutManager.Properties {
@@ -734,37 +735,37 @@
   }
 
   public static class RecyclerView.LayoutParams extends android.view.ViewGroup.MarginLayoutParams {
-    ctor public RecyclerView.LayoutParams(android.content.Context, android.util.AttributeSet);
+    ctor public RecyclerView.LayoutParams(android.content.Context!, android.util.AttributeSet!);
     ctor public RecyclerView.LayoutParams(int, int);
-    ctor public RecyclerView.LayoutParams(android.view.ViewGroup.MarginLayoutParams);
-    ctor public RecyclerView.LayoutParams(android.view.ViewGroup.LayoutParams);
-    ctor public RecyclerView.LayoutParams(androidx.recyclerview.widget.RecyclerView.LayoutParams);
+    ctor public RecyclerView.LayoutParams(android.view.ViewGroup.MarginLayoutParams!);
+    ctor public RecyclerView.LayoutParams(android.view.ViewGroup.LayoutParams!);
+    ctor public RecyclerView.LayoutParams(androidx.recyclerview.widget.RecyclerView.LayoutParams!);
     method public int getViewAdapterPosition();
     method public int getViewLayoutPosition();
-    method public deprecated int getViewPosition();
+    method @Deprecated public int getViewPosition();
     method public boolean isItemChanged();
     method public boolean isItemRemoved();
     method public boolean isViewInvalid();
     method public boolean viewNeedsUpdate();
   }
 
-  public static abstract interface RecyclerView.OnChildAttachStateChangeListener {
-    method public abstract void onChildViewAttachedToWindow(android.view.View);
-    method public abstract void onChildViewDetachedFromWindow(android.view.View);
+  public static interface RecyclerView.OnChildAttachStateChangeListener {
+    method public void onChildViewAttachedToWindow(android.view.View);
+    method public void onChildViewDetachedFromWindow(android.view.View);
   }
 
-  public static abstract class RecyclerView.OnFlingListener {
+  public abstract static class RecyclerView.OnFlingListener {
     ctor public RecyclerView.OnFlingListener();
     method public abstract boolean onFling(int, int);
   }
 
-  public static abstract interface RecyclerView.OnItemTouchListener {
-    method public abstract boolean onInterceptTouchEvent(androidx.recyclerview.widget.RecyclerView, android.view.MotionEvent);
-    method public abstract void onRequestDisallowInterceptTouchEvent(boolean);
-    method public abstract void onTouchEvent(androidx.recyclerview.widget.RecyclerView, android.view.MotionEvent);
+  public static interface RecyclerView.OnItemTouchListener {
+    method public boolean onInterceptTouchEvent(androidx.recyclerview.widget.RecyclerView, android.view.MotionEvent);
+    method public void onRequestDisallowInterceptTouchEvent(boolean);
+    method public void onTouchEvent(androidx.recyclerview.widget.RecyclerView, android.view.MotionEvent);
   }
 
-  public static abstract class RecyclerView.OnScrollListener {
+  public abstract static class RecyclerView.OnScrollListener {
     ctor public RecyclerView.OnScrollListener();
     method public void onScrollStateChanged(androidx.recyclerview.widget.RecyclerView, int);
     method public void onScrolled(androidx.recyclerview.widget.RecyclerView, int, int);
@@ -773,9 +774,9 @@
   public static class RecyclerView.RecycledViewPool {
     ctor public RecyclerView.RecycledViewPool();
     method public void clear();
-    method public androidx.recyclerview.widget.RecyclerView.ViewHolder getRecycledView(int);
+    method public androidx.recyclerview.widget.RecyclerView.ViewHolder? getRecycledView(int);
     method public int getRecycledViewCount(int);
-    method public void putRecycledView(androidx.recyclerview.widget.RecyclerView.ViewHolder);
+    method public void putRecycledView(androidx.recyclerview.widget.RecyclerView.ViewHolder!);
     method public void setMaxRecycledViews(int, int);
   }
 
@@ -790,8 +791,8 @@
     method public void setViewCacheSize(int);
   }
 
-  public static abstract interface RecyclerView.RecyclerListener {
-    method public abstract void onViewRecycled(androidx.recyclerview.widget.RecyclerView.ViewHolder);
+  public static interface RecyclerView.RecyclerListener {
+    method public void onViewRecycled(androidx.recyclerview.widget.RecyclerView.ViewHolder);
   }
 
   public static class RecyclerView.SimpleOnItemTouchListener implements androidx.recyclerview.widget.RecyclerView.OnItemTouchListener {
@@ -801,20 +802,20 @@
     method public void onTouchEvent(androidx.recyclerview.widget.RecyclerView, android.view.MotionEvent);
   }
 
-  public static abstract class RecyclerView.SmoothScroller {
+  public abstract static class RecyclerView.SmoothScroller {
     ctor public RecyclerView.SmoothScroller();
-    method public android.graphics.PointF computeScrollVectorForPosition(int);
-    method public android.view.View findViewByPosition(int);
+    method public android.graphics.PointF? computeScrollVectorForPosition(int);
+    method public android.view.View! findViewByPosition(int);
     method public int getChildCount();
-    method public int getChildPosition(android.view.View);
-    method public androidx.recyclerview.widget.RecyclerView.LayoutManager getLayoutManager();
+    method public int getChildPosition(android.view.View!);
+    method public androidx.recyclerview.widget.RecyclerView.LayoutManager? getLayoutManager();
     method public int getTargetPosition();
-    method public deprecated void instantScrollToPosition(int);
+    method @Deprecated public void instantScrollToPosition(int);
     method public boolean isPendingInitialRun();
     method public boolean isRunning();
     method protected void normalize(android.graphics.PointF);
-    method protected void onChildAttachedToWindow(android.view.View);
-    method protected abstract void onSeekTargetStep(int, int, androidx.recyclerview.widget.RecyclerView.State, androidx.recyclerview.widget.RecyclerView.SmoothScroller.Action);
+    method protected void onChildAttachedToWindow(android.view.View!);
+    method protected abstract void onSeekTargetStep(@Px int, @Px int, androidx.recyclerview.widget.RecyclerView.State, androidx.recyclerview.widget.RecyclerView.SmoothScroller.Action);
     method protected abstract void onStart();
     method protected abstract void onStop();
     method protected abstract void onTargetFound(android.view.View, androidx.recyclerview.widget.RecyclerView.State, androidx.recyclerview.widget.RecyclerView.SmoothScroller.Action);
@@ -823,30 +824,30 @@
   }
 
   public static class RecyclerView.SmoothScroller.Action {
-    ctor public RecyclerView.SmoothScroller.Action(int, int);
-    ctor public RecyclerView.SmoothScroller.Action(int, int, int);
-    ctor public RecyclerView.SmoothScroller.Action(int, int, int, android.view.animation.Interpolator);
+    ctor public RecyclerView.SmoothScroller.Action(@Px int, @Px int);
+    ctor public RecyclerView.SmoothScroller.Action(@Px int, @Px int, int);
+    ctor public RecyclerView.SmoothScroller.Action(@Px int, @Px int, int, android.view.animation.Interpolator?);
     method public int getDuration();
-    method public int getDx();
-    method public int getDy();
-    method public android.view.animation.Interpolator getInterpolator();
+    method @Px public int getDx();
+    method @Px public int getDy();
+    method public android.view.animation.Interpolator? getInterpolator();
     method public void jumpTo(int);
     method public void setDuration(int);
-    method public void setDx(int);
-    method public void setDy(int);
-    method public void setInterpolator(android.view.animation.Interpolator);
-    method public void update(int, int, int, android.view.animation.Interpolator);
+    method public void setDx(@Px int);
+    method public void setDy(@Px int);
+    method public void setInterpolator(android.view.animation.Interpolator?);
+    method public void update(@Px int, @Px int, int, android.view.animation.Interpolator?);
     field public static final int UNDEFINED_DURATION = -2147483648; // 0x80000000
   }
 
-  public static abstract interface RecyclerView.SmoothScroller.ScrollVectorProvider {
-    method public abstract android.graphics.PointF computeScrollVectorForPosition(int);
+  public static interface RecyclerView.SmoothScroller.ScrollVectorProvider {
+    method public android.graphics.PointF? computeScrollVectorForPosition(int);
   }
 
   public static class RecyclerView.State {
     ctor public RecyclerView.State();
     method public boolean didStructureChange();
-    method public <T> T get(int);
+    method public <T> T! get(int);
     method public int getItemCount();
     method public int getRemainingScrollHorizontal();
     method public int getRemainingScrollVertical();
@@ -854,25 +855,25 @@
     method public boolean hasTargetScrollPosition();
     method public boolean isMeasuring();
     method public boolean isPreLayout();
-    method public void put(int, java.lang.Object);
+    method public void put(int, Object!);
     method public void remove(int);
     method public boolean willRunPredictiveAnimations();
     method public boolean willRunSimpleAnimations();
   }
 
-  public static abstract class RecyclerView.ViewCacheExtension {
+  public abstract static class RecyclerView.ViewCacheExtension {
     ctor public RecyclerView.ViewCacheExtension();
-    method public abstract android.view.View getViewForPositionAndType(androidx.recyclerview.widget.RecyclerView.Recycler, int, int);
+    method public abstract android.view.View? getViewForPositionAndType(androidx.recyclerview.widget.RecyclerView.Recycler, int, int);
   }
 
-  public static abstract class RecyclerView.ViewHolder {
+  public abstract static class RecyclerView.ViewHolder {
     ctor public RecyclerView.ViewHolder(android.view.View);
     method public final int getAdapterPosition();
     method public final long getItemId();
     method public final int getItemViewType();
     method public final int getLayoutPosition();
     method public final int getOldPosition();
-    method public final deprecated int getPosition();
+    method @Deprecated public final int getPosition();
     method public final boolean isRecyclable();
     method public final void setIsRecyclable(boolean);
     field public final android.view.View itemView;
@@ -889,74 +890,74 @@
 
   public abstract class SimpleItemAnimator extends androidx.recyclerview.widget.RecyclerView.ItemAnimator {
     ctor public SimpleItemAnimator();
-    method public abstract boolean animateAdd(androidx.recyclerview.widget.RecyclerView.ViewHolder);
-    method public boolean animateAppearance(androidx.recyclerview.widget.RecyclerView.ViewHolder, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo);
+    method public abstract boolean animateAdd(androidx.recyclerview.widget.RecyclerView.ViewHolder!);
+    method public boolean animateAppearance(androidx.recyclerview.widget.RecyclerView.ViewHolder, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo?, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo);
     method public boolean animateChange(androidx.recyclerview.widget.RecyclerView.ViewHolder, androidx.recyclerview.widget.RecyclerView.ViewHolder, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo);
-    method public abstract boolean animateChange(androidx.recyclerview.widget.RecyclerView.ViewHolder, androidx.recyclerview.widget.RecyclerView.ViewHolder, int, int, int, int);
-    method public boolean animateDisappearance(androidx.recyclerview.widget.RecyclerView.ViewHolder, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo);
-    method public abstract boolean animateMove(androidx.recyclerview.widget.RecyclerView.ViewHolder, int, int, int, int);
+    method public abstract boolean animateChange(androidx.recyclerview.widget.RecyclerView.ViewHolder!, androidx.recyclerview.widget.RecyclerView.ViewHolder!, int, int, int, int);
+    method public boolean animateDisappearance(androidx.recyclerview.widget.RecyclerView.ViewHolder, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo?);
+    method public abstract boolean animateMove(androidx.recyclerview.widget.RecyclerView.ViewHolder!, int, int, int, int);
     method public boolean animatePersistence(androidx.recyclerview.widget.RecyclerView.ViewHolder, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo, androidx.recyclerview.widget.RecyclerView.ItemAnimator.ItemHolderInfo);
-    method public abstract boolean animateRemove(androidx.recyclerview.widget.RecyclerView.ViewHolder);
-    method public final void dispatchAddFinished(androidx.recyclerview.widget.RecyclerView.ViewHolder);
-    method public final void dispatchAddStarting(androidx.recyclerview.widget.RecyclerView.ViewHolder);
-    method public final void dispatchChangeFinished(androidx.recyclerview.widget.RecyclerView.ViewHolder, boolean);
-    method public final void dispatchChangeStarting(androidx.recyclerview.widget.RecyclerView.ViewHolder, boolean);
-    method public final void dispatchMoveFinished(androidx.recyclerview.widget.RecyclerView.ViewHolder);
-    method public final void dispatchMoveStarting(androidx.recyclerview.widget.RecyclerView.ViewHolder);
-    method public final void dispatchRemoveFinished(androidx.recyclerview.widget.RecyclerView.ViewHolder);
-    method public final void dispatchRemoveStarting(androidx.recyclerview.widget.RecyclerView.ViewHolder);
+    method public abstract boolean animateRemove(androidx.recyclerview.widget.RecyclerView.ViewHolder!);
+    method public final void dispatchAddFinished(androidx.recyclerview.widget.RecyclerView.ViewHolder!);
+    method public final void dispatchAddStarting(androidx.recyclerview.widget.RecyclerView.ViewHolder!);
+    method public final void dispatchChangeFinished(androidx.recyclerview.widget.RecyclerView.ViewHolder!, boolean);
+    method public final void dispatchChangeStarting(androidx.recyclerview.widget.RecyclerView.ViewHolder!, boolean);
+    method public final void dispatchMoveFinished(androidx.recyclerview.widget.RecyclerView.ViewHolder!);
+    method public final void dispatchMoveStarting(androidx.recyclerview.widget.RecyclerView.ViewHolder!);
+    method public final void dispatchRemoveFinished(androidx.recyclerview.widget.RecyclerView.ViewHolder!);
+    method public final void dispatchRemoveStarting(androidx.recyclerview.widget.RecyclerView.ViewHolder!);
     method public boolean getSupportsChangeAnimations();
-    method public void onAddFinished(androidx.recyclerview.widget.RecyclerView.ViewHolder);
-    method public void onAddStarting(androidx.recyclerview.widget.RecyclerView.ViewHolder);
-    method public void onChangeFinished(androidx.recyclerview.widget.RecyclerView.ViewHolder, boolean);
-    method public void onChangeStarting(androidx.recyclerview.widget.RecyclerView.ViewHolder, boolean);
-    method public void onMoveFinished(androidx.recyclerview.widget.RecyclerView.ViewHolder);
-    method public void onMoveStarting(androidx.recyclerview.widget.RecyclerView.ViewHolder);
-    method public void onRemoveFinished(androidx.recyclerview.widget.RecyclerView.ViewHolder);
-    method public void onRemoveStarting(androidx.recyclerview.widget.RecyclerView.ViewHolder);
+    method public void onAddFinished(androidx.recyclerview.widget.RecyclerView.ViewHolder!);
+    method public void onAddStarting(androidx.recyclerview.widget.RecyclerView.ViewHolder!);
+    method public void onChangeFinished(androidx.recyclerview.widget.RecyclerView.ViewHolder!, boolean);
+    method public void onChangeStarting(androidx.recyclerview.widget.RecyclerView.ViewHolder!, boolean);
+    method public void onMoveFinished(androidx.recyclerview.widget.RecyclerView.ViewHolder!);
+    method public void onMoveStarting(androidx.recyclerview.widget.RecyclerView.ViewHolder!);
+    method public void onRemoveFinished(androidx.recyclerview.widget.RecyclerView.ViewHolder!);
+    method public void onRemoveStarting(androidx.recyclerview.widget.RecyclerView.ViewHolder!);
     method public void setSupportsChangeAnimations(boolean);
   }
 
   public abstract class SnapHelper extends androidx.recyclerview.widget.RecyclerView.OnFlingListener {
     ctor public SnapHelper();
-    method public void attachToRecyclerView(androidx.recyclerview.widget.RecyclerView) throws java.lang.IllegalStateException;
-    method public abstract int[] calculateDistanceToFinalSnap(androidx.recyclerview.widget.RecyclerView.LayoutManager, android.view.View);
-    method public int[] calculateScrollDistance(int, int);
-    method protected androidx.recyclerview.widget.RecyclerView.SmoothScroller createScroller(androidx.recyclerview.widget.RecyclerView.LayoutManager);
-    method protected deprecated androidx.recyclerview.widget.LinearSmoothScroller createSnapScroller(androidx.recyclerview.widget.RecyclerView.LayoutManager);
-    method public abstract android.view.View findSnapView(androidx.recyclerview.widget.RecyclerView.LayoutManager);
-    method public abstract int findTargetSnapPosition(androidx.recyclerview.widget.RecyclerView.LayoutManager, int, int);
+    method public void attachToRecyclerView(androidx.recyclerview.widget.RecyclerView?) throws java.lang.IllegalStateException;
+    method public abstract int[]? calculateDistanceToFinalSnap(androidx.recyclerview.widget.RecyclerView.LayoutManager, android.view.View);
+    method public int[]! calculateScrollDistance(int, int);
+    method protected androidx.recyclerview.widget.RecyclerView.SmoothScroller? createScroller(androidx.recyclerview.widget.RecyclerView.LayoutManager!);
+    method @Deprecated protected androidx.recyclerview.widget.LinearSmoothScroller? createSnapScroller(androidx.recyclerview.widget.RecyclerView.LayoutManager!);
+    method public abstract android.view.View? findSnapView(androidx.recyclerview.widget.RecyclerView.LayoutManager!);
+    method public abstract int findTargetSnapPosition(androidx.recyclerview.widget.RecyclerView.LayoutManager!, int, int);
     method public boolean onFling(int, int);
   }
 
   public class SortedList<T> {
-    ctor public SortedList(java.lang.Class<T>, androidx.recyclerview.widget.SortedList.Callback<T>);
-    ctor public SortedList(java.lang.Class<T>, androidx.recyclerview.widget.SortedList.Callback<T>, int);
-    method public int add(T);
+    ctor public SortedList(Class<T>, androidx.recyclerview.widget.SortedList.Callback<T>);
+    ctor public SortedList(Class<T>, androidx.recyclerview.widget.SortedList.Callback<T>, int);
+    method public int add(T!);
     method public void addAll(T[], boolean);
     method public void addAll(T...);
     method public void addAll(java.util.Collection<T>);
     method public void beginBatchedUpdates();
     method public void clear();
     method public void endBatchedUpdates();
-    method public T get(int) throws java.lang.IndexOutOfBoundsException;
-    method public int indexOf(T);
+    method public T! get(int) throws java.lang.IndexOutOfBoundsException;
+    method public int indexOf(T!);
     method public void recalculatePositionOfItemAt(int);
-    method public boolean remove(T);
-    method public T removeItemAt(int);
+    method public boolean remove(T!);
+    method public T! removeItemAt(int);
     method public void replaceAll(T[], boolean);
     method public void replaceAll(T...);
     method public void replaceAll(java.util.Collection<T>);
     method public int size();
-    method public void updateItemAt(int, T);
+    method public void updateItemAt(int, T!);
     field public static final int INVALID_POSITION = -1; // 0xffffffff
   }
 
-  public static class SortedList.BatchedCallback<T2> extends androidx.recyclerview.widget.SortedList.Callback {
-    ctor public SortedList.BatchedCallback(androidx.recyclerview.widget.SortedList.Callback<T2>);
-    method public boolean areContentsTheSame(T2, T2);
-    method public boolean areItemsTheSame(T2, T2);
-    method public int compare(T2, T2);
+  public static class SortedList.BatchedCallback<T2> extends androidx.recyclerview.widget.SortedList.Callback<T2> {
+    ctor public SortedList.BatchedCallback(androidx.recyclerview.widget.SortedList.Callback<T2>!);
+    method public boolean areContentsTheSame(T2!, T2!);
+    method public boolean areItemsTheSame(T2!, T2!);
+    method public int compare(T2!, T2!);
     method public void dispatchLastEvent();
     method public void onChanged(int, int);
     method public void onInserted(int, int);
@@ -964,18 +965,18 @@
     method public void onRemoved(int, int);
   }
 
-  public static abstract class SortedList.Callback<T2> implements java.util.Comparator androidx.recyclerview.widget.ListUpdateCallback {
+  public abstract static class SortedList.Callback<T2> implements java.util.Comparator<T2> androidx.recyclerview.widget.ListUpdateCallback {
     ctor public SortedList.Callback();
-    method public abstract boolean areContentsTheSame(T2, T2);
-    method public abstract boolean areItemsTheSame(T2, T2);
-    method public abstract int compare(T2, T2);
-    method public java.lang.Object getChangePayload(T2, T2);
+    method public abstract boolean areContentsTheSame(T2!, T2!);
+    method public abstract boolean areItemsTheSame(T2!, T2!);
+    method public abstract int compare(T2!, T2!);
+    method public Object? getChangePayload(T2!, T2!);
     method public abstract void onChanged(int, int);
-    method public void onChanged(int, int, java.lang.Object);
+    method public void onChanged(int, int, Object!);
   }
 
-  public abstract class SortedListAdapterCallback<T2> extends androidx.recyclerview.widget.SortedList.Callback {
-    ctor public SortedListAdapterCallback(androidx.recyclerview.widget.RecyclerView.Adapter);
+  public abstract class SortedListAdapterCallback<T2> extends androidx.recyclerview.widget.SortedList.Callback<T2> {
+    ctor public SortedListAdapterCallback(androidx.recyclerview.widget.RecyclerView.Adapter!);
     method public void onChanged(int, int);
     method public void onInserted(int, int);
     method public void onMoved(int, int);
@@ -983,14 +984,14 @@
   }
 
   public class StaggeredGridLayoutManager extends androidx.recyclerview.widget.RecyclerView.LayoutManager implements androidx.recyclerview.widget.RecyclerView.SmoothScroller.ScrollVectorProvider {
-    ctor public StaggeredGridLayoutManager(android.content.Context, android.util.AttributeSet, int, int);
+    ctor public StaggeredGridLayoutManager(android.content.Context!, android.util.AttributeSet!, int, int);
     ctor public StaggeredGridLayoutManager(int, int);
-    method public android.graphics.PointF computeScrollVectorForPosition(int);
-    method public int[] findFirstCompletelyVisibleItemPositions(int[]);
-    method public int[] findFirstVisibleItemPositions(int[]);
-    method public int[] findLastCompletelyVisibleItemPositions(int[]);
-    method public int[] findLastVisibleItemPositions(int[]);
-    method public androidx.recyclerview.widget.RecyclerView.LayoutParams generateDefaultLayoutParams();
+    method public android.graphics.PointF! computeScrollVectorForPosition(int);
+    method public int[]! findFirstCompletelyVisibleItemPositions(int[]!);
+    method public int[]! findFirstVisibleItemPositions(int[]!);
+    method public int[]! findLastCompletelyVisibleItemPositions(int[]!);
+    method public int[]! findLastVisibleItemPositions(int[]!);
+    method public androidx.recyclerview.widget.RecyclerView.LayoutParams! generateDefaultLayoutParams();
     method public int getGapStrategy();
     method public int getOrientation();
     method public boolean getReverseLayout();
@@ -1001,7 +1002,7 @@
     method public void setOrientation(int);
     method public void setReverseLayout(boolean);
     method public void setSpanCount(int);
-    field public static final deprecated int GAP_HANDLING_LAZY = 1; // 0x1
+    field @Deprecated public static final int GAP_HANDLING_LAZY = 1; // 0x1
     field public static final int GAP_HANDLING_MOVE_ITEMS_BETWEEN_SPANS = 2; // 0x2
     field public static final int GAP_HANDLING_NONE = 0; // 0x0
     field public static final int HORIZONTAL = 0; // 0x0
@@ -1009,11 +1010,11 @@
   }
 
   public static class StaggeredGridLayoutManager.LayoutParams extends androidx.recyclerview.widget.RecyclerView.LayoutParams {
-    ctor public StaggeredGridLayoutManager.LayoutParams(android.content.Context, android.util.AttributeSet);
+    ctor public StaggeredGridLayoutManager.LayoutParams(android.content.Context!, android.util.AttributeSet!);
     ctor public StaggeredGridLayoutManager.LayoutParams(int, int);
-    ctor public StaggeredGridLayoutManager.LayoutParams(android.view.ViewGroup.MarginLayoutParams);
-    ctor public StaggeredGridLayoutManager.LayoutParams(android.view.ViewGroup.LayoutParams);
-    ctor public StaggeredGridLayoutManager.LayoutParams(androidx.recyclerview.widget.RecyclerView.LayoutParams);
+    ctor public StaggeredGridLayoutManager.LayoutParams(android.view.ViewGroup.MarginLayoutParams!);
+    ctor public StaggeredGridLayoutManager.LayoutParams(android.view.ViewGroup.LayoutParams!);
+    ctor public StaggeredGridLayoutManager.LayoutParams(androidx.recyclerview.widget.RecyclerView.LayoutParams!);
     method public final int getSpanIndex();
     method public boolean isFullSpan();
     method public void setFullSpan(boolean);
diff --git a/recyclerview/selection/api/current.txt b/recyclerview/selection/api/current.txt
index 72e22ef..37ddfcb 100644
--- a/recyclerview/selection/api/current.txt
+++ b/recyclerview/selection/api/current.txt
@@ -1,8 +1,9 @@
+// Signature format: 2.0
 package androidx.recyclerview.selection {
 
   public abstract class BandPredicate {
     ctor public BandPredicate();
-    method public abstract boolean canInitiate(android.view.MotionEvent);
+    method public abstract boolean canInitiate(android.view.MotionEvent!);
   }
 
   public static final class BandPredicate.EmptyArea extends androidx.recyclerview.selection.BandPredicate {
@@ -25,30 +26,30 @@
 
   public abstract class ItemDetailsLookup<K> {
     ctor public ItemDetailsLookup();
-    method public abstract androidx.recyclerview.selection.ItemDetailsLookup.ItemDetails<K> getItemDetails(android.view.MotionEvent);
+    method public abstract androidx.recyclerview.selection.ItemDetailsLookup.ItemDetails<K>? getItemDetails(android.view.MotionEvent);
   }
 
-  public static abstract class ItemDetailsLookup.ItemDetails<K> {
+  public abstract static class ItemDetailsLookup.ItemDetails<K> {
     ctor public ItemDetailsLookup.ItemDetails();
     method public abstract int getPosition();
-    method public abstract K getSelectionKey();
+    method public abstract K? getSelectionKey();
     method public boolean hasSelectionKey();
     method public boolean inDragRegion(android.view.MotionEvent);
     method public boolean inSelectionHotspot(android.view.MotionEvent);
   }
 
   public abstract class ItemKeyProvider<K> {
-    ctor protected ItemKeyProvider(int);
-    method public abstract K getKey(int);
+    ctor protected ItemKeyProvider(@androidx.recyclerview.selection.ItemKeyProvider.Scope int);
+    method public abstract K? getKey(int);
     method public abstract int getPosition(K);
     field public static final int SCOPE_CACHED = 1; // 0x1
     field public static final int SCOPE_MAPPED = 0; // 0x0
   }
 
-  public static abstract class ItemKeyProvider.Scope implements java.lang.annotation.Annotation {
+  @IntDef({androidx.recyclerview.selection.ItemKeyProvider.SCOPE_MAPPED, androidx.recyclerview.selection.ItemKeyProvider.SCOPE_CACHED}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ItemKeyProvider.Scope {
   }
 
-  public final class MutableSelection<K> extends androidx.recyclerview.selection.Selection {
+  public final class MutableSelection<K> extends androidx.recyclerview.selection.Selection<K> {
     ctor public MutableSelection();
     method public boolean add(K);
     method public void clear();
@@ -56,74 +57,74 @@
     method public boolean remove(K);
   }
 
-  public abstract interface OnContextClickListener {
-    method public abstract boolean onContextClick(android.view.MotionEvent);
+  public interface OnContextClickListener {
+    method public boolean onContextClick(android.view.MotionEvent);
   }
 
-  public abstract interface OnDragInitiatedListener {
-    method public abstract boolean onDragInitiated(android.view.MotionEvent);
+  public interface OnDragInitiatedListener {
+    method public boolean onDragInitiated(android.view.MotionEvent);
   }
 
-  public abstract interface OnItemActivatedListener<K> {
-    method public abstract boolean onItemActivated(androidx.recyclerview.selection.ItemDetailsLookup.ItemDetails<K>, android.view.MotionEvent);
+  public interface OnItemActivatedListener<K> {
+    method public boolean onItemActivated(androidx.recyclerview.selection.ItemDetailsLookup.ItemDetails<K>, android.view.MotionEvent);
   }
 
   public final class OperationMonitor {
     ctor public OperationMonitor();
     method public void addListener(androidx.recyclerview.selection.OperationMonitor.OnChangeListener);
-    method public synchronized boolean isStarted();
+    method public boolean isStarted();
     method public void removeListener(androidx.recyclerview.selection.OperationMonitor.OnChangeListener);
   }
 
-  public static abstract interface OperationMonitor.OnChangeListener {
-    method public abstract void onChanged();
+  public static interface OperationMonitor.OnChangeListener {
+    method public void onChanged();
   }
 
-  public class Selection<K> implements java.lang.Iterable {
-    method public boolean contains(K);
+  public class Selection<K> implements java.lang.Iterable<K> {
+    method public boolean contains(K?);
     method public boolean isEmpty();
-    method public java.util.Iterator<K> iterator();
+    method public java.util.Iterator<K>! iterator();
     method public int size();
   }
 
   public final class SelectionPredicates {
-    method public static <K> androidx.recyclerview.selection.SelectionTracker.SelectionPredicate<K> createSelectAnything();
-    method public static <K> androidx.recyclerview.selection.SelectionTracker.SelectionPredicate<K> createSelectSingleAnything();
+    method public static <K> androidx.recyclerview.selection.SelectionTracker.SelectionPredicate<K>! createSelectAnything();
+    method public static <K> androidx.recyclerview.selection.SelectionTracker.SelectionPredicate<K>! createSelectSingleAnything();
   }
 
   public abstract class SelectionTracker<K> {
     ctor public SelectionTracker();
-    method public abstract void addObserver(androidx.recyclerview.selection.SelectionTracker.SelectionObserver);
+    method public abstract void addObserver(androidx.recyclerview.selection.SelectionTracker.SelectionObserver!);
     method public abstract boolean clearSelection();
     method public abstract void copySelection(androidx.recyclerview.selection.MutableSelection<K>);
     method public abstract boolean deselect(K);
-    method public abstract androidx.recyclerview.selection.Selection<K> getSelection();
+    method public abstract androidx.recyclerview.selection.Selection<K>! getSelection();
     method public abstract boolean hasSelection();
-    method public abstract boolean isSelected(K);
-    method public abstract void onRestoreInstanceState(android.os.Bundle);
+    method public abstract boolean isSelected(K?);
+    method public abstract void onRestoreInstanceState(android.os.Bundle?);
     method public abstract void onSaveInstanceState(android.os.Bundle);
     method protected abstract void restoreSelection(androidx.recyclerview.selection.Selection<K>);
     method public abstract boolean select(K);
-    method public abstract boolean setItemsSelected(java.lang.Iterable<K>, boolean);
-    field public static final java.lang.String SELECTION_CHANGED_MARKER = "Selection-Changed";
+    method public abstract boolean setItemsSelected(Iterable<K>, boolean);
+    field public static final String SELECTION_CHANGED_MARKER = "Selection-Changed";
   }
 
   public static final class SelectionTracker.Builder<K> {
-    ctor public SelectionTracker.Builder(java.lang.String, androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.selection.ItemKeyProvider<K>, androidx.recyclerview.selection.ItemDetailsLookup<K>, androidx.recyclerview.selection.StorageStrategy<K>);
-    method public androidx.recyclerview.selection.SelectionTracker<K> build();
-    method public androidx.recyclerview.selection.SelectionTracker.Builder<K> withBandOverlay(int);
-    method public androidx.recyclerview.selection.SelectionTracker.Builder<K> withBandPredicate(androidx.recyclerview.selection.BandPredicate);
-    method public androidx.recyclerview.selection.SelectionTracker.Builder<K> withFocusDelegate(androidx.recyclerview.selection.FocusDelegate<K>);
-    method public androidx.recyclerview.selection.SelectionTracker.Builder<K> withGestureTooltypes(int...);
-    method public androidx.recyclerview.selection.SelectionTracker.Builder<K> withOnContextClickListener(androidx.recyclerview.selection.OnContextClickListener);
-    method public androidx.recyclerview.selection.SelectionTracker.Builder<K> withOnDragInitiatedListener(androidx.recyclerview.selection.OnDragInitiatedListener);
-    method public androidx.recyclerview.selection.SelectionTracker.Builder<K> withOnItemActivatedListener(androidx.recyclerview.selection.OnItemActivatedListener<K>);
-    method public androidx.recyclerview.selection.SelectionTracker.Builder<K> withOperationMonitor(androidx.recyclerview.selection.OperationMonitor);
-    method public androidx.recyclerview.selection.SelectionTracker.Builder<K> withPointerTooltypes(int...);
-    method public androidx.recyclerview.selection.SelectionTracker.Builder<K> withSelectionPredicate(androidx.recyclerview.selection.SelectionTracker.SelectionPredicate<K>);
+    ctor public SelectionTracker.Builder(String, androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.selection.ItemKeyProvider<K>, androidx.recyclerview.selection.ItemDetailsLookup<K>, androidx.recyclerview.selection.StorageStrategy<K>);
+    method public androidx.recyclerview.selection.SelectionTracker<K>! build();
+    method public androidx.recyclerview.selection.SelectionTracker.Builder<K>! withBandOverlay(@DrawableRes int);
+    method public androidx.recyclerview.selection.SelectionTracker.Builder<K>! withBandPredicate(androidx.recyclerview.selection.BandPredicate);
+    method public androidx.recyclerview.selection.SelectionTracker.Builder<K>! withFocusDelegate(androidx.recyclerview.selection.FocusDelegate<K>);
+    method public androidx.recyclerview.selection.SelectionTracker.Builder<K>! withGestureTooltypes(int...!);
+    method public androidx.recyclerview.selection.SelectionTracker.Builder<K>! withOnContextClickListener(androidx.recyclerview.selection.OnContextClickListener);
+    method public androidx.recyclerview.selection.SelectionTracker.Builder<K>! withOnDragInitiatedListener(androidx.recyclerview.selection.OnDragInitiatedListener);
+    method public androidx.recyclerview.selection.SelectionTracker.Builder<K>! withOnItemActivatedListener(androidx.recyclerview.selection.OnItemActivatedListener<K>);
+    method public androidx.recyclerview.selection.SelectionTracker.Builder<K>! withOperationMonitor(androidx.recyclerview.selection.OperationMonitor);
+    method public androidx.recyclerview.selection.SelectionTracker.Builder<K>! withPointerTooltypes(int...!);
+    method public androidx.recyclerview.selection.SelectionTracker.Builder<K>! withSelectionPredicate(androidx.recyclerview.selection.SelectionTracker.SelectionPredicate<K>);
   }
 
-  public static abstract class SelectionTracker.SelectionObserver<K> {
+  public abstract static class SelectionTracker.SelectionObserver<K> {
     ctor public SelectionTracker.SelectionObserver();
     method public void onItemStateChanged(K, boolean);
     method public void onSelectionChanged();
@@ -131,26 +132,26 @@
     method public void onSelectionRestored();
   }
 
-  public static abstract class SelectionTracker.SelectionPredicate<K> {
+  public abstract static class SelectionTracker.SelectionPredicate<K> {
     ctor public SelectionTracker.SelectionPredicate();
     method public abstract boolean canSelectMultiple();
     method public abstract boolean canSetStateAtPosition(int, boolean);
     method public abstract boolean canSetStateForKey(K, boolean);
   }
 
-  public final class StableIdKeyProvider extends androidx.recyclerview.selection.ItemKeyProvider {
+  public final class StableIdKeyProvider extends androidx.recyclerview.selection.ItemKeyProvider<java.lang.Long> {
     ctor public StableIdKeyProvider(androidx.recyclerview.widget.RecyclerView);
-    method public java.lang.Long getKey(int);
-    method public int getPosition(java.lang.Long);
+    method public Long? getKey(int);
+    method public int getPosition(Long);
   }
 
   public abstract class StorageStrategy<K> {
-    ctor public StorageStrategy(java.lang.Class<K>);
+    ctor public StorageStrategy(Class<K>);
     method public abstract android.os.Bundle asBundle(androidx.recyclerview.selection.Selection<K>);
-    method public abstract androidx.recyclerview.selection.Selection<K> asSelection(android.os.Bundle);
-    method public static androidx.recyclerview.selection.StorageStrategy<java.lang.Long> createLongStorage();
-    method public static <K extends android.os.Parcelable> androidx.recyclerview.selection.StorageStrategy<K> createParcelableStorage(java.lang.Class<K>);
-    method public static androidx.recyclerview.selection.StorageStrategy<java.lang.String> createStringStorage();
+    method public abstract androidx.recyclerview.selection.Selection<K>? asSelection(android.os.Bundle);
+    method public static androidx.recyclerview.selection.StorageStrategy<java.lang.Long>! createLongStorage();
+    method public static <K extends android.os.Parcelable> androidx.recyclerview.selection.StorageStrategy<K>! createParcelableStorage(Class<K>!);
+    method public static androidx.recyclerview.selection.StorageStrategy<java.lang.String>! createStringStorage();
   }
 
 }
diff --git a/remotecallback/api/current.txt b/remotecallback/api/current.txt
index f7509d2..8f35559 100644
--- a/remotecallback/api/current.txt
+++ b/remotecallback/api/current.txt
@@ -1,55 +1,57 @@
+// Signature format: 2.0
 package androidx.remotecallback {
 
-  public class AppWidgetProviderWithCallbacks<T extends androidx.remotecallback.CallbackReceiver> extends android.appwidget.AppWidgetProvider implements androidx.remotecallback.CallbackReceiver {
+  public class AppWidgetProviderWithCallbacks<T extends androidx.remotecallback.CallbackReceiver> extends android.appwidget.AppWidgetProvider implements androidx.remotecallback.CallbackReceiver<T> {
     ctor public AppWidgetProviderWithCallbacks();
-    method public T createRemoteCallback(android.content.Context);
-    method public androidx.remotecallback.RemoteCallback toRemoteCallback(java.lang.Class<T>, android.os.Bundle, java.lang.String);
+    method public T! createRemoteCallback(android.content.Context!);
+    method public androidx.remotecallback.RemoteCallback! toRemoteCallback(Class<T>!, android.os.Bundle!, String!);
   }
 
-  public abstract class BroadcastReceiverWithCallbacks<T extends androidx.remotecallback.CallbackReceiver> extends android.content.BroadcastReceiver implements androidx.remotecallback.CallbackReceiver {
+  public abstract class BroadcastReceiverWithCallbacks<T extends androidx.remotecallback.CallbackReceiver> extends android.content.BroadcastReceiver implements androidx.remotecallback.CallbackReceiver<T> {
     ctor public BroadcastReceiverWithCallbacks();
-    method public T createRemoteCallback(android.content.Context);
-    method public void onReceive(android.content.Context, android.content.Intent);
-    method public androidx.remotecallback.RemoteCallback toRemoteCallback(java.lang.Class<T>, android.os.Bundle, java.lang.String);
-    field public static final java.lang.String ACTION_BROADCAST_CALLBACK = "androidx.remotecallback.action.BROADCAST_CALLBACK";
+    method public T! createRemoteCallback(android.content.Context!);
+    method public void onReceive(android.content.Context!, android.content.Intent!);
+    method public androidx.remotecallback.RemoteCallback! toRemoteCallback(Class<T>!, android.os.Bundle!, String!);
+    field public static final String ACTION_BROADCAST_CALLBACK = "androidx.remotecallback.action.BROADCAST_CALLBACK";
   }
 
   public class CallbackHandlerRegistry {
     ctor public CallbackHandlerRegistry();
-    method public <T extends androidx.remotecallback.CallbackReceiver> void invokeCallback(android.content.Context, T, android.content.Intent);
-    method public <T extends androidx.remotecallback.CallbackReceiver> void invokeCallback(android.content.Context, T, android.os.Bundle);
-    method public static <T extends androidx.remotecallback.CallbackReceiver> void registerCallbackHandler(java.lang.Class<T>, java.lang.String, androidx.remotecallback.CallbackHandlerRegistry.CallbackHandler<T>);
-    method public static androidx.remotecallback.RemoteCallback stubToRemoteCallback(androidx.remotecallback.CallbackReceiver, java.lang.Class<? extends androidx.remotecallback.CallbackReceiver>, android.os.Bundle, java.lang.String);
+    method public <T extends androidx.remotecallback.CallbackReceiver> void invokeCallback(android.content.Context!, T!, android.content.Intent!);
+    method public <T extends androidx.remotecallback.CallbackReceiver> void invokeCallback(android.content.Context!, T!, android.os.Bundle!);
+    method public static <T extends androidx.remotecallback.CallbackReceiver> void registerCallbackHandler(Class<T>!, String!, androidx.remotecallback.CallbackHandlerRegistry.CallbackHandler<T>!);
+    method public static androidx.remotecallback.RemoteCallback! stubToRemoteCallback(androidx.remotecallback.CallbackReceiver!, Class<? extends androidx.remotecallback.CallbackReceiver>!, android.os.Bundle!, String!);
   }
 
-  public static abstract interface CallbackHandlerRegistry.CallbackHandler<T extends androidx.remotecallback.CallbackReceiver> {
-    method public abstract void executeCallback(android.content.Context, T, android.os.Bundle);
+  public static interface CallbackHandlerRegistry.CallbackHandler<T extends androidx.remotecallback.CallbackReceiver> {
+    method public void executeCallback(android.content.Context!, T!, android.os.Bundle!);
   }
 
-  public abstract interface CallbackReceiver<T> {
-    method public abstract T createRemoteCallback(android.content.Context);
+  public interface CallbackReceiver<T> {
+    method public T! createRemoteCallback(android.content.Context!);
   }
 
-  public abstract class ContentProviderWithCallbacks<T extends androidx.remotecallback.ContentProviderWithCallbacks> extends android.content.ContentProvider implements androidx.remotecallback.CallbackReceiver {
+  public abstract class ContentProviderWithCallbacks<T extends androidx.remotecallback.ContentProviderWithCallbacks> extends android.content.ContentProvider implements androidx.remotecallback.CallbackReceiver<T> {
     ctor public ContentProviderWithCallbacks();
-    method public T createRemoteCallback(android.content.Context);
-    method public androidx.remotecallback.RemoteCallback toRemoteCallback(java.lang.Class<T>, android.os.Bundle, java.lang.String);
+    method public T! createRemoteCallback(android.content.Context!);
+    method public androidx.remotecallback.RemoteCallback! toRemoteCallback(Class<T>!, android.os.Bundle!, String!);
   }
 
-  public abstract class ExternalInput implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target(java.lang.annotation.ElementType.PARAMETER) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public @interface ExternalInput {
+    method public abstract String value();
   }
 
-  public abstract class RemoteCallable implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.METHOD) public @interface RemoteCallable {
   }
 
   public class RemoteCallback {
-    method public static <T extends androidx.remotecallback.CallbackReceiver> T create(java.lang.Class<T>, android.content.Context);
-    method public android.os.Bundle getArgumentBundle();
-    method public java.lang.String getMethodName();
-    method public java.lang.String getReceiverClass();
+    method public static <T extends androidx.remotecallback.CallbackReceiver> T! create(Class<T>!, android.content.Context!);
+    method public android.os.Bundle! getArgumentBundle();
+    method public String! getMethodName();
+    method public String getReceiverClass();
     method public int getType();
-    method public android.app.PendingIntent toPendingIntent();
-    field public static final androidx.remotecallback.RemoteCallback LOCAL;
+    method public android.app.PendingIntent! toPendingIntent();
+    field public static final androidx.remotecallback.RemoteCallback! LOCAL;
     field public static final int TYPE_PROVIDER = 1; // 0x1
     field public static final int TYPE_RECEIVER = 0; // 0x0
   }
diff --git a/room/common/api/current.txt b/room/common/api/current.txt
index a06cfb6..ac578c6 100644
--- a/room/common/api/current.txt
+++ b/room/common/api/current.txt
@@ -1,42 +1,63 @@
+// Signature format: 2.0
 package androidx.room {
 
-  public abstract class ColumnInfo implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ColumnInfo {
+    method @androidx.room.ColumnInfo.Collate public abstract int collate() default androidx.room.ColumnInfo.UNSPECIFIED;
+    method public abstract boolean index() default false;
+    method public abstract String name() default androidx.room.ColumnInfo.INHERIT_FIELD_NAME;
+    method @androidx.room.ColumnInfo.SQLiteTypeAffinity public abstract int typeAffinity() default androidx.room.ColumnInfo.UNDEFINED;
     field public static final int BINARY = 2; // 0x2
     field public static final int BLOB = 5; // 0x5
-    field public static final java.lang.String INHERIT_FIELD_NAME = "[field-name]";
+    field public static final String INHERIT_FIELD_NAME = "[field-name]";
     field public static final int INTEGER = 3; // 0x3
-    field public static final int LOCALIZED = 5; // 0x5
+    field @RequiresApi(21) public static final int LOCALIZED = 5; // 0x5
     field public static final int NOCASE = 3; // 0x3
     field public static final int REAL = 4; // 0x4
     field public static final int RTRIM = 4; // 0x4
     field public static final int TEXT = 2; // 0x2
     field public static final int UNDEFINED = 1; // 0x1
-    field public static final int UNICODE = 6; // 0x6
+    field @RequiresApi(21) public static final int UNICODE = 6; // 0x6
     field public static final int UNSPECIFIED = 1; // 0x1
   }
 
-  public static abstract class ColumnInfo.Collate implements java.lang.annotation.Annotation {
+  @IntDef({androidx.room.ColumnInfo.UNSPECIFIED, androidx.room.ColumnInfo.BINARY, androidx.room.ColumnInfo.NOCASE, androidx.room.ColumnInfo.RTRIM, androidx.room.ColumnInfo.LOCALIZED, androidx.room.ColumnInfo.UNICODE}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public static @interface ColumnInfo.Collate {
   }
 
-  public static abstract class ColumnInfo.SQLiteTypeAffinity implements java.lang.annotation.Annotation {
+  @IntDef({androidx.room.ColumnInfo.UNDEFINED, androidx.room.ColumnInfo.TEXT, androidx.room.ColumnInfo.INTEGER, androidx.room.ColumnInfo.REAL, androidx.room.ColumnInfo.BLOB}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public static @interface ColumnInfo.SQLiteTypeAffinity {
   }
 
-  public abstract class Dao implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface Dao {
   }
 
-  public abstract class Database implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface Database {
+    method public abstract Class[] entities();
+    method public abstract boolean exportSchema() default true;
+    method public abstract int version();
   }
 
-  public abstract class Delete implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target(java.lang.annotation.ElementType.METHOD) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface Delete {
   }
 
-  public abstract class Embedded implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface Embedded {
+    method public abstract String prefix() default "";
   }
 
-  public abstract class Entity implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface Entity {
+    method public abstract androidx.room.ForeignKey[] foreignKeys() default {};
+    method public abstract String[] ignoredColumns() default {};
+    method public abstract androidx.room.Index[] indices() default {};
+    method public abstract boolean inheritSuperIndices() default false;
+    method public abstract String[] primaryKeys() default {};
+    method public abstract String tableName() default "";
   }
 
-  public abstract class ForeignKey implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ForeignKey {
+    method public abstract String[] childColumns();
+    method public abstract boolean deferred() default false;
+    method public abstract Class entity();
+    method @androidx.room.ForeignKey.Action public abstract int onDelete() default androidx.room.ForeignKey.NO_ACTION;
+    method @androidx.room.ForeignKey.Action public abstract int onUpdate() default androidx.room.ForeignKey.NO_ACTION;
+    method public abstract String[] parentColumns();
     field public static final int CASCADE = 5; // 0x5
     field public static final int NO_ACTION = 1; // 0x1
     field public static final int RESTRICT = 2; // 0x2
@@ -44,51 +65,59 @@
     field public static final int SET_NULL = 3; // 0x3
   }
 
-  public static abstract class ForeignKey.Action implements java.lang.annotation.Annotation {
+  @IntDef({androidx.room.ForeignKey.NO_ACTION, androidx.room.ForeignKey.RESTRICT, androidx.room.ForeignKey.SET_NULL, androidx.room.ForeignKey.SET_DEFAULT, androidx.room.ForeignKey.CASCADE}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ForeignKey.Action {
   }
 
-  public abstract class Fts3 implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @RequiresApi(16) public @interface Fts3 {
+    method public abstract androidx.room.FtsOptions.Tokenizer tokenizer() default androidx.room.FtsOptions.Tokenizer.SIMPLE;
+    method public abstract String[] tokenizerArgs() default {};
   }
 
-  public abstract class Fts4 implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @RequiresApi(16) public @interface Fts4 {
+    method public abstract Class contentEntity() default java.lang.Object.class;
+    method public abstract String languageId() default "";
+    method public abstract androidx.room.FtsOptions.MatchInfo matchInfo() default androidx.room.FtsOptions.MatchInfo.FTS4;
+    method public abstract String[] notIndexed() default {};
+    method public abstract androidx.room.FtsOptions.Order order() default androidx.room.FtsOptions.Order.ASC;
+    method public abstract int[] prefix() default {};
+    method public abstract androidx.room.FtsOptions.Tokenizer tokenizer() default androidx.room.FtsOptions.Tokenizer.SIMPLE;
+    method public abstract String[] tokenizerArgs() default {};
   }
 
   public class FtsOptions {
   }
 
-  public static final class FtsOptions.MatchInfo extends java.lang.Enum {
-    method public static androidx.room.FtsOptions.MatchInfo valueOf(java.lang.String);
-    method public static final androidx.room.FtsOptions.MatchInfo[] values();
+  public static enum FtsOptions.MatchInfo {
     enum_constant public static final androidx.room.FtsOptions.MatchInfo FTS3;
     enum_constant public static final androidx.room.FtsOptions.MatchInfo FTS4;
   }
 
-  public static final class FtsOptions.Order extends java.lang.Enum {
-    method public static androidx.room.FtsOptions.Order valueOf(java.lang.String);
-    method public static final androidx.room.FtsOptions.Order[] values();
+  public static enum FtsOptions.Order {
     enum_constant public static final androidx.room.FtsOptions.Order ASC;
     enum_constant public static final androidx.room.FtsOptions.Order DESC;
   }
 
-  public static final class FtsOptions.Tokenizer extends java.lang.Enum {
-    method public static androidx.room.FtsOptions.Tokenizer valueOf(java.lang.String);
-    method public static final androidx.room.FtsOptions.Tokenizer[] values();
+  public static enum FtsOptions.Tokenizer {
     enum_constant public static final androidx.room.FtsOptions.Tokenizer ICU;
     enum_constant public static final androidx.room.FtsOptions.Tokenizer PORTER;
     enum_constant public static final androidx.room.FtsOptions.Tokenizer SIMPLE;
-    enum_constant public static final androidx.room.FtsOptions.Tokenizer UNICODE61;
+    enum_constant @RequiresApi(21) public static final androidx.room.FtsOptions.Tokenizer UNICODE61;
   }
 
-  public abstract class Ignore implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.CONSTRUCTOR}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface Ignore {
   }
 
-  public abstract class Index implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target({}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface Index {
+    method public abstract String name() default "";
+    method public abstract boolean unique() default false;
+    method public abstract String[] value();
   }
 
-  public abstract class Insert implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface Insert {
+    method @androidx.room.OnConflictStrategy public abstract int onConflict() default androidx.room.OnConflictStrategy.ABORT;
   }
 
-  public abstract class OnConflictStrategy implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @IntDef({androidx.room.OnConflictStrategy.REPLACE, androidx.room.OnConflictStrategy.ROLLBACK, androidx.room.OnConflictStrategy.ABORT, androidx.room.OnConflictStrategy.FAIL, androidx.room.OnConflictStrategy.IGNORE}) public @interface OnConflictStrategy {
     field public static final int ABORT = 3; // 0x3
     field public static final int FAIL = 4; // 0x4
     field public static final int IGNORE = 5; // 0x5
@@ -96,48 +125,57 @@
     field public static final int ROLLBACK = 2; // 0x2
   }
 
-  public abstract class PrimaryKey implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface PrimaryKey {
+    method public abstract boolean autoGenerate() default false;
   }
 
-  public abstract class Query implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target(java.lang.annotation.ElementType.METHOD) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface Query {
+    method public abstract String value();
   }
 
-  public abstract class RawQuery implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target(java.lang.annotation.ElementType.METHOD) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface RawQuery {
+    method public abstract Class[] observedEntities() default {};
   }
 
-  public abstract class Relation implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface Relation {
+    method public abstract Class entity() default java.lang.Object.class;
+    method public abstract String entityColumn();
+    method public abstract String parentColumn();
+    method public abstract String[] projection() default {};
   }
 
   public class RoomWarnings {
-    ctor public deprecated RoomWarnings();
-    field public static final java.lang.String CANNOT_CREATE_VERIFICATION_DATABASE = "ROOM_CANNOT_CREATE_VERIFICATION_DATABASE";
-    field public static final java.lang.String CURSOR_MISMATCH = "ROOM_CURSOR_MISMATCH";
-    field public static final java.lang.String DEFAULT_CONSTRUCTOR = "ROOM_DEFAULT_CONSTRUCTOR";
-    field public static final java.lang.String INDEX_FROM_EMBEDDED_ENTITY_IS_DROPPED = "ROOM_EMBEDDED_ENTITY_INDEX_IS_DROPPED";
-    field public static final java.lang.String INDEX_FROM_EMBEDDED_FIELD_IS_DROPPED = "ROOM_EMBEDDED_INDEX_IS_DROPPED";
-    field public static final java.lang.String INDEX_FROM_PARENT_FIELD_IS_DROPPED = "ROOM_PARENT_FIELD_INDEX_IS_DROPPED";
-    field public static final java.lang.String INDEX_FROM_PARENT_IS_DROPPED = "ROOM_PARENT_INDEX_IS_DROPPED";
-    field public static final java.lang.String MISSING_INDEX_ON_FOREIGN_KEY_CHILD = "ROOM_MISSING_FOREIGN_KEY_CHILD_INDEX";
-    field public static final java.lang.String MISSING_JAVA_TMP_DIR = "ROOM_MISSING_JAVA_TMP_DIR";
-    field public static final java.lang.String MISSING_SCHEMA_LOCATION = "ROOM_MISSING_SCHEMA_LOCATION";
-    field public static final java.lang.String PRIMARY_KEY_FROM_EMBEDDED_IS_DROPPED = "ROOM_EMBEDDED_PRIMARY_KEY_IS_DROPPED";
-    field public static final java.lang.String RELATION_QUERY_WITHOUT_TRANSACTION = "ROOM_RELATION_QUERY_WITHOUT_TRANSACTION";
-    field public static final java.lang.String RELATION_TYPE_MISMATCH = "ROOM_RELATION_TYPE_MISMATCH";
+    ctor @Deprecated public RoomWarnings();
+    field public static final String CANNOT_CREATE_VERIFICATION_DATABASE = "ROOM_CANNOT_CREATE_VERIFICATION_DATABASE";
+    field public static final String CURSOR_MISMATCH = "ROOM_CURSOR_MISMATCH";
+    field public static final String DEFAULT_CONSTRUCTOR = "ROOM_DEFAULT_CONSTRUCTOR";
+    field public static final String INDEX_FROM_EMBEDDED_ENTITY_IS_DROPPED = "ROOM_EMBEDDED_ENTITY_INDEX_IS_DROPPED";
+    field public static final String INDEX_FROM_EMBEDDED_FIELD_IS_DROPPED = "ROOM_EMBEDDED_INDEX_IS_DROPPED";
+    field public static final String INDEX_FROM_PARENT_FIELD_IS_DROPPED = "ROOM_PARENT_FIELD_INDEX_IS_DROPPED";
+    field public static final String INDEX_FROM_PARENT_IS_DROPPED = "ROOM_PARENT_INDEX_IS_DROPPED";
+    field public static final String MISSING_INDEX_ON_FOREIGN_KEY_CHILD = "ROOM_MISSING_FOREIGN_KEY_CHILD_INDEX";
+    field public static final String MISSING_JAVA_TMP_DIR = "ROOM_MISSING_JAVA_TMP_DIR";
+    field public static final String MISSING_SCHEMA_LOCATION = "ROOM_MISSING_SCHEMA_LOCATION";
+    field public static final String PRIMARY_KEY_FROM_EMBEDDED_IS_DROPPED = "ROOM_EMBEDDED_PRIMARY_KEY_IS_DROPPED";
+    field public static final String RELATION_QUERY_WITHOUT_TRANSACTION = "ROOM_RELATION_QUERY_WITHOUT_TRANSACTION";
+    field public static final String RELATION_TYPE_MISMATCH = "ROOM_RELATION_TYPE_MISMATCH";
   }
 
-  public abstract class SkipQueryVerification implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.TYPE}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface SkipQueryVerification {
   }
 
-  public abstract class Transaction implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface Transaction {
   }
 
-  public abstract class TypeConverter implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface TypeConverter {
   }
 
-  public abstract class TypeConverters implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.FIELD}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface TypeConverters {
+    method public abstract Class<?>[] value();
   }
 
-  public abstract class Update implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface Update {
+    method @androidx.room.OnConflictStrategy public abstract int onConflict() default androidx.room.OnConflictStrategy.ABORT;
   }
 
 }
diff --git a/room/runtime/api/current.txt b/room/runtime/api/current.txt
index 31b791e..4efbc8e 100644
--- a/room/runtime/api/current.txt
+++ b/room/runtime/api/current.txt
@@ -1,63 +1,64 @@
+// Signature format: 2.0
 package androidx.room {
 
   public class DatabaseConfiguration {
     method public boolean isMigrationRequired(int, int);
-    method public deprecated boolean isMigrationRequiredFrom(int);
+    method @Deprecated public boolean isMigrationRequiredFrom(int);
     field public final boolean allowDestructiveMigrationOnDowngrade;
     field public final boolean allowMainThreadQueries;
-    field public final java.util.List<androidx.room.RoomDatabase.Callback> callbacks;
+    field public final java.util.List<androidx.room.RoomDatabase.Callback>? callbacks;
     field public final android.content.Context context;
-    field public final androidx.room.RoomDatabase.JournalMode journalMode;
+    field public final androidx.room.RoomDatabase.JournalMode! journalMode;
     field public final androidx.room.RoomDatabase.MigrationContainer migrationContainer;
     field public final boolean multiInstanceInvalidation;
-    field public final java.lang.String name;
+    field public final String? name;
     field public final java.util.concurrent.Executor queryExecutor;
     field public final boolean requireMigration;
     field public final androidx.sqlite.db.SupportSQLiteOpenHelper.Factory sqliteOpenHelperFactory;
   }
 
   public class InvalidationTracker {
-    method public void addObserver(androidx.room.InvalidationTracker.Observer);
+    method @WorkerThread public void addObserver(androidx.room.InvalidationTracker.Observer);
     method public void refreshVersionsAsync();
-    method public void removeObserver(androidx.room.InvalidationTracker.Observer);
+    method @WorkerThread public void removeObserver(androidx.room.InvalidationTracker.Observer);
   }
 
-  public static abstract class InvalidationTracker.Observer {
-    ctor protected InvalidationTracker.Observer(java.lang.String, java.lang.String...);
-    ctor public InvalidationTracker.Observer(java.lang.String[]);
+  public abstract static class InvalidationTracker.Observer {
+    ctor protected InvalidationTracker.Observer(String, java.lang.String...!);
+    ctor public InvalidationTracker.Observer(String[]);
     method public abstract void onInvalidated(java.util.Set<java.lang.String>);
   }
 
   public class Room {
-    ctor public deprecated Room();
-    method public static <T extends androidx.room.RoomDatabase> androidx.room.RoomDatabase.Builder<T> databaseBuilder(android.content.Context, java.lang.Class<T>, java.lang.String);
-    method public static <T extends androidx.room.RoomDatabase> androidx.room.RoomDatabase.Builder<T> inMemoryDatabaseBuilder(android.content.Context, java.lang.Class<T>);
-    field public static final java.lang.String MASTER_TABLE_NAME = "room_master_table";
+    ctor @Deprecated public Room();
+    method public static <T extends androidx.room.RoomDatabase> androidx.room.RoomDatabase.Builder<T> databaseBuilder(android.content.Context, Class<T>, String);
+    method public static <T extends androidx.room.RoomDatabase> androidx.room.RoomDatabase.Builder<T> inMemoryDatabaseBuilder(android.content.Context, Class<T>);
+    field public static final String MASTER_TABLE_NAME = "room_master_table";
   }
 
   public abstract class RoomDatabase {
     ctor public RoomDatabase();
     method public void beginTransaction();
-    method public abstract void clearAllTables();
+    method @WorkerThread public abstract void clearAllTables();
     method public void close();
-    method public androidx.sqlite.db.SupportSQLiteStatement compileStatement(java.lang.String);
+    method public androidx.sqlite.db.SupportSQLiteStatement! compileStatement(String);
     method protected abstract androidx.room.InvalidationTracker createInvalidationTracker();
-    method protected abstract androidx.sqlite.db.SupportSQLiteOpenHelper createOpenHelper(androidx.room.DatabaseConfiguration);
+    method protected abstract androidx.sqlite.db.SupportSQLiteOpenHelper createOpenHelper(androidx.room.DatabaseConfiguration!);
     method public void endTransaction();
     method public androidx.room.InvalidationTracker getInvalidationTracker();
     method public androidx.sqlite.db.SupportSQLiteOpenHelper getOpenHelper();
     method public java.util.concurrent.Executor getQueryExecutor();
     method public boolean inTransaction();
-    method public void init(androidx.room.DatabaseConfiguration);
+    method @CallSuper public void init(androidx.room.DatabaseConfiguration);
     method protected void internalInitInvalidationTracker(androidx.sqlite.db.SupportSQLiteDatabase);
     method public boolean isOpen();
-    method public android.database.Cursor query(java.lang.String, java.lang.Object[]);
-    method public android.database.Cursor query(androidx.sqlite.db.SupportSQLiteQuery);
-    method public void runInTransaction(java.lang.Runnable);
-    method public <V> V runInTransaction(java.util.concurrent.Callable<V>);
+    method public android.database.Cursor! query(String!, Object[]?);
+    method public android.database.Cursor! query(androidx.sqlite.db.SupportSQLiteQuery!);
+    method public void runInTransaction(Runnable);
+    method public <V> V! runInTransaction(java.util.concurrent.Callable<V>);
     method public void setTransactionSuccessful();
-    field protected deprecated java.util.List<androidx.room.RoomDatabase.Callback> mCallbacks;
-    field protected deprecated volatile androidx.sqlite.db.SupportSQLiteDatabase mDatabase;
+    field @Deprecated protected java.util.List<androidx.room.RoomDatabase.Callback>? mCallbacks;
+    field @Deprecated protected volatile androidx.sqlite.db.SupportSQLiteDatabase! mDatabase;
   }
 
   public static class RoomDatabase.Builder<T extends androidx.room.RoomDatabase> {
@@ -67,31 +68,29 @@
     method public T build();
     method public androidx.room.RoomDatabase.Builder<T> enableMultiInstanceInvalidation();
     method public androidx.room.RoomDatabase.Builder<T> fallbackToDestructiveMigration();
-    method public androidx.room.RoomDatabase.Builder<T> fallbackToDestructiveMigrationFrom(int...);
+    method public androidx.room.RoomDatabase.Builder<T> fallbackToDestructiveMigrationFrom(int...!);
     method public androidx.room.RoomDatabase.Builder<T> fallbackToDestructiveMigrationOnDowngrade();
-    method public androidx.room.RoomDatabase.Builder<T> openHelperFactory(androidx.sqlite.db.SupportSQLiteOpenHelper.Factory);
+    method public androidx.room.RoomDatabase.Builder<T> openHelperFactory(androidx.sqlite.db.SupportSQLiteOpenHelper.Factory?);
     method public androidx.room.RoomDatabase.Builder<T> setJournalMode(androidx.room.RoomDatabase.JournalMode);
     method public androidx.room.RoomDatabase.Builder<T> setQueryExecutor(java.util.concurrent.Executor);
   }
 
-  public static abstract class RoomDatabase.Callback {
+  public abstract static class RoomDatabase.Callback {
     ctor public RoomDatabase.Callback();
     method public void onCreate(androidx.sqlite.db.SupportSQLiteDatabase);
     method public void onOpen(androidx.sqlite.db.SupportSQLiteDatabase);
   }
 
-  public static final class RoomDatabase.JournalMode extends java.lang.Enum {
-    method public static androidx.room.RoomDatabase.JournalMode valueOf(java.lang.String);
-    method public static final androidx.room.RoomDatabase.JournalMode[] values();
+  public static enum RoomDatabase.JournalMode {
     enum_constant public static final androidx.room.RoomDatabase.JournalMode AUTOMATIC;
     enum_constant public static final androidx.room.RoomDatabase.JournalMode TRUNCATE;
-    enum_constant public static final androidx.room.RoomDatabase.JournalMode WRITE_AHEAD_LOGGING;
+    enum_constant @RequiresApi(android.os.Build.VERSION_CODES.JELLY_BEAN) public static final androidx.room.RoomDatabase.JournalMode WRITE_AHEAD_LOGGING;
   }
 
   public static class RoomDatabase.MigrationContainer {
     ctor public RoomDatabase.MigrationContainer();
     method public void addMigrations(androidx.room.migration.Migration...);
-    method public java.util.List<androidx.room.migration.Migration> findMigrationPath(int, int);
+    method public java.util.List<androidx.room.migration.Migration>? findMigrationPath(int, int);
   }
 
 }
diff --git a/room/rxjava2/api/current.txt b/room/rxjava2/api/current.txt
index 8da664a..b92289e3 100644
--- a/room/rxjava2/api/current.txt
+++ b/room/rxjava2/api/current.txt
@@ -1,14 +1,15 @@
+// Signature format: 2.0
 package androidx.room {
 
   public class EmptyResultSetException extends java.lang.RuntimeException {
-    ctor public EmptyResultSetException(java.lang.String);
+    ctor public EmptyResultSetException(String!);
   }
 
   public class RxRoom {
-    ctor public deprecated RxRoom();
-    method public static io.reactivex.Flowable<java.lang.Object> createFlowable(androidx.room.RoomDatabase, java.lang.String...);
-    method public static io.reactivex.Observable<java.lang.Object> createObservable(androidx.room.RoomDatabase, java.lang.String...);
-    field public static final java.lang.Object NOTHING;
+    ctor @Deprecated public RxRoom();
+    method public static io.reactivex.Flowable<java.lang.Object>! createFlowable(androidx.room.RoomDatabase!, java.lang.String...!);
+    method public static io.reactivex.Observable<java.lang.Object>! createObservable(androidx.room.RoomDatabase!, java.lang.String...!);
+    field public static final Object! NOTHING;
   }
 
 }
diff --git a/room/testing/api/current.txt b/room/testing/api/current.txt
index d441d62..27556ec 100644
--- a/room/testing/api/current.txt
+++ b/room/testing/api/current.txt
@@ -1,12 +1,13 @@
+// Signature format: 2.0
 package androidx.room.testing {
 
   public class MigrationTestHelper extends org.junit.rules.TestWatcher {
-    ctor public MigrationTestHelper(android.app.Instrumentation, java.lang.String);
-    ctor public MigrationTestHelper(android.app.Instrumentation, java.lang.String, androidx.sqlite.db.SupportSQLiteOpenHelper.Factory);
-    method public void closeWhenFinished(androidx.sqlite.db.SupportSQLiteDatabase);
-    method public void closeWhenFinished(androidx.room.RoomDatabase);
-    method public androidx.sqlite.db.SupportSQLiteDatabase createDatabase(java.lang.String, int) throws java.io.IOException;
-    method public androidx.sqlite.db.SupportSQLiteDatabase runMigrationsAndValidate(java.lang.String, int, boolean, androidx.room.migration.Migration...) throws java.io.IOException;
+    ctor public MigrationTestHelper(android.app.Instrumentation!, String!);
+    ctor public MigrationTestHelper(android.app.Instrumentation!, String!, androidx.sqlite.db.SupportSQLiteOpenHelper.Factory!);
+    method public void closeWhenFinished(androidx.sqlite.db.SupportSQLiteDatabase!);
+    method public void closeWhenFinished(androidx.room.RoomDatabase!);
+    method public androidx.sqlite.db.SupportSQLiteDatabase! createDatabase(String!, int) throws java.io.IOException;
+    method public androidx.sqlite.db.SupportSQLiteDatabase! runMigrationsAndValidate(String!, int, boolean, androidx.room.migration.Migration...!) throws java.io.IOException;
   }
 
 }
diff --git a/slices/builders/api/current.txt b/slices/builders/api/current.txt
index b732d84..c5b63a8 100644
--- a/slices/builders/api/current.txt
+++ b/slices/builders/api/current.txt
@@ -1,9 +1,10 @@
+// Signature format: 2.0
 package androidx.slice.builders {
 
-  public class GridRowBuilder {
+  @RequiresApi(19) public class GridRowBuilder {
     ctor public GridRowBuilder();
     method public androidx.slice.builders.GridRowBuilder addCell(androidx.slice.builders.GridRowBuilder.CellBuilder);
-    method public androidx.slice.builders.GridRowBuilder setContentDescription(java.lang.CharSequence);
+    method public androidx.slice.builders.GridRowBuilder setContentDescription(CharSequence);
     method public androidx.slice.builders.GridRowBuilder setLayoutDirection(int);
     method public androidx.slice.builders.GridRowBuilder setPrimaryAction(androidx.slice.builders.SliceAction);
     method public androidx.slice.builders.GridRowBuilder setSeeMoreAction(android.app.PendingIntent);
@@ -13,27 +14,27 @@
   public static class GridRowBuilder.CellBuilder {
     ctor public GridRowBuilder.CellBuilder();
     method public androidx.slice.builders.GridRowBuilder.CellBuilder addImage(androidx.core.graphics.drawable.IconCompat, int);
-    method public androidx.slice.builders.GridRowBuilder.CellBuilder addImage(androidx.core.graphics.drawable.IconCompat, int, boolean);
-    method public androidx.slice.builders.GridRowBuilder.CellBuilder addText(java.lang.CharSequence);
-    method public androidx.slice.builders.GridRowBuilder.CellBuilder addText(java.lang.CharSequence, boolean);
-    method public androidx.slice.builders.GridRowBuilder.CellBuilder addTitleText(java.lang.CharSequence);
-    method public androidx.slice.builders.GridRowBuilder.CellBuilder addTitleText(java.lang.CharSequence, boolean);
-    method public androidx.slice.builders.GridRowBuilder.CellBuilder setContentDescription(java.lang.CharSequence);
+    method public androidx.slice.builders.GridRowBuilder.CellBuilder addImage(androidx.core.graphics.drawable.IconCompat?, int, boolean);
+    method public androidx.slice.builders.GridRowBuilder.CellBuilder addText(CharSequence);
+    method public androidx.slice.builders.GridRowBuilder.CellBuilder addText(CharSequence?, boolean);
+    method public androidx.slice.builders.GridRowBuilder.CellBuilder addTitleText(CharSequence);
+    method public androidx.slice.builders.GridRowBuilder.CellBuilder addTitleText(CharSequence?, boolean);
+    method public androidx.slice.builders.GridRowBuilder.CellBuilder setContentDescription(CharSequence);
     method public androidx.slice.builders.GridRowBuilder.CellBuilder setContentIntent(android.app.PendingIntent);
   }
 
-  public class ListBuilder extends androidx.slice.builders.TemplateSliceBuilder {
+  @RequiresApi(19) public class ListBuilder extends androidx.slice.builders.TemplateSliceBuilder {
     ctor public ListBuilder(android.content.Context, android.net.Uri, long);
-    ctor public ListBuilder(android.content.Context, android.net.Uri, java.time.Duration);
+    ctor @RequiresApi(26) public ListBuilder(android.content.Context, android.net.Uri, java.time.Duration?);
     method public androidx.slice.builders.ListBuilder addAction(androidx.slice.builders.SliceAction);
     method public androidx.slice.builders.ListBuilder addGridRow(androidx.slice.builders.GridRowBuilder);
     method public androidx.slice.builders.ListBuilder addInputRange(androidx.slice.builders.ListBuilder.InputRangeBuilder);
     method public androidx.slice.builders.ListBuilder addRange(androidx.slice.builders.ListBuilder.RangeBuilder);
     method public androidx.slice.builders.ListBuilder addRow(androidx.slice.builders.ListBuilder.RowBuilder);
-    method public androidx.slice.builders.ListBuilder setAccentColor(int);
+    method public androidx.slice.builders.ListBuilder setAccentColor(@ColorInt int);
     method public androidx.slice.builders.ListBuilder setHeader(androidx.slice.builders.ListBuilder.HeaderBuilder);
     method public androidx.slice.builders.ListBuilder setIsError(boolean);
-    method public androidx.slice.builders.ListBuilder setKeywords(java.util.Set<java.lang.String>);
+    method public androidx.slice.builders.ListBuilder setKeywords(java.util.Set<java.lang.String>!);
     method public androidx.slice.builders.ListBuilder setLayoutDirection(int);
     method public androidx.slice.builders.ListBuilder setSeeMoreAction(android.app.PendingIntent);
     method public androidx.slice.builders.ListBuilder setSeeMoreRow(androidx.slice.builders.ListBuilder.RowBuilder);
@@ -46,85 +47,85 @@
 
   public static class ListBuilder.HeaderBuilder {
     ctor public ListBuilder.HeaderBuilder();
-    method public androidx.slice.builders.ListBuilder.HeaderBuilder setContentDescription(java.lang.CharSequence);
+    method public androidx.slice.builders.ListBuilder.HeaderBuilder setContentDescription(CharSequence);
     method public androidx.slice.builders.ListBuilder.HeaderBuilder setLayoutDirection(int);
     method public androidx.slice.builders.ListBuilder.HeaderBuilder setPrimaryAction(androidx.slice.builders.SliceAction);
-    method public androidx.slice.builders.ListBuilder.HeaderBuilder setSubtitle(java.lang.CharSequence);
-    method public androidx.slice.builders.ListBuilder.HeaderBuilder setSubtitle(java.lang.CharSequence, boolean);
-    method public androidx.slice.builders.ListBuilder.HeaderBuilder setSummary(java.lang.CharSequence);
-    method public androidx.slice.builders.ListBuilder.HeaderBuilder setSummary(java.lang.CharSequence, boolean);
-    method public androidx.slice.builders.ListBuilder.HeaderBuilder setTitle(java.lang.CharSequence);
-    method public androidx.slice.builders.ListBuilder.HeaderBuilder setTitle(java.lang.CharSequence, boolean);
+    method public androidx.slice.builders.ListBuilder.HeaderBuilder setSubtitle(CharSequence);
+    method public androidx.slice.builders.ListBuilder.HeaderBuilder setSubtitle(CharSequence, boolean);
+    method public androidx.slice.builders.ListBuilder.HeaderBuilder setSummary(CharSequence);
+    method public androidx.slice.builders.ListBuilder.HeaderBuilder setSummary(CharSequence, boolean);
+    method public androidx.slice.builders.ListBuilder.HeaderBuilder setTitle(CharSequence);
+    method public androidx.slice.builders.ListBuilder.HeaderBuilder setTitle(CharSequence, boolean);
   }
 
   public static class ListBuilder.InputRangeBuilder {
     ctor public ListBuilder.InputRangeBuilder();
-    method public androidx.slice.builders.ListBuilder.InputRangeBuilder setContentDescription(java.lang.CharSequence);
+    method public androidx.slice.builders.ListBuilder.InputRangeBuilder setContentDescription(CharSequence);
     method public androidx.slice.builders.ListBuilder.InputRangeBuilder setInputAction(android.app.PendingIntent);
     method public androidx.slice.builders.ListBuilder.InputRangeBuilder setLayoutDirection(int);
     method public androidx.slice.builders.ListBuilder.InputRangeBuilder setMax(int);
     method public androidx.slice.builders.ListBuilder.InputRangeBuilder setMin(int);
     method public androidx.slice.builders.ListBuilder.InputRangeBuilder setPrimaryAction(androidx.slice.builders.SliceAction);
-    method public androidx.slice.builders.ListBuilder.InputRangeBuilder setSubtitle(java.lang.CharSequence);
+    method public androidx.slice.builders.ListBuilder.InputRangeBuilder setSubtitle(CharSequence);
     method public androidx.slice.builders.ListBuilder.InputRangeBuilder setThumb(androidx.core.graphics.drawable.IconCompat);
-    method public androidx.slice.builders.ListBuilder.InputRangeBuilder setTitle(java.lang.CharSequence);
+    method public androidx.slice.builders.ListBuilder.InputRangeBuilder setTitle(CharSequence);
     method public androidx.slice.builders.ListBuilder.InputRangeBuilder setValue(int);
   }
 
   public static class ListBuilder.RangeBuilder {
     ctor public ListBuilder.RangeBuilder();
-    method public androidx.slice.builders.ListBuilder.RangeBuilder setContentDescription(java.lang.CharSequence);
+    method public androidx.slice.builders.ListBuilder.RangeBuilder setContentDescription(CharSequence);
     method public androidx.slice.builders.ListBuilder.RangeBuilder setLayoutDirection(int);
     method public androidx.slice.builders.ListBuilder.RangeBuilder setMax(int);
     method public androidx.slice.builders.ListBuilder.RangeBuilder setPrimaryAction(androidx.slice.builders.SliceAction);
-    method public androidx.slice.builders.ListBuilder.RangeBuilder setSubtitle(java.lang.CharSequence);
-    method public androidx.slice.builders.ListBuilder.RangeBuilder setTitle(java.lang.CharSequence);
+    method public androidx.slice.builders.ListBuilder.RangeBuilder setSubtitle(CharSequence);
+    method public androidx.slice.builders.ListBuilder.RangeBuilder setTitle(CharSequence);
     method public androidx.slice.builders.ListBuilder.RangeBuilder setValue(int);
   }
 
   public static class ListBuilder.RowBuilder {
     ctor public ListBuilder.RowBuilder();
-    ctor public ListBuilder.RowBuilder(android.net.Uri);
+    ctor public ListBuilder.RowBuilder(android.net.Uri!);
     method public androidx.slice.builders.ListBuilder.RowBuilder addEndItem(long);
     method public androidx.slice.builders.ListBuilder.RowBuilder addEndItem(androidx.core.graphics.drawable.IconCompat, int);
-    method public androidx.slice.builders.ListBuilder.RowBuilder addEndItem(androidx.core.graphics.drawable.IconCompat, int, boolean);
+    method public androidx.slice.builders.ListBuilder.RowBuilder addEndItem(androidx.core.graphics.drawable.IconCompat?, int, boolean);
     method public androidx.slice.builders.ListBuilder.RowBuilder addEndItem(androidx.slice.builders.SliceAction);
     method public androidx.slice.builders.ListBuilder.RowBuilder addEndItem(androidx.slice.builders.SliceAction, boolean);
-    method public androidx.slice.builders.ListBuilder.RowBuilder setContentDescription(java.lang.CharSequence);
+    method public androidx.slice.builders.ListBuilder.RowBuilder setContentDescription(CharSequence);
     method public androidx.slice.builders.ListBuilder.RowBuilder setLayoutDirection(int);
     method public androidx.slice.builders.ListBuilder.RowBuilder setPrimaryAction(androidx.slice.builders.SliceAction);
-    method public androidx.slice.builders.ListBuilder.RowBuilder setSubtitle(java.lang.CharSequence);
-    method public androidx.slice.builders.ListBuilder.RowBuilder setSubtitle(java.lang.CharSequence, boolean);
-    method public androidx.slice.builders.ListBuilder.RowBuilder setTitle(java.lang.CharSequence);
-    method public androidx.slice.builders.ListBuilder.RowBuilder setTitle(java.lang.CharSequence, boolean);
+    method public androidx.slice.builders.ListBuilder.RowBuilder setSubtitle(CharSequence);
+    method public androidx.slice.builders.ListBuilder.RowBuilder setSubtitle(CharSequence?, boolean);
+    method public androidx.slice.builders.ListBuilder.RowBuilder setTitle(CharSequence);
+    method public androidx.slice.builders.ListBuilder.RowBuilder setTitle(CharSequence?, boolean);
     method public androidx.slice.builders.ListBuilder.RowBuilder setTitleItem(long);
-    method public androidx.slice.builders.ListBuilder.RowBuilder setTitleItem(androidx.core.graphics.drawable.IconCompat, int);
-    method public androidx.slice.builders.ListBuilder.RowBuilder setTitleItem(androidx.core.graphics.drawable.IconCompat, int, boolean);
+    method public androidx.slice.builders.ListBuilder.RowBuilder! setTitleItem(androidx.core.graphics.drawable.IconCompat, int);
+    method public androidx.slice.builders.ListBuilder.RowBuilder setTitleItem(androidx.core.graphics.drawable.IconCompat?, int, boolean);
     method public androidx.slice.builders.ListBuilder.RowBuilder setTitleItem(androidx.slice.builders.SliceAction);
     method public androidx.slice.builders.ListBuilder.RowBuilder setTitleItem(androidx.slice.builders.SliceAction, boolean);
   }
 
-  public class SliceAction implements androidx.slice.core.SliceAction {
-    method public static androidx.slice.builders.SliceAction create(android.app.PendingIntent, androidx.core.graphics.drawable.IconCompat, int, java.lang.CharSequence);
-    method public static androidx.slice.builders.SliceAction createDeeplink(android.app.PendingIntent, androidx.core.graphics.drawable.IconCompat, int, java.lang.CharSequence);
-    method public static androidx.slice.builders.SliceAction createToggle(android.app.PendingIntent, java.lang.CharSequence, boolean);
-    method public static androidx.slice.builders.SliceAction createToggle(android.app.PendingIntent, androidx.core.graphics.drawable.IconCompat, java.lang.CharSequence, boolean);
+  @RequiresApi(19) public class SliceAction implements androidx.slice.core.SliceAction {
+    method public static androidx.slice.builders.SliceAction! create(android.app.PendingIntent, androidx.core.graphics.drawable.IconCompat, int, CharSequence);
+    method public static androidx.slice.builders.SliceAction! createDeeplink(android.app.PendingIntent, androidx.core.graphics.drawable.IconCompat, int, CharSequence);
+    method public static androidx.slice.builders.SliceAction! createToggle(android.app.PendingIntent, CharSequence, boolean);
+    method public static androidx.slice.builders.SliceAction! createToggle(android.app.PendingIntent, androidx.core.graphics.drawable.IconCompat, CharSequence, boolean);
     method public android.app.PendingIntent getAction();
-    method public java.lang.CharSequence getContentDescription();
-    method public androidx.core.graphics.drawable.IconCompat getIcon();
+    method public CharSequence? getContentDescription();
+    method public androidx.core.graphics.drawable.IconCompat? getIcon();
     method public int getImageMode();
     method public int getPriority();
-    method public java.lang.CharSequence getTitle();
+    method public CharSequence getTitle();
     method public boolean isActivity();
     method public boolean isChecked();
     method public boolean isDefaultToggle();
     method public boolean isToggle();
     method public androidx.slice.builders.SliceAction setChecked(boolean);
-    method public androidx.slice.builders.SliceAction setContentDescription(java.lang.CharSequence);
-    method public androidx.slice.builders.SliceAction setPriority(int);
+    method public androidx.slice.builders.SliceAction setContentDescription(CharSequence);
+    method public androidx.slice.builders.SliceAction setPriority(@IntRange(from=0) int);
   }
 
-  public abstract class TemplateSliceBuilder {
+  @RequiresApi(19) public abstract class TemplateSliceBuilder {
     method public androidx.slice.Slice build();
   }
 
diff --git a/slices/core/api/current.txt b/slices/core/api/current.txt
index 31d6fd7..b33bb0e 100644
--- a/slices/core/api/current.txt
+++ b/slices/core/api/current.txt
@@ -1,79 +1,80 @@
+// Signature format: 2.0
 package androidx.slice {
 
-  public final class Slice extends androidx.versionedparcelable.CustomVersionedParcelable implements androidx.versionedparcelable.VersionedParcelable {
-    method public java.util.List<java.lang.String> getHints();
-    method public java.util.List<androidx.slice.SliceItem> getItems();
-    method public android.net.Uri getUri();
+  @RequiresApi(19) public final class Slice extends androidx.versionedparcelable.CustomVersionedParcelable implements androidx.versionedparcelable.VersionedParcelable {
+    method public java.util.List<java.lang.String>! getHints();
+    method public java.util.List<androidx.slice.SliceItem>! getItems();
+    method public android.net.Uri! getUri();
   }
 
-  public class SliceConvert {
-    method public static android.app.slice.Slice unwrap(androidx.slice.Slice);
-    method public static androidx.slice.Slice wrap(android.app.slice.Slice, android.content.Context);
+  @RequiresApi(28) public class SliceConvert {
+    method public static android.app.slice.Slice! unwrap(androidx.slice.Slice!);
+    method public static androidx.slice.Slice! wrap(android.app.slice.Slice!, android.content.Context!);
   }
 
-  public final class SliceItem extends androidx.versionedparcelable.CustomVersionedParcelable {
-    method public void fireAction(android.content.Context, android.content.Intent) throws android.app.PendingIntent.CanceledException;
-    method public android.app.PendingIntent getAction();
-    method public java.lang.String getFormat();
+  @RequiresApi(19) public final class SliceItem extends androidx.versionedparcelable.CustomVersionedParcelable {
+    method public void fireAction(android.content.Context?, android.content.Intent?) throws android.app.PendingIntent.CanceledException;
+    method public android.app.PendingIntent! getAction();
+    method public String! getFormat();
     method public java.util.List<java.lang.String> getHints();
-    method public androidx.core.graphics.drawable.IconCompat getIcon();
+    method public androidx.core.graphics.drawable.IconCompat! getIcon();
     method public int getInt();
     method public long getLong();
-    method public androidx.slice.Slice getSlice();
-    method public java.lang.String getSubType();
-    method public java.lang.CharSequence getText();
-    method public boolean hasHint(java.lang.String);
+    method public androidx.slice.Slice! getSlice();
+    method public String! getSubType();
+    method public CharSequence! getText();
+    method public boolean hasHint(String!);
   }
 
-  public abstract class SliceManager {
+  @RequiresApi(19) public abstract class SliceManager {
     method public abstract int checkSlicePermission(android.net.Uri, int, int);
     method public static androidx.slice.SliceManager getInstance(android.content.Context);
     method public abstract java.util.List<android.net.Uri> getPinnedSlices();
-    method public abstract void grantSlicePermission(java.lang.String, android.net.Uri);
-    method public abstract void revokeSlicePermission(java.lang.String, android.net.Uri);
+    method public abstract void grantSlicePermission(String, android.net.Uri);
+    method public abstract void revokeSlicePermission(String, android.net.Uri);
   }
 
   public abstract class SliceProvider extends android.content.ContentProvider implements androidx.core.app.CoreComponentFactory.CompatWrapped {
     ctor public SliceProvider(java.lang.String...);
     ctor public SliceProvider();
     method public final int bulkInsert(android.net.Uri, android.content.ContentValues[]);
-    method public final android.net.Uri canonicalize(android.net.Uri);
-    method public final int delete(android.net.Uri, java.lang.String, java.lang.String[]);
-    method public java.util.List<android.net.Uri> getPinnedSlices();
-    method public final java.lang.String getType(android.net.Uri);
-    method public java.lang.Object getWrapper();
-    method public final android.net.Uri insert(android.net.Uri, android.content.ContentValues);
-    method public abstract androidx.slice.Slice onBindSlice(android.net.Uri);
+    method @RequiresApi(19) public final android.net.Uri? canonicalize(android.net.Uri);
+    method public final int delete(android.net.Uri, String?, String[]?);
+    method @RequiresApi(19) public java.util.List<android.net.Uri> getPinnedSlices();
+    method public final String! getType(android.net.Uri!);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY) @RequiresApi(19) public Object! getWrapper();
+    method public final android.net.Uri? insert(android.net.Uri, android.content.ContentValues?);
+    method @RequiresApi(19) public abstract androidx.slice.Slice! onBindSlice(android.net.Uri!);
     method public final boolean onCreate();
-    method public abstract boolean onCreateSliceProvider();
-    method public java.util.Collection<android.net.Uri> onGetSliceDescendants(android.net.Uri);
-    method public android.net.Uri onMapIntentToUri(android.content.Intent);
-    method public void onSlicePinned(android.net.Uri);
-    method public void onSliceUnpinned(android.net.Uri);
-    method public final android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String);
-    method public final android.database.Cursor query(android.net.Uri, java.lang.String[], android.os.Bundle, android.os.CancellationSignal);
-    method public final android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, android.os.CancellationSignal);
-    method public final int update(android.net.Uri, android.content.ContentValues, java.lang.String, java.lang.String[]);
+    method @RequiresApi(19) public abstract boolean onCreateSliceProvider();
+    method @RequiresApi(19) public java.util.Collection<android.net.Uri>! onGetSliceDescendants(android.net.Uri!);
+    method @RequiresApi(19) public android.net.Uri onMapIntentToUri(android.content.Intent!);
+    method @RequiresApi(19) public void onSlicePinned(android.net.Uri!);
+    method @RequiresApi(19) public void onSliceUnpinned(android.net.Uri!);
+    method public final android.database.Cursor? query(android.net.Uri, String[]?, String?, String[]?, String?);
+    method @RequiresApi(28) public final android.database.Cursor? query(android.net.Uri, String[]?, android.os.Bundle?, android.os.CancellationSignal?);
+    method @RequiresApi(16) public final android.database.Cursor? query(android.net.Uri, String[]?, String?, String[]?, String?, android.os.CancellationSignal?);
+    method public final int update(android.net.Uri, android.content.ContentValues?, String?, String[]?);
   }
 
 }
 
 package androidx.slice.core {
 
-  public abstract interface SliceAction {
-    method public abstract android.app.PendingIntent getAction();
-    method public abstract java.lang.CharSequence getContentDescription();
-    method public abstract androidx.core.graphics.drawable.IconCompat getIcon();
-    method public abstract int getImageMode();
-    method public abstract int getPriority();
-    method public abstract java.lang.CharSequence getTitle();
-    method public abstract boolean isActivity();
-    method public abstract boolean isChecked();
-    method public abstract boolean isDefaultToggle();
-    method public abstract boolean isToggle();
-    method public abstract androidx.slice.core.SliceAction setChecked(boolean);
-    method public abstract androidx.slice.core.SliceAction setContentDescription(java.lang.CharSequence);
-    method public abstract androidx.slice.core.SliceAction setPriority(int);
+  @RequiresApi(19) public interface SliceAction {
+    method public android.app.PendingIntent getAction();
+    method public CharSequence? getContentDescription();
+    method public androidx.core.graphics.drawable.IconCompat? getIcon();
+    method public int getImageMode();
+    method public int getPriority();
+    method public CharSequence getTitle();
+    method public boolean isActivity();
+    method public boolean isChecked();
+    method public boolean isDefaultToggle();
+    method public boolean isToggle();
+    method public androidx.slice.core.SliceAction! setChecked(boolean);
+    method public androidx.slice.core.SliceAction? setContentDescription(CharSequence);
+    method public androidx.slice.core.SliceAction! setPriority(@IntRange(from=0) int);
   }
 
 }
diff --git a/slices/view/api/current.txt b/slices/view/api/current.txt
index ff591bc..961bbd9 100644
--- a/slices/view/api/current.txt
+++ b/slices/view/api/current.txt
@@ -1,67 +1,68 @@
+// Signature format: 2.0
 package androidx.slice {
 
-  public class SliceMetadata {
-    method public static androidx.slice.SliceMetadata from(android.content.Context, androidx.slice.Slice);
+  @RequiresApi(19) public class SliceMetadata {
+    method public static androidx.slice.SliceMetadata! from(android.content.Context, androidx.slice.Slice);
     method public long getExpiry();
     method public int getHeaderType();
-    method public android.app.PendingIntent getInputRangeAction();
+    method public android.app.PendingIntent? getInputRangeAction();
     method public long getLastUpdatedTime();
     method public int getLoadingState();
-    method public androidx.slice.core.SliceAction getPrimaryAction();
-    method public androidx.core.util.Pair<java.lang.Integer, java.lang.Integer> getRange();
+    method public androidx.slice.core.SliceAction? getPrimaryAction();
+    method public androidx.core.util.Pair<java.lang.Integer,java.lang.Integer>? getRange();
     method public int getRangeValue();
-    method public java.util.List<androidx.slice.core.SliceAction> getSliceActions();
-    method public java.util.List<java.lang.String> getSliceKeywords();
-    method public java.lang.CharSequence getSubtitle();
-    method public java.lang.CharSequence getSummary();
-    method public java.lang.CharSequence getTitle();
-    method public java.util.List<androidx.slice.core.SliceAction> getToggles();
+    method public java.util.List<androidx.slice.core.SliceAction>? getSliceActions();
+    method public java.util.List<java.lang.String>? getSliceKeywords();
+    method public CharSequence? getSubtitle();
+    method public CharSequence? getSummary();
+    method public CharSequence? getTitle();
+    method public java.util.List<androidx.slice.core.SliceAction>! getToggles();
     method public boolean hasLargeMode();
     method public boolean isCachedSlice();
     method public boolean isErrorSlice();
     method public boolean isPermissionSlice();
     method public boolean sendInputRangeAction(int) throws android.app.PendingIntent.CanceledException;
-    method public boolean sendToggleAction(androidx.slice.core.SliceAction, boolean) throws android.app.PendingIntent.CanceledException;
+    method public boolean sendToggleAction(androidx.slice.core.SliceAction!, boolean) throws android.app.PendingIntent.CanceledException;
     field public static final int LOADED_ALL = 2; // 0x2
     field public static final int LOADED_NONE = 0; // 0x0
     field public static final int LOADED_PARTIAL = 1; // 0x1
   }
 
-  public class SliceStructure {
-    ctor public SliceStructure(androidx.slice.Slice);
+  @RequiresApi(19) public class SliceStructure {
+    ctor public SliceStructure(androidx.slice.Slice!);
   }
 
-  public class SliceUtils {
-    method public static androidx.slice.Slice parseSlice(android.content.Context, java.io.InputStream, java.lang.String, androidx.slice.SliceUtils.SliceActionListener) throws java.io.IOException, androidx.slice.SliceUtils.SliceParseException;
+  @RequiresApi(19) public class SliceUtils {
+    method public static androidx.slice.Slice parseSlice(android.content.Context, java.io.InputStream, String, androidx.slice.SliceUtils.SliceActionListener) throws java.io.IOException, androidx.slice.SliceUtils.SliceParseException;
     method public static void serializeSlice(androidx.slice.Slice, android.content.Context, java.io.OutputStream, androidx.slice.SliceUtils.SerializeOptions) throws java.lang.IllegalArgumentException;
     method public static androidx.slice.Slice stripSlice(androidx.slice.Slice, int, boolean);
   }
 
   public static class SliceUtils.SerializeOptions {
     ctor public SliceUtils.SerializeOptions();
-    method public androidx.slice.SliceUtils.SerializeOptions setActionMode(int);
-    method public androidx.slice.SliceUtils.SerializeOptions setImageConversionFormat(android.graphics.Bitmap.CompressFormat, int);
-    method public androidx.slice.SliceUtils.SerializeOptions setImageMode(int);
-    method public androidx.slice.SliceUtils.SerializeOptions setMaxImageHeight(int);
-    method public androidx.slice.SliceUtils.SerializeOptions setMaxImageWidth(int);
+    method public androidx.slice.SliceUtils.SerializeOptions! setActionMode(int);
+    method public androidx.slice.SliceUtils.SerializeOptions! setImageConversionFormat(android.graphics.Bitmap.CompressFormat!, int);
+    method public androidx.slice.SliceUtils.SerializeOptions! setImageMode(int);
+    method public androidx.slice.SliceUtils.SerializeOptions! setMaxImageHeight(int);
+    method public androidx.slice.SliceUtils.SerializeOptions! setMaxImageWidth(int);
     field public static final int MODE_CONVERT = 2; // 0x2
     field public static final int MODE_REMOVE = 1; // 0x1
     field public static final int MODE_THROW = 0; // 0x0
   }
 
-  public static abstract interface SliceUtils.SliceActionListener {
-    method public abstract void onSliceAction(android.net.Uri, android.content.Context, android.content.Intent);
+  public static interface SliceUtils.SliceActionListener {
+    method public void onSliceAction(android.net.Uri!, android.content.Context!, android.content.Intent!);
   }
 
   public static class SliceUtils.SliceParseException extends java.lang.Exception {
   }
 
-  public abstract class SliceViewManager {
-    method public abstract androidx.slice.Slice bindSlice(android.net.Uri);
-    method public abstract androidx.slice.Slice bindSlice(android.content.Intent);
+  @RequiresApi(19) public abstract class SliceViewManager {
+    method public abstract androidx.slice.Slice? bindSlice(android.net.Uri);
+    method public abstract androidx.slice.Slice? bindSlice(android.content.Intent);
     method public static androidx.slice.SliceViewManager getInstance(android.content.Context);
-    method public abstract java.util.Collection<android.net.Uri> getSliceDescendants(android.net.Uri);
-    method public abstract android.net.Uri mapIntentToUri(android.content.Intent);
+    method @WorkerThread public abstract java.util.Collection<android.net.Uri> getSliceDescendants(android.net.Uri);
+    method public abstract android.net.Uri? mapIntentToUri(android.content.Intent);
     method public abstract void pinSlice(android.net.Uri);
     method public abstract void registerSliceCallback(android.net.Uri, androidx.slice.SliceViewManager.SliceCallback);
     method public abstract void registerSliceCallback(android.net.Uri, java.util.concurrent.Executor, androidx.slice.SliceViewManager.SliceCallback);
@@ -69,15 +70,15 @@
     method public abstract void unregisterSliceCallback(android.net.Uri, androidx.slice.SliceViewManager.SliceCallback);
   }
 
-  public static abstract interface SliceViewManager.SliceCallback {
-    method public abstract void onSliceUpdated(androidx.slice.Slice);
+  public static interface SliceViewManager.SliceCallback {
+    method public void onSliceUpdated(androidx.slice.Slice);
   }
 
 }
 
 package androidx.slice.widget {
 
-  public class EventInfo {
+  @RequiresApi(19) public class EventInfo {
     ctor public EventInfo(int, int, int, int);
     method public void setPosition(int, int, int);
     field public static final int ACTION_TYPE_BUTTON = 1; // 0x1
@@ -107,48 +108,48 @@
     field public int state;
   }
 
-  public final class SliceLiveData {
+  @RequiresApi(19) public final class SliceLiveData {
     method public static androidx.lifecycle.LiveData<androidx.slice.Slice> fromIntent(android.content.Context, android.content.Intent);
-    method public static androidx.lifecycle.LiveData<androidx.slice.Slice> fromStream(android.content.Context, java.io.InputStream, androidx.slice.widget.SliceLiveData.OnErrorListener);
-    method public static androidx.lifecycle.LiveData<androidx.slice.Slice> fromStreamBlocking(android.content.Context, java.io.InputStream, androidx.slice.widget.SliceLiveData.OnErrorListener);
+    method public static androidx.lifecycle.LiveData<androidx.slice.Slice> fromStream(android.content.Context, java.io.InputStream, androidx.slice.widget.SliceLiveData.OnErrorListener!);
+    method public static androidx.lifecycle.LiveData<androidx.slice.Slice> fromStreamBlocking(android.content.Context, java.io.InputStream, androidx.slice.widget.SliceLiveData.OnErrorListener!);
     method public static androidx.lifecycle.LiveData<androidx.slice.Slice> fromUri(android.content.Context, android.net.Uri);
   }
 
-  public static abstract interface SliceLiveData.OnErrorListener {
-    method public abstract void onSliceError(int, java.lang.Throwable);
+  public static interface SliceLiveData.OnErrorListener {
+    method public void onSliceError(@androidx.slice.widget.SliceLiveData.OnErrorListener.ErrorType int, Throwable?);
     field public static final int ERROR_INVALID_INPUT = 3; // 0x3
     field public static final int ERROR_SLICE_NO_LONGER_PRESENT = 2; // 0x2
     field public static final int ERROR_STRUCTURE_CHANGED = 1; // 0x1
     field public static final int ERROR_UNKNOWN = 0; // 0x0
   }
 
-  public static abstract class SliceLiveData.OnErrorListener.ErrorType implements java.lang.annotation.Annotation {
+  @IntDef({androidx.slice.widget.SliceLiveData.OnErrorListener.ERROR_UNKNOWN, androidx.slice.widget.SliceLiveData.OnErrorListener.ERROR_STRUCTURE_CHANGED, androidx.slice.widget.SliceLiveData.OnErrorListener.ERROR_SLICE_NO_LONGER_PRESENT, androidx.slice.widget.SliceLiveData.OnErrorListener.ERROR_INVALID_INPUT}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public static @interface SliceLiveData.OnErrorListener.ErrorType {
   }
 
-  public class SliceView extends android.view.ViewGroup implements androidx.lifecycle.Observer android.view.View.OnClickListener {
-    ctor public SliceView(android.content.Context);
-    ctor public SliceView(android.content.Context, android.util.AttributeSet);
-    ctor public SliceView(android.content.Context, android.util.AttributeSet, int);
-    ctor public SliceView(android.content.Context, android.util.AttributeSet, int, int);
+  @RequiresApi(19) public class SliceView extends android.view.ViewGroup implements androidx.lifecycle.Observer<androidx.slice.Slice> android.view.View.OnClickListener {
+    ctor public SliceView(android.content.Context!);
+    ctor public SliceView(android.content.Context!, android.util.AttributeSet?);
+    ctor public SliceView(android.content.Context!, android.util.AttributeSet?, int);
+    ctor @RequiresApi(21) public SliceView(android.content.Context!, android.util.AttributeSet!, int, int);
     method public int getMode();
-    method public androidx.slice.Slice getSlice();
-    method public java.util.List<androidx.slice.core.SliceAction> getSliceActions();
+    method public androidx.slice.Slice? getSlice();
+    method public java.util.List<androidx.slice.core.SliceAction>? getSliceActions();
     method public boolean isScrollable();
-    method public void onChanged(androidx.slice.Slice);
-    method public void onClick(android.view.View);
-    method public void setAccentColor(int);
+    method public void onChanged(androidx.slice.Slice?);
+    method public void onClick(android.view.View!);
+    method public void setAccentColor(@ColorInt int);
     method public void setMode(int);
-    method public void setOnSliceActionListener(androidx.slice.widget.SliceView.OnSliceActionListener);
+    method public void setOnSliceActionListener(androidx.slice.widget.SliceView.OnSliceActionListener?);
     method public void setScrollable(boolean);
-    method public void setSlice(androidx.slice.Slice);
-    method public void setSliceActions(java.util.List<androidx.slice.core.SliceAction>);
+    method public void setSlice(androidx.slice.Slice?);
+    method public void setSliceActions(java.util.List<androidx.slice.core.SliceAction>?);
     field public static final int MODE_LARGE = 2; // 0x2
     field public static final int MODE_SHORTCUT = 3; // 0x3
     field public static final int MODE_SMALL = 1; // 0x1
   }
 
-  public static abstract interface SliceView.OnSliceActionListener {
-    method public abstract void onSliceAction(androidx.slice.widget.EventInfo, androidx.slice.SliceItem);
+  public static interface SliceView.OnSliceActionListener {
+    method public void onSliceAction(androidx.slice.widget.EventInfo, androidx.slice.SliceItem);
   }
 
 }
diff --git a/slidingpanelayout/api/1.0.0.txt b/slidingpanelayout/api/1.0.0.txt
index c1f773c..fa97413 100644
--- a/slidingpanelayout/api/1.0.0.txt
+++ b/slidingpanelayout/api/1.0.0.txt
@@ -1,30 +1,31 @@
+// Signature format: 2.0
 package androidx.slidingpanelayout.widget {
 
   public class SlidingPaneLayout extends android.view.ViewGroup {
     ctor public SlidingPaneLayout(android.content.Context);
-    ctor public SlidingPaneLayout(android.content.Context, android.util.AttributeSet);
-    ctor public SlidingPaneLayout(android.content.Context, android.util.AttributeSet, int);
-    method protected boolean canScroll(android.view.View, boolean, int, int, int);
-    method public deprecated boolean canSlide();
+    ctor public SlidingPaneLayout(android.content.Context, android.util.AttributeSet?);
+    ctor public SlidingPaneLayout(android.content.Context, android.util.AttributeSet?, int);
+    method protected boolean canScroll(android.view.View!, boolean, int, int, int);
+    method @Deprecated public boolean canSlide();
     method public boolean closePane();
-    method public int getCoveredFadeColor();
-    method public int getParallaxDistance();
-    method public int getSliderFadeColor();
+    method @ColorInt public int getCoveredFadeColor();
+    method @Px public int getParallaxDistance();
+    method @ColorInt public int getSliderFadeColor();
     method public boolean isOpen();
     method public boolean isSlideable();
     method public boolean openPane();
-    method public void setCoveredFadeColor(int);
-    method public void setPanelSlideListener(androidx.slidingpanelayout.widget.SlidingPaneLayout.PanelSlideListener);
-    method public void setParallaxDistance(int);
-    method public deprecated void setShadowDrawable(android.graphics.drawable.Drawable);
-    method public void setShadowDrawableLeft(android.graphics.drawable.Drawable);
-    method public void setShadowDrawableRight(android.graphics.drawable.Drawable);
-    method public deprecated void setShadowResource(int);
+    method public void setCoveredFadeColor(@ColorInt int);
+    method public void setPanelSlideListener(androidx.slidingpanelayout.widget.SlidingPaneLayout.PanelSlideListener?);
+    method public void setParallaxDistance(@Px int);
+    method @Deprecated public void setShadowDrawable(android.graphics.drawable.Drawable!);
+    method public void setShadowDrawableLeft(android.graphics.drawable.Drawable?);
+    method public void setShadowDrawableRight(android.graphics.drawable.Drawable?);
+    method @Deprecated public void setShadowResource(@DrawableRes int);
     method public void setShadowResourceLeft(int);
     method public void setShadowResourceRight(int);
-    method public void setSliderFadeColor(int);
-    method public deprecated void smoothSlideClosed();
-    method public deprecated void smoothSlideOpen();
+    method public void setSliderFadeColor(@ColorInt int);
+    method @Deprecated public void smoothSlideClosed();
+    method @Deprecated public void smoothSlideOpen();
   }
 
   public static class SlidingPaneLayout.LayoutParams extends android.view.ViewGroup.MarginLayoutParams {
@@ -33,21 +34,21 @@
     ctor public SlidingPaneLayout.LayoutParams(android.view.ViewGroup.LayoutParams);
     ctor public SlidingPaneLayout.LayoutParams(android.view.ViewGroup.MarginLayoutParams);
     ctor public SlidingPaneLayout.LayoutParams(androidx.slidingpanelayout.widget.SlidingPaneLayout.LayoutParams);
-    ctor public SlidingPaneLayout.LayoutParams(android.content.Context, android.util.AttributeSet);
+    ctor public SlidingPaneLayout.LayoutParams(android.content.Context, android.util.AttributeSet?);
     field public float weight;
   }
 
-  public static abstract interface SlidingPaneLayout.PanelSlideListener {
-    method public abstract void onPanelClosed(android.view.View);
-    method public abstract void onPanelOpened(android.view.View);
-    method public abstract void onPanelSlide(android.view.View, float);
+  public static interface SlidingPaneLayout.PanelSlideListener {
+    method public void onPanelClosed(android.view.View);
+    method public void onPanelOpened(android.view.View);
+    method public void onPanelSlide(android.view.View, float);
   }
 
   public static class SlidingPaneLayout.SimplePanelSlideListener implements androidx.slidingpanelayout.widget.SlidingPaneLayout.PanelSlideListener {
     ctor public SlidingPaneLayout.SimplePanelSlideListener();
-    method public void onPanelClosed(android.view.View);
-    method public void onPanelOpened(android.view.View);
-    method public void onPanelSlide(android.view.View, float);
+    method public void onPanelClosed(android.view.View!);
+    method public void onPanelOpened(android.view.View!);
+    method public void onPanelSlide(android.view.View!, float);
   }
 
 }
diff --git a/swiperefreshlayout/api/current.txt b/swiperefreshlayout/api/current.txt
index 451d305..26a01ea 100644
--- a/swiperefreshlayout/api/current.txt
+++ b/swiperefreshlayout/api/current.txt
@@ -1,8 +1,9 @@
+// Signature format: 2.0
 package androidx.swiperefreshlayout.widget {
 
   public class CircularProgressDrawable extends android.graphics.drawable.Drawable implements android.graphics.drawable.Animatable {
     ctor public CircularProgressDrawable(android.content.Context);
-    method public void draw(android.graphics.Canvas);
+    method public void draw(android.graphics.Canvas!);
     method public boolean getArrowEnabled();
     method public float getArrowHeight();
     method public float getArrowScale();
@@ -23,7 +24,7 @@
     method public void setArrowScale(float);
     method public void setBackgroundColor(int);
     method public void setCenterRadius(float);
-    method public void setColorFilter(android.graphics.ColorFilter);
+    method public void setColorFilter(android.graphics.ColorFilter!);
     method public void setColorSchemeColors(int...);
     method public void setProgressRotation(float);
     method public void setStartEndTrim(float, float);
@@ -38,37 +39,37 @@
 
   public class SwipeRefreshLayout extends android.view.ViewGroup implements androidx.core.view.NestedScrollingChild androidx.core.view.NestedScrollingChild2 androidx.core.view.NestedScrollingChild3 androidx.core.view.NestedScrollingParent androidx.core.view.NestedScrollingParent2 androidx.core.view.NestedScrollingParent3 {
     ctor public SwipeRefreshLayout(android.content.Context);
-    ctor public SwipeRefreshLayout(android.content.Context, android.util.AttributeSet);
+    ctor public SwipeRefreshLayout(android.content.Context, android.util.AttributeSet?);
     method public boolean canChildScrollUp();
-    method public boolean dispatchNestedPreScroll(int, int, int[], int[], int);
-    method public void dispatchNestedScroll(int, int, int, int, int[], int, int[]);
-    method public boolean dispatchNestedScroll(int, int, int, int, int[], int);
+    method public boolean dispatchNestedPreScroll(int, int, int[]!, int[]!, int);
+    method public void dispatchNestedScroll(int, int, int, int, int[]?, int, int[]);
+    method public boolean dispatchNestedScroll(int, int, int, int, int[]!, int);
     method public int getProgressCircleDiameter();
     method public int getProgressViewEndOffset();
     method public int getProgressViewStartOffset();
     method public boolean hasNestedScrollingParent(int);
     method public boolean isRefreshing();
     method public void onMeasure(int, int);
-    method public void onNestedPreScroll(android.view.View, int, int, int[], int);
+    method public void onNestedPreScroll(android.view.View!, int, int, int[]!, int);
     method public void onNestedScroll(android.view.View, int, int, int, int, int, int[]);
-    method public void onNestedScroll(android.view.View, int, int, int, int, int);
-    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 deprecated void setColorScheme(int...);
-    method public void setColorSchemeColors(int...);
-    method public void setColorSchemeResources(int...);
+    method public void onNestedScroll(android.view.View!, int, int, int, int, int);
+    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 @Deprecated public void setColorScheme(@ColorRes int...!);
+    method public void setColorSchemeColors(@ColorInt int...!);
+    method public void setColorSchemeResources(@ColorRes int...!);
     method public void setDistanceToTriggerSync(int);
-    method public void setOnChildScrollUpCallback(androidx.swiperefreshlayout.widget.SwipeRefreshLayout.OnChildScrollUpCallback);
-    method public void setOnRefreshListener(androidx.swiperefreshlayout.widget.SwipeRefreshLayout.OnRefreshListener);
-    method public deprecated void setProgressBackgroundColor(int);
-    method public void setProgressBackgroundColorSchemeColor(int);
-    method public void setProgressBackgroundColorSchemeResource(int);
+    method public void setOnChildScrollUpCallback(androidx.swiperefreshlayout.widget.SwipeRefreshLayout.OnChildScrollUpCallback?);
+    method public void setOnRefreshListener(androidx.swiperefreshlayout.widget.SwipeRefreshLayout.OnRefreshListener?);
+    method @Deprecated public void setProgressBackgroundColor(int);
+    method public void setProgressBackgroundColorSchemeColor(@ColorInt int);
+    method public void setProgressBackgroundColorSchemeResource(@ColorRes int);
     method public void setProgressViewEndTarget(boolean, int);
     method public void setProgressViewOffset(boolean, int, int);
     method public void setRefreshing(boolean);
     method public void setSize(int);
-    method public void setSlingshotDistance(int);
+    method public void setSlingshotDistance(@Px int);
     method public boolean startNestedScroll(int, int);
     method public void stopNestedScroll(int);
     field public static final int DEFAULT = 1; // 0x1
@@ -78,12 +79,12 @@
     field protected int mOriginalOffsetTop;
   }
 
-  public static abstract interface SwipeRefreshLayout.OnChildScrollUpCallback {
-    method public abstract boolean canChildScrollUp(androidx.swiperefreshlayout.widget.SwipeRefreshLayout, android.view.View);
+  public static interface SwipeRefreshLayout.OnChildScrollUpCallback {
+    method public boolean canChildScrollUp(androidx.swiperefreshlayout.widget.SwipeRefreshLayout, android.view.View?);
   }
 
-  public static abstract interface SwipeRefreshLayout.OnRefreshListener {
-    method public abstract void onRefresh();
+  public static interface SwipeRefreshLayout.OnRefreshListener {
+    method public void onRefresh();
   }
 
 }
diff --git a/textclassifier/api/current.txt b/textclassifier/api/current.txt
index 2e6c474..484d557 100644
--- a/textclassifier/api/current.txt
+++ b/textclassifier/api/current.txt
@@ -1,13 +1,14 @@
+// Signature format: 2.0
 package androidx.textclassifier {
 
   public final class TextClassification {
     method public static androidx.textclassifier.TextClassification createFromBundle(android.os.Bundle);
     method public java.util.List<androidx.core.app.RemoteActionCompat> getActions();
-    method public float getConfidenceScore(java.lang.String);
-    method public java.lang.String getEntityType(int);
-    method public int getEntityTypeCount();
-    method public java.lang.String getId();
-    method public java.lang.CharSequence getText();
+    method @FloatRange(from=0.0, to=1.0) public float getConfidenceScore(String!);
+    method public String getEntityType(int);
+    method @IntRange(from=0) public int getEntityTypeCount();
+    method public String? getId();
+    method public CharSequence? getText();
     method public android.os.Bundle toBundle();
   }
 
@@ -15,46 +16,46 @@
     ctor public TextClassification.Builder();
     method public androidx.textclassifier.TextClassification.Builder addAction(androidx.core.app.RemoteActionCompat);
     method public androidx.textclassifier.TextClassification build();
-    method public androidx.textclassifier.TextClassification.Builder setEntityType(java.lang.String, float);
-    method public androidx.textclassifier.TextClassification.Builder setId(java.lang.String);
-    method public androidx.textclassifier.TextClassification.Builder setText(java.lang.CharSequence);
+    method public androidx.textclassifier.TextClassification.Builder! setEntityType(String, @FloatRange(from=0.0, to=1.0) float);
+    method public androidx.textclassifier.TextClassification.Builder setId(String?);
+    method public androidx.textclassifier.TextClassification.Builder! setText(CharSequence?);
   }
 
   public static final class TextClassification.Request {
-    method public static androidx.textclassifier.TextClassification.Request createFromBundle(android.os.Bundle);
-    method public androidx.core.os.LocaleListCompat getDefaultLocales();
-    method public int getEndIndex();
-    method public java.lang.Long getReferenceTime();
-    method public int getStartIndex();
-    method public java.lang.CharSequence getText();
+    method public static androidx.textclassifier.TextClassification.Request! createFromBundle(android.os.Bundle);
+    method public androidx.core.os.LocaleListCompat? getDefaultLocales();
+    method @IntRange(from=0) public int getEndIndex();
+    method public Long? getReferenceTime();
+    method @IntRange(from=0) public int getStartIndex();
+    method public CharSequence getText();
     method public android.os.Bundle toBundle();
   }
 
   public static final class TextClassification.Request.Builder {
-    ctor public TextClassification.Request.Builder(java.lang.CharSequence, int, int);
+    ctor public TextClassification.Request.Builder(CharSequence, @IntRange(from=0) int, @IntRange(from=0) int);
     method public androidx.textclassifier.TextClassification.Request build();
-    method public androidx.textclassifier.TextClassification.Request.Builder setDefaultLocales(androidx.core.os.LocaleListCompat);
-    method public androidx.textclassifier.TextClassification.Request.Builder setReferenceTime(java.lang.Long);
+    method public androidx.textclassifier.TextClassification.Request.Builder setDefaultLocales(androidx.core.os.LocaleListCompat?);
+    method public androidx.textclassifier.TextClassification.Request.Builder setReferenceTime(Long?);
   }
 
   public final class TextClassificationContext {
     method public static androidx.textclassifier.TextClassificationContext createFromBundle(android.os.Bundle);
-    method public java.lang.String getPackageName();
-    method public java.lang.String getWidgetType();
-    method public java.lang.String getWidgetVersion();
+    method public String getPackageName();
+    method public String getWidgetType();
+    method public String? getWidgetVersion();
     method public android.os.Bundle toBundle();
   }
 
   public static final class TextClassificationContext.Builder {
-    ctor public TextClassificationContext.Builder(java.lang.String, java.lang.String);
+    ctor public TextClassificationContext.Builder(String, String);
     method public androidx.textclassifier.TextClassificationContext build();
-    method public androidx.textclassifier.TextClassificationContext.Builder setWidgetVersion(java.lang.String);
+    method public androidx.textclassifier.TextClassificationContext.Builder! setWidgetVersion(String?);
   }
 
   public final class TextClassificationManager {
     method public androidx.textclassifier.TextClassifier getTextClassifier();
-    method public static androidx.textclassifier.TextClassificationManager of(android.content.Context);
-    method public void setTextClassifier(androidx.textclassifier.TextClassifier);
+    method public static androidx.textclassifier.TextClassificationManager! of(android.content.Context);
+    method public void setTextClassifier(androidx.textclassifier.TextClassifier?);
   }
 
   public final class TextClassificationSessionId {
@@ -64,37 +65,37 @@
 
   public abstract class TextClassifier {
     ctor public TextClassifier();
-    method public androidx.textclassifier.TextClassification classifyText(androidx.textclassifier.TextClassification.Request);
-    method public androidx.textclassifier.TextLinks generateLinks(androidx.textclassifier.TextLinks.Request);
+    method @WorkerThread public androidx.textclassifier.TextClassification classifyText(androidx.textclassifier.TextClassification.Request);
+    method @WorkerThread public androidx.textclassifier.TextLinks generateLinks(androidx.textclassifier.TextLinks.Request);
     method public int getMaxGenerateLinksTextLength();
-    method public androidx.textclassifier.TextSelection suggestSelection(androidx.textclassifier.TextSelection.Request);
-    field public static final java.lang.String HINT_TEXT_IS_EDITABLE = "android.text_is_editable";
-    field public static final java.lang.String HINT_TEXT_IS_NOT_EDITABLE = "android.text_is_not_editable";
-    field public static final androidx.textclassifier.TextClassifier NO_OP;
-    field public static final java.lang.String TYPE_ADDRESS = "address";
-    field public static final java.lang.String TYPE_DATE = "date";
-    field public static final java.lang.String TYPE_DATE_TIME = "datetime";
-    field public static final java.lang.String TYPE_EMAIL = "email";
-    field public static final java.lang.String TYPE_FLIGHT_NUMBER = "flight";
-    field public static final java.lang.String TYPE_OTHER = "other";
-    field public static final java.lang.String TYPE_PHONE = "phone";
-    field public static final java.lang.String TYPE_UNKNOWN = "";
-    field public static final java.lang.String TYPE_URL = "url";
-    field public static final java.lang.String WIDGET_TYPE_CUSTOM_EDITTEXT = "customedit";
-    field public static final java.lang.String WIDGET_TYPE_CUSTOM_TEXTVIEW = "customview";
-    field public static final java.lang.String WIDGET_TYPE_CUSTOM_UNSELECTABLE_TEXTVIEW = "nosel-customview";
-    field public static final java.lang.String WIDGET_TYPE_EDITTEXT = "edittext";
-    field public static final java.lang.String WIDGET_TYPE_EDIT_WEBVIEW = "edit-webview";
-    field public static final java.lang.String WIDGET_TYPE_TEXTVIEW = "textview";
-    field public static final java.lang.String WIDGET_TYPE_UNKNOWN = "unknown";
-    field public static final java.lang.String WIDGET_TYPE_UNSELECTABLE_TEXTVIEW = "nosel-textview";
-    field public static final java.lang.String WIDGET_TYPE_WEBVIEW = "webview";
+    method @WorkerThread public androidx.textclassifier.TextSelection suggestSelection(androidx.textclassifier.TextSelection.Request);
+    field public static final String HINT_TEXT_IS_EDITABLE = "android.text_is_editable";
+    field public static final String HINT_TEXT_IS_NOT_EDITABLE = "android.text_is_not_editable";
+    field public static final androidx.textclassifier.TextClassifier! NO_OP;
+    field public static final String TYPE_ADDRESS = "address";
+    field public static final String TYPE_DATE = "date";
+    field public static final String TYPE_DATE_TIME = "datetime";
+    field public static final String TYPE_EMAIL = "email";
+    field public static final String TYPE_FLIGHT_NUMBER = "flight";
+    field public static final String TYPE_OTHER = "other";
+    field public static final String TYPE_PHONE = "phone";
+    field public static final String TYPE_UNKNOWN = "";
+    field public static final String TYPE_URL = "url";
+    field public static final String WIDGET_TYPE_CUSTOM_EDITTEXT = "customedit";
+    field public static final String WIDGET_TYPE_CUSTOM_TEXTVIEW = "customview";
+    field public static final String WIDGET_TYPE_CUSTOM_UNSELECTABLE_TEXTVIEW = "nosel-customview";
+    field public static final String WIDGET_TYPE_EDITTEXT = "edittext";
+    field public static final String WIDGET_TYPE_EDIT_WEBVIEW = "edit-webview";
+    field public static final String WIDGET_TYPE_TEXTVIEW = "textview";
+    field public static final String WIDGET_TYPE_UNKNOWN = "unknown";
+    field public static final String WIDGET_TYPE_UNSELECTABLE_TEXTVIEW = "nosel-textview";
+    field public static final String WIDGET_TYPE_WEBVIEW = "webview";
   }
 
   public static final class TextClassifier.EntityConfig {
     method public static androidx.textclassifier.TextClassifier.EntityConfig createFromBundle(android.os.Bundle);
     method public java.util.Collection<java.lang.String> getHints();
-    method public java.util.Collection<java.lang.String> resolveEntityTypes(java.util.Collection<java.lang.String>);
+    method public java.util.Collection<java.lang.String>! resolveEntityTypes(java.util.Collection<java.lang.String>?);
     method public boolean shouldIncludeDefaultEntityTypes();
     method public android.os.Bundle toBundle();
   }
@@ -102,14 +103,14 @@
   public static final class TextClassifier.EntityConfig.Builder {
     ctor public TextClassifier.EntityConfig.Builder();
     method public androidx.textclassifier.TextClassifier.EntityConfig build();
-    method public androidx.textclassifier.TextClassifier.EntityConfig.Builder setExcludedEntityTypes(java.util.Collection<java.lang.String>);
-    method public androidx.textclassifier.TextClassifier.EntityConfig.Builder setHints(java.util.Collection<java.lang.String>);
-    method public androidx.textclassifier.TextClassifier.EntityConfig.Builder setIncludeDefaultEntityTypes(boolean);
-    method public androidx.textclassifier.TextClassifier.EntityConfig.Builder setIncludedEntityTypes(java.util.Collection<java.lang.String>);
+    method public androidx.textclassifier.TextClassifier.EntityConfig.Builder! setExcludedEntityTypes(java.util.Collection<java.lang.String>?);
+    method public androidx.textclassifier.TextClassifier.EntityConfig.Builder! setHints(java.util.Collection<java.lang.String>?);
+    method public androidx.textclassifier.TextClassifier.EntityConfig.Builder! setIncludeDefaultEntityTypes(boolean);
+    method public androidx.textclassifier.TextClassifier.EntityConfig.Builder! setIncludedEntityTypes(java.util.Collection<java.lang.String>?);
   }
 
   public final class TextLinks {
-    method public int apply(android.widget.TextView, androidx.textclassifier.TextLinksParams);
+    method @UiThread public int apply(android.widget.TextView, androidx.textclassifier.TextLinksParams!);
     method public int apply(android.content.Context, android.text.Spannable, androidx.textclassifier.TextLinksParams);
     method public static androidx.textclassifier.TextLinks createFromBundle(android.os.Bundle);
     method public java.util.Collection<androidx.textclassifier.TextLinks.TextLink> getLinks();
@@ -124,34 +125,34 @@
   }
 
   public static final class TextLinks.Builder {
-    ctor public TextLinks.Builder(java.lang.CharSequence);
-    method public androidx.textclassifier.TextLinks.Builder addLink(int, int, java.util.Map<java.lang.String, java.lang.Float>);
+    ctor public TextLinks.Builder(CharSequence);
+    method public androidx.textclassifier.TextLinks.Builder addLink(int, int, java.util.Map<java.lang.String,java.lang.Float>);
     method public androidx.textclassifier.TextLinks build();
     method public androidx.textclassifier.TextLinks.Builder clearTextLinks();
   }
 
   public static final class TextLinks.Request {
     method public static androidx.textclassifier.TextLinks.Request createFromBundle(android.os.Bundle);
-    method public androidx.core.os.LocaleListCompat getDefaultLocales();
+    method public androidx.core.os.LocaleListCompat? getDefaultLocales();
     method public androidx.textclassifier.TextClassifier.EntityConfig getEntityConfig();
-    method public java.lang.Long getReferenceTime();
-    method public java.lang.CharSequence getText();
+    method public Long? getReferenceTime();
+    method public CharSequence getText();
     method public android.os.Bundle toBundle();
   }
 
   public static final class TextLinks.Request.Builder {
-    ctor public TextLinks.Request.Builder(java.lang.CharSequence);
+    ctor public TextLinks.Request.Builder(CharSequence);
     method public androidx.textclassifier.TextLinks.Request build();
-    method public androidx.textclassifier.TextLinks.Request.Builder setDefaultLocales(androidx.core.os.LocaleListCompat);
-    method public androidx.textclassifier.TextLinks.Request.Builder setEntityConfig(androidx.textclassifier.TextClassifier.EntityConfig);
-    method public androidx.textclassifier.TextLinks.Request.Builder setReferenceTime(java.lang.Long);
+    method public androidx.textclassifier.TextLinks.Request.Builder setDefaultLocales(androidx.core.os.LocaleListCompat?);
+    method public androidx.textclassifier.TextLinks.Request.Builder setEntityConfig(androidx.textclassifier.TextClassifier.EntityConfig?);
+    method public androidx.textclassifier.TextLinks.Request.Builder setReferenceTime(Long?);
   }
 
   public static final class TextLinks.TextLink {
     method public static androidx.textclassifier.TextLinks.TextLink createFromBundle(android.os.Bundle);
-    method public float getConfidenceScore(java.lang.String);
+    method @FloatRange(from=0.0, to=1.0) public float getConfidenceScore(String!);
     method public int getEnd();
-    method public java.lang.String getEntity(int);
+    method public String getEntity(int);
     method public int getEntityCount();
     method public int getStart();
     method public android.os.Bundle toBundle();
@@ -160,7 +161,7 @@
   public static class TextLinks.TextLinkSpan extends android.text.style.ClickableSpan {
     ctor public TextLinks.TextLinkSpan(androidx.textclassifier.TextLinks.TextLinkSpanData);
     method public final androidx.textclassifier.TextLinks.TextLinkSpanData getTextLinkSpanData();
-    method public void onClick(android.view.View);
+    method public void onClick(android.view.View!);
   }
 
   public static class TextLinks.TextLinkSpanData {
@@ -168,49 +169,49 @@
   }
 
   public final class TextLinksParams {
-    field public static final androidx.textclassifier.TextLinksParams DEFAULT_PARAMS;
+    field public static final androidx.textclassifier.TextLinksParams! DEFAULT_PARAMS;
   }
 
   public static final class TextLinksParams.Builder {
     ctor public TextLinksParams.Builder();
-    method public androidx.textclassifier.TextLinksParams build();
-    method public androidx.textclassifier.TextLinksParams.Builder setApplyStrategy(int);
-    method public androidx.textclassifier.TextLinksParams.Builder setDefaultLocales(androidx.core.os.LocaleListCompat);
-    method public androidx.textclassifier.TextLinksParams.Builder setEntityConfig(androidx.textclassifier.TextClassifier.EntityConfig);
-    method public androidx.textclassifier.TextLinksParams.Builder setReferenceTime(java.lang.Long);
+    method public androidx.textclassifier.TextLinksParams! build();
+    method public androidx.textclassifier.TextLinksParams.Builder! setApplyStrategy(int);
+    method public androidx.textclassifier.TextLinksParams.Builder setDefaultLocales(androidx.core.os.LocaleListCompat?);
+    method public androidx.textclassifier.TextLinksParams.Builder setEntityConfig(androidx.textclassifier.TextClassifier.EntityConfig?);
+    method public androidx.textclassifier.TextLinksParams.Builder setReferenceTime(Long?);
   }
 
   public final class TextSelection {
     method public static androidx.textclassifier.TextSelection createFromBundle(android.os.Bundle);
-    method public float getConfidenceScore(java.lang.String);
-    method public java.lang.String getEntity(int);
-    method public int getEntityCount();
-    method public java.lang.String getId();
+    method @FloatRange(from=0.0, to=1.0) public float getConfidenceScore(String!);
+    method public String getEntity(int);
+    method @IntRange(from=0) public int getEntityCount();
+    method public String? getId();
     method public int getSelectionEndIndex();
     method public int getSelectionStartIndex();
     method public android.os.Bundle toBundle();
   }
 
   public static final class TextSelection.Builder {
-    ctor public TextSelection.Builder(int, int);
+    ctor public TextSelection.Builder(@IntRange(from=0) int, @IntRange(from=0) int);
     method public androidx.textclassifier.TextSelection build();
-    method public androidx.textclassifier.TextSelection.Builder setEntityType(java.lang.String, float);
-    method public androidx.textclassifier.TextSelection.Builder setId(java.lang.String);
+    method public androidx.textclassifier.TextSelection.Builder setEntityType(String, @FloatRange(from=0.0, to=1.0) float);
+    method public androidx.textclassifier.TextSelection.Builder setId(String?);
   }
 
   public static final class TextSelection.Request {
     method public static androidx.textclassifier.TextSelection.Request createFromBundle(android.os.Bundle);
-    method public androidx.core.os.LocaleListCompat getDefaultLocales();
-    method public int getEndIndex();
-    method public int getStartIndex();
-    method public java.lang.CharSequence getText();
+    method public androidx.core.os.LocaleListCompat? getDefaultLocales();
+    method @IntRange(from=0) public int getEndIndex();
+    method @IntRange(from=0) public int getStartIndex();
+    method public CharSequence getText();
     method public android.os.Bundle toBundle();
   }
 
   public static final class TextSelection.Request.Builder {
-    ctor public TextSelection.Request.Builder(java.lang.CharSequence, int, int);
+    ctor public TextSelection.Request.Builder(CharSequence, @IntRange(from=0) int, @IntRange(from=0) int);
     method public androidx.textclassifier.TextSelection.Request build();
-    method public androidx.textclassifier.TextSelection.Request.Builder setDefaultLocales(androidx.core.os.LocaleListCompat);
+    method public androidx.textclassifier.TextSelection.Request.Builder setDefaultLocales(androidx.core.os.LocaleListCompat?);
   }
 
 }
diff --git a/transition/api/1.0.0.txt b/transition/api/1.0.0.txt
index 1ce2f43..dfbdb55 100644
--- a/transition/api/1.0.0.txt
+++ b/transition/api/1.0.0.txt
@@ -1,12 +1,13 @@
+// Signature format: 2.0
 package androidx.transition {
 
   public class ArcMotion extends androidx.transition.PathMotion {
     ctor public ArcMotion();
-    ctor public ArcMotion(android.content.Context, android.util.AttributeSet);
+    ctor public ArcMotion(android.content.Context!, android.util.AttributeSet!);
     method public float getMaximumAngle();
     method public float getMinimumHorizontalAngle();
     method public float getMinimumVerticalAngle();
-    method public android.graphics.Path getPath(float, float, float, float);
+    method public android.graphics.Path! getPath(float, float, float, float);
     method public void setMaximumAngle(float);
     method public void setMinimumHorizontalAngle(float);
     method public void setMinimumVerticalAngle(float);
@@ -14,12 +15,12 @@
 
   public class AutoTransition extends androidx.transition.TransitionSet {
     ctor public AutoTransition();
-    ctor public AutoTransition(android.content.Context, android.util.AttributeSet);
+    ctor public AutoTransition(android.content.Context!, android.util.AttributeSet!);
   }
 
   public class ChangeBounds extends androidx.transition.Transition {
     ctor public ChangeBounds();
-    ctor public ChangeBounds(android.content.Context, android.util.AttributeSet);
+    ctor public ChangeBounds(android.content.Context!, android.util.AttributeSet!);
     method public void captureEndValues(androidx.transition.TransitionValues);
     method public void captureStartValues(androidx.transition.TransitionValues);
     method public boolean getResizeClip();
@@ -28,28 +29,28 @@
 
   public class ChangeClipBounds extends androidx.transition.Transition {
     ctor public ChangeClipBounds();
-    ctor public ChangeClipBounds(android.content.Context, android.util.AttributeSet);
+    ctor public ChangeClipBounds(android.content.Context!, android.util.AttributeSet!);
     method public void captureEndValues(androidx.transition.TransitionValues);
     method public void captureStartValues(androidx.transition.TransitionValues);
   }
 
   public class ChangeImageTransform extends androidx.transition.Transition {
     ctor public ChangeImageTransform();
-    ctor public ChangeImageTransform(android.content.Context, android.util.AttributeSet);
+    ctor public ChangeImageTransform(android.content.Context!, android.util.AttributeSet!);
     method public void captureEndValues(androidx.transition.TransitionValues);
     method public void captureStartValues(androidx.transition.TransitionValues);
   }
 
   public class ChangeScroll extends androidx.transition.Transition {
     ctor public ChangeScroll();
-    ctor public ChangeScroll(android.content.Context, android.util.AttributeSet);
+    ctor public ChangeScroll(android.content.Context!, android.util.AttributeSet!);
     method public void captureEndValues(androidx.transition.TransitionValues);
     method public void captureStartValues(androidx.transition.TransitionValues);
   }
 
   public class ChangeTransform extends androidx.transition.Transition {
     ctor public ChangeTransform();
-    ctor public ChangeTransform(android.content.Context, android.util.AttributeSet);
+    ctor public ChangeTransform(android.content.Context!, android.util.AttributeSet!);
     method public void captureEndValues(androidx.transition.TransitionValues);
     method public void captureStartValues(androidx.transition.TransitionValues);
     method public boolean getReparent();
@@ -60,36 +61,36 @@
 
   public class CircularPropagation extends androidx.transition.VisibilityPropagation {
     ctor public CircularPropagation();
-    method public long getStartDelay(android.view.ViewGroup, androidx.transition.Transition, androidx.transition.TransitionValues, androidx.transition.TransitionValues);
+    method public long getStartDelay(android.view.ViewGroup!, androidx.transition.Transition!, androidx.transition.TransitionValues!, androidx.transition.TransitionValues!);
     method public void setPropagationSpeed(float);
   }
 
   public class Explode extends androidx.transition.Visibility {
     ctor public Explode();
-    ctor public Explode(android.content.Context, android.util.AttributeSet);
+    ctor public Explode(android.content.Context!, android.util.AttributeSet!);
   }
 
   public class Fade extends androidx.transition.Visibility {
     ctor public Fade(int);
     ctor public Fade();
-    ctor public Fade(android.content.Context, android.util.AttributeSet);
+    ctor public Fade(android.content.Context!, android.util.AttributeSet!);
     field public static final int IN = 1; // 0x1
     field public static final int OUT = 2; // 0x2
   }
 
   public abstract class PathMotion {
     ctor public PathMotion();
-    ctor public PathMotion(android.content.Context, android.util.AttributeSet);
-    method public abstract android.graphics.Path getPath(float, float, float, float);
+    ctor public PathMotion(android.content.Context!, android.util.AttributeSet!);
+    method public abstract android.graphics.Path! getPath(float, float, float, float);
   }
 
   public class PatternPathMotion extends androidx.transition.PathMotion {
     ctor public PatternPathMotion();
-    ctor public PatternPathMotion(android.content.Context, android.util.AttributeSet);
-    ctor public PatternPathMotion(android.graphics.Path);
-    method public android.graphics.Path getPath(float, float, float, float);
-    method public android.graphics.Path getPatternPath();
-    method public void setPatternPath(android.graphics.Path);
+    ctor public PatternPathMotion(android.content.Context!, android.util.AttributeSet!);
+    ctor public PatternPathMotion(android.graphics.Path!);
+    method public android.graphics.Path! getPath(float, float, float, float);
+    method public android.graphics.Path! getPatternPath();
+    method public void setPatternPath(android.graphics.Path!);
   }
 
   public class Scene {
@@ -97,15 +98,15 @@
     ctor public Scene(android.view.ViewGroup, android.view.View);
     method public void enter();
     method public void exit();
-    method public static androidx.transition.Scene getSceneForLayout(android.view.ViewGroup, int, android.content.Context);
+    method public static androidx.transition.Scene getSceneForLayout(android.view.ViewGroup, @LayoutRes int, android.content.Context);
     method public android.view.ViewGroup getSceneRoot();
-    method public void setEnterAction(java.lang.Runnable);
-    method public void setExitAction(java.lang.Runnable);
+    method public void setEnterAction(Runnable?);
+    method public void setExitAction(Runnable?);
   }
 
   public class SidePropagation extends androidx.transition.VisibilityPropagation {
     ctor public SidePropagation();
-    method public long getStartDelay(android.view.ViewGroup, androidx.transition.Transition, androidx.transition.TransitionValues, androidx.transition.TransitionValues);
+    method public long getStartDelay(android.view.ViewGroup!, androidx.transition.Transition!, androidx.transition.TransitionValues!, androidx.transition.TransitionValues!);
     method public void setPropagationSpeed(float);
     method public void setSide(int);
   }
@@ -113,56 +114,56 @@
   public class Slide extends androidx.transition.Visibility {
     ctor public Slide();
     ctor public Slide(int);
-    ctor public Slide(android.content.Context, android.util.AttributeSet);
+    ctor public Slide(android.content.Context!, android.util.AttributeSet!);
     method public int getSlideEdge();
     method public void setSlideEdge(int);
   }
 
   public abstract class Transition implements java.lang.Cloneable {
     ctor public Transition();
-    ctor public Transition(android.content.Context, android.util.AttributeSet);
+    ctor public Transition(android.content.Context!, android.util.AttributeSet!);
     method public androidx.transition.Transition addListener(androidx.transition.Transition.TransitionListener);
     method public androidx.transition.Transition addTarget(android.view.View);
-    method public androidx.transition.Transition addTarget(int);
-    method public androidx.transition.Transition addTarget(java.lang.String);
-    method public androidx.transition.Transition addTarget(java.lang.Class);
+    method public androidx.transition.Transition addTarget(@IdRes int);
+    method public androidx.transition.Transition addTarget(String);
+    method public androidx.transition.Transition addTarget(Class);
     method public abstract void captureEndValues(androidx.transition.TransitionValues);
     method public abstract void captureStartValues(androidx.transition.TransitionValues);
-    method public androidx.transition.Transition clone();
-    method public android.animation.Animator createAnimator(android.view.ViewGroup, androidx.transition.TransitionValues, androidx.transition.TransitionValues);
+    method public androidx.transition.Transition! clone();
+    method public android.animation.Animator? createAnimator(android.view.ViewGroup, androidx.transition.TransitionValues?, androidx.transition.TransitionValues?);
     method public androidx.transition.Transition excludeChildren(android.view.View, boolean);
-    method public androidx.transition.Transition excludeChildren(int, boolean);
-    method public androidx.transition.Transition excludeChildren(java.lang.Class, boolean);
+    method public androidx.transition.Transition excludeChildren(@IdRes int, boolean);
+    method public androidx.transition.Transition excludeChildren(Class, boolean);
     method public androidx.transition.Transition excludeTarget(android.view.View, boolean);
-    method public androidx.transition.Transition excludeTarget(int, boolean);
-    method public androidx.transition.Transition excludeTarget(java.lang.String, boolean);
-    method public androidx.transition.Transition excludeTarget(java.lang.Class, boolean);
+    method public androidx.transition.Transition excludeTarget(@IdRes int, boolean);
+    method public androidx.transition.Transition excludeTarget(String, boolean);
+    method public androidx.transition.Transition excludeTarget(Class, boolean);
     method public long getDuration();
-    method public android.graphics.Rect getEpicenter();
-    method public androidx.transition.Transition.EpicenterCallback getEpicenterCallback();
-    method public android.animation.TimeInterpolator getInterpolator();
-    method public java.lang.String getName();
+    method public android.graphics.Rect? getEpicenter();
+    method public androidx.transition.Transition.EpicenterCallback? getEpicenterCallback();
+    method public android.animation.TimeInterpolator? getInterpolator();
+    method public String getName();
     method public androidx.transition.PathMotion getPathMotion();
-    method public androidx.transition.TransitionPropagation getPropagation();
+    method public androidx.transition.TransitionPropagation? getPropagation();
     method public long getStartDelay();
     method public java.util.List<java.lang.Integer> getTargetIds();
-    method public java.util.List<java.lang.String> getTargetNames();
-    method public java.util.List<java.lang.Class> getTargetTypes();
+    method public java.util.List<java.lang.String>? getTargetNames();
+    method public java.util.List<java.lang.Class>? getTargetTypes();
     method public java.util.List<android.view.View> getTargets();
-    method public java.lang.String[] getTransitionProperties();
-    method public androidx.transition.TransitionValues getTransitionValues(android.view.View, boolean);
-    method public boolean isTransitionRequired(androidx.transition.TransitionValues, androidx.transition.TransitionValues);
+    method public String[]? getTransitionProperties();
+    method public androidx.transition.TransitionValues? getTransitionValues(android.view.View, boolean);
+    method public boolean isTransitionRequired(androidx.transition.TransitionValues?, androidx.transition.TransitionValues?);
     method public androidx.transition.Transition removeListener(androidx.transition.Transition.TransitionListener);
     method public androidx.transition.Transition removeTarget(android.view.View);
-    method public androidx.transition.Transition removeTarget(int);
-    method public androidx.transition.Transition removeTarget(java.lang.String);
-    method public androidx.transition.Transition removeTarget(java.lang.Class);
+    method public androidx.transition.Transition removeTarget(@IdRes int);
+    method public androidx.transition.Transition removeTarget(String);
+    method public androidx.transition.Transition removeTarget(Class);
     method public androidx.transition.Transition setDuration(long);
-    method public void setEpicenterCallback(androidx.transition.Transition.EpicenterCallback);
-    method public androidx.transition.Transition setInterpolator(android.animation.TimeInterpolator);
-    method public void setMatchOrder(int...);
-    method public void setPathMotion(androidx.transition.PathMotion);
-    method public void setPropagation(androidx.transition.TransitionPropagation);
+    method public void setEpicenterCallback(androidx.transition.Transition.EpicenterCallback?);
+    method public androidx.transition.Transition setInterpolator(android.animation.TimeInterpolator?);
+    method public void setMatchOrder(int...!);
+    method public void setPathMotion(androidx.transition.PathMotion?);
+    method public void setPropagation(androidx.transition.TransitionPropagation?);
     method public androidx.transition.Transition setStartDelay(long);
     field public static final int MATCH_ID = 3; // 0x3
     field public static final int MATCH_INSTANCE = 1; // 0x1
@@ -170,23 +171,23 @@
     field public static final int MATCH_NAME = 2; // 0x2
   }
 
-  public static abstract class Transition.EpicenterCallback {
+  public abstract static class Transition.EpicenterCallback {
     ctor public Transition.EpicenterCallback();
-    method public abstract android.graphics.Rect onGetEpicenter(androidx.transition.Transition);
+    method public abstract android.graphics.Rect! onGetEpicenter(androidx.transition.Transition);
   }
 
-  public static abstract interface Transition.TransitionListener {
-    method public abstract void onTransitionCancel(androidx.transition.Transition);
-    method public abstract void onTransitionEnd(androidx.transition.Transition);
-    method public abstract void onTransitionPause(androidx.transition.Transition);
-    method public abstract void onTransitionResume(androidx.transition.Transition);
-    method public abstract void onTransitionStart(androidx.transition.Transition);
+  public static interface Transition.TransitionListener {
+    method public void onTransitionCancel(androidx.transition.Transition);
+    method public void onTransitionEnd(androidx.transition.Transition);
+    method public void onTransitionPause(androidx.transition.Transition);
+    method public void onTransitionResume(androidx.transition.Transition);
+    method public void onTransitionStart(androidx.transition.Transition);
   }
 
   public class TransitionInflater {
-    method public static androidx.transition.TransitionInflater from(android.content.Context);
-    method public androidx.transition.Transition inflateTransition(int);
-    method public androidx.transition.TransitionManager inflateTransitionManager(int, android.view.ViewGroup);
+    method public static androidx.transition.TransitionInflater! from(android.content.Context!);
+    method public androidx.transition.Transition! inflateTransition(int);
+    method public androidx.transition.TransitionManager! inflateTransitionManager(int, android.view.ViewGroup!);
   }
 
   public class TransitionListenerAdapter implements androidx.transition.Transition.TransitionListener {
@@ -201,44 +202,44 @@
   public class TransitionManager {
     ctor public TransitionManager();
     method public static void beginDelayedTransition(android.view.ViewGroup);
-    method public static void beginDelayedTransition(android.view.ViewGroup, androidx.transition.Transition);
-    method public static void endTransitions(android.view.ViewGroup);
+    method public static void beginDelayedTransition(android.view.ViewGroup, androidx.transition.Transition?);
+    method public static void endTransitions(android.view.ViewGroup!);
     method public static void go(androidx.transition.Scene);
-    method public static void go(androidx.transition.Scene, androidx.transition.Transition);
-    method public void setTransition(androidx.transition.Scene, androidx.transition.Transition);
-    method public void setTransition(androidx.transition.Scene, androidx.transition.Scene, androidx.transition.Transition);
+    method public static void go(androidx.transition.Scene, androidx.transition.Transition?);
+    method public void setTransition(androidx.transition.Scene, androidx.transition.Transition?);
+    method public void setTransition(androidx.transition.Scene, androidx.transition.Scene, androidx.transition.Transition?);
     method public void transitionTo(androidx.transition.Scene);
   }
 
   public abstract class TransitionPropagation {
     ctor public TransitionPropagation();
-    method public abstract void captureValues(androidx.transition.TransitionValues);
-    method public abstract java.lang.String[] getPropagationProperties();
-    method public abstract long getStartDelay(android.view.ViewGroup, androidx.transition.Transition, androidx.transition.TransitionValues, androidx.transition.TransitionValues);
+    method public abstract void captureValues(androidx.transition.TransitionValues!);
+    method public abstract String[]! getPropagationProperties();
+    method public abstract long getStartDelay(android.view.ViewGroup!, androidx.transition.Transition!, androidx.transition.TransitionValues!, androidx.transition.TransitionValues!);
   }
 
   public class TransitionSet extends androidx.transition.Transition {
     ctor public TransitionSet();
-    ctor public TransitionSet(android.content.Context, android.util.AttributeSet);
+    ctor public TransitionSet(android.content.Context!, android.util.AttributeSet!);
     method public androidx.transition.TransitionSet addListener(androidx.transition.Transition.TransitionListener);
     method public androidx.transition.TransitionSet addTarget(android.view.View);
-    method public androidx.transition.TransitionSet addTarget(int);
-    method public androidx.transition.TransitionSet addTarget(java.lang.String);
-    method public androidx.transition.TransitionSet addTarget(java.lang.Class);
+    method public androidx.transition.TransitionSet addTarget(@IdRes int);
+    method public androidx.transition.TransitionSet addTarget(String);
+    method public androidx.transition.TransitionSet addTarget(Class);
     method public androidx.transition.TransitionSet addTransition(androidx.transition.Transition);
     method public void captureEndValues(androidx.transition.TransitionValues);
     method public void captureStartValues(androidx.transition.TransitionValues);
     method public int getOrdering();
-    method public androidx.transition.Transition getTransitionAt(int);
+    method public androidx.transition.Transition! getTransitionAt(int);
     method public int getTransitionCount();
     method public androidx.transition.TransitionSet removeListener(androidx.transition.Transition.TransitionListener);
-    method public androidx.transition.TransitionSet removeTarget(int);
+    method public androidx.transition.TransitionSet removeTarget(@IdRes int);
     method public androidx.transition.TransitionSet removeTarget(android.view.View);
-    method public androidx.transition.TransitionSet removeTarget(java.lang.Class);
-    method public androidx.transition.TransitionSet removeTarget(java.lang.String);
+    method public androidx.transition.TransitionSet removeTarget(Class);
+    method public androidx.transition.TransitionSet removeTarget(String);
     method public androidx.transition.TransitionSet removeTransition(androidx.transition.Transition);
     method public androidx.transition.TransitionSet setDuration(long);
-    method public androidx.transition.TransitionSet setInterpolator(android.animation.TimeInterpolator);
+    method public androidx.transition.TransitionSet setInterpolator(android.animation.TimeInterpolator?);
     method public androidx.transition.TransitionSet setOrdering(int);
     method public androidx.transition.TransitionSet setStartDelay(long);
     field public static final int ORDERING_SEQUENTIAL = 1; // 0x1
@@ -247,21 +248,21 @@
 
   public class TransitionValues {
     ctor public TransitionValues();
-    field public final java.util.Map<java.lang.String, java.lang.Object> values;
-    field public android.view.View view;
+    field public final java.util.Map<java.lang.String,java.lang.Object>! values;
+    field public android.view.View! view;
   }
 
   public abstract class Visibility extends androidx.transition.Transition {
     ctor public Visibility();
-    ctor public Visibility(android.content.Context, android.util.AttributeSet);
+    ctor public Visibility(android.content.Context!, android.util.AttributeSet!);
     method public void captureEndValues(androidx.transition.TransitionValues);
     method public void captureStartValues(androidx.transition.TransitionValues);
     method public int getMode();
-    method public boolean isVisible(androidx.transition.TransitionValues);
-    method public android.animation.Animator onAppear(android.view.ViewGroup, androidx.transition.TransitionValues, int, androidx.transition.TransitionValues, int);
-    method public android.animation.Animator onAppear(android.view.ViewGroup, android.view.View, androidx.transition.TransitionValues, androidx.transition.TransitionValues);
-    method public android.animation.Animator onDisappear(android.view.ViewGroup, androidx.transition.TransitionValues, int, androidx.transition.TransitionValues, int);
-    method public android.animation.Animator onDisappear(android.view.ViewGroup, android.view.View, androidx.transition.TransitionValues, androidx.transition.TransitionValues);
+    method public boolean isVisible(androidx.transition.TransitionValues!);
+    method public android.animation.Animator! onAppear(android.view.ViewGroup!, androidx.transition.TransitionValues!, int, androidx.transition.TransitionValues!, int);
+    method public android.animation.Animator! onAppear(android.view.ViewGroup!, android.view.View!, androidx.transition.TransitionValues!, androidx.transition.TransitionValues!);
+    method public android.animation.Animator! onDisappear(android.view.ViewGroup!, androidx.transition.TransitionValues!, int, androidx.transition.TransitionValues!, int);
+    method public android.animation.Animator! onDisappear(android.view.ViewGroup!, android.view.View!, androidx.transition.TransitionValues!, androidx.transition.TransitionValues!);
     method public void setMode(int);
     field public static final int MODE_IN = 1; // 0x1
     field public static final int MODE_OUT = 2; // 0x2
@@ -269,11 +270,11 @@
 
   public abstract class VisibilityPropagation extends androidx.transition.TransitionPropagation {
     ctor public VisibilityPropagation();
-    method public void captureValues(androidx.transition.TransitionValues);
-    method public java.lang.String[] getPropagationProperties();
-    method public int getViewVisibility(androidx.transition.TransitionValues);
-    method public int getViewX(androidx.transition.TransitionValues);
-    method public int getViewY(androidx.transition.TransitionValues);
+    method public void captureValues(androidx.transition.TransitionValues!);
+    method public String[]! getPropagationProperties();
+    method public int getViewVisibility(androidx.transition.TransitionValues!);
+    method public int getViewX(androidx.transition.TransitionValues!);
+    method public int getViewY(androidx.transition.TransitionValues!);
   }
 
 }
diff --git a/tv-provider/api/1.0.0.txt b/tv-provider/api/1.0.0.txt
index 45de4ff..05df5f9 100644
--- a/tv-provider/api/1.0.0.txt
+++ b/tv-provider/api/1.0.0.txt
@@ -1,130 +1,131 @@
+// Signature format: 2.0
 package androidx.tvprovider.media.tv {
 
   public final class Channel {
-    method public static androidx.tvprovider.media.tv.Channel fromCursor(android.database.Cursor);
+    method public static androidx.tvprovider.media.tv.Channel! fromCursor(android.database.Cursor!);
     method public int getAppLinkColor();
-    method public android.net.Uri getAppLinkIconUri();
-    method public android.content.Intent getAppLinkIntent() throws java.net.URISyntaxException;
-    method public android.net.Uri getAppLinkIntentUri();
-    method public android.net.Uri getAppLinkPosterArtUri();
-    method public java.lang.String getAppLinkText();
+    method public android.net.Uri! getAppLinkIconUri();
+    method public android.content.Intent! getAppLinkIntent() throws java.net.URISyntaxException;
+    method public android.net.Uri! getAppLinkIntentUri();
+    method public android.net.Uri! getAppLinkPosterArtUri();
+    method public String! getAppLinkText();
     method public int getConfigurationDisplayOrder();
-    method public java.lang.String getDescription();
-    method public java.lang.String getDisplayName();
-    method public java.lang.String getDisplayNumber();
+    method public String! getDescription();
+    method public String! getDisplayName();
+    method public String! getDisplayNumber();
     method public long getId();
-    method public java.lang.String getInputId();
-    method public byte[] getInternalProviderDataByteArray();
-    method public java.lang.Long getInternalProviderFlag1();
-    method public java.lang.Long getInternalProviderFlag2();
-    method public java.lang.Long getInternalProviderFlag3();
-    method public java.lang.Long getInternalProviderFlag4();
-    method public java.lang.String getInternalProviderId();
-    method public java.lang.String getNetworkAffiliation();
+    method public String! getInputId();
+    method public byte[]! getInternalProviderDataByteArray();
+    method public Long! getInternalProviderFlag1();
+    method public Long! getInternalProviderFlag2();
+    method public Long! getInternalProviderFlag3();
+    method public Long! getInternalProviderFlag4();
+    method public String! getInternalProviderId();
+    method public String! getNetworkAffiliation();
     method public int getOriginalNetworkId();
-    method public java.lang.String getPackageName();
+    method public String! getPackageName();
     method public int getServiceId();
-    method public java.lang.String getServiceType();
-    method public java.lang.String getSystemChannelKey();
+    method public String! getServiceType();
+    method public String! getSystemChannelKey();
     method public int getTransportStreamId();
-    method public java.lang.String getType();
-    method public java.lang.String getVideoFormat();
+    method public String! getType();
+    method public String! getVideoFormat();
     method public boolean isBrowsable();
     method public boolean isLocked();
     method public boolean isSearchable();
     method public boolean isTransient();
-    method public android.content.ContentValues toContentValues();
+    method public android.content.ContentValues! toContentValues();
   }
 
   public static final class Channel.Builder {
     ctor public Channel.Builder();
-    ctor public Channel.Builder(androidx.tvprovider.media.tv.Channel);
-    method public androidx.tvprovider.media.tv.Channel build();
-    method public androidx.tvprovider.media.tv.Channel.Builder setAppLinkColor(int);
-    method public androidx.tvprovider.media.tv.Channel.Builder setAppLinkIconUri(android.net.Uri);
-    method public androidx.tvprovider.media.tv.Channel.Builder setAppLinkIntent(android.content.Intent);
-    method public androidx.tvprovider.media.tv.Channel.Builder setAppLinkIntentUri(android.net.Uri);
-    method public androidx.tvprovider.media.tv.Channel.Builder setAppLinkPosterArtUri(android.net.Uri);
-    method public androidx.tvprovider.media.tv.Channel.Builder setAppLinkText(java.lang.String);
-    method public androidx.tvprovider.media.tv.Channel.Builder setConfigurationDisplayOrder(int);
-    method public androidx.tvprovider.media.tv.Channel.Builder setDescription(java.lang.String);
-    method public androidx.tvprovider.media.tv.Channel.Builder setDisplayName(java.lang.String);
-    method public androidx.tvprovider.media.tv.Channel.Builder setDisplayNumber(java.lang.String);
-    method public androidx.tvprovider.media.tv.Channel.Builder setInputId(java.lang.String);
-    method public androidx.tvprovider.media.tv.Channel.Builder setInternalProviderData(byte[]);
-    method public androidx.tvprovider.media.tv.Channel.Builder setInternalProviderData(java.lang.String);
-    method public androidx.tvprovider.media.tv.Channel.Builder setInternalProviderFlag1(long);
-    method public androidx.tvprovider.media.tv.Channel.Builder setInternalProviderFlag2(long);
-    method public androidx.tvprovider.media.tv.Channel.Builder setInternalProviderFlag3(long);
-    method public androidx.tvprovider.media.tv.Channel.Builder setInternalProviderFlag4(long);
-    method public androidx.tvprovider.media.tv.Channel.Builder setInternalProviderId(java.lang.String);
-    method public androidx.tvprovider.media.tv.Channel.Builder setNetworkAffiliation(java.lang.String);
-    method public androidx.tvprovider.media.tv.Channel.Builder setOriginalNetworkId(int);
-    method public androidx.tvprovider.media.tv.Channel.Builder setSearchable(boolean);
-    method public androidx.tvprovider.media.tv.Channel.Builder setServiceId(int);
-    method public androidx.tvprovider.media.tv.Channel.Builder setServiceType(java.lang.String);
-    method public androidx.tvprovider.media.tv.Channel.Builder setSystemChannelKey(java.lang.String);
-    method public androidx.tvprovider.media.tv.Channel.Builder setTransient(boolean);
-    method public androidx.tvprovider.media.tv.Channel.Builder setTransportStreamId(int);
-    method public androidx.tvprovider.media.tv.Channel.Builder setType(java.lang.String);
-    method public androidx.tvprovider.media.tv.Channel.Builder setVideoFormat(java.lang.String);
+    ctor public Channel.Builder(androidx.tvprovider.media.tv.Channel!);
+    method public androidx.tvprovider.media.tv.Channel! build();
+    method public androidx.tvprovider.media.tv.Channel.Builder! setAppLinkColor(int);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setAppLinkIconUri(android.net.Uri!);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setAppLinkIntent(android.content.Intent!);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setAppLinkIntentUri(android.net.Uri!);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setAppLinkPosterArtUri(android.net.Uri!);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setAppLinkText(String!);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setConfigurationDisplayOrder(int);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setDescription(String!);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setDisplayName(String!);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setDisplayNumber(String!);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setInputId(String!);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setInternalProviderData(byte[]!);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setInternalProviderData(String!);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setInternalProviderFlag1(long);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setInternalProviderFlag2(long);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setInternalProviderFlag3(long);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setInternalProviderFlag4(long);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setInternalProviderId(String!);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setNetworkAffiliation(String!);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setOriginalNetworkId(int);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setSearchable(boolean);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setServiceId(int);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setServiceType(String!);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setSystemChannelKey(String!);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setTransient(boolean);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setTransportStreamId(int);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setType(String!);
+    method public androidx.tvprovider.media.tv.Channel.Builder! setVideoFormat(String!);
   }
 
-  public class ChannelLogoUtils {
-    ctor public deprecated ChannelLogoUtils();
-    method public static android.graphics.Bitmap loadChannelLogo(android.content.Context, long);
+  @WorkerThread public class ChannelLogoUtils {
+    ctor @Deprecated public ChannelLogoUtils();
+    method public static android.graphics.Bitmap! loadChannelLogo(android.content.Context, long);
     method public static boolean storeChannelLogo(android.content.Context, long, android.net.Uri);
     method public static boolean storeChannelLogo(android.content.Context, long, android.graphics.Bitmap);
   }
 
   public class PreviewChannel {
-    method public static androidx.tvprovider.media.tv.PreviewChannel fromCursor(android.database.Cursor);
-    method public android.content.Intent getAppLinkIntent() throws java.net.URISyntaxException;
-    method public android.net.Uri getAppLinkIntentUri();
-    method public java.lang.CharSequence getDescription();
-    method public java.lang.CharSequence getDisplayName();
+    method public static androidx.tvprovider.media.tv.PreviewChannel! fromCursor(android.database.Cursor!);
+    method public android.content.Intent! getAppLinkIntent() throws java.net.URISyntaxException;
+    method public android.net.Uri! getAppLinkIntentUri();
+    method public CharSequence! getDescription();
+    method public CharSequence! getDisplayName();
     method public long getId();
-    method public byte[] getInternalProviderDataByteArray();
-    method public java.lang.Long getInternalProviderFlag1();
-    method public java.lang.Long getInternalProviderFlag2();
-    method public java.lang.Long getInternalProviderFlag3();
-    method public java.lang.Long getInternalProviderFlag4();
-    method public java.lang.String getInternalProviderId();
-    method public android.graphics.Bitmap getLogo(android.content.Context);
-    method public java.lang.String getPackageName();
-    method public java.lang.String getType();
-    method public boolean hasAnyUpdatedValues(androidx.tvprovider.media.tv.PreviewChannel);
+    method public byte[]! getInternalProviderDataByteArray();
+    method public Long! getInternalProviderFlag1();
+    method public Long! getInternalProviderFlag2();
+    method public Long! getInternalProviderFlag3();
+    method public Long! getInternalProviderFlag4();
+    method public String! getInternalProviderId();
+    method @WorkerThread public android.graphics.Bitmap! getLogo(android.content.Context!);
+    method public String! getPackageName();
+    method public String! getType();
+    method public boolean hasAnyUpdatedValues(androidx.tvprovider.media.tv.PreviewChannel!);
     method public boolean isBrowsable();
   }
 
   public static final class PreviewChannel.Builder {
     ctor public PreviewChannel.Builder();
-    ctor public PreviewChannel.Builder(androidx.tvprovider.media.tv.PreviewChannel);
-    method public androidx.tvprovider.media.tv.PreviewChannel build();
-    method public androidx.tvprovider.media.tv.PreviewChannel.Builder setAppLinkIntent(android.content.Intent);
-    method public androidx.tvprovider.media.tv.PreviewChannel.Builder setAppLinkIntentUri(android.net.Uri);
-    method public androidx.tvprovider.media.tv.PreviewChannel.Builder setDescription(java.lang.CharSequence);
-    method public androidx.tvprovider.media.tv.PreviewChannel.Builder setDisplayName(java.lang.CharSequence);
-    method public androidx.tvprovider.media.tv.PreviewChannel.Builder setInternalProviderData(byte[]);
-    method public androidx.tvprovider.media.tv.PreviewChannel.Builder setInternalProviderFlag1(long);
-    method public androidx.tvprovider.media.tv.PreviewChannel.Builder setInternalProviderFlag2(long);
-    method public androidx.tvprovider.media.tv.PreviewChannel.Builder setInternalProviderFlag3(long);
-    method public androidx.tvprovider.media.tv.PreviewChannel.Builder setInternalProviderFlag4(long);
-    method public androidx.tvprovider.media.tv.PreviewChannel.Builder setInternalProviderId(java.lang.String);
-    method public androidx.tvprovider.media.tv.PreviewChannel.Builder setLogo(android.graphics.Bitmap);
-    method public androidx.tvprovider.media.tv.PreviewChannel.Builder setLogo(android.net.Uri);
+    ctor public PreviewChannel.Builder(androidx.tvprovider.media.tv.PreviewChannel!);
+    method public androidx.tvprovider.media.tv.PreviewChannel! build();
+    method public androidx.tvprovider.media.tv.PreviewChannel.Builder! setAppLinkIntent(android.content.Intent!);
+    method public androidx.tvprovider.media.tv.PreviewChannel.Builder! setAppLinkIntentUri(android.net.Uri!);
+    method public androidx.tvprovider.media.tv.PreviewChannel.Builder! setDescription(CharSequence!);
+    method public androidx.tvprovider.media.tv.PreviewChannel.Builder! setDisplayName(CharSequence!);
+    method public androidx.tvprovider.media.tv.PreviewChannel.Builder! setInternalProviderData(byte[]!);
+    method public androidx.tvprovider.media.tv.PreviewChannel.Builder! setInternalProviderFlag1(long);
+    method public androidx.tvprovider.media.tv.PreviewChannel.Builder! setInternalProviderFlag2(long);
+    method public androidx.tvprovider.media.tv.PreviewChannel.Builder! setInternalProviderFlag3(long);
+    method public androidx.tvprovider.media.tv.PreviewChannel.Builder! setInternalProviderFlag4(long);
+    method public androidx.tvprovider.media.tv.PreviewChannel.Builder! setInternalProviderId(String!);
+    method public androidx.tvprovider.media.tv.PreviewChannel.Builder! setLogo(android.graphics.Bitmap);
+    method public androidx.tvprovider.media.tv.PreviewChannel.Builder! setLogo(android.net.Uri);
   }
 
-  public class PreviewChannelHelper {
-    ctor public PreviewChannelHelper(android.content.Context);
-    ctor public PreviewChannelHelper(android.content.Context, int, int);
+  @WorkerThread public class PreviewChannelHelper {
+    ctor public PreviewChannelHelper(android.content.Context!);
+    ctor public PreviewChannelHelper(android.content.Context!, int, int);
     method public void deletePreviewChannel(long);
     method public void deletePreviewProgram(long);
-    method protected android.graphics.Bitmap downloadBitmap(android.net.Uri) throws java.io.IOException;
-    method public java.util.List<androidx.tvprovider.media.tv.PreviewChannel> getAllChannels();
-    method public androidx.tvprovider.media.tv.PreviewChannel getPreviewChannel(long);
-    method public androidx.tvprovider.media.tv.PreviewProgram getPreviewProgram(long);
-    method public androidx.tvprovider.media.tv.WatchNextProgram getWatchNextProgram(long);
+    method protected android.graphics.Bitmap! downloadBitmap(android.net.Uri) throws java.io.IOException;
+    method public java.util.List<androidx.tvprovider.media.tv.PreviewChannel>! getAllChannels();
+    method public androidx.tvprovider.media.tv.PreviewChannel! getPreviewChannel(long);
+    method public androidx.tvprovider.media.tv.PreviewProgram! getPreviewProgram(long);
+    method public androidx.tvprovider.media.tv.WatchNextProgram! getWatchNextProgram(long);
     method public long publishChannel(androidx.tvprovider.media.tv.PreviewChannel) throws java.io.IOException;
     method public long publishDefaultChannel(androidx.tvprovider.media.tv.PreviewChannel) throws java.io.IOException;
     method public long publishPreviewProgram(androidx.tvprovider.media.tv.PreviewProgram);
@@ -135,163 +136,244 @@
   }
 
   public final class PreviewProgram {
-    method public static androidx.tvprovider.media.tv.PreviewProgram fromCursor(android.database.Cursor);
+    method public static androidx.tvprovider.media.tv.PreviewProgram! fromCursor(android.database.Cursor!);
     method public long getChannelId();
     method public int getWeight();
-    method public boolean hasAnyUpdatedValues(androidx.tvprovider.media.tv.PreviewProgram);
-    method public android.content.ContentValues toContentValues();
+    method public boolean hasAnyUpdatedValues(androidx.tvprovider.media.tv.PreviewProgram!);
+    method public android.content.ContentValues! toContentValues();
   }
 
   public static final class PreviewProgram.Builder {
     ctor public PreviewProgram.Builder();
-    ctor public PreviewProgram.Builder(androidx.tvprovider.media.tv.PreviewProgram);
-    method public androidx.tvprovider.media.tv.PreviewProgram build();
-    method public androidx.tvprovider.media.tv.PreviewProgram.Builder setChannelId(long);
-    method public androidx.tvprovider.media.tv.PreviewProgram.Builder setWeight(int);
+    ctor public PreviewProgram.Builder(androidx.tvprovider.media.tv.PreviewProgram!);
+    method public androidx.tvprovider.media.tv.PreviewProgram! build();
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setAudioLanguages(String[]!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setAuthor(String!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setAvailability(int);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setBrowsable(boolean);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setCanonicalGenres(String[]!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setChannelId(long);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setContentId(String!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setContentRatings(android.media.tv.TvContentRating[]!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setDescription(String!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setDurationMillis(int);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setEndTimeUtcMillis(long);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setEpisodeNumber(int);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setEpisodeNumber(String!, int);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setEpisodeTitle(String!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setGenre(String!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setId(long);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setIntent(android.content.Intent!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setIntentUri(android.net.Uri!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setInteractionCount(long);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setInteractionType(int);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setInternalProviderData(byte[]!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setInternalProviderFlag1(long);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setInternalProviderFlag2(long);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setInternalProviderFlag3(long);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setInternalProviderFlag4(long);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setInternalProviderId(String!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setItemCount(int);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setLastPlaybackPositionMillis(int);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setLive(boolean);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setLogoContentDescription(String!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setLogoUri(android.net.Uri!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setLongDescription(String!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setOfferPrice(String!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setPackageName(String!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setPosterArtAspectRatio(int);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setPosterArtUri(android.net.Uri!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setPreviewAudioUri(android.net.Uri!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setPreviewVideoUri(android.net.Uri!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setReleaseDate(String!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setReleaseDate(java.util.Date!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setReviewRating(String!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setReviewRatingStyle(int);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setSearchable(boolean);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setSeasonNumber(int);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setSeasonNumber(String!, int);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setSeasonTitle(String!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setStartTimeUtcMillis(long);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setStartingPrice(String!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setThumbnailAspectRatio(int);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setThumbnailUri(android.net.Uri!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setTitle(String!);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setTransient(boolean);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setTvSeriesItemType(int);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setType(int);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setVideoHeight(int);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setVideoWidth(int);
+    method public androidx.tvprovider.media.tv.PreviewProgram.Builder! setWeight(int);
   }
 
-  public final class Program implements java.lang.Comparable {
+  public final class Program implements java.lang.Comparable<androidx.tvprovider.media.tv.Program> {
     method public int compareTo(androidx.tvprovider.media.tv.Program);
-    method public static androidx.tvprovider.media.tv.Program fromCursor(android.database.Cursor);
-    method public java.lang.String[] getBroadcastGenres();
+    method public static androidx.tvprovider.media.tv.Program! fromCursor(android.database.Cursor!);
+    method public String[]! getBroadcastGenres();
     method public long getChannelId();
     method public long getEndTimeUtcMillis();
     method public long getStartTimeUtcMillis();
     method public boolean isRecordingProhibited();
-    method public android.content.ContentValues toContentValues();
+    method public android.content.ContentValues! toContentValues();
   }
 
   public static class Program.Builder {
     ctor public Program.Builder();
-    ctor public Program.Builder(androidx.tvprovider.media.tv.Program);
-    method public androidx.tvprovider.media.tv.Program build();
-    method public androidx.tvprovider.media.tv.Program.Builder setBroadcastGenres(java.lang.String[]);
-    method public androidx.tvprovider.media.tv.Program.Builder setChannelId(long);
-    method public androidx.tvprovider.media.tv.Program.Builder setEndTimeUtcMillis(long);
-    method public androidx.tvprovider.media.tv.Program.Builder setRecordingProhibited(boolean);
-    method public androidx.tvprovider.media.tv.Program.Builder setStartTimeUtcMillis(long);
+    ctor public Program.Builder(androidx.tvprovider.media.tv.Program!);
+    method public androidx.tvprovider.media.tv.Program! build();
+    method public androidx.tvprovider.media.tv.Program.Builder! setAudioLanguages(String[]!);
+    method public androidx.tvprovider.media.tv.Program.Builder! setBroadcastGenres(String[]!);
+    method public androidx.tvprovider.media.tv.Program.Builder! setCanonicalGenres(String[]!);
+    method public androidx.tvprovider.media.tv.Program.Builder! setChannelId(long);
+    method public androidx.tvprovider.media.tv.Program.Builder! setContentRatings(android.media.tv.TvContentRating[]!);
+    method public androidx.tvprovider.media.tv.Program.Builder! setDescription(String!);
+    method public androidx.tvprovider.media.tv.Program.Builder! setEndTimeUtcMillis(long);
+    method public androidx.tvprovider.media.tv.Program.Builder! setEpisodeNumber(int);
+    method public androidx.tvprovider.media.tv.Program.Builder! setEpisodeNumber(String!, int);
+    method public androidx.tvprovider.media.tv.Program.Builder! setEpisodeTitle(String!);
+    method public androidx.tvprovider.media.tv.Program.Builder! setId(long);
+    method public androidx.tvprovider.media.tv.Program.Builder! setInternalProviderData(byte[]!);
+    method public androidx.tvprovider.media.tv.Program.Builder! setInternalProviderFlag1(long);
+    method public androidx.tvprovider.media.tv.Program.Builder! setInternalProviderFlag2(long);
+    method public androidx.tvprovider.media.tv.Program.Builder! setInternalProviderFlag3(long);
+    method public androidx.tvprovider.media.tv.Program.Builder! setInternalProviderFlag4(long);
+    method public androidx.tvprovider.media.tv.Program.Builder! setLongDescription(String!);
+    method public androidx.tvprovider.media.tv.Program.Builder! setPackageName(String!);
+    method public androidx.tvprovider.media.tv.Program.Builder! setPosterArtUri(android.net.Uri!);
+    method public androidx.tvprovider.media.tv.Program.Builder! setRecordingProhibited(boolean);
+    method public androidx.tvprovider.media.tv.Program.Builder! setReviewRating(String!);
+    method public androidx.tvprovider.media.tv.Program.Builder! setReviewRatingStyle(int);
+    method public androidx.tvprovider.media.tv.Program.Builder! setSearchable(boolean);
+    method public androidx.tvprovider.media.tv.Program.Builder! setSeasonNumber(int);
+    method public androidx.tvprovider.media.tv.Program.Builder! setSeasonNumber(String!, int);
+    method public androidx.tvprovider.media.tv.Program.Builder! setSeasonTitle(String!);
+    method public androidx.tvprovider.media.tv.Program.Builder! setStartTimeUtcMillis(long);
+    method public androidx.tvprovider.media.tv.Program.Builder! setThumbnailUri(android.net.Uri!);
+    method public androidx.tvprovider.media.tv.Program.Builder! setTitle(String!);
+    method public androidx.tvprovider.media.tv.Program.Builder! setVideoHeight(int);
+    method public androidx.tvprovider.media.tv.Program.Builder! setVideoWidth(int);
   }
 
   public final class TvContractCompat {
-    method public static android.net.Uri buildChannelLogoUri(long);
-    method public static android.net.Uri buildChannelLogoUri(android.net.Uri);
-    method public static android.net.Uri buildChannelUri(long);
-    method public static android.net.Uri buildChannelUriForPassthroughInput(java.lang.String);
-    method public static android.net.Uri buildChannelsUriForInput(java.lang.String);
-    method public static java.lang.String buildInputId(android.content.ComponentName);
-    method public static android.net.Uri buildPreviewProgramUri(long);
-    method public static android.net.Uri buildPreviewProgramsUriForChannel(long);
-    method public static android.net.Uri buildPreviewProgramsUriForChannel(android.net.Uri);
-    method public static android.net.Uri buildProgramUri(long);
-    method public static android.net.Uri buildProgramsUriForChannel(long);
-    method public static android.net.Uri buildProgramsUriForChannel(android.net.Uri);
-    method public static android.net.Uri buildProgramsUriForChannel(long, long, long);
-    method public static android.net.Uri buildProgramsUriForChannel(android.net.Uri, long, long);
-    method public static android.net.Uri buildRecordedProgramUri(long);
-    method public static android.net.Uri buildWatchNextProgramUri(long);
-    method public static boolean isChannelUri(android.net.Uri);
-    method public static boolean isChannelUriForPassthroughInput(android.net.Uri);
-    method public static boolean isChannelUriForTunerInput(android.net.Uri);
-    method public static boolean isProgramUri(android.net.Uri);
-    method public static boolean isRecordedProgramUri(android.net.Uri);
-    method public static void requestChannelBrowsable(android.content.Context, long);
-    field public static final java.lang.String ACTION_INITIALIZE_PROGRAMS = "android.media.tv.action.INITIALIZE_PROGRAMS";
-    field public static final java.lang.String ACTION_PREVIEW_PROGRAM_ADDED_TO_WATCH_NEXT = "android.media.tv.action.PREVIEW_PROGRAM_ADDED_TO_WATCH_NEXT";
-    field public static final java.lang.String ACTION_PREVIEW_PROGRAM_BROWSABLE_DISABLED = "android.media.tv.action.PREVIEW_PROGRAM_BROWSABLE_DISABLED";
-    field public static final java.lang.String ACTION_REQUEST_CHANNEL_BROWSABLE = "android.media.tv.action.REQUEST_CHANNEL_BROWSABLE";
-    field public static final java.lang.String ACTION_WATCH_NEXT_PROGRAM_BROWSABLE_DISABLED = "android.media.tv.action.WATCH_NEXT_PROGRAM_BROWSABLE_DISABLED";
-    field public static final java.lang.String AUTHORITY = "android.media.tv";
-    field public static final java.lang.String EXTRA_CHANNEL_ID = "android.media.tv.extra.CHANNEL_ID";
-    field public static final java.lang.String EXTRA_PREVIEW_PROGRAM_ID = "android.media.tv.extra.PREVIEW_PROGRAM_ID";
-    field public static final java.lang.String EXTRA_WATCH_NEXT_PROGRAM_ID = "android.media.tv.extra.WATCH_NEXT_PROGRAM_ID";
+    method public static android.net.Uri! buildChannelLogoUri(long);
+    method public static android.net.Uri! buildChannelLogoUri(android.net.Uri!);
+    method public static android.net.Uri! buildChannelUri(long);
+    method public static android.net.Uri! buildChannelUriForPassthroughInput(String!);
+    method public static android.net.Uri! buildChannelsUriForInput(String?);
+    method public static String! buildInputId(android.content.ComponentName!);
+    method public static android.net.Uri! buildPreviewProgramUri(long);
+    method public static android.net.Uri! buildPreviewProgramsUriForChannel(long);
+    method public static android.net.Uri! buildPreviewProgramsUriForChannel(android.net.Uri!);
+    method public static android.net.Uri! buildProgramUri(long);
+    method public static android.net.Uri! buildProgramsUriForChannel(long);
+    method public static android.net.Uri! buildProgramsUriForChannel(android.net.Uri!);
+    method public static android.net.Uri! buildProgramsUriForChannel(long, long, long);
+    method public static android.net.Uri! buildProgramsUriForChannel(android.net.Uri!, long, long);
+    method public static android.net.Uri! buildRecordedProgramUri(long);
+    method public static android.net.Uri! buildWatchNextProgramUri(long);
+    method public static boolean isChannelUri(android.net.Uri!);
+    method public static boolean isChannelUriForPassthroughInput(android.net.Uri!);
+    method public static boolean isChannelUriForTunerInput(android.net.Uri!);
+    method public static boolean isProgramUri(android.net.Uri!);
+    method public static boolean isRecordedProgramUri(android.net.Uri!);
+    method public static void requestChannelBrowsable(android.content.Context!, long);
+    field public static final String ACTION_INITIALIZE_PROGRAMS = "android.media.tv.action.INITIALIZE_PROGRAMS";
+    field public static final String ACTION_PREVIEW_PROGRAM_ADDED_TO_WATCH_NEXT = "android.media.tv.action.PREVIEW_PROGRAM_ADDED_TO_WATCH_NEXT";
+    field public static final String ACTION_PREVIEW_PROGRAM_BROWSABLE_DISABLED = "android.media.tv.action.PREVIEW_PROGRAM_BROWSABLE_DISABLED";
+    field public static final String ACTION_REQUEST_CHANNEL_BROWSABLE = "android.media.tv.action.REQUEST_CHANNEL_BROWSABLE";
+    field public static final String ACTION_WATCH_NEXT_PROGRAM_BROWSABLE_DISABLED = "android.media.tv.action.WATCH_NEXT_PROGRAM_BROWSABLE_DISABLED";
+    field public static final String AUTHORITY = "android.media.tv";
+    field public static final String EXTRA_CHANNEL_ID = "android.media.tv.extra.CHANNEL_ID";
+    field public static final String EXTRA_PREVIEW_PROGRAM_ID = "android.media.tv.extra.PREVIEW_PROGRAM_ID";
+    field public static final String EXTRA_WATCH_NEXT_PROGRAM_ID = "android.media.tv.extra.WATCH_NEXT_PROGRAM_ID";
   }
 
-  public static abstract interface TvContractCompat.BaseTvColumns implements android.provider.BaseColumns {
-    field public static final java.lang.String COLUMN_PACKAGE_NAME = "package_name";
+  public static interface TvContractCompat.BaseTvColumns extends android.provider.BaseColumns {
+    field public static final String COLUMN_PACKAGE_NAME = "package_name";
   }
 
   public static final class TvContractCompat.Channels implements androidx.tvprovider.media.tv.TvContractCompat.BaseTvColumns {
-    method public static java.lang.String getVideoResolution(java.lang.String);
-    field public static final java.lang.String COLUMN_APP_LINK_COLOR = "app_link_color";
-    field public static final java.lang.String COLUMN_APP_LINK_ICON_URI = "app_link_icon_uri";
-    field public static final java.lang.String COLUMN_APP_LINK_INTENT_URI = "app_link_intent_uri";
-    field public static final java.lang.String COLUMN_APP_LINK_POSTER_ART_URI = "app_link_poster_art_uri";
-    field public static final java.lang.String COLUMN_APP_LINK_TEXT = "app_link_text";
-    field public static final java.lang.String COLUMN_BROWSABLE = "browsable";
-    field public static final java.lang.String COLUMN_CONFIGURATION_DISPLAY_ORDER = "configuration_display_order";
-    field public static final java.lang.String COLUMN_DESCRIPTION = "description";
-    field public static final java.lang.String COLUMN_DISPLAY_NAME = "display_name";
-    field public static final java.lang.String COLUMN_DISPLAY_NUMBER = "display_number";
-    field public static final java.lang.String COLUMN_INPUT_ID = "input_id";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG2 = "internal_provider_flag2";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG3 = "internal_provider_flag3";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG4 = "internal_provider_flag4";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_ID = "internal_provider_id";
-    field public static final java.lang.String COLUMN_LOCKED = "locked";
-    field public static final java.lang.String COLUMN_NETWORK_AFFILIATION = "network_affiliation";
-    field public static final java.lang.String COLUMN_ORIGINAL_NETWORK_ID = "original_network_id";
-    field public static final java.lang.String COLUMN_SEARCHABLE = "searchable";
-    field public static final java.lang.String COLUMN_SERVICE_ID = "service_id";
-    field public static final java.lang.String COLUMN_SERVICE_TYPE = "service_type";
-    field public static final java.lang.String COLUMN_SYSTEM_CHANNEL_KEY = "system_channel_key";
-    field public static final java.lang.String COLUMN_TRANSIENT = "transient";
-    field public static final java.lang.String COLUMN_TRANSPORT_STREAM_ID = "transport_stream_id";
-    field public static final java.lang.String COLUMN_TYPE = "type";
-    field public static final java.lang.String COLUMN_VERSION_NUMBER = "version_number";
-    field public static final java.lang.String COLUMN_VIDEO_FORMAT = "video_format";
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/channel";
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/channel";
-    field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String SERVICE_TYPE_AUDIO = "SERVICE_TYPE_AUDIO";
-    field public static final java.lang.String SERVICE_TYPE_AUDIO_VIDEO = "SERVICE_TYPE_AUDIO_VIDEO";
-    field public static final java.lang.String SERVICE_TYPE_OTHER = "SERVICE_TYPE_OTHER";
-    field public static final java.lang.String TYPE_1SEG = "TYPE_1SEG";
-    field public static final java.lang.String TYPE_ATSC_C = "TYPE_ATSC_C";
-    field public static final java.lang.String TYPE_ATSC_M_H = "TYPE_ATSC_M_H";
-    field public static final java.lang.String TYPE_ATSC_T = "TYPE_ATSC_T";
-    field public static final java.lang.String TYPE_CMMB = "TYPE_CMMB";
-    field public static final java.lang.String TYPE_DTMB = "TYPE_DTMB";
-    field public static final java.lang.String TYPE_DVB_C = "TYPE_DVB_C";
-    field public static final java.lang.String TYPE_DVB_C2 = "TYPE_DVB_C2";
-    field public static final java.lang.String TYPE_DVB_H = "TYPE_DVB_H";
-    field public static final java.lang.String TYPE_DVB_S = "TYPE_DVB_S";
-    field public static final java.lang.String TYPE_DVB_S2 = "TYPE_DVB_S2";
-    field public static final java.lang.String TYPE_DVB_SH = "TYPE_DVB_SH";
-    field public static final java.lang.String TYPE_DVB_T = "TYPE_DVB_T";
-    field public static final java.lang.String TYPE_DVB_T2 = "TYPE_DVB_T2";
-    field public static final java.lang.String TYPE_ISDB_C = "TYPE_ISDB_C";
-    field public static final java.lang.String TYPE_ISDB_S = "TYPE_ISDB_S";
-    field public static final java.lang.String TYPE_ISDB_T = "TYPE_ISDB_T";
-    field public static final java.lang.String TYPE_ISDB_TB = "TYPE_ISDB_TB";
-    field public static final java.lang.String TYPE_NTSC = "TYPE_NTSC";
-    field public static final java.lang.String TYPE_OTHER = "TYPE_OTHER";
-    field public static final java.lang.String TYPE_PAL = "TYPE_PAL";
-    field public static final java.lang.String TYPE_PREVIEW = "TYPE_PREVIEW";
-    field public static final java.lang.String TYPE_SECAM = "TYPE_SECAM";
-    field public static final java.lang.String TYPE_S_DMB = "TYPE_S_DMB";
-    field public static final java.lang.String TYPE_T_DMB = "TYPE_T_DMB";
-    field public static final java.lang.String VIDEO_FORMAT_1080I = "VIDEO_FORMAT_1080I";
-    field public static final java.lang.String VIDEO_FORMAT_1080P = "VIDEO_FORMAT_1080P";
-    field public static final java.lang.String VIDEO_FORMAT_2160P = "VIDEO_FORMAT_2160P";
-    field public static final java.lang.String VIDEO_FORMAT_240P = "VIDEO_FORMAT_240P";
-    field public static final java.lang.String VIDEO_FORMAT_360P = "VIDEO_FORMAT_360P";
-    field public static final java.lang.String VIDEO_FORMAT_4320P = "VIDEO_FORMAT_4320P";
-    field public static final java.lang.String VIDEO_FORMAT_480I = "VIDEO_FORMAT_480I";
-    field public static final java.lang.String VIDEO_FORMAT_480P = "VIDEO_FORMAT_480P";
-    field public static final java.lang.String VIDEO_FORMAT_576I = "VIDEO_FORMAT_576I";
-    field public static final java.lang.String VIDEO_FORMAT_576P = "VIDEO_FORMAT_576P";
-    field public static final java.lang.String VIDEO_FORMAT_720P = "VIDEO_FORMAT_720P";
-    field public static final java.lang.String VIDEO_RESOLUTION_ED = "VIDEO_RESOLUTION_ED";
-    field public static final java.lang.String VIDEO_RESOLUTION_FHD = "VIDEO_RESOLUTION_FHD";
-    field public static final java.lang.String VIDEO_RESOLUTION_HD = "VIDEO_RESOLUTION_HD";
-    field public static final java.lang.String VIDEO_RESOLUTION_SD = "VIDEO_RESOLUTION_SD";
-    field public static final java.lang.String VIDEO_RESOLUTION_UHD = "VIDEO_RESOLUTION_UHD";
+    method public static String? getVideoResolution(String!);
+    field public static final String COLUMN_APP_LINK_COLOR = "app_link_color";
+    field public static final String COLUMN_APP_LINK_ICON_URI = "app_link_icon_uri";
+    field public static final String COLUMN_APP_LINK_INTENT_URI = "app_link_intent_uri";
+    field public static final String COLUMN_APP_LINK_POSTER_ART_URI = "app_link_poster_art_uri";
+    field public static final String COLUMN_APP_LINK_TEXT = "app_link_text";
+    field public static final String COLUMN_BROWSABLE = "browsable";
+    field public static final String COLUMN_CONFIGURATION_DISPLAY_ORDER = "configuration_display_order";
+    field public static final String COLUMN_DESCRIPTION = "description";
+    field public static final String COLUMN_DISPLAY_NAME = "display_name";
+    field public static final String COLUMN_DISPLAY_NUMBER = "display_number";
+    field public static final String COLUMN_INPUT_ID = "input_id";
+    field public static final String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG2 = "internal_provider_flag2";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG3 = "internal_provider_flag3";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG4 = "internal_provider_flag4";
+    field public static final String COLUMN_INTERNAL_PROVIDER_ID = "internal_provider_id";
+    field public static final String COLUMN_LOCKED = "locked";
+    field public static final String COLUMN_NETWORK_AFFILIATION = "network_affiliation";
+    field public static final String COLUMN_ORIGINAL_NETWORK_ID = "original_network_id";
+    field public static final String COLUMN_SEARCHABLE = "searchable";
+    field public static final String COLUMN_SERVICE_ID = "service_id";
+    field public static final String COLUMN_SERVICE_TYPE = "service_type";
+    field public static final String COLUMN_SYSTEM_CHANNEL_KEY = "system_channel_key";
+    field public static final String COLUMN_TRANSIENT = "transient";
+    field public static final String COLUMN_TRANSPORT_STREAM_ID = "transport_stream_id";
+    field public static final String COLUMN_TYPE = "type";
+    field public static final String COLUMN_VERSION_NUMBER = "version_number";
+    field public static final String COLUMN_VIDEO_FORMAT = "video_format";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/channel";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/channel";
+    field public static final android.net.Uri! CONTENT_URI;
+    field public static final String SERVICE_TYPE_AUDIO = "SERVICE_TYPE_AUDIO";
+    field public static final String SERVICE_TYPE_AUDIO_VIDEO = "SERVICE_TYPE_AUDIO_VIDEO";
+    field public static final String SERVICE_TYPE_OTHER = "SERVICE_TYPE_OTHER";
+    field public static final String TYPE_1SEG = "TYPE_1SEG";
+    field public static final String TYPE_ATSC_C = "TYPE_ATSC_C";
+    field public static final String TYPE_ATSC_M_H = "TYPE_ATSC_M_H";
+    field public static final String TYPE_ATSC_T = "TYPE_ATSC_T";
+    field public static final String TYPE_CMMB = "TYPE_CMMB";
+    field public static final String TYPE_DTMB = "TYPE_DTMB";
+    field public static final String TYPE_DVB_C = "TYPE_DVB_C";
+    field public static final String TYPE_DVB_C2 = "TYPE_DVB_C2";
+    field public static final String TYPE_DVB_H = "TYPE_DVB_H";
+    field public static final String TYPE_DVB_S = "TYPE_DVB_S";
+    field public static final String TYPE_DVB_S2 = "TYPE_DVB_S2";
+    field public static final String TYPE_DVB_SH = "TYPE_DVB_SH";
+    field public static final String TYPE_DVB_T = "TYPE_DVB_T";
+    field public static final String TYPE_DVB_T2 = "TYPE_DVB_T2";
+    field public static final String TYPE_ISDB_C = "TYPE_ISDB_C";
+    field public static final String TYPE_ISDB_S = "TYPE_ISDB_S";
+    field public static final String TYPE_ISDB_T = "TYPE_ISDB_T";
+    field public static final String TYPE_ISDB_TB = "TYPE_ISDB_TB";
+    field public static final String TYPE_NTSC = "TYPE_NTSC";
+    field public static final String TYPE_OTHER = "TYPE_OTHER";
+    field public static final String TYPE_PAL = "TYPE_PAL";
+    field public static final String TYPE_PREVIEW = "TYPE_PREVIEW";
+    field public static final String TYPE_SECAM = "TYPE_SECAM";
+    field public static final String TYPE_S_DMB = "TYPE_S_DMB";
+    field public static final String TYPE_T_DMB = "TYPE_T_DMB";
+    field public static final String VIDEO_FORMAT_1080I = "VIDEO_FORMAT_1080I";
+    field public static final String VIDEO_FORMAT_1080P = "VIDEO_FORMAT_1080P";
+    field public static final String VIDEO_FORMAT_2160P = "VIDEO_FORMAT_2160P";
+    field public static final String VIDEO_FORMAT_240P = "VIDEO_FORMAT_240P";
+    field public static final String VIDEO_FORMAT_360P = "VIDEO_FORMAT_360P";
+    field public static final String VIDEO_FORMAT_4320P = "VIDEO_FORMAT_4320P";
+    field public static final String VIDEO_FORMAT_480I = "VIDEO_FORMAT_480I";
+    field public static final String VIDEO_FORMAT_480P = "VIDEO_FORMAT_480P";
+    field public static final String VIDEO_FORMAT_576I = "VIDEO_FORMAT_576I";
+    field public static final String VIDEO_FORMAT_576P = "VIDEO_FORMAT_576P";
+    field public static final String VIDEO_FORMAT_720P = "VIDEO_FORMAT_720P";
+    field public static final String VIDEO_RESOLUTION_ED = "VIDEO_RESOLUTION_ED";
+    field public static final String VIDEO_RESOLUTION_FHD = "VIDEO_RESOLUTION_FHD";
+    field public static final String VIDEO_RESOLUTION_HD = "VIDEO_RESOLUTION_HD";
+    field public static final String VIDEO_RESOLUTION_SD = "VIDEO_RESOLUTION_SD";
+    field public static final String VIDEO_RESOLUTION_UHD = "VIDEO_RESOLUTION_UHD";
   }
 
   public static final class TvContractCompat.Channels.Logo {
-    field public static final java.lang.String CONTENT_DIRECTORY = "logo";
+    field public static final String CONTENT_DIRECTORY = "logo";
   }
 
   public static final class TvContractCompat.PreviewPrograms implements androidx.tvprovider.media.tv.TvContractCompat.BaseTvColumns {
@@ -306,61 +388,61 @@
     field public static final int AVAILABILITY_FREE_WITH_SUBSCRIPTION = 1; // 0x1
     field public static final int AVAILABILITY_PAID_CONTENT = 2; // 0x2
     field public static final int AVAILABILITY_PURCHASED = 3; // 0x3
-    field public static final java.lang.String COLUMN_AUDIO_LANGUAGE = "audio_language";
-    field public static final java.lang.String COLUMN_AUTHOR = "author";
-    field public static final java.lang.String COLUMN_AVAILABILITY = "availability";
-    field public static final java.lang.String COLUMN_BROWSABLE = "browsable";
-    field public static final java.lang.String COLUMN_CANONICAL_GENRE = "canonical_genre";
-    field public static final java.lang.String COLUMN_CHANNEL_ID = "channel_id";
-    field public static final java.lang.String COLUMN_CONTENT_ID = "content_id";
-    field public static final java.lang.String COLUMN_CONTENT_RATING = "content_rating";
-    field public static final java.lang.String COLUMN_DURATION_MILLIS = "duration_millis";
-    field public static final java.lang.String COLUMN_END_TIME_UTC_MILLIS = "end_time_utc_millis";
-    field public static final java.lang.String COLUMN_EPISODE_DISPLAY_NUMBER = "episode_display_number";
-    field public static final java.lang.String COLUMN_EPISODE_TITLE = "episode_title";
-    field public static final java.lang.String COLUMN_GENRE = "genre";
-    field public static final java.lang.String COLUMN_INTENT_URI = "intent_uri";
-    field public static final java.lang.String COLUMN_INTERACTION_COUNT = "interaction_count";
-    field public static final java.lang.String COLUMN_INTERACTION_TYPE = "interaction_type";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG2 = "internal_provider_flag2";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG3 = "internal_provider_flag3";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG4 = "internal_provider_flag4";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_ID = "internal_provider_id";
-    field public static final java.lang.String COLUMN_ITEM_COUNT = "item_count";
-    field public static final java.lang.String COLUMN_LAST_PLAYBACK_POSITION_MILLIS = "last_playback_position_millis";
-    field public static final java.lang.String COLUMN_LIVE = "live";
-    field public static final java.lang.String COLUMN_LOGO_CONTENT_DESCRIPTION = "logo_content_description";
-    field public static final java.lang.String COLUMN_LOGO_URI = "logo_uri";
-    field public static final java.lang.String COLUMN_LONG_DESCRIPTION = "long_description";
-    field public static final java.lang.String COLUMN_OFFER_PRICE = "offer_price";
-    field public static final java.lang.String COLUMN_POSTER_ART_ASPECT_RATIO = "poster_art_aspect_ratio";
-    field public static final java.lang.String COLUMN_POSTER_ART_URI = "poster_art_uri";
-    field public static final java.lang.String COLUMN_PREVIEW_AUDIO_URI = "preview_audio_uri";
-    field public static final java.lang.String COLUMN_PREVIEW_VIDEO_URI = "preview_video_uri";
-    field public static final java.lang.String COLUMN_RELEASE_DATE = "release_date";
-    field public static final java.lang.String COLUMN_REVIEW_RATING = "review_rating";
-    field public static final java.lang.String COLUMN_REVIEW_RATING_STYLE = "review_rating_style";
-    field public static final java.lang.String COLUMN_SEARCHABLE = "searchable";
-    field public static final java.lang.String COLUMN_SEASON_DISPLAY_NUMBER = "season_display_number";
-    field public static final java.lang.String COLUMN_SEASON_TITLE = "season_title";
-    field public static final java.lang.String COLUMN_SHORT_DESCRIPTION = "short_description";
-    field public static final java.lang.String COLUMN_STARTING_PRICE = "starting_price";
-    field public static final java.lang.String COLUMN_START_TIME_UTC_MILLIS = "start_time_utc_millis";
-    field public static final java.lang.String COLUMN_THUMBNAIL_ASPECT_RATIO = "poster_thumbnail_aspect_ratio";
-    field public static final java.lang.String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
-    field public static final java.lang.String COLUMN_TITLE = "title";
-    field public static final java.lang.String COLUMN_TRANSIENT = "transient";
-    field public static final java.lang.String COLUMN_TV_SERIES_ITEM_TYPE = "tv_series_item_type";
-    field public static final java.lang.String COLUMN_TYPE = "type";
-    field public static final java.lang.String COLUMN_VERSION_NUMBER = "version_number";
-    field public static final java.lang.String COLUMN_VIDEO_HEIGHT = "video_height";
-    field public static final java.lang.String COLUMN_VIDEO_WIDTH = "video_width";
-    field public static final java.lang.String COLUMN_WEIGHT = "weight";
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/preview_program";
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/preview_program";
-    field public static final android.net.Uri CONTENT_URI;
+    field public static final String COLUMN_AUDIO_LANGUAGE = "audio_language";
+    field public static final String COLUMN_AUTHOR = "author";
+    field public static final String COLUMN_AVAILABILITY = "availability";
+    field public static final String COLUMN_BROWSABLE = "browsable";
+    field public static final String COLUMN_CANONICAL_GENRE = "canonical_genre";
+    field public static final String COLUMN_CHANNEL_ID = "channel_id";
+    field public static final String COLUMN_CONTENT_ID = "content_id";
+    field public static final String COLUMN_CONTENT_RATING = "content_rating";
+    field public static final String COLUMN_DURATION_MILLIS = "duration_millis";
+    field public static final String COLUMN_END_TIME_UTC_MILLIS = "end_time_utc_millis";
+    field public static final String COLUMN_EPISODE_DISPLAY_NUMBER = "episode_display_number";
+    field public static final String COLUMN_EPISODE_TITLE = "episode_title";
+    field public static final String COLUMN_GENRE = "genre";
+    field public static final String COLUMN_INTENT_URI = "intent_uri";
+    field public static final String COLUMN_INTERACTION_COUNT = "interaction_count";
+    field public static final String COLUMN_INTERACTION_TYPE = "interaction_type";
+    field public static final String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG2 = "internal_provider_flag2";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG3 = "internal_provider_flag3";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG4 = "internal_provider_flag4";
+    field public static final String COLUMN_INTERNAL_PROVIDER_ID = "internal_provider_id";
+    field public static final String COLUMN_ITEM_COUNT = "item_count";
+    field public static final String COLUMN_LAST_PLAYBACK_POSITION_MILLIS = "last_playback_position_millis";
+    field public static final String COLUMN_LIVE = "live";
+    field public static final String COLUMN_LOGO_CONTENT_DESCRIPTION = "logo_content_description";
+    field public static final String COLUMN_LOGO_URI = "logo_uri";
+    field public static final String COLUMN_LONG_DESCRIPTION = "long_description";
+    field public static final String COLUMN_OFFER_PRICE = "offer_price";
+    field public static final String COLUMN_POSTER_ART_ASPECT_RATIO = "poster_art_aspect_ratio";
+    field public static final String COLUMN_POSTER_ART_URI = "poster_art_uri";
+    field public static final String COLUMN_PREVIEW_AUDIO_URI = "preview_audio_uri";
+    field public static final String COLUMN_PREVIEW_VIDEO_URI = "preview_video_uri";
+    field public static final String COLUMN_RELEASE_DATE = "release_date";
+    field public static final String COLUMN_REVIEW_RATING = "review_rating";
+    field public static final String COLUMN_REVIEW_RATING_STYLE = "review_rating_style";
+    field public static final String COLUMN_SEARCHABLE = "searchable";
+    field public static final String COLUMN_SEASON_DISPLAY_NUMBER = "season_display_number";
+    field public static final String COLUMN_SEASON_TITLE = "season_title";
+    field public static final String COLUMN_SHORT_DESCRIPTION = "short_description";
+    field public static final String COLUMN_STARTING_PRICE = "starting_price";
+    field public static final String COLUMN_START_TIME_UTC_MILLIS = "start_time_utc_millis";
+    field public static final String COLUMN_THUMBNAIL_ASPECT_RATIO = "poster_thumbnail_aspect_ratio";
+    field public static final String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
+    field public static final String COLUMN_TITLE = "title";
+    field public static final String COLUMN_TRANSIENT = "transient";
+    field public static final String COLUMN_TV_SERIES_ITEM_TYPE = "tv_series_item_type";
+    field public static final String COLUMN_TYPE = "type";
+    field public static final String COLUMN_VERSION_NUMBER = "version_number";
+    field public static final String COLUMN_VIDEO_HEIGHT = "video_height";
+    field public static final String COLUMN_VIDEO_WIDTH = "video_width";
+    field public static final String COLUMN_WEIGHT = "weight";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/preview_program";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/preview_program";
+    field public static final android.net.Uri! CONTENT_URI;
     field public static final int INTERACTION_TYPE_FANS = 3; // 0x3
     field public static final int INTERACTION_TYPE_FOLLOWERS = 2; // 0x2
     field public static final int INTERACTION_TYPE_LIKES = 4; // 0x4
@@ -389,103 +471,103 @@
   }
 
   public static final class TvContractCompat.Programs implements androidx.tvprovider.media.tv.TvContractCompat.BaseTvColumns {
-    field public static final java.lang.String COLUMN_AUDIO_LANGUAGE = "audio_language";
-    field public static final java.lang.String COLUMN_BROADCAST_GENRE = "broadcast_genre";
-    field public static final java.lang.String COLUMN_CANONICAL_GENRE = "canonical_genre";
-    field public static final java.lang.String COLUMN_CHANNEL_ID = "channel_id";
-    field public static final java.lang.String COLUMN_CONTENT_RATING = "content_rating";
-    field public static final java.lang.String COLUMN_END_TIME_UTC_MILLIS = "end_time_utc_millis";
-    field public static final java.lang.String COLUMN_EPISODE_DISPLAY_NUMBER = "episode_display_number";
-    field public static final deprecated java.lang.String COLUMN_EPISODE_NUMBER = "episode_number";
-    field public static final java.lang.String COLUMN_EPISODE_TITLE = "episode_title";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG2 = "internal_provider_flag2";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG3 = "internal_provider_flag3";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG4 = "internal_provider_flag4";
-    field public static final java.lang.String COLUMN_LONG_DESCRIPTION = "long_description";
-    field public static final java.lang.String COLUMN_POSTER_ART_URI = "poster_art_uri";
-    field public static final java.lang.String COLUMN_RECORDING_PROHIBITED = "recording_prohibited";
-    field public static final java.lang.String COLUMN_REVIEW_RATING = "review_rating";
-    field public static final java.lang.String COLUMN_REVIEW_RATING_STYLE = "review_rating_style";
-    field public static final java.lang.String COLUMN_SEARCHABLE = "searchable";
-    field public static final java.lang.String COLUMN_SEASON_DISPLAY_NUMBER = "season_display_number";
-    field public static final deprecated java.lang.String COLUMN_SEASON_NUMBER = "season_number";
-    field public static final java.lang.String COLUMN_SEASON_TITLE = "season_title";
-    field public static final java.lang.String COLUMN_SHORT_DESCRIPTION = "short_description";
-    field public static final java.lang.String COLUMN_START_TIME_UTC_MILLIS = "start_time_utc_millis";
-    field public static final java.lang.String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
-    field public static final java.lang.String COLUMN_TITLE = "title";
-    field public static final java.lang.String COLUMN_VERSION_NUMBER = "version_number";
-    field public static final java.lang.String COLUMN_VIDEO_HEIGHT = "video_height";
-    field public static final java.lang.String COLUMN_VIDEO_WIDTH = "video_width";
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/program";
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/program";
-    field public static final android.net.Uri CONTENT_URI;
+    field public static final String COLUMN_AUDIO_LANGUAGE = "audio_language";
+    field public static final String COLUMN_BROADCAST_GENRE = "broadcast_genre";
+    field public static final String COLUMN_CANONICAL_GENRE = "canonical_genre";
+    field public static final String COLUMN_CHANNEL_ID = "channel_id";
+    field public static final String COLUMN_CONTENT_RATING = "content_rating";
+    field public static final String COLUMN_END_TIME_UTC_MILLIS = "end_time_utc_millis";
+    field public static final String COLUMN_EPISODE_DISPLAY_NUMBER = "episode_display_number";
+    field @Deprecated public static final String COLUMN_EPISODE_NUMBER = "episode_number";
+    field public static final String COLUMN_EPISODE_TITLE = "episode_title";
+    field public static final String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG2 = "internal_provider_flag2";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG3 = "internal_provider_flag3";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG4 = "internal_provider_flag4";
+    field public static final String COLUMN_LONG_DESCRIPTION = "long_description";
+    field public static final String COLUMN_POSTER_ART_URI = "poster_art_uri";
+    field public static final String COLUMN_RECORDING_PROHIBITED = "recording_prohibited";
+    field public static final String COLUMN_REVIEW_RATING = "review_rating";
+    field public static final String COLUMN_REVIEW_RATING_STYLE = "review_rating_style";
+    field public static final String COLUMN_SEARCHABLE = "searchable";
+    field public static final String COLUMN_SEASON_DISPLAY_NUMBER = "season_display_number";
+    field @Deprecated public static final String COLUMN_SEASON_NUMBER = "season_number";
+    field public static final String COLUMN_SEASON_TITLE = "season_title";
+    field public static final String COLUMN_SHORT_DESCRIPTION = "short_description";
+    field public static final String COLUMN_START_TIME_UTC_MILLIS = "start_time_utc_millis";
+    field public static final String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
+    field public static final String COLUMN_TITLE = "title";
+    field public static final String COLUMN_VERSION_NUMBER = "version_number";
+    field public static final String COLUMN_VIDEO_HEIGHT = "video_height";
+    field public static final String COLUMN_VIDEO_WIDTH = "video_width";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/program";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/program";
+    field public static final android.net.Uri! CONTENT_URI;
     field public static final int REVIEW_RATING_STYLE_PERCENTAGE = 2; // 0x2
     field public static final int REVIEW_RATING_STYLE_STARS = 0; // 0x0
     field public static final int REVIEW_RATING_STYLE_THUMBS_UP_DOWN = 1; // 0x1
   }
 
   public static final class TvContractCompat.Programs.Genres {
-    method public static java.lang.String[] decode(java.lang.String);
-    method public static java.lang.String encode(java.lang.String...);
-    method public static boolean isCanonical(java.lang.String);
-    field public static final java.lang.String ANIMAL_WILDLIFE = "ANIMAL_WILDLIFE";
-    field public static final java.lang.String ARTS = "ARTS";
-    field public static final java.lang.String COMEDY = "COMEDY";
-    field public static final java.lang.String DRAMA = "DRAMA";
-    field public static final java.lang.String EDUCATION = "EDUCATION";
-    field public static final java.lang.String ENTERTAINMENT = "ENTERTAINMENT";
-    field public static final java.lang.String FAMILY_KIDS = "FAMILY_KIDS";
-    field public static final java.lang.String GAMING = "GAMING";
-    field public static final java.lang.String LIFE_STYLE = "LIFE_STYLE";
-    field public static final java.lang.String MOVIES = "MOVIES";
-    field public static final java.lang.String MUSIC = "MUSIC";
-    field public static final java.lang.String NEWS = "NEWS";
-    field public static final java.lang.String PREMIER = "PREMIER";
-    field public static final java.lang.String SHOPPING = "SHOPPING";
-    field public static final java.lang.String SPORTS = "SPORTS";
-    field public static final java.lang.String TECH_SCIENCE = "TECH_SCIENCE";
-    field public static final java.lang.String TRAVEL = "TRAVEL";
+    method public static String[]! decode(String);
+    method public static String! encode(java.lang.String...);
+    method public static boolean isCanonical(String!);
+    field public static final String ANIMAL_WILDLIFE = "ANIMAL_WILDLIFE";
+    field public static final String ARTS = "ARTS";
+    field public static final String COMEDY = "COMEDY";
+    field public static final String DRAMA = "DRAMA";
+    field public static final String EDUCATION = "EDUCATION";
+    field public static final String ENTERTAINMENT = "ENTERTAINMENT";
+    field public static final String FAMILY_KIDS = "FAMILY_KIDS";
+    field public static final String GAMING = "GAMING";
+    field public static final String LIFE_STYLE = "LIFE_STYLE";
+    field public static final String MOVIES = "MOVIES";
+    field public static final String MUSIC = "MUSIC";
+    field public static final String NEWS = "NEWS";
+    field public static final String PREMIER = "PREMIER";
+    field public static final String SHOPPING = "SHOPPING";
+    field public static final String SPORTS = "SPORTS";
+    field public static final String TECH_SCIENCE = "TECH_SCIENCE";
+    field public static final String TRAVEL = "TRAVEL";
   }
 
   public static final class TvContractCompat.RecordedPrograms implements androidx.tvprovider.media.tv.TvContractCompat.BaseTvColumns {
-    field public static final java.lang.String COLUMN_AUDIO_LANGUAGE = "audio_language";
-    field public static final java.lang.String COLUMN_BROADCAST_GENRE = "broadcast_genre";
-    field public static final java.lang.String COLUMN_CANONICAL_GENRE = "canonical_genre";
-    field public static final java.lang.String COLUMN_CHANNEL_ID = "channel_id";
-    field public static final java.lang.String COLUMN_CONTENT_RATING = "content_rating";
-    field public static final java.lang.String COLUMN_END_TIME_UTC_MILLIS = "end_time_utc_millis";
-    field public static final java.lang.String COLUMN_EPISODE_DISPLAY_NUMBER = "episode_display_number";
-    field public static final java.lang.String COLUMN_EPISODE_TITLE = "episode_title";
-    field public static final java.lang.String COLUMN_INPUT_ID = "input_id";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG2 = "internal_provider_flag2";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG3 = "internal_provider_flag3";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG4 = "internal_provider_flag4";
-    field public static final java.lang.String COLUMN_LONG_DESCRIPTION = "long_description";
-    field public static final java.lang.String COLUMN_POSTER_ART_URI = "poster_art_uri";
-    field public static final java.lang.String COLUMN_RECORDING_DATA_BYTES = "recording_data_bytes";
-    field public static final java.lang.String COLUMN_RECORDING_DATA_URI = "recording_data_uri";
-    field public static final java.lang.String COLUMN_RECORDING_DURATION_MILLIS = "recording_duration_millis";
-    field public static final java.lang.String COLUMN_RECORDING_EXPIRE_TIME_UTC_MILLIS = "recording_expire_time_utc_millis";
-    field public static final java.lang.String COLUMN_REVIEW_RATING = "review_rating";
-    field public static final java.lang.String COLUMN_REVIEW_RATING_STYLE = "review_rating_style";
-    field public static final java.lang.String COLUMN_SEARCHABLE = "searchable";
-    field public static final java.lang.String COLUMN_SEASON_DISPLAY_NUMBER = "season_display_number";
-    field public static final java.lang.String COLUMN_SEASON_TITLE = "season_title";
-    field public static final java.lang.String COLUMN_SHORT_DESCRIPTION = "short_description";
-    field public static final java.lang.String COLUMN_START_TIME_UTC_MILLIS = "start_time_utc_millis";
-    field public static final java.lang.String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
-    field public static final java.lang.String COLUMN_TITLE = "title";
-    field public static final java.lang.String COLUMN_VERSION_NUMBER = "version_number";
-    field public static final java.lang.String COLUMN_VIDEO_HEIGHT = "video_height";
-    field public static final java.lang.String COLUMN_VIDEO_WIDTH = "video_width";
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/recorded_program";
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/recorded_program";
-    field public static final android.net.Uri CONTENT_URI;
+    field public static final String COLUMN_AUDIO_LANGUAGE = "audio_language";
+    field public static final String COLUMN_BROADCAST_GENRE = "broadcast_genre";
+    field public static final String COLUMN_CANONICAL_GENRE = "canonical_genre";
+    field public static final String COLUMN_CHANNEL_ID = "channel_id";
+    field public static final String COLUMN_CONTENT_RATING = "content_rating";
+    field public static final String COLUMN_END_TIME_UTC_MILLIS = "end_time_utc_millis";
+    field public static final String COLUMN_EPISODE_DISPLAY_NUMBER = "episode_display_number";
+    field public static final String COLUMN_EPISODE_TITLE = "episode_title";
+    field public static final String COLUMN_INPUT_ID = "input_id";
+    field public static final String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG2 = "internal_provider_flag2";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG3 = "internal_provider_flag3";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG4 = "internal_provider_flag4";
+    field public static final String COLUMN_LONG_DESCRIPTION = "long_description";
+    field public static final String COLUMN_POSTER_ART_URI = "poster_art_uri";
+    field public static final String COLUMN_RECORDING_DATA_BYTES = "recording_data_bytes";
+    field public static final String COLUMN_RECORDING_DATA_URI = "recording_data_uri";
+    field public static final String COLUMN_RECORDING_DURATION_MILLIS = "recording_duration_millis";
+    field public static final String COLUMN_RECORDING_EXPIRE_TIME_UTC_MILLIS = "recording_expire_time_utc_millis";
+    field public static final String COLUMN_REVIEW_RATING = "review_rating";
+    field public static final String COLUMN_REVIEW_RATING_STYLE = "review_rating_style";
+    field public static final String COLUMN_SEARCHABLE = "searchable";
+    field public static final String COLUMN_SEASON_DISPLAY_NUMBER = "season_display_number";
+    field public static final String COLUMN_SEASON_TITLE = "season_title";
+    field public static final String COLUMN_SHORT_DESCRIPTION = "short_description";
+    field public static final String COLUMN_START_TIME_UTC_MILLIS = "start_time_utc_millis";
+    field public static final String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
+    field public static final String COLUMN_TITLE = "title";
+    field public static final String COLUMN_VERSION_NUMBER = "version_number";
+    field public static final String COLUMN_VIDEO_HEIGHT = "video_height";
+    field public static final String COLUMN_VIDEO_WIDTH = "video_width";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/recorded_program";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/recorded_program";
+    field public static final android.net.Uri! CONTENT_URI;
     field public static final int REVIEW_RATING_STYLE_PERCENTAGE = 2; // 0x2
     field public static final int REVIEW_RATING_STYLE_STARS = 0; // 0x0
     field public static final int REVIEW_RATING_STYLE_THUMBS_UP_DOWN = 1; // 0x1
@@ -503,61 +585,61 @@
     field public static final int AVAILABILITY_FREE_WITH_SUBSCRIPTION = 1; // 0x1
     field public static final int AVAILABILITY_PAID_CONTENT = 2; // 0x2
     field public static final int AVAILABILITY_PURCHASED = 3; // 0x3
-    field public static final java.lang.String COLUMN_AUDIO_LANGUAGE = "audio_language";
-    field public static final java.lang.String COLUMN_AUTHOR = "author";
-    field public static final java.lang.String COLUMN_AVAILABILITY = "availability";
-    field public static final java.lang.String COLUMN_BROWSABLE = "browsable";
-    field public static final java.lang.String COLUMN_CANONICAL_GENRE = "canonical_genre";
-    field public static final java.lang.String COLUMN_CONTENT_ID = "content_id";
-    field public static final java.lang.String COLUMN_CONTENT_RATING = "content_rating";
-    field public static final java.lang.String COLUMN_DURATION_MILLIS = "duration_millis";
-    field public static final java.lang.String COLUMN_END_TIME_UTC_MILLIS = "end_time_utc_millis";
-    field public static final java.lang.String COLUMN_EPISODE_DISPLAY_NUMBER = "episode_display_number";
-    field public static final java.lang.String COLUMN_EPISODE_TITLE = "episode_title";
-    field public static final java.lang.String COLUMN_GENRE = "genre";
-    field public static final java.lang.String COLUMN_INTENT_URI = "intent_uri";
-    field public static final java.lang.String COLUMN_INTERACTION_COUNT = "interaction_count";
-    field public static final java.lang.String COLUMN_INTERACTION_TYPE = "interaction_type";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG2 = "internal_provider_flag2";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG3 = "internal_provider_flag3";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG4 = "internal_provider_flag4";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_ID = "internal_provider_id";
-    field public static final java.lang.String COLUMN_ITEM_COUNT = "item_count";
-    field public static final java.lang.String COLUMN_LAST_ENGAGEMENT_TIME_UTC_MILLIS = "last_engagement_time_utc_millis";
-    field public static final java.lang.String COLUMN_LAST_PLAYBACK_POSITION_MILLIS = "last_playback_position_millis";
-    field public static final java.lang.String COLUMN_LIVE = "live";
-    field public static final java.lang.String COLUMN_LOGO_CONTENT_DESCRIPTION = "logo_content_description";
-    field public static final java.lang.String COLUMN_LOGO_URI = "logo_uri";
-    field public static final java.lang.String COLUMN_LONG_DESCRIPTION = "long_description";
-    field public static final java.lang.String COLUMN_OFFER_PRICE = "offer_price";
-    field public static final java.lang.String COLUMN_POSTER_ART_ASPECT_RATIO = "poster_art_aspect_ratio";
-    field public static final java.lang.String COLUMN_POSTER_ART_URI = "poster_art_uri";
-    field public static final java.lang.String COLUMN_PREVIEW_AUDIO_URI = "preview_audio_uri";
-    field public static final java.lang.String COLUMN_PREVIEW_VIDEO_URI = "preview_video_uri";
-    field public static final java.lang.String COLUMN_RELEASE_DATE = "release_date";
-    field public static final java.lang.String COLUMN_REVIEW_RATING = "review_rating";
-    field public static final java.lang.String COLUMN_REVIEW_RATING_STYLE = "review_rating_style";
-    field public static final java.lang.String COLUMN_SEARCHABLE = "searchable";
-    field public static final java.lang.String COLUMN_SEASON_DISPLAY_NUMBER = "season_display_number";
-    field public static final java.lang.String COLUMN_SEASON_TITLE = "season_title";
-    field public static final java.lang.String COLUMN_SHORT_DESCRIPTION = "short_description";
-    field public static final java.lang.String COLUMN_STARTING_PRICE = "starting_price";
-    field public static final java.lang.String COLUMN_START_TIME_UTC_MILLIS = "start_time_utc_millis";
-    field public static final java.lang.String COLUMN_THUMBNAIL_ASPECT_RATIO = "poster_thumbnail_aspect_ratio";
-    field public static final java.lang.String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
-    field public static final java.lang.String COLUMN_TITLE = "title";
-    field public static final java.lang.String COLUMN_TRANSIENT = "transient";
-    field public static final java.lang.String COLUMN_TV_SERIES_ITEM_TYPE = "tv_series_item_type";
-    field public static final java.lang.String COLUMN_TYPE = "type";
-    field public static final java.lang.String COLUMN_VERSION_NUMBER = "version_number";
-    field public static final java.lang.String COLUMN_VIDEO_HEIGHT = "video_height";
-    field public static final java.lang.String COLUMN_VIDEO_WIDTH = "video_width";
-    field public static final java.lang.String COLUMN_WATCH_NEXT_TYPE = "watch_next_type";
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/watch_next_program";
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/watch_next_program";
-    field public static final android.net.Uri CONTENT_URI;
+    field public static final String COLUMN_AUDIO_LANGUAGE = "audio_language";
+    field public static final String COLUMN_AUTHOR = "author";
+    field public static final String COLUMN_AVAILABILITY = "availability";
+    field public static final String COLUMN_BROWSABLE = "browsable";
+    field public static final String COLUMN_CANONICAL_GENRE = "canonical_genre";
+    field public static final String COLUMN_CONTENT_ID = "content_id";
+    field public static final String COLUMN_CONTENT_RATING = "content_rating";
+    field public static final String COLUMN_DURATION_MILLIS = "duration_millis";
+    field public static final String COLUMN_END_TIME_UTC_MILLIS = "end_time_utc_millis";
+    field public static final String COLUMN_EPISODE_DISPLAY_NUMBER = "episode_display_number";
+    field public static final String COLUMN_EPISODE_TITLE = "episode_title";
+    field public static final String COLUMN_GENRE = "genre";
+    field public static final String COLUMN_INTENT_URI = "intent_uri";
+    field public static final String COLUMN_INTERACTION_COUNT = "interaction_count";
+    field public static final String COLUMN_INTERACTION_TYPE = "interaction_type";
+    field public static final String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG2 = "internal_provider_flag2";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG3 = "internal_provider_flag3";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG4 = "internal_provider_flag4";
+    field public static final String COLUMN_INTERNAL_PROVIDER_ID = "internal_provider_id";
+    field public static final String COLUMN_ITEM_COUNT = "item_count";
+    field public static final String COLUMN_LAST_ENGAGEMENT_TIME_UTC_MILLIS = "last_engagement_time_utc_millis";
+    field public static final String COLUMN_LAST_PLAYBACK_POSITION_MILLIS = "last_playback_position_millis";
+    field public static final String COLUMN_LIVE = "live";
+    field public static final String COLUMN_LOGO_CONTENT_DESCRIPTION = "logo_content_description";
+    field public static final String COLUMN_LOGO_URI = "logo_uri";
+    field public static final String COLUMN_LONG_DESCRIPTION = "long_description";
+    field public static final String COLUMN_OFFER_PRICE = "offer_price";
+    field public static final String COLUMN_POSTER_ART_ASPECT_RATIO = "poster_art_aspect_ratio";
+    field public static final String COLUMN_POSTER_ART_URI = "poster_art_uri";
+    field public static final String COLUMN_PREVIEW_AUDIO_URI = "preview_audio_uri";
+    field public static final String COLUMN_PREVIEW_VIDEO_URI = "preview_video_uri";
+    field public static final String COLUMN_RELEASE_DATE = "release_date";
+    field public static final String COLUMN_REVIEW_RATING = "review_rating";
+    field public static final String COLUMN_REVIEW_RATING_STYLE = "review_rating_style";
+    field public static final String COLUMN_SEARCHABLE = "searchable";
+    field public static final String COLUMN_SEASON_DISPLAY_NUMBER = "season_display_number";
+    field public static final String COLUMN_SEASON_TITLE = "season_title";
+    field public static final String COLUMN_SHORT_DESCRIPTION = "short_description";
+    field public static final String COLUMN_STARTING_PRICE = "starting_price";
+    field public static final String COLUMN_START_TIME_UTC_MILLIS = "start_time_utc_millis";
+    field public static final String COLUMN_THUMBNAIL_ASPECT_RATIO = "poster_thumbnail_aspect_ratio";
+    field public static final String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
+    field public static final String COLUMN_TITLE = "title";
+    field public static final String COLUMN_TRANSIENT = "transient";
+    field public static final String COLUMN_TV_SERIES_ITEM_TYPE = "tv_series_item_type";
+    field public static final String COLUMN_TYPE = "type";
+    field public static final String COLUMN_VERSION_NUMBER = "version_number";
+    field public static final String COLUMN_VIDEO_HEIGHT = "video_height";
+    field public static final String COLUMN_VIDEO_WIDTH = "video_width";
+    field public static final String COLUMN_WATCH_NEXT_TYPE = "watch_next_type";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/watch_next_program";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/watch_next_program";
+    field public static final android.net.Uri! CONTENT_URI;
     field public static final int INTERACTION_TYPE_FANS = 3; // 0x3
     field public static final int INTERACTION_TYPE_FOLLOWERS = 2; // 0x2
     field public static final int INTERACTION_TYPE_LIKES = 4; // 0x4
@@ -590,20 +672,75 @@
   }
 
   public final class WatchNextProgram {
-    method public static androidx.tvprovider.media.tv.WatchNextProgram fromCursor(android.database.Cursor);
+    method public static androidx.tvprovider.media.tv.WatchNextProgram! fromCursor(android.database.Cursor!);
     method public long getLastEngagementTimeUtcMillis();
     method public int getWatchNextType();
-    method public boolean hasAnyUpdatedValues(androidx.tvprovider.media.tv.WatchNextProgram);
-    method public android.content.ContentValues toContentValues();
+    method public boolean hasAnyUpdatedValues(androidx.tvprovider.media.tv.WatchNextProgram!);
+    method public android.content.ContentValues! toContentValues();
     field public static final int WATCH_NEXT_TYPE_UNKNOWN = -1; // 0xffffffff
   }
 
   public static final class WatchNextProgram.Builder {
     ctor public WatchNextProgram.Builder();
-    ctor public WatchNextProgram.Builder(androidx.tvprovider.media.tv.WatchNextProgram);
-    method public androidx.tvprovider.media.tv.WatchNextProgram build();
-    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder setLastEngagementTimeUtcMillis(long);
-    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder setWatchNextType(int);
+    ctor public WatchNextProgram.Builder(androidx.tvprovider.media.tv.WatchNextProgram!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram! build();
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setAudioLanguages(String[]!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setAuthor(String!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setAvailability(int);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setBrowsable(boolean);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setCanonicalGenres(String[]!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setContentId(String!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setContentRatings(android.media.tv.TvContentRating[]!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setDescription(String!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setDurationMillis(int);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setEndTimeUtcMillis(long);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setEpisodeNumber(int);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setEpisodeNumber(String!, int);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setEpisodeTitle(String!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setGenre(String!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setId(long);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setIntent(android.content.Intent!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setIntentUri(android.net.Uri!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setInteractionCount(long);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setInteractionType(int);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setInternalProviderData(byte[]!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setInternalProviderFlag1(long);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setInternalProviderFlag2(long);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setInternalProviderFlag3(long);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setInternalProviderFlag4(long);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setInternalProviderId(String!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setItemCount(int);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setLastEngagementTimeUtcMillis(long);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setLastPlaybackPositionMillis(int);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setLive(boolean);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setLogoContentDescription(String!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setLogoUri(android.net.Uri!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setLongDescription(String!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setOfferPrice(String!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setPackageName(String!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setPosterArtAspectRatio(int);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setPosterArtUri(android.net.Uri!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setPreviewAudioUri(android.net.Uri!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setPreviewVideoUri(android.net.Uri!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setReleaseDate(String!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setReleaseDate(java.util.Date!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setReviewRating(String!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setReviewRatingStyle(int);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setSearchable(boolean);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setSeasonNumber(int);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setSeasonNumber(String!, int);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setSeasonTitle(String!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setStartTimeUtcMillis(long);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setStartingPrice(String!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setThumbnailAspectRatio(int);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setThumbnailUri(android.net.Uri!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setTitle(String!);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setTransient(boolean);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setTvSeriesItemType(int);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setType(int);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setVideoHeight(int);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setVideoWidth(int);
+    method public androidx.tvprovider.media.tv.WatchNextProgram.Builder! setWatchNextType(int);
   }
 
 }
diff --git a/versionedparcelable/api/current.txt b/versionedparcelable/api/current.txt
index dd32c63..25cea04 100644
--- a/versionedparcelable/api/current.txt
+++ b/versionedparcelable/api/current.txt
@@ -1,11 +1,12 @@
+// Signature format: 2.0
 package androidx.versionedparcelable {
 
   public class ParcelUtils {
-    method public static <T extends androidx.versionedparcelable.VersionedParcelable> T getVersionedParcelable(android.os.Bundle, java.lang.String);
-    method public static void putVersionedParcelable(android.os.Bundle, java.lang.String, androidx.versionedparcelable.VersionedParcelable);
+    method public static <T extends androidx.versionedparcelable.VersionedParcelable> T? getVersionedParcelable(android.os.Bundle!, String!);
+    method public static void putVersionedParcelable(android.os.Bundle, String, androidx.versionedparcelable.VersionedParcelable);
   }
 
-  public abstract interface VersionedParcelable {
+  public interface VersionedParcelable {
   }
 
 }
diff --git a/viewpager/api/1.0.0.txt b/viewpager/api/1.0.0.txt
index 2fed49b..de25917 100644
--- a/viewpager/api/1.0.0.txt
+++ b/viewpager/api/1.0.0.txt
@@ -1,26 +1,27 @@
+// Signature format: 2.0
 package androidx.viewpager.widget {
 
   public abstract class PagerAdapter {
     ctor public PagerAdapter();
-    method public void destroyItem(android.view.ViewGroup, int, java.lang.Object);
-    method public deprecated void destroyItem(android.view.View, int, java.lang.Object);
+    method public void destroyItem(android.view.ViewGroup, int, Object);
+    method @Deprecated public void destroyItem(android.view.View, int, Object);
     method public void finishUpdate(android.view.ViewGroup);
-    method public deprecated void finishUpdate(android.view.View);
+    method @Deprecated public void finishUpdate(android.view.View);
     method public abstract int getCount();
-    method public int getItemPosition(java.lang.Object);
-    method public java.lang.CharSequence getPageTitle(int);
+    method public int getItemPosition(Object);
+    method public CharSequence? getPageTitle(int);
     method public float getPageWidth(int);
-    method public java.lang.Object instantiateItem(android.view.ViewGroup, int);
-    method public deprecated java.lang.Object instantiateItem(android.view.View, int);
-    method public abstract boolean isViewFromObject(android.view.View, java.lang.Object);
+    method public Object instantiateItem(android.view.ViewGroup, int);
+    method @Deprecated public Object instantiateItem(android.view.View, int);
+    method public abstract boolean isViewFromObject(android.view.View, Object);
     method public void notifyDataSetChanged();
     method public void registerDataSetObserver(android.database.DataSetObserver);
-    method public void restoreState(android.os.Parcelable, java.lang.ClassLoader);
-    method public android.os.Parcelable saveState();
-    method public void setPrimaryItem(android.view.ViewGroup, int, java.lang.Object);
-    method public deprecated void setPrimaryItem(android.view.View, int, java.lang.Object);
+    method public void restoreState(android.os.Parcelable?, ClassLoader?);
+    method public android.os.Parcelable? saveState();
+    method public void setPrimaryItem(android.view.ViewGroup, int, Object);
+    method @Deprecated public void setPrimaryItem(android.view.View, int, Object);
     method public void startUpdate(android.view.ViewGroup);
-    method public deprecated void startUpdate(android.view.View);
+    method @Deprecated public void startUpdate(android.view.View);
     method public void unregisterDataSetObserver(android.database.DataSetObserver);
     field public static final int POSITION_NONE = -2; // 0xfffffffe
     field public static final int POSITION_UNCHANGED = -1; // 0xffffffff
@@ -28,90 +29,90 @@
 
   public class PagerTabStrip extends androidx.viewpager.widget.PagerTitleStrip {
     ctor public PagerTabStrip(android.content.Context);
-    ctor public PagerTabStrip(android.content.Context, android.util.AttributeSet);
+    ctor public PagerTabStrip(android.content.Context, android.util.AttributeSet?);
     method public boolean getDrawFullUnderline();
-    method public int getTabIndicatorColor();
-    method public void setBackgroundDrawable(android.graphics.drawable.Drawable);
+    method @ColorInt public int getTabIndicatorColor();
+    method public void setBackgroundDrawable(android.graphics.drawable.Drawable!);
     method public void setDrawFullUnderline(boolean);
-    method public void setTabIndicatorColor(int);
-    method public void setTabIndicatorColorResource(int);
+    method public void setTabIndicatorColor(@ColorInt int);
+    method public void setTabIndicatorColorResource(@ColorRes int);
   }
 
-  public class PagerTitleStrip extends android.view.ViewGroup {
+  @androidx.viewpager.widget.ViewPager.DecorView public class PagerTitleStrip extends android.view.ViewGroup {
     ctor public PagerTitleStrip(android.content.Context);
-    ctor public PagerTitleStrip(android.content.Context, android.util.AttributeSet);
+    ctor public PagerTitleStrip(android.content.Context, android.util.AttributeSet?);
     method public int getTextSpacing();
     method public void setGravity(int);
-    method public void setNonPrimaryAlpha(float);
-    method public void setTextColor(int);
+    method public void setNonPrimaryAlpha(@FloatRange(from=0.0, to=1.0) float);
+    method public void setTextColor(@ColorInt int);
     method public void setTextSize(int, float);
     method public void setTextSpacing(int);
   }
 
   public class ViewPager extends android.view.ViewGroup {
     ctor public ViewPager(android.content.Context);
-    ctor public ViewPager(android.content.Context, android.util.AttributeSet);
+    ctor public ViewPager(android.content.Context, android.util.AttributeSet?);
     method public void addOnAdapterChangeListener(androidx.viewpager.widget.ViewPager.OnAdapterChangeListener);
     method public void addOnPageChangeListener(androidx.viewpager.widget.ViewPager.OnPageChangeListener);
     method public boolean arrowScroll(int);
     method public boolean beginFakeDrag();
-    method protected boolean canScroll(android.view.View, boolean, int, int, int);
+    method protected boolean canScroll(android.view.View!, boolean, int, int, int);
     method public void clearOnPageChangeListeners();
     method public void endFakeDrag();
     method public boolean executeKeyEvent(android.view.KeyEvent);
     method public void fakeDragBy(float);
-    method public androidx.viewpager.widget.PagerAdapter getAdapter();
+    method public androidx.viewpager.widget.PagerAdapter? getAdapter();
     method public int getCurrentItem();
     method public int getOffscreenPageLimit();
     method public int getPageMargin();
     method public boolean isFakeDragging();
-    method protected void onPageScrolled(int, float, int);
-    method public void onRestoreInstanceState(android.os.Parcelable);
-    method public android.os.Parcelable onSaveInstanceState();
+    method @CallSuper protected void onPageScrolled(int, float, int);
+    method public void onRestoreInstanceState(android.os.Parcelable!);
+    method public android.os.Parcelable! onSaveInstanceState();
     method public void removeOnAdapterChangeListener(androidx.viewpager.widget.ViewPager.OnAdapterChangeListener);
     method public void removeOnPageChangeListener(androidx.viewpager.widget.ViewPager.OnPageChangeListener);
-    method public void setAdapter(androidx.viewpager.widget.PagerAdapter);
+    method public void setAdapter(androidx.viewpager.widget.PagerAdapter?);
     method public void setCurrentItem(int);
     method public void setCurrentItem(int, boolean);
     method public void setOffscreenPageLimit(int);
-    method public deprecated void setOnPageChangeListener(androidx.viewpager.widget.ViewPager.OnPageChangeListener);
+    method @Deprecated public void setOnPageChangeListener(androidx.viewpager.widget.ViewPager.OnPageChangeListener!);
     method public void setPageMargin(int);
-    method public void setPageMarginDrawable(android.graphics.drawable.Drawable);
-    method public void setPageMarginDrawable(int);
-    method public void setPageTransformer(boolean, androidx.viewpager.widget.ViewPager.PageTransformer);
-    method public void setPageTransformer(boolean, androidx.viewpager.widget.ViewPager.PageTransformer, int);
+    method public void setPageMarginDrawable(android.graphics.drawable.Drawable?);
+    method public void setPageMarginDrawable(@DrawableRes int);
+    method public void setPageTransformer(boolean, androidx.viewpager.widget.ViewPager.PageTransformer?);
+    method public void setPageTransformer(boolean, androidx.viewpager.widget.ViewPager.PageTransformer?, int);
     field public static final int SCROLL_STATE_DRAGGING = 1; // 0x1
     field public static final int SCROLL_STATE_IDLE = 0; // 0x0
     field public static final int SCROLL_STATE_SETTLING = 2; // 0x2
   }
 
-  public static abstract class ViewPager.DecorView implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE) @java.lang.annotation.Inherited public static @interface ViewPager.DecorView {
   }
 
   public static class ViewPager.LayoutParams extends android.view.ViewGroup.LayoutParams {
     ctor public ViewPager.LayoutParams();
-    ctor public ViewPager.LayoutParams(android.content.Context, android.util.AttributeSet);
+    ctor public ViewPager.LayoutParams(android.content.Context!, android.util.AttributeSet!);
     field public int gravity;
     field public boolean isDecor;
   }
 
-  public static abstract interface ViewPager.OnAdapterChangeListener {
-    method public abstract void onAdapterChanged(androidx.viewpager.widget.ViewPager, androidx.viewpager.widget.PagerAdapter, androidx.viewpager.widget.PagerAdapter);
+  public static interface ViewPager.OnAdapterChangeListener {
+    method public void onAdapterChanged(androidx.viewpager.widget.ViewPager, androidx.viewpager.widget.PagerAdapter?, androidx.viewpager.widget.PagerAdapter?);
   }
 
-  public static abstract interface ViewPager.OnPageChangeListener {
-    method public abstract void onPageScrollStateChanged(int);
-    method public abstract void onPageScrolled(int, float, int);
-    method public abstract void onPageSelected(int);
+  public static interface ViewPager.OnPageChangeListener {
+    method public void onPageScrollStateChanged(int);
+    method public void onPageScrolled(int, float, @Px int);
+    method public void onPageSelected(int);
   }
 
-  public static abstract interface ViewPager.PageTransformer {
-    method public abstract void transformPage(android.view.View, float);
+  public static interface ViewPager.PageTransformer {
+    method public void transformPage(android.view.View, float);
   }
 
   public static class ViewPager.SavedState extends androidx.customview.view.AbsSavedState {
     ctor public ViewPager.SavedState(android.os.Parcelable);
-    field public static final android.os.Parcelable.Creator<androidx.viewpager.widget.ViewPager.SavedState> CREATOR;
+    field public static final android.os.Parcelable.Creator<androidx.viewpager.widget.ViewPager.SavedState>! CREATOR;
   }
 
   public static class ViewPager.SimpleOnPageChangeListener implements androidx.viewpager.widget.ViewPager.OnPageChangeListener {
diff --git a/wear/api/1.0.0.txt b/wear/api/1.0.0.txt
index 7bc1134..80ac820 100644
--- a/wear/api/1.0.0.txt
+++ b/wear/api/1.0.0.txt
@@ -1,11 +1,12 @@
+// Signature format: 2.0
 package androidx.wear.activity {
 
   public class ConfirmationActivity extends android.app.Activity {
     ctor public ConfirmationActivity();
     method protected void onAnimationFinished();
-    method public void onCreate(android.os.Bundle);
-    field public static final java.lang.String EXTRA_ANIMATION_TYPE = "androidx.wear.activity.extra.ANIMATION_TYPE";
-    field public static final java.lang.String EXTRA_MESSAGE = "androidx.wear.activity.extra.MESSAGE";
+    method public void onCreate(android.os.Bundle!);
+    field public static final String EXTRA_ANIMATION_TYPE = "androidx.wear.activity.extra.ANIMATION_TYPE";
+    field public static final String EXTRA_MESSAGE = "androidx.wear.activity.extra.MESSAGE";
     field public static final int FAILURE_ANIMATION = 3; // 0x3
     field public static final int OPEN_ON_PHONE_ANIMATION = 2; // 0x2
     field public static final int SUCCESS_ANIMATION = 1; // 0x1
@@ -15,49 +16,57 @@
 
 package androidx.wear.ambient {
 
-  public final deprecated class AmbientMode extends android.app.Fragment {
-    ctor public AmbientMode();
-    method public static <T extends android.app.Activity> androidx.wear.ambient.AmbientMode.AmbientController attachAmbientSupport(T);
-    field public static final java.lang.String EXTRA_BURN_IN_PROTECTION = "com.google.android.wearable.compat.extra.BURN_IN_PROTECTION";
-    field public static final java.lang.String EXTRA_LOWBIT_AMBIENT = "com.google.android.wearable.compat.extra.LOWBIT_AMBIENT";
-    field public static final java.lang.String FRAGMENT_TAG = "android.support.wearable.ambient.AmbientMode";
+  @Deprecated public final class AmbientMode extends android.app.Fragment {
+    ctor @Deprecated public AmbientMode();
+    method @Deprecated public static <T extends android.app.Activity> androidx.wear.ambient.AmbientMode.AmbientController! attachAmbientSupport(T!);
+    method @Deprecated public void dump(String!, java.io.FileDescriptor!, java.io.PrintWriter!, String[]!);
+    method @Deprecated @CallSuper public void onAttach(android.content.Context!);
+    method @Deprecated @CallSuper public void onCreate(android.os.Bundle!);
+    method @Deprecated @CallSuper public void onDestroy();
+    method @Deprecated @CallSuper public void onDetach();
+    method @Deprecated @CallSuper public void onPause();
+    method @Deprecated @CallSuper public void onResume();
+    method @Deprecated @CallSuper public void onStop();
+    field @Deprecated public static final String EXTRA_BURN_IN_PROTECTION = "com.google.android.wearable.compat.extra.BURN_IN_PROTECTION";
+    field @Deprecated public static final String EXTRA_LOWBIT_AMBIENT = "com.google.android.wearable.compat.extra.LOWBIT_AMBIENT";
+    field @Deprecated public static final String FRAGMENT_TAG = "android.support.wearable.ambient.AmbientMode";
   }
 
-  public static abstract class AmbientMode.AmbientCallback {
-    ctor public AmbientMode.AmbientCallback();
-    method public void onAmbientOffloadInvalidated();
-    method public void onEnterAmbient(android.os.Bundle);
-    method public void onExitAmbient();
-    method public void onUpdateAmbient();
+  @Deprecated public abstract static class AmbientMode.AmbientCallback {
+    ctor @Deprecated public AmbientMode.AmbientCallback();
+    method @Deprecated public void onAmbientOffloadInvalidated();
+    method @Deprecated public void onEnterAmbient(android.os.Bundle!);
+    method @Deprecated public void onExitAmbient();
+    method @Deprecated public void onUpdateAmbient();
   }
 
-  public static abstract interface AmbientMode.AmbientCallbackProvider {
-    method public abstract androidx.wear.ambient.AmbientMode.AmbientCallback getAmbientCallback();
+  @Deprecated public static interface AmbientMode.AmbientCallbackProvider {
+    method @Deprecated public androidx.wear.ambient.AmbientMode.AmbientCallback! getAmbientCallback();
   }
 
-  public final class AmbientMode.AmbientController {
-    method public boolean isAmbient();
-    method public void setAmbientOffloadEnabled(boolean);
+  @Deprecated public final class AmbientMode.AmbientController {
+    method @Deprecated public boolean isAmbient();
+    method @Deprecated public void setAmbientOffloadEnabled(boolean);
   }
 
   public final class AmbientModeSupport extends androidx.fragment.app.Fragment {
     ctor public AmbientModeSupport();
-    method public static <T extends androidx.fragment.app.FragmentActivity> androidx.wear.ambient.AmbientModeSupport.AmbientController attach(T);
-    field public static final java.lang.String EXTRA_BURN_IN_PROTECTION = "com.google.android.wearable.compat.extra.BURN_IN_PROTECTION";
-    field public static final java.lang.String EXTRA_LOWBIT_AMBIENT = "com.google.android.wearable.compat.extra.LOWBIT_AMBIENT";
-    field public static final java.lang.String FRAGMENT_TAG = "android.support.wearable.ambient.AmbientMode";
+    method public static <T extends androidx.fragment.app.FragmentActivity> androidx.wear.ambient.AmbientModeSupport.AmbientController! attach(T!);
+    field public static final String EXTRA_BURN_IN_PROTECTION = "com.google.android.wearable.compat.extra.BURN_IN_PROTECTION";
+    field public static final String EXTRA_LOWBIT_AMBIENT = "com.google.android.wearable.compat.extra.LOWBIT_AMBIENT";
+    field public static final String FRAGMENT_TAG = "android.support.wearable.ambient.AmbientMode";
   }
 
-  public static abstract class AmbientModeSupport.AmbientCallback {
+  public abstract static class AmbientModeSupport.AmbientCallback {
     ctor public AmbientModeSupport.AmbientCallback();
     method public void onAmbientOffloadInvalidated();
-    method public void onEnterAmbient(android.os.Bundle);
+    method public void onEnterAmbient(android.os.Bundle!);
     method public void onExitAmbient();
     method public void onUpdateAmbient();
   }
 
-  public static abstract interface AmbientModeSupport.AmbientCallbackProvider {
-    method public abstract androidx.wear.ambient.AmbientModeSupport.AmbientCallback getAmbientCallback();
+  public static interface AmbientModeSupport.AmbientCallbackProvider {
+    method public androidx.wear.ambient.AmbientModeSupport.AmbientCallback! getAmbientCallback();
   }
 
   public final class AmbientModeSupport.AmbientController {
@@ -70,30 +79,30 @@
 package androidx.wear.utils {
 
   public class MetadataConstants {
-    method public static int getPreviewDrawableResourceId(android.content.Context, boolean);
-    method public static boolean isNotificationBridgingEnabled(android.content.Context);
-    method public static boolean isStandalone(android.content.Context);
-    field public static final java.lang.String NOTIFICATION_BRIDGE_MODE_BRIDGING = "BRIDGING";
-    field public static final java.lang.String NOTIFICATION_BRIDGE_MODE_METADATA_NAME = "com.google.android.wearable.notificationBridgeMode";
-    field public static final java.lang.String NOTIFICATION_BRIDGE_MODE_NO_BRIDGING = "NO_BRIDGING";
-    field public static final java.lang.String STANDALONE_METADATA_NAME = "com.google.android.wearable.standalone";
-    field public static final java.lang.String WATCH_FACE_PREVIEW_CIRCULAR_METADATA_NAME = "com.google.android.wearable.watchface.preview_circular";
-    field public static final java.lang.String WATCH_FACE_PREVIEW_METADATA_NAME = "com.google.android.wearable.watchface.preview";
+    method public static int getPreviewDrawableResourceId(android.content.Context!, boolean);
+    method public static boolean isNotificationBridgingEnabled(android.content.Context!);
+    method public static boolean isStandalone(android.content.Context!);
+    field public static final String NOTIFICATION_BRIDGE_MODE_BRIDGING = "BRIDGING";
+    field public static final String NOTIFICATION_BRIDGE_MODE_METADATA_NAME = "com.google.android.wearable.notificationBridgeMode";
+    field public static final String NOTIFICATION_BRIDGE_MODE_NO_BRIDGING = "NO_BRIDGING";
+    field public static final String STANDALONE_METADATA_NAME = "com.google.android.wearable.standalone";
+    field public static final String WATCH_FACE_PREVIEW_CIRCULAR_METADATA_NAME = "com.google.android.wearable.watchface.preview_circular";
+    field public static final String WATCH_FACE_PREVIEW_METADATA_NAME = "com.google.android.wearable.watchface.preview";
   }
 
 }
 
 package androidx.wear.widget {
 
-  public class BoxInsetLayout extends android.view.ViewGroup {
+  @UiThread public class BoxInsetLayout extends android.view.ViewGroup {
     ctor public BoxInsetLayout(android.content.Context);
-    ctor public BoxInsetLayout(android.content.Context, android.util.AttributeSet);
-    ctor public BoxInsetLayout(android.content.Context, android.util.AttributeSet, int);
-    method public androidx.wear.widget.BoxInsetLayout.LayoutParams generateLayoutParams(android.util.AttributeSet);
+    ctor public BoxInsetLayout(android.content.Context, android.util.AttributeSet?);
+    ctor public BoxInsetLayout(android.content.Context, android.util.AttributeSet?, @StyleRes int);
+    method public androidx.wear.widget.BoxInsetLayout.LayoutParams! generateLayoutParams(android.util.AttributeSet!);
   }
 
   public static class BoxInsetLayout.LayoutParams extends android.widget.FrameLayout.LayoutParams {
-    ctor public BoxInsetLayout.LayoutParams(android.content.Context, android.util.AttributeSet);
+    ctor public BoxInsetLayout.LayoutParams(android.content.Context, android.util.AttributeSet?);
     ctor public BoxInsetLayout.LayoutParams(int, int);
     ctor public BoxInsetLayout.LayoutParams(int, int, int);
     ctor public BoxInsetLayout.LayoutParams(int, int, int, int);
@@ -111,22 +120,22 @@
   }
 
   public class CircularProgressLayout extends android.widget.FrameLayout {
-    ctor public CircularProgressLayout(android.content.Context);
-    ctor public CircularProgressLayout(android.content.Context, android.util.AttributeSet);
-    ctor public CircularProgressLayout(android.content.Context, android.util.AttributeSet, int);
-    ctor public CircularProgressLayout(android.content.Context, android.util.AttributeSet, int, int);
-    method public int getBackgroundColor();
-    method public int[] getColorSchemeColors();
-    method public androidx.wear.widget.CircularProgressLayout.OnTimerFinishedListener getOnTimerFinishedListener();
+    ctor public CircularProgressLayout(android.content.Context!);
+    ctor public CircularProgressLayout(android.content.Context!, android.util.AttributeSet!);
+    ctor public CircularProgressLayout(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public CircularProgressLayout(android.content.Context!, android.util.AttributeSet!, int, int);
+    method @ColorInt public int getBackgroundColor();
+    method public int[]! getColorSchemeColors();
+    method public androidx.wear.widget.CircularProgressLayout.OnTimerFinishedListener? getOnTimerFinishedListener();
     method public androidx.swiperefreshlayout.widget.CircularProgressDrawable getProgressDrawable();
     method public float getStartingRotation();
     method public float getStrokeWidth();
     method public long getTotalTime();
     method public boolean isIndeterminate();
     method public boolean isTimerRunning();
-    method public void setColorSchemeColors(int...);
+    method public void setColorSchemeColors(int...!);
     method public void setIndeterminate(boolean);
-    method public void setOnTimerFinishedListener(androidx.wear.widget.CircularProgressLayout.OnTimerFinishedListener);
+    method public void setOnTimerFinishedListener(androidx.wear.widget.CircularProgressLayout.OnTimerFinishedListener?);
     method public void setStartingRotation(float);
     method public void setStrokeWidth(float);
     method public void setTotalTime(long);
@@ -134,86 +143,86 @@
     method public void stopTimer();
   }
 
-  public static abstract interface CircularProgressLayout.OnTimerFinishedListener {
-    method public abstract void onTimerFinished(androidx.wear.widget.CircularProgressLayout);
+  public static interface CircularProgressLayout.OnTimerFinishedListener {
+    method public void onTimerFinished(androidx.wear.widget.CircularProgressLayout!);
   }
 
   public class ConfirmationOverlay {
     ctor public ConfirmationOverlay();
-    method public androidx.wear.widget.ConfirmationOverlay setDuration(int);
-    method public androidx.wear.widget.ConfirmationOverlay setFinishedAnimationListener(androidx.wear.widget.ConfirmationOverlay.OnAnimationFinishedListener);
-    method public androidx.wear.widget.ConfirmationOverlay setMessage(java.lang.String);
-    method public androidx.wear.widget.ConfirmationOverlay setType(int);
-    method public void showAbove(android.view.View);
-    method public void showOn(android.app.Activity);
+    method public androidx.wear.widget.ConfirmationOverlay! setDuration(int);
+    method public androidx.wear.widget.ConfirmationOverlay! setFinishedAnimationListener(androidx.wear.widget.ConfirmationOverlay.OnAnimationFinishedListener?);
+    method public androidx.wear.widget.ConfirmationOverlay! setMessage(String!);
+    method public androidx.wear.widget.ConfirmationOverlay! setType(@androidx.wear.widget.ConfirmationOverlay.OverlayType int);
+    method @MainThread public void showAbove(android.view.View!);
+    method @MainThread public void showOn(android.app.Activity!);
     field public static final int DEFAULT_ANIMATION_DURATION_MS = 1000; // 0x3e8
     field public static final int FAILURE_ANIMATION = 1; // 0x1
     field public static final int OPEN_ON_PHONE_ANIMATION = 2; // 0x2
     field public static final int SUCCESS_ANIMATION = 0; // 0x0
   }
 
-  public static abstract interface ConfirmationOverlay.OnAnimationFinishedListener {
-    method public abstract void onAnimationFinished();
+  public static interface ConfirmationOverlay.OnAnimationFinishedListener {
+    method public void onAnimationFinished();
   }
 
-  public static abstract class ConfirmationOverlay.OverlayType implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @IntDef({androidx.wear.widget.ConfirmationOverlay.SUCCESS_ANIMATION, androidx.wear.widget.ConfirmationOverlay.FAILURE_ANIMATION, androidx.wear.widget.ConfirmationOverlay.OPEN_ON_PHONE_ANIMATION}) public static @interface ConfirmationOverlay.OverlayType {
   }
 
   public class CurvingLayoutCallback extends androidx.wear.widget.WearableLinearLayoutManager.LayoutCallback {
-    ctor public CurvingLayoutCallback(android.content.Context);
-    method public void adjustAnchorOffsetXY(android.view.View, float[]);
-    method public void onLayoutFinished(android.view.View, androidx.recyclerview.widget.RecyclerView);
+    ctor public CurvingLayoutCallback(android.content.Context!);
+    method public void adjustAnchorOffsetXY(android.view.View!, float[]!);
+    method public void onLayoutFinished(android.view.View!, androidx.recyclerview.widget.RecyclerView!);
   }
 
   public class RoundedDrawable extends android.graphics.drawable.Drawable {
     ctor public RoundedDrawable();
     method public void draw(android.graphics.Canvas);
-    method public int getBackgroundColor();
-    method public android.graphics.drawable.Drawable getDrawable();
+    method @ColorInt public int getBackgroundColor();
+    method public android.graphics.drawable.Drawable? getDrawable();
     method public int getOpacity();
     method public int getRadius();
     method public boolean isClipEnabled();
     method public void setAlpha(int);
-    method public void setBackgroundColor(int);
+    method public void setBackgroundColor(@ColorInt int);
     method public void setClipEnabled(boolean);
-    method public void setColorFilter(android.graphics.ColorFilter);
-    method public void setDrawable(android.graphics.drawable.Drawable);
+    method public void setColorFilter(android.graphics.ColorFilter!);
+    method public void setDrawable(android.graphics.drawable.Drawable?);
     method public void setRadius(int);
   }
 
-  public class SwipeDismissFrameLayout extends android.widget.FrameLayout {
-    ctor public SwipeDismissFrameLayout(android.content.Context);
-    ctor public SwipeDismissFrameLayout(android.content.Context, android.util.AttributeSet);
-    ctor public SwipeDismissFrameLayout(android.content.Context, android.util.AttributeSet, int);
-    ctor public SwipeDismissFrameLayout(android.content.Context, android.util.AttributeSet, int, int);
-    method public void addCallback(androidx.wear.widget.SwipeDismissFrameLayout.Callback);
-    method public void removeCallback(androidx.wear.widget.SwipeDismissFrameLayout.Callback);
+  @UiThread public class SwipeDismissFrameLayout extends android.widget.FrameLayout {
+    ctor public SwipeDismissFrameLayout(android.content.Context!);
+    ctor public SwipeDismissFrameLayout(android.content.Context!, android.util.AttributeSet!);
+    ctor public SwipeDismissFrameLayout(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public SwipeDismissFrameLayout(android.content.Context!, android.util.AttributeSet!, int, int);
+    method public void addCallback(androidx.wear.widget.SwipeDismissFrameLayout.Callback!);
+    method public void removeCallback(androidx.wear.widget.SwipeDismissFrameLayout.Callback!);
   }
 
-  public static abstract class SwipeDismissFrameLayout.Callback {
+  @UiThread public abstract static class SwipeDismissFrameLayout.Callback {
     ctor public SwipeDismissFrameLayout.Callback();
-    method public void onDismissed(androidx.wear.widget.SwipeDismissFrameLayout);
-    method public void onSwipeCanceled(androidx.wear.widget.SwipeDismissFrameLayout);
-    method public void onSwipeStarted(androidx.wear.widget.SwipeDismissFrameLayout);
+    method public void onDismissed(androidx.wear.widget.SwipeDismissFrameLayout!);
+    method public void onSwipeCanceled(androidx.wear.widget.SwipeDismissFrameLayout!);
+    method public void onSwipeStarted(androidx.wear.widget.SwipeDismissFrameLayout!);
   }
 
   public class WearableLinearLayoutManager extends androidx.recyclerview.widget.LinearLayoutManager {
-    ctor public WearableLinearLayoutManager(android.content.Context, androidx.wear.widget.WearableLinearLayoutManager.LayoutCallback);
-    ctor public WearableLinearLayoutManager(android.content.Context);
-    method public androidx.wear.widget.WearableLinearLayoutManager.LayoutCallback getLayoutCallback();
-    method public void setLayoutCallback(androidx.wear.widget.WearableLinearLayoutManager.LayoutCallback);
+    ctor public WearableLinearLayoutManager(android.content.Context!, androidx.wear.widget.WearableLinearLayoutManager.LayoutCallback!);
+    ctor public WearableLinearLayoutManager(android.content.Context!);
+    method public androidx.wear.widget.WearableLinearLayoutManager.LayoutCallback? getLayoutCallback();
+    method public void setLayoutCallback(androidx.wear.widget.WearableLinearLayoutManager.LayoutCallback?);
   }
 
-  public static abstract class WearableLinearLayoutManager.LayoutCallback {
+  public abstract static class WearableLinearLayoutManager.LayoutCallback {
     ctor public WearableLinearLayoutManager.LayoutCallback();
-    method public abstract void onLayoutFinished(android.view.View, androidx.recyclerview.widget.RecyclerView);
+    method public abstract void onLayoutFinished(android.view.View!, androidx.recyclerview.widget.RecyclerView!);
   }
 
   public class WearableRecyclerView extends androidx.recyclerview.widget.RecyclerView {
-    ctor public WearableRecyclerView(android.content.Context);
-    ctor public WearableRecyclerView(android.content.Context, android.util.AttributeSet);
-    ctor public WearableRecyclerView(android.content.Context, android.util.AttributeSet, int);
-    ctor public WearableRecyclerView(android.content.Context, android.util.AttributeSet, int, int);
+    ctor public WearableRecyclerView(android.content.Context!);
+    ctor public WearableRecyclerView(android.content.Context!, android.util.AttributeSet?);
+    ctor public WearableRecyclerView(android.content.Context!, android.util.AttributeSet?, int);
+    ctor public WearableRecyclerView(android.content.Context!, android.util.AttributeSet?, int, int);
     method public float getBezelFraction();
     method public float getScrollDegreesPerScreen();
     method public boolean isCircularScrollingGestureEnabled();
@@ -229,13 +238,13 @@
 package androidx.wear.widget.drawer {
 
   public class WearableActionDrawerView extends androidx.wear.widget.drawer.WearableDrawerView {
-    ctor public WearableActionDrawerView(android.content.Context);
-    ctor public WearableActionDrawerView(android.content.Context, android.util.AttributeSet);
-    ctor public WearableActionDrawerView(android.content.Context, android.util.AttributeSet, int);
-    ctor public WearableActionDrawerView(android.content.Context, android.util.AttributeSet, int, int);
-    method public android.view.Menu getMenu();
-    method public void setOnMenuItemClickListener(android.view.MenuItem.OnMenuItemClickListener);
-    method public void setTitle(java.lang.CharSequence);
+    ctor public WearableActionDrawerView(android.content.Context!);
+    ctor public WearableActionDrawerView(android.content.Context!, android.util.AttributeSet!);
+    ctor public WearableActionDrawerView(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public WearableActionDrawerView(android.content.Context!, android.util.AttributeSet!, int, int);
+    method public android.view.Menu! getMenu();
+    method public void setOnMenuItemClickListener(android.view.MenuItem.OnMenuItemClickListener!);
+    method public void setTitle(CharSequence?);
   }
 
   public class WearableDrawerController {
@@ -245,29 +254,29 @@
   }
 
   public class WearableDrawerLayout extends android.widget.FrameLayout implements androidx.core.view.NestedScrollingParent android.view.View.OnLayoutChangeListener {
-    ctor public WearableDrawerLayout(android.content.Context);
-    ctor public WearableDrawerLayout(android.content.Context, android.util.AttributeSet);
-    ctor public WearableDrawerLayout(android.content.Context, android.util.AttributeSet, int);
-    ctor public WearableDrawerLayout(android.content.Context, android.util.AttributeSet, int, int);
-    method public void onFlingComplete(android.view.View);
-    method public void onLayoutChange(android.view.View, int, int, int, int, int, int, int, int);
-    method public void setDrawerStateCallback(androidx.wear.widget.drawer.WearableDrawerLayout.DrawerStateCallback);
+    ctor public WearableDrawerLayout(android.content.Context!);
+    ctor public WearableDrawerLayout(android.content.Context!, android.util.AttributeSet!);
+    ctor public WearableDrawerLayout(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public WearableDrawerLayout(android.content.Context!, android.util.AttributeSet!, int, int);
+    method public void onFlingComplete(android.view.View!);
+    method public void onLayoutChange(android.view.View!, int, int, int, int, int, int, int, int);
+    method public void setDrawerStateCallback(androidx.wear.widget.drawer.WearableDrawerLayout.DrawerStateCallback!);
   }
 
   public static class WearableDrawerLayout.DrawerStateCallback {
     ctor public WearableDrawerLayout.DrawerStateCallback();
-    method public void onDrawerClosed(androidx.wear.widget.drawer.WearableDrawerLayout, androidx.wear.widget.drawer.WearableDrawerView);
-    method public void onDrawerOpened(androidx.wear.widget.drawer.WearableDrawerLayout, androidx.wear.widget.drawer.WearableDrawerView);
-    method public void onDrawerStateChanged(androidx.wear.widget.drawer.WearableDrawerLayout, int);
+    method public void onDrawerClosed(androidx.wear.widget.drawer.WearableDrawerLayout!, androidx.wear.widget.drawer.WearableDrawerView!);
+    method public void onDrawerOpened(androidx.wear.widget.drawer.WearableDrawerLayout!, androidx.wear.widget.drawer.WearableDrawerView!);
+    method public void onDrawerStateChanged(androidx.wear.widget.drawer.WearableDrawerLayout!, int);
   }
 
   public class WearableDrawerView extends android.widget.FrameLayout {
-    ctor public WearableDrawerView(android.content.Context);
-    ctor public WearableDrawerView(android.content.Context, android.util.AttributeSet);
-    ctor public WearableDrawerView(android.content.Context, android.util.AttributeSet, int);
-    ctor public WearableDrawerView(android.content.Context, android.util.AttributeSet, int, int);
-    method public androidx.wear.widget.drawer.WearableDrawerController getController();
-    method public android.view.View getDrawerContent();
+    ctor public WearableDrawerView(android.content.Context!);
+    ctor public WearableDrawerView(android.content.Context!, android.util.AttributeSet!);
+    ctor public WearableDrawerView(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public WearableDrawerView(android.content.Context!, android.util.AttributeSet!, int, int);
+    method public androidx.wear.widget.drawer.WearableDrawerController! getController();
+    method public android.view.View? getDrawerContent();
     method public int getDrawerState();
     method public boolean isAutoPeekEnabled();
     method public boolean isClosed();
@@ -280,13 +289,13 @@
     method public void onDrawerClosed();
     method public void onDrawerOpened();
     method public void onDrawerStateChanged(int);
-    method public void onPeekContainerClicked(android.view.View);
-    method public void setDrawerContent(android.view.View);
+    method public void onPeekContainerClicked(android.view.View!);
+    method public void setDrawerContent(android.view.View?);
     method public void setIsAutoPeekEnabled(boolean);
     method public void setIsLocked(boolean);
     method public void setLockedWhenClosed(boolean);
     method public void setOpenOnlyAtTopEnabled(boolean);
-    method public void setPeekContent(android.view.View);
+    method public void setPeekContent(android.view.View!);
     method public void setPeekOnScrollDownEnabled(boolean);
     field public static final int STATE_DRAGGING = 1; // 0x1
     field public static final int STATE_IDLE = 0; // 0x0
@@ -294,28 +303,28 @@
   }
 
   public class WearableNavigationDrawerView extends androidx.wear.widget.drawer.WearableDrawerView {
-    ctor public WearableNavigationDrawerView(android.content.Context);
-    ctor public WearableNavigationDrawerView(android.content.Context, android.util.AttributeSet);
-    ctor public WearableNavigationDrawerView(android.content.Context, android.util.AttributeSet, int);
-    ctor public WearableNavigationDrawerView(android.content.Context, android.util.AttributeSet, int, int);
-    method public void addOnItemSelectedListener(androidx.wear.widget.drawer.WearableNavigationDrawerView.OnItemSelectedListener);
+    ctor public WearableNavigationDrawerView(android.content.Context!);
+    ctor public WearableNavigationDrawerView(android.content.Context!, android.util.AttributeSet!);
+    ctor public WearableNavigationDrawerView(android.content.Context!, android.util.AttributeSet!, int);
+    ctor public WearableNavigationDrawerView(android.content.Context!, android.util.AttributeSet!, int, int);
+    method public void addOnItemSelectedListener(androidx.wear.widget.drawer.WearableNavigationDrawerView.OnItemSelectedListener!);
     method public int getNavigationStyle();
-    method public void removeOnItemSelectedListener(androidx.wear.widget.drawer.WearableNavigationDrawerView.OnItemSelectedListener);
-    method public void setAdapter(androidx.wear.widget.drawer.WearableNavigationDrawerView.WearableNavigationDrawerAdapter);
+    method public void removeOnItemSelectedListener(androidx.wear.widget.drawer.WearableNavigationDrawerView.OnItemSelectedListener!);
+    method public void setAdapter(androidx.wear.widget.drawer.WearableNavigationDrawerView.WearableNavigationDrawerAdapter!);
     method public void setCurrentItem(int, boolean);
     field public static final int MULTI_PAGE = 1; // 0x1
     field public static final int SINGLE_PAGE = 0; // 0x0
   }
 
-  public static abstract interface WearableNavigationDrawerView.OnItemSelectedListener {
-    method public abstract void onItemSelected(int);
+  public static interface WearableNavigationDrawerView.OnItemSelectedListener {
+    method public void onItemSelected(int);
   }
 
-  public static abstract class WearableNavigationDrawerView.WearableNavigationDrawerAdapter {
+  public abstract static class WearableNavigationDrawerView.WearableNavigationDrawerAdapter {
     ctor public WearableNavigationDrawerView.WearableNavigationDrawerAdapter();
     method public abstract int getCount();
-    method public abstract android.graphics.drawable.Drawable getItemDrawable(int);
-    method public abstract java.lang.CharSequence getItemText(int);
+    method public abstract android.graphics.drawable.Drawable! getItemDrawable(int);
+    method public abstract CharSequence! getItemText(int);
     method public void notifyDataSetChanged();
   }
 
diff --git a/webkit/api/current.txt b/webkit/api/current.txt
index 708b935..487b281 100644
--- a/webkit/api/current.txt
+++ b/webkit/api/current.txt
@@ -1,127 +1,128 @@
+// Signature format: 2.0
 package androidx.webkit {
 
   public abstract class SafeBrowsingResponseCompat {
-    method public abstract void backToSafety(boolean);
-    method public abstract void proceed(boolean);
-    method public abstract void showInterstitial(boolean);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.SAFE_BROWSING_RESPONSE_BACK_TO_SAFETY, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public abstract void backToSafety(boolean);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.SAFE_BROWSING_RESPONSE_PROCEED, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public abstract void proceed(boolean);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.SAFE_BROWSING_RESPONSE_SHOW_INTERSTITIAL, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public abstract void showInterstitial(boolean);
   }
 
   public abstract class ServiceWorkerClientCompat {
     ctor public ServiceWorkerClientCompat();
-    method public abstract android.webkit.WebResourceResponse shouldInterceptRequest(android.webkit.WebResourceRequest);
+    method public abstract android.webkit.WebResourceResponse! shouldInterceptRequest(android.webkit.WebResourceRequest);
   }
 
   public abstract class ServiceWorkerControllerCompat {
-    method public static androidx.webkit.ServiceWorkerControllerCompat getInstance();
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.SERVICE_WORKER_BASIC_USAGE, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static androidx.webkit.ServiceWorkerControllerCompat getInstance();
     method public abstract androidx.webkit.ServiceWorkerWebSettingsCompat getServiceWorkerWebSettings();
-    method public abstract void setServiceWorkerClient(androidx.webkit.ServiceWorkerClientCompat);
+    method public abstract void setServiceWorkerClient(androidx.webkit.ServiceWorkerClientCompat?);
   }
 
   public abstract class ServiceWorkerWebSettingsCompat {
-    method public abstract boolean getAllowContentAccess();
-    method public abstract boolean getAllowFileAccess();
-    method public abstract boolean getBlockNetworkLoads();
-    method public abstract int getCacheMode();
-    method public abstract void setAllowContentAccess(boolean);
-    method public abstract void setAllowFileAccess(boolean);
-    method public abstract void setBlockNetworkLoads(boolean);
-    method public abstract void setCacheMode(int);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.SERVICE_WORKER_CONTENT_ACCESS, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public abstract boolean getAllowContentAccess();
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.SERVICE_WORKER_FILE_ACCESS, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public abstract boolean getAllowFileAccess();
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.SERVICE_WORKER_BLOCK_NETWORK_LOADS, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public abstract boolean getBlockNetworkLoads();
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.SERVICE_WORKER_CACHE_MODE, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public abstract int getCacheMode();
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.SERVICE_WORKER_CONTENT_ACCESS, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public abstract void setAllowContentAccess(boolean);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.SERVICE_WORKER_FILE_ACCESS, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public abstract void setAllowFileAccess(boolean);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.SERVICE_WORKER_BLOCK_NETWORK_LOADS, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public abstract void setBlockNetworkLoads(boolean);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.SERVICE_WORKER_CACHE_MODE, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public abstract void setCacheMode(int);
   }
 
   public class WebMessageCompat {
-    ctor public WebMessageCompat(java.lang.String);
-    ctor public WebMessageCompat(java.lang.String, androidx.webkit.WebMessagePortCompat[]);
-    method public java.lang.String getData();
-    method public androidx.webkit.WebMessagePortCompat[] getPorts();
+    ctor public WebMessageCompat(String?);
+    ctor public WebMessageCompat(String?, androidx.webkit.WebMessagePortCompat[]?);
+    method public String? getData();
+    method public androidx.webkit.WebMessagePortCompat[]? getPorts();
   }
 
   public abstract class WebMessagePortCompat {
-    method public abstract void close();
-    method public abstract void postMessage(androidx.webkit.WebMessageCompat);
-    method public abstract void setWebMessageCallback(androidx.webkit.WebMessagePortCompat.WebMessageCallbackCompat);
-    method public abstract void setWebMessageCallback(android.os.Handler, androidx.webkit.WebMessagePortCompat.WebMessageCallbackCompat);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.WEB_MESSAGE_PORT_CLOSE, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public abstract void close();
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.WEB_MESSAGE_PORT_POST_MESSAGE, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public abstract void postMessage(androidx.webkit.WebMessageCompat);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.WEB_MESSAGE_PORT_SET_MESSAGE_CALLBACK, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public abstract void setWebMessageCallback(androidx.webkit.WebMessagePortCompat.WebMessageCallbackCompat);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.WEB_MESSAGE_PORT_SET_MESSAGE_CALLBACK, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public abstract void setWebMessageCallback(android.os.Handler?, androidx.webkit.WebMessagePortCompat.WebMessageCallbackCompat);
   }
 
-  public static abstract class WebMessagePortCompat.WebMessageCallbackCompat {
+  public abstract static class WebMessagePortCompat.WebMessageCallbackCompat {
     ctor public WebMessagePortCompat.WebMessageCallbackCompat();
-    method public void onMessage(androidx.webkit.WebMessagePortCompat, androidx.webkit.WebMessageCompat);
+    method public void onMessage(androidx.webkit.WebMessagePortCompat, androidx.webkit.WebMessageCompat?);
   }
 
   public abstract class WebResourceErrorCompat {
-    method public abstract java.lang.CharSequence getDescription();
-    method public abstract int getErrorCode();
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.WEB_RESOURCE_ERROR_GET_DESCRIPTION, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public abstract CharSequence getDescription();
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.WEB_RESOURCE_ERROR_GET_CODE, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public abstract int getErrorCode();
   }
 
   public class WebResourceRequestCompat {
-    method public static boolean isRedirect(android.webkit.WebResourceRequest);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.WEB_RESOURCE_REQUEST_IS_REDIRECT, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static boolean isRedirect(android.webkit.WebResourceRequest);
   }
 
   public class WebSettingsCompat {
-    method public static int getDisabledActionModeMenuItems(android.webkit.WebSettings);
-    method public static boolean getOffscreenPreRaster(android.webkit.WebSettings);
-    method public static boolean getSafeBrowsingEnabled(android.webkit.WebSettings);
-    method public static void setDisabledActionModeMenuItems(android.webkit.WebSettings, int);
-    method public static void setOffscreenPreRaster(android.webkit.WebSettings, boolean);
-    method public static void setSafeBrowsingEnabled(android.webkit.WebSettings, boolean);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.DISABLED_ACTION_MODE_MENU_ITEMS, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static int getDisabledActionModeMenuItems(android.webkit.WebSettings!);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.OFF_SCREEN_PRERASTER, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static boolean getOffscreenPreRaster(android.webkit.WebSettings!);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.SAFE_BROWSING_ENABLE, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static boolean getSafeBrowsingEnabled(android.webkit.WebSettings!);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.DISABLED_ACTION_MODE_MENU_ITEMS, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static void setDisabledActionModeMenuItems(android.webkit.WebSettings!, int);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.OFF_SCREEN_PRERASTER, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static void setOffscreenPreRaster(android.webkit.WebSettings!, boolean);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.SAFE_BROWSING_ENABLE, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static void setSafeBrowsingEnabled(android.webkit.WebSettings!, boolean);
   }
 
   public class WebViewClientCompat extends android.webkit.WebViewClient {
     ctor public WebViewClientCompat();
-    method public final void onReceivedError(android.webkit.WebView, android.webkit.WebResourceRequest, android.webkit.WebResourceError);
-    method public void onReceivedError(android.webkit.WebView, android.webkit.WebResourceRequest, androidx.webkit.WebResourceErrorCompat);
-    method public final void onSafeBrowsingHit(android.webkit.WebView, android.webkit.WebResourceRequest, int, android.webkit.SafeBrowsingResponse);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RequiresApi(23) public final void onReceivedError(android.webkit.WebView, android.webkit.WebResourceRequest, android.webkit.WebResourceError);
+    method @RequiresApi(21) public void onReceivedError(android.webkit.WebView, android.webkit.WebResourceRequest, androidx.webkit.WebResourceErrorCompat);
+    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RequiresApi(27) public final void onSafeBrowsingHit(android.webkit.WebView, android.webkit.WebResourceRequest, int, android.webkit.SafeBrowsingResponse);
     method public void onSafeBrowsingHit(android.webkit.WebView, android.webkit.WebResourceRequest, int, androidx.webkit.SafeBrowsingResponseCompat);
   }
 
   public class WebViewCompat {
-    method public static androidx.webkit.WebMessagePortCompat[] createWebMessageChannel(android.webkit.WebView);
-    method public static android.content.pm.PackageInfo getCurrentWebViewPackage(android.content.Context);
-    method public static android.net.Uri getSafeBrowsingPrivacyPolicyUrl();
-    method public static android.webkit.WebChromeClient getWebChromeClient(android.webkit.WebView);
-    method public static android.webkit.WebViewClient getWebViewClient(android.webkit.WebView);
-    method public static void postVisualStateCallback(android.webkit.WebView, long, androidx.webkit.WebViewCompat.VisualStateCallback);
-    method public static void postWebMessage(android.webkit.WebView, androidx.webkit.WebMessageCompat, android.net.Uri);
-    method public static void setSafeBrowsingWhitelist(java.util.List<java.lang.String>, android.webkit.ValueCallback<java.lang.Boolean>);
-    method public static void startSafeBrowsing(android.content.Context, android.webkit.ValueCallback<java.lang.Boolean>);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.CREATE_WEB_MESSAGE_CHANNEL, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static androidx.webkit.WebMessagePortCompat[] createWebMessageChannel(android.webkit.WebView);
+    method public static android.content.pm.PackageInfo? getCurrentWebViewPackage(android.content.Context);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.SAFE_BROWSING_PRIVACY_POLICY_URL, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static android.net.Uri getSafeBrowsingPrivacyPolicyUrl();
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.GET_WEB_CHROME_CLIENT, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static android.webkit.WebChromeClient? getWebChromeClient(android.webkit.WebView);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.GET_WEB_VIEW_CLIENT, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static android.webkit.WebViewClient getWebViewClient(android.webkit.WebView);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.VISUAL_STATE_CALLBACK, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static void postVisualStateCallback(android.webkit.WebView, long, androidx.webkit.WebViewCompat.VisualStateCallback);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.POST_WEB_MESSAGE, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static void postWebMessage(android.webkit.WebView, androidx.webkit.WebMessageCompat, android.net.Uri);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.SAFE_BROWSING_WHITELIST, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static void setSafeBrowsingWhitelist(java.util.List<java.lang.String>, android.webkit.ValueCallback<java.lang.Boolean>?);
+    method @RequiresFeature(name=androidx.webkit.WebViewFeature.START_SAFE_BROWSING, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static void startSafeBrowsing(android.content.Context, android.webkit.ValueCallback<java.lang.Boolean>?);
   }
 
-  public static abstract interface WebViewCompat.VisualStateCallback {
-    method public abstract void onComplete(long);
+  public static interface WebViewCompat.VisualStateCallback {
+    method public void onComplete(long);
   }
 
   public class WebViewFeature {
-    method public static boolean isFeatureSupported(java.lang.String);
-    field public static final java.lang.String CREATE_WEB_MESSAGE_CHANNEL = "CREATE_WEB_MESSAGE_CHANNEL";
-    field public static final java.lang.String DISABLED_ACTION_MODE_MENU_ITEMS = "DISABLED_ACTION_MODE_MENU_ITEMS";
-    field public static final java.lang.String GET_WEB_CHROME_CLIENT = "GET_WEB_CHROME_CLIENT";
-    field public static final java.lang.String GET_WEB_VIEW_CLIENT = "GET_WEB_VIEW_CLIENT";
-    field public static final java.lang.String OFF_SCREEN_PRERASTER = "OFF_SCREEN_PRERASTER";
-    field public static final java.lang.String POST_WEB_MESSAGE = "POST_WEB_MESSAGE";
-    field public static final java.lang.String RECEIVE_HTTP_ERROR = "RECEIVE_HTTP_ERROR";
-    field public static final java.lang.String RECEIVE_WEB_RESOURCE_ERROR = "RECEIVE_WEB_RESOURCE_ERROR";
-    field public static final java.lang.String SAFE_BROWSING_ENABLE = "SAFE_BROWSING_ENABLE";
-    field public static final java.lang.String SAFE_BROWSING_HIT = "SAFE_BROWSING_HIT";
-    field public static final java.lang.String SAFE_BROWSING_PRIVACY_POLICY_URL = "SAFE_BROWSING_PRIVACY_POLICY_URL";
-    field public static final java.lang.String SAFE_BROWSING_RESPONSE_BACK_TO_SAFETY = "SAFE_BROWSING_RESPONSE_BACK_TO_SAFETY";
-    field public static final java.lang.String SAFE_BROWSING_RESPONSE_PROCEED = "SAFE_BROWSING_RESPONSE_PROCEED";
-    field public static final java.lang.String SAFE_BROWSING_RESPONSE_SHOW_INTERSTITIAL = "SAFE_BROWSING_RESPONSE_SHOW_INTERSTITIAL";
-    field public static final java.lang.String SAFE_BROWSING_WHITELIST = "SAFE_BROWSING_WHITELIST";
-    field public static final java.lang.String SERVICE_WORKER_BASIC_USAGE = "SERVICE_WORKER_BASIC_USAGE";
-    field public static final java.lang.String SERVICE_WORKER_BLOCK_NETWORK_LOADS = "SERVICE_WORKER_BLOCK_NETWORK_LOADS";
-    field public static final java.lang.String SERVICE_WORKER_CACHE_MODE = "SERVICE_WORKER_CACHE_MODE";
-    field public static final java.lang.String SERVICE_WORKER_CONTENT_ACCESS = "SERVICE_WORKER_CONTENT_ACCESS";
-    field public static final java.lang.String SERVICE_WORKER_FILE_ACCESS = "SERVICE_WORKER_FILE_ACCESS";
-    field public static final java.lang.String SERVICE_WORKER_SHOULD_INTERCEPT_REQUEST = "SERVICE_WORKER_SHOULD_INTERCEPT_REQUEST";
-    field public static final java.lang.String SHOULD_OVERRIDE_WITH_REDIRECTS = "SHOULD_OVERRIDE_WITH_REDIRECTS";
-    field public static final java.lang.String START_SAFE_BROWSING = "START_SAFE_BROWSING";
-    field public static final java.lang.String VISUAL_STATE_CALLBACK = "VISUAL_STATE_CALLBACK";
-    field public static final java.lang.String WEB_MESSAGE_CALLBACK_ON_MESSAGE = "WEB_MESSAGE_CALLBACK_ON_MESSAGE";
-    field public static final java.lang.String WEB_MESSAGE_PORT_CLOSE = "WEB_MESSAGE_PORT_CLOSE";
-    field public static final java.lang.String WEB_MESSAGE_PORT_POST_MESSAGE = "WEB_MESSAGE_PORT_POST_MESSAGE";
-    field public static final java.lang.String WEB_MESSAGE_PORT_SET_MESSAGE_CALLBACK = "WEB_MESSAGE_PORT_SET_MESSAGE_CALLBACK";
-    field public static final java.lang.String WEB_RESOURCE_ERROR_GET_CODE = "WEB_RESOURCE_ERROR_GET_CODE";
-    field public static final java.lang.String WEB_RESOURCE_ERROR_GET_DESCRIPTION = "WEB_RESOURCE_ERROR_GET_DESCRIPTION";
-    field public static final java.lang.String WEB_RESOURCE_REQUEST_IS_REDIRECT = "WEB_RESOURCE_REQUEST_IS_REDIRECT";
+    method public static boolean isFeatureSupported(String);
+    field public static final String CREATE_WEB_MESSAGE_CHANNEL = "CREATE_WEB_MESSAGE_CHANNEL";
+    field public static final String DISABLED_ACTION_MODE_MENU_ITEMS = "DISABLED_ACTION_MODE_MENU_ITEMS";
+    field public static final String GET_WEB_CHROME_CLIENT = "GET_WEB_CHROME_CLIENT";
+    field public static final String GET_WEB_VIEW_CLIENT = "GET_WEB_VIEW_CLIENT";
+    field public static final String OFF_SCREEN_PRERASTER = "OFF_SCREEN_PRERASTER";
+    field public static final String POST_WEB_MESSAGE = "POST_WEB_MESSAGE";
+    field public static final String RECEIVE_HTTP_ERROR = "RECEIVE_HTTP_ERROR";
+    field public static final String RECEIVE_WEB_RESOURCE_ERROR = "RECEIVE_WEB_RESOURCE_ERROR";
+    field public static final String SAFE_BROWSING_ENABLE = "SAFE_BROWSING_ENABLE";
+    field public static final String SAFE_BROWSING_HIT = "SAFE_BROWSING_HIT";
+    field public static final String SAFE_BROWSING_PRIVACY_POLICY_URL = "SAFE_BROWSING_PRIVACY_POLICY_URL";
+    field public static final String SAFE_BROWSING_RESPONSE_BACK_TO_SAFETY = "SAFE_BROWSING_RESPONSE_BACK_TO_SAFETY";
+    field public static final String SAFE_BROWSING_RESPONSE_PROCEED = "SAFE_BROWSING_RESPONSE_PROCEED";
+    field public static final String SAFE_BROWSING_RESPONSE_SHOW_INTERSTITIAL = "SAFE_BROWSING_RESPONSE_SHOW_INTERSTITIAL";
+    field public static final String SAFE_BROWSING_WHITELIST = "SAFE_BROWSING_WHITELIST";
+    field public static final String SERVICE_WORKER_BASIC_USAGE = "SERVICE_WORKER_BASIC_USAGE";
+    field public static final String SERVICE_WORKER_BLOCK_NETWORK_LOADS = "SERVICE_WORKER_BLOCK_NETWORK_LOADS";
+    field public static final String SERVICE_WORKER_CACHE_MODE = "SERVICE_WORKER_CACHE_MODE";
+    field public static final String SERVICE_WORKER_CONTENT_ACCESS = "SERVICE_WORKER_CONTENT_ACCESS";
+    field public static final String SERVICE_WORKER_FILE_ACCESS = "SERVICE_WORKER_FILE_ACCESS";
+    field public static final String SERVICE_WORKER_SHOULD_INTERCEPT_REQUEST = "SERVICE_WORKER_SHOULD_INTERCEPT_REQUEST";
+    field public static final String SHOULD_OVERRIDE_WITH_REDIRECTS = "SHOULD_OVERRIDE_WITH_REDIRECTS";
+    field public static final String START_SAFE_BROWSING = "START_SAFE_BROWSING";
+    field public static final String VISUAL_STATE_CALLBACK = "VISUAL_STATE_CALLBACK";
+    field public static final String WEB_MESSAGE_CALLBACK_ON_MESSAGE = "WEB_MESSAGE_CALLBACK_ON_MESSAGE";
+    field public static final String WEB_MESSAGE_PORT_CLOSE = "WEB_MESSAGE_PORT_CLOSE";
+    field public static final String WEB_MESSAGE_PORT_POST_MESSAGE = "WEB_MESSAGE_PORT_POST_MESSAGE";
+    field public static final String WEB_MESSAGE_PORT_SET_MESSAGE_CALLBACK = "WEB_MESSAGE_PORT_SET_MESSAGE_CALLBACK";
+    field public static final String WEB_RESOURCE_ERROR_GET_CODE = "WEB_RESOURCE_ERROR_GET_CODE";
+    field public static final String WEB_RESOURCE_ERROR_GET_DESCRIPTION = "WEB_RESOURCE_ERROR_GET_DESCRIPTION";
+    field public static final String WEB_RESOURCE_REQUEST_IS_REDIRECT = "WEB_RESOURCE_REQUEST_IS_REDIRECT";
   }
 
 }