Merge "Make CaptivePortalProbeSpec and CaptivePortalProbeResult as a library" am: 3db9cfe660
am: 2d20cd2378
Change-Id: I5a5fd9f900bb1d7217364812d9d0e5477179bfc9
This commit is contained in:
@@ -3328,37 +3328,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<android.net.captiveportal.CaptivePortalProbeSpec> parseCaptivePortalProbeSpecs(@NonNull String);
|
|
||||||
method @Nullable public static android.net.captiveportal.CaptivePortalProbeSpec parseSpecOrNull(@Nullable String);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
package android.net.metrics {
|
package android.net.metrics {
|
||||||
|
|
||||||
public final class ApfProgramEvent implements android.net.metrics.IpConnectivityLog.Event {
|
public final class ApfProgramEvent implements android.net.metrics.IpConnectivityLog.Event {
|
||||||
|
|||||||
@@ -747,37 +747,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<android.net.captiveportal.CaptivePortalProbeSpec> parseCaptivePortalProbeSpecs(@NonNull String);
|
|
||||||
method @Nullable public static android.net.captiveportal.CaptivePortalProbeSpec parseSpecOrNull(@Nullable String);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
package android.net.metrics {
|
package android.net.metrics {
|
||||||
|
|
||||||
public final class ApfProgramEvent implements android.net.metrics.IpConnectivityLog.Event {
|
public final class ApfProgramEvent implements android.net.metrics.IpConnectivityLog.Event {
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ android_app {
|
|||||||
static_libs: [
|
static_libs: [
|
||||||
"android-support-v4",
|
"android-support-v4",
|
||||||
"metrics-constants-protos",
|
"metrics-constants-protos",
|
||||||
|
"captiveportal-lib",
|
||||||
],
|
],
|
||||||
manifest: "AndroidManifest.xml",
|
manifest: "AndroidManifest.xml",
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,15 @@
|
|||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
//
|
//
|
||||||
|
|
||||||
|
java_library {
|
||||||
|
name: "captiveportal-lib",
|
||||||
|
srcs: ["common/**/*.java"],
|
||||||
|
libs: [
|
||||||
|
"androidx.annotation_annotation",
|
||||||
|
],
|
||||||
|
sdk_version: "system_current",
|
||||||
|
}
|
||||||
|
|
||||||
java_defaults {
|
java_defaults {
|
||||||
name: "NetworkStackCommon",
|
name: "NetworkStackCommon",
|
||||||
sdk_version: "system_current",
|
sdk_version: "system_current",
|
||||||
@@ -35,6 +44,7 @@ android_library {
|
|||||||
"networkstack-aidl-interfaces-java",
|
"networkstack-aidl-interfaces-java",
|
||||||
"datastallprotosnano",
|
"datastallprotosnano",
|
||||||
"networkstackprotosnano",
|
"networkstackprotosnano",
|
||||||
|
"captiveportal-lib",
|
||||||
],
|
],
|
||||||
manifest: "AndroidManifestBase.xml",
|
manifest: "AndroidManifestBase.xml",
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,17 +16,13 @@
|
|||||||
|
|
||||||
package android.net.captiveportal;
|
package android.net.captiveportal;
|
||||||
|
|
||||||
import android.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import android.annotation.SystemApi;
|
|
||||||
import android.annotation.TestApi;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Result of calling isCaptivePortal().
|
* Result of calling isCaptivePortal().
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
|
||||||
@TestApi
|
|
||||||
public final class CaptivePortalProbeResult {
|
public final class CaptivePortalProbeResult {
|
||||||
public static final int SUCCESS_CODE = 204;
|
public static final int SUCCESS_CODE = 204;
|
||||||
public static final int FAILED_CODE = 599;
|
public static final int FAILED_CODE = 599;
|
||||||
@@ -19,16 +19,12 @@ package android.net.captiveportal;
|
|||||||
import static android.net.captiveportal.CaptivePortalProbeResult.PORTAL_CODE;
|
import static android.net.captiveportal.CaptivePortalProbeResult.PORTAL_CODE;
|
||||||
import static android.net.captiveportal.CaptivePortalProbeResult.SUCCESS_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.text.TextUtils;
|
||||||
import android.util.Log;
|
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.MalformedURLException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
@@ -40,8 +36,6 @@ import java.util.regex.Pattern;
|
|||||||
import java.util.regex.PatternSyntaxException;
|
import java.util.regex.PatternSyntaxException;
|
||||||
|
|
||||||
/** @hide */
|
/** @hide */
|
||||||
@SystemApi
|
|
||||||
@TestApi
|
|
||||||
public abstract class CaptivePortalProbeSpec {
|
public abstract class CaptivePortalProbeSpec {
|
||||||
private static final String TAG = CaptivePortalProbeSpec.class.getSimpleName();
|
private static final String TAG = CaptivePortalProbeSpec.class.getSimpleName();
|
||||||
private static final String REGEX_SEPARATOR = "@@/@@";
|
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)
|
// 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();
|
return pattern == null || TextUtils.isEmpty(value) || pattern.matcher(value).matches();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Throws NullPointerException if the input is null.
|
||||||
|
private static <T> T checkNotNull(T object) {
|
||||||
|
if (object == null) throw new NullPointerException();
|
||||||
|
return object;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user