From c03fc88ed2423de624135493826039487ab24b31 Mon Sep 17 00:00:00 2001 From: Hai Shalom Date: Mon, 8 Apr 2019 15:08:19 -0700 Subject: [PATCH] [SettingsLib] Display WPA2/WPA3-Personal for WPA2/WPA3 transition mode networks Settings display WPA3-Personal in Network details dialog for WPA2/WPA3 networks in transition mode. Need to add simple logic to detect transition mode networks and display type correctly. No need to make other changes other than the UI as the underlying framework would still connect to WPA3 network only. Bug: 130181491 Test: Connect to transtion mode network, verify WPA2/WPA3-Personal Test: Connect to WPA3 only network, verify WPA3-Personal Test: Connect to WPA2 only network, verify WPA2-Personal Change-Id: I9812b2a421990ef067ed77e8595d7daf37a72c30 --- packages/SettingsLib/res/values/strings.xml | 4 ++++ .../android/settingslib/wifi/AccessPoint.java | 23 +++++++++++++++---- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/packages/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml index c6a995cb25f7f..8a39b82c0bd97 100644 --- a/packages/SettingsLib/res/values/strings.xml +++ b/packages/SettingsLib/res/values/strings.xml @@ -34,6 +34,8 @@ 802.1x WPA3 + + WPA2/WPA3 OWE @@ -58,6 +60,8 @@ Passpoint WPA3-Personal + + WPA2/WPA3-Personal Enhanced Open diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java index db236e5dbd2d0..1976ec45bf458 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java @@ -184,6 +184,7 @@ public class AccessPoint implements Comparable { private static final int PSK_WPA = 1; private static final int PSK_WPA2 = 2; private static final int PSK_WPA_WPA2 = 3; + private static final int PSK_SAE = 4; /** * The number of distinct wifi levels. @@ -764,7 +765,7 @@ public class AccessPoint implements Comparable { ssid = bestResult.SSID; bssid = bestResult.BSSID; security = getSecurity(bestResult); - if (security == SECURITY_PSK) { + if (security == SECURITY_PSK || security == SECURITY_SAE) { pskType = getPskType(bestResult); } mIsCarrierAp = bestResult.isCarrierAp; @@ -826,8 +827,13 @@ public class AccessPoint implements Comparable { return concise ? context.getString(R.string.wifi_security_short_wep) : context.getString(R.string.wifi_security_wep); case SECURITY_SAE: - return concise ? context.getString(R.string.wifi_security_short_sae) : - context.getString(R.string.wifi_security_sae); + if (pskType == PSK_SAE) { + return concise ? context.getString(R.string.wifi_security_short_psk_sae) : + context.getString(R.string.wifi_security_psk_sae); + } else { + return concise ? context.getString(R.string.wifi_security_short_sae) : + context.getString(R.string.wifi_security_sae); + } case SECURITY_OWE: return concise ? context.getString(R.string.wifi_security_short_owe) : context.getString(R.string.wifi_security_owe); @@ -1461,14 +1467,21 @@ public class AccessPoint implements Comparable { private static int getPskType(ScanResult result) { boolean wpa = result.capabilities.contains("WPA-PSK"); boolean wpa2 = result.capabilities.contains("RSN-PSK"); - if (wpa2 && wpa) { + boolean wpa3TransitionMode = result.capabilities.contains("PSK+SAE"); + boolean wpa3 = result.capabilities.contains("RSN-SAE"); + if (wpa3TransitionMode) { + return PSK_SAE; + } else if (wpa2 && wpa) { return PSK_WPA_WPA2; } else if (wpa2) { return PSK_WPA2; } else if (wpa) { return PSK_WPA; } else { - Log.w(TAG, "Received abnormal flag string: " + result.capabilities); + if (!wpa3) { + // Suppress warning for WPA3 only networks + Log.w(TAG, "Received abnormal flag string: " + result.capabilities); + } return PSK_UNKNOWN; } }