From 1b01881ff94d117ce2ec03ddfe565f924092eea4 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Tue, 27 Jun 2023 21:25:43 -0500 Subject: [PATCH] Fix NPE --- .../java/eu/siacs/conversations/persistance/FileBackend.java | 5 +++-- .../java/eu/siacs/conversations/services/AvatarService.java | 2 +- .../siacs/conversations/services/XmppConnectionService.java | 5 ++++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/persistance/FileBackend.java b/src/main/java/eu/siacs/conversations/persistance/FileBackend.java index 5cc0b12576a9173e3806f36637a131bde7512ddd..479e16b28a0b71fe3cda9e298347c187a223a108 100644 --- a/src/main/java/eu/siacs/conversations/persistance/FileBackend.java +++ b/src/main/java/eu/siacs/conversations/persistance/FileBackend.java @@ -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); } } diff --git a/src/main/java/eu/siacs/conversations/services/AvatarService.java b/src/main/java/eu/siacs/conversations/services/AvatarService.java index 198285d515ef6df353cc5d366709ce3362d60b55..925e7d893d1f54a3bb2eb9fca95090c155abf759 100644 --- a/src/main/java/eu/siacs/conversations/services/AvatarService.java +++ b/src/main/java/eu/siacs/conversations/services/AvatarService.java @@ -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; } diff --git a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java index f627c23ee35bcb0491fa1526ea942490dd030bc8..4927286d42c0b653b35c32913783c50d0337ce26 100644 --- a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java +++ b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java @@ -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; }