Merge changes from topic "drop_circular_dep" into stage-aosp-master am: 70fb81076e am: ec493198bb
am: 412126eedd

Change-Id: If3427de3d3d1d5c1561d93cf9e136bd6ba48d651
diff --git a/Android.bp b/Android.bp
index d13205a..8520d40 100644
--- a/Android.bp
+++ b/Android.bp
@@ -162,49 +162,54 @@
     path: "wifi/java",
 }
 
-framework_srcs = [
-    // Java/AIDL sources under frameworks/base
-    ":framework-core-sources",
-    ":framework-drm-sources",
-    ":framework-graphics-sources",
-    ":framework-keystore-sources",
-    ":framework-location-sources",
-    ":framework-lowpan-sources",
-    ":framework-media-sources",
-    ":framework-mca-effect-sources",
-    ":framework-mca-filterfw-sources",
-    ":framework-mca-filterpacks-sources",
-    ":framework-opengl-sources",
-    ":framework-rs-sources",
-    ":framework-sax-sources",
-    ":framework-telecomm-sources",
-    ":framework-telephony-sources",
-    ":framework-wifi-sources",
-    ":PacProcessor-aidl-sources",
-    ":ProxyHandler-aidl-sources",
+filegroup {
+    name: "framework-srcs",
+    srcs: [
+        // Java/AIDL sources under frameworks/base
+        ":framework-core-sources",
+        ":framework-drm-sources",
+        ":framework-graphics-sources",
+        ":framework-keystore-sources",
+        ":framework-location-sources",
+        ":framework-lowpan-sources",
+        ":framework-media-sources",
+        ":framework-mca-effect-sources",
+        ":framework-mca-filterfw-sources",
+        ":framework-mca-filterpacks-sources",
+        ":framework-opengl-sources",
+        ":framework-rs-sources",
+        ":framework-sax-sources",
+        ":framework-telecomm-sources",
+        ":framework-telephony-sources",
+        ":framework-wifi-sources",
+        ":PacProcessor-aidl-sources",
+        ":ProxyHandler-aidl-sources",
 
-    // AIDL sources from external directories
-    ":dumpstate_aidl",
-    ":framework_native_aidl",
-    ":gatekeeper_aidl",
-    ":gsiservice_aidl",
-    ":incidentcompanion_aidl",
-    ":installd_aidl",
-    ":keystore_aidl",
-    ":libaudioclient_aidl",
-    ":libbinder_aidl",
-    ":libbluetooth-binder-aidl",
-    ":libcamera_client_aidl",
-    ":libcamera_client_framework_aidl",
-    ":libupdate_engine_aidl",
-    ":storaged_aidl",
-    ":vold_aidl",
+        // AIDL sources from external directories
+        ":dumpstate_aidl",
+        ":framework_native_aidl",
+        ":gatekeeper_aidl",
+        ":gsiservice_aidl",
+        ":incidentcompanion_aidl",
+        ":installd_aidl",
+        ":keystore_aidl",
+        ":libaudioclient_aidl",
+        ":libbinder_aidl",
+        ":libbluetooth-binder-aidl",
+        ":libcamera_client_aidl",
+        ":libcamera_client_framework_aidl",
+        ":libupdate_engine_aidl",
+        ":storaged_aidl",
+        ":vold_aidl",
 
-    // etc.
-    "core/java/**/*.logtags",
-    ":framework-javastream-protos",
-    ":framework-statslog-gen",
-]
+        // For the generated R.java and Manifest.java
+        ":framework-res{.aapt.srcjar}",
+
+        // etc.
+        ":framework-javastream-protos",
+        ":framework-statslog-gen",
+    ],
+}
 
 java_defaults {
     name: "framework-aidl-export-defaults",
@@ -231,30 +236,10 @@
     },
 }
 
