Upgrade to metalava ab/7594889
- Fix up new cases where metalava catches HiddenSuperclass
- Move metalava dependency to libs.versions.toml
Test: ./gradlew updateApi
Change-Id: I70c733677c9a5cff47a474d38e277b362fffbec3
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActionMenuView.java b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActionMenuView.java
index 7cb8c10..c3606e1 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActionMenuView.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActionMenuView.java
@@ -47,6 +47,7 @@
* items in an overflow menu. This allows applications to present packs of actions inline with
* specific or repeating content.
*/
+@SuppressWarnings("HiddenSuperclass")
public class ActionMenuView extends LinearLayoutCompat implements MenuBuilder.ItemInvoker,
MenuView {
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ListPopupWindow.java b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ListPopupWindow.java
index 188127f..20e68cb 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ListPopupWindow.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ListPopupWindow.java
@@ -65,6 +65,7 @@
*
* @see android.widget.ListPopupWindow
*/
+@SuppressWarnings("HiddenSuperclass")
public class ListPopupWindow implements ShowableListMenu {
private static final String TAG = "ListPopupWindow";
private static final boolean DEBUG = false;
diff --git a/browser/browser/src/main/java/androidx/browser/customtabs/PostMessageServiceConnection.java b/browser/browser/src/main/java/androidx/browser/customtabs/PostMessageServiceConnection.java
index 66d5f15..bbe0e84 100644
--- a/browser/browser/src/main/java/androidx/browser/customtabs/PostMessageServiceConnection.java
+++ b/browser/browser/src/main/java/androidx/browser/customtabs/PostMessageServiceConnection.java
@@ -37,6 +37,7 @@
*
* TODO(peconn): Make this not abstract with API change.
*/
+@SuppressWarnings("HiddenSuperclass")
public abstract class PostMessageServiceConnection
implements PostMessageBackend, ServiceConnection {
private static final String TAG = "PostMessageServConn";
diff --git a/buildSrc/src/main/kotlin/androidx/build/metalava/MetalavaRunner.kt b/buildSrc/src/main/kotlin/androidx/build/metalava/MetalavaRunner.kt
index ac0d47f..e87e6bb 100644
--- a/buildSrc/src/main/kotlin/androidx/build/metalava/MetalavaRunner.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/metalava/MetalavaRunner.kt
@@ -17,10 +17,12 @@
package androidx.build.metalava
import androidx.build.checkapi.ApiLocation
+import androidx.build.dependencies.getDependencyAsString
import androidx.build.java.JavaCompileInputs
import androidx.build.logging.TERMINAL_RED
import androidx.build.logging.TERMINAL_RESET
import org.gradle.api.Project
+import org.gradle.api.artifacts.VersionCatalogsExtension
import org.gradle.api.file.FileCollection
import org.gradle.api.provider.ListProperty
import org.gradle.api.provider.SetProperty
@@ -76,8 +78,14 @@
}
fun Project.getMetalavaClasspath(): FileCollection {
+ @Suppress("UnstableApiUsage") // Usage of VersionCatalogsExtension
val configuration = configurations.findByName("metalava") ?: configurations.create("metalava") {
- val dependency = dependencies.create("com.android.tools.metalava:metalava:1.0.0-alpha03")
+ val libs = project.extensions.getByType(
+ VersionCatalogsExtension::class.java
+ ).find("libs").get()
+ val dependency = dependencies.create(
+ getDependencyAsString(libs.findDependency("metalava").get())
+ )
it.dependencies.add(dependency)
}
return project.files(configuration)
diff --git a/camera/camera-core/src/main/java/androidx/camera/core/CameraXConfig.java b/camera/camera-core/src/main/java/androidx/camera/core/CameraXConfig.java
index f6f23b4..b85a908 100644
--- a/camera/camera-core/src/main/java/androidx/camera/core/CameraXConfig.java
+++ b/camera/camera-core/src/main/java/androidx/camera/core/CameraXConfig.java
@@ -56,6 +56,7 @@
* @see androidx.camera.lifecycle.ProcessCameraProvider#configureInstance(CameraXConfig)
* @see CameraXConfig.Builder
*/
+@SuppressWarnings("HiddenSuperclass")
public final class CameraXConfig implements TargetConfig<CameraX> {
/**
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index f876f4a..4052d7e 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -121,6 +121,7 @@
leakcanary = { module = "com.squareup.leakcanary:leakcanary-android", version.ref = "leakcanary" }
leakcanaryInstrumentation = { module = "com.squareup.leakcanary:leakcanary-android-instrumentation", version.ref = "leakcanary" }
material = { module = "com.google.android.material:material", version = "1.2.1" }
+metalava = { module = "com.android.tools.metalava:metalava", version = "1.0.0-alpha04" }
mlkitBarcode = { module = "com.google.mlkit:barcode-scanning", version = "16.1.1" }
mockitoCore = { module = "org.mockito:mockito-core", version.ref = "mockito" }
mockitoAndroid = { module = "org.mockito:mockito-android", version.ref = "mockito" }
diff --git a/leanback/leanback/src/main/java/androidx/leanback/app/GuidedStepFragment.java b/leanback/leanback/src/main/java/androidx/leanback/app/GuidedStepFragment.java
index 8c5573f..0430f95 100644
--- a/leanback/leanback/src/main/java/androidx/leanback/app/GuidedStepFragment.java
+++ b/leanback/leanback/src/main/java/androidx/leanback/app/GuidedStepFragment.java
@@ -144,6 +144,7 @@
* @see GuidedActionsStylist
* @deprecated use {@link GuidedStepSupportFragment}
*/
+@SuppressWarnings("HiddenSuperclass")
@Deprecated
public class GuidedStepFragment extends Fragment implements GuidedActionAdapter.FocusListener {
diff --git a/leanback/leanback/src/main/java/androidx/leanback/app/GuidedStepSupportFragment.java b/leanback/leanback/src/main/java/androidx/leanback/app/GuidedStepSupportFragment.java
index 383ade9..d2c2c6a 100644
--- a/leanback/leanback/src/main/java/androidx/leanback/app/GuidedStepSupportFragment.java
+++ b/leanback/leanback/src/main/java/androidx/leanback/app/GuidedStepSupportFragment.java
@@ -140,6 +140,7 @@
* @see GuidedAction
* @see GuidedActionsStylist
*/
+@SuppressWarnings("HiddenSuperclass")
public class GuidedStepSupportFragment extends Fragment implements GuidedActionAdapter.FocusListener {
private static final String TAG_LEAN_BACK_ACTIONS_FRAGMENT = "leanBackGuidedStepSupportFragment";
diff --git a/media2/media2-common/src/main/java/androidx/media2/common/SessionPlayer.java b/media2/media2-common/src/main/java/androidx/media2/common/SessionPlayer.java
index 6d4ca05..309f453 100644
--- a/media2/media2-common/src/main/java/androidx/media2/common/SessionPlayer.java
+++ b/media2/media2-common/src/main/java/androidx/media2/common/SessionPlayer.java
@@ -1527,6 +1527,7 @@
* <li>Custom Info code: Positive integers equal to or greater than 1000. (i.e. code > +1000)
* </ul>
*/
+ @SuppressWarnings("HiddenSuperclass")
public static class PlayerResult implements BaseResult {
/**
* @hide
diff --git a/remotecallback/remotecallback/src/main/java/androidx/remotecallback/AppWidgetProviderWithCallbacks.java b/remotecallback/remotecallback/src/main/java/androidx/remotecallback/AppWidgetProviderWithCallbacks.java
index 48f1db9..c1620a6 100644
--- a/remotecallback/remotecallback/src/main/java/androidx/remotecallback/AppWidgetProviderWithCallbacks.java
+++ b/remotecallback/remotecallback/src/main/java/androidx/remotecallback/AppWidgetProviderWithCallbacks.java
@@ -33,6 +33,7 @@
* @param <T> Should be specified as the root class (e.g. class X extends
* AppWidgetProviderWithCallbacks\<X>)
*/
+@SuppressWarnings("HiddenSuperclass")
public class AppWidgetProviderWithCallbacks<T extends CallbackReceiver> extends
AppWidgetProvider implements CallbackReceiver<T>, CallbackBase<T> {
diff --git a/remotecallback/remotecallback/src/main/java/androidx/remotecallback/BroadcastReceiverWithCallbacks.java b/remotecallback/remotecallback/src/main/java/androidx/remotecallback/BroadcastReceiverWithCallbacks.java
index 8ef1a1e..4b022c4 100644
--- a/remotecallback/remotecallback/src/main/java/androidx/remotecallback/BroadcastReceiverWithCallbacks.java
+++ b/remotecallback/remotecallback/src/main/java/androidx/remotecallback/BroadcastReceiverWithCallbacks.java
@@ -35,6 +35,7 @@
* @param <T> Should be specified as the root class (e.g. class X extends
* BroadcastReceiverWithCallbacks\<X>)
*/
+@SuppressWarnings("HiddenSuperclass")
public abstract class BroadcastReceiverWithCallbacks<T extends CallbackReceiver> extends
BroadcastReceiver implements CallbackReceiver<T>, CallbackBase<T> {
diff --git a/remotecallback/remotecallback/src/main/java/androidx/remotecallback/ContentProviderWithCallbacks.java b/remotecallback/remotecallback/src/main/java/androidx/remotecallback/ContentProviderWithCallbacks.java
index 5b862ed..b4c4bf6 100644
--- a/remotecallback/remotecallback/src/main/java/androidx/remotecallback/ContentProviderWithCallbacks.java
+++ b/remotecallback/remotecallback/src/main/java/androidx/remotecallback/ContentProviderWithCallbacks.java
@@ -38,6 +38,7 @@
* @param <T> Should be specified as the root class (e.g. class X extends
* ContentProviderWithCallbacks\<X>)
*/
+@SuppressWarnings("HiddenSuperclass")
public abstract class ContentProviderWithCallbacks<T extends ContentProviderWithCallbacks> extends
ContentProvider implements CallbackReceiver<T>, CallbackBase<T> {
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/SliceAdapter.java b/slice/slice-view/src/main/java/androidx/slice/widget/SliceAdapter.java
index 4177377..08781d8 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/SliceAdapter.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/SliceAdapter.java
@@ -47,6 +47,7 @@
/**
* RecyclerView.Adapter for the Slice components.
*/
+@SuppressWarnings("HiddenSuperclass")
@RequiresApi(19)
public class SliceAdapter extends RecyclerView.Adapter<SliceAdapter.SliceViewHolder>
implements SliceActionView.SliceActionLoadingListener {
diff --git a/slice/slice-view/src/main/java/androidx/slice/widget/TemplateView.java b/slice/slice-view/src/main/java/androidx/slice/widget/TemplateView.java
index b443c6a..33f8625 100644
--- a/slice/slice-view/src/main/java/androidx/slice/widget/TemplateView.java
+++ b/slice/slice-view/src/main/java/androidx/slice/widget/TemplateView.java
@@ -37,6 +37,7 @@
/**
* Slice template containing all view components.
*/
+@SuppressWarnings("HiddenSuperclass")
@RequiresApi(19)
public class TemplateView extends SliceChildView implements
SliceViewPolicy.PolicyChangeListener {
diff --git a/wear/wear/src/main/java/androidx/wear/widget/drawer/WearableDrawerLayout.java b/wear/wear/src/main/java/androidx/wear/widget/drawer/WearableDrawerLayout.java
index 1537262..76b945a 100644
--- a/wear/wear/src/main/java/androidx/wear/widget/drawer/WearableDrawerLayout.java
+++ b/wear/wear/src/main/java/androidx/wear/widget/drawer/WearableDrawerLayout.java
@@ -98,6 +98,7 @@
* </androidx.wear.widget.drawer.WearableDrawerView>
* </androidx.wear.widget.drawer.WearableDrawerLayout></pre>
*/
+@SuppressWarnings("HiddenSuperclass")
public class WearableDrawerLayout extends FrameLayout
implements View.OnLayoutChangeListener, NestedScrollingParent, FlingListener {
diff --git a/webkit/webkit/src/main/java/androidx/webkit/WebViewClientCompat.java b/webkit/webkit/src/main/java/androidx/webkit/WebViewClientCompat.java
index 8610f44..701e0e6 100644
--- a/webkit/webkit/src/main/java/androidx/webkit/WebViewClientCompat.java
+++ b/webkit/webkit/src/main/java/androidx/webkit/WebViewClientCompat.java
@@ -47,6 +47,7 @@
// ever invoke these methods (and WebView can only be updated on Lollipop and above). The app can
// still construct a WebViewClientCompat on a pre-Lollipop devices, and explicitly invoke these
// methods, so each of these methods must also handle this case.
+@SuppressWarnings("HiddenSuperclass")
public class WebViewClientCompat extends WebViewClient implements WebViewClientBoundaryInterface {
private static final String[] sSupportedFeatures = new String[] {
Features.VISUAL_STATE_CALLBACK,