From cef7d97031713b38ed44d7ebda2d3f58d25b61a5 Mon Sep 17 00:00:00 2001 From: Arc Wang Date: Tue, 23 Jun 2020 18:27:51 +0800 Subject: [PATCH] [Wi-Fi] Fix MAC address title information display bug Use WifiTrackerLib, we can use WifiEntry.getPrivacy() to get the value for a Passpoint network. Bug: 159672621 Test: manual visual Switch Privacy setting in Wi-Fi detail page, observe MAC address title. Change-Id: I5411e727c5f48dc0d65a05706194569ca3bbebdc --- .../WifiDetailPreferenceController2.java | 30 +++++-------------- 1 file changed, 7 insertions(+), 23 deletions(-) diff --git a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java index a8845765075..5c48dfd4934 100644 --- a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java +++ b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java @@ -631,21 +631,23 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle } private void refreshMacAddress() { - String macAddress = mWifiEntry.getMacAddress(); - if (macAddress == null) { + final String macAddress = mWifiEntry.getMacAddress(); + if (TextUtils.isEmpty(macAddress)) { mMacAddressPref.setVisible(false); return; } mMacAddressPref.setVisible(true); + + mMacAddressPref.setTitle((mWifiEntry.getPrivacy() == WifiEntry.PRIVACY_RANDOMIZED_MAC) + ? R.string.wifi_advanced_randomized_mac_address_title + : R.string.wifi_advanced_device_mac_address_title); + if (macAddress.equals(WifiInfo.DEFAULT_MAC_ADDRESS)) { mMacAddressPref.setSummary(R.string.device_info_not_available); } else { mMacAddressPref.setSummary(macAddress); } - - // MAC Address Pref Title - refreshMacTitle(); } private void updatePreference(Preference pref, String detailText) { @@ -930,24 +932,6 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle } } - private void refreshMacTitle() { - if (!mWifiEntry.isSaved()) { - return; - } - - // For saved Passpoint network, framework doesn't have the field to keep the MAC choice - // persistently, so Passpoint network will always use the default value so far, which is - // randomized MAC address, so don't need to modify title. - if (mWifiEntry.isSubscription()) { - return; - } - - mMacAddressPref.setTitle( - (mWifiEntry.getPrivacy() == WifiEntry.PRIVACY_RANDOMIZED_MAC) - ? R.string.wifi_advanced_randomized_mac_address_title - : R.string.wifi_advanced_device_mac_address_title); - } - /** * Indicates the state of the WifiEntry has changed and clients may retrieve updates through * the WifiEntry getter methods.