Merge "Make CaptivePortalProbeSpec and CaptivePortalProbeResult as a library" am: 3db9cfe660

am: 2d20cd2378

Change-Id: I5a5fd9f900bb1d7217364812d9d0e5477179bfc9
This commit is contained in:
Paul Hu
2019-04-02 20:45:17 -07:00
committed by android-build-merger
7 changed files with 22 additions and 77 deletions

View File

@@ -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 {
public final class ApfProgramEvent implements android.net.metrics.IpConnectivityLog.Event {

View File

@@ -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 {
public final class ApfProgramEvent implements android.net.metrics.IpConnectivityLog.Event {

View File

@@ -23,6 +23,7 @@ android_app {
static_libs: [
"android-support-v4",
"metrics-constants-protos",
"captiveportal-lib",
],
manifest: "AndroidManifest.xml",
}

View File

@@ -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",
}

View File

@@ -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;

View File

@@ -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> T checkNotNull(T object) {
if (object == null) throw new NullPointerException();
return object;
}
}