commit 37a2effb0711324d36421e896d0f9a7b2b8c4e49 Author: lucaslin Date: Wed Dec 30 10:19:09 2020 +0800 Have a new library - netd-client in frameworks/libs/net Move BaseNetdUnsolicitedEventListener from tethering module to frameworks/libs/net and have a new library for it. Tethering module can still use BaseNetdUnsolicitedEventListener through netd-client and ConnectivityService and Nat464Xlat also can use it when both of them are under frameworks/base. Bug: 174837473 Test: Manual test and check the log. Change-Id: I44dff1c7639e50b8f20b54c6d5733139b20e2986 diff --git a/staticlibs/client-libs/Android.bp b/staticlibs/client-libs/Android.bp new file mode 100644 index 0000000000..f6d781c048 --- /dev/null +++ b/staticlibs/client-libs/Android.bp @@ -0,0 +1,19 @@ +java_library { + name: "netd-client", + srcs: ["netd/**/*"], + sdk_version: "system_current", + min_sdk_version: "29", + apex_available: [ + "//apex_available:platform", + "com.android.tethering" + ], + visibility: [ + "//packages/modules/Connectivity/Tethering", + "//frameworks/base/services:__subpackages__" + ], + libs: ["androidx.annotation_annotation"], + static_libs: [ + "netd_aidl_interface-java", + "netd_event_listener_interface-java" + ] +} diff --git a/staticlibs/client-libs/netd/com/android/net/module/util/BaseNetdUnsolicitedEventListener.java b/staticlibs/client-libs/netd/com/android/net/module/util/BaseNetdUnsolicitedEventListener.java new file mode 100644 index 0000000000..526dd8b1cb --- /dev/null +++ b/staticlibs/client-libs/netd/com/android/net/module/util/BaseNetdUnsolicitedEventListener.java @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2019 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 com.android.net.module.util; + +import android.net.INetdUnsolicitedEventListener; + +import androidx.annotation.NonNull; + +/** + * Base {@link INetdUnsolicitedEventListener} that provides no-op implementations which can be + * overridden. + */ +public class BaseNetdUnsolicitedEventListener extends INetdUnsolicitedEventListener.Stub { + + @Override + public void onInterfaceClassActivityChanged(boolean isActive, int timerLabel, long timestampNs, + int uid) { } + + @Override + public void onQuotaLimitReached(@NonNull String alertName, @NonNull String ifName) { } + + @Override + public void onInterfaceDnsServerInfo(@NonNull String ifName, long lifetimeS, + @NonNull String[] servers) { } + + @Override + public void onInterfaceAddressUpdated(@NonNull String addr, String ifName, int flags, + int scope) { } + + @Override + public void onInterfaceAddressRemoved(@NonNull String addr, @NonNull String ifName, int flags, + int scope) { } + + @Override + public void onInterfaceAdded(@NonNull String ifName) { } + + @Override + public void onInterfaceRemoved(@NonNull String ifName) { } + + @Override + public void onInterfaceChanged(@NonNull String ifName, boolean up) { } + + @Override + public void onInterfaceLinkStateChanged(@NonNull String ifName, boolean up) { } + + @Override + public void onRouteChanged(boolean updated, @NonNull String route, @NonNull String gateway, + @NonNull String ifName) { } + + @Override + public void onStrictCleartextDetected(int uid, @NonNull String hex) { } + + @Override + public int getInterfaceVersion() { + return INetdUnsolicitedEventListener.VERSION; + } + + @Override + public String getInterfaceHash() { + return INetdUnsolicitedEventListener.HASH; + } +}