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 86c027248..f68815944 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt +++ b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt @@ -355,6 +355,8 @@ class ChatController(args: Bundle) : conversationUser ) + setupSwipeToReply() + try { setupMentionAutocomplete() checkShowCallButtons() @@ -389,6 +391,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? @@ -610,20 +633,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?