diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.kt b/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.kt index 84f671a14..3c9098054 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.kt +++ b/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.kt @@ -784,12 +784,7 @@ class ConversationsListController(bundle: Bundle) : for (flexItem in conversationItems) { val conversation: Conversation = (flexItem as ConversationItem).model val position = adapter!!.getGlobalPositionOf(flexItem) - if (( - conversation.unreadMention || - conversation.unreadMessages > 0 && - conversation.type === Conversation.ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL - ) && position > lastVisibleItem - ) { + if (hasUnreadItems(conversation) && position > lastVisibleItem) { nextUnreadConversationScrollPosition = position if (!binding.newMentionPopupBubble.isShown) { binding.newMentionPopupBubble.show() @@ -809,6 +804,11 @@ class ConversationsListController(bundle: Bundle) : } } + private fun hasUnreadItems(conversation: Conversation) = + conversation.unreadMention || + conversation.unreadMessages > 0 && + conversation.type === Conversation.ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL + private fun showNewConversationsScreen() { val bundle = Bundle() bundle.putBoolean(KEY_NEW_CONVERSATION, true) @@ -1203,8 +1203,7 @@ class ConversationsListController(bundle: Bundle) : conversationMenuBundle = bundle if (activity != null && conversationMenuBundle != null && - currentUser != null && - conversationMenuBundle!!.getLong(KEY_INTERNAL_USER_ID) == currentUser!!.id + isInternalUserEqualsCurrentUser(currentUser, conversationMenuBundle) ) { val conversation = Parcels.unwrap(conversationMenuBundle!!.getParcelable(KEY_ROOM)) if (conversation != null) { @@ -1239,6 +1238,10 @@ class ConversationsListController(bundle: Bundle) : } } + private fun isInternalUserEqualsCurrentUser(currentUser: User?, conversationMenuBundle: Bundle?): Boolean { + return currentUser != null && conversationMenuBundle!!.getLong(KEY_INTERNAL_USER_ID) == currentUser.id + } + private fun showUnauthorizedDialog() { if (activity != null) { val dialogBuilder = MaterialAlertDialogBuilder(binding.floatingActionButton.context)