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"],
 }