| // |
| // Copyright (C) 2018 The Android Open Source Project |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| // |
| |
| package { |
| default_team: "trendy_team_system_ui_please_use_a_more_specific_subteam_if_possible_", |
| default_applicable_licenses: ["frameworks_base_packages_SystemUI_license"], |
| } |
| |
| // Added automatically by a large-scale-change |
| // See: http://go/android-license-faq |
| license { |
| name: "frameworks_base_packages_SystemUI_license", |
| visibility: [":__subpackages__"], |
| license_kinds: [ |
| "SPDX-license-identifier-Apache-2.0", |
| ], |
| license_text: [ |
| "NOTICE", |
| ], |
| } |
| |
| java_library { |
| name: "SystemUI-proto", |
| |
| srcs: ["src/**/*.proto"], |
| |
| proto: { |
| type: "nano", |
| }, |
| |
| libs: [ |
| "WindowManager-Shell-proto", |
| ], |
| } |
| |
| java_library { |
| name: "SystemUI-tags", |
| srcs: ["src/com/android/systemui/EventLogTags.logtags"], |
| } |
| |
| filegroup { |
| name: "ReleaseJavaFiles", |
| srcs: [ |
| "src-release/**/*.kt", |
| "src-release/**/*.java", |
| ], |
| } |
| |
| filegroup { |
| name: "DebugJavaFiles", |
| srcs: [ |
| "src-debug/**/*.kt", |
| "src-debug/**/*.java", |
| ], |
| } |
| |
| //Create a library to expose SystemUI's resources to other modules. |
| android_library { |
| name: "SystemUI-res", |
| use_resource_processor: true, |
| resource_dirs: [ |
| "res-product", |
| "res-keyguard", |
| "res", |
| ], |
| static_libs: [ |
| "SystemUISharedLib", |
| "SystemUICustomizationLib", |
| "SettingsLib", |
| "androidx.leanback_leanback", |
| "androidx.slice_slice-core", |
| "androidx.slice_slice-view", |
| ], |
| manifest: "AndroidManifest-res.xml", |
| } |
| |
| android_library { |
| name: "SystemUI-core", |
| srcs: [ |
| "src/**/*.kt", |
| "src/**/*.java", |
| "src/**/I*.aidl", |
| ":ReleaseJavaFiles", |
| "compose/features/src/**/*.kt", |
| "compose/facade/enabled/src/**/*.kt", |
| ], |
| product_variables: { |
| debuggable: { |
| srcs: [":DebugJavaFiles"], |
| exclude_srcs: [":ReleaseJavaFiles"], |
| }, |
| }, |
| use_resource_processor: true, |
| static_libs: [ |
| "SystemUI-res", |
| "WifiTrackerLib", |
| "WindowManager-Shell", |
| "PlatformAnimationLib", |
| "SystemUICommon", |
| "SystemUICustomizationLib", |
| "SystemUILogLib", |
| "SystemUIPluginLib", |
| "SystemUISharedLib", |
| "SystemUI-statsd", |
| "SettingsLib", |
| "com_android_systemui_flags_lib", |
| "com_android_systemui_shared_flags_lib", |
| "androidx.core_core-ktx", |
| "androidx.viewpager2_viewpager2", |
| "androidx.legacy_legacy-support-v4", |
| "androidx.recyclerview_recyclerview", |
| "androidx.preference_preference", |
| "androidx.appcompat_appcompat", |
| "androidx.concurrent_concurrent-futures", |
| "androidx.mediarouter_mediarouter", |
| "androidx.palette_palette", |
| "androidx.legacy_legacy-preference-v14", |
| "androidx.leanback_leanback", |
| "androidx.slice_slice-core", |
| "androidx.slice_slice-view", |
| "androidx.slice_slice-builders", |
| "androidx.arch.core_core-runtime", |
| "androidx.lifecycle_lifecycle-common-java8", |
| "androidx.lifecycle_lifecycle-extensions", |
| "androidx.lifecycle_lifecycle-runtime-ktx", |
| "androidx.dynamicanimation_dynamicanimation", |
| "androidx-constraintlayout_constraintlayout", |
| "androidx.exifinterface_exifinterface", |
| "androidx.room_room-runtime", |
| "androidx.room_room-ktx", |
| "com.google.android.material_material", |
| "device_state_flags_lib", |
| "kotlinx_coroutines_android", |
| "kotlinx_coroutines", |
| "iconloader_base", |
| "SystemUI-tags", |
| "SystemUI-proto", |
| "monet", |
| "libmonet", |
| "dagger2", |
| "jsr305", |
| "jsr330", |
| "lottie", |
| "LowLightDreamLib", |
| "motion_tool_lib", |
| "notification_flags_lib", |
| "PlatformComposeCore", |
| "PlatformComposeSceneTransitionLayout", |
| "androidx.compose.runtime_runtime", |
| "androidx.compose.material3_material3", |
| "androidx.compose.material_material-icons-extended", |
| "androidx.activity_activity-compose", |
| "androidx.compose.animation_animation-graphics", |
| ], |
| libs: [ |
| "keepanno-annotations", |
| ], |
| manifest: "AndroidManifest.xml", |
| |
| javacflags: [ |
| "-Adagger.fastInit=enabled", |
| "-Adagger.explicitBindingConflictsWithInject=ERROR", |
| "-Adagger.strictMultibindingValidation=enabled", |
| "-Aroom.schemaLocation=frameworks/base/packages/SystemUI/schemas", |
| ], |
| kotlincflags: ["-Xjvm-default=all"], |
| |
| plugins: [ |
| "androidx.room_room-compiler-plugin", |
| "dagger2-compiler", |
| ], |
| |
| lint: { |
| extra_check_modules: ["SystemUILintChecker"], |
| warning_checks: ["MissingApacheLicenseDetector"], |
| }, |
| skip_jarjar_repackage: true, |
| } |
| |
| filegroup { |
| name: "AAA-src", |
| srcs: ["tests/src/com/android/AAAPlusPlusVerifySysuiRequiredTestPropertiesTest.java"], |
| path: "tests/src", |
| } |
| |
| filegroup { |
| name: "SystemUI-tests-utils", |
| srcs: [ |
| "tests/utils/src/**/*.java", |
| "tests/utils/src/**/*.kt", |
| ], |
| path: "tests/utils/src", |
| } |
| |
| filegroup { |
| name: "SystemUI-tests-multivalent", |
| srcs: [ |
| "multivalentTests/src/**/*.kt", |
| "multivalentTests/src/**/*.java", |
| ], |
| path: "multivalentTests/src", |
| } |
| |
| java_library { |
| name: "SystemUI-tests-concurrency", |
| srcs: [ |
| "src/com/android/systemui/util/concurrency/DelayableExecutor.java", |
| "src/com/android/systemui/util/time/SystemClock.java", |
| "tests/utils/src/com/android/systemui/util/concurrency/FakeExecutor.java", |
| "tests/utils/src/com/android/systemui/util/time/FakeSystemClock.java", |
| ], |
| jarjar_rules: ":jarjar-rules-shared", |
| } |
| |
| android_library { |
| name: "SystemUI-tests-base", |
| use_resource_processor: true, |
| manifest: "tests/AndroidManifest-base.xml", |
| resource_dirs: [ |
| "tests/res", |
| ], |
| static_libs: [ |
| "SystemUI-res", |
| "WifiTrackerLib", |
| "PlatformAnimationLib", |
| "SystemUIPluginLib", |
| "SystemUISharedLib", |
| "SystemUICustomizationLib", |
| "SystemUICustomizationTestUtils", |
| "SystemUI-statsd", |
| "SettingsLib", |
| "com_android_systemui_flags_lib", |
| "com_android_systemui_shared_flags_lib", |
| "flag-junit-base", |
| "platform-parametric-runner-lib", |
| "androidx.viewpager2_viewpager2", |
| "androidx.legacy_legacy-support-v4", |
| "androidx.recyclerview_recyclerview", |
| "androidx.preference_preference", |
| "androidx.appcompat_appcompat", |
| "androidx.concurrent_concurrent-futures", |
| "androidx.mediarouter_mediarouter", |
| "androidx.palette_palette", |
| "androidx.legacy_legacy-preference-v14", |
| "androidx.leanback_leanback", |
| "androidx.slice_slice-core", |
| "androidx.slice_slice-view", |
| "androidx.slice_slice-builders", |
| "androidx.arch.core_core-runtime", |
| "androidx.lifecycle_lifecycle-common-java8", |
| "androidx.lifecycle_lifecycle-extensions", |
| "androidx.lifecycle_lifecycle-runtime-ktx", |
| "androidx.dynamicanimation_dynamicanimation", |
| "androidx-constraintlayout_constraintlayout", |
| "androidx.exifinterface_exifinterface", |
| "androidx.room_room-runtime", |
| "androidx.room_room-ktx", |
| "device_state_flags_lib", |
| "kotlinx-coroutines-android", |
| "kotlinx-coroutines-core", |
| "kotlinx_coroutines_test", |
| "kotlin-reflect", |
| "iconloader_base", |
| "SystemUI-tags", |
| "SystemUI-proto", |
| "metrics-helper-lib", |
| "hamcrest-library", |
| "androidx.test.rules", |
| "testables", |
| "truth", |
| "monet", |
| "libmonet", |
| "dagger2", |
| "jsr330", |
| "WindowManager-Shell", |
| "LowLightDreamLib", |
| "motion_tool_lib", |
| "androidx.core_core-animation-testing-nodeps", |
| "androidx.compose.ui_ui", |
| "flag-junit", |
| "ravenwood-junit", |
| "platform-test-annotations", |
| "notification_flags_lib", |
| "PlatformComposeCore", |
| "PlatformComposeSceneTransitionLayout", |
| "androidx.compose.runtime_runtime", |
| "androidx.compose.material3_material3", |
| "androidx.compose.material_material-icons-extended", |
| "androidx.activity_activity-compose", |
| "androidx.compose.animation_animation-graphics", |
| ], |
| } |
| |
| android_library { |
| name: "SystemUI-tests", |
| use_resource_processor: true, |
| manifest: "tests/AndroidManifest-base.xml", |
| additional_manifests: ["tests/AndroidManifest.xml"], |
| srcs: [ |
| "tests/src/**/*.kt", |
| "tests/src/**/*.java", |
| "src/**/*.kt", |
| "src/**/*.java", |
| "src/**/I*.aidl", |
| ":ReleaseJavaFiles", |
| ":SystemUI-tests-multivalent", |
| ":SystemUI-tests-utils", |
| "compose/features/src/**/*.kt", |
| "compose/facade/enabled/src/**/*.kt", |
| ], |
| static_libs: [ |
| "SystemUI-tests-base", |
| "androidx.test.uiautomator_uiautomator", |
| "androidx.core_core-animation-testing", |
| "mockito-target-extended-minus-junit4", |
| "androidx.test.ext.junit", |
| "androidx.test.ext.truth", |
| "kotlin-test", |
| "SystemUICustomizationTestUtils", |
| "androidx.compose.runtime_runtime", |
| ], |
| libs: [ |
| "android.test.runner", |
| "android.test.base", |
| "android.test.mock", |
| "keepanno-annotations", |
| ], |
| kotlincflags: ["-Xjvm-default=all"], |
| aaptflags: [ |
| "--extra-packages", |
| "com.android.systemui", |
| ], |
| plugins: [ |
| "androidx.room_room-compiler-plugin", |
| "dagger2-compiler", |
| ], |
| lint: { |
| test: true, |
| extra_check_modules: ["SystemUILintChecker"], |
| }, |
| } |
| |
| android_app { |
| name: "SystemUIRobo-stub", |
| // SystemUiRavenTests references the .aapt.srcjar |
| use_resource_processor: false, |
| defaults: [ |
| "platform_app_defaults", |
| "SystemUI_optimized_defaults", |
| ], |
| manifest: "tests/AndroidManifest-base.xml", |
| |
| srcs: [ |
| "src/**/*.kt", |
| "src/**/*.java", |
| "src/**/I*.aidl", |
| ":ReleaseJavaFiles", |
| "compose/features/src/**/*.kt", |
| "compose/facade/enabled/src/**/*.kt", |
| ], |
| static_libs: [ |
| "SystemUI-tests-base", |
| "androidx.compose.runtime_runtime", |
| ], |
| libs: [ |
| "keepanno-annotations", |
| ], |
| aaptflags: [ |
| "--extra-packages", |
| "com.android.systemui", |
| ], |
| dont_merge_manifests: true, |
| platform_apis: true, |
| system_ext_specific: true, |
| certificate: "platform", |
| privileged: true, |
| resource_dirs: [], |
| kotlincflags: ["-Xjvm-default=all"], |
| optimize: { |
| shrink_resources: false, |
| proguard_flags_files: ["proguard.flags"], |
| }, |
| |
| plugins: ["dagger2-compiler"], |
| } |
| |
| android_robolectric_test { |
| name: "SystemUiRoboTests", |
| srcs: [ |
| "tests/robolectric/src/**/*.kt", |
| "tests/robolectric/src/**/*.java", |
| ":SystemUI-tests-utils", |
| ":SystemUI-tests-multivalent", |
| ], |
| static_libs: [ |
| "dagger2", |
| "androidx.test.uiautomator_uiautomator", |
| "androidx.core_core-animation-testing", |
| "androidx.test.ext.junit", |
| "inline-mockito-robolectric-prebuilt", |
| "platform-parametric-runner-lib", |
| "SystemUICustomizationTestUtils", |
| ], |
| libs: [ |
| "android.test.runner", |
| "android.test.base", |
| "android.test.mock", |
| "truth", |
| ], |
| |
| upstream: true, |
| |
| instrumentation_for: "SystemUIRobo-stub", |
| java_resource_dirs: ["tests/robolectric/config"], |
| plugins: [ |
| "dagger2-compiler", |
| ], |
| } |
| |
| android_ravenwood_test { |
| name: "SystemUiRavenTests", |
| srcs: [ |
| ":SystemUI-tests-utils", |
| ":SystemUI-tests-multivalent", |
| // TODO(b/294256649): pivot to using {.aapt.jar} and re-enable |
| // use_resource_processor: true when better supported by soong |
| ":SystemUIRobo-stub{.aapt.srcjar}", |
| ], |
| static_libs: [ |
| "SystemUI-core", |
| "SystemUI-res", |
| "SystemUI-tests-base", |
| "androidx.test.uiautomator_uiautomator", |
| "androidx.core_core-animation-testing", |
| "androidx.test.ext.junit", |
| ], |
| libs: [ |
| "android.test.runner", |
| "android.test.base", |
| "android.test.mock", |
| ], |
| auto_gen_config: true, |
| plugins: [ |
| "dagger2-compiler", |
| ], |
| } |
| |
| // Opt-out config for optimizing the SystemUI target using R8. |
| // Disabled via `export SYSTEMUI_OPTIMIZE_JAVA=false`, or explicitly in Make via |
| // `SYSTEMUI_OPTIMIZE_JAVA := false`. |
| soong_config_module_type { |
| name: "systemui_optimized_java_defaults", |
| module_type: "java_defaults", |
| config_namespace: "ANDROID", |
| bool_variables: ["SYSTEMUI_OPTIMIZE_JAVA"], |
| properties: ["optimize"], |
| } |
| |
| systemui_optimized_java_defaults { |
| name: "SystemUI_optimized_defaults", |
| soong_config_variables: { |
| SYSTEMUI_OPTIMIZE_JAVA: { |
| optimize: { |
| enabled: true, |
| optimize: true, |
| shrink: true, |
| shrink_resources: true, |
| ignore_warnings: false, |
| proguard_compatibility: false, |
| }, |
| conditions_default: { |
| optimize: { |
| ignore_warnings: false, |
| proguard_compatibility: false, |
| }, |
| }, |
| }, |
| }, |
| } |
| |
| android_app { |
| name: "SystemUI", |
| defaults: [ |
| "platform_app_defaults", |
| "SystemUI_optimized_defaults", |
| ], |
| static_libs: [ |
| "SystemUI-core", |
| ], |
| resource_dirs: [], |
| |
| use_resource_processor: true, |
| platform_apis: true, |
| system_ext_specific: true, |
| certificate: "platform", |
| privileged: true, |
| |
| kotlincflags: ["-Xjvm-default=all"], |
| |
| dxflags: ["--multi-dex"], |
| optimize: { |
| proguard_flags_files: ["proguard.flags"], |
| }, |
| required: [ |
| "privapp_whitelist_com.android.systemui", |
| "wmshell.protolog.json.gz", |
| "wmshell.protolog.pb", |
| ], |
| } |