diff --git a/app/src/main/java/com/nextcloud/talk/call/CallParticipantList.java b/app/src/main/java/com/nextcloud/talk/call/CallParticipantList.java index 4a1c7370bf..4b3727aa47 100644 --- a/app/src/main/java/com/nextcloud/talk/call/CallParticipantList.java +++ b/app/src/main/java/com/nextcloud/talk/call/CallParticipantList.java @@ -86,8 +86,8 @@ private void processParticipantList(List participants) { callParticipants.remove(callParticipant.getSessionId()); // No need to copy it, as it will be no longer used. callParticipant.setInCall(Participant.InCallFlags.DISCONNECTED); - left.add(callParticipant); } + left.addAll(knownCallParticipantsNotFound); if (!joined.isEmpty() || !updated.isEmpty() || !left.isEmpty()) { callParticipantListNotifier.notifyChanged(joined, updated, left, unchanged); diff --git a/app/src/main/java/com/nextcloud/talk/presenters/MentionAutocompletePresenter.java b/app/src/main/java/com/nextcloud/talk/presenters/MentionAutocompletePresenter.java index 9ec1f67e39..5d5f206990 100644 --- a/app/src/main/java/com/nextcloud/talk/presenters/MentionAutocompletePresenter.java +++ b/app/src/main/java/com/nextcloud/talk/presenters/MentionAutocompletePresenter.java @@ -126,28 +126,33 @@ public void onSubscribe(@NonNull Disposable d) { @Override public void onNext(@NonNull MentionOverall mentionOverall) { - List mentionsList = mentionOverall.getOcs().getData(); - - if (mentionsList.size() == 0) { - adapter.clear(); - } else { - List internalAbstractFlexibleItemList = - new ArrayList<>(mentionsList.size()); - for (Mention mention : mentionsList) { - internalAbstractFlexibleItemList.add( - new MentionAutocompleteItem( - mention, - currentUser, - context, - roomToken, - viewThemeUtils)); + if (mentionOverall.getOcs() != null) { + List mentionsList = mentionOverall.getOcs().getData(); + + if (mentionsList != null) { + + if (mentionsList.isEmpty()) { + adapter.clear(); + } else { + List internalAbstractFlexibleItemList = + new ArrayList<>(mentionsList.size()); + for (Mention mention : mentionsList) { + internalAbstractFlexibleItemList.add( + new MentionAutocompleteItem( + mention, + currentUser, + context, + roomToken, + viewThemeUtils)); + } + + if (adapter.getItemCount() != 0) { + adapter.clear(); + } + + adapter.updateDataSet(internalAbstractFlexibleItemList); + } } - - if (adapter.getItemCount() != 0) { - adapter.clear(); - } - - adapter.updateDataSet(internalAbstractFlexibleItemList); } } diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/ChooseAccountDialogFragment.java b/app/src/main/java/com/nextcloud/talk/ui/dialog/ChooseAccountDialogFragment.java index 8e53821479..729fa51816 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/dialog/ChooseAccountDialogFragment.java +++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/ChooseAccountDialogFragment.java @@ -109,7 +109,7 @@ public void onViewCreated(@NonNull View view, Bundle savedInstanceState) { themeViews(); setupCurrentUser(user); - setupListeners(user); + setupListeners(); setupAdapter(); prepareViews(); } @@ -220,7 +220,7 @@ private void addAccountToSwitcherList( adapter.updateDataSet(userItems, false); } - private void setupListeners(User user) { + private void setupListeners() { // Creating listeners for quick-actions binding.currentAccount.getRoot().setOnClickListener(v -> dismiss()); @@ -240,7 +240,7 @@ private void setupListeners(User user) { binding.setStatus.setOnClickListener(v -> { dismiss(); - if (status != null) { + if (status != null && getActivity() != null) { SetStatusDialogFragment setStatusDialog = SetStatusDialogFragment.newInstance(status); setStatusDialog.show(getActivity().getSupportFragmentManager(), "fragment_set_status"); } else {