Loading Android.bp +5 −0 Original line number Diff line number Diff line Loading @@ -69,6 +69,9 @@ java_defaults { "androidx.annotation_annotation", "networkstack-client", ], static_libs : [ "modules-utils-build_system" ], apex_available: [ "com.android.tethering", "//apex_available:platform", // For InProcessNetworkStack and InProcessTethering Loading Loading @@ -235,9 +238,11 @@ android_library { static_libs: ["NetworkStackApiStableShims"], manifest: "AndroidManifestBase.xml", visibility: [ "//frameworks/base/packages/Connectivity/tests/integration", "//frameworks/base/tests/net/integration", "//packages/modules/Connectivity/Tethering/tests/integration", "//packages/modules/Connectivity/tests/cts/net", "//packages/modules/Connectivity/tests/integration", "//packages/modules/NetworkStack/tests/unit", "//packages/modules/NetworkStack/tests/integration", ], Loading OWNERS +2 −0 Original line number Diff line number Diff line Loading @@ -2,5 +2,7 @@ codewiz@google.com jchalard@google.com junyulai@google.com lorenzo@google.com maze@google.com reminv@google.com satk@google.com xiaom@google.com apishim/30/com/android/networkstack/apishim/api30/ConnectivityManagerShimImpl.java +21 −3 Original line number Diff line number Diff line Loading @@ -17,12 +17,15 @@ package com.android.networkstack.apishim.api30; import android.content.Context; import android.net.ConnectivityManager; import android.net.ConnectivityManager.NetworkCallback; import android.net.NetworkCapabilities; import android.net.NetworkRequest; import android.os.Build; import android.os.Handler; import androidx.annotation.NonNull; import androidx.annotation.RequiresApi; import com.android.networkstack.apishim.common.ConnectivityManagerShim; import com.android.networkstack.apishim.common.ShimUtils; Loading @@ -33,8 +36,10 @@ import com.android.networkstack.apishim.common.UnsupportedApiLevelException; */ public class ConnectivityManagerShimImpl extends com.android.networkstack.apishim.api29.ConnectivityManagerShimImpl { protected final ConnectivityManager mCm; protected ConnectivityManagerShimImpl(Context context) { super(context); mCm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); } /** Loading Loading @@ -65,9 +70,22 @@ public class ConnectivityManagerShimImpl * @throws UnsupportedApiLevelException if API is not available in this API level. */ @Override @RequiresApi(Build.VERSION_CODES.R) public void registerSystemDefaultNetworkCallback(@NonNull NetworkCallback networkCallback, @NonNull Handler handler) throws UnsupportedApiLevelException { // Not supported for API 30. throw new UnsupportedApiLevelException("Not supported in API 30."); @NonNull Handler handler) { // defaultNetworkRequest is not really a "request", just a way of tracking the system // default network. It's guaranteed not to actually bring up any networks because it // should be the same request as the ConnectivityService default request, and thus // shares fate with it. In API <= R, registerSystemDefaultNetworkCallback is not // available, and registerDefaultNetworkCallback will not track the system default when // a VPN applies to the UID of this process. final NetworkRequest defaultNetworkRequest = new NetworkRequest.Builder() .clearCapabilities() .addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED) .addCapability(NetworkCapabilities.NET_CAPABILITY_TRUSTED) .addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN) .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) .build(); mCm.requestNetwork(defaultNetworkRequest, networkCallback, handler); } } apishim/31/com/android/networkstack/apishim/ConnectivityManagerShimImpl.java +6 −5 Original line number Diff line number Diff line Loading @@ -16,8 +16,9 @@ package com.android.networkstack.apishim; import static com.android.modules.utils.build.SdkLevel.isAtLeastS; import android.content.Context; import android.net.ConnectivityManager; import android.net.ConnectivityManager.NetworkCallback; import android.net.NetworkRequest; import android.os.Build; Loading @@ -25,29 +26,29 @@ import android.os.Handler; import android.util.Range; import androidx.annotation.NonNull; import androidx.annotation.RequiresApi; import com.android.networkstack.apishim.common.ConnectivityManagerShim; import com.android.networkstack.apishim.common.ShimUtils; import java.util.Collection; /** * Implementation of {@link ConnectivityManagerShim} for API 31. */ @RequiresApi(Build.VERSION_CODES.S) public class ConnectivityManagerShimImpl extends com.android.networkstack.apishim.api30.ConnectivityManagerShimImpl { private final ConnectivityManager mCm; protected ConnectivityManagerShimImpl(Context context) { super(context); mCm = context.getSystemService(ConnectivityManager.class); } /** * Get a new instance of {@link ConnectivityManagerShim}. */ @RequiresApi(Build.VERSION_CODES.Q) public static ConnectivityManagerShim newInstance(Context context) { if (!ShimUtils.isReleaseOrDevelopmentApiAbove(Build.VERSION_CODES.R)) { if (!isAtLeastS()) { return com.android.networkstack.apishim.api30.ConnectivityManagerShimImpl .newInstance(context); } Loading apishim/31/com/android/networkstack/apishim/NetworkRequestShimImpl.java +6 −5 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.networkstack.apishim; import static com.android.modules.utils.build.SdkLevel.isAtLeastS; import android.net.NetworkRequest; import android.os.Build; import android.util.Range; Loading @@ -25,13 +27,13 @@ import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import com.android.networkstack.apishim.common.NetworkRequestShim; import com.android.networkstack.apishim.common.ShimUtils; import java.util.Set; /** * Implementation of {@link NetworkRequestShim} for API 31. */ @RequiresApi(Build.VERSION_CODES.S) public class NetworkRequestShimImpl extends com.android.networkstack.apishim.api30.NetworkRequestShimImpl { protected NetworkRequestShimImpl() { Loading @@ -41,10 +43,10 @@ public class NetworkRequestShimImpl /** * Get a new instance of {@link NetworkRequestShim}. */ @RequiresApi(Build.VERSION_CODES.Q) public static NetworkRequestShim newInstance() { if (!ShimUtils.isReleaseOrDevelopmentApiAbove(Build.VERSION_CODES.R)) { return com.android.networkstack.apishim.api30.NetworkRequestShimImpl .newInstance(); if (!isAtLeastS()) { return com.android.networkstack.apishim.api30.NetworkRequestShimImpl.newInstance(); } return new NetworkRequestShimImpl(); } Loading @@ -55,7 +57,6 @@ public class NetworkRequestShimImpl builder.setUids(uids); } @RequiresApi(Build.VERSION_CODES.S) @Override public NetworkRequest.Builder newBuilder(@NonNull NetworkRequest request) { return new NetworkRequest.Builder(request); Loading Loading
Android.bp +5 −0 Original line number Diff line number Diff line Loading @@ -69,6 +69,9 @@ java_defaults { "androidx.annotation_annotation", "networkstack-client", ], static_libs : [ "modules-utils-build_system" ], apex_available: [ "com.android.tethering", "//apex_available:platform", // For InProcessNetworkStack and InProcessTethering Loading Loading @@ -235,9 +238,11 @@ android_library { static_libs: ["NetworkStackApiStableShims"], manifest: "AndroidManifestBase.xml", visibility: [ "//frameworks/base/packages/Connectivity/tests/integration", "//frameworks/base/tests/net/integration", "//packages/modules/Connectivity/Tethering/tests/integration", "//packages/modules/Connectivity/tests/cts/net", "//packages/modules/Connectivity/tests/integration", "//packages/modules/NetworkStack/tests/unit", "//packages/modules/NetworkStack/tests/integration", ], Loading
OWNERS +2 −0 Original line number Diff line number Diff line Loading @@ -2,5 +2,7 @@ codewiz@google.com jchalard@google.com junyulai@google.com lorenzo@google.com maze@google.com reminv@google.com satk@google.com xiaom@google.com
apishim/30/com/android/networkstack/apishim/api30/ConnectivityManagerShimImpl.java +21 −3 Original line number Diff line number Diff line Loading @@ -17,12 +17,15 @@ package com.android.networkstack.apishim.api30; import android.content.Context; import android.net.ConnectivityManager; import android.net.ConnectivityManager.NetworkCallback; import android.net.NetworkCapabilities; import android.net.NetworkRequest; import android.os.Build; import android.os.Handler; import androidx.annotation.NonNull; import androidx.annotation.RequiresApi; import com.android.networkstack.apishim.common.ConnectivityManagerShim; import com.android.networkstack.apishim.common.ShimUtils; Loading @@ -33,8 +36,10 @@ import com.android.networkstack.apishim.common.UnsupportedApiLevelException; */ public class ConnectivityManagerShimImpl extends com.android.networkstack.apishim.api29.ConnectivityManagerShimImpl { protected final ConnectivityManager mCm; protected ConnectivityManagerShimImpl(Context context) { super(context); mCm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); } /** Loading Loading @@ -65,9 +70,22 @@ public class ConnectivityManagerShimImpl * @throws UnsupportedApiLevelException if API is not available in this API level. */ @Override @RequiresApi(Build.VERSION_CODES.R) public void registerSystemDefaultNetworkCallback(@NonNull NetworkCallback networkCallback, @NonNull Handler handler) throws UnsupportedApiLevelException { // Not supported for API 30. throw new UnsupportedApiLevelException("Not supported in API 30."); @NonNull Handler handler) { // defaultNetworkRequest is not really a "request", just a way of tracking the system // default network. It's guaranteed not to actually bring up any networks because it // should be the same request as the ConnectivityService default request, and thus // shares fate with it. In API <= R, registerSystemDefaultNetworkCallback is not // available, and registerDefaultNetworkCallback will not track the system default when // a VPN applies to the UID of this process. final NetworkRequest defaultNetworkRequest = new NetworkRequest.Builder() .clearCapabilities() .addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED) .addCapability(NetworkCapabilities.NET_CAPABILITY_TRUSTED) .addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN) .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) .build(); mCm.requestNetwork(defaultNetworkRequest, networkCallback, handler); } }
apishim/31/com/android/networkstack/apishim/ConnectivityManagerShimImpl.java +6 −5 Original line number Diff line number Diff line Loading @@ -16,8 +16,9 @@ package com.android.networkstack.apishim; import static com.android.modules.utils.build.SdkLevel.isAtLeastS; import android.content.Context; import android.net.ConnectivityManager; import android.net.ConnectivityManager.NetworkCallback; import android.net.NetworkRequest; import android.os.Build; Loading @@ -25,29 +26,29 @@ import android.os.Handler; import android.util.Range; import androidx.annotation.NonNull; import androidx.annotation.RequiresApi; import com.android.networkstack.apishim.common.ConnectivityManagerShim; import com.android.networkstack.apishim.common.ShimUtils; import java.util.Collection; /** * Implementation of {@link ConnectivityManagerShim} for API 31. */ @RequiresApi(Build.VERSION_CODES.S) public class ConnectivityManagerShimImpl extends com.android.networkstack.apishim.api30.ConnectivityManagerShimImpl { private final ConnectivityManager mCm; protected ConnectivityManagerShimImpl(Context context) { super(context); mCm = context.getSystemService(ConnectivityManager.class); } /** * Get a new instance of {@link ConnectivityManagerShim}. */ @RequiresApi(Build.VERSION_CODES.Q) public static ConnectivityManagerShim newInstance(Context context) { if (!ShimUtils.isReleaseOrDevelopmentApiAbove(Build.VERSION_CODES.R)) { if (!isAtLeastS()) { return com.android.networkstack.apishim.api30.ConnectivityManagerShimImpl .newInstance(context); } Loading
apishim/31/com/android/networkstack/apishim/NetworkRequestShimImpl.java +6 −5 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.networkstack.apishim; import static com.android.modules.utils.build.SdkLevel.isAtLeastS; import android.net.NetworkRequest; import android.os.Build; import android.util.Range; Loading @@ -25,13 +27,13 @@ import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import com.android.networkstack.apishim.common.NetworkRequestShim; import com.android.networkstack.apishim.common.ShimUtils; import java.util.Set; /** * Implementation of {@link NetworkRequestShim} for API 31. */ @RequiresApi(Build.VERSION_CODES.S) public class NetworkRequestShimImpl extends com.android.networkstack.apishim.api30.NetworkRequestShimImpl { protected NetworkRequestShimImpl() { Loading @@ -41,10 +43,10 @@ public class NetworkRequestShimImpl /** * Get a new instance of {@link NetworkRequestShim}. */ @RequiresApi(Build.VERSION_CODES.Q) public static NetworkRequestShim newInstance() { if (!ShimUtils.isReleaseOrDevelopmentApiAbove(Build.VERSION_CODES.R)) { return com.android.networkstack.apishim.api30.NetworkRequestShimImpl .newInstance(); if (!isAtLeastS()) { return com.android.networkstack.apishim.api30.NetworkRequestShimImpl.newInstance(); } return new NetworkRequestShimImpl(); } Loading @@ -55,7 +57,6 @@ public class NetworkRequestShimImpl builder.setUids(uids); } @RequiresApi(Build.VERSION_CODES.S) @Override public NetworkRequest.Builder newBuilder(@NonNull NetworkRequest request) { return new NetworkRequest.Builder(request); Loading