From 8b7465dae350e7812a70d12ca529a3c8ec6792c6 Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Thu, 23 Mar 2023 12:10:56 +0100 Subject: [PATCH] Avoid NPE in loadAvatarImage Exception java.lang.NullPointerException: at com.nextcloud.talk.extensions.ImageViewExtensionsKt.replaceAvatar at com.nextcloud.talk.utils.DisplayUtils.loadAvatarImage (DisplayUtils.java:465) at com.nextcloud.talk.controllers.ProfileController$uploadAvatar$1.onNext (ProfileController.kt:645) at com.nextcloud.talk.controllers.ProfileController$uploadAvatar$1.onNext (ProfileController.kt:639) at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal (ObservableObserveOn.java:201) at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run (ObservableObserveOn.java:255) at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run (HandlerScheduler.java:124) at android.os.Handler.handleCallback (Handler.java:938) at android.os.Handler.dispatchMessage (Handler.java:99) at android.os.Looper.loopOnce (Looper.java:226) at android.os.Looper.loop (Looper.java:313) at android.app.ActivityThread.main (ActivityThread.java:8751) at java.lang.reflect.Method.invoke at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:571) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1135) Signed-off-by: Marcel Hibbe --- .../nextcloud/talk/utils/DisplayUtils.java | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java b/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java index 1343130f6..82dc31009 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java +++ b/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java @@ -269,13 +269,13 @@ public class DisplayUtils { lastStartIndex = end; Drawable drawableForChip = DisplayUtils.getDrawableForMentionChipSpan(context, - id, - label, - conversationUser, - type, - chipXmlRes, - null, - viewThemeUtils); + id, + label, + conversationUser, + type, + chipXmlRes, + null, + viewThemeUtils); mentionChipSpan = new Spans.MentionChipSpan(drawableForChip, BetterImageSpan.ALIGN_CENTER, @@ -453,18 +453,20 @@ public class DisplayUtils { } public static void loadAvatarImage(User user, ImageView avatarImageView, boolean deleteCache) { - String avatarId; - if (!TextUtils.isEmpty(user.getUserId())) { - avatarId = user.getUserId(); - } else { - avatarId = user.getUsername(); - } - - if (avatarId != null) { - if (deleteCache) { - ImageViewExtensionsKt.replaceAvatar(avatarImageView, user, avatarId, true); + if (user != null && avatarImageView != null) { + String avatarId; + if (!TextUtils.isEmpty(user.getUserId())) { + avatarId = user.getUserId(); } else { - ImageViewExtensionsKt.loadAvatar(avatarImageView, user, avatarId, true); + avatarId = user.getUsername(); + } + + if (avatarId != null) { + if (deleteCache) { + ImageViewExtensionsKt.replaceAvatar(avatarImageView, user, avatarId, true); + } else { + ImageViewExtensionsKt.loadAvatar(avatarImageView, user, avatarId, true); + } } } }