From 0c06c8b2eb953a783841b1c3e31730b3d6b55e7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Kr=C3=BCger?= Date: Wed, 7 Sep 2022 12:31:03 +0200 Subject: [PATCH] Rename and reduce complexity of function 'processMessages' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tim Krüger --- .../talk/controllers/ChatController.kt | 70 +++++++++++-------- 1 file changed, 39 insertions(+), 31 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt index 5f2046c99..ddc8c5460 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt +++ b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt @@ -2206,7 +2206,7 @@ class ChatController(args: Bundle) : } else if (response.code() == HTTP_CODE_PRECONDITION_FAILED) { futurePreconditionFailed = true } else { - processMessages(response, true) + processMessagesResponse(response, true) } } catch (npe: NullPointerException) { // view binding can be null @@ -2248,7 +2248,7 @@ class ChatController(args: Bundle) : if (response.code() == HTTP_CODE_PRECONDITION_FAILED) { pastPreconditionFailed = true } else { - processMessages(response, false) + processMessagesResponse(response, false) } } catch (e: NullPointerException) { // view binding can be null @@ -2293,7 +2293,7 @@ class ChatController(args: Bundle) : } } - private fun processMessages(response: Response<*>, isFromTheFuture: Boolean) { + private fun processMessagesResponse(response: Response<*>, isFromTheFuture: Boolean) { val xChatLastCommonRead = response.headers()["X-Chat-Last-Common-Read"]?.let { Integer.parseInt(it) @@ -2305,34 +2305,7 @@ class ChatController(args: Bundle) : val chatOverall = response.body() as ChatOverall? val chatMessageList = handleSystemMessages(chatOverall?.ocs!!.data!!) - if (chatMessageList.isNotEmpty() && - ChatMessage.SystemMessageType.CLEARED_CHAT == chatMessageList[0].systemMessageType - ) { - adapter?.clear() - adapter?.notifyDataSetChanged() - } - - if (isFirstMessagesProcessing) { - cancelNotificationsForCurrentConversation() - - isFirstMessagesProcessing = false - binding.progressBar.visibility = View.GONE - - binding.messagesListView.visibility = View.VISIBLE - } - - if (isFromTheFuture) { - processMessagesFromTheFuture(chatMessageList) - } else { - processMessagesNotFromTheFuture(chatMessageList) - } - - updateReadStatusOfAllMessages(xChatLastCommonRead) - adapter?.notifyDataSetChanged() - - if (inConversation) { - pullChatMessages(1, 1, xChatLastCommonRead) - } + processMessages(chatMessageList, isFromTheFuture, xChatLastCommonRead) } else if (response.code() == HTTP_CODE_NOT_MODIFIED && !isFromTheFuture) { if (isFirstMessagesProcessing) { cancelNotificationsForCurrentConversation() @@ -2349,6 +2322,41 @@ class ChatController(args: Bundle) : } } + private fun processMessages( + chatMessageList: List, + isFromTheFuture: Boolean, + xChatLastCommonRead: Int? + ) { + if (chatMessageList.isNotEmpty() && + ChatMessage.SystemMessageType.CLEARED_CHAT == chatMessageList[0].systemMessageType + ) { + adapter?.clear() + adapter?.notifyDataSetChanged() + } + + if (isFirstMessagesProcessing) { + cancelNotificationsForCurrentConversation() + + isFirstMessagesProcessing = false + binding.progressBar.visibility = View.GONE + + binding.messagesListView.visibility = View.VISIBLE + } + + if (isFromTheFuture) { + processMessagesFromTheFuture(chatMessageList) + } else { + processMessagesNotFromTheFuture(chatMessageList) + } + + updateReadStatusOfAllMessages(xChatLastCommonRead) + adapter?.notifyDataSetChanged() + + if (inConversation) { + pullChatMessages(1, 1, xChatLastCommonRead) + } + } + private fun updateReadStatusOfAllMessages(xChatLastCommonRead: Int?) { for (message in adapter!!.items) { xChatLastCommonRead?.let {