// Copyright 2018 Google Inc. All rights reserved.
//
// 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.


filegroup {
    name: "opt-telephony-srcs",
    srcs: [
        "src/java/android/telephony/**/*.java",
    ],
    path: "src/java",
}

filegroup {
    name: "opt-telephony-htmls",
    srcs: [
        "src/java/android/telephony/**/*.html",
    ],
}

filegroup {
    name: "opt-telephony-common-srcs",
    srcs: [
        "src/java/**/*.java",
    ],
    path: "src/java",
}

filegroup {
    name: "jarjar-rules-shared",
    srcs: ["jarjar-rules-shared.txt"],
}

android_app {
    name: "telephony-resources",
    installable: true,

    resource_dirs: [
        "res",
    ],

    platform_apis: true,
    manifest: "AndroidManifest_Resources.xml",
    export_package_resources: true,

    product_variables: {
        pdk: {
            // enable this build only when platform library is available
            enabled: false,
        },
    },
}

java_library {
    name: "telephony-common",
    installable: true,

    aidl: {
        local_include_dirs: ["src/java"],
    },
    srcs: [
        ":opt-telephony-common-srcs",
        ":framework-telephony-stack-shared-srcs",
        "src/java/**/I*.aidl",
        "src/java/**/*.logtags",
    ],

    jarjar_rules: ":jarjar-rules-shared",

    libs: [
        "android.hardware.radio-V1.0-java",
        "android.hardware.radio-V1.1-java",
        "android.hardware.radio-V1.2-java",
        "android.hardware.radio-V1.3-java",
        "android.hardware.radio-V1.4-java",
        "android.hardware.radio-V1.5-java",
        "voip-common",
        "ims-common",
        "services",
        "unsupportedappusage",
        "telephony-resources",
    ],
    required: ["telephony-resources"],
    static_libs: [
        "android.hardware.radio.config-V1.0-java-shallow",
        "android.hardware.radio.config-V1.1-java-shallow",
        "android.hardware.radio.config-V1.2-java-shallow",
        "android.hardware.radio.config-V1.3-java-shallow",
        "android.hardware.radio.deprecated-V1.0-java-shallow",
        "ecc-protos-lite",
        "libphonenumber-nogeocoder",
        "PlatformProperties",
        "telephony-protos",
    ],

    product_variables: {
        pdk: {
            // enable this build only when platform library is available
            enabled: false,
        },
    },
}
