Merge "NetworkKey: migrate from ScanResult.wifiSsid to SSID"

This commit is contained in:
David Su
2019-11-21 18:44:46 +00:00
committed by Gerrit Code Review
6 changed files with 41 additions and 33 deletions

View File

@@ -29891,6 +29891,7 @@ package android.net.wifi {
field public static final int STATUS_NETWORK_SUGGESTIONS_SUCCESS = 0; // 0x0
field @Deprecated public static final String SUPPLICANT_CONNECTION_CHANGE_ACTION = "android.net.wifi.supplicant.CONNECTION_CHANGE";
field @Deprecated public static final String SUPPLICANT_STATE_CHANGED_ACTION = "android.net.wifi.supplicant.STATE_CHANGE";
field public static final String UNKNOWN_SSID = "<unknown ssid>";
field @Deprecated public static final int WIFI_MODE_FULL = 1; // 0x1
field public static final int WIFI_MODE_FULL_HIGH_PERF = 3; // 0x3
field public static final int WIFI_MODE_FULL_LOW_LATENCY = 4; // 0x4

View File

@@ -21,7 +21,7 @@ import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiSsid;
import android.net.wifi.WifiManager;
import android.os.Parcel;
import android.os.Parcelable;
import android.text.TextUtils;
@@ -69,22 +69,25 @@ public class NetworkKey implements Parcelable {
*/
@Nullable
public static NetworkKey createFromScanResult(@Nullable ScanResult result) {
if (result != null && result.wifiSsid != null) {
final String ssid = result.wifiSsid.toString();
final String bssid = result.BSSID;
if (!TextUtils.isEmpty(ssid) && !ssid.equals(WifiSsid.NONE)
&& !TextUtils.isEmpty(bssid)) {
WifiKey wifiKey;
try {
wifiKey = new WifiKey(String.format("\"%s\"", ssid), bssid);
} catch (IllegalArgumentException e) {
Log.e(TAG, "Unable to create WifiKey.", e);
return null;
}
return new NetworkKey(wifiKey);
}
if (result == null) {
return null;
}
final String ssid = result.SSID;
if (TextUtils.isEmpty(ssid) || ssid.equals(WifiManager.UNKNOWN_SSID)) {
return null;
}
final String bssid = result.BSSID;
if (TextUtils.isEmpty(bssid)) {
return null;
}
try {
final WifiKey wifiKey = new WifiKey(String.format("\"%s\"", ssid), bssid);
return new NetworkKey(wifiKey);
} catch (IllegalArgumentException e) {
Log.e(TAG, "Unable to create WifiKey.", e);
return null;
}
return null;
}
/**
@@ -100,7 +103,7 @@ public class NetworkKey implements Parcelable {
if (wifiInfo != null) {
final String ssid = wifiInfo.getSSID();
final String bssid = wifiInfo.getBSSID();
if (!TextUtils.isEmpty(ssid) && !ssid.equals(WifiSsid.NONE)
if (!TextUtils.isEmpty(ssid) && !ssid.equals(WifiManager.UNKNOWN_SSID)
&& !TextUtils.isEmpty(bssid)) {
WifiKey wifiKey;
try {

View File

@@ -22,7 +22,7 @@ import static org.mockito.Mockito.when;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiSsid;
import android.net.wifi.WifiManager;
import androidx.test.runner.AndroidJUnit4;
@@ -65,7 +65,7 @@ public class NetworkKeyTest {
@Test
public void createFromWifi_noneSsid() throws Exception {
when(mWifiInfo.getSSID()).thenReturn(WifiSsid.NONE);
when(mWifiInfo.getSSID()).thenReturn(WifiManager.UNKNOWN_SSID);
when(mWifiInfo.getBSSID()).thenReturn(VALID_BSSID);
assertNull(NetworkKey.createFromWifiInfo(mWifiInfo));
}
@@ -106,7 +106,7 @@ public class NetworkKeyTest {
}
@Test
public void createFromScanResult_nullWifiSsid() {
public void createFromScanResult_nullSsid() {
ScanResult scanResult = new ScanResult();
scanResult.BSSID = VALID_BSSID;
@@ -114,18 +114,18 @@ public class NetworkKeyTest {
}
@Test
public void createFromScanResult_emptyWifiSsid() {
public void createFromScanResult_emptySsid() {
ScanResult scanResult = new ScanResult();
scanResult.wifiSsid = WifiSsid.createFromAsciiEncoded("");
scanResult.SSID = "";
scanResult.BSSID = VALID_BSSID;
assertNull(NetworkKey.createFromScanResult(scanResult));
}
@Test
public void createFromScanResult_noneWifiSsid() {
public void createFromScanResult_noneSsid() {
ScanResult scanResult = new ScanResult();
scanResult.wifiSsid = WifiSsid.createFromAsciiEncoded(WifiSsid.NONE);
scanResult.SSID = WifiManager.UNKNOWN_SSID;
scanResult.BSSID = VALID_BSSID;
assertNull(NetworkKey.createFromScanResult(scanResult));
@@ -134,7 +134,7 @@ public class NetworkKeyTest {
@Test
public void createFromScanResult_nullBssid() {
ScanResult scanResult = new ScanResult();
scanResult.wifiSsid = WifiSsid.createFromAsciiEncoded(VALID_UNQUOTED_SSID);
scanResult.SSID = VALID_UNQUOTED_SSID;
assertNull(NetworkKey.createFromScanResult(scanResult));
}
@@ -142,7 +142,7 @@ public class NetworkKeyTest {
@Test
public void createFromScanResult_emptyBssid() {
ScanResult scanResult = new ScanResult();
scanResult.wifiSsid = WifiSsid.createFromAsciiEncoded(VALID_UNQUOTED_SSID);
scanResult.SSID = VALID_UNQUOTED_SSID;
scanResult.BSSID = "";
assertNull(NetworkKey.createFromScanResult(scanResult));
@@ -151,16 +151,16 @@ public class NetworkKeyTest {
@Test
public void createFromScanResult_invalidBssid() {
ScanResult scanResult = new ScanResult();
scanResult.wifiSsid = WifiSsid.createFromAsciiEncoded(VALID_UNQUOTED_SSID);
scanResult.SSID = VALID_UNQUOTED_SSID;
scanResult.BSSID = INVALID_BSSID;
assertNull(NetworkKey.createFromScanResult(scanResult));
}
@Test
public void createFromScanResult_validWifiSsid() {
public void createFromScanResult_validSsid() {
ScanResult scanResult = new ScanResult();
scanResult.wifiSsid = WifiSsid.createFromAsciiEncoded(VALID_UNQUOTED_SSID);
scanResult.SSID = VALID_UNQUOTED_SSID;
scanResult.BSSID = VALID_BSSID;
NetworkKey expected = new NetworkKey(new WifiKey(VALID_SSID, VALID_BSSID));

View File

@@ -56,6 +56,7 @@ import android.net.WifiKey;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.net.wifi.WifiSsid;
import android.os.Binder;
import android.os.Handler;
@@ -719,7 +720,7 @@ public class NetworkScoreServiceTest {
@Test
public void testCurrentNetworkScoreCacheFilter_invalidWifiInfo_noneSsid() throws Exception {
when(mWifiInfo.getSSID()).thenReturn(WifiSsid.NONE);
when(mWifiInfo.getSSID()).thenReturn(WifiManager.UNKNOWN_SSID);
NetworkScoreService.CurrentNetworkScoreCacheFilter cacheFilter =
new NetworkScoreService.CurrentNetworkScoreCacheFilter(() -> mWifiInfo);
@@ -793,7 +794,7 @@ public class NetworkScoreServiceTest {
List<ScanResult> invalidScanResults = Lists.newArrayList(
new ScanResult(),
createScanResult("", SCORED_NETWORK.networkKey.wifiKey.bssid),
createScanResult(WifiSsid.NONE, SCORED_NETWORK.networkKey.wifiKey.bssid),
createScanResult(WifiManager.UNKNOWN_SSID, SCORED_NETWORK.networkKey.wifiKey.bssid),
createScanResult(SSID, null),
createScanResult(SSID, INVALID_BSSID)
);

View File

@@ -1128,6 +1128,9 @@ public class WifiManager {
*/
private static final int MAX_ACTIVE_LOCKS = 50;
/** Indicates an invalid SSID. */
public static final String UNKNOWN_SSID = "<unknown ssid>";
/* Number of currently active WifiLocks and MulticastLocks */
@UnsupportedAppUsage
private int mActiveLockCount;
@@ -2326,7 +2329,7 @@ public class WifiManager {
* <p>
* In the connected state, access to the SSID and BSSID requires
* the same permissions as {@link #getScanResults}. If such access is not allowed,
* {@link WifiInfo#getSSID} will return {@code "<unknown ssid>"} and
* {@link WifiInfo#getSSID} will return {@link #UNKNOWN_SSID} and
* {@link WifiInfo#getBSSID} will return {@code "02:00:00:00:00:00"}.
*
* @return the Wi-Fi information, contained in {@link WifiInfo}.

View File

@@ -48,7 +48,7 @@ public class WifiSsid implements Parcelable {
private static final int HEX_RADIX = 16;
@UnsupportedAppUsage
public static final String NONE = "<unknown ssid>";
public static final String NONE = WifiManager.UNKNOWN_SSID;
private WifiSsid() {
}