diff options
| -rw-r--r-- | packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java index ab174f47ab20..f16fb1c91b7c 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java @@ -712,11 +712,25 @@ public class AccessPoint implements Comparable<AccessPoint> { public boolean matches(WifiConfiguration config) { if (config.isPasspoint()) { return (isPasspoint() && config.FQDN.equals(mConfig.FQDN)); - } else { - // Normal non-Passpoint network - return ssid.equals(removeDoubleQuotes(config.SSID)) - && security == getSecurity(config) - && (mConfig == null || mConfig.shared == config.shared); + } + + if (!ssid.equals(removeDoubleQuotes(config.SSID)) + || (mConfig != null && mConfig.shared != config.shared)) { + return false; + } + + final int configSecurity = getSecurity(config); + final WifiManager wifiManager = getWifiManager(); + switch (security) { + case SECURITY_PSK_SAE_TRANSITION: + return configSecurity == SECURITY_PSK + || (wifiManager.isWpa3SaeSupported() && configSecurity == SECURITY_SAE); + case SECURITY_OWE_TRANSITION: + return configSecurity == SECURITY_NONE + || (wifiManager.isEnhancedOpenSupported() + && configSecurity == SECURITY_OWE); + default: + return security == configSecurity; } } |