Change summary
src/main/java/eu/siacs/conversations/persistance/FileBackend.java | 5
src/main/java/eu/siacs/conversations/services/AvatarService.java | 2
src/main/java/eu/siacs/conversations/services/XmppConnectionService.java | 5
3 files changed, 8 insertions(+), 4 deletions(-)
Detailed changes
@@ -1755,7 +1755,8 @@ public class FileBackend {
return null;
}
} else {
- return new BitmapDrawable(cropCenterSquare(image, size));
+ Bitmap bitmap = cropCenterSquare(image, size);
+ return bitmap == null ? null : new BitmapDrawable(bitmap);
}
}
@@ -2091,7 +2092,7 @@ public class FileBackend {
}
} else {
Bitmap bm = cropCenter(getAvatarUri(avatar), size, size);
- return new BitmapDrawable(bm);
+ return bm == null ? null : new BitmapDrawable(bm);
}
}
@@ -121,7 +121,7 @@ public class AvatarService implements OnAdvancedStreamFeaturesLoaded {
if (avatar == null) {
avatar = get(contact.getDisplayName(), contact.getJid().asBareJid().toString(), size, false);
}
- this.mXmppConnectionService.getDrawableCache().put(KEY, avatar);
+ if (avatar != null) this.mXmppConnectionService.getDrawableCache().put(KEY, avatar);
return avatar;
}
@@ -1268,7 +1268,10 @@ public class XmppConnectionService extends Service {
@Override
protected int sizeOf(final String key, final Drawable drawable) {
if (drawable instanceof BitmapDrawable) {
- return ((BitmapDrawable) drawable).getBitmap().getByteCount() / 1024;
+ Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
+ if (bitmap == null) return 1024;
+
+ return bitmap.getByteCount() / 1024;
} else {
return drawable.getIntrinsicWidth() * drawable.getIntrinsicHeight() * 40 / 1024;
}