Browse Source

Implemented issue 1090 Signed-off-by: Julius Linus <juliuslinus1@gmail.com>

rapterjet2004 2 years ago
parent
commit
6cdfa88992

+ 6 - 1
app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingTextMessageViewHolder.kt

@@ -40,6 +40,7 @@ import coil.load
 import com.nextcloud.talk.R
 import com.nextcloud.talk.application.NextcloudTalkApplication
 import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
+import com.nextcloud.talk.controllers.ChatController
 import com.nextcloud.talk.databinding.ItemCustomIncomingTextMessageBinding
 import com.nextcloud.talk.extensions.loadBotsAvatar
 import com.nextcloud.talk.extensions.loadChangelogBotAvatar
@@ -73,7 +74,6 @@ class IncomingTextMessageViewHolder(itemView: View, payload: Any) : MessageHolde
     lateinit var dateUtils: DateUtils
 
     lateinit var commonMessageInterface: CommonMessageInterface
-
     override fun onBind(message: ChatMessage) {
         super.onBind(message)
         sharedApplication!!.componentApplication.inject(this)
@@ -198,6 +198,11 @@ class IncomingTextMessageViewHolder(itemView: View, payload: Any) : MessageHolde
                 ContextCompat.getColor(binding.messageQuote.quoteColoredView.context, R.color.high_emphasis_text)
             )
         }
+
+        binding.messageQuote.quotedChatMessageView.setOnClickListener() {
+            val chatController = commonMessageInterface as ChatController
+            chatController.jumpToQuotedMessage(parentChatMessage)
+        }
     }
 
     private fun showAvatarOnChatMessage(message: ChatMessage) {

+ 10 - 0
app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt

@@ -3487,6 +3487,16 @@ class ChatController(args: Bundle) :
         )
     }
 
+    fun jumpToQuotedMessage(parentMessage: ChatMessage) {
+        for(position in 0 until(adapter!!.items.size)) {
+            val currentItem = adapter?.items?.get(position)?.item
+            if( currentItem is ChatMessage && currentItem.id == parentMessage.id) {
+                layoutManager!!.scrollToPosition(position)
+                break
+            }
+        }
+    }
+
     private fun logConversationInfos(methodName: String) {
         Log.d(TAG, " |-----------------------------------------------")
         Log.d(TAG, " | method: $methodName")