Merge "Don't crash in SecondaryUserController." into oc-dev
This commit is contained in:
@@ -48,6 +48,7 @@ public class SecondaryUserController extends PreferenceController
|
|||||||
|
|
||||||
private @NonNull UserInfo mUser;
|
private @NonNull UserInfo mUser;
|
||||||
private @Nullable StorageItemPreference mStoragePreference;
|
private @Nullable StorageItemPreference mStoragePreference;
|
||||||
|
private Drawable mUserIcon;
|
||||||
private long mSize;
|
private long mSize;
|
||||||
private long mTotalSizeBytes;
|
private long mTotalSizeBytes;
|
||||||
|
|
||||||
@@ -113,6 +114,7 @@ public class SecondaryUserController extends PreferenceController
|
|||||||
|
|
||||||
group.setVisible(true);
|
group.setVisible(true);
|
||||||
group.addPreference(mStoragePreference);
|
group.addPreference(mStoragePreference);
|
||||||
|
maybeSetIcon();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -163,9 +165,13 @@ public class SecondaryUserController extends PreferenceController
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleUserIcons(SparseArray<Drawable> fetchedIcons) {
|
public void handleUserIcons(SparseArray<Drawable> fetchedIcons) {
|
||||||
Drawable userIcon = fetchedIcons.get(mUser.id);
|
mUserIcon = fetchedIcons.get(mUser.id);
|
||||||
if (userIcon != null) {
|
maybeSetIcon();
|
||||||
mStoragePreference.setIcon(userIcon);
|
}
|
||||||
|
|
||||||
|
private void maybeSetIcon() {
|
||||||
|
if (mUserIcon != null && mStoragePreference != null) {
|
||||||
|
mStoragePreference.setIcon(mUserIcon);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -211,4 +211,20 @@ public class SecondaryUserControllerTest {
|
|||||||
Preference preference = argumentCaptor.getValue();
|
Preference preference = argumentCaptor.getValue();
|
||||||
assertThat(preference.getIcon()).isEqualTo(drawable);
|
assertThat(preference.getIcon()).isEqualTo(drawable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setIcon_doesntNpeOnNullPreference() throws Exception {
|
||||||
|
SparseArray<Drawable> icons = new SparseArray<>();
|
||||||
|
Bitmap userBitmap =
|
||||||
|
BitmapFactory.decodeResource(
|
||||||
|
RuntimeEnvironment.application.getResources(), R.drawable.home);
|
||||||
|
UserIconDrawable drawable = new UserIconDrawable(100 /* size */).setIcon(userBitmap).bake();
|
||||||
|
icons.put(10, drawable);
|
||||||
|
mPrimaryUser.name = TEST_NAME;
|
||||||
|
mPrimaryUser.id = 10;
|
||||||
|
|
||||||
|
mController.handleUserIcons(icons);
|
||||||
|
|
||||||
|
// Doesn't crash
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user