mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-22 01:40:07 +01:00
Disable "Edited" click listener for outgoing messages.
This commit is contained in:
@@ -1730,7 +1730,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo
|
||||
if (MessageRecordUtil.isEditMessage(current)) {
|
||||
activeFooter.getDateView().setOnClickListener(v -> {
|
||||
if (eventListener != null) {
|
||||
eventListener.onEditedIndicatorClicked(current);
|
||||
eventListener.onEditedIndicatorClicked(conversationMessage);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
|
||||
@@ -273,7 +273,7 @@ class ScheduledMessagesBottomSheet : FixedRoundedCornerBottomSheetDialogFragment
|
||||
override fun onViewGiftBadgeClicked(messageRecord: MessageRecord) = Unit
|
||||
override fun onActivatePaymentsClicked() = Unit
|
||||
override fun onSendPaymentClicked(recipientId: RecipientId) = Unit
|
||||
override fun onEditedIndicatorClicked(messageRecord: MessageRecord) = Unit
|
||||
override fun onEditedIndicatorClicked(conversationMessage: ConversationMessage) = Unit
|
||||
override fun onShowSafetyTips(forGroup: Boolean) = Unit
|
||||
override fun onReportSpamLearnMoreClicked() = Unit
|
||||
override fun onMessageRequestAcceptOptionsClicked() = Unit
|
||||
|
||||
@@ -21,6 +21,7 @@ import org.thoughtcrime.securesms.conversation.ConversationAdapter
|
||||
import org.thoughtcrime.securesms.conversation.ConversationAdapterBridge
|
||||
import org.thoughtcrime.securesms.conversation.ConversationBottomSheetCallback
|
||||
import org.thoughtcrime.securesms.conversation.ConversationItemDisplayMode
|
||||
import org.thoughtcrime.securesms.conversation.ConversationMessage
|
||||
import org.thoughtcrime.securesms.conversation.colors.Colorizer
|
||||
import org.thoughtcrime.securesms.conversation.colors.RecyclerViewColorizer
|
||||
import org.thoughtcrime.securesms.conversation.mutiselect.MultiselectPart
|
||||
@@ -253,9 +254,9 @@ class MessageQuotesBottomSheet : FixedRoundedCornerBottomSheetDialogFragment() {
|
||||
getAdapterListener().onSendPaymentClicked(recipientId)
|
||||
}
|
||||
|
||||
override fun onEditedIndicatorClicked(messageRecord: MessageRecord) {
|
||||
override fun onEditedIndicatorClicked(conversationMessage: ConversationMessage) {
|
||||
dismiss()
|
||||
getAdapterListener().onEditedIndicatorClicked(messageRecord)
|
||||
getAdapterListener().onEditedIndicatorClicked(conversationMessage)
|
||||
}
|
||||
|
||||
override fun onShowSafetyTips(forGroup: Boolean) = Unit
|
||||
|
||||
@@ -164,7 +164,7 @@ class EditMessageHistoryDialog : FixedRoundedCornerBottomSheetDialogFragment() {
|
||||
override fun onViewGiftBadgeClicked(messageRecord: MessageRecord) = Unit
|
||||
override fun onActivatePaymentsClicked() = Unit
|
||||
override fun onSendPaymentClicked(recipientId: RecipientId) = Unit
|
||||
override fun onEditedIndicatorClicked(messageRecord: MessageRecord) = Unit
|
||||
override fun onEditedIndicatorClicked(conversationMessage: ConversationMessage) = Unit
|
||||
override fun onShowSafetyTips(forGroup: Boolean) = Unit
|
||||
override fun onReportSpamLearnMoreClicked() = Unit
|
||||
override fun onMessageRequestAcceptOptionsClicked() = Unit
|
||||
|
||||
@@ -294,6 +294,7 @@ import org.thoughtcrime.securesms.util.DateUtils
|
||||
import org.thoughtcrime.securesms.util.Debouncer
|
||||
import org.thoughtcrime.securesms.util.DeleteDialog
|
||||
import org.thoughtcrime.securesms.util.Dialogs
|
||||
import org.thoughtcrime.securesms.util.DoubleClickDebouncer
|
||||
import org.thoughtcrime.securesms.util.DrawableUtil
|
||||
import org.thoughtcrime.securesms.util.FeatureFlags
|
||||
import org.thoughtcrime.securesms.util.FullscreenHelper
|
||||
@@ -469,6 +470,7 @@ class ConversationFragment :
|
||||
private val conversationTooltips = ConversationTooltips(this)
|
||||
private val colorizer = Colorizer()
|
||||
private val textDraftSaveDebouncer = Debouncer(500)
|
||||
private val doubleTapToEditDebouncer = DoubleClickDebouncer(200)
|
||||
private val recentEmojis: RecentEmojiPageModel by lazy { RecentEmojiPageModel(AppDependencies.application, TextSecurePreferences.RECENT_STORAGE_KEY) }
|
||||
|
||||
private lateinit var layoutManager: ConversationLayoutManager
|
||||
@@ -2783,16 +2785,20 @@ class ConversationFragment :
|
||||
|
||||
override fun onItemDoubleClick(item: MultiselectPart) {
|
||||
Log.d(TAG, "onItemDoubleClick")
|
||||
if (!isValidEditMessageSend(item.getMessageRecord(), System.currentTimeMillis())) {
|
||||
onDoubleTapToEdit(item.conversationMessage)
|
||||
}
|
||||
|
||||
private fun onDoubleTapToEdit(conversationMessage: ConversationMessage) {
|
||||
if (!isValidEditMessageSend(conversationMessage.getMessageRecord(), System.currentTimeMillis())) {
|
||||
return
|
||||
}
|
||||
|
||||
if (SignalStore.uiHints().hasSeenDoubleTapEditEducationSheet) {
|
||||
onDoubleTapEditEducationSheetNext(item.conversationMessage)
|
||||
onDoubleTapEditEducationSheetNext(conversationMessage)
|
||||
return
|
||||
}
|
||||
|
||||
DoubleTapEditEducationSheet(item).show(childFragmentManager, DoubleTapEditEducationSheet.KEY)
|
||||
DoubleTapEditEducationSheet(conversationMessage).show(childFragmentManager, DoubleTapEditEducationSheet.KEY)
|
||||
}
|
||||
|
||||
override fun onMessageWithErrorClicked(messageRecord: MessageRecord) {
|
||||
@@ -3003,9 +3009,12 @@ class ConversationFragment :
|
||||
requireActivity().startActivity(MediaIntentFactory.create(requireActivity(), args), options.toBundle())
|
||||
}
|
||||
|
||||
override fun onEditedIndicatorClicked(messageRecord: MessageRecord) {
|
||||
if (messageRecord.isOutgoing) {
|
||||
EditMessageHistoryDialog.show(childFragmentManager, messageRecord.toRecipient.id, messageRecord)
|
||||
override fun onEditedIndicatorClicked(conversationMessage: ConversationMessage) {
|
||||
val messageRecord = conversationMessage.messageRecord
|
||||
if (conversationMessage.messageRecord.isOutgoing) {
|
||||
if (!doubleTapToEditDebouncer.onClick { EditMessageHistoryDialog.show(childFragmentManager, messageRecord.toRecipient.id, messageRecord) }) {
|
||||
onDoubleTapToEdit(conversationMessage)
|
||||
}
|
||||
} else {
|
||||
EditMessageHistoryDialog.show(childFragmentManager, messageRecord.fromRecipient.id, messageRecord)
|
||||
}
|
||||
|
||||
@@ -9,14 +9,13 @@ import com.google.android.material.button.MaterialButton
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.components.FixedRoundedCornerBottomSheetDialogFragment
|
||||
import org.thoughtcrime.securesms.conversation.ConversationMessage
|
||||
import org.thoughtcrime.securesms.conversation.mutiselect.MultiselectPart
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.util.fragments.requireListener
|
||||
|
||||
/**
|
||||
* Shows an education sheet to users explaining how double tapping a sent message within 24hrs will allow them to edit it
|
||||
*/
|
||||
class DoubleTapEditEducationSheet(private val item: MultiselectPart) : FixedRoundedCornerBottomSheetDialogFragment() {
|
||||
class DoubleTapEditEducationSheet(private val conversationMessage: ConversationMessage) : FixedRoundedCornerBottomSheetDialogFragment() {
|
||||
|
||||
companion object {
|
||||
const val KEY = "DOUBLE_TAP_EDIT_EDU"
|
||||
@@ -32,14 +31,14 @@ class DoubleTapEditEducationSheet(private val item: MultiselectPart) : FixedRoun
|
||||
SignalStore.uiHints().hasSeenDoubleTapEditEducationSheet = true
|
||||
|
||||
view.findViewById<MaterialButton>(R.id.got_it).setOnClickListener {
|
||||
requireListener<Callback>().onDoubleTapEditEducationSheetNext(item.conversationMessage)
|
||||
requireListener<Callback>().onDoubleTapEditEducationSheetNext(conversationMessage)
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCancel(dialog: DialogInterface) {
|
||||
super.onCancel(dialog)
|
||||
requireListener<Callback>().onDoubleTapEditEducationSheetNext(item.conversationMessage)
|
||||
requireListener<Callback>().onDoubleTapEditEducationSheetNext(conversationMessage)
|
||||
}
|
||||
|
||||
interface Callback {
|
||||
|
||||
@@ -677,7 +677,7 @@ open class V2ConversationItemTextOnlyViewHolder<Model : MappingModel<Model>>(
|
||||
}
|
||||
|
||||
binding.footerDate.setOnClickListener {
|
||||
conversationContext.clickListener.onEditedIndicatorClicked(record)
|
||||
conversationContext.clickListener.onEditedIndicatorClicked(conversationMessage)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user