// 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 {
    // See: http://go/android-license-faq
    default_applicable_licenses: ["Android-Apache-2.0"],
}

min_launcher3_sdk_version = "26"

// Common source files used to build launcher (java and kotlin)
// All sources are split so they can be reused in many other libraries/apps in other folders
filegroup {
    name: "launcher-src",
    srcs: [
        "src/**/*.java",
        "src/**/*.kt",
    ],
}

filegroup {
    name: "launcher-quickstep-src",
    srcs: [
        "quickstep/src/**/*.java",
        "quickstep/src/**/*.kt",
    ],
}

filegroup {
    name: "launcher-go-src",
    srcs: [
        "go/src/**/*.java",
        "go/src/**/*.kt",
    ],
}

filegroup {
    name: "launcher-go-quickstep-src",
    srcs: [
        "go/quickstep/src/**/*.java",
        "go/quickstep/src/**/*.kt",
    ],
}

filegroup {
    name: "launcher-src_shortcuts_overrides",
    srcs: [
        "src_shortcuts_overrides/**/*.java",
        "src_shortcuts_overrides/**/*.kt",
    ],
}

filegroup {
    name: "launcher-src_ui_overrides",
    srcs: [
        "src_ui_overrides/**/*.java",
        "src_ui_overrides/**/*.kt",
    ],
}

filegroup {
    name: "launcher-ext_tests",
    srcs: [
        "ext_tests/**/*.java",
        "ext_tests/**/*.kt",
    ],
}

filegroup {
    name: "launcher-quickstep-ext_tests",
    srcs: [
        "quickstep/ext_tests/**/*.java",
        "quickstep/ext_tests/**/*.kt",
    ],
}

// Proguard files for Launcher3
filegroup {
    name: "launcher-proguard-rules",
    srcs: ["proguard.flags"],
}

android_library {
    name: "launcher-aosp-tapl",
    libs: [
        "framework-statsd",
    ],
    static_libs: [
        "androidx.annotation_annotation",
        "androidx.test.runner",
        "androidx.test.rules",
        "androidx.test.uiautomator_uiautomator",
        "androidx.preference_preference",
        "SystemUISharedLib",
        "animationlib",
        "launcher-testing-shared",
    ],
    srcs: [
        "tests/multivalentTests/tapl/**/*.java",
        "tests/multivalentTests/tapl/**/*.kt",
    ],
    resource_dirs: [],
    manifest: "tests/multivalentTests/tapl/AndroidManifest.xml",
    platform_apis: true,
}

java_library_static {
    name: "launcher_log_protos_lite",
    srcs: [
        "protos/*.proto",
        "protos_overrides/*.proto",
    ],
    sdk_version: "current",
    proto: {
        type: "lite",
        local_include_dirs: [
            "protos",
            "protos_overrides",
        ],
    },
    static_libs: ["libprotobuf-java-lite"],
}

java_library_static {
    name: "launcher_quickstep_log_protos_lite",
    srcs: [
        "quickstep/protos_overrides/*.proto",
    ],
    sdk_version: "current",
    proto: {
        type: "lite",
        local_include_dirs: [
            "quickstep/protos_overrides",
        ],
    },
    static_libs: [
        "libprotobuf-java-lite",
        "launcher_log_protos_lite",
    ],
}

java_library {
    name: "LauncherPluginLib",

    static_libs: ["PluginCoreLib"],

    srcs: ["src_plugins/**/*.java"],

    sdk_version: "current",
    min_sdk_version: min_launcher3_sdk_version,
}

// Library with all the dependencies for building Launcher3
android_library {
    name: "Launcher3ResLib",
    srcs: [],
    resource_dirs: ["res"],
    static_libs: [
        "LauncherPluginLib",
        "launcher_quickstep_log_protos_lite",
        "androidx-constraintlayout_constraintlayout",
        "androidx.recyclerview_recyclerview",
        "androidx.dynamicanimation_dynamicanimation",
        "androidx.fragment_fragment",
        "androidx.preference_preference",
        "androidx.slice_slice-view",
        "androidx.cardview_cardview",
        "androidx.window_window",
        "com.google.android.material_material",
        "iconloader_base",
        "view_capture",
        "animationlib",
    ],
    manifest: "AndroidManifest-common.xml",
    sdk_version: "current",
    min_sdk_version: min_launcher3_sdk_version,
    lint: {
        baseline_filename: "lint-baseline2.xml",
    },
}

//
// Build rule for Launcher3 dependencies lib.
//
android_library {
    name: "Launcher3CommonDepsLib",
    srcs: ["src_build_config/**/*.java"],
    static_libs: [
        "SystemUI-statsd",
        "Launcher3ResLib",
        "launcher-testing-shared",
        "animationlib",
        "com_android_launcher3_flags_lib",
        "com_android_wm_shell_flags_lib",
        "android.appwidget.flags-aconfig-java",
    ],
    sdk_version: "current",
    min_sdk_version: min_launcher3_sdk_version,
    manifest: "AndroidManifest-common.xml",
    lint: {
        baseline_filename: "lint-baseline2.xml",
    },
}

//
// Build rule for Launcher3 app.
//
android_app {
    name: "Launcher3",

    static_libs: [
        "Launcher3CommonDepsLib",
    ],
    srcs: [
        ":launcher-src",
        ":launcher-src_shortcuts_overrides",
        ":launcher-src_ui_overrides",
        ":launcher-ext_tests",
    ],
    resource_dirs: [
        "ext_tests/res",
    ],
    optimize: {
        proguard_flags_files: ["proguard.flags"],
        // Proguard is disable for testing. Derivarive prjects to keep proguard enabled
        enabled: false,
    },

    sdk_version: "current",
    min_sdk_version: min_launcher3_sdk_version,
    target_sdk_version: "current",
    privileged: true,
    system_ext_specific: true,

    overrides: [
        "Home",
        "Launcher2",
    ],
    required: ["privapp_whitelist_com.android.launcher3"],

    jacoco: {
        include_filter: ["com.android.launcher3.**"],
    },
    additional_manifests: [
        "AndroidManifest-common.xml",
    ],
    lint: {
        baseline_filename: "lint-baseline.xml",
    },
}

