From 50d9224a4cfd22719516069a3317425926350d8a Mon Sep 17 00:00:00 2001 From: Chaohui Wang Date: Fri, 18 Mar 2022 21:26:42 +0800 Subject: [PATCH] Fix flicker for Device admin apps. Security ->Advanced settings-> Device admin apps updateState() is called in DashboardFragment.onResume(), which after the view is visible to the user. Rendering the items in updateState() caused the flicker. Bug: 225283414 Test: On Pixel device Change-Id: I7175c966fbbfbf5d6331f5ac26c06b60d59a4e0d --- .../DeviceAdminListPreferenceController.java | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java index 25b3abdb153..dd160061939 100644 --- a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java +++ b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java @@ -37,7 +37,6 @@ import android.os.UserManager; import android.text.TextUtils; import android.util.ArrayMap; import android.util.Log; -import android.util.SparseArray; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; @@ -79,7 +78,6 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle * user. */ private final ArrayList mAdmins = new ArrayList<>(); - private final SparseArray mProfileOwnerComponents = new SparseArray<>(); private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { @Override @@ -118,6 +116,8 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle super.displayPreference(screen); mPreferenceGroup = screen.findPreference(getPreferenceKey()); mFooterPreference = mPreferenceGroup.findPreference(KEY_DEVICE_ADMIN_FOOTER); + + updateList(); } @Override @@ -127,19 +127,6 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle null /* broadcastPermission */, null /* scheduler */); } - @Override - public void updateState(Preference preference) { - super.updateState(preference); - mProfileOwnerComponents.clear(); - final List profiles = mUm.getUserProfiles(); - final int profilesSize = profiles.size(); - for (int i = 0; i < profilesSize; ++i) { - final int profileId = profiles.get(i).getIdentifier(); - mProfileOwnerComponents.put(profileId, mDPM.getProfileOwnerAsUser(profileId)); - } - updateList(); - } - @Override public void onStop() { mContext.unregisterReceiver(mBroadcastReceiver);