//
// Copyright (C) 2021 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.
//

//
// Build rule for WallpaperPicker2 dependencies lib.
//
package {
    default_applicable_licenses: ["Android-Apache-2.0"],
}

android_library {
    name: "WallpaperPicker2Lib",
    platform_apis: true,

    static_libs: [
        "androidx.activity_activity-ktx",
        "androidx.appcompat_appcompat",
        "androidx.cardview_cardview",
        "androidx-constraintlayout_constraintlayout",
        "androidx.exifinterface_exifinterface",
        "androidx.lifecycle_lifecycle-livedata-ktx",
        "androidx.lifecycle_lifecycle-runtime-ktx",
        "androidx.recyclerview_recyclerview",
        "androidx.slice_slice-view",
        "androidx.transition_transition-ktx",
        "androidx.viewpager2_viewpager2",
        "androidx.navigation_navigation-ui-ktx",
        "androidx.navigation_navigation-fragment-ktx",
        "com.google.android.material_material",
        "com_android_wallpaper_flags_lib",
        "glide-prebuilt",
        "glide-gifdecoder-prebuilt",
        "glide-disklrucache-prebuilt",
        "kotlinx-coroutines-android",
        "kotlinx-coroutines-core",
        "libbackup",
        "SettingsLibCollapsingToolbarBaseActivity",
        "SettingsLibSettingsTheme",
        "subsampling-scale-image-view",
        "SystemUISharedLib",
        "SystemUICustomizationLib",
        "volley",
        "SettingsLibActivityEmbedding",
        "monet",
        "android-support-v7-recyclerview",
        "flexbox",
        "hilt_android",
        "accessibility_settings_flags_lib",
        "WindowManager-Shell-shared-AOSP",
        // Compose
        "PlatformComposeCore",
        "androidx.activity_activity-compose",
        "androidx.compose.foundation_foundation",
        "androidx.compose.foundation_foundation-layout",
        "androidx.compose.material3_material3",
        "androidx.compose.runtime_runtime",
        "androidx.compose.ui_ui",
        "androidx.compose.ui_ui-tooling",
        "androidx.lifecycle_lifecycle-runtime-compose",
        "androidx.lifecycle_lifecycle-viewmodel-compose",
        "grpc-java-api",
        "grpc-java-protobuf-lite",
        "grpc-java-context",
        "grpc-java-core",
        "grpc-java-core-util",
        "grpc-java-core-internal",
        "grpc-java-stub",
        "grpc-java-binder",
        "PlatformComposeSceneTransitionLayout",
    ],

    resource_dirs: [
        "res",
    ],

    srcs: [
        "src/**/*.java",
        "src/**/*.kt",
    ],

    optimize: {
        enabled: false,
    },

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

    manifest: "AndroidManifest-empty.xml",

    visibility: [
        ":__subpackages__",
        "//packages/apps/ThemePicker:__subpackages__",
        "//vendor:__subpackages__",
    ],
}

// Production-only files that should be excluded in tests.
filegroup {
    name: "WallpaperPicker2_src_prod",
    visibility: [":__subpackages__"],
    srcs: ["src_override/com/android/wallpaper/picker/WallpapersApplication.java"],
}

java_library {
    name: "WallpaperPicker2OverridesLib",
    srcs: [
        "src_override/**/*.java",
        "src_override/**/*.kt",
    ],
    exclude_srcs: [
        ":WallpaperPicker2_src_prod",
    ],
    libs: [
        "WallpaperPicker2Lib",
        "hilt_android",
    ],
}

java_library {
    name: "WallpaperPicker2ApplicationLib",
    srcs: [":WallpaperPicker2_src_prod"],
    libs: [
        "WallpaperPicker2Lib",
        "WallpaperPicker2OverridesLib",
        "hilt_android",
    ],
}

filegroup {
    name: "WallpaperPicker2_Manifest",
    srcs: [
        "AndroidManifest.xml",
    ],
}

java_defaults {
    name: "WallpaperPicker2_defaults",

    certificate: "",

    optimize: {
        enabled: false,
    },

    kotlincflags: ["-Xjvm-default=all"],
    privileged: true,
    system_ext_specific: true,

    use_embedded_native_libs: true,

    static_libs: [
        "WallpaperPicker2Lib",
        "hilt_android",
    ],
}

java_defaults {
    name: "WallpaperPicker2_defaults_with_overrides",
    defaults: ["WallpaperPicker2_defaults"],

    static_libs: [
        "WallpaperPicker2OverridesLib",
    ],
}

//
// Build app code.
//
android_app {
    name: "WallpaperPicker2",
    package_name: "com.android.wallpaper",

    defaults: ["WallpaperPicker2_defaults_with_overrides"],
    manifest: ":WallpaperPicker2_Manifest",

    platform_apis: true,
    overrides: ["WallpaperPicker"],
    static_libs: ["WallpaperPicker2ApplicationLib"],
}
