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

aidl_interface {
    name: "connectivity_native_aidl_interface",
    local_include_dir: "binder",
    vendor_available: true,
    srcs: [
        "binder/android/net/connectivity/aidl/*.aidl",
    ],
    backend: {
        java: {
            apex_available: [
                "com.android.tethering",
            ],
            min_sdk_version: "30",
        },
        ndk: {
            apex_available: [
                "com.android.tethering",
            ],
            min_sdk_version: "30",
        },
    },
    versions: ["1"],

}

cc_library_static {
    name: "connectivity_native_aidl_interface-lateststable-ndk",
    min_sdk_version: "30",
    whole_static_libs: [
        "connectivity_native_aidl_interface-V1-ndk",
    ],
    apex_available: [
        "com.android.tethering",
    ],
}

java_library {
    name: "connectivity_native_aidl_interface-lateststable-java",
    sdk_version: "system_current",
    min_sdk_version: "30",
    static_libs: [
        "connectivity_native_aidl_interface-V1-java",
    ],
    apex_available: [
        "com.android.tethering",
    ],
}

// The library name match the service-connectivity jarjar rules that put the JNI utils in the
// android.net.connectivity.com.android.net.module.util package.
cc_library_shared {
    name: "libandroid_net_connectivity_com_android_net_module_util_jni",
    min_sdk_version: "30",
    cflags: [
        "-Wall",
        "-Werror",
        "-Wno-unused-parameter",
        "-Wthread-safety",
    ],
    srcs: [
        "jni/com_android_net_module_util/onload.cpp",
    ],
    static_libs: [
        "libnet_utils_device_common_bpfjni",
        "libnet_utils_device_common_bpfutils",
    ],
    shared_libs: [
        "liblog",
        "libnativehelper",
    ],
    apex_available: [
        "com.android.tethering",
    ],
}

cc_library_shared {
    name: "libservice-connectivity",
    min_sdk_version: "30",
    cflags: [
        "-Wall",
        "-Werror",
        "-Wno-unused-parameter",
        "-Wthread-safety",
    ],
    srcs: [
        ":services.connectivity-netstats-jni-sources",
        "jni/com_android_server_BpfNetMaps.cpp",
        "jni/com_android_server_connectivity_ClatCoordinator.cpp",
        "jni/com_android_server_TestNetworkService.cpp",
        "jni/onload.cpp",
    ],
    header_libs: [
        "bpf_connectivity_headers",
    ],
    static_libs: [
        "libclat",
        "libip_checksum",
        "libmodules-utils-build",
        "libnetjniutils",
        "libnet_utils_device_common_bpfjni",
        "libtraffic_controller",
        "netd_aidl_interface-lateststable-ndk",
    ],
    shared_libs: [
        "libbase",
        "libcutils",
        "libnetdutils",
        "liblog",
        "libnativehelper",
        "libnetworkstats",
    ],
    apex_available: [
        "com.android.tethering",
    ],
}

java_library {
    name: "service-connectivity-pre-jarjar",
    sdk_version: "system_server_current",
    min_sdk_version: "30",
    srcs: [
        "src/**/*.java",
        ":framework-connectivity-shared-srcs",
        ":services-connectivity-shared-srcs",
        // TODO: move to net-utils-device-common
        ":connectivity-module-utils-srcs",
    ],
    libs: [
        "framework-annotations-lib",
        "framework-connectivity-pre-jarjar",
        "framework-connectivity-t.stubs.module_lib",
        "framework-tethering.stubs.module_lib",
        "framework-wifi.stubs.module_lib",
        "unsupportedappusage",
        "ServiceConnectivityResources",
    ],
    static_libs: [
        // Do not add libs here if they are already included
        // in framework-connectivity
        "connectivity-net-module-utils-bpf",
        "connectivity_native_aidl_interface-lateststable-java",
        "dnsresolver_aidl_interface-V9-java",
        "modules-utils-shell-command-handler",
        "net-utils-device-common",
        "net-utils-device-common-bpf",
        "net-utils-device-common-netlink",
        "net-utils-services-common",
        "netd-client",
        "networkstack-client",
        "PlatformProperties",
        "service-connectivity-protos",
        "NetworkStackApiStableShims",
    ],
    apex_available: [
        "com.android.tethering",
    ],
    lint: { strict_updatability_linting: true },
    visibility: [
        "//packages/modules/Connectivity/service-t",
        "//packages/modules/Connectivity/tests:__subpackages__",
    ],
}

// TODO: Remove this temporary library and put code into module when test coverage is enough.
java_library {
    name: "service-mdns",
    sdk_version: "system_server_current",
    min_sdk_version: "30",
    srcs: [
        "mdns/**/*.java",
    ],
    libs: [
        "framework-annotations-lib",
        "framework-connectivity-pre-jarjar",
        "framework-wifi.stubs.module_lib",
        "service-connectivity-pre-jarjar",
    ],
    visibility: [
        "//packages/modules/Connectivity/tests:__subpackages__",
    ],
}

