Merge "Passpoint: add FQDN and Provider name field in WifiInfo"

This commit is contained in:
Ecco Park
2019-02-22 19:07:26 +00:00
committed by Android (Google) Code Review
3 changed files with 56 additions and 0 deletions

View File

@@ -4666,7 +4666,10 @@ package android.net.wifi {
}
public class WifiInfo implements android.os.Parcelable {
method @Nullable public String getFqdn();
method @Nullable public String getProviderFriendlyName();
method public boolean isOsuAp();
method public boolean isPasspointAp();
}
public class WifiManager {

View File

@@ -136,6 +136,16 @@ public class WifiInfo implements Parcelable {
*/
private boolean mOsuAp;
/**
* Fully qualified domain name of a Passpoint configuration
*/
private String mFqdn;
/**
* Name of Passpoint credential provider
*/
private String mProviderFriendlyName;
/**
* If connected to a network suggestion or specifier, store the package name of the app,
* else null.
@@ -223,6 +233,8 @@ public class WifiInfo implements Parcelable {
setEphemeral(false);
setOsuAp(false);
setNetworkSuggestionOrSpecifierPackageName(null);
setFQDN(null);
setProviderFriendlyName(null);
txBad = 0;
txSuccess = 0;
rxSuccess = 0;
@@ -257,6 +269,8 @@ public class WifiInfo implements Parcelable {
mNetworkSuggestionOrSpecifierPackageName =
source.mNetworkSuggestionOrSpecifierPackageName;
mOsuAp = source.mOsuAp;
mFqdn = source.mFqdn;
mProviderFriendlyName = source.mProviderFriendlyName;
txBad = source.txBad;
txRetries = source.txRetries;
txSuccess = source.txSuccess;
@@ -503,6 +517,34 @@ public class WifiInfo implements Parcelable {
return mOsuAp;
}
/** {@hide} */
@SystemApi
public boolean isPasspointAp() {
return mFqdn != null && mProviderFriendlyName != null;
}
/** {@hide} */
public void setFQDN(@Nullable String fqdn) {
mFqdn = fqdn;
}
/** {@hide} */
@SystemApi
public @Nullable String getFqdn() {
return mFqdn;
}
/** {@hide} */
public void setProviderFriendlyName(@Nullable String providerFriendlyName) {
mProviderFriendlyName = providerFriendlyName;
}
/** {@hide} */
@SystemApi
public @Nullable String getProviderFriendlyName() {
return mProviderFriendlyName;
}
/** {@hide} */
public void setNetworkSuggestionOrSpecifierPackageName(@Nullable String packageName) {
mNetworkSuggestionOrSpecifierPackageName = packageName;
@@ -677,6 +719,8 @@ public class WifiInfo implements Parcelable {
mSupplicantState.writeToParcel(dest, flags);
dest.writeInt(mOsuAp ? 1 : 0);
dest.writeString(mNetworkSuggestionOrSpecifierPackageName);
dest.writeString(mFqdn);
dest.writeString(mProviderFriendlyName);
}
/** Implement the Parcelable interface {@hide} */
@@ -716,6 +760,8 @@ public class WifiInfo implements Parcelable {
info.mSupplicantState = SupplicantState.CREATOR.createFromParcel(in);
info.mOsuAp = in.readInt() != 0;
info.mNetworkSuggestionOrSpecifierPackageName = in.readString();
info.mFqdn = in.readString();
info.mProviderFriendlyName = in.readString();
return info;
}

View File

@@ -36,6 +36,8 @@ public class WifiInfoTest {
private static final long TEST_TX_BAD = 3;
private static final long TEST_RX_SUCCESS = 4;
private static final String TEST_PACKAGE_NAME = "com.test.example";
private static final String TEST_FQDN = "test.com";
private static final String TEST_PROVIDER_NAME = "test";
/**
* Verify parcel write/read with WifiInfo.
@@ -49,6 +51,8 @@ public class WifiInfoTest {
writeWifiInfo.rxSuccess = TEST_RX_SUCCESS;
writeWifiInfo.setTrusted(true);
writeWifiInfo.setOsuAp(true);
writeWifiInfo.setFQDN(TEST_FQDN);
writeWifiInfo.setProviderFriendlyName(TEST_PROVIDER_NAME);
writeWifiInfo.setNetworkSuggestionOrSpecifierPackageName(TEST_PACKAGE_NAME);
Parcel parcel = Parcel.obtain();
@@ -64,6 +68,9 @@ public class WifiInfoTest {
assertEquals(TEST_RX_SUCCESS, readWifiInfo.rxSuccess);
assertTrue(readWifiInfo.isTrusted());
assertTrue(readWifiInfo.isOsuAp());
assertTrue(readWifiInfo.isPasspointAp());
assertEquals(TEST_PACKAGE_NAME, readWifiInfo.getNetworkSuggestionOrSpecifierPackageName());
assertEquals(TEST_FQDN, readWifiInfo.getFqdn());
assertEquals(TEST_PROVIDER_NAME, readWifiInfo.getProviderFriendlyName());
}
}