[automerger skipped] Add lint baseline to address NewApi errors am: 81be76f836 am: aaa189659c am: 24dc1361c0 -s ours
am skip reason: skip tag Change-Id I2c38dac481685470af8be115d867953325e75d94 with SHA-1 db38f2665a is already in history
Original change: https://android-review.googlesource.com/c/platform/frameworks/libs/net/+/1675805
Change-Id: I45bc191ea4afffd79748794c587bfb2f926bd04f
diff --git a/staticlibs/Android.bp b/staticlibs/Android.bp
index 74aafd3..f52a4af 100644
--- a/staticlibs/Android.bp
+++ b/staticlibs/Android.bp
@@ -84,7 +84,10 @@
name: "net-utils-framework-common-srcs",
srcs: ["framework/**/*.java"],
path: "framework",
- visibility: ["//frameworks/base"],
+ visibility: [
+ "//frameworks/base",
+ "//frameworks/base/packages/Connectivity/framework",
+ ],
}
java_library {
diff --git a/staticlibs/device/android/net/NetworkFactory.java b/staticlibs/device/android/net/NetworkFactory.java
index bcc6089..68db57b 100644
--- a/staticlibs/device/android/net/NetworkFactory.java
+++ b/staticlibs/device/android/net/NetworkFactory.java
@@ -17,7 +17,9 @@
package android.net;
import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.content.Context;
+import android.net.NetworkProvider.NetworkOfferCallback;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
@@ -29,6 +31,7 @@
import java.io.PrintWriter;
import java.util.LinkedHashMap;
import java.util.Map;
+import java.util.concurrent.Executor;
/**
* A NetworkFactory is an entity that creates NetworkAgent objects.
@@ -48,6 +51,14 @@
public class NetworkFactory extends Handler {
private static final boolean DBG = true;
private static final boolean VDBG = false;
+
+ // A score that will win against everything, so that score filtering will let all requests
+ // through
+ // TODO : remove this and replace with an API to listen to all requests.
+ @NonNull
+ private static final NetworkScore INVINCIBLE_SCORE =
+ new NetworkScore.Builder().setLegacyInt(1000).build();
+
/**
* Pass a network request to the bearer. If the bearer believes it can
* satisfy the request it should connect to the network and create a
@@ -59,19 +70,9 @@
* disregard any that it will never be able to service, for example
* those requiring a different bearer.
* msg.obj = NetworkRequest
- * msg.arg1 = score - the score of the network currently satisfying this
- * request. If this bearer knows in advance it cannot
- * exceed this score it should not try to connect, holding the request
- * for the future.
- * Note that subsequent events may give a different (lower
- * or higher) score for this request, transmitted to each
- * NetworkFactory through additional CMD_REQUEST_NETWORK msgs
- * with the same NetworkRequest but an updated score.
- * Also, network conditions may change for this bearer
- * allowing for a better score in the future.
- * msg.arg2 = the ID of the NetworkProvider currently responsible for the
- * NetworkAgent handling this request, or NetworkProvider.ID_NONE if none.
*/
+ // TODO : this and CANCEL_REQUEST are only used by telephony tests. Replace it in the tests
+ // and remove them and the associated code.
public static final int CMD_REQUEST_NETWORK = 1;
/**
@@ -82,7 +83,7 @@
/**
* Internally used to set our best-guess score.
- * msg.arg1 = new score
+ * msg.obj = new score
*/
private static final int CMD_SET_SCORE = 3;
@@ -93,28 +94,72 @@
*/
private static final int CMD_SET_FILTER = 4;
+ /**
+ * Internally used to send the network offer associated with this factory.
+ * No arguments, will read from members
+ */
+ private static final int CMD_OFFER_NETWORK = 5;
+
+ /**
+ * Internally used to send the request to listen to all requests.
+ * No arguments, will read from members
+ */
+ private static final int CMD_LISTEN_TO_ALL_REQUESTS = 6;
+
private final Context mContext;
private final String LOG_TAG;
private final Map<NetworkRequest, NetworkRequestInfo> mNetworkRequests =
new LinkedHashMap<>();
- private int mScore;
- private NetworkCapabilities mCapabilityFilter;
+ @NonNull private NetworkScore mScore = new NetworkScore.Builder().setLegacyInt(0).build();
+ @NonNull private NetworkCapabilities mCapabilityFilter;
private int mRefCount = 0;
private NetworkProvider mProvider = null;
+ private final NetworkOfferCallback mRequestCallback = new NetworkOfferCallback() {
+ @Override
+ public void onNetworkNeeded(@NonNull final NetworkRequest request) {
+ handleAddRequest(request);
+ }
+
+ @Override
+ public void onNetworkUnneeded(@NonNull final NetworkRequest request) {
+ handleRemoveRequest(request);
+ }
+ };
+ @NonNull private final Executor mExecutor = command -> post(command);
+
+ // Ideally the filter argument would be non-null, but null has historically meant to see
+ // no requests and telephony passes null.
public NetworkFactory(Looper looper, Context context, String logTag,
- NetworkCapabilities filter) {
+ @Nullable final NetworkCapabilities filter) {
super(looper);
LOG_TAG = logTag;
mContext = context;
- mCapabilityFilter = filter;
+ if (null != filter) {
+ mCapabilityFilter = filter;
+ } else {
+ mCapabilityFilter = new NetworkCapabilities.Builder().clearAll().build();
+ }
}
/* Registers this NetworkFactory with the system. May only be called once per factory. */
public void register() {
+ register(false);
+ }
+
+ /**
+ * Registers this NetworkFactory with the system ignoring the score filter. This will let
+ * the factory always see all network requests matching its capabilities filter.
+ * May only be called once per factory.
+ */
+ public void registerIgnoringScore() {
+ register(true);
+ }
+
+ private void register(final boolean listenToAllRequests) {
if (mProvider != null) {
throw new IllegalStateException("A NetworkFactory must only be registered once");
}
@@ -124,7 +169,7 @@
@Override
public void onNetworkRequested(@NonNull NetworkRequest request, int score,
int servingProviderId) {
- handleAddRequest(request, score, servingProviderId);
+ handleAddRequest(request);
}
@Override
@@ -134,7 +179,19 @@
};
((ConnectivityManager) mContext.getSystemService(
- Context.CONNECTIVITY_SERVICE)).registerNetworkProvider(mProvider);
+ Context.CONNECTIVITY_SERVICE)).registerNetworkProvider(mProvider);
+
+ // The mScore and mCapabilityFilter members can only be accessed on the handler thread.
+ // TODO : offer a separate API to listen to all requests instead
+ if (listenToAllRequests) {
+ sendMessage(obtainMessage(CMD_LISTEN_TO_ALL_REQUESTS));
+ } else {
+ sendMessage(obtainMessage(CMD_OFFER_NETWORK));
+ }
+ }
+
+ private void handleOfferNetwork(@NonNull final NetworkScore score) {
+ mProvider.registerNetworkOffer(score, mCapabilityFilter, mExecutor, mRequestCallback);
}
/** Unregisters this NetworkFactory. After this call, the object can no longer be used. */
@@ -156,7 +213,7 @@
public void handleMessage(Message msg) {
switch (msg.what) {
case CMD_REQUEST_NETWORK: {
- handleAddRequest((NetworkRequest) msg.obj, msg.arg1, msg.arg2);
+ handleAddRequest((NetworkRequest) msg.obj);
break;
}
case CMD_CANCEL_REQUEST: {
@@ -164,32 +221,36 @@
break;
}
case CMD_SET_SCORE: {
- handleSetScore(msg.arg1);
+ handleSetScore((NetworkScore) msg.obj);
break;
}
case CMD_SET_FILTER: {
handleSetFilter((NetworkCapabilities) msg.obj);
break;
}
+ case CMD_OFFER_NETWORK: {
+ handleOfferNetwork(mScore);
+ break;
+ }
+ case CMD_LISTEN_TO_ALL_REQUESTS: {
+ handleOfferNetwork(INVINCIBLE_SCORE);
+ break;
+ }
}
}
private static class NetworkRequestInfo {
- public final NetworkRequest request;
- public int score;
+ @NonNull public final NetworkRequest request;
public boolean requested; // do we have a request outstanding, limited by score
- public int providerId;
- NetworkRequestInfo(NetworkRequest request, int score, int providerId) {
+ NetworkRequestInfo(@NonNull final NetworkRequest request) {
this.request = request;
- this.score = score;
this.requested = false;
- this.providerId = providerId;
}
@Override
public String toString() {
- return "{" + request + ", score=" + score + ", requested=" + requested + "}";
+ return "{" + request + ", requested=" + requested + "}";
}
}
@@ -198,35 +259,27 @@
* @see #CMD_REQUEST_NETWORK
*
* @param request the request to handle.
- * @param score the score of the NetworkAgent currently satisfying this request.
- * @param servingProviderId the ID of the NetworkProvider that created the NetworkAgent
- * currently satisfying this request.
*/
- @VisibleForTesting
- protected void handleAddRequest(NetworkRequest request, int score, int servingProviderId) {
+ private void handleAddRequest(@NonNull final NetworkRequest request) {
NetworkRequestInfo n = mNetworkRequests.get(request);
if (n == null) {
- if (DBG) {
- log("got request " + request + " with score " + score
- + " and providerId " + servingProviderId);
- }
- n = new NetworkRequestInfo(request, score, servingProviderId);
+ if (DBG) log("got request " + request);
+ n = new NetworkRequestInfo(request);
mNetworkRequests.put(n.request, n);
} else {
if (VDBG) {
- log("new score " + score + " for existing request " + request
- + " and providerId " + servingProviderId);
+ log("handle existing request " + request);
}
- n.score = score;
- n.providerId = servingProviderId;
}
if (VDBG) log(" my score=" + mScore + ", my filter=" + mCapabilityFilter);
- evalRequest(n);
+ if (acceptRequest(request)) {
+ n.requested = true;
+ needNetworkFor(request);
+ }
}
- @VisibleForTesting
- protected void handleRemoveRequest(NetworkRequest request) {
+ private void handleRemoveRequest(NetworkRequest request) {
NetworkRequestInfo n = mNetworkRequests.get(request);
if (n != null) {
mNetworkRequests.remove(request);
@@ -234,20 +287,21 @@
}
}
- private void handleSetScore(int score) {
+ private void handleSetScore(@NonNull final NetworkScore score) {
+ if (mScore.equals(score)) return;
mScore = score;
- evalRequests();
+ reevaluateAllRequests();
}
- private void handleSetFilter(NetworkCapabilities netCap) {
+ private void handleSetFilter(@NonNull final NetworkCapabilities netCap) {
+ if (netCap.equals(mCapabilityFilter)) return;
mCapabilityFilter = netCap;
- evalRequests();
+ reevaluateAllRequests();
}
- /** @deprecated None of the implementors use the score, remove this method */
- @Deprecated
- public boolean acceptRequest(NetworkRequest request, int score) {
- return acceptRequest(request);
+ protected final void reevaluateAllRequests() {
+ if (mProvider == null) return;
+ mProvider.registerNetworkOffer(mScore, mCapabilityFilter, mExecutor, mRequestCallback);
}
/**
@@ -269,75 +323,9 @@
*
* @return {@code true} to accept the request.
*/
- public boolean acceptRequest(NetworkRequest request) {
+ public boolean acceptRequest(@NonNull final NetworkRequest request) {
return true;
}
-
- private void evalRequest(NetworkRequestInfo n) {
- if (VDBG) {
- log("evalRequest");
- log(" n.requests = " + n.requested);
- log(" n.score = " + n.score);
- log(" mScore = " + mScore);
- log(" request.providerId = " + n.providerId);
- log(" mProvider.id = " + mProvider.getProviderId());
- }
- if (shouldNeedNetworkFor(n)) {
- if (VDBG) log(" needNetworkFor");
- needNetworkFor(n.request, n.score);
- n.requested = true;
- } else if (shouldReleaseNetworkFor(n)) {
- if (VDBG) log(" releaseNetworkFor");
- releaseNetworkFor(n.request);
- n.requested = false;
- } else {
- if (VDBG) log(" done");
- }
- }
-
- private boolean shouldNeedNetworkFor(NetworkRequestInfo n) {
- // If this request is already tracked, it doesn't qualify for need
- return !n.requested
- // If the score of this request is higher or equal to that of this factory and some
- // other factory is responsible for it, then this factory should not track the request
- // because it has no hope of satisfying it.
- && (n.score < mScore || n.providerId == mProvider.getProviderId())
- // If this factory can't satisfy the capability needs of this request, then it
- // should not be tracked.
- && n.request.canBeSatisfiedBy(mCapabilityFilter)
- // Finally if the concrete implementation of the factory rejects the request, then
- // don't track it.
- && acceptRequest(n.request, n.score);
- }
-
- private boolean shouldReleaseNetworkFor(NetworkRequestInfo n) {
- // Don't release a request that's not tracked.
- return n.requested
- // The request should be released if it can't be satisfied by this factory. That
- // means either of the following conditions are met :
- // - Its score is too high to be satisfied by this factory and it's not already
- // assigned to the factory
- // - This factory can't satisfy the capability needs of the request
- // - The concrete implementation of the factory rejects the request
- && ((n.score > mScore && n.providerId != mProvider.getProviderId())
- || !n.request.canBeSatisfiedBy(mCapabilityFilter)
- || !acceptRequest(n.request, n.score));
- }
-
- private void evalRequests() {
- for (NetworkRequestInfo n : mNetworkRequests.values()) {
- evalRequest(n);
- }
- }
-
- /**
- * Post a command, on this NetworkFactory Handler, to re-evaluate all
- * outstanding requests. Can be called from a factory implementation.
- */
- protected void reevaluateAllRequests() {
- post(this::evalRequests);
- }
-
/**
* Can be called by a factory to release a request as unfulfillable: the request will be
* removed, and the caller will get a
@@ -363,23 +351,36 @@
protected void startNetwork() { }
protected void stopNetwork() { }
- /** @deprecated none of the implementors use the score : migrate them */
- @Deprecated
- protected void needNetworkFor(NetworkRequest networkRequest, int score) {
- needNetworkFor(networkRequest);
- }
-
// override to do fancier stuff
- protected void needNetworkFor(NetworkRequest networkRequest) {
+ protected void needNetworkFor(@NonNull final NetworkRequest networkRequest) {
if (++mRefCount == 1) startNetwork();
}
- protected void releaseNetworkFor(NetworkRequest networkRequest) {
+ protected void releaseNetworkFor(@NonNull final NetworkRequest networkRequest) {
if (--mRefCount == 0) stopNetwork();
}
- public void setScoreFilter(int score) {
- sendMessage(obtainMessage(CMD_SET_SCORE, score, 0));
+ /**
+ * @deprecated this method was never part of the API (system or public) and is only added
+ * for migration of existing clients. It will be removed before S ships.
+ */
+ @Deprecated
+ public void setScoreFilter(final int score) {
+ setScoreFilter(new NetworkScore.Builder().setLegacyInt(score).build());
+ }
+
+ /**
+ * Set a score filter for this factory.
+ *
+ * This should include the transports the factory knows its networks will have, and
+ * an optimistic view of the attributes it may have. This does not commit the factory
+ * to being able to bring up such a network ; it only lets it avoid hearing about
+ * requests that it has no chance of fulfilling.
+ *
+ * @param score the filter
+ */
+ public void setScoreFilter(@NonNull final NetworkScore score) {
+ sendMessage(obtainMessage(CMD_SET_SCORE, score));
}
public void setCapabilityFilter(NetworkCapabilities netCap) {
diff --git a/staticlibs/framework/com/android/net/module/util/CollectionUtils.java b/staticlibs/framework/com/android/net/module/util/CollectionUtils.java
index 4fce8f5..0696cca 100644
--- a/staticlibs/framework/com/android/net/module/util/CollectionUtils.java
+++ b/staticlibs/framework/com/android/net/module/util/CollectionUtils.java
@@ -27,6 +27,7 @@
/**
* Utilities for {@link Collection} and arrays.
+ * @hide
*/
public final class CollectionUtils {
private CollectionUtils() {}
diff --git a/staticlibs/framework/com/android/net/module/util/ConnectivityUtils.java b/staticlibs/framework/com/android/net/module/util/ConnectivityUtils.java
index 382912b..c135e46 100644
--- a/staticlibs/framework/com/android/net/module/util/ConnectivityUtils.java
+++ b/staticlibs/framework/com/android/net/module/util/ConnectivityUtils.java
@@ -24,6 +24,7 @@
/**
* Various utilities used in connectivity code.
+ * @hide
*/
public final class ConnectivityUtils {
private ConnectivityUtils() {}
diff --git a/staticlibs/framework/com/android/net/module/util/NetworkCapabilitiesUtils.java b/staticlibs/framework/com/android/net/module/util/NetworkCapabilitiesUtils.java
index 4c7d675..122b499 100644
--- a/staticlibs/framework/com/android/net/module/util/NetworkCapabilitiesUtils.java
+++ b/staticlibs/framework/com/android/net/module/util/NetworkCapabilitiesUtils.java
@@ -44,8 +44,15 @@
/**
* Utilities to examine {@link android.net.NetworkCapabilities}.
+ * @hide
*/
public final class NetworkCapabilitiesUtils {
+ /**
+ * See android.net.NetworkCapabilities.TRANSPORT_USB
+ * TODO: Use API constant when all downstream branches are S-based
+ */
+ public static final int TRANSPORT_USB = 8;
+
// Transports considered to classify networks in UI, in order of which transport should be
// surfaced when there are multiple transports. Transports not in this list do not have
// an ordering preference (in practice they will have a deterministic order based on the
@@ -63,7 +70,8 @@
TRANSPORT_WIFI_AWARE,
TRANSPORT_BLUETOOTH,
TRANSPORT_WIFI,
- TRANSPORT_ETHERNET
+ TRANSPORT_ETHERNET,
+ TRANSPORT_USB
// Notably, TRANSPORT_TEST is not in this list as any network that has TRANSPORT_TEST and
// one of the above transports should be counted as that transport, to keep tests as
diff --git a/staticlibs/framework/com/android/net/module/util/NetworkIdentityUtils.java b/staticlibs/framework/com/android/net/module/util/NetworkIdentityUtils.java
index 94e6017..b641753 100644
--- a/staticlibs/framework/com/android/net/module/util/NetworkIdentityUtils.java
+++ b/staticlibs/framework/com/android/net/module/util/NetworkIdentityUtils.java
@@ -21,6 +21,7 @@
/**
* Utilities to examine {@link android.net.NetworkIdentity}.
+ * @hide
*/
public class NetworkIdentityUtils {
/**
diff --git a/staticlibs/lint-baseline.xml b/staticlibs/lint-baseline.xml
deleted file mode 100644
index 4c54e9f..0000000
--- a/staticlibs/lint-baseline.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.1.0" client="cli" variant="all" version="4.1.0">
-
- <issue
- id="NewApi"
- message="Call requires API level R (current min is 29): `android.net.NetworkRequest#canBeSatisfiedBy`"
- errorLine1=" && n.request.canBeSatisfiedBy(mCapabilityFilter)"
- errorLine2=" ~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/device/android/net/NetworkFactory.java"
- line="307"
- column="26"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level R (current min is 29): `android.net.NetworkRequest#canBeSatisfiedBy`"
- errorLine1=" || !n.request.canBeSatisfiedBy(mCapabilityFilter)"
- errorLine2=" ~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/device/android/net/NetworkFactory.java"
- line="323"
- column="35"/>
- </issue>
-
-</issues>
diff --git a/staticlibs/tests/unit/Android.bp b/staticlibs/tests/unit/Android.bp
index 45a89b0..c9aad71 100644
--- a/staticlibs/tests/unit/Android.bp
+++ b/staticlibs/tests/unit/Android.bp
@@ -10,6 +10,7 @@
name: "NetworkStaticLibTestsLib",
srcs: ["src/**/*.java","src/**/*.kt"],
min_sdk_version: "29",
+ defaults: ["framework-connectivity-test-defaults"],
static_libs: [
"net-utils-framework-common",
"androidx.test.rules",
diff --git a/staticlibs/tests/unit/lint-baseline.xml b/staticlibs/tests/unit/lint-baseline.xml
index 0990916..e3a6c1e 100644
--- a/staticlibs/tests/unit/lint-baseline.xml
+++ b/staticlibs/tests/unit/lint-baseline.xml
@@ -3,325 +3,6 @@
<issue
id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#any`"
- errorLine1=" assertTrue(CollectionUtils.any(listOf("A", "B", "C", "D", "E")) { it == "E" })"
- errorLine2=" ~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/CollectionUtilsTest.kt"
- line="32"
- column="36"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#any`"
- errorLine1=" assertFalse(CollectionUtils.any(listOf("A", "B", "C", "D", "E")) { it == "F" })"
- errorLine2=" ~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/CollectionUtilsTest.kt"
- line="33"
- column="37"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#any`"
- errorLine1=" assertTrue(CollectionUtils.any(listOf("AA", "BBB")) { it.length >= 3 })"
- errorLine2=" ~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/CollectionUtilsTest.kt"
- line="34"
- column="36"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#any`"
- errorLine1=" assertFalse(CollectionUtils.any(listOf("A", "BB", "CCC")) { it.length >= 4 })"
- errorLine2=" ~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/CollectionUtilsTest.kt"
- line="35"
- column="37"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#any`"
- errorLine1=" assertFalse(CollectionUtils.any(listOf("A", "BB", "CCC")) { it.length < 0 })"
- errorLine2=" ~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/CollectionUtilsTest.kt"
- line="36"
- column="37"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#any`"
- errorLine1=" assertFalse(CollectionUtils.any(listOf<String>()) { true })"
- errorLine2=" ~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/CollectionUtilsTest.kt"
- line="37"
- column="37"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#any`"
- errorLine1=" assertFalse(CollectionUtils.any(listOf<String>()) { false })"
- errorLine2=" ~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/CollectionUtilsTest.kt"
- line="38"
- column="37"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#any`"
- errorLine1=" assertTrue(CollectionUtils.any(listOf("A")) { true })"
- errorLine2=" ~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/CollectionUtilsTest.kt"
- line="39"
- column="36"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#any`"
- errorLine1=" assertFalse(CollectionUtils.any(listOf("A")) { false })"
- errorLine2=" ~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/CollectionUtilsTest.kt"
- line="40"
- column="37"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#indexOf`"
- errorLine1=" assertEquals(4, CollectionUtils.indexOf(listOf("A", "B", "C", "D", "E")) { it == "E" })"
- errorLine2=" ~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/CollectionUtilsTest.kt"
- line="45"
- column="41"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#indexOf`"
- errorLine1=" assertEquals(0, CollectionUtils.indexOf(listOf("A", "B", "C", "D", "E")) { it == "A" })"
- errorLine2=" ~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/CollectionUtilsTest.kt"
- line="46"
- column="41"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#indexOf`"
- errorLine1=" assertEquals(1, CollectionUtils.indexOf(listOf("AA", "BBB", "CCCC")) { it.length >= 3 })"
- errorLine2=" ~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/CollectionUtilsTest.kt"
- line="47"
- column="41"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#indexOf`"
- errorLine1=" assertEquals(1, CollectionUtils.indexOf(listOf("AA", null, "CCCC")) { it == null })"
- errorLine2=" ~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/CollectionUtilsTest.kt"
- line="48"
- column="41"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#indexOf`"
- errorLine1=" assertEquals(1, CollectionUtils.indexOf(listOf(null, "CCCC")) { it != null })"
- errorLine2=" ~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/CollectionUtilsTest.kt"
- line="49"
- column="41"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#all`"
- errorLine1=" assertFalse(CollectionUtils.all(listOf("A", "B", "C", "D", "E")) { it != "E" })"
- errorLine2=" ~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/CollectionUtilsTest.kt"
- line="54"
- column="37"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#all`"
- errorLine1=" assertTrue(CollectionUtils.all(listOf("A", "B", "C", "D", "E")) { it != "F" })"
- errorLine2=" ~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/CollectionUtilsTest.kt"
- line="55"
- column="36"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#all`"
- errorLine1=" assertFalse(CollectionUtils.all(listOf("A", "BB", "CCC")) { it.length > 2 })"
- errorLine2=" ~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/CollectionUtilsTest.kt"
- line="56"
- column="37"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#all`"
- errorLine1=" assertTrue(CollectionUtils.all(listOf("A", "BB", "CCC")) { it.length >= 1 })"
- errorLine2=" ~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/CollectionUtilsTest.kt"
- line="57"
- column="36"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#all`"
- errorLine1=" assertTrue(CollectionUtils.all(listOf("A", "BB", "CCC")) { it.length < 4 })"
- errorLine2=" ~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/CollectionUtilsTest.kt"
- line="58"
- column="36"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#all`"
- errorLine1=" assertTrue(CollectionUtils.all(listOf<String>()) { true })"
- errorLine2=" ~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/CollectionUtilsTest.kt"
- line="59"
- column="36"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#all`"
- errorLine1=" assertTrue(CollectionUtils.all(listOf<String>()) { false })"
- errorLine2=" ~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/CollectionUtilsTest.kt"
- line="60"
- column="36"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#all`"
- errorLine1=" assertTrue(CollectionUtils.all(listOf(1)) { true })"
- errorLine2=" ~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/CollectionUtilsTest.kt"
- line="61"
- column="36"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#all`"
- errorLine1=" assertFalse(CollectionUtils.all(listOf(1)) { false })"
- errorLine2=" ~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/CollectionUtilsTest.kt"
- line="62"
- column="37"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#isIPv6ULA`"
- errorLine1=" assertTrue(isIPv6ULA(parseNumericAddress("fc00::")));"
- errorLine2=" ~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/ConnectivityUtilsTest.java"
- line="38"
- column="20"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#isIPv6ULA`"
- errorLine1=" assertTrue(isIPv6ULA(parseNumericAddress("fc00::1")));"
- errorLine2=" ~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/ConnectivityUtilsTest.java"
- line="39"
- column="20"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#isIPv6ULA`"
- errorLine1=" assertTrue(isIPv6ULA(parseNumericAddress("fc00:1234::5678")));"
- errorLine2=" ~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/ConnectivityUtilsTest.java"
- line="40"
- column="20"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#isIPv6ULA`"
- errorLine1=" assertTrue(isIPv6ULA(parseNumericAddress("fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")));"
- errorLine2=" ~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/ConnectivityUtilsTest.java"
- line="41"
- column="20"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#isIPv6ULA`"
- errorLine1=" assertFalse(isIPv6ULA(parseNumericAddress("fe00::")));"
- errorLine2=" ~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/ConnectivityUtilsTest.java"
- line="43"
- column="21"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#isIPv6ULA`"
- errorLine1=" assertFalse(isIPv6ULA(parseNumericAddress("2480:1248::123:456")));"
- errorLine2=" ~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/ConnectivityUtilsTest.java"
- line="44"
- column="21"/>
- </issue>
-
- <issue
- id="NewApi"
message="Call requires API level R (current min is 29): `android.app.AppOpsManager#noteOp`"
errorLine1=" when(mMockAppOps.noteOp(AppOpsManager.OPSTR_WIFI_SCAN, mUid, TEST_PKG_NAME,"
errorLine2=" ~~~~~~">
@@ -355,138 +36,6 @@
<issue
id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkCapabilitiesUtils#getDisplayTransport`"
- errorLine1=" assertEquals(TRANSPORT_WIFI, getDisplayTransport(intArrayOf(TRANSPORT_WIFI)))"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkCapabilitiesUtilsTest.kt"
- line="53"
- column="38"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkCapabilitiesUtils#getDisplayTransport`"
- errorLine1=" assertEquals(TRANSPORT_CELLULAR, getDisplayTransport(intArrayOf(TRANSPORT_CELLULAR)))"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkCapabilitiesUtilsTest.kt"
- line="54"
- column="42"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkCapabilitiesUtils#getDisplayTransport`"
- errorLine1=" assertEquals(TRANSPORT_BLUETOOTH, getDisplayTransport(intArrayOf(TRANSPORT_BLUETOOTH)))"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkCapabilitiesUtilsTest.kt"
- line="55"
- column="43"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkCapabilitiesUtils#getDisplayTransport`"
- errorLine1=" assertEquals(TRANSPORT_ETHERNET, getDisplayTransport(intArrayOf(TRANSPORT_ETHERNET)))"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkCapabilitiesUtilsTest.kt"
- line="56"
- column="42"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkCapabilitiesUtils#getDisplayTransport`"
- errorLine1=" assertEquals(TRANSPORT_WIFI_AWARE, getDisplayTransport(intArrayOf(TRANSPORT_WIFI_AWARE)))"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkCapabilitiesUtilsTest.kt"
- line="57"
- column="44"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkCapabilitiesUtils#getDisplayTransport`"
- errorLine1=" assertEquals(TRANSPORT_VPN, getDisplayTransport("
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkCapabilitiesUtilsTest.kt"
- line="59"
- column="37"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkCapabilitiesUtils#getDisplayTransport`"
- errorLine1=" assertEquals(TRANSPORT_VPN, getDisplayTransport("
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkCapabilitiesUtilsTest.kt"
- line="61"
- column="37"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkCapabilitiesUtils#getDisplayTransport`"
- errorLine1=" assertEquals(TRANSPORT_WIFI, getDisplayTransport("
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkCapabilitiesUtilsTest.kt"
- line="64"
- column="38"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkCapabilitiesUtils#getDisplayTransport`"
- errorLine1=" assertEquals(TRANSPORT_ETHERNET, getDisplayTransport("
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkCapabilitiesUtilsTest.kt"
- line="66"
- column="42"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkCapabilitiesUtils#getDisplayTransport`"
- errorLine1=" getDisplayTransport(intArrayOf())"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkCapabilitiesUtilsTest.kt"
- line="70"
- column="13"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkCapabilitiesUtils#packBits`"
- errorLine1=" assertEquals(packedBits, packBits(bits))"
- errorLine2=" ~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkCapabilitiesUtilsTest.kt"
- line="87"
- column="34"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkCapabilitiesUtils#unpackBits`"
- errorLine1=" assertTrue(bits contentEquals unpackBits(packedBits))"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkCapabilitiesUtilsTest.kt"
- line="88"
- column="39"/>
- </issue>
-
- <issue
- id="NewApi"
message="Call requires API level R (current min is 29): `android.net.NetworkCapabilities()`"
errorLine1=" val nc = NetworkCapabilities()"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
@@ -496,147 +45,4 @@
column="18"/>
</issue>
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkCapabilitiesUtils#inferRestrictedCapability`"
- errorLine1=" assertFalse(NetworkCapabilitiesUtils.inferRestrictedCapability(nc))"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkCapabilitiesUtilsTest.kt"
- line="95"
- column="46"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkCapabilitiesUtils#inferRestrictedCapability`"
- errorLine1=" assertTrue(NetworkCapabilitiesUtils.inferRestrictedCapability(nc))"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkCapabilitiesUtilsTest.kt"
- line="99"
- column="45"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkCapabilitiesUtils#inferRestrictedCapability`"
- errorLine1=" assertFalse(NetworkCapabilitiesUtils.inferRestrictedCapability(nc))"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkCapabilitiesUtilsTest.kt"
- line="104"
- column="46"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkCapabilitiesUtils#inferRestrictedCapability`"
- errorLine1=" assertTrue(NetworkCapabilitiesUtils.inferRestrictedCapability(nc))"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkCapabilitiesUtilsTest.kt"
- line="108"
- column="45"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkIdentityUtils#scrubSubscriberId`"
- errorLine1=" assertEquals("123456...", scrubSubscriberId("1234567890123"))"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkIdentityUtilsTest.kt"
- line="34"
- column="35"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkIdentityUtils#scrubSubscriberId`"
- errorLine1=" assertEquals("123456...", scrubSubscriberId("1234567"))"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkIdentityUtilsTest.kt"
- line="35"
- column="35"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkIdentityUtils#scrubSubscriberId`"
- errorLine1=" assertEquals("123...", scrubSubscriberId("123"))"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkIdentityUtilsTest.kt"
- line="36"
- column="32"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkIdentityUtils#scrubSubscriberId`"
- errorLine1=" assertEquals("...", scrubSubscriberId(""))"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkIdentityUtilsTest.kt"
- line="37"
- column="29"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkIdentityUtils#scrubSubscriberId`"
- errorLine1=" assertEquals("null", scrubSubscriberId(null))"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkIdentityUtilsTest.kt"
- line="38"
- column="30"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkIdentityUtils#scrubSubscriberIds`"
- errorLine1=" assertContainsStringsExactly(scrubSubscriberIds(arrayOf("1234567", "", null))!!,"
- errorLine2=" ~~~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkIdentityUtilsTest.kt"
- line="43"
- column="38"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkIdentityUtils#scrubSubscriberIds`"
- errorLine1=" assertContainsStringsExactly(scrubSubscriberIds(arrayOf("12345"))!!, "12345...")"
- errorLine2=" ~~~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkIdentityUtilsTest.kt"
- line="45"
- column="38"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkIdentityUtils#scrubSubscriberIds`"
- errorLine1=" assertContainsStringsExactly(scrubSubscriberIds(arrayOf())!!)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkIdentityUtilsTest.kt"
- line="46"
- column="38"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.NetworkIdentityUtils#scrubSubscriberIds`"
- errorLine1=" assertNull(scrubSubscriberIds(null))"
- errorLine2=" ~~~~~~~~~~~~~~~~~~">
- <location
- file="frameworks/libs/net/common/tests/unit/src/com/android/net/module/util/NetworkIdentityUtilsTest.kt"
- line="47"
- column="20"/>
- </issue>
-
</issues>
diff --git a/staticlibs/testutils/Android.bp b/staticlibs/testutils/Android.bp
index d4465dd..1a7b437 100644
--- a/staticlibs/testutils/Android.bp
+++ b/staticlibs/testutils/Android.bp
@@ -22,7 +22,10 @@
"devicetests/**/*.java",
"devicetests/**/*.kt",
],
- defaults: ["lib_mockito_extended"],
+ defaults: [
+ "framework-connectivity-test-defaults",
+ "lib_mockito_extended"
+ ],
libs: [
"androidx.annotation_annotation",
],