[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
This commit is contained in:
@@ -227,7 +227,12 @@ public class WifiSettings extends RestrictedSettingsFragment
|
|||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
|
|
||||||
if (FeatureFlagUtils.isEnabled(getContext(), FeatureFlagUtils.SETTINGS_WIFITRACKER2)) {
|
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();
|
finish();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -405,21 +405,6 @@ public class WifiSettings2 extends RestrictedSettingsFragment
|
|||||||
}
|
}
|
||||||
|
|
||||||
changeNextButtonState(mWifiPickerTracker.getConnectedWifiEntry() != null);
|
changeNextButtonState(mWifiPickerTracker.getConnectedWifiEntry() != null);
|
||||||
|
|
||||||
// Edit the Wi-Fi network of specified SSID.
|
|
||||||
if (mOpenSsid != null) {
|
|
||||||
Optional<WifiEntry> 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
|
@Override
|
||||||
@@ -673,6 +658,21 @@ public class WifiSettings2 extends RestrictedSettingsFragment
|
|||||||
public void onWifiEntriesChanged() {
|
public void onWifiEntriesChanged() {
|
||||||
updateWifiEntryPreferencesDelayed();
|
updateWifiEntryPreferencesDelayed();
|
||||||
changeNextButtonState(mWifiPickerTracker.getConnectedWifiEntry() != null);
|
changeNextButtonState(mWifiPickerTracker.getConnectedWifiEntry() != null);
|
||||||
|
|
||||||
|
// Edit the Wi-Fi network of specified SSID.
|
||||||
|
if (mOpenSsid != null) {
|
||||||
|
Optional<WifiEntry> 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
|
@Override
|
||||||
|
Reference in New Issue
Block a user