-java_defaults {
-    name: "framework-defaults",
-    defaults: ["framework-aidl-export-defaults"],
-    installable: true,
-
-    srcs: framework_srcs,
-
-    aidl: {
-        generate_get_transaction_name: true,
-    },
-
-    exclude_srcs: [
-        // See comment on framework-atb-backward-compatibility module below
-        "core/java/android/content/pm/AndroidTestBaseUpdater.java",
-    ],
-
-    sdk_version: "core_platform",
-    libs: [
-        "ext",
-        "updatable_media_stubs",
-    ],
-
-    jarjar_rules: ":framework-jarjar-rules",
-
+// Collection of classes that are generated from non-Java files that are not listed in
+// framework_srcs. These have no or very limited dependency to the framework.
+java_library {
+    name: "framework-internal-utils",
     static_libs: [
         "apex_aidl_interface-java",
         "suspend_control_aidl_interface-java",
@@ -289,6 +274,38 @@
         "com.android.sysprop.apex",
         "PlatformProperties",
     ],
+    sdk_version: "core_platform",
+    installable: false,
+}
+
+java_defaults {
+    name: "framework-defaults",
+    defaults: ["framework-aidl-export-defaults"],
+    installable: true,
+
+    srcs: [
+        ":framework-srcs",
+        "core/java/**/*.logtags",
+    ],
+
+    aidl: {
+        generate_get_transaction_name: true,
+    },
+
+    exclude_srcs: [
+        // See comment on framework-atb-backward-compatibility module below
+        "core/java/android/content/pm/AndroidTestBaseUpdater.java",
+    ],
+
+    sdk_version: "core_platform",
+    libs: [
+        "ext",
+        "updatable_media_stubs",
+    ],
+
+    jarjar_rules: ":framework-jarjar-rules",
+
+    static_libs: ["framework-internal-utils"],
 
     required: [
         // TODO: remove gps_debug when the build system propagates "required" properly.
@@ -744,7 +761,7 @@
     ],
 }
 
-// TODO: Don't rely on this list once droiddoc can take a list of packages to document
+// TODO: Don't rely on this list by switching package.html into package-info.java
 frameworks_base_subdirs = [
     "core/java",
     "graphics/java",
@@ -764,13 +781,6 @@
     "rs/java",
 ]
 
-packages_to_document = [
-    "android",
-    "javax/microedition/khronos",
-    "org/apache/http/conn",
-    "org/apache/http/params",
-]
-
 // Make the api/current.txt file available for use by modules in other
 // directories.
 filegroup {
@@ -871,6 +881,8 @@
 stubs_defaults {
     name: "framework-doc-stubs-default",
     srcs: [
+        ":framework-srcs",
+        "core/java/**/*.logtags",
         "test-base/src/**/*.java",
         ":opt-telephony-srcs",
         ":opt-net-voip-srcs",
@@ -879,8 +891,6 @@
         "test-mock/src/**/*.java",
         "test-runner/src/**/*.java",
     ],
-    srcs_lib: "framework",
-    srcs_lib_whitelist_pkgs: packages_to_document,
     libs: framework_docs_only_libs,
     local_sourcepaths: frameworks_base_subdirs,
     create_doc_stubs: true,
@@ -935,13 +945,14 @@
 stubs_defaults {
     name: "metalava-api-stubs-default",
     srcs: [
+        ":framework-srcs",
+        "core/java/**/*.logtags",
         ":opt-telephony-srcs",
         ":opt-net-voip-srcs",
         ":core_public_api_files",
         ":updatable-media-srcs",
     ],
-    srcs_lib: "framework",
-    srcs_lib_whitelist_pkgs: packages_to_document,
+    libs: ["framework-internal-utils"],
     local_sourcepaths: frameworks_base_subdirs,
     installable: false,
     annotations_enabled: true,
@@ -955,6 +966,7 @@
         "sdk-dir",
         "api-versions-jars-dir",
     ],
+    sdk_version: "core_platform",
 }
 
 droidstubs {
@@ -1318,6 +1330,7 @@
         ":openjdk_java_files",
         ":opt-telephony-common-srcs",
     ],
+
     arg_files: [
         "core/res/AndroidManifest.xml",
     ],
@@ -1452,7 +1465,7 @@
 // annotations to private apis
 aidl_mapping {
     name: "framework-aidl-mappings",
-    srcs: framework_srcs,
+    srcs: [":framework-srcs"],
     output: "framework-aidl-mappings.txt",
 }
 
diff --git a/core/java/com/package.html b/core/java/com/package.html
new file mode 100644
index 0000000..8f35da9
--- /dev/null
+++ b/core/java/com/package.html
@@ -0,0 +1,8 @@
+<!--
+  This file is to hide classes in com.* packages from SDK
+-->
+<html>
+<body>
+    {@hide}
+</body>
+</html>
diff --git a/location/lib/Android.bp b/location/lib/Android.bp
index 1bf5221..349b9e0 100644
--- a/location/lib/Android.bp
+++ b/location/lib/Android.bp
@@ -16,10 +16,9 @@
 
 java_sdk_library {
     name: "com.android.location.provider",
-    srcs: ["java/**/*.java"],
+    srcs: [
+        "java/**/*.java",
+        ":framework-srcs",
+    ],
     api_packages: ["com.android.location.provider"],
-    srcs_lib: "framework",
-    // TODO(b/70046217): remove core/java and android below. It was added to provide definitions for
-    // types like android.os.Bundle
-    srcs_lib_whitelist_pkgs: ["android", "com.android.internal.location"],
 }
diff --git a/media/Android.bp b/media/Android.bp
index 6fa01bf..25aef76 100644
--- a/media/Android.bp
+++ b/media/Android.bp
@@ -58,6 +58,7 @@
         "apex/java/android/media/Session2Link.java",
         "apex/java/android/media/Session2Token.java",
     ],
+    path: "apex/java",
 }
 
 filegroup {
@@ -94,18 +95,17 @@
         ":framework-media-annotation-srcs",
     ],
     args: metalava_updatable_media_args,
-    // Ideally, sdk_version here should be "current_system", but "current - 1" is used
-    // to avoid dependency cycle with framework.
-    sdk_version: "28",
+    aidl: {
+        // TODO(b/135922046) remove this
+        include_dirs: ["frameworks/base/core/java"],
+    },
+    sdk_version: "system_current",
 }
 
 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",
+    sdk_version: "system_current",
 }
 
 java_library {
diff --git a/media/lib/signer/Android.bp b/media/lib/signer/Android.bp
index f04b2fc..85a007f 100644
--- a/media/lib/signer/Android.bp
+++ b/media/lib/signer/Android.bp
@@ -16,8 +16,9 @@
 
 java_sdk_library {
     name: "com.android.mediadrm.signer",
-    srcs: ["java/**/*.java"],
+    srcs: [
+        "java/**/*.java",
+        ":framework-srcs",
+    ],
     api_packages: ["com.android.mediadrm.signer"],
-    srcs_lib: "framework",
-    srcs_lib_whitelist_pkgs: ["android.media"],
 }
diff --git a/test-mock/Android.bp b/test-mock/Android.bp
index fd469a0..34ac3dc 100644
--- a/test-mock/Android.bp
+++ b/test-mock/Android.bp
@@ -19,14 +19,14 @@
 java_sdk_library {
     name: "android.test.mock",
 
-    srcs: ["src/**/*.java"],
+    srcs: [
+        "src/**/*.java",
+        ":framework-srcs",
+    ],
 
     api_packages: [
         "android.test.mock",
     ],
-
-    srcs_lib: "framework",
-    srcs_lib_whitelist_pkgs: ["android"],
     compile_dex: true,
 }