// Library with all the dependencies for building quickstep
android_library {
    name: "QuickstepResLib",
    srcs: [],
    resource_dirs: [
        "quickstep/res",
    ],
    libs: [
        "framework-statsd",
    ],
    static_libs: [
        "Launcher3ResLib",
        "lottie",
        "SystemUISharedLib",
        "SettingsLibSettingsTheme",
        "SystemUI-statsd",
        "animationlib",
    ],
    manifest: "quickstep/AndroidManifest.xml",
    min_sdk_version: "current",
}

// Library with all the dependencies for building Launcher Go
android_library {
    name: "LauncherGoResLib",
    srcs: [
        ":launcher-src",
        ":launcher-quickstep-src",
        ":launcher-go-src",
        ":launcher-go-quickstep-src",
    ],
    resource_dirs: [
        "go/res",
        "go/quickstep/res",
    ],
    // Note the ordering here is important when it comes to resource
    // overriding. We want the most specific resource overrides defined
    // in QuickstepResLib to take precendece, so it should be the final
    // dependency. See b/205278434 for how this can go wrong.
    static_libs: [
        "Launcher3CommonDepsLib",
        "QuickstepResLib",
        "androidx.room_room-runtime",
    ],
    plugins: ["androidx.room_room-compiler-plugin"],
    manifest: "quickstep/AndroidManifest.xml",
    additional_manifests: [
        "go/AndroidManifest.xml",
        "AndroidManifest-common.xml",
    ],
    min_sdk_version: "current",
    // TODO(b/319712088): re-enable use_resource_processor
    use_resource_processor: false,
}

// Build rule for Quickstep library
android_library {
    name: "Launcher3QuickStepLib",
    srcs: [
        ":launcher-src",
        ":launcher-quickstep-src",
        ":launcher-src_shortcuts_overrides",
    ],
    resource_dirs: [],
    libs: [
        "framework-statsd",
    ],
    // Note the ordering here is important when it comes to resource
    // overriding. We want the most specific resource overrides defined
    // in QuickstepResLib to take precendece, so it should be the final
    // dependency. See b/208647810 for how this can go wrong.
    static_libs: [
        "SystemUI-statsd",
        "SystemUISharedLib",
        "Launcher3CommonDepsLib",
        "QuickstepResLib",
        "animationlib",
    ],
    manifest: "quickstep/AndroidManifest.xml",
    platform_apis: true,
    min_sdk_version: "current",
    // TODO(b/319712088): re-enable use_resource_processor
    use_resource_processor: false,
}

// Build rule for Launcher3 Go app for Android Go devices.
android_app {
    name: "Launcher3Go",

    static_libs: ["Launcher3CommonDepsLib"],

    srcs: [
        ":launcher-src",
        ":launcher-go-src",
        ":launcher-src_ui_overrides",
    ],

    resource_dirs: ["go/res"],

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

    sdk_version: "current",
    min_sdk_version: "current",
    target_sdk_version: "current",
    privileged: true,
    system_ext_specific: true,
    overrides: [
        "Home",
        "Launcher2",
        "Launcher3",
        "Launcher3QuickStep",
    ],
    required: ["privapp_whitelist_com.android.launcher3"],

    additional_manifests: [
        "AndroidManifest.xml",
        "AndroidManifest-common.xml",
    ],

    manifest: "go/AndroidManifest.xml",
    jacoco: {
        include_filter: ["com.android.launcher3.*"],
    },

}

// Build rule for Quickstep app.
android_app {
    name: "Launcher3QuickStep",

    static_libs: ["Launcher3QuickStepLib"],
    optimize: {
        enabled: false,
    },

    platform_apis: true,
    min_sdk_version: "current",
    target_sdk_version: "current",

    privileged: true,
    system_ext_specific: true,
    overrides: [
        "Home",
        "Launcher2",
        "Launcher3",
    ],
    required: ["privapp_whitelist_com.android.launcher3"],

    resource_dirs: ["quickstep/res"],

    additional_manifests: [
        "quickstep/AndroidManifest-launcher.xml",
        "AndroidManifest-common.xml",
    ],

    manifest: "quickstep/AndroidManifest.xml",
    jacoco: {
        include_filter: ["com.android.launcher3.*"],
    },

}

// Build rule for Launcher3 Go app with quickstep for Android Go devices.
android_app {
    name: "Launcher3QuickStepGo",

    static_libs: [
        "SystemUI-statsd",
        "SystemUISharedLib",
        "LauncherGoResLib",
    ],

    platform_apis: true,
    min_sdk_version: "current",
    target_sdk_version: "current",

    srcs: [],

    resource_dirs: [
        "go/quickstep/res",
        "go/res",
        "quickstep/res",
    ],

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

    privileged: true,
    system_ext_specific: true,
    overrides: [
        "Home",
        "Launcher2",
        "Launcher3",
        "Launcher3QuickStep",
    ],
    required: ["privapp_whitelist_com.android.launcher3"],

    additional_manifests: [
        "go/AndroidManifest.xml",
        "go/AndroidManifest-launcher.xml",
        "AndroidManifest-common.xml",
    ],

    manifest: "quickstep/AndroidManifest.xml",
    jacoco: {
        include_filter: ["com.android.launcher3.*"],
    },

}
