From c4b1d0f416204ee289262a5d510357149278152d Mon Sep 17 00:00:00 2001 From: Arc Wang Date: Fri, 10 Jan 2020 15:51:24 +0800 Subject: [PATCH] [Wi-Fi] Fix Wi-Fi wrong password notification can't launch editor WifiPickerTracker gather WifiEntries at onStart but WifiPickerTracker.getWifiEntries() may still have no WifiEntry at onResume. Check if there is a specified wrong password Wi-Fi network at onWifiEntriesChanged. Bug: 143328194 Test: manual Edit a Wi-Fi network with wrong password, click the wrong password notification, should see a Wi-Fi editor for the wrong password Wi-Fi network Change-Id: I7de6e0e3eabb2cb00160709eca4951b655dc04d7 --- .../android/settings/wifi/WifiSettings.java | 7 ++++- .../android/settings/wifi/WifiSettings2.java | 30 +++++++++---------- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index 27b5c3bfc40..488aadbafb7 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -227,7 +227,12 @@ public class WifiSettings extends RestrictedSettingsFragment super.onCreate(icicle); if (FeatureFlagUtils.isEnabled(getContext(), FeatureFlagUtils.SETTINGS_WIFITRACKER2)) { - getContext().startActivity(new Intent("android.settings.WIFI_SETTINGS2")); + final Intent intent = new Intent("android.settings.WIFI_SETTINGS2"); + final Bundle extras = getActivity().getIntent().getExtras(); + if (extras != null) { + intent.putExtras(extras); + } + getContext().startActivity(intent); finish(); return; } diff --git a/src/com/android/settings/wifi/WifiSettings2.java b/src/com/android/settings/wifi/WifiSettings2.java index a1f1ad988cc..c39a2065d88 100644 --- a/src/com/android/settings/wifi/WifiSettings2.java +++ b/src/com/android/settings/wifi/WifiSettings2.java @@ -405,21 +405,6 @@ public class WifiSettings2 extends RestrictedSettingsFragment } changeNextButtonState(mWifiPickerTracker.getConnectedWifiEntry() != null); - - // Edit the Wi-Fi network of specified SSID. - if (mOpenSsid != null) { - Optional matchedWifiEntry = mWifiPickerTracker.getWifiEntries().stream() - .filter(wifiEntry -> TextUtils.equals(mOpenSsid, wifiEntry.getSsid())) - .filter(wifiEntry -> wifiEntry.getSecurity() != WifiEntry.SECURITY_NONE - && wifiEntry.getSecurity() != WifiEntry.SECURITY_OWE) - .filter(wifiEntry -> !wifiEntry.isSaved() - || isDisabledByWrongPassword(wifiEntry)) - .findFirst(); - if (matchedWifiEntry.isPresent()) { - mOpenSsid = null; - launchConfigNewNetworkFragment(matchedWifiEntry.get()); - } - } } @Override @@ -673,6 +658,21 @@ public class WifiSettings2 extends RestrictedSettingsFragment public void onWifiEntriesChanged() { updateWifiEntryPreferencesDelayed(); changeNextButtonState(mWifiPickerTracker.getConnectedWifiEntry() != null); + + // Edit the Wi-Fi network of specified SSID. + if (mOpenSsid != null) { + Optional matchedWifiEntry = mWifiPickerTracker.getWifiEntries().stream() + .filter(wifiEntry -> TextUtils.equals(mOpenSsid, wifiEntry.getSsid())) + .filter(wifiEntry -> wifiEntry.getSecurity() != WifiEntry.SECURITY_NONE + && wifiEntry.getSecurity() != WifiEntry.SECURITY_OWE) + .filter(wifiEntry -> !wifiEntry.isSaved() + || isDisabledByWrongPassword(wifiEntry)) + .findFirst(); + if (matchedWifiEntry.isPresent()) { + mOpenSsid = null; + launchConfigNewNetworkFragment(matchedWifiEntry.get()); + } + } } @Override