浏览代码

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 <dev@mhibbe.de>
Marcel Hibbe 2 年之前
父节点
当前提交
8b7465dae3
共有 1 个文件被更改,包括 20 次插入18 次删除
  1. 20 18
      app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java

+ 20 - 18
app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java

@@ -269,13 +269,13 @@ public class DisplayUtils {
             lastStartIndex = end;
             lastStartIndex = end;
 
 
             Drawable drawableForChip = DisplayUtils.getDrawableForMentionChipSpan(context,
             Drawable drawableForChip = DisplayUtils.getDrawableForMentionChipSpan(context,
-                                                       id,
-                                                       label,
-                                                       conversationUser,
-                                                       type,
-                                                       chipXmlRes,
-                                                       null,
-                                                       viewThemeUtils);
+                                                                                  id,
+                                                                                  label,
+                                                                                  conversationUser,
+                                                                                  type,
+                                                                                  chipXmlRes,
+                                                                                  null,
+                                                                                  viewThemeUtils);
 
 
             mentionChipSpan = new Spans.MentionChipSpan(drawableForChip,
             mentionChipSpan = new Spans.MentionChipSpan(drawableForChip,
                                                         BetterImageSpan.ALIGN_CENTER,
                                                         BetterImageSpan.ALIGN_CENTER,
@@ -453,18 +453,20 @@ public class DisplayUtils {
     }
     }
 
 
     public static void loadAvatarImage(User user, ImageView avatarImageView, boolean deleteCache) {
     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 {
             } 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);
+                }
             }
             }
         }
         }
     }
     }