From 5f23a436607a06d3a145a573841ca192be42934c Mon Sep 17 00:00:00 2001 From: Arc Wang Date: Tue, 3 Dec 2019 11:26:04 +0800 Subject: [PATCH] [Wi-Fi] Fix transition mode problems Replace SECURITY_PSK_SAE_TRANSITION & SECURITY_OWE_TRANSITION with AccessPpoint#isPskSaeTransitionMode() & AccessPpoint#isPskOweTransitionMode() Bug: 144320676 Bug: 144320649 Bug: 144325162 Bug: 144321574 Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.wifi Change-Id: Ic3c7ac1238a51b6e215ed63761720d2bc371d012 --- .../wifi/NetworkRequestDialogFragment.java | 6 ++-- .../settings/wifi/WifiConfigController.java | 34 +------------------ .../android/settings/wifi/WifiSettings.java | 7 ++-- src/com/android/settings/wifi/WifiUtils.java | 3 +- .../settings/wifi/dpp/WifiDppUtils.java | 5 +-- 5 files changed, 9 insertions(+), 46 deletions(-) diff --git a/src/com/android/settings/wifi/NetworkRequestDialogFragment.java b/src/com/android/settings/wifi/NetworkRequestDialogFragment.java index c7255f14528..ee032ede6c0 100644 --- a/src/com/android/settings/wifi/NetworkRequestDialogFragment.java +++ b/src/com/android/settings/wifi/NetworkRequestDialogFragment.java @@ -220,7 +220,7 @@ public class NetworkRequestDialogFragment extends NetworkRequestDialogBaseFragme super.onResume(); if (mFilterWifiTracker == null) { - mFilterWifiTracker = new FilterWifiTracker(getActivity(), getSettingsLifecycle()); + mFilterWifiTracker = new FilterWifiTracker(getContext(), getSettingsLifecycle()); } mFilterWifiTracker.onResume(); } @@ -331,11 +331,13 @@ public class NetworkRequestDialogFragment extends NetworkRequestDialogBaseFragme final class FilterWifiTracker { private final List mAccessPointKeys; private final WifiTracker mWifiTracker; + private final Context mContext; public FilterWifiTracker(Context context, Lifecycle lifecycle) { mWifiTracker = WifiTrackerFactory.create(context, mWifiListener, lifecycle, /* includeSaved */ true, /* includeScans */ true); mAccessPointKeys = new ArrayList<>(); + mContext = context; } /** @@ -344,7 +346,7 @@ public class NetworkRequestDialogFragment extends NetworkRequestDialogBaseFragme */ public void updateKeys(List scanResults) { for (ScanResult scanResult : scanResults) { - final String key = AccessPoint.getKey(scanResult); + final String key = AccessPoint.getKey(mContext, scanResult); if (!mAccessPointKeys.contains(key)) { mAccessPointKeys.add(key); } diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java index 9fb75463092..5065ccb35a4 100644 --- a/src/com/android/settings/wifi/WifiConfigController.java +++ b/src/com/android/settings/wifi/WifiConfigController.java @@ -607,35 +607,6 @@ public class WifiConfigController implements TextWatcher, } } - /** - * Special handling for WPA2/WPA3 and OWE in Transition mode: The key - * SECURITY_PSK_SAE_TRANSITION and SECURITY_OWE_TRANSITION are pseudo keys which result by the - * scan results, but never appears in the saved networks. - * A saved network is either WPA3 for supporting devices or WPA2 for non-supporting devices, - * or, OWE for supporting devices or Open for non-supporting devices. - * - * @param accessPointSecurity Access point current security type - * @return Converted security type (if required) - */ - private int convertSecurityTypeForMatching(int accessPointSecurity) { - if (accessPointSecurity == AccessPoint.SECURITY_PSK_SAE_TRANSITION) { - if (mWifiManager.isWpa3SaeSupported()) { - return AccessPoint.SECURITY_SAE; - } else { - return AccessPoint.SECURITY_PSK; - } - } - if (accessPointSecurity == AccessPoint.SECURITY_OWE_TRANSITION) { - if (mWifiManager.isEnhancedOpenSupported()) { - return AccessPoint.SECURITY_OWE; - } else { - return AccessPoint.SECURITY_NONE; - } - } - - return accessPointSecurity; - } - public WifiConfiguration getConfig() { if (mMode == WifiConfigUiBase.MODE_VIEW) { return null; @@ -658,8 +629,6 @@ public class WifiConfigController implements TextWatcher, config.shared = mSharedCheckBox.isChecked(); - mAccessPointSecurity = convertSecurityTypeForMatching(mAccessPointSecurity); - switch (mAccessPointSecurity) { case AccessPoint.SECURITY_NONE: config.allowedKeyManagement.set(KeyMgmt.NONE); @@ -1017,8 +986,7 @@ public class WifiConfigController implements TextWatcher, private void showSecurityFields(boolean refreshEapMethods, boolean refreshCertificates) { if (mAccessPointSecurity == AccessPoint.SECURITY_NONE || - mAccessPointSecurity == AccessPoint.SECURITY_OWE || - mAccessPointSecurity == AccessPoint.SECURITY_OWE_TRANSITION) { + mAccessPointSecurity == AccessPoint.SECURITY_OWE) { mView.findViewById(R.id.security_fields).setVisibility(View.GONE); return; } diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index a5b380ef897..53698519a17 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -515,9 +515,7 @@ public class WifiSettings extends RestrictedSettingsFragment if (isSavedNetwork) { connect(mSelectedAccessPoint.getConfig(), isSavedNetwork); } else if ((mSelectedAccessPoint.getSecurity() == AccessPoint.SECURITY_NONE) || - (mSelectedAccessPoint.getSecurity() == AccessPoint.SECURITY_OWE) || - (mSelectedAccessPoint.getSecurity() - == AccessPoint.SECURITY_OWE_TRANSITION)) { + (mSelectedAccessPoint.getSecurity() == AccessPoint.SECURITY_OWE)) { /** Bypass dialog for unsecured networks */ mSelectedAccessPoint.generateOpenNetworkConfig(); connect(mSelectedAccessPoint.getConfig(), isSavedNetwork); @@ -774,8 +772,7 @@ public class WifiSettings extends RestrictedSettingsFragment preference.setOrder(index); if (mOpenSsid != null && mOpenSsid.equals(accessPoint.getSsidStr()) && (accessPoint.getSecurity() != AccessPoint.SECURITY_NONE && - accessPoint.getSecurity() != AccessPoint.SECURITY_OWE && - accessPoint.getSecurity() != AccessPoint.SECURITY_OWE_TRANSITION)) { + accessPoint.getSecurity() != AccessPoint.SECURITY_OWE)) { if (!accessPoint.isSaved() || isDisabledByWrongPassword(accessPoint)) { onPreferenceTreeClick(preference); mOpenSsid = null; diff --git a/src/com/android/settings/wifi/WifiUtils.java b/src/com/android/settings/wifi/WifiUtils.java index c4df5676246..9b3c1b368c9 100644 --- a/src/com/android/settings/wifi/WifiUtils.java +++ b/src/com/android/settings/wifi/WifiUtils.java @@ -268,8 +268,7 @@ public class WifiUtils { if (accessPoint.isOsuProvider()) { return CONNECT_TYPE_OSU_PROVISION; } else if ((accessPoint.getSecurity() == AccessPoint.SECURITY_NONE) || - (accessPoint.getSecurity() == AccessPoint.SECURITY_OWE) || - (accessPoint.getSecurity() == AccessPoint.SECURITY_OWE_TRANSITION)) { + (accessPoint.getSecurity() == AccessPoint.SECURITY_OWE)) { return CONNECT_TYPE_OPEN_NETWORK; } else if (accessPoint.isSaved() && config != null && config.getNetworkSelectionStatus() != null diff --git a/src/com/android/settings/wifi/dpp/WifiDppUtils.java b/src/com/android/settings/wifi/dpp/WifiDppUtils.java index 90e5f13081a..6e01aef1104 100644 --- a/src/com/android/settings/wifi/dpp/WifiDppUtils.java +++ b/src/com/android/settings/wifi/dpp/WifiDppUtils.java @@ -204,7 +204,7 @@ public class WifiDppUtils { setConfiguratorIntentExtra(intent, wifiManager, wifiConfiguration); // For a transition mode Wi-Fi AP, creates a QR code that's compatible with more devices - if (accessPoint.getSecurity() == AccessPoint.SECURITY_PSK_SAE_TRANSITION) { + if (accessPoint.isPskSaeTransitionMode()) { intent.putExtra(EXTRA_WIFI_SECURITY, WifiQrCode.SECURITY_WPA_PSK); } @@ -427,7 +427,6 @@ public class WifiDppUtils { } break; case AccessPoint.SECURITY_PSK: - case AccessPoint.SECURITY_PSK_SAE_TRANSITION: return true; default: } @@ -440,8 +439,6 @@ public class WifiDppUtils { case AccessPoint.SECURITY_PSK: case AccessPoint.SECURITY_WEP: case AccessPoint.SECURITY_NONE: - case AccessPoint.SECURITY_PSK_SAE_TRANSITION: - case AccessPoint.SECURITY_OWE_TRANSITION: return true; case AccessPoint.SECURITY_SAE: if (wifiManager.isWpa3SaeSupported()) {