//
// 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.
//

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

android_library {
    name: "SystemUI-core",
    srcs: [
        "src/**/*.kt",
        "src/**/*.java",
        "src/**/I*.aidl",
    ],
    resource_dirs: [
        "res-product",
        "res-keyguard",
        "res",
    ],
    static_libs: [
        "WindowManager-Shell",
        "SystemUIPluginLib",
        "SystemUISharedLib",
        "SystemUI-statsd",
        "SettingsLib",
        "androidx.viewpager2_viewpager2",
        "androidx.legacy_legacy-support-v4",
        "androidx.recyclerview_recyclerview",
        "androidx.preference_preference",
        "androidx.appcompat_appcompat",
        "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-extensions",
        "androidx.dynamicanimation_dynamicanimation",
        "androidx-constraintlayout_constraintlayout",
        "kotlinx-coroutines-android",
        "kotlinx-coroutines-core",
        "iconloader_base",
        "SystemUI-tags",
        "SystemUI-proto",
        "dagger2",
        "jsr330"
    ],
    manifest: "AndroidManifest.xml",

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

    plugins: ["dagger2-compiler"],
}

filegroup {
    name: "SystemUI-tests-utils",
    srcs: [
        "tests/src/com/android/systemui/statusbar/notification/collection/NotificationEntryBuilder.java",
        "tests/src/com/android/systemui/statusbar/RankingBuilder.java",
        "tests/src/com/android/systemui/statusbar/SbnBuilder.java",
        "tests/src/com/android/systemui/util/concurrency/FakeExecutor.java",
        "tests/src/com/android/systemui/util/time/FakeSystemClock.java",
    ],
    path: "tests/src",
}

android_library {
    name: "SystemUI-tests",
    manifest: "tests/AndroidManifest-base.xml",
    additional_manifests: ["tests/AndroidManifest.xml"],

    resource_dirs: [
        "tests/res",
        "res-product",
        "res-keyguard",
        "res",
    ],
    srcs: [
        "tests/src/**/*.kt",
        "tests/src/**/*.java",
        "src/**/*.kt",
        "src/**/*.java",
        "src/**/I*.aidl",
    ],
    static_libs: [
        "SystemUIPluginLib",
        "SystemUISharedLib",
        "SystemUI-statsd",
        "SettingsLib",
        "androidx.viewpager2_viewpager2",
        "androidx.legacy_legacy-support-v4",
        "androidx.recyclerview_recyclerview",
        "androidx.preference_preference",
        "androidx.appcompat_appcompat",
        "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-extensions",
        "androidx.dynamicanimation_dynamicanimation",
        "androidx-constraintlayout_constraintlayout",
        "kotlinx-coroutines-android",
        "kotlinx-coroutines-core",
        "iconloader_base",
        "SystemUI-tags",
        "SystemUI-proto",
        "metrics-helper-lib",
        "hamcrest-library",
        "androidx.test.rules",
        "androidx.test.uiautomator",
        "mockito-target-extended-minus-junit4",
        "testables",
        "truth-prebuilt",
        "dagger2",
        "jsr330",
        "WindowManager-Shell",
    ],
    libs: [
        "android.test.runner",
        "android.test.base",
    ],
    kotlincflags: ["-Xjvm-default=enable"],
    aaptflags: [
        "--extra-packages",
        "com.android.systemui",
    ],
    plugins: ["dagger2-compiler"],
}

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

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

    optimize: {
        proguard_flags_files: ["proguard.flags"],
    },

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

    dxflags: ["--multi-dex"],
    required: [
        "privapp_whitelist_com.android.systemui",
        "checked-wm_shell_protolog.json",
    ],

}
