瀏覽代碼

Fix crashing bugs

Signed-off-by: Mario Danic <mario@lovelyhq.com>
Mario Danic 6 年之前
父節點
當前提交
213c7ea520

+ 20 - 16
app/src/main/java/com/nextcloud/talk/controllers/CallNotificationController.java

@@ -475,23 +475,27 @@ public class CallNotificationController extends BaseController {
 
                 break;
             case ROOM_GROUP_CALL:
-                GlideApp.with(NextcloudTalkApplication.getSharedApplication().getApplicationContext())
-                        .asBitmap()
-                        .diskCacheStrategy(DiskCacheStrategy.NONE)
-                        .load(R.drawable.ic_people_group_white_24px)
-                        .centerInside()
-                        .override(avatarSize, avatarSize)
-                        .apply(RequestOptions.bitmapTransform(new CircleCrop()))
-                        .into(avatarImageView);
+                if (avatarImageView != null) {
+                    GlideApp.with(NextcloudTalkApplication.getSharedApplication().getApplicationContext())
+                            .asBitmap()
+                            .diskCacheStrategy(DiskCacheStrategy.NONE)
+                            .load(R.drawable.ic_people_group_white_24px)
+                            .centerInside()
+                            .override(avatarSize, avatarSize)
+                            .apply(RequestOptions.bitmapTransform(new CircleCrop()))
+                            .into(avatarImageView);
+                }
             case ROOM_PUBLIC_CALL:
-                GlideApp.with(NextcloudTalkApplication.getSharedApplication().getApplicationContext())
-                        .asBitmap()
-                        .diskCacheStrategy(DiskCacheStrategy.NONE)
-                        .load(R.drawable.ic_link_white_24px)
-                        .centerInside()
-                        .override(avatarSize, avatarSize)
-                        .apply(RequestOptions.bitmapTransform(new CircleCrop()))
-                        .into(avatarImageView);
+                if (avatarImageView != null) {
+                    GlideApp.with(NextcloudTalkApplication.getSharedApplication().getApplicationContext())
+                            .asBitmap()
+                            .diskCacheStrategy(DiskCacheStrategy.NONE)
+                            .load(R.drawable.ic_link_white_24px)
+                            .centerInside()
+                            .override(avatarSize, avatarSize)
+                            .apply(RequestOptions.bitmapTransform(new CircleCrop()))
+                            .into(avatarImageView);
+                }
                 break;
             default:
         }

+ 26 - 25
app/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.java

@@ -333,31 +333,32 @@ public class ConversationInfoController extends BaseController {
     }
 
     private void loadConversationAvatar() {
-
-        switch (conversation.getType()) {
-            case ROOM_TYPE_ONE_TO_ONE_CALL:
-                if (!TextUtils.isEmpty(conversation.getName())) {
-                    DraweeController draweeController = Fresco.newDraweeControllerBuilder()
-                    .setOldController(conversationAvatarImageView.getController())
-                    .setAutoPlayAnimations(true)
-                    .setImageRequest(DisplayUtils.getImageRequestForUrl(ApiUtils.getUrlForAvatarWithName(conversationUser.getBaseUrl(),
-                            conversation.getName(), R.dimen.avatar_size_big)))
-                    .build();
-                    conversationAvatarImageView.setController(draweeController);
-                }
-                break;
-            case ROOM_GROUP_CALL:
-                conversationAvatarImageView.getHierarchy().setPlaceholderImage(DisplayUtils
-                        .getRoundedBitmapDrawableFromVectorDrawableResource(getResources(),
-                                R.drawable.ic_people_group_white_24px));
-                break;
-            case ROOM_PUBLIC_CALL:
-                conversationAvatarImageView.getHierarchy().setPlaceholderImage(DisplayUtils
-                        .getRoundedBitmapDrawableFromVectorDrawableResource(getResources(),
-                                R.drawable.ic_link_white_24px));
-                break;
-            default:
-                break;
+        if (conversationAvatarImageView != null) {
+            switch (conversation.getType()) {
+                case ROOM_TYPE_ONE_TO_ONE_CALL:
+                    if (!TextUtils.isEmpty(conversation.getName())) {
+                        DraweeController draweeController = Fresco.newDraweeControllerBuilder()
+                                .setOldController(conversationAvatarImageView.getController())
+                                .setAutoPlayAnimations(true)
+                                .setImageRequest(DisplayUtils.getImageRequestForUrl(ApiUtils.getUrlForAvatarWithName(conversationUser.getBaseUrl(),
+                                        conversation.getName(), R.dimen.avatar_size_big)))
+                                .build();
+                        conversationAvatarImageView.setController(draweeController);
+                    }
+                    break;
+                case ROOM_GROUP_CALL:
+                    conversationAvatarImageView.getHierarchy().setPlaceholderImage(DisplayUtils
+                            .getRoundedBitmapDrawableFromVectorDrawableResource(getResources(),
+                                    R.drawable.ic_people_group_white_24px));
+                    break;
+                case ROOM_PUBLIC_CALL:
+                    conversationAvatarImageView.getHierarchy().setPlaceholderImage(DisplayUtils
+                            .getRoundedBitmapDrawableFromVectorDrawableResource(getResources(),
+                                    R.drawable.ic_link_white_24px));
+                    break;
+                default:
+                    break;
+            }
         }
     }
 }

