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
diff --git a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java
index 25b3abd..dd16006 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.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 @@
* user.
*/
private final ArrayList<DeviceAdminListItem> mAdmins = new ArrayList<>();
- private final SparseArray<ComponentName> mProfileOwnerComponents = new SparseArray<>();
private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
@Override
@@ -118,6 +116,8 @@
super.displayPreference(screen);
mPreferenceGroup = screen.findPreference(getPreferenceKey());
mFooterPreference = mPreferenceGroup.findPreference(KEY_DEVICE_ADMIN_FOOTER);
+
+ updateList();
}
@Override
@@ -128,19 +128,6 @@
}
@Override
- public void updateState(Preference preference) {
- super.updateState(preference);
- mProfileOwnerComponents.clear();
- final List<UserHandle> 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);
}