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;
}
}