java_library {
    name: "service-connectivity-protos",
    sdk_version: "system_current",
    min_sdk_version: "30",
    proto: {
        type: "nano",
    },
    srcs: [
        ":system-messages-proto-src",
    ],
    libs: ["libprotobuf-java-nano"],
    apex_available: [
        "com.android.tethering",
    ],
    lint: { strict_updatability_linting: true },
}

java_defaults {
    name: "service-connectivity-defaults",
    sdk_version: "system_server_current",
    min_sdk_version: "30",
    // This library combines system server jars that have access to different bootclasspath jars.
    // Lower SDK service jars must not depend on higher SDK jars as that would let them
    // transitively depend on the wrong bootclasspath jars. Sources also cannot be added here as
    // they would depend on bootclasspath jars that may not be available.
    static_libs: [
        "service-connectivity-pre-jarjar",
        "service-connectivity-tiramisu-pre-jarjar",
        "service-nearby-pre-jarjar",
    ],
    // The below libraries are not actually needed to build since no source is compiled
    // (only combining prebuilt static_libs), but they are necessary so that R8 has the right
    // references to optimize the code. Without these, there will be missing class warnings and
    // code may be wrongly optimized.
    // R8 runs after jarjar, so the framework-X libraries need to be the post-jarjar artifacts
    // (.impl), if they are not just stubs, so that the name of jarjared classes match.
    libs: [
        "androidx.annotation_annotation",
        "framework-annotations-lib",
        "framework-connectivity.impl",
        "framework-connectivity-t.impl",
        "framework-tethering.stubs.module_lib",
        "framework-wifi.stubs.module_lib",
        "libprotobuf-java-nano",
    ],
    jarjar_rules: ":connectivity-jarjar-rules",
    apex_available: [
        "com.android.tethering",
    ],
    optimize: {
        enabled: true,
        shrink: true,
        proguard_flags_files: ["proguard.flags"],
    },
    lint: { strict_updatability_linting: true },
}

// A special library created strictly for use by the tests as they need the
// implementation library but that is not available when building from prebuilts.
// Using a library with a different name to what is used by the prebuilts ensures
// that this will never depend on the prebuilt.
// Switching service-connectivity to a java_sdk_library would also have worked as
// that has built in support for managing this but that is too big a change at this
// point.
java_library {
    name: "service-connectivity-for-tests",
    defaults: ["service-connectivity-defaults"],
}

java_library {
    name: "service-connectivity",
    defaults: ["service-connectivity-defaults"],
    installable: true,
}

genrule {
    name: "connectivity-jarjar-rules",
    defaults: ["jarjar-rules-combine-defaults"],
    srcs: [
        ":framework-connectivity-jarjar-rules",
        ":service-connectivity-jarjar-gen",
        ":service-nearby-jarjar-gen",
    ],
    out: ["connectivity-jarjar-rules.txt"],
    visibility: ["//packages/modules/Connectivity:__subpackages__"],
}

// TODO: This filegroup temporary exposes for NetworkStats. It should be
// removed right after NetworkStats moves into mainline module.
filegroup {
    name: "traffic-controller-utils",
    srcs: ["src/com/android/server/BpfNetMaps.java"],
    visibility: ["//packages/modules/Connectivity:__subpackages__"],
}

java_genrule {
    name: "service-connectivity-jarjar-gen",
    tool_files: [
        ":service-connectivity-pre-jarjar{.jar}",
        ":service-connectivity-tiramisu-pre-jarjar{.jar}",
        "jarjar-excludes.txt",
    ],
    tools: [
        "jarjar-rules-generator",
    ],
    out: ["service_connectivity_jarjar_rules.txt"],
    cmd: "$(location jarjar-rules-generator) " +
        "--jars $(location :service-connectivity-pre-jarjar{.jar}) " +
        "$(location :service-connectivity-tiramisu-pre-jarjar{.jar}) " +
        "--prefix android.net.connectivity " +
        "--excludes $(location jarjar-excludes.txt) " +
        "--output $(out)",
    visibility: ["//visibility:private"],
}

java_genrule {
    name: "service-nearby-jarjar-gen",
    tool_files: [
        ":service-nearby-pre-jarjar{.jar}",
        "jarjar-excludes.txt",
    ],
    tools: [
        "jarjar-rules-generator",
    ],
    out: ["service_nearby_jarjar_rules.txt"],
    cmd: "$(location jarjar-rules-generator) " +
        "--jars $(location :service-nearby-pre-jarjar{.jar}) " +
        "--prefix com.android.server.nearby " +
        "--excludes $(location jarjar-excludes.txt) " +
        "--output $(out)",
    visibility: ["//visibility:private"],
}
