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

package {
    default_team: "trendy_team_fwk_telephony",
    // See: http://go/android-license-faq
    default_applicable_licenses: ["Android-Apache-2.0"],
}

// Build the Phone app which includes the emergency dialer. See Contacts
// for the 'other' dialer.
android_app {
    name: "TeleService",

    libs: [
        "telephony-common",
        "voip-common",
        "ims-common",
        "libprotobuf-java-lite",
        "app-compat-annotations",
        "unsupportedappusage",
        "org.apache.http.legacy.stubs.system",
    ],

    static_libs: [
        "androidx.appcompat_appcompat",
        "androidx.preference_preference",
        "androidx.recyclerview_recyclerview",
        "androidx.legacy_legacy-preference-v14",
        "android-support-annotations",
        "com.android.phone.common-lib",
        "guava",
        "PlatformProperties",
        "modules-utils-fastxmlserializer",
        "modules-utils-os",
        "nist-sip",
        "service-entitlement",
        "android.permission.flags-aconfig-java-export",
        "satellite-s2storage-ro",
        "s2-geometry-library-java",
        "dropbox_flags_lib",
    ],

    srcs: [
        ":framework-telephony-common-shared-srcs",
        "src/**/*.java",
        "ecc/proto/**/*.proto",
        "src/com/android/phone/EventLogTags.logtags",
    ],

    jarjar_rules: ":jarjar-rules-shared",

    resource_dirs: [
        "res",
    ],

    asset_dirs: [
        "assets",
        "ecc/output",
    ],

    platform_apis: true,

    certificate: "platform",
    privileged: true,

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

    proto: {
        type: "lite",
    },

    generate_product_characteristics_rro: true,
}

// Allow other applications to use public constants from SlicePurchaseController
java_library {
    name: "SlicePurchaseController",
    srcs: ["src/com/android/phone/slice/*.java"],
    libs: [
        "telephony-common",
        "service-entitlement",
    ],
}

platform_compat_config {
    name: "TeleService-platform-compat-config",
    src: ":TeleService",
}
