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

android_app {
    name: "Seedvault",
    srcs: [
        "app/src/main/java/**/*.kt",
        "app/src/main/java/**/*.java",
    ],
    resource_dirs: [
        "app/src/main/res",
    ],
    static_libs: [
        "kotlin-stdlib-jdk8",
        "androidx.core_core-ktx",
        "androidx.fragment_fragment-ktx",
        "androidx.activity_activity-ktx",
        "androidx.preference_preference",
        "androidx.documentfile_documentfile",
        "androidx.work_work-runtime-ktx",
        "androidx.lifecycle_lifecycle-viewmodel-ktx",
        "androidx.lifecycle_lifecycle-livedata-ktx",
        "androidx-constraintlayout_constraintlayout",
        "com.google.android.material_material",
        "kotlinx-coroutines-android",
        "kotlinx-coroutines-core",
        // storage backup lib
        "seedvault-lib-storage",
        // koin
        "seedvault-lib-koin-core-jvm", // did not manage to add this as transitive dependency
        "seedvault-lib-koin-android",
        // bip39
        "seedvault-lib-kotlin-bip39",
    ],
    manifest: "app/src/main/AndroidManifest.xml",

    platform_apis: true,
    system_ext_specific: true,
    certificate: "platform",
    privileged: true,
    required: [
        "LocalContactsBackup",
        "com.stevesoltys.backup_allowlist",
        "com.stevesoltys.backup_default-permissions",
        "com.stevesoltys.backup_privapp_allowlist"
    ],
    optimize: {
        enabled: false,
    },
}

prebuilt_etc {
    name: "com.stevesoltys.backup_allowlist",
    system_ext_specific: true,
    sub_dir: "sysconfig",
    src: "allowlist_com.stevesoltys.seedvault.xml",
    filename_from_src: true,
}

prebuilt_etc {
    name: "com.stevesoltys.backup_default-permissions",
    system_ext_specific: true,
    sub_dir: "default-permissions",
    src: "default-permissions_com.stevesoltys.seedvault.xml",
    filename_from_src: true,
}

prebuilt_etc {
    name: "com.stevesoltys.backup_privapp_allowlist",
    system_ext_specific: true,
    sub_dir: "permissions",
    src: "permissions_com.stevesoltys.seedvault.xml",
    filename_from_src: true,
}
