Add updatable_media_stubs to prevent private API use.
Also resolve dependency cycle between framework and updatable-media.
Bug: 123551910, Bug: 123253805
Test: build
Change-Id: I220bc32319b53d77a14b7e9a36ab0faca0003d66
diff --git a/Android.bp b/Android.bp
index c6cf75d..a467a04 100644
--- a/Android.bp
+++ b/Android.bp
@@ -735,6 +735,7 @@
no_framework_libs: true,
libs: [
"ext",
+ "updatable_media_stubs",
],
jarjar_rules: "jarjar_rules_hidl.txt",
@@ -1296,7 +1297,7 @@
":non_openjdk_javadoc_files",
":android_icu4j_src_files_for_docs",
":conscrypt_public_api_files",
- ":media-srcs-without-aidls",
+ ":updatable-media-srcs-without-aidls",
"test-mock/src/**/*.java",
"test-runner/src/**/*.java",
],
@@ -1358,7 +1359,7 @@
":non_openjdk_javadoc_files",
":android_icu4j_src_files_for_docs",
":conscrypt_public_api_files",
- ":media-srcs-without-aidls",
+ ":updatable-media-srcs-without-aidls",
],
srcs_lib: "framework",
srcs_lib_whitelist_dirs: frameworks_base_subdirs,
diff --git a/media/Android.bp b/media/Android.bp
index c7d5ace..1c9a7f0 100644
--- a/media/Android.bp
+++ b/media/Android.bp
@@ -2,8 +2,7 @@
name: "updatable-media",
srcs: [
- ":mediaplayer2-srcs",
- ":mediasession2-srcs",
+ ":updatable-media-srcs",
":framework-media-annotation-srcs",
],
@@ -12,8 +11,12 @@
"apex/java",
],
+ // It would be great if we don't need to add include_dirs for public
+ // parcelable classes. Find a better way.
include_dirs: [
- // For the usage of android.os.Bundle and android.os.ResultReceiver in aidl files
+ // To refer:
+ // android.os.Bundle
+ // android.os.ResultReceiver
"frameworks/base/core/java",
],
},
@@ -29,7 +32,15 @@
}
filegroup {
- name: "media-srcs-without-aidls",
+ name: "updatable-media-srcs",
+ srcs: [
+ ":mediasession2-srcs",
+ ":mediaplayer2-srcs",
+ ],
+}
+
+filegroup {
+ name: "updatable-media-srcs-without-aidls",
srcs : [
":mediasession2-srcs-without-aidls",
":mediaplayer2-srcs",
@@ -84,3 +95,32 @@
"apex/java/android/media/BufferingParams.java",
],
}
+
+metalava_updatable_media_args = " --error UnhiddenSystemApi " +
+ "--hide RequiresPermission " +
+ "--hide MissingPermission --hide BroadcastBehavior " +
+ "--hide HiddenSuperclass --hide DeprecationMismatch --hide UnavailableSymbol " +
+ "--hide SdkConstant --hide HiddenTypeParameter --hide Todo --hide Typo " +
+ "--hide HiddenTypedefConstant "
+
+droidstubs {
+ name: "updatable-media-stubs",
+ srcs: [
+ ":updatable-media-srcs-without-aidls",
+ ":framework-media-annotation-srcs",
+ ],
+ args: metalava_updatable_media_args + " --show-annotation android.annotation.SystemApi " +
+ " --show-annotation android.annotation.TestApi ",
+ // Ideally, sdk_version here should be "current_system", but "current - 1" is used
+ // to avoid dependency cycle with framework.
+ sdk_version: "28",
+}
+
+java_library {
+ name: "updatable_media_stubs",
+ srcs: [":updatable-media-stubs"],
+ // Ideally, sdk_version here should be "current_system", but "current - 1" is used
+ // to avoid dependency cycle with framework.
+ sdk_version: "28",
+}
+