Simplify ThemePicker dependencies
Replace ThemePicker_common_defaults, ThemePicker_srcs and
ThemePicker_res with a single ThemePickerLib android_library.
This will compile ThemePicker_srcs and ThemePicker_res a single
time instead of in every module.
Also replace the ThemePicker_src_overrides with a ThemePickerOverridesLib
java_library.
Bug: 319160342
Test: builds
Test: atest --host ThemePickerRoboTests
Flag: NA
Change-Id: Ia55daf02a86c331d77d33187b1173e13422f3fc1
diff --git a/Android.bp b/Android.bp
index e6c07a8..4b78713 100644
--- a/Android.bp
+++ b/Android.bp
@@ -19,22 +19,6 @@
default_applicable_licenses: ["Android-Apache-2.0"],
}
-filegroup {
- name: "ThemePicker_srcs",
- srcs: [
- "src/**/*.java",
- "src/**/*.kt",
- ],
-}
-
-filegroup {
- name: "ThemePicker_src_overrides",
- srcs: [
- "src_override/**/*.java",
- "src_override/**/*.kt",
- ],
-}
-
// Production-only files that should be excluded in tests.
filegroup {
name: "ThemePicker_src_prod",
@@ -42,6 +26,30 @@
srcs: ["src_override/com/android/customization/picker/CustomizationPickerApplication.java"],
}
+java_library {
+ name: "ThemePickerOverridesLib",
+ srcs: [
+ "src_override/**/*.java",
+ "src_override/**/*.kt",
+ ],
+ exclude_srcs: [":ThemePicker_src_prod"],
+ libs: [
+ "hilt_android",
+ "ThemePickerLib",
+ ],
+}
+
+java_library {
+ name: "ThemePickerApplicationLib",
+ srcs: [":ThemePicker_src_prod"],
+ libs: [
+ "hilt_android",
+ "ThemePickerLib",
+ "ThemePickerOverridesLib",
+ ],
+}
+
+
filegroup {
name: "ThemePicker_Manifest",
srcs: [
@@ -49,33 +57,8 @@
],
}
-genrule {
- name: "ThemePicker_res",
- tools: ["soong_zip"],
- srcs: [
- "res/**/*",
- ],
- out: ["ThemePicker_res.zip"],
- cmd: "INPUTS=($(in)) && "
- + "RES_DIR=$$(dirname $$(dirname $${INPUTS[0]})) && "
- + "$(location soong_zip) -o $(out) -C $$RES_DIR -D $$RES_DIR"
-}
-
-genrule {
- name: "ThemePicker_res_overrides",
- tools: ["soong_zip"],
- srcs: [
- "res_override/**/*",
- ],
- out: ["ThemePicker_res_overrides.zip"],
- cmd: "INPUTS=($(in)) && "
- + "RES_DIR=$$(dirname $$(dirname $${INPUTS[0]})) && "
- + "$(location soong_zip) -o $(out) -C $$RES_DIR -D $$RES_DIR"
-}
-
-// Common defaults that doesn't have ThemePicker specifics.
-java_defaults {
- name: "ThemePicker_common_defaults",
+android_library {
+ name: "ThemePickerLib",
static_libs: [
"guava",
@@ -93,20 +76,35 @@
"hilt_android",
],
- jni_libs: [
- "librenderscript-toolkit",
+ srcs: [
+ "src/**/*.java",
+ "src/**/*.kt",
],
- srcs: [
- ":ThemePicker_srcs",
+ resource_dirs: [
+ "res",
+ "res_override",
+ ],
+
+ manifest: "AndroidManifest-empty.xml",
+}
+
+java_defaults {
+ name: "ThemePicker_defaults",
+ static_libs: [
+ "ThemePickerLib",
+ "ThemePickerOverridesLib",
+ "hilt_android",
+ ],
+
+ jni_libs: [
+ "librenderscript-toolkit",
],
required: ["android.software.theme_picker.xml"],
use_embedded_native_libs: true,
- resource_zips: [":ThemePicker_res", ":ThemePicker_res_overrides"],
-
optimize: {
enabled: false,
},
@@ -117,12 +115,6 @@
system_ext_specific: true,
}
-java_defaults {
- name: "ThemePicker_defaults",
- defaults: ["ThemePicker_common_defaults"],
- srcs: [":ThemePicker_src_overrides"],
-}
-
prebuilt_etc {
name: "android.software.theme_picker.xml",
system_ext_specific: true,
@@ -141,4 +133,5 @@
manifest: "AndroidManifest.xml",
additional_manifests: [":WallpaperPicker2_Manifest"],
overrides: ["WallpaperPicker", "WallpaperPicker2"],
+ static_libs: ["ThemePickerApplicationLib"],
}
diff --git a/AndroidManifest-empty.xml b/AndroidManifest-empty.xml
new file mode 100644
index 0000000..848ee0d
--- /dev/null
+++ b/AndroidManifest-empty.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ package="com.android.wallpaper">
+</manifest>
diff --git a/src/com/android/customization/module/ThemePickerInjector.kt b/src/com/android/customization/module/ThemePickerInjector.kt
index 23b776f..9e63127 100644
--- a/src/com/android/customization/module/ThemePickerInjector.kt
+++ b/src/com/android/customization/module/ThemePickerInjector.kt
@@ -89,7 +89,7 @@
@Singleton
open class ThemePickerInjector
@Inject
-internal constructor(
+constructor(
@MainDispatcher private val mainScope: CoroutineScope,
@MainDispatcher private val mainDispatcher: CoroutineDispatcher,
@BackgroundDispatcher private val bgScope: CoroutineScope,
diff --git a/tests/common/Android.bp b/tests/common/Android.bp
index 9215ba6..06c3834 100644
--- a/tests/common/Android.bp
+++ b/tests/common/Android.bp
@@ -23,12 +23,12 @@
android_library {
name: "ThemePickerTestLib",
- defaults: ["ThemePicker_common_defaults"],
srcs: [
"src/**/*.java",
"src/**/*.kt",
],
static_libs: [
+ "ThemePickerLib",
"WallpaperPicker2TestLib",
"androidx.annotation_annotation",
"kotlinx_coroutines_test",
diff --git a/tests/robotests/Android.bp b/tests/robotests/Android.bp
index 296d2ca..0a0a57f 100644
--- a/tests/robotests/Android.bp
+++ b/tests/robotests/Android.bp
@@ -25,6 +25,7 @@
"kotlinx_coroutines_test",
"truth",
"SystemUICustomizationTestUtils",
+ "ThemePickerApplicationLib",
],
libs: [