From 5d545d6913dbd2fc002152641808526189139a72 Mon Sep 17 00:00:00 2001 From: Andy Scherzinger Date: Thu, 11 Aug 2022 15:19:48 +0200 Subject: [PATCH] make sure to set swipe-to-reply after the room info has been loaded Resolves #2287 Signed-off-by: Andy Scherzinger --- .../talk/controllers/ChatController.kt | 38 ++++++++++++------- 1 file changed, 24 insertions(+), 14 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 e868911c4..cd8740a80 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt +++ b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt @@ -364,6 +364,8 @@ class ChatController(args: Bundle) : conversationUser ) + setupSwipeToReply() + try { setupMentionAutocomplete() checkShowCallButtons() @@ -398,6 +400,27 @@ class ChatController(args: Bundle) : } } + private fun setupSwipeToReply() { + if (hasChatPermission && !isReadOnlyConversation()) { + val messageSwipeController = MessageSwipeCallback( + activity!!, + object : MessageSwipeActions { + override fun showReplyUI(position: Int) { + val chatMessage = adapter?.items?.get(position)?.item as ChatMessage? + replyToMessage(chatMessage) + } + } + ) + + val itemTouchHelper = ItemTouchHelper(messageSwipeController) + try { + itemTouchHelper.attachToRecyclerView(binding.messagesListView) + } catch (npe: NullPointerException) { + Log.i(TAG, "UI already teared down", npe) + } + } + } + private fun handleFromNotification() { var apiVersion = 1 // FIXME Can this be called for guests? @@ -619,20 +642,7 @@ class ChatController(args: Bundle) : } } - if (context != null && hasChatPermission && !isReadOnlyConversation()) { - val messageSwipeController = MessageSwipeCallback( - activity!!, - object : MessageSwipeActions { - override fun showReplyUI(position: Int) { - val chatMessage = adapter?.items?.get(position)?.item as ChatMessage? - replyToMessage(chatMessage) - } - } - ) - - val itemTouchHelper = ItemTouchHelper(messageSwipeController) - itemTouchHelper.attachToRecyclerView(binding.messagesListView) - } + setupSwipeToReply() layoutManager = binding.messagesListView.layoutManager as LinearLayoutManager?