From 40c4303fb394bf19a38edc2e34c609d57b4015fd Mon Sep 17 00:00:00 2001 From: Quang Luong Date: Mon, 23 Mar 2020 21:00:51 -0700 Subject: [PATCH] Fix Passpoint network details privacy and ssid Allow changing the privacy setting for Passpoint networks, which are considered subscriptions but not saved networks. Also use getSsid() for the SSID pref. Bug: 70983952 Test: manual build and visual verification Change-Id: I8a4309421b28bccaf2bd62a23dca8cef133d5af1 --- .../WifiDetailPreferenceController2.java | 4 ++-- .../WifiPrivacyPreferenceController2.java | 23 ++++++++----------- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java index 70567ac3c71..d4a630c9125 100644 --- a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java +++ b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java @@ -623,9 +623,9 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle } private void refreshSsid() { - if (mWifiEntry.isSubscription()) { + if (mWifiEntry.isSubscription() && mWifiEntry.getSsid() != null) { mSsidPref.setVisible(true); - mSsidPref.setSummary(mWifiEntry.getTitle()); + mSsidPref.setSummary(mWifiEntry.getSsid()); } else { mSsidPref.setVisible(false); } diff --git a/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java index b87b05df1dc..a0d4b16d57a 100644 --- a/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java +++ b/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java @@ -82,14 +82,13 @@ public class WifiPrivacyPreferenceController2 extends BasePreferenceController i @Override public boolean onPreferenceChange(Preference preference, Object newValue) { final int privacy = Integer.parseInt((String) newValue); - if (mWifiEntry.isSaved()) { - mWifiEntry.setPrivacy(privacy); + mWifiEntry.setPrivacy(privacy); - // To activate changing, we need to reconnect network. WiFi will auto connect to - // current network after disconnect(). Only needed when this is connected network. - if (mWifiEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED) { - mWifiEntry.disconnect(null /* callback */); - } + // To activate changing, we need to reconnect network. WiFi will auto connect to + // current network after disconnect(). Only needed when this is connected network. + if (mWifiEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED) { + mWifiEntry.disconnect(null /* callback */); + mWifiEntry.connect(null /* callback */); } updateSummary((DropDownPreference) preference, privacy); return true; @@ -97,10 +96,7 @@ public class WifiPrivacyPreferenceController2 extends BasePreferenceController i @VisibleForTesting int getRandomizationValue() { - if (mWifiEntry.isSaved()) { - return mWifiEntry.getPrivacy(); - } - return WifiEntry.PRIVACY_RANDOMIZED_MAC; + return mWifiEntry.getPrivacy(); } private static final int PREF_RANDOMIZATION_PERSISTENT = 0; @@ -138,12 +134,11 @@ public class WifiPrivacyPreferenceController2 extends BasePreferenceController i public void onSubmit(WifiDialog2 dialog) { if (dialog.getController() != null) { final WifiConfiguration newConfig = dialog.getController().getConfig(); - if (newConfig == null || !mWifiEntry.isSaved()) { + if (newConfig == null) { return; } - if (newConfig.macRandomizationSetting - != mWifiEntry.getWifiConfiguration().macRandomizationSetting) { + if (getWifiEntryPrivacy(newConfig) != mWifiEntry.getPrivacy()) { mWifiEntry.setPrivacy(getWifiEntryPrivacy(newConfig)); onPreferenceChange(mPreference, String.valueOf(newConfig.macRandomizationSetting)); }