//
// Copyright (C) 2021 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.
//

// NetworkStats related libraries.

filegroup {
    name: "services.connectivity-netstats-sources",
    srcs: [
        "src/com/android/server/net/NetworkIdentity*.java",
        "src/com/android/server/net/NetworkStats*.java",
        "src/com/android/server/net/BpfInterfaceMapUpdater.java",
        "src/com/android/server/net/InterfaceMapValue.java",
        "src/com/android/server/net/CookieTagMapKey.java",
        "src/com/android/server/net/CookieTagMapValue.java",
        "src/com/android/server/net/StatsMapKey.java",
        "src/com/android/server/net/StatsMapValue.java",
        "src/com/android/server/net/UidStatsMapKey.java",
    ],
    path: "src",
    visibility: [
        "//visibility:private",
    ],
}

// For test code only.
filegroup {
    name: "lib_networkStatsFactory_native",
    srcs: [
        "jni/com_android_server_net_NetworkStatsFactory.cpp",
    ],
    path: "jni",
    visibility: [
        "//packages/modules/Connectivity:__subpackages__",
    ],
}

filegroup {
    name: "services.connectivity-netstats-jni-sources",
    srcs: [
        "jni/com_android_server_net_NetworkStatsFactory.cpp",
        "jni/com_android_server_net_NetworkStatsService.cpp",
    ],
    path: "jni",
    visibility: [
        "//packages/modules/Connectivity:__subpackages__",
    ],
}

// Connectivity-T common libraries.

// TODO: remove this empty filegroup.
filegroup {
    name: "services.connectivity-tiramisu-sources",
    srcs: [],
    path: "src",
    visibility: ["//frameworks/base/services/core"],
}

cc_library_shared {
    name: "libcom_android_net_module_util_jni",
    min_sdk_version: "30",
    cflags: [
        "-Wall",
        "-Werror",
        "-Wno-unused-parameter",
        "-Wthread-safety",
    ],
    srcs: [
        "jni/onload.cpp",
    ],
    stl: "libc++_static",
    static_libs: [
        "libnet_utils_device_common_bpfjni",
    ],
    shared_libs: [
        "liblog",
        "libnativehelper",
    ],
    apex_available: [
        "//apex_available:platform",
    ],
}
