Add basic IpReachabilityMonitor integration test. am: 60175d2d5e am: 368a7117ff
Original change: https://android-review.googlesource.com/c/platform/packages/modules/NetworkStack/+/1724690
Change-Id: I4dae1d01ba9c23b23deb7ddeb23b4299f8671727
diff --git a/Android.bp b/Android.bp
index 173d72e..367c542 100644
--- a/Android.bp
+++ b/Android.bp
@@ -45,10 +45,6 @@
default_applicable_licenses: ["Android-Apache-2.0"],
}
-// Whether to enable the targets in this file that target current SDKs.
-// Set to false in branches like mainline-prod where API classes are too old to build current code.
-enable_current_sdk_targets = true
-
java_defaults {
name: "NetworkStackDevApiLevel",
min_sdk_version: "29",
@@ -57,9 +53,14 @@
java_defaults {
name: "NetworkStackReleaseApiLevel",
- sdk_version: "system_30",
+ sdk_version: "module_31",
min_sdk_version: "29",
- target_sdk_version: "30",
+ target_sdk_version: "31",
+ libs: [
+ "framework-connectivity",
+ "framework-statsd",
+ "framework-wifi",
+ ]
}
// Libraries for the API shims
@@ -127,7 +128,6 @@
// integer so if the next SDK release happens to use that integer, we don't need to rename them.
java_library {
name: "NetworkStackApi31Shims",
- enabled: enable_current_sdk_targets,
defaults: ["NetworkStackShimsDefaults"],
srcs: [
"apishim/31/**/*.java",
@@ -138,6 +138,27 @@
"NetworkStackApi30Shims",
"framework-connectivity",
],
+ sdk_version: "module_31",
+ visibility: ["//visibility:private"],
+}
+
+
+// Shims for APIs being added to the current development version of Android. These APIs are not
+// stable and have no defined version number. These could be called 10000, but they use the next
+// integer so if the next SDK release happens to use that integer, we don't need to rename them.
+java_library {
+ name: "NetworkStackApi32Shims",
+ defaults: ["NetworkStackShimsDefaults"],
+ srcs: [
+ "apishim/32/**/*.java",
+ ],
+ libs: [
+ "NetworkStackShimsCommon",
+ "NetworkStackApi29Shims",
+ "NetworkStackApi30Shims",
+ "NetworkStackApi31Shims",
+ "framework-connectivity",
+ ],
sdk_version: "module_current",
visibility: ["//visibility:private"],
}
@@ -147,13 +168,13 @@
// called directly by the networkstack code.
java_library {
name: "NetworkStackApiCurrentShims",
- enabled: enable_current_sdk_targets,
defaults: ["NetworkStackShimsDefaults"],
static_libs: [
"NetworkStackShimsCommon",
"NetworkStackApi29Shims",
"NetworkStackApi30Shims",
"NetworkStackApi31Shims",
+ "NetworkStackApi32Shims",
],
sdk_version: "module_current",
visibility: [
@@ -172,9 +193,10 @@
"NetworkStackShimsCommon",
"NetworkStackApi29Shims",
"NetworkStackApi30Shims",
+ "NetworkStackApi31Shims",
],
jarjar_rules: "apishim/jarjar-rules-compat.txt",
- sdk_version: "system_30",
+ sdk_version: "module_31",
visibility: [
"//packages/modules/Connectivity/Tethering",
"//packages/modules/Connectivity/tests/cts/net",
@@ -215,7 +237,6 @@
],
static_libs: ["NetworkStackApiCurrentShims"],
manifest: "AndroidManifestBase.xml",
- enabled: enable_current_sdk_targets,
visibility: [
"//frameworks/base/tests/net/integration",
"//packages/modules/Connectivity/Tethering/tests/integration",
@@ -294,7 +315,6 @@
"PlatformNetworkPermissionConfig",
"PlatformCaptivePortalLogin",
],
- enabled: enable_current_sdk_targets,
}
// Pre-merge the AndroidManifest for NetworkStackNext, so that its manifest can be merged on top
@@ -302,8 +322,7 @@
name: "NetworkStackNextManifestBase",
defaults: ["NetworkStackAppDefaults", "NetworkStackDevApiLevel"],
static_libs: ["NetworkStackApiCurrentLib"],
- manifest: "AndroidManifest.xml",
- enabled: enable_current_sdk_targets,
+ manifest: "AndroidManifest.xml"
}
// NetworkStack build targeting the current API release, for testing on in-development SDK
@@ -318,7 +337,6 @@
"NetworkPermissionConfig",
"privapp_whitelist_com.android.networkstack",
],
- enabled: enable_current_sdk_targets,
}
// Updatable network stack for finalized API
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index b61c89f..6a11b2c 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -19,8 +19,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.networkstack"
android:sharedUserId="android.uid.networkstack"
- android:versionCode="300900700"
- android:versionName="r_aml_300900700"
+ android:versionCode="319999900"
+ android:versionName="s_aml_319999900"
>
<!-- Permissions must be defined here, and not in the base manifest, as the network stack
running in the system server process does not need any permission, and having privileged
diff --git a/AndroidManifest_Next.xml b/AndroidManifest_Next.xml
index 02fcb64..9ad69ae 100644
--- a/AndroidManifest_Next.xml
+++ b/AndroidManifest_Next.xml
@@ -17,6 +17,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.networkstack"
android:sharedUserId="android.uid.networkstack"
- android:versionCode="300000000"
- android:versionName="R-next">
+ android:versionCode="320000000"
+ android:versionName="T-next">
</manifest>
diff --git a/TEST_MAPPING b/TEST_MAPPING
index ed6a1a8..2bb0e61 100644
--- a/TEST_MAPPING
+++ b/TEST_MAPPING
@@ -40,7 +40,8 @@
// We must specify at least one module here or the tests won't run. Use the same set as CTS
// so in theory the infra would not need to reinstall/reboot devices to run both.
{
- "name": "NetworkStackTests[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]"
+ // TODO: add back tethering when it is updatable in this branch
+ "name": "NetworkStackTests[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex]"
}
],
"mainline-postsubmit": [
diff --git a/apishim/31/com/android/networkstack/apishim/CaptivePortalDataShimImpl.java b/apishim/31/com/android/networkstack/apishim/api31/CaptivePortalDataShimImpl.java
similarity index 98%
rename from apishim/31/com/android/networkstack/apishim/CaptivePortalDataShimImpl.java
rename to apishim/31/com/android/networkstack/apishim/api31/CaptivePortalDataShimImpl.java
index 5af7412..5ae006b 100644
--- a/apishim/31/com/android/networkstack/apishim/CaptivePortalDataShimImpl.java
+++ b/apishim/31/com/android/networkstack/apishim/api31/CaptivePortalDataShimImpl.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.networkstack.apishim;
+package com.android.networkstack.apishim.api31;
import android.net.CaptivePortalData;
import android.net.Uri;
diff --git a/apishim/31/com/android/networkstack/apishim/ConnectivityManagerShimImpl.java b/apishim/31/com/android/networkstack/apishim/api31/ConnectivityManagerShimImpl.java
similarity index 97%
rename from apishim/31/com/android/networkstack/apishim/ConnectivityManagerShimImpl.java
rename to apishim/31/com/android/networkstack/apishim/api31/ConnectivityManagerShimImpl.java
index 1db0a70..46de698 100644
--- a/apishim/31/com/android/networkstack/apishim/ConnectivityManagerShimImpl.java
+++ b/apishim/31/com/android/networkstack/apishim/api31/ConnectivityManagerShimImpl.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.networkstack.apishim;
+package com.android.networkstack.apishim.api31;
import static com.android.modules.utils.build.SdkLevel.isAtLeastS;
@@ -39,7 +39,6 @@
public class ConnectivityManagerShimImpl
extends com.android.networkstack.apishim.api30.ConnectivityManagerShimImpl {
- @RequiresApi(Build.VERSION_CODES.S)
protected ConnectivityManagerShimImpl(Context context) {
super(context);
}
diff --git a/apishim/31/com/android/networkstack/apishim/ConstantsShim.java b/apishim/31/com/android/networkstack/apishim/api31/ConstantsShim.java
similarity index 96%
rename from apishim/31/com/android/networkstack/apishim/ConstantsShim.java
rename to apishim/31/com/android/networkstack/apishim/api31/ConstantsShim.java
index 0184845..95ff072 100644
--- a/apishim/31/com/android/networkstack/apishim/ConstantsShim.java
+++ b/apishim/31/com/android/networkstack/apishim/api31/ConstantsShim.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.networkstack.apishim;
+package com.android.networkstack.apishim.api31;
import androidx.annotation.VisibleForTesting;
diff --git a/apishim/31/com/android/networkstack/apishim/NetworkInformationShimImpl.java b/apishim/31/com/android/networkstack/apishim/api31/NetworkInformationShimImpl.java
similarity index 94%
rename from apishim/31/com/android/networkstack/apishim/NetworkInformationShimImpl.java
rename to apishim/31/com/android/networkstack/apishim/api31/NetworkInformationShimImpl.java
index d2615e6..a5c9a71 100644
--- a/apishim/31/com/android/networkstack/apishim/NetworkInformationShimImpl.java
+++ b/apishim/31/com/android/networkstack/apishim/api31/NetworkInformationShimImpl.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.networkstack.apishim;
+package com.android.networkstack.apishim.api31;
import android.net.LinkProperties;
import android.net.NetworkCapabilities;
@@ -50,7 +50,7 @@
if (!useApiAboveR()) {
return com.android.networkstack.apishim.api30.NetworkInformationShimImpl.newInstance();
}
- return new com.android.networkstack.apishim.NetworkInformationShimImpl();
+ return new NetworkInformationShimImpl();
}
@Nullable
diff --git a/apishim/31/com/android/networkstack/apishim/NetworkRequestShimImpl.java b/apishim/31/com/android/networkstack/apishim/api31/NetworkRequestShimImpl.java
similarity index 87%
rename from apishim/31/com/android/networkstack/apishim/NetworkRequestShimImpl.java
rename to apishim/31/com/android/networkstack/apishim/api31/NetworkRequestShimImpl.java
index dc7450c..2dc5d72 100644
--- a/apishim/31/com/android/networkstack/apishim/NetworkRequestShimImpl.java
+++ b/apishim/31/com/android/networkstack/apishim/api31/NetworkRequestShimImpl.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.networkstack.apishim;
+package com.android.networkstack.apishim.api31;
import static com.android.modules.utils.build.SdkLevel.isAtLeastS;
@@ -36,7 +36,6 @@
@RequiresApi(Build.VERSION_CODES.S)
public class NetworkRequestShimImpl
extends com.android.networkstack.apishim.api30.NetworkRequestShimImpl {
- @RequiresApi(Build.VERSION_CODES.S)
protected NetworkRequestShimImpl() {
super();
}
@@ -59,6 +58,13 @@
}
@Override
+ public NetworkRequest.Builder setIncludeOtherUidNetworks(NetworkRequest.Builder builder,
+ boolean include) {
+ builder.setIncludeOtherUidNetworks(include);
+ return builder;
+ }
+
+ @Override
public NetworkRequest.Builder newBuilder(@NonNull NetworkRequest request) {
return new NetworkRequest.Builder(request);
}
diff --git a/apishim/31/com/android/networkstack/apishim/NetworkShimImpl.java b/apishim/31/com/android/networkstack/apishim/api31/NetworkShimImpl.java
similarity index 95%
rename from apishim/31/com/android/networkstack/apishim/NetworkShimImpl.java
rename to apishim/31/com/android/networkstack/apishim/api31/NetworkShimImpl.java
index 0c92391..eda8e27 100644
--- a/apishim/31/com/android/networkstack/apishim/NetworkShimImpl.java
+++ b/apishim/31/com/android/networkstack/apishim/api31/NetworkShimImpl.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.networkstack.apishim;
+package com.android.networkstack.apishim.api31;
import android.net.Network;
diff --git a/apishim/31/com/android/networkstack/apishim/SettingsShimImpl.java b/apishim/31/com/android/networkstack/apishim/api31/SettingsShimImpl.java
similarity index 87%
rename from apishim/31/com/android/networkstack/apishim/SettingsShimImpl.java
rename to apishim/31/com/android/networkstack/apishim/api31/SettingsShimImpl.java
index e15872f..1b5cbae 100644
--- a/apishim/31/com/android/networkstack/apishim/SettingsShimImpl.java
+++ b/apishim/31/com/android/networkstack/apishim/api31/SettingsShimImpl.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.networkstack.apishim;
+package com.android.networkstack.apishim.api31;
import android.content.Context;
import android.os.Build;
@@ -48,9 +48,7 @@
public boolean checkAndNoteWriteSettingsOperation(@NonNull Context context, int uid,
@NonNull String callingPackage, @Nullable String callingAttributionTag,
boolean throwException) {
- // Since checkAndNoteWriteSettingsOperation with callingAttributionTag (S method) is not
- // available in AOSP, calling R method (same as API 30 shim) temporary.
return Settings.checkAndNoteWriteSettingsOperation(context, uid, callingPackage,
- throwException);
+ callingAttributionTag, throwException);
}
}
diff --git a/apishim/31/com/android/networkstack/apishim/SocketUtilsShimImpl.java b/apishim/31/com/android/networkstack/apishim/api31/SocketUtilsShimImpl.java
similarity index 94%
rename from apishim/31/com/android/networkstack/apishim/SocketUtilsShimImpl.java
rename to apishim/31/com/android/networkstack/apishim/api31/SocketUtilsShimImpl.java
index 483bde0..f5aa80b 100644
--- a/apishim/31/com/android/networkstack/apishim/SocketUtilsShimImpl.java
+++ b/apishim/31/com/android/networkstack/apishim/api31/SocketUtilsShimImpl.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.networkstack.apishim;
+package com.android.networkstack.apishim.api31;
/**
* Implementation of {@link NetworkShim} for API 30.
diff --git a/apishim/32/com/android/networkstack/apishim/CaptivePortalDataShimImpl.java b/apishim/32/com/android/networkstack/apishim/CaptivePortalDataShimImpl.java
new file mode 100644
index 0000000..2056b1b
--- /dev/null
+++ b/apishim/32/com/android/networkstack/apishim/CaptivePortalDataShimImpl.java
@@ -0,0 +1,37 @@
+/*
+ * 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.
+ */
+
+package com.android.networkstack.apishim;
+
+import android.net.CaptivePortalData;
+import android.os.Build;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
+
+import com.android.networkstack.apishim.common.CaptivePortalDataShim;
+
+/**
+ * Compatibility implementation of {@link CaptivePortalDataShim}.
+ */
+@RequiresApi(Build.VERSION_CODES.S) // Change to T when version code available, and adding T methods
+public class CaptivePortalDataShimImpl
+ extends com.android.networkstack.apishim.api31.CaptivePortalDataShimImpl {
+ // Currently identical to the API 31 shim, so inherit everything
+ public CaptivePortalDataShimImpl(@NonNull CaptivePortalData data) {
+ super(data);
+ }
+}
diff --git a/apishim/32/com/android/networkstack/apishim/ConnectivityManagerShimImpl.java b/apishim/32/com/android/networkstack/apishim/ConnectivityManagerShimImpl.java
new file mode 100644
index 0000000..a7aa0c8
--- /dev/null
+++ b/apishim/32/com/android/networkstack/apishim/ConnectivityManagerShimImpl.java
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+
+package com.android.networkstack.apishim;
+
+import android.content.Context;
+import android.os.Build;
+
+import androidx.annotation.RequiresApi;
+
+import com.android.networkstack.apishim.common.ConnectivityManagerShim;
+
+/**
+ * Compatibility implementation of {@link ConnectivityManagerShim}.
+ */
+@RequiresApi(Build.VERSION_CODES.S) // Change to T when version code available, and adding T methods
+public class ConnectivityManagerShimImpl
+ extends com.android.networkstack.apishim.api31.ConnectivityManagerShimImpl {
+ // Currently identical to the API 31 shim, so inherit everything
+ protected ConnectivityManagerShimImpl(Context context) {
+ super(context);
+ }
+}
diff --git a/apishim/31/com/android/networkstack/apishim/ConstantsShim.java b/apishim/32/com/android/networkstack/apishim/ConstantsShim.java
similarity index 76%
copy from apishim/31/com/android/networkstack/apishim/ConstantsShim.java
copy to apishim/32/com/android/networkstack/apishim/ConstantsShim.java
index 0184845..0a5b555 100644
--- a/apishim/31/com/android/networkstack/apishim/ConstantsShim.java
+++ b/apishim/32/com/android/networkstack/apishim/ConstantsShim.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2020 The Android Open Source Project
+ * 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.
@@ -21,7 +21,7 @@
/**
* Utility class for defining and importing constants from the Android platform.
*/
-public class ConstantsShim extends com.android.networkstack.apishim.api30.ConstantsShim {
+public class ConstantsShim extends com.android.networkstack.apishim.api31.ConstantsShim {
/**
* Constant that callers can use to determine what version of the shim they are using.
* Must be the same as the version of the shims.
@@ -29,9 +29,5 @@
* the shimmed objects and methods themselves.
*/
@VisibleForTesting
- public static final int VERSION = 31;
-
- // When removing this shim, the version in NetworkMonitorUtils should be removed too.
- // TODO: add TRANSPORT_TEST to system API in API 31 (it is only a test API as of R)
- public static final int TRANSPORT_TEST = 7;
+ public static final int VERSION = 32;
}
diff --git a/apishim/32/com/android/networkstack/apishim/NetworkInformationShimImpl.java b/apishim/32/com/android/networkstack/apishim/NetworkInformationShimImpl.java
new file mode 100644
index 0000000..28aa75c
--- /dev/null
+++ b/apishim/32/com/android/networkstack/apishim/NetworkInformationShimImpl.java
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+
+package com.android.networkstack.apishim;
+
+import android.os.Build;
+
+import androidx.annotation.RequiresApi;
+
+import com.android.networkstack.apishim.common.NetworkInformationShim;
+
+/**
+ * Compatibility implementation of {@link NetworkInformationShim}.
+ */
+@RequiresApi(Build.VERSION_CODES.S) // Change to T when version code available, and adding T methods
+public class NetworkInformationShimImpl
+ extends com.android.networkstack.apishim.api31.NetworkInformationShimImpl {
+ // Currently identical to the API 31 shim, so inherit everything
+ protected NetworkInformationShimImpl() {}
+}
diff --git a/apishim/32/com/android/networkstack/apishim/NetworkRequestShimImpl.java b/apishim/32/com/android/networkstack/apishim/NetworkRequestShimImpl.java
new file mode 100644
index 0000000..95ae5ba
--- /dev/null
+++ b/apishim/32/com/android/networkstack/apishim/NetworkRequestShimImpl.java
@@ -0,0 +1,35 @@
+/*
+ * 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.
+ */
+
+package com.android.networkstack.apishim;
+
+import android.os.Build;
+
+import androidx.annotation.RequiresApi;
+
+import com.android.networkstack.apishim.common.NetworkRequestShim;
+
+/**
+ * Implementation of {@link NetworkRequestShim} for API 31.
+ */
+@RequiresApi(Build.VERSION_CODES.S) // Change to T when version code available, and adding T methods
+public class NetworkRequestShimImpl
+ extends com.android.networkstack.apishim.api31.NetworkRequestShimImpl {
+ // Currently identical to the API 31 shim, so inherit everything
+ protected NetworkRequestShimImpl() {
+ super();
+ }
+}
diff --git a/apishim/31/com/android/networkstack/apishim/NetworkShimImpl.java b/apishim/32/com/android/networkstack/apishim/NetworkShimImpl.java
similarity index 70%
copy from apishim/31/com/android/networkstack/apishim/NetworkShimImpl.java
copy to apishim/32/com/android/networkstack/apishim/NetworkShimImpl.java
index 0c92391..2e31a78 100644
--- a/apishim/31/com/android/networkstack/apishim/NetworkShimImpl.java
+++ b/apishim/32/com/android/networkstack/apishim/NetworkShimImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2020 The Android Open Source Project
+ * 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.
@@ -17,14 +17,17 @@
package com.android.networkstack.apishim;
import android.net.Network;
+import android.os.Build;
import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
/**
- * Implementation of {@link NetworkShim} for API 30.
+ * Compatibility implementation of {@link com.android.networkstack.apishim.common.NetworkShim}.
*/
+@RequiresApi(Build.VERSION_CODES.S) // Change to T when version code available, and adding T methods
public class NetworkShimImpl extends com.android.networkstack.apishim.api30.NetworkShimImpl {
- // Currently, this is the same as the API 30 shim, so inherit everything from that.
+ // Currently, this is the same as the API 31 shim, so inherit everything from that.
protected NetworkShimImpl(@NonNull Network network) {
super(network);
}
diff --git a/apishim/32/com/android/networkstack/apishim/SettingsShimImpl.java b/apishim/32/com/android/networkstack/apishim/SettingsShimImpl.java
new file mode 100644
index 0000000..46d2102
--- /dev/null
+++ b/apishim/32/com/android/networkstack/apishim/SettingsShimImpl.java
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+
+package com.android.networkstack.apishim;
+
+import android.os.Build;
+
+import androidx.annotation.RequiresApi;
+
+import com.android.networkstack.apishim.common.SettingsShim;
+
+/**
+ * Compatibility implementation of {@link SettingsShim} for API 31.
+ */
+@RequiresApi(Build.VERSION_CODES.S) // Change to T when version code available, and adding T methods
+public class SettingsShimImpl
+ extends com.android.networkstack.apishim.api30.SettingsShimImpl {
+ // Currently identical to the API 31 shim, so inherit everything
+ protected SettingsShimImpl() { }
+}
diff --git a/apishim/31/com/android/networkstack/apishim/SocketUtilsShimImpl.java b/apishim/32/com/android/networkstack/apishim/SocketUtilsShimImpl.java
similarity index 68%
copy from apishim/31/com/android/networkstack/apishim/SocketUtilsShimImpl.java
copy to apishim/32/com/android/networkstack/apishim/SocketUtilsShimImpl.java
index 483bde0..2f4e500 100644
--- a/apishim/31/com/android/networkstack/apishim/SocketUtilsShimImpl.java
+++ b/apishim/32/com/android/networkstack/apishim/SocketUtilsShimImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2020 The Android Open Source Project
+ * 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.
@@ -16,11 +16,16 @@
package com.android.networkstack.apishim;
+import android.os.Build;
+
+import androidx.annotation.RequiresApi;
+
/**
- * Implementation of {@link NetworkShim} for API 30.
+ * Implementation of {@link com.android.networkstack.apishim.common.SocketUtilsShim}.
*/
+@RequiresApi(Build.VERSION_CODES.S) // Change to T when version code available, and adding T methods
public class SocketUtilsShimImpl
extends com.android.networkstack.apishim.api30.SocketUtilsShimImpl {
- // Currently, this is the same as the API 30 shim, so inherit everything from that.
+ // Currently, this is the same as the API 31 shim, so inherit everything from that.
protected SocketUtilsShimImpl() {}
}
diff --git a/apishim/common/com/android/networkstack/apishim/common/NetworkRequestShim.java b/apishim/common/com/android/networkstack/apishim/common/NetworkRequestShim.java
index 7d6d7bf..d07d1ae 100644
--- a/apishim/common/com/android/networkstack/apishim/common/NetworkRequestShim.java
+++ b/apishim/common/com/android/networkstack/apishim/common/NetworkRequestShim.java
@@ -37,6 +37,14 @@
@Nullable Set<Range<Integer>> uids) throws UnsupportedApiLevelException;
/**
+ * See android.net.NetworkRequest.Builder#setIncludeOtherUidNetworks.
+ */
+ default NetworkRequest.Builder setIncludeOtherUidNetworks(NetworkRequest.Builder builder,
+ boolean include) throws UnsupportedApiLevelException {
+ throw new UnsupportedApiLevelException("Not supported before API 31.");
+ }
+
+ /**
* See android.net.NetworkRequest.Builder(NetworkRequest).
* @throws UnsupportedApiLevelException if API is not available in the API level.
*/
diff --git a/apishim/jarjar-rules-compat.txt b/apishim/jarjar-rules-compat.txt
index dba2b49..4f34ccb 100644
--- a/apishim/jarjar-rules-compat.txt
+++ b/apishim/jarjar-rules-compat.txt
@@ -1,7 +1,7 @@
# jarjar rules to use on API stable builds.
# Use the latest stable apishim package as the main apishim package, to replace and avoid building
# the unstable, non-compatibility shims.
-# Once API 31 is stable, apishim/31/com.android.networkstack.apishim should be moved to the
-# com.android.networkstack.apishim.api31 package, a new apishim/32/com.android.networkstack.apishim
-# package should be created, and this rule should reference api31.
-rule com.android.networkstack.apishim.api30.** com.android.networkstack.apishim.@1
\ No newline at end of file
+# Once API 32 is stable, apishim/32/com.android.networkstack.apishim should be moved to the
+# com.android.networkstack.apishim.api32 package, a new apishim/33/com.android.networkstack.apishim
+# package should be created, and this rule should reference api32.
+rule com.android.networkstack.apishim.api31.** com.android.networkstack.apishim.@1
\ No newline at end of file
diff --git a/lint-baseline-current-lib.xml b/lint-baseline-current-lib.xml
index f7b00f2..e8cfe3e 100644
--- a/lint-baseline-current-lib.xml
+++ b/lint-baseline-current-lib.xml
@@ -3,83 +3,6 @@
<issue
id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#addressAndPortToString`"
- errorLine1=" ConnectivityUtils.addressAndPortToString("
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/android/net/apf/ApfFilter.java"
- line="1032"
- column="43"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#addressAndPortToString`"
- errorLine1=" ConnectivityUtils.addressAndPortToString("
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/android/net/apf/ApfFilter.java"
- line="1034"
- column="43"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#addressAndPortToString`"
- errorLine1=" ConnectivityUtils.addressAndPortToString("
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/android/net/apf/ApfFilter.java"
- line="1087"
- column="43"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#addressAndPortToString`"
- errorLine1=" ConnectivityUtils.addressAndPortToString("
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/android/net/apf/ApfFilter.java"
- line="1089"
- column="43"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#any`"
- errorLine1=" final boolean haveKeepaliveResponses = CollectionUtils.any(mKeepalivePackets,"
- errorLine2=" ~~~">
- <location
- file="packages/modules/NetworkStack/src/android/net/apf/ApfFilter.java"
- line="1368"
- column="64"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#toIntArray`"
- errorLine1=" CollectionUtils.toIntArray(mDnsReturnCode),"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/com/android/networkstack/metrics/DataStallDetectionStats.java"
- line="302"
- column="37"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#toLongArray`"
- errorLine1=" CollectionUtils.toLongArray(mDnsTimeStamp),"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/com/android/networkstack/metrics/DataStallDetectionStats.java"
- line="303"
- column="37"/>
- </issue>
-
- <issue
- id="NewApi"
message="Call requires API level R (current min is 29): `android.net.LinkProperties#getNat64Prefix`"
errorLine1=" newLp.setNat64Prefix(netlinkLinkProperties.getNat64Prefix());"
errorLine2=" ~~~~~~~~~~~~~~">
@@ -102,50 +25,6 @@
<issue
id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#saturatedCast`"
- errorLine1=" mStatsBuilder.setIpv4LatencyMicros(ConnectivityUtils.saturatedCast(mIpv4Watch.stop()));"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/com/android/networkstack/metrics/IpProvisioningMetrics.java"
- line="74"
- column="66"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#saturatedCast`"
- errorLine1=" mStatsBuilder.setIpv6LatencyMicros(ConnectivityUtils.saturatedCast(mIpv6Watch.stop()));"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/com/android/networkstack/metrics/IpProvisioningMetrics.java"
- line="83"
- column="66"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#isEmpty`"
- errorLine1=" if (isEmpty(mCaptivePortalFallbackSpecs)) {"
- errorLine2=" ~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java"
- line="2279"
- column="13"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#isIPv6ULA`"
- errorLine1=" || isIPv6ULA(address)) {"
- errorLine2=" ~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java"
- line="2447"
- column="24"/>
- </issue>
-
- <issue
- id="NewApi"
message="Call requires API level R (current min is 29): `android.telephony.NetworkRegistrationInfo#getCellIdentity`"
errorLine1=" nri == null ? null : nri.getCellIdentity());"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -155,48 +34,4 @@
column="46"/>
</issue>
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#saturatedCast`"
- errorLine1=" int latencyUs = ConnectivityUtils.saturatedCast(durationUs);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/com/android/networkstack/metrics/NetworkValidationMetrics.java"
- line="198"
- column="43"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#saturatedCast`"
- errorLine1=" .setRemainingTtlSecs(ConnectivityUtils.saturatedCast(secondsRemaining))"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/com/android/networkstack/metrics/NetworkValidationMetrics.java"
- line="209"
- column="56"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#saturatedCast`"
- errorLine1=" ConnectivityUtils.saturatedCast(capportData.getByteLimit() / 1000))"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/com/android/networkstack/metrics/NetworkValidationMetrics.java"
- line="212"
- column="43"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#saturatedCast`"
- errorLine1=" mStatsBuilder.setLatencyMicros(ConnectivityUtils.saturatedCast(mWatch.stop()));"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/com/android/networkstack/metrics/NetworkValidationMetrics.java"
- line="237"
- column="58"/>
- </issue>
-
</issues>
diff --git a/lint-baseline-stable-lib.xml b/lint-baseline-stable-lib.xml
index f7b00f2..e8cfe3e 100644
--- a/lint-baseline-stable-lib.xml
+++ b/lint-baseline-stable-lib.xml
@@ -3,83 +3,6 @@
<issue
id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#addressAndPortToString`"
- errorLine1=" ConnectivityUtils.addressAndPortToString("
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/android/net/apf/ApfFilter.java"
- line="1032"
- column="43"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#addressAndPortToString`"
- errorLine1=" ConnectivityUtils.addressAndPortToString("
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/android/net/apf/ApfFilter.java"
- line="1034"
- column="43"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#addressAndPortToString`"
- errorLine1=" ConnectivityUtils.addressAndPortToString("
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/android/net/apf/ApfFilter.java"
- line="1087"
- column="43"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#addressAndPortToString`"
- errorLine1=" ConnectivityUtils.addressAndPortToString("
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/android/net/apf/ApfFilter.java"
- line="1089"
- column="43"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#any`"
- errorLine1=" final boolean haveKeepaliveResponses = CollectionUtils.any(mKeepalivePackets,"
- errorLine2=" ~~~">
- <location
- file="packages/modules/NetworkStack/src/android/net/apf/ApfFilter.java"
- line="1368"
- column="64"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#toIntArray`"
- errorLine1=" CollectionUtils.toIntArray(mDnsReturnCode),"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/com/android/networkstack/metrics/DataStallDetectionStats.java"
- line="302"
- column="37"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#toLongArray`"
- errorLine1=" CollectionUtils.toLongArray(mDnsTimeStamp),"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/com/android/networkstack/metrics/DataStallDetectionStats.java"
- line="303"
- column="37"/>
- </issue>
-
- <issue
- id="NewApi"
message="Call requires API level R (current min is 29): `android.net.LinkProperties#getNat64Prefix`"
errorLine1=" newLp.setNat64Prefix(netlinkLinkProperties.getNat64Prefix());"
errorLine2=" ~~~~~~~~~~~~~~">
@@ -102,50 +25,6 @@
<issue
id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#saturatedCast`"
- errorLine1=" mStatsBuilder.setIpv4LatencyMicros(ConnectivityUtils.saturatedCast(mIpv4Watch.stop()));"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/com/android/networkstack/metrics/IpProvisioningMetrics.java"
- line="74"
- column="66"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#saturatedCast`"
- errorLine1=" mStatsBuilder.setIpv6LatencyMicros(ConnectivityUtils.saturatedCast(mIpv6Watch.stop()));"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/com/android/networkstack/metrics/IpProvisioningMetrics.java"
- line="83"
- column="66"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.CollectionUtils#isEmpty`"
- errorLine1=" if (isEmpty(mCaptivePortalFallbackSpecs)) {"
- errorLine2=" ~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java"
- line="2279"
- column="13"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#isIPv6ULA`"
- errorLine1=" || isIPv6ULA(address)) {"
- errorLine2=" ~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java"
- line="2447"
- column="24"/>
- </issue>
-
- <issue
- id="NewApi"
message="Call requires API level R (current min is 29): `android.telephony.NetworkRegistrationInfo#getCellIdentity`"
errorLine1=" nri == null ? null : nri.getCellIdentity());"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -155,48 +34,4 @@
column="46"/>
</issue>
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#saturatedCast`"
- errorLine1=" int latencyUs = ConnectivityUtils.saturatedCast(durationUs);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/com/android/networkstack/metrics/NetworkValidationMetrics.java"
- line="198"
- column="43"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#saturatedCast`"
- errorLine1=" .setRemainingTtlSecs(ConnectivityUtils.saturatedCast(secondsRemaining))"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/com/android/networkstack/metrics/NetworkValidationMetrics.java"
- line="209"
- column="56"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#saturatedCast`"
- errorLine1=" ConnectivityUtils.saturatedCast(capportData.getByteLimit() / 1000))"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/com/android/networkstack/metrics/NetworkValidationMetrics.java"
- line="212"
- column="43"/>
- </issue>
-
- <issue
- id="NewApi"
- message="Call requires API level 31 (current min is 29): `com.android.net.module.util.ConnectivityUtils#saturatedCast`"
- errorLine1=" mStatsBuilder.setLatencyMicros(ConnectivityUtils.saturatedCast(mWatch.stop()));"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="packages/modules/NetworkStack/src/com/android/networkstack/metrics/NetworkValidationMetrics.java"
- line="237"
- column="58"/>
- </issue>
-
</issues>
diff --git a/tests/unit/Android.bp b/tests/unit/Android.bp
index 5a6444f..64da600 100644
--- a/tests/unit/Android.bp
+++ b/tests/unit/Android.bp
@@ -36,7 +36,10 @@
"android.test.base",
"android.test.mock",
],
- defaults: ["libnetworkstackutilsjni_deps"],
+ defaults: [
+ "framework-connectivity-test-defaults",
+ "libnetworkstackutilsjni_deps"
+ ],
jni_libs: [
// For mockito extended
"libdexmakerjvmtiagent",
@@ -54,7 +57,10 @@
min_sdk_version: "29",
srcs: [], // TODO: tests that only apply to the current, non-stable API can be added here
test_suites: ["general-tests"],
- test_mainline_modules: ["CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex"],
+ test_mainline_modules: [
+ "CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex",
+ "CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex"
+ ],
defaults: ["NetworkStackTestsDefaults"],
static_libs: ["NetworkStackApiCurrentLib"],
compile_multilib: "both", // Workaround for b/147785146 for mainline-presubmit
@@ -80,7 +86,10 @@
min_sdk_version: "29",
target_sdk_version: "30",
test_suites: ["general-tests", "mts"],
- test_mainline_modules: ["CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex"],
+ test_mainline_modules: [
+ "CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex",
+ "CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex"
+ ],
defaults: ["NetworkStackTestsDefaults"],
static_libs: ["NetworkStackApiStableLib"],
compile_multilib: "both",