//  Copyright (C) 2015 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",
    ],
}

soong_config_module_type {
    name: "messaging_java_defaults",
    module_type: "java_defaults",
    config_namespace: "messaging",
    bool_variables: ["build_variant_eng"],
    properties: ["optimize"],
}

messaging_java_defaults {
    name: "messaging_defaults",
    soong_config_variables: {
        build_variant_eng: {
            optimize: {
                proguard_flags_files: [
                    "proguard.flags",
                    "proguard-test.flags",
                ],
            },
            conditions_default: {
                optimize: {
                    proguard_flags_files: [
                        "proguard.flags",
                        "proguard-release.flags",
                    ],
                }
            },
        },
    },
}


android_app {
    name: "messaging",

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

    defaults: ["messaging_defaults"],

    static_libs: [
        "androidx.appcompat_appcompat",
        "androidx.collection_collection",
        "androidx.core_core",
        "androidx.fragment_fragment",
        "androidx.media_media",
        "androidx.legacy_legacy-support-core-utils",
        "androidx.legacy_legacy-support-core-ui",
        "androidx.palette_palette",
        "androidx.recyclerview_recyclerview",
        "androidx.viewpager_viewpager",
        "androidx.legacy_legacy-support-v13",
        "colorpicker",
        "libchips",
        "libphotoviewer",
        "androidx.annotation_annotation",
        "android-common",
        "android-common-framesequence",
        "com.android.vcard",
        "guava",
        "libphonenumber",
    ],

    aaptflags: [
        "--version-name",
        "1.0.001",
        "--version-code",
        "10001040",
    ],
    required: [
        "libframesequence",
        "libgiftranscode",
        "com.android.messaging.allowlist",
    ],
    optimize: {
        obfuscate: true,
        optimize: true,
        enabled: true,
    },

    sdk_version: "current",

    product_specific: true,
}

prebuilt_etc {
    name: "com.android.messaging.allowlist",
    product_specific: true,
    sub_dir: "sysconfig",
    src: "com.android.messaging.allowlist.xml",
    filename_from_src: true,
}
