From 62e3a8276e21aa1720c0b2a72c683c1d5724202d Mon Sep 17 00:00:00 2001 From: Arc Wang Date: Mon, 6 Apr 2020 16:36:04 +0800 Subject: [PATCH] [Wi-Fi] Fix EntityHeader signal strength icon invisible problem WifiDetailPreferenceController2#onUpdated() triggers each controller to displayPreference(PreferenceScreen screen) for visibility updating. However, WifiDetailPreferenceController2 is a much complex controller which should controll it's components visibility by itself. Bug: 152886237 Test: manual visual Observe EntityHeader signal strength icon UI display. Change-Id: I80a8341ae051f21410070a81e01716eb49d2c8da --- .../wifi/details2/WifiNetworkDetailsFragment2.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/com/android/settings/wifi/details2/WifiNetworkDetailsFragment2.java b/src/com/android/settings/wifi/details2/WifiNetworkDetailsFragment2.java index 6ad4c94a8d9..1b54e1a2f31 100644 --- a/src/com/android/settings/wifi/details2/WifiNetworkDetailsFragment2.java +++ b/src/com/android/settings/wifi/details2/WifiNetworkDetailsFragment2.java @@ -235,6 +235,13 @@ public class WifiNetworkDetailsFragment2 extends DashboardFragment implements public void refreshPreferences() { final PreferenceScreen screen = getPreferenceScreen(); for (AbstractPreferenceController controller : mControllers) { + // WifiDetailPreferenceController2 gets the callback WifiEntryCallback#onUpdated, + // it can control the visibility change by itself. + // And WifiDetailPreferenceController2#updatePreference renew mEntityHeaderController + // instance which will cause icon reset. + if (controller instanceof WifiDetailPreferenceController2) { + continue; + } controller.displayPreference(screen); } }