//
// 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.compose.material_material-icons-extended",
                "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",
        "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",
    ],
    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",
        "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",
    ],
}

android_library {
    name: "SystemUI-tests",
    use_resource_processor: true,
    defaults: [
        "SystemUI_compose_defaults",
    ],
    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",
    ],
    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",
    ],
    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",
        "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,
        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",
    ],
}
