From 0e8acae9d1398b236ee12c3a63422a867f565e30 Mon Sep 17 00:00:00 2001 From: Chaohui Wang Date: Mon, 9 May 2022 15:15:40 +0800 Subject: [PATCH] Fix the device admin apps status not refreshed This is caused by I7175c966fbbfbf5d6331f5ac26c06b60d59a4e0d. updateList() should be called in updateState() to refresh the latest app status. Fix: 231113758 Test: manual visual test Change-Id: I9dc082c829020841ccd76bc4787855c8301f1154 --- .../DeviceAdminListPreferenceController.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java index dd160061939..94033165c1d 100644 --- a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java +++ b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java @@ -92,6 +92,7 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle private PreferenceGroup mPreferenceGroup; private FooterPreference mFooterPreference; + private boolean mFirstLaunch = true; static { FILTER.addAction(ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED); @@ -120,6 +121,17 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle updateList(); } + @Override + public void updateState(Preference preference) { + super.updateState(preference); + if (mFirstLaunch) { + mFirstLaunch = false; + // When first launch, updateList() is already be called in displayPreference(). + } else { + updateList(); + } + } + @Override public void onStart() { mContext.registerReceiverAsUser(