diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java index 1f002d1d17..83b6990993 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java @@ -1570,9 +1570,7 @@ public class ConversationFragment extends LoggingFragment implements Multiselect return; } - if (messageRecord.isSecure() && - !messageRecord.isRemoteDelete() && - !messageRecord.isUpdate() && + if (MessageRecordUtil.isValidReactionTarget(messageRecord) && !recipient.get().isBlocked() && !messageRequestViewModel.shouldShowMessageRequest() && (!recipient.get().isGroup() || recipient.get().isActiveGroup()) && diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt index 3bc229086c..539e45cd91 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt @@ -275,6 +275,7 @@ import org.thoughtcrime.securesms.util.fragments.requireListener import org.thoughtcrime.securesms.util.getRecordQuoteType import org.thoughtcrime.securesms.util.hasAudio import org.thoughtcrime.securesms.util.hasGiftBadge +import org.thoughtcrime.securesms.util.isValidReactionTarget import org.thoughtcrime.securesms.util.viewModel import org.thoughtcrime.securesms.util.views.Stub import org.thoughtcrime.securesms.util.visible @@ -2122,9 +2123,7 @@ class ConversationFragment : return } - if (messageRecord.isSecure && - !messageRecord.isRemoteDelete && - !messageRecord.isUpdate && + if (messageRecord.isValidReactionTarget() && !recipient.isBlocked && !viewModel.hasMessageRequestState && (!recipient.isGroup || recipient.isActiveGroup) && diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/MessageRecordUtil.kt b/app/src/main/java/org/thoughtcrime/securesms/util/MessageRecordUtil.kt index 3428903e71..6802182837 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/MessageRecordUtil.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/MessageRecordUtil.kt @@ -155,3 +155,10 @@ fun MessageRecord.getRecordQuoteType(): QuoteModel.Type { fun MessageRecord.isEditMessage(): Boolean { return this is MediaMmsMessageRecord && isEditMessage } + +/** + * Returns whether or not the given message record can be reacted to. + */ +fun MessageRecord.isValidReactionTarget(): Boolean { + return isSecure && !isPending && !isFailed && !isRemoteDelete && !isUpdate +}