Support for Venue URL and friendly name from Network agent
Extend CaptivePortalData with a member to hold the venue friendly name. If CaptivePortalData is initialized by both the network agent and Capport, merge the two objects to include the venue friendly name and prioritize the venue URL from the network agent. Bug: 162783305 Test: atest ConnectivityServiceTest Test: atest CtsNetTestCasesLatestSdk:CaptivePortalDataTest Test: End-to-end test Change-Id: I4fdf356be42237c5b6c0ae5bacfd3cec4726861b
This commit is contained in:
@@ -39,9 +39,11 @@ public final class CaptivePortalData implements Parcelable {
|
||||
private final long mByteLimit;
|
||||
private final long mExpiryTimeMillis;
|
||||
private final boolean mCaptive;
|
||||
private final String mVenueFriendlyName;
|
||||
|
||||
private CaptivePortalData(long refreshTimeMillis, Uri userPortalUrl, Uri venueInfoUrl,
|
||||
boolean isSessionExtendable, long byteLimit, long expiryTimeMillis, boolean captive) {
|
||||
boolean isSessionExtendable, long byteLimit, long expiryTimeMillis, boolean captive,
|
||||
String venueFriendlyName) {
|
||||
mRefreshTimeMillis = refreshTimeMillis;
|
||||
mUserPortalUrl = userPortalUrl;
|
||||
mVenueInfoUrl = venueInfoUrl;
|
||||
@@ -49,11 +51,12 @@ public final class CaptivePortalData implements Parcelable {
|
||||
mByteLimit = byteLimit;
|
||||
mExpiryTimeMillis = expiryTimeMillis;
|
||||
mCaptive = captive;
|
||||
mVenueFriendlyName = venueFriendlyName;
|
||||
}
|
||||
|
||||
private CaptivePortalData(Parcel p) {
|
||||
this(p.readLong(), p.readParcelable(null), p.readParcelable(null), p.readBoolean(),
|
||||
p.readLong(), p.readLong(), p.readBoolean());
|
||||
p.readLong(), p.readLong(), p.readBoolean(), p.readString());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -70,6 +73,7 @@ public final class CaptivePortalData implements Parcelable {
|
||||
dest.writeLong(mByteLimit);
|
||||
dest.writeLong(mExpiryTimeMillis);
|
||||
dest.writeBoolean(mCaptive);
|
||||
dest.writeString(mVenueFriendlyName);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -83,6 +87,7 @@ public final class CaptivePortalData implements Parcelable {
|
||||
private long mBytesRemaining = -1;
|
||||
private long mExpiryTime = -1;
|
||||
private boolean mCaptive;
|
||||
private String mVenueFriendlyName;
|
||||
|
||||
/**
|
||||
* Create an empty builder.
|
||||
@@ -100,7 +105,8 @@ public final class CaptivePortalData implements Parcelable {
|
||||
.setSessionExtendable(data.mIsSessionExtendable)
|
||||
.setBytesRemaining(data.mByteLimit)
|
||||
.setExpiryTime(data.mExpiryTimeMillis)
|
||||
.setCaptive(data.mCaptive);
|
||||
.setCaptive(data.mCaptive)
|
||||
.setVenueFriendlyName(data.mVenueFriendlyName);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -166,13 +172,23 @@ public final class CaptivePortalData implements Parcelable {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the venue friendly name.
|
||||
*/
|
||||
@NonNull
|
||||
public Builder setVenueFriendlyName(@Nullable String venueFriendlyName) {
|
||||
mVenueFriendlyName = venueFriendlyName;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new {@link CaptivePortalData}.
|
||||
*/
|
||||
@NonNull
|
||||
public CaptivePortalData build() {
|
||||
return new CaptivePortalData(mRefreshTime, mUserPortalUrl, mVenueInfoUrl,
|
||||
mIsSessionExtendable, mBytesRemaining, mExpiryTime, mCaptive);
|
||||
mIsSessionExtendable, mBytesRemaining, mExpiryTime, mCaptive,
|
||||
mVenueFriendlyName);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -232,6 +248,14 @@ public final class CaptivePortalData implements Parcelable {
|
||||
return mCaptive;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the venue friendly name
|
||||
*/
|
||||
@Nullable
|
||||
public String getVenueFriendlyName() {
|
||||
return mVenueFriendlyName;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public static final Creator<CaptivePortalData> CREATOR = new Creator<CaptivePortalData>() {
|
||||
@Override
|
||||
@@ -248,7 +272,7 @@ public final class CaptivePortalData implements Parcelable {
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(mRefreshTimeMillis, mUserPortalUrl, mVenueInfoUrl,
|
||||
mIsSessionExtendable, mByteLimit, mExpiryTimeMillis, mCaptive);
|
||||
mIsSessionExtendable, mByteLimit, mExpiryTimeMillis, mCaptive, mVenueFriendlyName);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -261,7 +285,8 @@ public final class CaptivePortalData implements Parcelable {
|
||||
&& mIsSessionExtendable == other.mIsSessionExtendable
|
||||
&& mByteLimit == other.mByteLimit
|
||||
&& mExpiryTimeMillis == other.mExpiryTimeMillis
|
||||
&& mCaptive == other.mCaptive;
|
||||
&& mCaptive == other.mCaptive
|
||||
&& Objects.equals(mVenueFriendlyName, other.mVenueFriendlyName);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -274,6 +299,7 @@ public final class CaptivePortalData implements Parcelable {
|
||||
+ ", byteLimit: " + mByteLimit
|
||||
+ ", expiryTime: " + mExpiryTimeMillis
|
||||
+ ", captive: " + mCaptive
|
||||
+ ", venueFriendlyName: " + mVenueFriendlyName
|
||||
+ "}";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user