diff --git a/api/system-current.txt b/api/system-current.txt index b419851f85891..394b1aaf3bace 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -4288,37 +4288,6 @@ package android.net.apf { } -package android.net.captiveportal { - - public final class CaptivePortalProbeResult { - ctor public CaptivePortalProbeResult(int); - ctor public CaptivePortalProbeResult(int, @Nullable String, @Nullable String); - ctor public CaptivePortalProbeResult(int, @Nullable String, @Nullable String, @Nullable android.net.captiveportal.CaptivePortalProbeSpec); - method public boolean isFailed(); - method public boolean isPartialConnectivity(); - method public boolean isPortal(); - method public boolean isSuccessful(); - field @NonNull public static final android.net.captiveportal.CaptivePortalProbeResult FAILED; - field public static final int FAILED_CODE = 599; // 0x257 - field public static final android.net.captiveportal.CaptivePortalProbeResult PARTIAL; - field public static final int PORTAL_CODE = 302; // 0x12e - field @NonNull public static final android.net.captiveportal.CaptivePortalProbeResult SUCCESS; - field public static final int SUCCESS_CODE = 204; // 0xcc - field @Nullable public final String detectUrl; - field @Nullable public final android.net.captiveportal.CaptivePortalProbeSpec probeSpec; - field @Nullable public final String redirectUrl; - } - - public abstract class CaptivePortalProbeSpec { - method @NonNull public String getEncodedSpec(); - method @NonNull public abstract android.net.captiveportal.CaptivePortalProbeResult getResult(int, @Nullable String); - method @NonNull public java.net.URL getUrl(); - method @NonNull public static java.util.Collection parseCaptivePortalProbeSpecs(@NonNull String); - method @Nullable public static android.net.captiveportal.CaptivePortalProbeSpec parseSpecOrNull(@Nullable String); - } - -} - package android.net.metrics { public final class ApfProgramEvent implements android.net.metrics.IpConnectivityLog.Event { diff --git a/api/test-current.txt b/api/test-current.txt index cb2dc07150715..bb4d2335f7e9e 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -1371,37 +1371,6 @@ package android.net.apf { } -package android.net.captiveportal { - - public final class CaptivePortalProbeResult { - ctor public CaptivePortalProbeResult(int); - ctor public CaptivePortalProbeResult(int, @Nullable String, @Nullable String); - ctor public CaptivePortalProbeResult(int, @Nullable String, @Nullable String, @Nullable android.net.captiveportal.CaptivePortalProbeSpec); - method public boolean isFailed(); - method public boolean isPartialConnectivity(); - method public boolean isPortal(); - method public boolean isSuccessful(); - field @NonNull public static final android.net.captiveportal.CaptivePortalProbeResult FAILED; - field public static final int FAILED_CODE = 599; // 0x257 - field public static final android.net.captiveportal.CaptivePortalProbeResult PARTIAL; - field public static final int PORTAL_CODE = 302; // 0x12e - field @NonNull public static final android.net.captiveportal.CaptivePortalProbeResult SUCCESS; - field public static final int SUCCESS_CODE = 204; // 0xcc - field @Nullable public final String detectUrl; - field @Nullable public final android.net.captiveportal.CaptivePortalProbeSpec probeSpec; - field @Nullable public final String redirectUrl; - } - - public abstract class CaptivePortalProbeSpec { - method @NonNull public String getEncodedSpec(); - method @NonNull public abstract android.net.captiveportal.CaptivePortalProbeResult getResult(int, @Nullable String); - method @NonNull public java.net.URL getUrl(); - method @NonNull public static java.util.Collection parseCaptivePortalProbeSpecs(@NonNull String); - method @Nullable public static android.net.captiveportal.CaptivePortalProbeSpec parseSpecOrNull(@Nullable String); - } - -} - package android.net.metrics { public final class ApfProgramEvent implements android.net.metrics.IpConnectivityLog.Event { diff --git a/packages/CaptivePortalLogin/Android.bp b/packages/CaptivePortalLogin/Android.bp index bc614e9fc14cc..a345091aa71ec 100644 --- a/packages/CaptivePortalLogin/Android.bp +++ b/packages/CaptivePortalLogin/Android.bp @@ -23,6 +23,7 @@ android_app { static_libs: [ "androidx.legacy_legacy-support-v4", "metrics-constants-protos", + "captiveportal-lib", ], manifest: "AndroidManifest.xml", } diff --git a/packages/NetworkStack/Android.bp b/packages/NetworkStack/Android.bp index d56f97f55f7eb..57a3db586c539 100644 --- a/packages/NetworkStack/Android.bp +++ b/packages/NetworkStack/Android.bp @@ -14,6 +14,15 @@ // limitations under the License. // +java_library { + name: "captiveportal-lib", + srcs: ["common/**/*.java"], + libs: [ + "androidx.annotation_annotation", + ], + sdk_version: "system_current", +} + java_defaults { name: "NetworkStackCommon", sdk_version: "system_current", @@ -35,6 +44,7 @@ android_library { "networkstack-aidl-interfaces-java", "datastallprotosnano", "networkstackprotosnano", + "captiveportal-lib", ], manifest: "AndroidManifestBase.xml", } diff --git a/core/java/android/net/captiveportal/CaptivePortalProbeResult.java b/packages/NetworkStack/common/CaptivePortalProbeResult.java similarity index 95% rename from core/java/android/net/captiveportal/CaptivePortalProbeResult.java rename to packages/NetworkStack/common/CaptivePortalProbeResult.java index a1d3de248a96b..48cd48b30085b 100644 --- a/core/java/android/net/captiveportal/CaptivePortalProbeResult.java +++ b/packages/NetworkStack/common/CaptivePortalProbeResult.java @@ -16,17 +16,13 @@ package android.net.captiveportal; -import android.annotation.NonNull; -import android.annotation.Nullable; -import android.annotation.SystemApi; -import android.annotation.TestApi; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; /** * Result of calling isCaptivePortal(). * @hide */ -@SystemApi -@TestApi public final class CaptivePortalProbeResult { public static final int SUCCESS_CODE = 204; public static final int FAILED_CODE = 599; diff --git a/core/java/android/net/captiveportal/CaptivePortalProbeSpec.java b/packages/NetworkStack/common/CaptivePortalProbeSpec.java similarity index 95% rename from core/java/android/net/captiveportal/CaptivePortalProbeSpec.java rename to packages/NetworkStack/common/CaptivePortalProbeSpec.java index b354607b88566..bf983a50ab512 100644 --- a/core/java/android/net/captiveportal/CaptivePortalProbeSpec.java +++ b/packages/NetworkStack/common/CaptivePortalProbeSpec.java @@ -19,16 +19,12 @@ package android.net.captiveportal; import static android.net.captiveportal.CaptivePortalProbeResult.PORTAL_CODE; import static android.net.captiveportal.CaptivePortalProbeResult.SUCCESS_CODE; -import static com.android.internal.util.Preconditions.checkNotNull; - -import android.annotation.NonNull; -import android.annotation.Nullable; -import android.annotation.SystemApi; -import android.annotation.TestApi; import android.text.TextUtils; import android.util.Log; -import com.android.internal.annotations.VisibleForTesting; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.VisibleForTesting; import java.net.MalformedURLException; import java.net.URL; @@ -40,8 +36,6 @@ import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; /** @hide */ -@SystemApi -@TestApi public abstract class CaptivePortalProbeSpec { private static final String TAG = CaptivePortalProbeSpec.class.getSimpleName(); private static final String REGEX_SEPARATOR = "@@/@@"; @@ -192,4 +186,10 @@ public abstract class CaptivePortalProbeSpec { // No value is a match ("no location header" passes the location rule for non-redirects) return pattern == null || TextUtils.isEmpty(value) || pattern.matcher(value).matches(); } + + // Throws NullPointerException if the input is null. + private static T checkNotNull(T object) { + if (object == null) throw new NullPointerException(); + return object; + } } diff --git a/tests/net/java/android/net/captiveportal/CaptivePortalProbeSpecTest.java b/packages/NetworkStack/tests/src/android/net/captiveportal/CaptivePortalProbeSpecTest.java similarity index 100% rename from tests/net/java/android/net/captiveportal/CaptivePortalProbeSpecTest.java rename to packages/NetworkStack/tests/src/android/net/captiveportal/CaptivePortalProbeSpecTest.java