+ 20 - 18
app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java

@@ -190,24 +190,26 @@ public class ConversationsListController extends BaseController implements Searc
         if (getActivity() != null) {
             int avatarSize = (int) DisplayUtils.convertDpToPixel(menuItem.getIcon().getIntrinsicHeight(), getActivity());
 
-            GlideUrl glideUrl = new GlideUrl(ApiUtils.getUrlForAvatarWithNameAndPixels(currentUser.getBaseUrl(),
-                    currentUser.getUserId(), avatarSize), new LazyHeaders.Builder()
-                    .setHeader("Accept", "image/*")
-                    .setHeader("User-Agent", ApiUtils.getUserAgent())
-                    .build());
-
-            GlideApp.with(getActivity())
-                    .asBitmap()
-                    .centerInside()
-                    .override(avatarSize, avatarSize)
-                    .apply(RequestOptions.bitmapTransform(new CircleCrop()))
-                    .load(glideUrl)
-                    .into(new SimpleTarget<Bitmap>() {
-                        @Override
-                        public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
-                            menuItem.setIcon(new BitmapDrawable(resource));
-                        }
-                    });
+            if (currentUser != null) {
+                GlideUrl glideUrl = new GlideUrl(ApiUtils.getUrlForAvatarWithNameAndPixels(currentUser.getBaseUrl(),
+                        currentUser.getUserId(), avatarSize), new LazyHeaders.Builder()
+                        .setHeader("Accept", "image/*")
+                        .setHeader("User-Agent", ApiUtils.getUserAgent())
+                        .build());
+
+                GlideApp.with(getActivity())
+                        .asBitmap()
+                        .centerInside()
+                        .override(avatarSize, avatarSize)
+                        .apply(RequestOptions.bitmapTransform(new CircleCrop()))
+                        .load(glideUrl)
+                        .into(new SimpleTarget<Bitmap>() {
+                            @Override
+                            public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
+                                menuItem.setIcon(new BitmapDrawable(resource));
+                            }
+                        });
+            }
         }
     }
 

+ 1 - 1
app/src/main/java/com/nextcloud/talk/controllers/WebViewLoginController.java

@@ -208,7 +208,7 @@ public class WebViewLoginController extends BaseController {
                     basePageLoaded = true;
                 }
 
-                if (!TextUtils.isEmpty(username)) {
+                if (!TextUtils.isEmpty(username) && webView != null) {
                     if (loginStep == 1) {
                         webView.loadUrl("javascript: {document.getElementsByClassName('login')[0].click(); };");
                     } else if (!automatedLoginAttempted) {