Don't crash in SecondaryUserController.
If icons were fetched before displayPreference() is called, it can cause a NPE. This adds a null check to ensure that it never attempts to set an icon without both the icon and preference being non-null. Change-Id: Ib4269428e64545c9e255f7e3292fb6c046c1f307 Fixes: 37248158 Test: Settings Robotest
This commit is contained in:
@@ -48,6 +48,7 @@ public class SecondaryUserController extends PreferenceController
|
||||
|
||||
private @NonNull UserInfo mUser;
|
||||
private @Nullable StorageItemPreference mStoragePreference;
|
||||
private Drawable mUserIcon;
|
||||
private long mSize;
|
||||
private long mTotalSizeBytes;
|
||||
|
||||
@@ -113,6 +114,7 @@ public class SecondaryUserController extends PreferenceController
|
||||
|
||||
group.setVisible(true);
|
||||
group.addPreference(mStoragePreference);
|
||||
maybeSetIcon();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -163,9 +165,13 @@ public class SecondaryUserController extends PreferenceController
|
||||
|
||||
@Override
|
||||
public void handleUserIcons(SparseArray<Drawable> fetchedIcons) {
|
||||
Drawable userIcon = fetchedIcons.get(mUser.id);
|
||||
if (userIcon != null) {
|
||||
mStoragePreference.setIcon(userIcon);
|
||||
mUserIcon = fetchedIcons.get(mUser.id);
|
||||
maybeSetIcon();
|
||||
}
|
||||
|
||||
private void maybeSetIcon() {
|
||||
if (mUserIcon != null && mStoragePreference != null) {
|
||||
mStoragePreference.setIcon(mUserIcon);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user