blob: b48cac58d7ba424626581d68b22e354445efe0c5 [file] [log] [blame]
//
// 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",
],
}
// Opt-in configuration for code depending on Jetpack Compose.
soong_config_module_type {
name: "systemui_compose_java_defaults",
module_type: "java_defaults",
config_namespace: "ANDROID",
bool_variables: ["SYSTEMUI_USE_COMPOSE"],
properties: [
"srcs",
"static_libs",
],
}
systemui_compose_java_defaults {
name: "SystemUI_compose_defaults",
soong_config_variables: {
SYSTEMUI_USE_COMPOSE: {
// Because files in compose/features/ depend on SystemUI
// code, we compile those files when compiling SystemUI-core.
// We also compile the ComposeFacade in
// compose/facade/enabled/.
srcs: [
"compose/features/src/**/*.kt",
"compose/facade/enabled/src/**/*.kt",
],
// The dependencies needed by SystemUIComposeFeatures,
// except for SystemUI-core.
// Copied from compose/features/Android.bp.
static_libs: [
"PlatformComposeCore",
"PlatformComposeSceneTransitionLayout",
"androidx.compose.runtime_runtime",
"androidx.compose.material3_material3",
"androidx.activity_activity-compose",
"androidx.compose.animation_animation-graphics",
],
// By default, Compose is disabled and we compile the ComposeFacade
// in compose/facade/disabled/.
conditions_default: {
srcs: ["compose/facade/disabled/src/**/*.kt"],
static_libs: [],
},
},
},
}
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",
defaults: [
"SystemUI_compose_defaults",
],
srcs: [
"src/**/*.kt",
"src/**/*.java",
"src/**/I*.aidl",
":ReleaseJavaFiles",
],
product_variables: {
debuggable: {
srcs: [":DebugJavaFiles"],
exclude_srcs: [":ReleaseJavaFiles"],
},
},
use_resource_processor: true,
static_libs: [
"SystemUI-res",
"WifiTrackerLib",
"WindowManager-Shell",
"SystemUIAnimationLib",
"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",
],
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"],
},
}
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",
"SystemUIAnimationLib",
"SystemUIPluginLib",
"SystemUISharedLib",
"SystemUICustomizationLib",
"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",
"androidx.compose.ui_ui",
"flag-junit",
"platform-test-annotations",
"notification_flags_lib",
],
}
android_library {
name: "SystemUI-tests",
use_resource_processor: true,
defaults: [
"SystemUI_compose_defaults",
],
manifest: "tests/AndroidManifest-base.xml",
resource_dirs: [],
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",
],
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",
],
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",
use_resource_processor: true,
defaults: [
"platform_app_defaults",
"SystemUI_optimized_defaults",
"SystemUI_compose_defaults",
],
manifest: "tests/AndroidManifest-base.xml",
srcs: [
"src/**/*.kt",
"src/**/*.java",
"src/**/I*.aidl",
":ReleaseJavaFiles",
],
static_libs: [
"SystemUI-tests-base",
],
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,
optimized_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",
],
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",
],
}
// 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,
optimized_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",
],
}