diff options
| author | 2017-03-13 17:30:28 +0000 | |
|---|---|---|
| committer | 2017-03-13 17:30:36 +0000 | |
| commit | 764edd7627c3aecbd1bd59e6963c1058589e782f (patch) | |
| tree | 66fef98894d8aefcf64dcf3290aed79758085987 | |
| parent | 3e575956741704944f1608f0fec401aba06585f0 (diff) | |
| parent | 92f685a98d92e62d1ddb2a5b2e909afb3f4908d0 (diff) | |
Merge changes from topics 'Passpoint API update', 'Passpoint intent update'
* changes:
hotspot2: update Passpoint configuration management APIs
hotspot2: hide validate method for Passpoint configuration
Osu: temporarily comment out the usage of deprecated intent definitions
hotspot2: update Passpoint intent definitions
| -rw-r--r-- | api/current.txt | 42 | ||||
| -rw-r--r-- | api/system-current.txt | 42 | ||||
| -rw-r--r-- | api/test-current.txt | 42 | ||||
| -rw-r--r-- | packages/Osu/src/com/android/hotspot2/app/OSUService.java | 8 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/IconInfo.aidl | 19 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/IconInfo.java | 111 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/WifiManager.java | 182 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java | 1 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/hotspot2/pps/Credential.java | 4 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/hotspot2/pps/HomeSp.java | 1 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/hotspot2/pps/Policy.java | 2 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/hotspot2/pps/UpdateParameter.java | 1 | ||||
| -rw-r--r-- | wifi/tests/src/android/net/wifi/IconInfoTest.java | 122 |
13 files changed, 394 insertions, 183 deletions
diff --git a/api/current.txt b/api/current.txt index c08f17bdcd1f..c9042ff2e7ec 100644 --- a/api/current.txt +++ b/api/current.txt @@ -26169,6 +26169,16 @@ package android.net.sip { package android.net.wifi { + public final class IconInfo implements android.os.Parcelable { + ctor public IconInfo(java.lang.String, byte[]); + ctor public IconInfo(android.net.wifi.IconInfo); + method public int describeContents(); + method public byte[] getData(); + method public java.lang.String getFilename(); + method public void writeToParcel(android.os.Parcel, int); + field public static final android.os.Parcelable.Creator<android.net.wifi.IconInfo> CREATOR; + } + public class ScanResult implements android.os.Parcelable { method public int describeContents(); method public boolean is80211mcResponder(); @@ -26368,7 +26378,7 @@ package android.net.wifi { public class WifiManager { method public int addNetwork(android.net.wifi.WifiConfiguration); - method public boolean addOrUpdatePasspointConfiguration(android.net.wifi.hotspot2.PasspointConfiguration); + method public void addOrUpdatePasspointConfiguration(android.net.wifi.hotspot2.PasspointConfiguration); method public static int calculateSignalLevel(int, int); method public void cancelWps(android.net.wifi.WifiManager.WpsCallback); method public static int compareSignalLevel(int, int); @@ -26397,7 +26407,7 @@ package android.net.wifi { method public boolean reassociate(); method public boolean reconnect(); method public boolean removeNetwork(int); - method public boolean removePasspointConfiguration(java.lang.String); + method public void removePasspointConfiguration(java.lang.String); method public deprecated boolean saveConfiguration(); method public void setTdlsEnabled(java.net.InetAddress, boolean); method public void setTdlsEnabledWithMacAddress(java.lang.String, boolean); @@ -26412,26 +26422,21 @@ package android.net.wifi { field public static final java.lang.String ACTION_PICK_WIFI_NETWORK = "android.net.wifi.PICK_WIFI_NETWORK"; field public static final java.lang.String ACTION_REQUEST_SCAN_ALWAYS_AVAILABLE = "android.net.wifi.action.REQUEST_SCAN_ALWAYS_AVAILABLE"; field public static final int ERROR_AUTHENTICATING = 1; // 0x1 + field public static final java.lang.String EXTRA_ANQP_ELEMENT_DATA = "android.net.wifi.extra.ANQP_ELEMENT_DATA"; field public static final java.lang.String EXTRA_BSSID = "bssid"; + field public static final java.lang.String EXTRA_BSSID_LONG = "android.net.wifi.extra.BSSID_LONG"; + field public static final java.lang.String EXTRA_DELAY = "android.net.wifi.extra.DELAY"; + field public static final java.lang.String EXTRA_ESS = "android.net.wifi.extra.ESS"; + field public static final java.lang.String EXTRA_ICON_INFO = "android.net.wifi.extra.ICON_INFO"; field public static final java.lang.String EXTRA_NETWORK_INFO = "networkInfo"; field public static final java.lang.String EXTRA_NEW_RSSI = "newRssi"; field public static final java.lang.String EXTRA_NEW_STATE = "newState"; - field public static final java.lang.String EXTRA_PASSPOINT_DEAUTH_IMMINENT_BSSID = "android.net.wifi.extra.PASSPOINT_DEAUTH_IMMINENT_BSSID"; - field public static final java.lang.String EXTRA_PASSPOINT_DEAUTH_IMMINENT_ESS = "android.net.wifi.extra.PASSPOINT_DEAUTH_IMMINENT_ESS"; - field public static final java.lang.String EXTRA_PASSPOINT_DEAUTH_IMMINENT_REASON_URL = "android.net.wifi.extra.PASSPOINT_DEAUTH_IMMINENT_REASON_URL"; - field public static final java.lang.String EXTRA_PASSPOINT_DEAUTH_IMMINENT_REAUTH_DELAY = "android.net.wifi.extra.PASSPOINT_DEAUTH_IMMINENT_REAUTH_DELAY"; - field public static final java.lang.String EXTRA_PASSPOINT_ICON_BSSID = "android.net.wifi.extra.PASSPOINT_ICON_BSSID"; - field public static final java.lang.String EXTRA_PASSPOINT_ICON_DATA = "android.net.wifi.extra.PASSPOINT_ICON_DATA"; - field public static final java.lang.String EXTRA_PASSPOINT_ICON_FILENAME = "android.net.wifi.extra.PASSPOINT_ICON_FILENAME"; - field public static final java.lang.String EXTRA_PASSPOINT_OSU_PROVIDERS_LIST_BSSID = "android.net.wifi.extra.PASSPOINT_OSU_PROVIDERS_LIST_BSSID"; - field public static final java.lang.String EXTRA_PASSPOINT_OSU_PROVIDERS_LIST_DATA = "android.net.wifi.extra.PASSPOINT_OSU_PROVIDERS_LIST_DATA"; - field public static final java.lang.String EXTRA_PASSPOINT_SUBSCRIPTION_REMEDIATION_BSSID = "android.net.wifi.extra.PASSPOINT_SUBSCRIPTION_REMEDIATION_BSSID"; - field public static final java.lang.String EXTRA_PASSPOINT_SUBSCRIPTION_REMEDIATION_SERVER_METHOD = "android.net.wifi.extra.PASSPOINT_SUBSCRIPTION_REMEDIATION_SERVER_METHOD"; - field public static final java.lang.String EXTRA_PASSPOINT_SUBSCRIPTION_REMEDIATION_SERVER_URL = "android.net.wifi.extra.PASSPOINT_SUBSCRIPTION_REMEDIATION_SERVER_URL"; field public static final java.lang.String EXTRA_PREVIOUS_WIFI_STATE = "previous_wifi_state"; field public static final java.lang.String EXTRA_RESULTS_UPDATED = "resultsUpdated"; + field public static final java.lang.String EXTRA_SUBSCRIPTION_REMEDIATION_METHOD = "android.net.wifi.extra.SUBSCRIPTION_REMEDIATION_METHOD"; field public static final java.lang.String EXTRA_SUPPLICANT_CONNECTED = "connected"; field public static final java.lang.String EXTRA_SUPPLICANT_ERROR = "supplicantError"; + field public static final java.lang.String EXTRA_URL = "android.net.wifi.extra.URL"; field public static final java.lang.String EXTRA_WIFI_INFO = "wifiInfo"; field public static final java.lang.String EXTRA_WIFI_STATE = "wifi_state"; field public static final java.lang.String NETWORK_IDS_CHANGED_ACTION = "android.net.wifi.NETWORK_IDS_CHANGED"; @@ -26650,7 +26655,6 @@ package android.net.wifi.hotspot2 { method public void setUsageLimitStartTimeInMs(long); method public void setUsageLimitTimeLimitInMinutes(long); method public void setUsageLimitUsageTimePeriodInMinutes(long); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.PasspointConfiguration> CREATOR; } @@ -26691,7 +26695,6 @@ package android.net.wifi.hotspot2.pps { method public void setRealm(java.lang.String); method public void setSimCredential(android.net.wifi.hotspot2.pps.Credential.SimCredential); method public void setUserCredential(android.net.wifi.hotspot2.pps.Credential.UserCredential); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.Credential> CREATOR; } @@ -26704,7 +26707,6 @@ package android.net.wifi.hotspot2.pps { method public java.lang.String getCertType(); method public void setCertSha256Fingerprint(byte[]); method public void setCertType(java.lang.String); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.Credential.CertificateCredential> CREATOR; } @@ -26717,7 +26719,6 @@ package android.net.wifi.hotspot2.pps { method public java.lang.String getImsi(); method public void setEapType(int); method public void setImsi(java.lang.String); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.Credential.SimCredential> CREATOR; } @@ -26740,7 +26741,6 @@ package android.net.wifi.hotspot2.pps { method public void setPassword(java.lang.String); method public void setSoftTokenApp(java.lang.String); method public void setUsername(java.lang.String); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.Credential.UserCredential> CREATOR; } @@ -26765,7 +26765,6 @@ package android.net.wifi.hotspot2.pps { method public void setMatchAnyOis(long[]); method public void setOtherHomePartners(java.lang.String[]); method public void setRoamingConsortiumOis(long[]); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.HomeSp> CREATOR; } @@ -26792,7 +26791,6 @@ package android.net.wifi.hotspot2.pps { method public void setPolicyUpdate(android.net.wifi.hotspot2.pps.UpdateParameter); method public void setPreferredRoamingPartnerList(java.util.List<android.net.wifi.hotspot2.pps.Policy.RoamingPartner>); method public void setRequiredProtoPortMap(java.util.Map<java.lang.Integer, java.lang.String>); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.Policy> CREATOR; } @@ -26809,7 +26807,6 @@ package android.net.wifi.hotspot2.pps { method public void setFqdn(java.lang.String); method public void setFqdnExactMatch(boolean); method public void setPriority(int); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.Policy.RoamingPartner> CREATOR; } @@ -26834,7 +26831,6 @@ package android.net.wifi.hotspot2.pps { method public void setUpdateIntervalInMinutes(long); method public void setUpdateMethod(java.lang.String); method public void setUsername(java.lang.String); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.UpdateParameter> CREATOR; field public static final long UPDATE_CHECK_INTERVAL_NEVER = 4294967295L; // 0xffffffffL diff --git a/api/system-current.txt b/api/system-current.txt index 350de832a1af..cdf6823eb4d7 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -28458,6 +28458,16 @@ package android.net.wifi { field public boolean truncated; } + public final class IconInfo implements android.os.Parcelable { + ctor public IconInfo(java.lang.String, byte[]); + ctor public IconInfo(android.net.wifi.IconInfo); + method public int describeContents(); + method public byte[] getData(); + method public java.lang.String getFilename(); + method public void writeToParcel(android.os.Parcel, int); + field public static final android.os.Parcelable.Creator<android.net.wifi.IconInfo> CREATOR; + } + public class RttManager { method public void disableResponder(android.net.wifi.RttManager.ResponderCallback); method public void enableResponder(android.net.wifi.RttManager.ResponderCallback); @@ -28884,7 +28894,7 @@ package android.net.wifi { public class WifiManager { method public int addNetwork(android.net.wifi.WifiConfiguration); - method public boolean addOrUpdatePasspointConfiguration(android.net.wifi.hotspot2.PasspointConfiguration); + method public void addOrUpdatePasspointConfiguration(android.net.wifi.hotspot2.PasspointConfiguration); method public static int calculateSignalLevel(int, int); method public void cancelWps(android.net.wifi.WifiManager.WpsCallback); method public static int compareSignalLevel(int, int); @@ -28924,7 +28934,7 @@ package android.net.wifi { method public boolean reassociate(); method public boolean reconnect(); method public boolean removeNetwork(int); - method public boolean removePasspointConfiguration(java.lang.String); + method public void removePasspointConfiguration(java.lang.String); method public deprecated boolean saveConfiguration(); method public void setTdlsEnabled(java.net.InetAddress, boolean); method public void setTdlsEnabledWithMacAddress(java.lang.String, boolean); @@ -28947,29 +28957,24 @@ package android.net.wifi { field public static final int CHANGE_REASON_REMOVED = 1; // 0x1 field public static final java.lang.String CONFIGURED_NETWORKS_CHANGED_ACTION = "android.net.wifi.CONFIGURED_NETWORKS_CHANGE"; field public static final int ERROR_AUTHENTICATING = 1; // 0x1 + field public static final java.lang.String EXTRA_ANQP_ELEMENT_DATA = "android.net.wifi.extra.ANQP_ELEMENT_DATA"; field public static final java.lang.String EXTRA_BSSID = "bssid"; + field public static final java.lang.String EXTRA_BSSID_LONG = "android.net.wifi.extra.BSSID_LONG"; field public static final java.lang.String EXTRA_CHANGE_REASON = "changeReason"; + field public static final java.lang.String EXTRA_DELAY = "android.net.wifi.extra.DELAY"; + field public static final java.lang.String EXTRA_ESS = "android.net.wifi.extra.ESS"; + field public static final java.lang.String EXTRA_ICON_INFO = "android.net.wifi.extra.ICON_INFO"; field public static final java.lang.String EXTRA_MULTIPLE_NETWORKS_CHANGED = "multipleChanges"; field public static final java.lang.String EXTRA_NETWORK_INFO = "networkInfo"; field public static final java.lang.String EXTRA_NEW_RSSI = "newRssi"; field public static final java.lang.String EXTRA_NEW_STATE = "newState"; - field public static final java.lang.String EXTRA_PASSPOINT_DEAUTH_IMMINENT_BSSID = "android.net.wifi.extra.PASSPOINT_DEAUTH_IMMINENT_BSSID"; - field public static final java.lang.String EXTRA_PASSPOINT_DEAUTH_IMMINENT_ESS = "android.net.wifi.extra.PASSPOINT_DEAUTH_IMMINENT_ESS"; - field public static final java.lang.String EXTRA_PASSPOINT_DEAUTH_IMMINENT_REASON_URL = "android.net.wifi.extra.PASSPOINT_DEAUTH_IMMINENT_REASON_URL"; - field public static final java.lang.String EXTRA_PASSPOINT_DEAUTH_IMMINENT_REAUTH_DELAY = "android.net.wifi.extra.PASSPOINT_DEAUTH_IMMINENT_REAUTH_DELAY"; - field public static final java.lang.String EXTRA_PASSPOINT_ICON_BSSID = "android.net.wifi.extra.PASSPOINT_ICON_BSSID"; - field public static final java.lang.String EXTRA_PASSPOINT_ICON_DATA = "android.net.wifi.extra.PASSPOINT_ICON_DATA"; - field public static final java.lang.String EXTRA_PASSPOINT_ICON_FILENAME = "android.net.wifi.extra.PASSPOINT_ICON_FILENAME"; - field public static final java.lang.String EXTRA_PASSPOINT_OSU_PROVIDERS_LIST_BSSID = "android.net.wifi.extra.PASSPOINT_OSU_PROVIDERS_LIST_BSSID"; - field public static final java.lang.String EXTRA_PASSPOINT_OSU_PROVIDERS_LIST_DATA = "android.net.wifi.extra.PASSPOINT_OSU_PROVIDERS_LIST_DATA"; - field public static final java.lang.String EXTRA_PASSPOINT_SUBSCRIPTION_REMEDIATION_BSSID = "android.net.wifi.extra.PASSPOINT_SUBSCRIPTION_REMEDIATION_BSSID"; - field public static final java.lang.String EXTRA_PASSPOINT_SUBSCRIPTION_REMEDIATION_SERVER_METHOD = "android.net.wifi.extra.PASSPOINT_SUBSCRIPTION_REMEDIATION_SERVER_METHOD"; - field public static final java.lang.String EXTRA_PASSPOINT_SUBSCRIPTION_REMEDIATION_SERVER_URL = "android.net.wifi.extra.PASSPOINT_SUBSCRIPTION_REMEDIATION_SERVER_URL"; field public static final java.lang.String EXTRA_PREVIOUS_WIFI_AP_STATE = "previous_wifi_state"; field public static final java.lang.String EXTRA_PREVIOUS_WIFI_STATE = "previous_wifi_state"; field public static final java.lang.String EXTRA_RESULTS_UPDATED = "resultsUpdated"; + field public static final java.lang.String EXTRA_SUBSCRIPTION_REMEDIATION_METHOD = "android.net.wifi.extra.SUBSCRIPTION_REMEDIATION_METHOD"; field public static final java.lang.String EXTRA_SUPPLICANT_CONNECTED = "connected"; field public static final java.lang.String EXTRA_SUPPLICANT_ERROR = "supplicantError"; + field public static final java.lang.String EXTRA_URL = "android.net.wifi.extra.URL"; field public static final java.lang.String EXTRA_WIFI_AP_STATE = "wifi_state"; field public static final java.lang.String EXTRA_WIFI_CONFIGURATION = "wifiConfiguration"; field public static final java.lang.String EXTRA_WIFI_CREDENTIAL_EVENT_TYPE = "et"; @@ -29348,7 +29353,6 @@ package android.net.wifi.hotspot2 { method public void setUsageLimitStartTimeInMs(long); method public void setUsageLimitTimeLimitInMinutes(long); method public void setUsageLimitUsageTimePeriodInMinutes(long); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.PasspointConfiguration> CREATOR; } @@ -29389,7 +29393,6 @@ package android.net.wifi.hotspot2.pps { method public void setRealm(java.lang.String); method public void setSimCredential(android.net.wifi.hotspot2.pps.Credential.SimCredential); method public void setUserCredential(android.net.wifi.hotspot2.pps.Credential.UserCredential); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.Credential> CREATOR; } @@ -29402,7 +29405,6 @@ package android.net.wifi.hotspot2.pps { method public java.lang.String getCertType(); method public void setCertSha256Fingerprint(byte[]); method public void setCertType(java.lang.String); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.Credential.CertificateCredential> CREATOR; } @@ -29415,7 +29417,6 @@ package android.net.wifi.hotspot2.pps { method public java.lang.String getImsi(); method public void setEapType(int); method public void setImsi(java.lang.String); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.Credential.SimCredential> CREATOR; } @@ -29438,7 +29439,6 @@ package android.net.wifi.hotspot2.pps { method public void setPassword(java.lang.String); method public void setSoftTokenApp(java.lang.String); method public void setUsername(java.lang.String); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.Credential.UserCredential> CREATOR; } @@ -29463,7 +29463,6 @@ package android.net.wifi.hotspot2.pps { method public void setMatchAnyOis(long[]); method public void setOtherHomePartners(java.lang.String[]); method public void setRoamingConsortiumOis(long[]); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.HomeSp> CREATOR; } @@ -29490,7 +29489,6 @@ package android.net.wifi.hotspot2.pps { method public void setPolicyUpdate(android.net.wifi.hotspot2.pps.UpdateParameter); method public void setPreferredRoamingPartnerList(java.util.List<android.net.wifi.hotspot2.pps.Policy.RoamingPartner>); method public void setRequiredProtoPortMap(java.util.Map<java.lang.Integer, java.lang.String>); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.Policy> CREATOR; } @@ -29507,7 +29505,6 @@ package android.net.wifi.hotspot2.pps { method public void setFqdn(java.lang.String); method public void setFqdnExactMatch(boolean); method public void setPriority(int); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.Policy.RoamingPartner> CREATOR; } @@ -29532,7 +29529,6 @@ package android.net.wifi.hotspot2.pps { method public void setUpdateIntervalInMinutes(long); method public void setUpdateMethod(java.lang.String); method public void setUsername(java.lang.String); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.UpdateParameter> CREATOR; field public static final long UPDATE_CHECK_INTERVAL_NEVER = 4294967295L; // 0xffffffffL diff --git a/api/test-current.txt b/api/test-current.txt index 24389e47a7c6..622a6391c364 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -26270,6 +26270,16 @@ package android.net.sip { package android.net.wifi { + public final class IconInfo implements android.os.Parcelable { + ctor public IconInfo(java.lang.String, byte[]); + ctor public IconInfo(android.net.wifi.IconInfo); + method public int describeContents(); + method public byte[] getData(); + method public java.lang.String getFilename(); + method public void writeToParcel(android.os.Parcel, int); + field public static final android.os.Parcelable.Creator<android.net.wifi.IconInfo> CREATOR; + } + public class ScanResult implements android.os.Parcelable { method public int describeContents(); method public boolean is80211mcResponder(); @@ -26469,7 +26479,7 @@ package android.net.wifi { public class WifiManager { method public int addNetwork(android.net.wifi.WifiConfiguration); - method public boolean addOrUpdatePasspointConfiguration(android.net.wifi.hotspot2.PasspointConfiguration); + method public void addOrUpdatePasspointConfiguration(android.net.wifi.hotspot2.PasspointConfiguration); method public static int calculateSignalLevel(int, int); method public void cancelWps(android.net.wifi.WifiManager.WpsCallback); method public static int compareSignalLevel(int, int); @@ -26498,7 +26508,7 @@ package android.net.wifi { method public boolean reassociate(); method public boolean reconnect(); method public boolean removeNetwork(int); - method public boolean removePasspointConfiguration(java.lang.String); + method public void removePasspointConfiguration(java.lang.String); method public deprecated boolean saveConfiguration(); method public void setTdlsEnabled(java.net.InetAddress, boolean); method public void setTdlsEnabledWithMacAddress(java.lang.String, boolean); @@ -26513,26 +26523,21 @@ package android.net.wifi { field public static final java.lang.String ACTION_PICK_WIFI_NETWORK = "android.net.wifi.PICK_WIFI_NETWORK"; field public static final java.lang.String ACTION_REQUEST_SCAN_ALWAYS_AVAILABLE = "android.net.wifi.action.REQUEST_SCAN_ALWAYS_AVAILABLE"; field public static final int ERROR_AUTHENTICATING = 1; // 0x1 + field public static final java.lang.String EXTRA_ANQP_ELEMENT_DATA = "android.net.wifi.extra.ANQP_ELEMENT_DATA"; field public static final java.lang.String EXTRA_BSSID = "bssid"; + field public static final java.lang.String EXTRA_BSSID_LONG = "android.net.wifi.extra.BSSID_LONG"; + field public static final java.lang.String EXTRA_DELAY = "android.net.wifi.extra.DELAY"; + field public static final java.lang.String EXTRA_ESS = "android.net.wifi.extra.ESS"; + field public static final java.lang.String EXTRA_ICON_INFO = "android.net.wifi.extra.ICON_INFO"; field public static final java.lang.String EXTRA_NETWORK_INFO = "networkInfo"; field public static final java.lang.String EXTRA_NEW_RSSI = "newRssi"; field public static final java.lang.String EXTRA_NEW_STATE = "newState"; - field public static final java.lang.String EXTRA_PASSPOINT_DEAUTH_IMMINENT_BSSID = "android.net.wifi.extra.PASSPOINT_DEAUTH_IMMINENT_BSSID"; - field public static final java.lang.String EXTRA_PASSPOINT_DEAUTH_IMMINENT_ESS = "android.net.wifi.extra.PASSPOINT_DEAUTH_IMMINENT_ESS"; - field public static final java.lang.String EXTRA_PASSPOINT_DEAUTH_IMMINENT_REASON_URL = "android.net.wifi.extra.PASSPOINT_DEAUTH_IMMINENT_REASON_URL"; - field public static final java.lang.String EXTRA_PASSPOINT_DEAUTH_IMMINENT_REAUTH_DELAY = "android.net.wifi.extra.PASSPOINT_DEAUTH_IMMINENT_REAUTH_DELAY"; - field public static final java.lang.String EXTRA_PASSPOINT_ICON_BSSID = "android.net.wifi.extra.PASSPOINT_ICON_BSSID"; - field public static final java.lang.String EXTRA_PASSPOINT_ICON_DATA = "android.net.wifi.extra.PASSPOINT_ICON_DATA"; - field public static final java.lang.String EXTRA_PASSPOINT_ICON_FILENAME = "android.net.wifi.extra.PASSPOINT_ICON_FILENAME"; - field public static final java.lang.String EXTRA_PASSPOINT_OSU_PROVIDERS_LIST_BSSID = "android.net.wifi.extra.PASSPOINT_OSU_PROVIDERS_LIST_BSSID"; - field public static final java.lang.String EXTRA_PASSPOINT_OSU_PROVIDERS_LIST_DATA = "android.net.wifi.extra.PASSPOINT_OSU_PROVIDERS_LIST_DATA"; - field public static final java.lang.String EXTRA_PASSPOINT_SUBSCRIPTION_REMEDIATION_BSSID = "android.net.wifi.extra.PASSPOINT_SUBSCRIPTION_REMEDIATION_BSSID"; - field public static final java.lang.String EXTRA_PASSPOINT_SUBSCRIPTION_REMEDIATION_SERVER_METHOD = "android.net.wifi.extra.PASSPOINT_SUBSCRIPTION_REMEDIATION_SERVER_METHOD"; - field public static final java.lang.String EXTRA_PASSPOINT_SUBSCRIPTION_REMEDIATION_SERVER_URL = "android.net.wifi.extra.PASSPOINT_SUBSCRIPTION_REMEDIATION_SERVER_URL"; field public static final java.lang.String EXTRA_PREVIOUS_WIFI_STATE = "previous_wifi_state"; field public static final java.lang.String EXTRA_RESULTS_UPDATED = "resultsUpdated"; + field public static final java.lang.String EXTRA_SUBSCRIPTION_REMEDIATION_METHOD = "android.net.wifi.extra.SUBSCRIPTION_REMEDIATION_METHOD"; field public static final java.lang.String EXTRA_SUPPLICANT_CONNECTED = "connected"; field public static final java.lang.String EXTRA_SUPPLICANT_ERROR = "supplicantError"; + field public static final java.lang.String EXTRA_URL = "android.net.wifi.extra.URL"; field public static final java.lang.String EXTRA_WIFI_INFO = "wifiInfo"; field public static final java.lang.String EXTRA_WIFI_STATE = "wifi_state"; field public static final java.lang.String NETWORK_IDS_CHANGED_ACTION = "android.net.wifi.NETWORK_IDS_CHANGED"; @@ -26751,7 +26756,6 @@ package android.net.wifi.hotspot2 { method public void setUsageLimitStartTimeInMs(long); method public void setUsageLimitTimeLimitInMinutes(long); method public void setUsageLimitUsageTimePeriodInMinutes(long); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.PasspointConfiguration> CREATOR; } @@ -26792,7 +26796,6 @@ package android.net.wifi.hotspot2.pps { method public void setRealm(java.lang.String); method public void setSimCredential(android.net.wifi.hotspot2.pps.Credential.SimCredential); method public void setUserCredential(android.net.wifi.hotspot2.pps.Credential.UserCredential); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.Credential> CREATOR; } @@ -26805,7 +26808,6 @@ package android.net.wifi.hotspot2.pps { method public java.lang.String getCertType(); method public void setCertSha256Fingerprint(byte[]); method public void setCertType(java.lang.String); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.Credential.CertificateCredential> CREATOR; } @@ -26818,7 +26820,6 @@ package android.net.wifi.hotspot2.pps { method public java.lang.String getImsi(); method public void setEapType(int); method public void setImsi(java.lang.String); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.Credential.SimCredential> CREATOR; } @@ -26841,7 +26842,6 @@ package android.net.wifi.hotspot2.pps { method public void setPassword(java.lang.String); method public void setSoftTokenApp(java.lang.String); method public void setUsername(java.lang.String); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.Credential.UserCredential> CREATOR; } @@ -26866,7 +26866,6 @@ package android.net.wifi.hotspot2.pps { method public void setMatchAnyOis(long[]); method public void setOtherHomePartners(java.lang.String[]); method public void setRoamingConsortiumOis(long[]); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.HomeSp> CREATOR; } @@ -26893,7 +26892,6 @@ package android.net.wifi.hotspot2.pps { method public void setPolicyUpdate(android.net.wifi.hotspot2.pps.UpdateParameter); method public void setPreferredRoamingPartnerList(java.util.List<android.net.wifi.hotspot2.pps.Policy.RoamingPartner>); method public void setRequiredProtoPortMap(java.util.Map<java.lang.Integer, java.lang.String>); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.Policy> CREATOR; } @@ -26910,7 +26908,6 @@ package android.net.wifi.hotspot2.pps { method public void setFqdn(java.lang.String); method public void setFqdnExactMatch(boolean); method public void setPriority(int); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.Policy.RoamingPartner> CREATOR; } @@ -26935,7 +26932,6 @@ package android.net.wifi.hotspot2.pps { method public void setUpdateIntervalInMinutes(long); method public void setUpdateMethod(java.lang.String); method public void setUsername(java.lang.String); - method public boolean validate(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.UpdateParameter> CREATOR; field public static final long UPDATE_CHECK_INTERVAL_NEVER = 4294967295L; // 0xffffffffL diff --git a/packages/Osu/src/com/android/hotspot2/app/OSUService.java b/packages/Osu/src/com/android/hotspot2/app/OSUService.java index 62a203dbfde0..e9da113af747 100644 --- a/packages/Osu/src/com/android/hotspot2/app/OSUService.java +++ b/packages/Osu/src/com/android/hotspot2/app/OSUService.java @@ -46,8 +46,9 @@ public class OSUService extends IntentService { private static final String[] INTENTS = { WifiManager.SCAN_RESULTS_AVAILABLE_ACTION, - WifiManager.PASSPOINT_WNM_FRAME_RECEIVED_ACTION, - WifiManager.PASSPOINT_ICON_RECEIVED_ACTION, + // TODO(b/32883320): use updated intent definitions. + //WifiManager.PASSPOINT_WNM_FRAME_RECEIVED_ACTION, + //WifiManager.PASSPOINT_ICON_RECEIVED_ACTION, WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION, WifiManager.WIFI_STATE_CHANGED_ACTION, WifiManager.NETWORK_STATE_CHANGED_ACTION, @@ -120,6 +121,8 @@ public class OSUService extends IntentService { case WifiManager.SCAN_RESULTS_AVAILABLE_ACTION: mOsuManager.pushScanResults(wifiManager.getScanResults()); break; + // TODO(b/32883320): use updated intent definitions. + /* case WifiManager.PASSPOINT_WNM_FRAME_RECEIVED_ACTION: long bssid = bundle.getLong(WifiManager.EXTRA_PASSPOINT_WNM_BSSID); String url = bundle.getString(WifiManager.EXTRA_PASSPOINT_WNM_URL); @@ -157,6 +160,7 @@ public class OSUService extends IntentService { bundle.getString(WifiManager.EXTRA_PASSPOINT_ICON_FILE), bundle.getByteArray(WifiManager.EXTRA_PASSPOINT_ICON_DATA)); break; + */ case WifiManager.NETWORK_STATE_CHANGED_ACTION: mOsuManager.networkConnectChange( (WifiInfo) intent.getParcelableExtra(WifiManager.EXTRA_WIFI_INFO)); diff --git a/wifi/java/android/net/wifi/IconInfo.aidl b/wifi/java/android/net/wifi/IconInfo.aidl new file mode 100644 index 000000000000..a7bb2ef8bc3f --- /dev/null +++ b/wifi/java/android/net/wifi/IconInfo.aidl @@ -0,0 +1,19 @@ +/** + * Copyright (c) 2017, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.net.wifi; + +parcelable IconInfo; diff --git a/wifi/java/android/net/wifi/IconInfo.java b/wifi/java/android/net/wifi/IconInfo.java new file mode 100644 index 000000000000..0eae363861f8 --- /dev/null +++ b/wifi/java/android/net/wifi/IconInfo.java @@ -0,0 +1,111 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.net.wifi; + +import android.os.Parcelable; +import android.text.TextUtils; +import android.os.Parcel; + +import java.util.Arrays; +import java.util.Objects; + +/** + * A class representing icon information. + */ +public final class IconInfo implements Parcelable { + /** + * Name of the icon file. + */ + private final String mFilename; + + /** + * Raw binary data of the icon. + */ + private final byte[] mData; + + public IconInfo(String filename, byte[] data) { + mFilename = filename; + mData = data; + } + + public IconInfo(IconInfo source) { + if (source == null) { + mFilename = null; + mData = null; + return; + } + + mFilename = source.mFilename; + if (source.mData != null) { + mData = Arrays.copyOf(source.mData, source.mData.length); + } else { + mData = null; + } + } + + public String getFilename() { + return mFilename; + } + + public byte[] getData() { + return mData; + } + + @Override + public boolean equals(Object thatObject) { + if (this == thatObject) { + return true; + } + if (!(thatObject instanceof IconInfo)) { + return false; + } + IconInfo that = (IconInfo) thatObject; + return TextUtils.equals(mFilename, that.mFilename) + && Arrays.equals(mData, that.mData); + } + + @Override + public int hashCode() { + return Objects.hash(mFilename, mData); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeString(mFilename); + dest.writeByteArray(mData); + } + + public static final Creator<IconInfo> CREATOR = + new Creator<IconInfo>() { + @Override + public IconInfo createFromParcel(Parcel in) { + String filename = in.readString(); + byte[] data = in.createByteArray(); + return new IconInfo(filename, data); + } + + @Override + public IconInfo[] newArray(int size) { + return new IconInfo[size]; + } + }; +} diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java index ed6a166d3fc6..bbe96a70f823 100644 --- a/wifi/java/android/net/wifi/WifiManager.java +++ b/wifi/java/android/net/wifi/WifiManager.java @@ -114,166 +114,118 @@ public class WifiManager { public static final int WIFI_CREDENTIAL_FORGOT = 1; /** - * Broadcast intent action indicating that the a Passpoint release 2 icon has been received. - * @hide - */ - public static final String PASSPOINT_ICON_RECEIVED_ACTION = - "android.net.wifi.PASSPOINT_ICON_RECEIVED"; - /** @hide */ - public static final String EXTRA_PASSPOINT_ICON_FILE = "file"; - - /** - * Broadcast intent action indicating that the a Passpoint release - * 2 WNM frame has been received. - * @hide - */ - public static final String PASSPOINT_WNM_FRAME_RECEIVED_ACTION = - "android.net.wifi.PASSPOINT_WNM_FRAME_RECEIVED"; - /** - * Originating BSS - * @hide */ - public static final String EXTRA_PASSPOINT_WNM_BSSID = "bssid"; - /** - * SOAP-XML or OMA-DM - * @hide */ - public static final String EXTRA_PASSPOINT_WNM_METHOD = "method"; - /** - * Type of Passpoint match - * @hide */ - public static final String EXTRA_PASSPOINT_WNM_PPOINT_MATCH = "match"; - /** - * String - * @hide */ - public static final String EXTRA_PASSPOINT_WNM_URL = "url"; - /** - * Boolean true=ess, false=bss - * @hide */ - public static final String EXTRA_PASSPOINT_WNM_ESS = "ess"; - /** - * Delay in seconds - * @hide */ - public static final String EXTRA_PASSPOINT_WNM_DELAY = "delay"; - - /** * Broadcast intent action indicating that a Passpoint provider icon has been received. * + * Included extras: + * {@link #EXTRA_BSSID_LONG} + * {@link #EXTRA_ICON_INFO} + * * Receiver Required Permission: android.Manifest.permission.ACCESS_WIFI_STATE - */ - public static final String ACTION_PASSPOINT_ICON = - "android.net.wifi.action.PASSPOINT_ICON"; - /** - * BSSID of the sender. * - * Type: long + * <p>Note: The broadcast is only delivered to registered receivers - no manifest registered + * components will be launched. */ - public static final String EXTRA_PASSPOINT_ICON_BSSID = - "android.net.wifi.extra.PASSPOINT_ICON_BSSID"; + public static final String ACTION_PASSPOINT_ICON = "android.net.wifi.action.PASSPOINT_ICON"; /** - * Filename of the icon. + * BSSID of an AP in long representation. The {@link #EXTRA_BSSID} contains BSSID in + * String representation. * - * Type: String + * Retrieve with {@link android.content.Intent#getLongExtra(String, long)}. */ - public static final String EXTRA_PASSPOINT_ICON_FILENAME = - "android.net.wifi.extra.PASSPOINT_ICON_FILENAME"; + public static final String EXTRA_BSSID_LONG = "android.net.wifi.extra.BSSID_LONG"; /** - * Binary blob of the icon. + * Icon information. * - * Type: byte[] + * Retrieve with {@link android.content.Intent#getParcelableExtra(String)} and cast into + * {@link IconInfo}. */ - public static final String EXTRA_PASSPOINT_ICON_DATA = - "android.net.wifi.extra.PASSPOINT_ICON_DATA"; + public static final String EXTRA_ICON_INFO = "android.net.wifi.extra.ICON_INFO"; /** * Broadcast intent action indicating a Passpoint OSU Providers List element has been received. * + * Included extras: + * {@link #EXTRA_BSSID_LONG} + * {@link #EXTRA_ANQP_ELEMENT_DATA} + * * Receiver Required Permission: android.Manifest.permission.ACCESS_WIFI_STATE + * + * <p>Note: The broadcast is only delivered to registered receivers - no manifest registered + * components will be launched. + * */ public static final String ACTION_PASSPOINT_OSU_PROVIDERS_LIST = "android.net.wifi.action.PASSPOINT_OSU_PROVIDERS_LIST"; /** - * BSSID of the sender. + * Raw binary data of an ANQP (Access Network Query Protocol) element. * - * Type: long + * Retrieve with {@link android.content.Intent#getByteArrayExtra(String)}. */ - public static final String EXTRA_PASSPOINT_OSU_PROVIDERS_LIST_BSSID = - "android.net.wifi.extra.PASSPOINT_OSU_PROVIDERS_LIST_BSSID"; - /** - * Raw data of OSU Providers List ANQP element. Refer to Section 4.8 of Hotspot 2.0 Release 2 - * Technical Specification for the exact data format. - * - * Type: byte[] - */ - public static final String EXTRA_PASSPOINT_OSU_PROVIDERS_LIST_DATA = - "android.net.wifi.extra.PASSPOINT_OSU_PROVIDERS_LIST_DATA"; + public static final String EXTRA_ANQP_ELEMENT_DATA = + "android.net.wifi.extra.ANQP_ELEMENT_DATA"; /** * Broadcast intent action indicating that a Passpoint Deauth Imminent frame has been received. * + * Included extras: + * {@link #EXTRA_BSSID_LONG} + * {@link #EXTRA_ESS} + * {@link #EXTRA_DELAY} + * {@link #EXTRA_URL} + * * Receiver Required Permission: android.Manifest.permission.ACCESS_WIFI_STATE + * + * <p>Note: The broadcast is only delivered to registered receivers - no manifest registered + * components will be launched. + * */ public static final String ACTION_PASSPOINT_DEAUTH_IMMINENT = "android.net.wifi.action.PASSPOINT_DEAUTH_IMMINENT"; /** - * The BSSID of the sender. + * Flag indicating BSS (Basic Service Set) or ESS (Extended Service Set). This will be set to + * {@code true} for ESS. * - * Type: long + * Retrieve with {@link android.content.Intent#getBooleanExtra(String, boolean)}. */ - public static final String EXTRA_PASSPOINT_DEAUTH_IMMINENT_BSSID = - "android.net.wifi.extra.PASSPOINT_DEAUTH_IMMINENT_BSSID"; + public static final String EXTRA_ESS = "android.net.wifi.extra.ESS"; /** - * Flag indicating failure at BSS (Basic Service Set) or ESS (Extended Service Set) level. + * Delay in seconds. * - * Type: boolean + * Retrieve with {@link android.content.Intent#getIntExtra(String, int)}. */ - public static final String EXTRA_PASSPOINT_DEAUTH_IMMINENT_ESS = - "android.net.wifi.extra.PASSPOINT_DEAUTH_IMMINENT_ESS"; + public static final String EXTRA_DELAY = "android.net.wifi.extra.DELAY"; /** - * Delay in seconds that a device shall wait before attempting re-association to the same BSS - * or ESS (as indicated by {@link #EXTRA_PASSPOINT_DEAUTH_IMMINENT_ESS}. + * String representation of an URL. * - * Type: int + * Retrieve with {@link android.content.Intent#getStringExtra(String)}. */ - public static final String EXTRA_PASSPOINT_DEAUTH_IMMINENT_REAUTH_DELAY = - "android.net.wifi.extra.PASSPOINT_DEAUTH_IMMINENT_REAUTH_DELAY"; - /** - * URL that provides a webpage explaining the deauth reason. - * - * Type: String - */ - public static final String EXTRA_PASSPOINT_DEAUTH_IMMINENT_REASON_URL = - "android.net.wifi.extra.PASSPOINT_DEAUTH_IMMINENT_REASON_URL"; + public static final String EXTRA_URL = "android.net.wifi.extra.URL"; /** * Broadcast intent action indicating a Passpoint subscription remediation frame has been * received. * + * Included extras: + * {@link #EXTRA_BSSID_LONG} + * {@link #EXTRA_SUBSCRIPTION_REMEDIATION_METHOD} + * {@link #EXTRA_URL} + * * Receiver Required Permission: android.Manifest.permission.ACCESS_WIFI_STATE + * + ** <p>Note: The broadcast is only delivered to registered receivers - no manifest registered + * components will be launched. */ public static final String ACTION_PASSPOINT_SUBSCRIPTION_REMEDIATION = "android.net.wifi.action.PASSPOINT_SUBSCRIPTION_REMEDIATION"; /** - * The BSSID of the sender. - * - * Type: long - */ - public static final String EXTRA_PASSPOINT_SUBSCRIPTION_REMEDIATION_BSSID = - "android.net.wifi.extra.PASSPOINT_SUBSCRIPTION_REMEDIATION_BSSID"; - /** * The protocol supported by the subscription remediation server. The possible values are: * 0 - OMA DM * 1 - SOAP XML SPP * - * Type: int - */ - public static final String EXTRA_PASSPOINT_SUBSCRIPTION_REMEDIATION_SERVER_METHOD = - "android.net.wifi.extra.PASSPOINT_SUBSCRIPTION_REMEDIATION_SERVER_METHOD"; - /** - * URL of the subscription remediation server. - * - * Type: String + * Retrieve with {@link android.content.Intent#getIntExtra(String, int)}. */ - public static final String EXTRA_PASSPOINT_SUBSCRIPTION_REMEDIATION_SERVER_URL = - "android.net.wifi.extra.PASSPOINT_SUBSCRIPTION_REMEDIATION_SERVER_URL"; + public static final String EXTRA_SUBSCRIPTION_REMEDIATION_METHOD = + "android.net.wifi.extra.SUBSCRIPTION_REMEDIATION_METHOD"; /** * Broadcast intent action indicating that Wi-Fi has been enabled, disabled, @@ -972,12 +924,15 @@ public class WifiManager { * Name). In the case when there is an existing configuration with the same * FQDN, the new configuration will replace the existing configuration. * + * An {@link IllegalArgumentException} will be thrown on failure. + * * @param config The Passpoint configuration to be added - * @return true on success */ - public boolean addOrUpdatePasspointConfiguration(PasspointConfiguration config) { + public void addOrUpdatePasspointConfiguration(PasspointConfiguration config) { try { - return mService.addOrUpdatePasspointConfiguration(config); + if (!mService.addOrUpdatePasspointConfiguration(config)) { + throw new IllegalArgumentException(); + } } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } @@ -986,12 +941,15 @@ public class WifiManager { /** * Remove the Passpoint configuration identified by its FQDN (Fully Qualified Domain Name). * + * An {@link IllegalArgumentException} will be thrown on failure. + * * @param fqdn The FQDN of the passpoint configuration to be removed - * @return true on success */ - public boolean removePasspointConfiguration(String fqdn) { + public void removePasspointConfiguration(String fqdn) { try { - return mService.removePasspointConfiguration(fqdn); + if (!mService.removePasspointConfiguration(fqdn)) { + throw new IllegalArgumentException(); + } } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } diff --git a/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java b/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java index 1f661c4580af..7de55aa5ffb2 100644 --- a/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java +++ b/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java @@ -333,6 +333,7 @@ public final class PasspointConfiguration implements Parcelable { * Validate the configuration data. * * @return true on success or false on failure + * @hide */ public boolean validate() { if (mHomeSp == null || !mHomeSp.validate()) { diff --git a/wifi/java/android/net/wifi/hotspot2/pps/Credential.java b/wifi/java/android/net/wifi/hotspot2/pps/Credential.java index 23888411c1b2..d8da84f28df6 100644 --- a/wifi/java/android/net/wifi/hotspot2/pps/Credential.java +++ b/wifi/java/android/net/wifi/hotspot2/pps/Credential.java @@ -286,6 +286,7 @@ public final class Credential implements Parcelable { * Validate the configuration data. * * @return true on success or false on failure + * @hide */ public boolean validate() { if (TextUtils.isEmpty(mUsername)) { @@ -443,6 +444,7 @@ public final class Credential implements Parcelable { * Validate the configuration data. * * @return true on success or false on failure + * @hide */ public boolean validate() { if (!TextUtils.equals(CERT_TYPE_X509V3, mCertType)) { @@ -569,6 +571,7 @@ public final class Credential implements Parcelable { * Validate the configuration data. * * @return true on success or false on failure + * @hide */ public boolean validate() { // Note: this only validate the format of IMSI string itself. Additional verification @@ -768,6 +771,7 @@ public final class Credential implements Parcelable { * Validate the configuration data. * * @return true on success or false on failure + * @hide */ public boolean validate() { if (TextUtils.isEmpty(mRealm)) { diff --git a/wifi/java/android/net/wifi/hotspot2/pps/HomeSp.java b/wifi/java/android/net/wifi/hotspot2/pps/HomeSp.java index 8ec40c00304f..68bdf37b1815 100644 --- a/wifi/java/android/net/wifi/hotspot2/pps/HomeSp.java +++ b/wifi/java/android/net/wifi/hotspot2/pps/HomeSp.java @@ -245,6 +245,7 @@ public final class HomeSp implements Parcelable { * Validate HomeSp data. * * @return true on success or false on failure + * @hide */ public boolean validate() { if (TextUtils.isEmpty(mFqdn)) { diff --git a/wifi/java/android/net/wifi/hotspot2/pps/Policy.java b/wifi/java/android/net/wifi/hotspot2/pps/Policy.java index 63238e86c0fd..da36a116fbbe 100644 --- a/wifi/java/android/net/wifi/hotspot2/pps/Policy.java +++ b/wifi/java/android/net/wifi/hotspot2/pps/Policy.java @@ -253,6 +253,7 @@ public final class Policy implements Parcelable { * Validate RoamingParnter data. * * @return true on success + * @hide */ public boolean validate() { if (TextUtils.isEmpty(mFqdn)) { @@ -393,6 +394,7 @@ public final class Policy implements Parcelable { * Validate Policy data. * * @return true on success + * @hide */ public boolean validate() { if (mPolicyUpdate == null) { diff --git a/wifi/java/android/net/wifi/hotspot2/pps/UpdateParameter.java b/wifi/java/android/net/wifi/hotspot2/pps/UpdateParameter.java index 70264b0e625a..ae051b0a6e3f 100644 --- a/wifi/java/android/net/wifi/hotspot2/pps/UpdateParameter.java +++ b/wifi/java/android/net/wifi/hotspot2/pps/UpdateParameter.java @@ -251,6 +251,7 @@ public final class UpdateParameter implements Parcelable { * Validate UpdateParameter data. * * @return true on success + * @hide */ public boolean validate() { if (mUpdateIntervalInMinutes == Long.MIN_VALUE) { diff --git a/wifi/tests/src/android/net/wifi/IconInfoTest.java b/wifi/tests/src/android/net/wifi/IconInfoTest.java new file mode 100644 index 000000000000..2fdb484fce19 --- /dev/null +++ b/wifi/tests/src/android/net/wifi/IconInfoTest.java @@ -0,0 +1,122 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package android.net.wifi; + +import static org.junit.Assert.assertEquals; + +import android.net.wifi.IconInfo; +import android.os.Parcel; +import android.test.suitebuilder.annotation.SmallTest; + +import org.junit.Test; + +/** + * Unit tests for {@link android.net.wifi.IconInfo}. + */ +@SmallTest +public class IconInfoTest { + private static final String TEST_FILENAME = "testIcon"; + private static final byte[] TEST_DATA = new byte[] {0x12, 0x23, 0x34, 0x45, 0x56, 0x67}; + + /** + * Verify parcel write and read consistency for the given {@link IconInfo} + * + * @param writeIcon the {@link IconInfo} to write and verify + * @throws Exception + */ + private static void verifyParcel(IconInfo writeIcon) throws Exception { + Parcel parcel = Parcel.obtain(); + writeIcon.writeToParcel(parcel, 0); + + parcel.setDataPosition(0); // Rewind data position back to the beginning for read. + IconInfo readIcon = IconInfo.CREATOR.createFromParcel(parcel); + assertEquals(writeIcon, readIcon); + } + + /** + * Verify parcel serialization for a {@link IconInfo} with null data. + * + * @throws Exception + */ + @Test + public void verifyParcelWithNullData() throws Exception { + verifyParcel(new IconInfo(TEST_FILENAME, (byte[]) null)); + } + + /** + * Verify parcel serialization for a {@link IconInfo} with zero length data. + * + * @throws Exception + */ + @Test + public void verifyParcelWithZeroLengthData() throws Exception { + verifyParcel(new IconInfo(TEST_FILENAME, new byte[0])); + } + + /** + * Verify parcel serialization for a {@link IconInfo} with non-zero length data. + * + * @throws Exception + */ + @Test + public void verifyParcelWithNonZeroLengthData() throws Exception { + verifyParcel(new IconInfo(TEST_FILENAME, TEST_DATA)); + } + + /** + * Verify parcel serialization for a {@link IconInfo} with a null filename. + * + * @throws Exception + */ + @Test + public void verifyParcelWithNullFilename() throws Exception { + verifyParcel(new IconInfo(null, TEST_DATA)); + } + + /** + * Verify the copy constructor with non-null filename and data. + * + * @throws Exception + */ + @Test + public void verifyCopyConstructor() throws Exception { + IconInfo source = new IconInfo(TEST_FILENAME, TEST_DATA); + assertEquals(source, new IconInfo(source)); + } + + /** + * Verify the copy constructor with null data. + * + * @throws Exception + */ + @Test + public void verifyCopyConstructorWithNullData() throws Exception { + IconInfo source = new IconInfo(TEST_FILENAME, (byte[]) null); + assertEquals(source, new IconInfo(source)); + } + + /** + * Verify the copy constructor with null file name. + * + * @throws Exception + */ + @Test + public void verifyCopyConstructorWithNullFilename() throws Exception { + IconInfo source = new IconInfo(null, TEST_DATA); + assertEquals(source, new IconInfo(source)); + } +} |