Reenabling Doclava to run against sources too

We're still running Doclava against prebuilts to make public docs, because the output of Dokka for the moment is still different than Doclava.

However, we previously turned off running Doclava against tip-of-tree sources. It turns out that that means that sometimes Doclava would start failing when checking in prebuilt source jars because Doclava is doing different validation than Doclava is.

So we're reenabling running Doclava against tip-of-tree sources too until something changes.

Bug: 72330103
Bug: 122534031
Test: ./gradlew tipOfTreeDocsTask
Change-Id: If7ddc727ffca3e8ff58bf53ec601619e3decf2da
diff --git a/annotations/src/main/java/androidx/annotation/ContentView.java b/annotations/src/main/java/androidx/annotation/ContentView.java
index 407763a..eee0d2f 100644
--- a/annotations/src/main/java/androidx/annotation/ContentView.java
+++ b/annotations/src/main/java/androidx/annotation/ContentView.java
@@ -25,7 +25,7 @@
 
 /**
  * Annotation that can be attached to a component such as an
- * {@link androidx.activity.ComponentActivity} or {@link androidx.fragment.app.Fragment}
+ * androidx.activity.ComponentActivity or {@link androidx.fragment.app.Fragment}
  * to denote what layout the component intends to inflate and set as its content.
  * <p>
  * This annotation is marked as {@link Inherited} and will therefore apply to subclasses
diff --git a/appcompat/resources/src/main/java/androidx/appcompat/graphics/drawable/AnimatedStateListDrawableCompat.java b/appcompat/resources/src/main/java/androidx/appcompat/graphics/drawable/AnimatedStateListDrawableCompat.java
index 03e3203..f57aace 100644
--- a/appcompat/resources/src/main/java/androidx/appcompat/graphics/drawable/AnimatedStateListDrawableCompat.java
+++ b/appcompat/resources/src/main/java/androidx/appcompat/graphics/drawable/AnimatedStateListDrawableCompat.java
@@ -85,7 +85,6 @@
  * {@link android.R.attr#state_middle}
  * {@link android.R.attr#state_last}
  * {@link android.R.attr#state_pressed}
- * @see ResourceManagerInternal#getDrawable(Context, int)
  */
 @SuppressLint("RestrictedAPI") // Temporary until we have correct restriction scopes for 1.0
 public class AnimatedStateListDrawableCompat extends StateListDrawable
@@ -129,7 +128,6 @@
      * @param resId the resource ID for AnimatedStateListDrawable object.
      * @param theme the theme to apply, may be null.
      * @return a new AnimatedStateListDrawableCompat or null if parsing error is found.
