/*
 * Copyright (C) 2019-2020 The LineageOS Project
 * Copyright (C) 2020 Shift GmbH
 *
 * 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: "SHIFTParts",

    // Include SettingsLib and it's dependencies
    defaults: ["SettingsLibDefaults"],

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

    manifest: "AndroidManifest.xml",

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

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

    static_libs: [
        "androidx.appcompat_appcompat",
        "androidx.dynamicanimation_dynamicanimation",
        "androidx.legacy_legacy-support-v13",
        "androidx.palette_palette",
        "androidx.preference_preference",
        "androidx.recyclerview_recyclerview",
        "jsr305",
        "com.shiftos.platform.internal",
    ],

    required: [
        "privapp_whitelist_com.shiftos.shiftparts"
    ],
}

prebuilt_etc {
    name: "privapp_whitelist_com.shiftos.shiftparts",
    sub_dir: "permissions",
    src: "privapp_whitelist_com.shiftos.shiftparts.xml",
    filename_from_src: true,
}
