瀏覽代碼

simplify condition complexity

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
Andy Scherzinger 2 年之前
父節點
當前提交
89ec37d24d
共有 1 個文件被更改,包括 11 次插入8 次删除
  1. 11 8
      app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.kt

+ 11 - 8
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<Conversation>(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)