diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingLocationMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingLocationMessageViewHolder.kt index 74f7e5a38..bc52a56f3 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingLocationMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingLocationMessageViewHolder.kt @@ -102,11 +102,14 @@ class IncomingLocationMessageViewHolder(incomingView: View, payload: Any) : Mess // geo-location setLocationDataOnMessageItem(message) - Reaction().showReactions(message, binding.reactions, context!!, false) - + Reaction().showReactions(message, binding.reactions, context!!, true) binding.reactions.reactionsEmojiWrapper.setOnClickListener { reactionsInterface.onClickReactions(message) } + binding.reactions.reactionsEmojiWrapper.setOnLongClickListener { l: View? -> + reactionsInterface.onLongClickReactions(message) + true + } } private fun setAvatarAndAuthorOnMessageItem(message: ChatMessage) { diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingVoiceMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingVoiceMessageViewHolder.kt index 7f359c140..94a730f1f 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingVoiceMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingVoiceMessageViewHolder.kt @@ -142,11 +142,14 @@ class IncomingVoiceMessageViewHolder(incomingView: View, payload: Any) : Message } }) - Reaction().showReactions(message, binding.reactions, context!!, false) - + Reaction().showReactions(message, binding.reactions, context!!, true) binding.reactions.reactionsEmojiWrapper.setOnClickListener { reactionsInterface.onClickReactions(message) } + binding.reactions.reactionsEmojiWrapper.setOnLongClickListener { l: View? -> + reactionsInterface.onLongClickReactions(message) + true + } } private fun updateDownloadState(message: ChatMessage) { diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.kt index 26bc5e890..dda71a30e 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.kt @@ -122,11 +122,14 @@ class MagicIncomingTextMessageViewHolder(itemView: View, payload: Any) : Message itemView.setTag(MessageSwipeCallback.REPLYABLE_VIEW_TAG, message.isReplyable) - Reaction().showReactions(message, binding.reactions, context!!, false) - + Reaction().showReactions(message, binding.reactions, context!!, true) binding.reactions.reactionsEmojiWrapper.setOnClickListener { reactionsInterface.onClickReactions(message) } + binding.reactions.reactionsEmojiWrapper.setOnLongClickListener { l: View? -> + reactionsInterface.onLongClickReactions(message) + true + } } private fun processAuthor(message: ChatMessage) { diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.kt index 9f18bd04f..83bb89d1f 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.kt @@ -122,10 +122,13 @@ class MagicOutcomingTextMessageViewHolder(itemView: View) : OutcomingTextMessage itemView.setTag(MessageSwipeCallback.REPLYABLE_VIEW_TAG, message.isReplyable) Reaction().showReactions(message, binding.reactions, context!!, true) - binding.reactions.reactionsEmojiWrapper.setOnClickListener { reactionsInterface.onClickReactions(message) } + binding.reactions.reactionsEmojiWrapper.setOnLongClickListener { l: View? -> + reactionsInterface.onLongClickReactions(message) + true + } } private fun processParentMessage(message: ChatMessage) { diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicPreviewMessageViewHolder.java b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicPreviewMessageViewHolder.java index 88c090f4e..c4095bb17 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicPreviewMessageViewHolder.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicPreviewMessageViewHolder.java @@ -260,10 +260,13 @@ public abstract class MagicPreviewMessageViewHolder extends MessageHolders.Incom reactionsBinding = getReactionsBinding(); new Reaction().showReactions(message, reactionsBinding, context, false); - reactionsBinding.reactionsEmojiWrapper.setOnClickListener(l -> { reactionsInterface.onClickReactions(message); }); + reactionsBinding.reactionsEmojiWrapper.setOnLongClickListener(l -> { + reactionsInterface.onLongClickReactions(message); + return true; + }); } private Drawable getDrawableFromContactDetails(Context context, String base64) { diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingLocationMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingLocationMessageViewHolder.kt index e3b393cee..74515caa6 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingLocationMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingLocationMessageViewHolder.kt @@ -115,10 +115,13 @@ class OutcomingLocationMessageViewHolder(incomingView: View) : MessageHolders setLocationDataOnMessageItem(message) Reaction().showReactions(message, binding.reactions, context!!, true) - binding.reactions.reactionsEmojiWrapper.setOnClickListener { reactionsInterface.onClickReactions(message) } + binding.reactions.reactionsEmojiWrapper.setOnLongClickListener { l: View? -> + reactionsInterface.onLongClickReactions(message) + true + } } @SuppressLint("SetJavaScriptEnabled", "ClickableViewAccessibility") diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingVoiceMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingVoiceMessageViewHolder.kt index 41a739827..2eb294bf6 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingVoiceMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingVoiceMessageViewHolder.kt @@ -132,10 +132,13 @@ class OutcomingVoiceMessageViewHolder(outcomingView: View) : MessageHolders binding.checkMark.setContentDescription(readStatusContentDescriptionString) Reaction().showReactions(message, binding.reactions, context!!, true) - binding.reactions.reactionsEmojiWrapper.setOnClickListener { reactionsInterface.onClickReactions(message) } + binding.reactions.reactionsEmojiWrapper.setOnLongClickListener { l: View? -> + reactionsInterface.onLongClickReactions(message) + true + } } private fun handleResetVoiceMessageState(message: ChatMessage) { diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/PreviewMessageInterface.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/PreviewMessageInterface.kt index 995ceecc2..a7cfafb04 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/PreviewMessageInterface.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/PreviewMessageInterface.kt @@ -4,4 +4,4 @@ import com.nextcloud.talk.models.json.chat.ChatMessage interface PreviewMessageInterface { fun onPreviewMessageLongClick(chatMessage: ChatMessage) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/Reaction.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/Reaction.kt index 5c1c11753..c0ab6ed06 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/Reaction.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/Reaction.kt @@ -73,7 +73,6 @@ class Reaction { reactionAmount.layoutParams = params binding.reactionsEmojiWrapper.addView(reactionAmount) - remainingEmojisToDisplay-- if (remainingEmojisToDisplay == 0 && showInfoAboutMoreEmojis) { val infoAboutMoreEmojis = TextView(context) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/ReactionsInterface.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/ReactionsInterface.kt index d6e9c47e9..589c6e363 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/ReactionsInterface.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/ReactionsInterface.kt @@ -4,4 +4,5 @@ import com.nextcloud.talk.models.json.chat.ChatMessage interface ReactionsInterface { fun onClickReactions(chatMessage: ChatMessage) + fun onLongClickReactions(chatMessage: ChatMessage) } 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 2462ed2d5..ecf38632c 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt +++ b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt @@ -924,18 +924,6 @@ class ChatController(args: Bundle) : } } - override fun onClickReactions(chatMessage: ChatMessage) { - activity?.let { - ShowReactionsDialog( - activity!!, - currentConversation, - chatMessage, - conversationUser, - ncApi!! - ).show() - } - } - @SuppressLint("LongLogTag") private fun downloadFileToCache(message: ChatMessage) { message.isDownloadingVoiceMessage = true @@ -2432,6 +2420,22 @@ class ChatController(args: Bundle) : } } + override fun onClickReactions(chatMessage: ChatMessage) { + activity?.let { + ShowReactionsDialog( + activity!!, + currentConversation, + chatMessage, + conversationUser, + ncApi!! + ).show() + } + } + + override fun onLongClickReactions(chatMessage: ChatMessage) { + openMessageActionsDialog(chatMessage) + } + override fun onMessageViewLongClick(view: View?, message: IMessage?) { openMessageActionsDialog(message) }