-     * @see ResourceManagerInternal#getDrawable(Context, int)
      */
     @Nullable
     public static AnimatedStateListDrawableCompat create(
diff --git a/appcompat/src/main/java/androidx/appcompat/widget/AppCompatImageView.java b/appcompat/src/main/java/androidx/appcompat/widget/AppCompatImageView.java
index 92b0c67..f0a8452 100644
--- a/appcompat/src/main/java/androidx/appcompat/widget/AppCompatImageView.java
+++ b/appcompat/src/main/java/androidx/appcompat/widget/AppCompatImageView.java
@@ -30,6 +30,7 @@
 import androidx.annotation.DrawableRes;
 import androidx.annotation.Nullable;
 import androidx.annotation.RestrictTo;
+import androidx.appcompat.R;
 import androidx.core.view.TintableBackgroundView;
 import androidx.core.widget.ImageViewCompat;
 import androidx.core.widget.TintableImageSourceView;
diff --git a/appcompat/src/main/java/androidx/appcompat/widget/SearchView.java b/appcompat/src/main/java/androidx/appcompat/widget/SearchView.java
index 364f2cb..98d9795 100644
--- a/appcompat/src/main/java/androidx/appcompat/widget/SearchView.java
+++ b/appcompat/src/main/java/androidx/appcompat/widget/SearchView.java
@@ -434,7 +434,7 @@
      * @see TextView#setImeOptions(int)
      * @param imeOptions the options to set on the query text field
      *
-     * {@link androidx.appcompat.R.attr#android_imeOptions}
+     * {@link android.R.attr#imeOptions}
      */
     public void setImeOptions(int imeOptions) {
         mSearchSrcTextView.setImeOptions(imeOptions);
@@ -445,7 +445,7 @@
      * @return the ime options
      * @see TextView#setImeOptions(int)
      *
-     * {@link androidx.appcompat.R.attr#android_imeOptions}
+     * {@link android.R.attr#imeOptions}
      */
     public int getImeOptions() {
         return mSearchSrcTextView.getImeOptions();
@@ -457,7 +457,7 @@
      * @see TextView#setInputType(int)
      * @param inputType the input type to set on the query text field
      *
-     * {@link androidx.appcompat.R.attr#android_inputType}
+     * {@link android.R.attr#inputType}
      */
     public void setInputType(int inputType) {
         mSearchSrcTextView.setInputType(inputType);
@@ -467,7 +467,7 @@
      * Returns the input type set on the query text field.
      * @return the input type
      *
-     * {@link androidx.appcompat.R.attr#android_inputType}
+     * {@link android.R.attr#inputType}
      */
     public int getInputType() {
         return mSearchSrcTextView.getInputType();
@@ -757,7 +757,7 @@
     /**
      * Makes the view at most this many pixels wide
      *
-     * {@link androidx.appcompat.R.attr#android_maxWidth}
+     * {@link android.R.attr#maxWidth}
      */
     public void setMaxWidth(int maxpixels) {
         mMaxWidth = maxpixels;
@@ -770,7 +770,7 @@
      * no maximum width was specified.
      * @return the maximum width of the view
      *
-     * {@link androidx.appcompat.R.attr#android_maxWidth}
+     * {@link android.R.attr#maxWidth}
      */
     public int getMaxWidth() {
         return mMaxWidth;
diff --git a/appcompat/src/main/java/androidx/appcompat/widget/SwitchCompat.java b/appcompat/src/main/java/androidx/appcompat/widget/SwitchCompat.java
index 5449de0..f6964a2 100644
--- a/appcompat/src/main/java/androidx/appcompat/widget/SwitchCompat.java
+++ b/appcompat/src/main/java/androidx/appcompat/widget/SwitchCompat.java
@@ -73,12 +73,12 @@
  * <p>See the <a href="{@docRoot}guide/topics/ui/controls/togglebutton.html">Toggle Buttons</a>
  * guide.</p>
  *
- * {@link androidx.appcompat.R.attr#android_textOn}
- * {@link androidx.appcompat.R.attr#android_textOff}
+ * {@link android.R.attr#textOn}
+ * {@link android.R.attr#textOff}
  * {@link androidx.appcompat.R.attr#switchMinWidth}
  * {@link androidx.appcompat.R.attr#switchPadding}
  * {@link androidx.appcompat.R.attr#switchTextAppearance}
- * {@link androidx.appcompat.R.attr#android_thumb}
+ * {@link android.R.attr#thumb}
  * {@link androidx.appcompat.R.attr#thumbTextPadding}
  * {@link androidx.appcompat.R.attr#track}
  */
@@ -597,7 +597,7 @@
      *
      * @param thumb Thumb drawable
      *
-     * {@link androidx.appcompat.R.attr#android_thumb}
+     * {@link android.R.attr#thumb}
      */
     public void setThumbDrawable(Drawable thumb) {
         if (mThumbDrawable != null) {
@@ -616,7 +616,7 @@
      *
      * @param resId Resource ID of a thumb drawable
      *
-     * {@link androidx.appcompat.R.attr#android_thumb}
+     * {@link android.R.attr#thumb}
      */
     public void setThumbResource(int resId) {
         setThumbDrawable(AppCompatResources.getDrawable(getContext(), resId));
@@ -628,7 +628,7 @@
      *
      * @return Thumb drawable
      *
-     * {@link androidx.appcompat.R.attr#android_thumb}
+     * {@link android.R.attr#thumb}
      */
     public Drawable getThumbDrawable() {
         return mThumbDrawable;
@@ -740,7 +740,7 @@
     /**
      * Returns the text displayed when the button is in the checked state.
      *
-     * {@link androidx.appcompat.R.attr#android_textOn}
+     * {@link android.R.attr#textOn}
      */
     public CharSequence getTextOn() {
         return mTextOn;
@@ -749,7 +749,7 @@
     /**
      * Sets the text displayed when the button is in the checked state.
      *
-     * {@link androidx.appcompat.R.attr#android_textOn}
+     * {@link android.R.attr#textOn}
      */
     public void setTextOn(CharSequence textOn) {
         mTextOn = textOn;
@@ -759,7 +759,7 @@
     /**
      * Returns the text displayed when the button is not in the checked state.
      *
-     * {@link androidx.appcompat.R.attr#android_textOff}
+     * {@link android.R.attr#textOff}
      */
     public CharSequence getTextOff() {
         return mTextOff;
@@ -768,7 +768,7 @@
     /**
      * Sets the text displayed when the button is not in the checked state.
      *
-     * {@link androidx.appcompat.R.attr#android_textOff}
+     * {@link android.R.attr#textOff}
      */
     public void setTextOff(CharSequence textOff) {
         mTextOff = textOff;
diff --git a/appcompat/src/main/java/androidx/appcompat/widget/Toolbar.java b/appcompat/src/main/java/androidx/appcompat/widget/Toolbar.java
index 2754164..9b4a11d 100644
--- a/appcompat/src/main/java/androidx/appcompat/widget/Toolbar.java
+++ b/appcompat/src/main/java/androidx/appcompat/widget/Toolbar.java
@@ -122,7 +122,7 @@
  * {@link androidx.appcompat.R.attr#contentInsetStart}
  * {@link androidx.appcompat.R.attr#contentInsetStartWithNavigation}
  * {@link androidx.appcompat.R.attr#contentInsetEndWithActions}
- * {@link androidx.appcompat.R.attr#android_gravity}
+ * {@link android.R.attr#gravity}
  * {@link androidx.appcompat.R.attr#logo}
  * {@link androidx.appcompat.R.attr#logoDescription}
  * {@link androidx.appcompat.R.attr#maxButtonHeight}
diff --git a/browser/src/main/java/androidx/browser/customtabs/CustomTabsClient.java b/browser/src/main/java/androidx/browser/customtabs/CustomTabsClient.java
index 7cb492f..a7161ce 100644
--- a/browser/src/main/java/androidx/browser/customtabs/CustomTabsClient.java
+++ b/browser/src/main/java/androidx/browser/customtabs/CustomTabsClient.java
@@ -79,7 +79,7 @@
     /**
      * Returns the preferred package to use for Custom Tabs, preferring the default VIEW handler.
      *
-     * @see #getPackageName(Context, List<String>, boolean)
+     * see getPackageName(Context, List<String>, boolean)
      */
     public static String getPackageName(Context context, @Nullable List<String> packages) {
         return getPackageName(context, packages, false);
diff --git a/buildSrc/src/main/kotlin/androidx/build/DiffAndDocs.kt b/buildSrc/src/main/kotlin/androidx/build/DiffAndDocs.kt
index 224130c..dd9b494 100644
--- a/buildSrc/src/main/kotlin/androidx/build/DiffAndDocs.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/DiffAndDocs.kt
@@ -20,7 +20,6 @@
 import androidx.build.Strategy.TipOfTree
 import androidx.build.checkapi.ApiXmlConversionTask
 import androidx.build.checkapi.CheckApiTasks
-import androidx.build.checkapi.hasApiTasks
 import androidx.build.checkapi.initializeApiChecksForProject
 import androidx.build.doclava.ChecksConfig
 import androidx.build.doclava.DEFAULT_DOCLAVA_CONFIG
@@ -323,21 +322,6 @@
         }
 
         registerJavaProjectForDocsTask(generateDiffsTask, compileJava)
-        if (!hasApiTasks(project, extension)) {
-            return
-        }
-
-        val tasks = initializeApiChecksForProject(project,
-                aggregateOldApiTxtsTask, aggregateNewApiTxtsTask)
-        registerJavaProjectForDocsTask(tasks.generateApi, compileJava)
-        setupApiVersioningInDocsTasks(extension, tasks)
-        addCheckApiTasksToGraph(tasks)
-        registerJavaProjectForDocsTask(tasks.generateLocalDiffs, compileJava)
-        val generateApiDiffsArchiveTask = createGenerateLocalApiDiffsArchiveTask(project,
-                tasks.generateLocalDiffs)
-        generateApiDiffsArchiveTask.configure {
-            it.dependsOn(tasks.generateLocalDiffs)
-        }
     }
 
     /**
@@ -365,21 +349,6 @@
                 tipOfTreeTasks(extension) { task ->
                     registerAndroidProjectForDocsTask(task, variant)
                 }
-
-                if (!hasApiTasks(project, extension)) {
-                    return@all
-                }
-                val tasks = initializeApiChecksForProject(project, aggregateOldApiTxtsTask,
-                        aggregateNewApiTxtsTask)
-                registerAndroidProjectForDocsTask(tasks.generateApi, variant)
-                setupApiVersioningInDocsTasks(extension, tasks)
-                addCheckApiTasksToGraph(tasks)
-                registerAndroidProjectForDocsTask(tasks.generateLocalDiffs, variant)
-                val generateApiDiffsArchiveTask = createGenerateLocalApiDiffsArchiveTask(project,
-                        tasks.generateLocalDiffs)
-                generateApiDiffsArchiveTask.configure {
-                    it.dependsOn(tasks.generateLocalDiffs)
-                }
             }
         }
     }
diff --git a/buildSrc/src/main/kotlin/androidx/build/dokka/Dokka.kt b/buildSrc/src/main/kotlin/androidx/build/dokka/Dokka.kt
index 1ebba71..a07b6c9 100644
--- a/buildSrc/src/main/kotlin/androidx/build/dokka/Dokka.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/dokka/Dokka.kt
@@ -75,7 +75,10 @@
         library: LibraryExtension,
         extension: SupportLibraryExtension
     ) {
-        DiffAndDocs.get(project).registerPrebuilts(extension)
+        if (project.name != "docs-runner") {
+            DiffAndDocs.get(project).registerAndroidProject(project, library, extension)
+        }
+
         DokkaPublicDocs.registerProject(project, extension)
         DokkaSourceDocs.registerAndroidProject(project, library, extension)
     }
@@ -84,7 +87,9 @@
         project: Project,
         extension: SupportLibraryExtension
     ) {
-        DiffAndDocs.get(project).registerPrebuilts(extension)
+        if (project.name != "docs-runner") {
+            DiffAndDocs.get(project).registerJavaProject(project, extension)
+        }
         DokkaPublicDocs.registerProject(project, extension)
         DokkaSourceDocs.registerJavaProject(project, extension)
     }
diff --git a/docs-fake/build.gradle b/docs-fake/build.gradle
index 7b73ce0..6c7111a7 100644
--- a/docs-fake/build.gradle
+++ b/docs-fake/build.gradle
@@ -26,11 +26,11 @@
 def reentrance = false
 project.tasks.whenTaskAdded { task ->
     if (task instanceof org.gradle.api.tasks.testing.Test
-	|| task.name.startsWith("assemble")
-        || task.name == "transformDexArchiveWithExternalLibsDexMergerForPublicDebug"
-        || task.name == "transformResourcesWithMergeJavaResForPublicDebug"
-        || task.name == "checkPublicDebugDuplicateClasses") {
-	if (!reentrance) {
+            || task.name.startsWith("assemble")
+            || task.name == "transformDexArchiveWithExternalLibsDexMergerForPublicDebug"
+            || task.name == "transformResourcesWithMergeJavaResForPublicDebug"
+            || task.name == "checkPublicDebugDuplicateClasses") {
+        if (!reentrance) {
             reentrance = true
             project.tasks.replace(task.name)
             reentrance = false
diff --git a/fragment/src/main/java/androidx/fragment/app/Fragment.java b/fragment/src/main/java/androidx/fragment/app/Fragment.java
index b1cfc5f..6e52230 100644
--- a/fragment/src/main/java/androidx/fragment/app/Fragment.java
+++ b/fragment/src/main/java/androidx/fragment/app/Fragment.java
@@ -2088,7 +2088,7 @@
      * @param transition The Transition to use to move Views out of the Scene when the Fragment
      *         is preparing to close. <code>transition</code> must be an
      *         {@link android.transition.Transition android.transition.Transition} or
-     *         {@link androidx.transition.Transition androidx.transition.Transition}.
+     *         {@link androidx.transition.Transition}.
      */
     public void setReturnTransition(@Nullable Object transition) {
         ensureAnimationInfo().mReturnTransition = transition;
diff --git a/fragment/src/main/java/androidx/fragment/app/FragmentController.java b/fragment/src/main/java/androidx/fragment/app/FragmentController.java
index 2086392..5b5e07f 100644
--- a/fragment/src/main/java/androidx/fragment/app/FragmentController.java
+++ b/fragment/src/main/java/androidx/fragment/app/FragmentController.java
@@ -312,13 +312,13 @@
      * Moves Fragments managed by the controller's FragmentManager
      * into the destroy state.
      * <p>
-     * If the {@link FragmentHostCallback} is an instance of {@link ViewModelStoreOwner},
+     * If the {@link androidx.fragment.app.FragmentHostCallback} is an instance of {@link ViewModelStoreOwner},
      * then retained Fragments and any other non configuration state such as any
      * {@link androidx.lifecycle.ViewModel} attached to Fragments will only be destroyed if
      * {@link androidx.lifecycle.ViewModelStore#clear()} is called prior to this method.
      * <p>
      * Otherwise, the FragmentManager will look to see if the
-     * {@link FragmentHostCallback#getContext() host's Context} is an {@link Activity}
+     * {@link FragmentHostCallback host's} Context is an {@link Activity}
      * and if {@link Activity#isChangingConfigurations()} returns true. In only that case
      * will non configuration state be retained.
      * <p>Call when Fragments should be destroyed.
diff --git a/leanback/src/main/java/androidx/leanback/widget/StreamingTextView.java b/leanback/src/main/java/androidx/leanback/widget/StreamingTextView.java
index b5805eb..edbbc8f 100644
--- a/leanback/src/main/java/androidx/leanback/widget/StreamingTextView.java
+++ b/leanback/src/main/java/androidx/leanback/widget/StreamingTextView.java
@@ -301,7 +301,7 @@
 
     /**
      * See
-     * {@link TextViewCompat#setCustomSelectionActionModeCallback(TextView, ActionMode.Callback)}
+     * {@link androidx.core.widget.TextViewCompat#setCustomSelectionActionModeCallback(TextView, ActionMode.Callback)}
      */
     @Override
     public void setCustomSelectionActionModeCallback(ActionMode.Callback actionModeCallback) {
diff --git a/leanback/src/main/java/androidx/leanback/widget/picker/DatePicker.java b/leanback/src/main/java/androidx/leanback/widget/picker/DatePicker.java
index 4719107..48850f1 100644
--- a/leanback/src/main/java/androidx/leanback/widget/picker/DatePicker.java
+++ b/leanback/src/main/java/androidx/leanback/widget/picker/DatePicker.java
@@ -39,8 +39,8 @@
  * can be customized.  The columns can be customized by attribute "datePickerFormat" or
  * {@link #setDatePickerFormat(String)}.
  *
- * {@link R.attr#android_maxDate}
- * {@link R.attr#android_minDate}
+ * {@link android.R.attr#maxDate}
+ * {@link android.R.attr#minDate}
  * {@link R.attr#datePickerFormat}
  */
 public class DatePicker extends Picker {
@@ -522,4 +522,4 @@
             }
         });
     }
-}
\ No newline at end of file
+}
diff --git a/lifecycle/viewmodel-savedstate/src/main/java/androidx/lifecycle/AbstractSavedStateVMFactory.java b/lifecycle/viewmodel-savedstate/src/main/java/androidx/lifecycle/AbstractSavedStateVMFactory.java
index de9a16a..fdb630b 100644
--- a/lifecycle/viewmodel-savedstate/src/main/java/androidx/lifecycle/AbstractSavedStateVMFactory.java
+++ b/lifecycle/viewmodel-savedstate/src/main/java/androidx/lifecycle/AbstractSavedStateVMFactory.java
@@ -26,9 +26,9 @@
 
 /**
  * Skeleton of androidx.lifecycle.ViewModelProvider.KeyedFactory
- * that creates {@link SavedStateHandle} for every requested {@link ViewModel}. The subclasses
+ * that creates {@link SavedStateHandle} for every requested {@link androidx.lifecycle.ViewModel}. The subclasses
  * implement {@link #create(String, Class, SavedStateHandle)} to actually instantiate
- * {@code ViewModels}.
+ * {@code androidx.lifecycle.ViewModel}s.
  */
 public abstract class AbstractSavedStateVMFactory extends ViewModelProvider.KeyedFactory {
     static final String TAG_SAVED_STATE_HANDLE_CONTROLLER = "androidx.lifecycle.savedstate.vm.tag";
@@ -41,7 +41,7 @@
      * Constructs this factory.
      *
      * @param owner {@link SavedStateRegistryOwner} that will provide restored state for created
-     * {@link ViewModel ViewModels}
+     * {@link androidx.lifecycle.ViewModel ViewModels}
      * @param defaultArgs values from this {@code Bundle} will be used as defaults by
      *                    {@link SavedStateHandle} passed in {@link ViewModel ViewModels}
      *                    if there is no previously saved state
diff --git a/lifecycle/viewmodel-savedstate/src/main/java/androidx/lifecycle/SavedStateHandle.java b/lifecycle/viewmodel-savedstate/src/main/java/androidx/lifecycle/SavedStateHandle.java
index 5e7f389..edf9c8c 100644
--- a/lifecycle/viewmodel-savedstate/src/main/java/androidx/lifecycle/SavedStateHandle.java
+++ b/lifecycle/viewmodel-savedstate/src/main/java/androidx/lifecycle/SavedStateHandle.java
@@ -37,7 +37,7 @@
 import java.util.Set;
 
 /**
- * A handle to saved state passed down to {@link ViewModel}. You should use
+ * A handle to saved state passed down to {@link androidx.lifecycle.ViewModel}. You should use
  * {@link SavedStateVMFactory} if you want to receive this object in {@code ViewModel}'s
  * constructor.
  * <p>
@@ -45,11 +45,11 @@
  * These values will persist after the process is killed by the system
  * and remain available via the same object.
  * <p>
- * You can read a value from it via {@link #get(String)} or observe it via {@link LiveData} returned
+ * You can read a value from it via {@link #get(String)} or observe it via {@link androidx.lifecycle.LiveData} returned
  * by {@link #getLiveData(String)}.
  * <p>
  * You can write a value to it via {@link #set(String, Object)} or setting a value to
- * {@link MutableLiveData} returned by {@link #getLiveData(String)}.
+ * {@link androidx.lifecycle.MutableLiveData} returned by {@link #getLiveData(String)}.
  */
 public final class SavedStateHandle {
     final Map<String, Object> mRegular;
@@ -136,7 +136,7 @@
     }
 
     /**
-     * Returns a {@link LiveData} that access data associated with the given key,.
+     * Returns a {@link androidx.lifecycle.LiveData} that access data associated with the given key,.
      */
     @SuppressWarnings("unchecked")
     @MainThread
@@ -209,7 +209,7 @@
      * Removes a value associated with the given key. If there is a {@link LiveData} associated
      * with the given key, it will be removed as well.
      * <p>
-     * All changes to {@link LiveData} previously
+     * All changes to {@link androidx.lifecycle.LiveData} previously
      * returned by {@link SavedStateHandle#getLiveData(String)} won't be reflected in
      * the saved state. Also that {@code LiveData} won't receive any updates about new values
      * associated by the given key.
diff --git a/lifecycle/viewmodel-savedstate/src/main/java/androidx/lifecycle/SavedStateVMFactory.java b/lifecycle/viewmodel-savedstate/src/main/java/androidx/lifecycle/SavedStateVMFactory.java
index bc219de..d2457ef1 100644
--- a/lifecycle/viewmodel-savedstate/src/main/java/androidx/lifecycle/SavedStateVMFactory.java
+++ b/lifecycle/viewmodel-savedstate/src/main/java/androidx/lifecycle/SavedStateVMFactory.java
@@ -31,13 +31,13 @@
 import java.util.Arrays;
 
 /**
- * {@link ViewModelProvider.Factory} that can create ViewModels accessing and contributing
+ * {@link androidx.lifecycle.ViewModelProvider.Factory} that can create ViewModels accessing and contributing
  * to a saved state via {@link SavedStateHandle} received in a constructor. If {@code defaultArgs}
  * bundle was passed in {@link #SavedStateVMFactory(Fragment, Bundle)}
  * or {@link #SavedStateVMFactory(FragmentActivity, Bundle)}, it will provide default values in
  * {@code SavedStateHandle}.
  * <p>
- * If ViewModel is instance of {@link AndroidViewModel}, it looks for a constructor that
+ * If ViewModel is instance of {@link androidx.lifecycle.AndroidViewModel}, it looks for a constructor that
  * receives an {@link Application} and {@link SavedStateHandle} (in this order), otherwise
  * it looks for a constructor that receives {@link SavedStateHandle} only.
  */
@@ -48,7 +48,7 @@
     /**
      * Creates {@link SavedStateVMFactory}.
      * <p>
-     * {@link ViewModel} created with this factory can access to saved state scoped to
+     * {@link androidx.lifecycle.ViewModel} created with this factory can access to saved state scoped to
      * the given {@code fragment}.
      *
      * @param fragment scope of this fragment will be used for state saving
@@ -60,7 +60,7 @@
     /**
      * Creates {@link SavedStateVMFactory}.
      * <p>
-     * {@link ViewModel} created with this factory can access to saved state scoped to
+     * {@link androidx.lifecycle.ViewModel} created with this factory can access to saved state scoped to
      * the given {@code fragment}.
      *
      * @param fragment scope of this fragment will be used for state saving
@@ -75,7 +75,7 @@
     /**
      * Creates {@link SavedStateVMFactory}.
      * <p>
-     * {@link ViewModel} created with this factory can access to saved state scoped to
+     * {@link androidx.lifecycle.ViewModel} created with this factory can access to saved state scoped to
      * the given {@code activity}.
      *
      * @param activity scope of this activity will be used for state saving
@@ -87,7 +87,7 @@
     /**
      * Creates {@link SavedStateVMFactory}.
      * <p>
-     * {@link ViewModel} created with this factory can access to saved state scoped to
+     * {@link androidx.lifecycle.ViewModel} created with this factory can access to saved state scoped to
      * the given {@code activity}.
      *
      * @param activity scope of this activity will be used for state saving
@@ -102,12 +102,12 @@
     /**
      * Creates {@link SavedStateVMFactory}.
      * <p>
-     * {@link ViewModel} created with this factory can access to saved state scoped to
+     * {@link androidx.lifecycle.ViewModel} created with this factory can access to saved state scoped to
      * the given {@code activity}.
      *
      * @param application an application
      * @param owner {@link SavedStateRegistryOwner} that will provide restored state for created
-     * {@link ViewModel ViewModels}
+     * {@link androidx.lifecycle.ViewModel ViewModels}
      * @param defaultArgs values from this {@code Bundle} will be used as defaults by
      * {@link SavedStateHandle} if there is no previously saved state or previously saved state
      * misses a value by such key.
diff --git a/media/src/main/java/androidx/media/MediaSessionManager.java b/media/src/main/java/androidx/media/MediaSessionManager.java
index c8acdae..c75c47d 100644
--- a/media/src/main/java/androidx/media/MediaSessionManager.java
+++ b/media/src/main/java/androidx/media/MediaSessionManager.java
@@ -204,7 +204,7 @@
          * met:
          * <ol>
          * <li>UID and package name are the same</li>
-         * <li>One of the RemoteUserInfo's PID is {@link #UNKNOWN_PID} or both of RemoteUserInfo's
+         * <li>One of the RemoteUserInfo's PID is UNKNOWN_PID or both of RemoteUserInfo's
          *     PID are the same</li>
          * </ol>
          *
diff --git a/media2/src/main/java/androidx/media2/MediaMetadata.java b/media2/src/main/java/androidx/media2/MediaMetadata.java
index c01b242..b10807e 100644
--- a/media2/src/main/java/androidx/media2/MediaMetadata.java
+++ b/media2/src/main/java/androidx/media2/MediaMetadata.java
@@ -52,7 +52,7 @@
  * {@link androidx.media2.widget.MediaControlView} will show title from the metadata.
  * <p>
  * The {@link MediaLibrarySession} would require some metadata values when it provides
- * {@link MediaItem}s to {@link MediaBrowser}.
+ * {@link androidx.media2.MediaItem}s to {@link MediaBrowser}.
  * <p>
  * Topics covered here:
  * <ol>
diff --git a/media2/src/main/java/androidx/media2/MediaPlayer.java b/media2/src/main/java/androidx/media2/MediaPlayer.java
index 5798508..6ad0ee2 100644
--- a/media2/src/main/java/androidx/media2/MediaPlayer.java
+++ b/media2/src/main/java/androidx/media2/MediaPlayer.java
@@ -755,7 +755,7 @@
      * and video decoders.
      *
      * @return a {@link ListenableFuture} which represents the pending completion of the command.
-     * {@link PlayerResult} will be delivered when the command completes.
+     * {@link androidx.media2.SessionPlayer.PlayerResult} will be delivered when the command completes.
      */
     @Override
     @NonNull
@@ -1534,7 +1534,7 @@
      * @param surface The {@link Surface} to be used for the video portion of
      * the media.
      * @return a {@link ListenableFuture} which represents the pending completion of the command.
-     * {@link PlayerResult} will be delivered when the command completes.
+     * {@link androidx.media2.SessionPlayer.PlayerResult} will be delivered when the command completes.
      */
     @NonNull
     public ListenableFuture<PlayerResult> setSurface(@Nullable final Surface surface) {
@@ -1569,7 +1569,7 @@
      *
      * @param volume a value between 0.0f and {@link #getMaxPlayerVolume()}.
      * @return a {@link ListenableFuture} which represents the pending completion of the command.
-     * {@link PlayerResult} will be delivered when the command completes.
+     * {@link androidx.media2.SessionPlayer.PlayerResult} will be delivered when the command completes.
      */
     @NonNull
     public ListenableFuture<PlayerResult> setPlayerVolume(
@@ -1640,7 +1640,7 @@
      *
      * @param params the playback params.
      * @return a {@link ListenableFuture} which represents the pending completion of the command.
-     * {@link PlayerResult} will be delivered when the command completes.
+     * {@link androidx.media2.SessionPlayer.PlayerResult} will be delivered when the command completes.
      */
     @NonNull
     public ListenableFuture<PlayerResult> setPlaybackParams(@NonNull final PlaybackParams params) {
@@ -1687,7 +1687,7 @@
      * The value should be in the range of start and end positions defined in {@link MediaItem}.
      * @param mode the mode indicating where exactly to seek to.
      * @return a {@link ListenableFuture} which represents the pending completion of the command.
-     * {@link PlayerResult} will be delivered when the command completes.
+     * {@link androidx.media2.SessionPlayer.PlayerResult} will be delivered when the command completes.
      */
     @NonNull
     public ListenableFuture<PlayerResult> seekTo(final long position, @SeekMode final int mode) {
@@ -1749,7 +1749,7 @@
      * by calling this method.
      * <p>This method must be called before {@link #setMediaItem} and {@link #setPlaylist} methods.
      * @return a {@link ListenableFuture} which represents the pending completion of the command.
-     * {@link PlayerResult} will be delivered when the command completes.
+     * {@link androidx.media2.SessionPlayer.PlayerResult} will be delivered when the command completes.
      *
      * @see AudioManager#generateAudioSessionId
      */
@@ -1797,7 +1797,7 @@
      * <p>This method must be called before {@link #setMediaItem} and {@link #setPlaylist} methods.
      * @param effectId system wide unique id of the effect to attach
      * @return a {@link ListenableFuture} which represents the pending completion of the command.
-     * {@link PlayerResult} will be delivered when the command completes.
+     * {@link androidx.media2.SessionPlayer.PlayerResult} will be delivered when the command completes.
      */
     @NonNull
     public ListenableFuture<PlayerResult> attachAuxEffect(final int effectId) {
@@ -1832,7 +1832,7 @@
      * 0 < x <= R -> level = 10^(72*(x-R)/20/R)
      * @param level send level scalar
      * @return a {@link ListenableFuture} which represents the pending completion of the command.
-     * {@link PlayerResult} will be delivered when the command completes.
+     * {@link androidx.media2.SessionPlayer.PlayerResult} will be delivered when the command completes.
      */
     @NonNull
     public ListenableFuture<PlayerResult> setAuxEffectSendLevel(
@@ -1894,8 +1894,8 @@
     /**
      * Selects a track.
      * <p>
-     * If the player is in invalid state, {@link PlayerResult#RESULT_ERROR_INVALID_STATE} will be
-     * reported with {@link PlayerResult}.
+     * If the player is in invalid state, {@link androidx.media2.SessionPlayer.PlayerResult#RESULT_ERROR_INVALID_STATE} will be
+     * reported with {@link androidx.media2.SessionPlayer.PlayerResult}.
      * If a player is in <em>Playing</em> state, the selected track is presented immediately.
      * If a player is not in Playing state, it just marks the track to be played.
      * </p>
@@ -1917,7 +1917,7 @@
      *
      * @see #getTrackInfo
      * @return a {@link ListenableFuture} which represents the pending completion of the command.
-     * {@link PlayerResult} will be delivered when the command completes.
+     * {@link androidx.media2.SessionPlayer.PlayerResult} will be delivered when the command completes.
      */
     @NonNull
     public ListenableFuture<PlayerResult> selectTrack(final int index) {
@@ -1951,7 +1951,7 @@
      *
      * @see #getTrackInfo
      * @return a {@link ListenableFuture} which represents the pending completion of the command.
-     * {@link PlayerResult} will be delivered when the command completes.
+     * {@link androidx.media2.SessionPlayer.PlayerResult} will be delivered when the command completes.
      */
     @NonNull
     public ListenableFuture<PlayerResult> deselectTrack(final int index) {
diff --git a/paging/common/src/main/java/androidx/paging/DataSource.java b/paging/common/src/main/java/androidx/paging/DataSource.java
index 07aad2d..2313653 100644
--- a/paging/common/src/main/java/androidx/paging/DataSource.java
+++ b/paging/common/src/main/java/androidx/paging/DataSource.java
@@ -38,7 +38,7 @@
  * it loads more data, but the data loaded cannot be updated. If the underlying data set is
  * modified, a new PagedList / DataSource pair must be created to represent the new data.
  * <h4>Loading Pages</h4>
- * PagedList queries data from its DataSource in response to loading hints. {@link PagedListAdapter}
+ * PagedList queries data from its DataSource in response to loading hints. PagedListAdapter
  * calls {@link PagedList#loadAround(int)} to load content as the user scrolls in a RecyclerView.
  * <p>
  * To control how and when a PagedList queries data from its DataSource, see
@@ -127,7 +127,7 @@
          * DataSource becomes invalid, the only way to query more data is to create a new DataSource
          * from the Factory.
          * <p>
-         * {@link LivePagedListBuilder} for example will construct a new PagedList and DataSource
+         * {@link androidx.paging.LivePagedListBuilder} for example will construct a new PagedList and DataSource
          * when the current DataSource is invalidated, and pass the new PagedList through the
          * {@code LiveData<PagedList>} to observers.
          *
diff --git a/paging/common/src/main/java/androidx/paging/ListenablePageKeyedDataSource.java b/paging/common/src/main/java/androidx/paging/ListenablePageKeyedDataSource.java
index b2d87f8..f15075c 100644
--- a/paging/common/src/main/java/androidx/paging/ListenablePageKeyedDataSource.java
+++ b/paging/common/src/main/java/androidx/paging/ListenablePageKeyedDataSource.java
@@ -129,11 +129,11 @@
      * This method is called first to initialize a PagedList with data. If it's possible to count
      * the items that can be loaded by the DataSource, it's recommended to pass the position and
      * count to the
-     * {@link InitialResult#InitialResult(List, int, int, Key, Key) InitialResult constructor}. This
+     * {@link InitialResult InitialResult constructor}. This
      * enables PagedLists presenting data from this source to display placeholders to represent
      * unloaded items.
      * <p>
-     * {@link PageKeyedDataSource.LoadInitialParams#requestedLoadSize} is a hint, not a requirement,
+     * {@link LoadInitialParams#requestedLoadSize} is a hint, not a requirement,
      * so it may be may be altered or ignored.
      *
      * @param params Parameters for initial load, including requested load size.
diff --git a/paging/common/src/main/java/androidx/paging/ListenablePositionalDataSource.java b/paging/common/src/main/java/androidx/paging/ListenablePositionalDataSource.java
index a4ba462..25c47ab 100644
--- a/paging/common/src/main/java/androidx/paging/ListenablePositionalDataSource.java
+++ b/paging/common/src/main/java/androidx/paging/ListenablePositionalDataSource.java
@@ -31,7 +31,7 @@
  * positions, and provide a fixed item count. If your data source can't support loading arbitrary
  * requested page sizes (e.g. when network page size constraints are only known at runtime), either
  * use {@link PageKeyedDataSource} or {@link ItemKeyedDataSource}, or pass the initial result with
- *  the two parameter {@link InitialResult#InitialResult(List, int)} InitialResult constructor}.
+ *  the two parameter {@link InitialResult InitialResult constructor}.
  *
  * @see PositionalDataSource
  *
diff --git a/paging/common/src/main/java/androidx/paging/PagedList.java b/paging/common/src/main/java/androidx/paging/PagedList.java
index 16533bc..2339f2b 100644
--- a/paging/common/src/main/java/androidx/paging/PagedList.java
+++ b/paging/common/src/main/java/androidx/paging/PagedList.java
@@ -41,7 +41,7 @@
  * <p>
  * A PagedList is a {@link List} which loads its data in chunks (pages) from a {@link DataSource}.
  * Items can be accessed with {@link #get(int)}, and further loading can be triggered with
- * {@link #loadAround(int)}. To display a PagedList, see {@link PagedListAdapter}, which enables the
+ * {@link #loadAround(int)}. To display a PagedList, see {@link androidx.paging.PagedListAdapter}, which enables the
  * binding of a PagedList to a {@link androidx.recyclerview.widget.RecyclerView}.
  * <h4>Loading Data</h4>
  * <p>
@@ -60,8 +60,8 @@
  * PagedList can present data for an unbounded, infinite scrolling list, or a very large but
  * countable list. Use {@link Config} to control how many items a PagedList loads, and when.
  * <p>
- * If you use {@link LivePagedListBuilder} to get a
- * {@link androidx.lifecycle.LiveData}&lt;PagedList>, it will initialize PagedLists on a
+ * If you use {@link androidx.paging.LivePagedListBuilder} to get a
+ * {@link androidx.lifecycle.LiveData}, it will initialize PagedLists on a
  * background thread for you.
  * <h4>Placeholders</h4>
  * <p>
@@ -79,7 +79,7 @@
  * Placeholders have several benefits:
  * <ul>
  *     <li>They express the full sized list to the presentation layer (often a
- *     {@link PagedListAdapter}), and so can support scrollbars (without jumping as pages are
+ *     {@link androidx.paging.PagedListAdapter}), and so can support scrollbars (without jumping as pages are
  *     loaded or dropped) and fast-scrolling to any position, loaded or not.
  *     <li>They avoid the need for a loading spinner at the end of the loaded list, since the list
  *     is always full sized.
@@ -101,13 +101,13 @@
  * <h4>Mutability and Snapshots</h4>
  * A PagedList is <em>mutable</em> while loading, or ready to load from its DataSource.
  * As loads succeed, a mutable PagedList will be updated via Runnables on the main thread. You can
- * listen to these updates with a {@link Callback}. (Note that {@link PagedListAdapter} will listen
+ * listen to these updates with a {@link Callback}. (Note that {@link androidx.paging.PagedListAdapter} will listen
  * to these to signal RecyclerView about the updates/changes).
  * <p>
  * If a PagedList attempts to load from an invalid DataSource, it will {@link #detach()}
  * from the DataSource, meaning that it will no longer attempt to load data. It will return true
  * from {@link #isImmutable()}, and a new DataSource / PagedList pair must be created to load
- * further data. See {@link DataSource} and {@link LivePagedListBuilder} for how new PagedLists are
+ * further data. See {@link DataSource} and {@link androidx.paging.LivePagedListBuilder} for how new PagedLists are
  * created to represent changed data.
  * <p>
  * A PagedList snapshot is simply an immutable shallow copy of the current state of the PagedList as
@@ -299,8 +299,8 @@
      * {@code onError()} to signify the error as retryable.
      * <p>
      * You can observe loading state via {@link #addWeakLoadStateListener(LoadStateListener)},
-     * though generally this is done through the {@link PagedListAdapter} or
-     * {@link AsyncPagedListDiffer}.
+     * though generally this is done through the {@link androidx.paging.PagedListAdapter} or
+     * {@link androidx.paging.AsyncPagedListDiffer}.
      *
      * @see #addWeakLoadStateListener(LoadStateListener)
      * @see #removeWeakLoadStateListener(LoadStateListener)
@@ -443,7 +443,7 @@
      * so that the UI doesn't show an empty list, or placeholders for a few frames, just before
      * showing initial content.
      * <p>
-     * {@link LivePagedListBuilder} does this creation on a background thread automatically, if you
+     * {@link androidx.paging.LivePagedListBuilder} does this creation on a background thread automatically, if you
      * want to receive a {@code LiveData<PagedList<...>>}.
      *
      * @param <Key> Type of key used to load data from the DataSource.
@@ -552,14 +552,14 @@
         /**
          * Creates a {@link PagedList} with the given parameters.
          * <p>
-         * This call will dispatch the {@link DataSource}'s loadInitial method immediately on the
+         * This call will dispatch the {@link androidx.paging.DataSource}'s loadInitial method immediately on the
          * current thread, and block the current on the result. This method should always be called
          * on a worker thread to prevent blocking the main thread.
          * <p>
          * It's fine to create a PagedList with an async DataSource on the main thread, such as in
          * the constructor of a ViewModel. An async network load won't block the initialLoad
          * function. For a synchronous DataSource such as one created from a Room database, a
-         * {@code LiveData<PagedList>} can be safely constructed with {@link LivePagedListBuilder}
+         * {@code LiveData<PagedList>} can be safely constructed with {@link androidx.paging.LivePagedListBuilder}
          * on the main thread, since actual construction work is deferred, and done on a background
          * thread.
          * <p>
@@ -869,7 +869,7 @@
      * <p>
      * When a PagedList is invalidated, you can pass the key returned by this function to initialize
      * the next PagedList. This ensures (depending on load times) that the next PagedList that
-     * arrives will have data that overlaps. If you use {@link LivePagedListBuilder}, it will do
+     * arrives will have data that overlaps. If you use androidx.paging.LivePagedListBuilder, it will do
      * this for you.
      *
      * @return Key of position most recently passed to {@link #loadAround(int)}.
@@ -962,7 +962,7 @@
      * version, including any changes that may have been made.
      * <p>
      * The callback is internally held as weak reference, so PagedList doesn't hold a strong
-     * reference to its observer, such as a {@link PagedListAdapter}. If an adapter were held with a
+     * reference to its observer, such as a {@link androidx.paging.PagedListAdapter}. If an adapter were held with a
      * strong reference, it would be necessary to clear its PagedList observer before it could be
      * GC'd.
      *
@@ -1242,13 +1242,13 @@
              * 2) placeholders are not disabled on the Config.
              * <p>
              * Call {@code setEnablePlaceholders(false)} to ensure the receiver of the PagedList
-             * (often a {@link PagedListAdapter}) doesn't need to account for null items.
+             * (often a {@link androidx.paging.PagedListAdapter}) doesn't need to account for null items.
              * <p>
              * If placeholders are disabled, not-yet-loaded content will not be present in the list.
              * Paging will still occur, but as items are loaded or removed, they will be signaled
              * as inserts to the {@link PagedList.Callback}.
              * {@link PagedList.Callback#onChanged(int, int)} will not be issued as part of loading,
-             * though a {@link PagedListAdapter} may still receive change events as a result of
+             * though a {@link androidx.paging.PagedListAdapter} may still receive change events as a result of
              * PagedList diffing.
              *
              * @param enablePlaceholders False if null placeholders should be disabled.
@@ -1370,7 +1370,7 @@
      * account for the new items.
      * <p>
      * Note that a BoundaryCallback instance shared across multiple PagedLists (e.g. when passed to
-     * {@link LivePagedListBuilder#setBoundaryCallback}), the callbacks may be issued multiple
+     * {@link androidx.paging.LivePagedListBuilder#setBoundaryCallback}, the callbacks may be issued multiple
      * times. If for example {@link #onItemAtEndLoaded(Object)} triggers a network load, it should
      * avoid triggering it again while the load is ongoing.
      * <p>
diff --git a/preference/src/main/java/androidx/preference/Preference.java b/preference/src/main/java/androidx/preference/Preference.java
index 4254dd9..1d449d8 100644
--- a/preference/src/main/java/androidx/preference/Preference.java
+++ b/preference/src/main/java/androidx/preference/Preference.java
@@ -835,7 +835,7 @@
      * the group is visible.
      *
      * @param visible Set false if this preference should be hidden from the user
-     * {@link R.attr#isPreferenceVisible}
+     * {@link androidx.preference.R.attr#isPreferenceVisible}
      * @see #isShown()
      */
     public final void setVisible(boolean visible) {
@@ -997,7 +997,7 @@
      * letting it wrap onto multiple lines.
      *
      * @param singleLineTitle Set {@code true} if the title should be constrained to one line
-     * {@link R.attr#android_singleLineTitle}
+     * {@link android.R.attr#singleLineTitle}
      */
     public void setSingleLineTitle(boolean singleLineTitle) {
         mHasSingleLineTitleAttr = true;
@@ -1008,7 +1008,7 @@
      * Gets whether the title of this preference is constrained to a single line.
      *
      * @return {@code true} if the title of this preference is constrained to a single line
-     * {@link R.attr#android_singleLineTitle}
+     * {@link android.R.attr#singleLineTitle}
      * @see #setSingleLineTitle(boolean)
      */
     public boolean isSingleLineTitle() {
@@ -1021,7 +1021,7 @@
      * other preferences having icons.
      *
      * @param iconSpaceReserved Set {@code true} if the space for the icon view should be reserved
-     * {@link R.attr#android_iconSpaceReserved}
+     * {@link android.R.attr#iconSpaceReserved}
      */
     public void setIconSpaceReserved(boolean iconSpaceReserved) {
         if (mIconSpaceReserved != iconSpaceReserved) {
@@ -1034,7 +1034,7 @@
      * Returns whether the space of this preference icon view is reserved.
      *
      * @return {@code true} if the space of this preference icon view is reserved
-     * {@link R.attr#android_iconSpaceReserved}
+     * {@link android.R.attr#iconSpaceReserved}
      * @see #setIconSpaceReserved(boolean)
      */
     public boolean isIconSpaceReserved() {
diff --git a/preference/src/main/java/androidx/preference/PreferenceFragment.java b/preference/src/main/java/androidx/preference/PreferenceFragment.java
index 50ab41d..bdc6851 100644
--- a/preference/src/main/java/androidx/preference/PreferenceFragment.java
+++ b/preference/src/main/java/androidx/preference/PreferenceFragment.java
@@ -244,7 +244,7 @@
      * call {@link #setDividerHeight(int)}.
      *
      * @param divider The drawable to use
-     * {@link R.attr#android_divider}
+     * {@link android.R.attr#divider}
      *
      * @deprecated Use {@link PreferenceFragmentCompat} instead
      */
@@ -258,7 +258,7 @@
      * this will override the intrinsic height as set by {@link #setDivider(Drawable)}.
      *
      * @param height The new height of the divider in pixels
-     * {@link R.attr#android_dividerHeight}
+     * {@link android.R.attr#dividerHeight}
      *
      * @deprecated Use {@link PreferenceFragmentCompat} instead
      */
diff --git a/preference/src/main/java/androidx/preference/PreferenceFragmentCompat.java b/preference/src/main/java/androidx/preference/PreferenceFragmentCompat.java
index f490c55..26af8f8 100644
--- a/preference/src/main/java/androidx/preference/PreferenceFragmentCompat.java
+++ b/preference/src/main/java/androidx/preference/PreferenceFragmentCompat.java
@@ -237,7 +237,7 @@
      * call {@link #setDividerHeight(int)}.
      *
      * @param divider The drawable to use
-     * {@link R.attr#android_divider}
+     * {@link android.R.attr#divider}
      */
     public void setDivider(Drawable divider) {
         mDividerDecoration.setDivider(divider);
@@ -248,7 +248,7 @@
      * this will override the intrinsic height as set by {@link #setDivider(Drawable)}.
      *
      * @param height The new height of the divider in pixels
-     * {@link R.attr#android_dividerHeight}
+     * {@link android.R.attr#dividerHeight}
      */
     public void setDividerHeight(int height) {
         mDividerDecoration.setDividerHeight(height);
diff --git a/preference/src/main/java/androidx/preference/PreferenceGroup.java b/preference/src/main/java/androidx/preference/PreferenceGroup.java
index 90850b5..9c8f284 100644
--- a/preference/src/main/java/androidx/preference/PreferenceGroup.java
+++ b/preference/src/main/java/androidx/preference/PreferenceGroup.java
@@ -143,7 +143,7 @@
      * correctly persist state.
      *
      * @param expandedCount The number of children that is initially shown
-     * {@link R.attr#initialExpandedChildrenCount}
+     * {@link androidx.preference.R.attr#initialExpandedChildrenCount}
      */
     public void setInitialExpandedChildrenCount(int expandedCount) {
         if (expandedCount != Integer.MAX_VALUE && !hasKey()) {
@@ -157,7 +157,7 @@
      * Gets the maximal number of children that are initially shown.
      *
      * @return The maximal number of children that are initially shown
-     * {@link R.attr#initialExpandedChildrenCount}
+     * {@link androidx.preference.R.attr#initialExpandedChildrenCount}
      */
     public int getInitialExpandedChildrenCount() {
         return mInitialExpandedChildrenCount;
diff --git a/recyclerview/recyclerview/src/main/java/androidx/recyclerview/widget/LinearLayoutManager.java b/recyclerview/recyclerview/src/main/java/androidx/recyclerview/widget/LinearLayoutManager.java
index 043eb89..f8e522e 100644
--- a/recyclerview/recyclerview/src/main/java/androidx/recyclerview/widget/LinearLayoutManager.java
+++ b/recyclerview/recyclerview/src/main/java/androidx/recyclerview/widget/LinearLayoutManager.java
@@ -170,7 +170,7 @@
      * Constructor used when layout manager is set in XML by RecyclerView attribute
      * "layoutManager". Defaults to vertical orientation.
      *
-     * {@link androidx.recyclerview.R.attr#android_orientation}
+     * {@link android.R.attr#orientation}
      * {@link androidx.recyclerview.R.attr#reverseLayout}
      * {@link androidx.recyclerview.R.attr#stackFromEnd}
      */
diff --git a/recyclerview/recyclerview/src/main/java/androidx/recyclerview/widget/RecyclerView.java b/recyclerview/recyclerview/src/main/java/androidx/recyclerview/widget/RecyclerView.java
index 1ff33d9..9b29ac1 100644
--- a/recyclerview/recyclerview/src/main/java/androidx/recyclerview/widget/RecyclerView.java
+++ b/recyclerview/recyclerview/src/main/java/androidx/recyclerview/widget/RecyclerView.java
@@ -10491,7 +10491,7 @@
         /**
          * Parse the xml attributes to get the most common properties used by layout managers.
          *
-         * {@link androidx.recyclerview.R.attr#android_orientation}
+         * {@link android.R.attr#orientation}
          * {@link androidx.recyclerview.R.attr#spanCount}
          * {@link androidx.recyclerview.R.attr#reverseLayout}
          * {@link androidx.recyclerview.R.attr#stackFromEnd}
@@ -10550,7 +10550,7 @@
          * Some general properties that a LayoutManager may want to use.
          */
         public static class Properties {
-            /** {@link androidx.recyclerview.R.attr#android_orientation} */
+            /** {@link android.R.attr#orientation} */
             public int orientation;
             /** {@link androidx.recyclerview.R.attr#spanCount} */
             public int spanCount;
diff --git a/viewpager2/src/main/java/androidx/viewpager2/widget/ViewPager2.java b/viewpager2/src/main/java/androidx/viewpager2/widget/ViewPager2.java
index 5c7fb00..9b3cb41 100644
--- a/viewpager2/src/main/java/androidx/viewpager2/widget/ViewPager2.java
+++ b/viewpager2/src/main/java/androidx/viewpager2/widget/ViewPager2.java
@@ -388,7 +388,7 @@
     }
 
     /**
-     * @param orientation @{link {@link ViewPager2.Orientation}}
+     * @param orientation {@link ViewPager2.Orientation}
      */
     public void setOrientation(@Orientation int orientation) {
         mLayoutManager.setOrientation(orientation);
diff --git a/wear/src/main/java/androidx/wear/widget/BoxInsetLayout.java b/wear/src/main/java/androidx/wear/widget/BoxInsetLayout.java
index a838ae3..e43e2bf 100644
--- a/wear/src/main/java/androidx/wear/widget/BoxInsetLayout.java
+++ b/wear/src/main/java/androidx/wear/widget/BoxInsetLayout.java
@@ -389,7 +389,7 @@
      * See {@link R.styleable#BoxInsetLayout_Layout BoxInsetLayout Layout Attributes} for a list
      * of all child view attributes that this class supports.
      *
-     * {@link R.attr#Layout_boxedEdges}
+     * {@link androidx.wear.R.attr#boxedEdges}
      */
     public static class LayoutParams extends FrameLayout.LayoutParams {
 
diff --git a/wear/src/main/java/androidx/wear/widget/RoundedDrawable.java b/wear/src/main/java/androidx/wear/widget/RoundedDrawable.java
index 0c65ccf..52d7151 100644
--- a/wear/src/main/java/androidx/wear/widget/RoundedDrawable.java
+++ b/wear/src/main/java/androidx/wear/widget/RoundedDrawable.java
@@ -118,7 +118,7 @@
      * Sets the drawable to be rendered.
      *
      * @param drawable {@link Drawable} to be rendered
-     * {@link androidx.wear.R.attr#android_src}
+     * {@link android.R.attr#src}
      */
     public void setDrawable(@Nullable Drawable drawable) {
         if (Objects.equals(mDrawable, drawable)) {
diff --git a/webkit/src/main/java/androidx/webkit/WebViewAssetLoader.java b/webkit/src/main/java/androidx/webkit/WebViewAssetLoader.java
index 59b0299..923b271 100644
--- a/webkit/src/main/java/androidx/webkit/WebViewAssetLoader.java
+++ b/webkit/src/main/java/androidx/webkit/WebViewAssetLoader.java
@@ -61,7 +61,7 @@
  *     WebViewAssetLoader.Builder assetLoaderBuilder = new WebViewAssetLoader.Builder(this);
  *     final WebViewAssetLoader assetLoader = assetLoaderBuilder.build();
  *     webView.setWebViewClient(new WebViewClient() {
- *         @Override
+ *         {@literal @}Override
  *         public WebResourceResponse shouldInterceptRequest(WebView view,
  *                                          WebResourceRequest request) {
  *             return assetLoader.shouldInterceptRequest(request);
diff --git a/webkit/src/main/java/androidx/webkit/WebViewCompat.java b/webkit/src/main/java/androidx/webkit/WebViewCompat.java
index 9c58fbb..9a1387c6 100644
--- a/webkit/src/main/java/androidx/webkit/WebViewCompat.java
+++ b/webkit/src/main/java/androidx/webkit/WebViewCompat.java
@@ -558,12 +558,12 @@
     /**
      * Sets the renderer client object associated with this WebView.
      *
-     * <p>See {@link #setWebViewRenderProcessClient(WebView,Executor,WebViewRenderProcessClient} for
+     * <p>See {@link WebViewCompat#setWebViewRenderProcessClient(WebView,Executor,WebViewRenderProcessClient)} for
      * details, with the following differences:
      *
      * <p>Callbacks will execute directly on the thread on which this WebView was instantiated.
      *
-     * <p>Passing {@code null} for {@code webViewRenderProcessClien} will clear the renderer client
+     * <p>Passing {@code null} for {@code webViewRenderProcessClient} will clear the renderer client
      * object for this WebView.
      *
      * <p>This method should only be called if
diff --git a/webkit/src/main/java/androidx/webkit/WebViewFeature.java b/webkit/src/main/java/androidx/webkit/WebViewFeature.java
index 7a244cf..c4bbc75 100644
--- a/webkit/src/main/java/androidx/webkit/WebViewFeature.java
+++ b/webkit/src/main/java/androidx/webkit/WebViewFeature.java
@@ -144,7 +144,7 @@
     /**
      * Feature for {@link #isFeatureSupported(String)}.
      * This feature covers
-     * {@link WebViewCompat#getSafeBrowsingPrivacyPolicyUrl()}.
+     * {@link androidx.webkit.WebViewCompat#getSafeBrowsingPrivacyPolicyUrl()}.
      */
     public static final String SAFE_BROWSING_PRIVACY_POLICY_URL =
             "SAFE_BROWSING_PRIVACY_POLICY_URL";
@@ -319,14 +319,14 @@
     /**
      * Feature for {@link #isFeatureSupported(String)}.
      * This feature covers
-     * {@link WebViewCompat#createWebMessageChannel(WebView)}.
+     * {@link androidx.webkit.WebViewCompat#createWebMessageChannel(WebView)}.
      */
     public static final String CREATE_WEB_MESSAGE_CHANNEL = "CREATE_WEB_MESSAGE_CHANNEL";
 
     /**
      * Feature for {@link #isFeatureSupported(String)}.
      * This feature covers
-     * {@link WebViewCompat#postWebMessage(WebView, WebMessageCompat, Uri)}.
+     * {@link androidx.webkit.WebViewCompat#postWebMessage(WebView, WebMessageCompat, Uri)}.
      */
     public static final String POST_WEB_MESSAGE = "POST_WEB_MESSAGE";
 
@@ -341,35 +341,33 @@
 
     /**
      * Feature for {@link #isFeatureSupported(String)}.
-     * This feature covers {@link WebViewCompat#getWebViewClient(WebView)}
+     * This feature covers {@link androidx.webkit.WebViewCompat#getWebViewClient(WebView)}
      */
     public static final String GET_WEB_VIEW_CLIENT = "GET_WEB_VIEW_CLIENT";
 
     /**
      * Feature for {@link #isFeatureSupported(String)}.
-     * This feature covers {@link WebViewCompat#getWebChromeClient(WebView)}
+     * This feature covers {@link androidx.webkit.WebViewCompat#getWebChromeClient(WebView)}
      */
     public static final String GET_WEB_CHROME_CLIENT = "GET_WEB_CHROME_CLIENT";
 
     /**
      * Feature for {@link #isFeatureSupported(String)}.
-     * This feature covers {@link WebViewCompat#getWebViewRenderer(WebView)}
+     * This feature covers {@link androidx.webkit.WebViewCompat#getWebViewRenderProcess(WebView)}
      */
     public static final String GET_WEB_VIEW_RENDERER = "GET_WEB_VIEW_RENDERER";
 
     /**
      * Feature for {@link #isFeatureSupported(String)}.
-     * This feature covers {@link WebViewRenderer#terminate()}
+     * This feature covers {@link WebViewRenderProcess#terminate()}
      */
     public static final String WEB_VIEW_RENDERER_TERMINATE = "WEB_VIEW_RENDERER_TERMINATE";
 
     /**
-     * Feature for {@link #isFeatureSupported(String)}.
+     i* Feature for {@link #isFeatureSupported(String)}.
      * This feature covers
-     * {@link WebViewCompat#getWebViewRendererClient()},
-     * {@link WebViewCompat#setWebViewRendererClient(WebViewRendererClient)},
-     * {@link WebViewRendererClient#onRendererUnresponsive(WebView,WebViewRenderer)},
-     * {@link WebViewRendererClient#onRendererResponsive(WebView,WebViewRenderer)}
+     * {@link androidx.webkit.WebViewCompat#getWebViewRenderProcessClient(WebView)},
+     * {@link androidx.webkit.WebViewCompat#setWebViewRenderProcessClient(WebView, WebViewRenderProcessClient)},
      */
     public static final String WEB_VIEW_RENDERER_CLIENT_BASIC_USAGE =
             "WEB_VIEW_RENDERER_CLIENT_BASIC_USAGE";
@@ -378,9 +376,7 @@
      * Feature for {@link #isFeatureSupported(String)}.
      * This feature covers
      * {@link ProxyController#setProxyOverride(ProxyConfig, Executor, Runnable)},
-     * {@link ProxyController#setProxyOverride(ProxyConfig, Runnable)},
      * {@link ProxyController#clearProxyOverride(Executor, Runnable)}, and
-     * {@link ProxyController#clearProxyOverride(Runnable)}.
      */
     public static final String PROXY_OVERRIDE = "PROXY_OVERRIDE";