//
// 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_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",

                "androidx.compose.runtime_runtime",
                "androidx.compose.material3_material3",
                "androidx.activity_activity-compose",
            ],

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

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"],
        },
    },
    resource_dirs: [
        "res-product",
        "res-keyguard",
        "res",
    ],
    static_libs: [
        "WifiTrackerLib",
        "WindowManager-Shell",
        "SystemUIAnimationLib",
        "SystemUIPluginLib",
        "SystemUISharedLib",
        "SystemUICustomizationLib",
        "SystemUI-statsd",
        "SettingsLib",
        "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.test.ext.junit",
        "com.google.android.material_material",
        "kotlinx_coroutines_android",
        "kotlinx_coroutines",
        "iconloader_base",
        "SystemUI-tags",
        "SystemUI-proto",
        "monet",
        "dagger2",
        "jsr330",
        "lottie",
        "LowLightDreamLib",
        "motion_tool_lib",
    ],
    manifest: "AndroidManifest.xml",

    kotlincflags: ["-Xjvm-default=enable"],

    plugins: ["dagger2-compiler"],

    lint: {
        extra_check_modules: ["SystemUILintChecker"],
    },
}

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

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",
    manifest: "tests/AndroidManifest-base.xml",
    resource_dirs: [
        "tests/res",
        "res-product",
        "res-keyguard",
        "res",
    ],
    static_libs: [
        "WifiTrackerLib",
        "SystemUIAnimationLib",
        "SystemUIPluginLib",
        "SystemUISharedLib",
        "SystemUICustomizationLib",
        "SystemUI-statsd",
        "SettingsLib",
        "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",
        "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-prebuilt",
        "monet",
        "dagger2",
        "jsr330",
        "WindowManager-Shell",
        "LowLightDreamLib",
        "motion_tool_lib",
        "androidx.core_core-animation-testing-nodeps",
    ],
}

android_library {
    name: "SystemUI-tests",
    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-utils",
    ],
    static_libs: [
        "SystemUI-tests-base",
        "androidx.test.uiautomator_uiautomator",
        "mockito-target-extended-minus-junit4",
        "androidx.test.ext.junit",
    ],
    libs: [
        "android.test.runner",
        "android.test.base",
        "android.test.mock",
    ],
    kotlincflags: ["-Xjvm-default=enable"],
    aaptflags: [
        "--extra-packages",
        "com.android.systemui",
    ],
    plugins: ["dagger2-compiler"],
    lint: {
        test: true,
    },
}

android_app {
    name: "SystemUIRobo-stub",
    defaults: [
        "platform_app_defaults",
        "SystemUI_app_defaults",
    ],
    manifest: "tests/AndroidManifest-base.xml",
    static_libs: [
        "SystemUI-tests-base",
    ],
    aaptflags: [
        "--extra-packages",
        "com.android.systemui",
    ],
    dont_merge_manifests: true,
    platform_apis: true,
    system_ext_specific: true,
    certificate: "platform",
    privileged: true,
    resource_dirs: [],
}

android_robolectric_test {
    name: "SystemUiRoboTests",
    srcs: [
        "tests/robolectric/src/**/*.kt",
        "tests/robolectric/src/**/*.java",
    ],
    libs: [
        "android.test.runner",
        "android.test.base",
        "android.test.mock",
        "truth-prebuilt",
    ],
    kotlincflags: ["-Xjvm-default=enable"],
    instrumentation_for: "SystemUIRobo-stub",
    java_resource_dirs: ["tests/robolectric/config"],
}

// 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_app_defaults",
    soong_config_variables: {
        SYSTEMUI_OPTIMIZE_JAVA: {
            optimize: {
                enabled: true,
                optimize: true,
                shrink: true,
                proguard_flags_files: ["proguard.flags"],
            },
            conditions_default: {
                optimize: {
                    proguard_flags_files: ["proguard.flags"],
                },
            },
        },
    },
}

android_app {
    name: "SystemUI",
    defaults: [
        "platform_app_defaults",
        "SystemUI_app_defaults",
    ],
    static_libs: [
        "SystemUI-core",
    ],
    resource_dirs: [],

    platform_apis: true,
    system_ext_specific: true,
    certificate: "platform",
    privileged: true,

    kotlincflags: ["-Xjvm-default=enable"],

    dxflags: ["--multi-dex"],
    required: [
        "privapp_whitelist_com.android.systemui",
        "wmshell.protolog.json.gz",
    ],
}
