Merge "Don't crash in SecondaryUserController." into oc-dev

This commit is contained in:
Daniel Nishi
2017-04-12 18:57:47 +00:00
committed by Android (Google) Code Review
2 changed files with 25 additions and 3 deletions

View File

@@ -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);
}
}

View File

@@ -211,4 +211,20 @@ public class SecondaryUserControllerTest {
Preference preference = argumentCaptor.getValue();
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
}
}