From c26f54161db39a47a71057d0c139957eea9fa883 Mon Sep 17 00:00:00 2001 From: Clark Date: Mon, 22 May 2023 11:51:00 -0400 Subject: [PATCH] Use original message id for edit message history. --- .../securesms/conversation/ConversationFragment.java | 4 ++-- .../conversation/ui/edit/EditMessageHistoryDialog.kt | 10 +++++----- .../ui/edit/EditMessageHistoryViewModel.kt | 4 ++-- .../securesms/conversation/v2/ConversationFragment.kt | 4 ++-- .../thoughtcrime/securesms/database/MessageTable.kt | 2 +- .../messagedetails/MessageDetailsFragment.java | 5 +++-- 6 files changed, 15 insertions(+), 14 deletions(-) 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 c714dbac7c..fa5a94e284 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java @@ -2057,9 +2057,9 @@ public class ConversationFragment extends LoggingFragment implements Multiselect @Override public void onEditedIndicatorClicked(@NonNull MessageRecord messageRecord) { if (messageRecord.isOutgoing()) { - EditMessageHistoryDialog.show(getChildFragmentManager(), messageRecord.getToRecipient().getId(), messageRecord.getId()); + EditMessageHistoryDialog.show(getChildFragmentManager(), messageRecord.getToRecipient().getId(), messageRecord); } else { - EditMessageHistoryDialog.show(getChildFragmentManager(), messageRecord.getFromRecipient().getId(), messageRecord.getId()); + EditMessageHistoryDialog.show(getChildFragmentManager(), messageRecord.getFromRecipient().getId(), messageRecord); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/edit/EditMessageHistoryDialog.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/edit/EditMessageHistoryDialog.kt index a995f97ef6..891df9dafb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/edit/EditMessageHistoryDialog.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/edit/EditMessageHistoryDialog.kt @@ -47,9 +47,9 @@ class EditMessageHistoryDialog : FixedRoundedCornerBottomSheetDialogFragment() { override val peekHeightPercentage: Float = 0.4f private val binding: MessageEditHistoryBottomSheetBinding by ViewBinderDelegate(MessageEditHistoryBottomSheetBinding::bind) - private val messageId: Long by lazy { requireArguments().getLong(ARGUMENT_MESSAGE_ID) } + private val originalMessageId: Long by lazy { requireArguments().getLong(ARGUMENT_ORIGINAL_MESSAGE_ID) } private val conversationRecipient: Recipient by lazy { Recipient.resolved(requireArguments().getParcelable(ARGUMENT_CONVERSATION_RECIPIENT_ID)!!) } - private val viewModel: EditMessageHistoryViewModel by viewModels(factoryProducer = ViewModelFactory.factoryProducer { EditMessageHistoryViewModel(messageId, conversationRecipient) }) + private val viewModel: EditMessageHistoryViewModel by viewModels(factoryProducer = ViewModelFactory.factoryProducer { EditMessageHistoryViewModel(originalMessageId, conversationRecipient) }) private val disposables: LifecycleDisposable = LifecycleDisposable() @@ -147,15 +147,15 @@ class EditMessageHistoryDialog : FixedRoundedCornerBottomSheetDialogFragment() { } companion object { - private const val ARGUMENT_MESSAGE_ID = "message_id" + private const val ARGUMENT_ORIGINAL_MESSAGE_ID = "message_id" private const val ARGUMENT_CONVERSATION_RECIPIENT_ID = "recipient_id" @JvmStatic - fun show(fragmentManager: FragmentManager, threadRecipient: RecipientId, messageId: Long) { + fun show(fragmentManager: FragmentManager, threadRecipient: RecipientId, messageRecord: MessageRecord) { EditMessageHistoryDialog() .apply { arguments = bundleOf( - ARGUMENT_MESSAGE_ID to messageId, + ARGUMENT_ORIGINAL_MESSAGE_ID to (messageRecord.originalMessageId?.id ?: messageRecord.id), ARGUMENT_CONVERSATION_RECIPIENT_ID to threadRecipient ) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/edit/EditMessageHistoryViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/edit/EditMessageHistoryViewModel.kt index 7412cc0e16..878ce34993 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/edit/EditMessageHistoryViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/edit/EditMessageHistoryViewModel.kt @@ -13,12 +13,12 @@ import org.thoughtcrime.securesms.recipients.RecipientId /** * View model to show history of edits for a specific message. */ -class EditMessageHistoryViewModel(private val messageId: Long, private val conversationRecipient: Recipient) : ViewModel() { +class EditMessageHistoryViewModel(private val originalMessageId: Long, private val conversationRecipient: Recipient) : ViewModel() { private val groupAuthorNameColorHelper = GroupAuthorNameColorHelper() fun getEditHistory(): Observable> { return EditMessageHistoryRepository - .getEditHistory(messageId) + .getEditHistory(originalMessageId) .observeOn(AndroidSchedulers.mainThread()) } 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 3cd932f839..c3d6c205a2 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 @@ -1092,9 +1092,9 @@ class ConversationFragment : LoggingFragment(R.layout.v2_conversation_fragment) override fun onEditedIndicatorClicked(messageRecord: MessageRecord) { if (messageRecord.isOutgoing) { - EditMessageHistoryDialog.show(childFragmentManager, messageRecord.toRecipient.id, messageRecord.id) + EditMessageHistoryDialog.show(childFragmentManager, messageRecord.toRecipient.id, messageRecord) } else { - EditMessageHistoryDialog.show(childFragmentManager, messageRecord.fromRecipient.id, messageRecord.id) + EditMessageHistoryDialog.show(childFragmentManager, messageRecord.fromRecipient.id, messageRecord) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt index 4b78a2d5f3..bbd41ca9af 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt @@ -1942,7 +1942,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat fun getMessageEditHistory(id: Long): MmsReader { val cursor = readableDatabase.select(*MMS_PROJECTION) .from(TABLE_NAME) - .where("$TABLE_NAME.$ID = ? OR $TABLE_NAME.$LATEST_REVISION_ID = ?", id, id) + .where("$TABLE_NAME.$ID = ? OR $TABLE_NAME.$ORIGINAL_MESSAGE_ID = ?", id, id) .orderBy("$TABLE_NAME.$DATE_SENT ASC") .run() diff --git a/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageDetailsFragment.java b/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageDetailsFragment.java index 54a90040c4..94f4008bfe 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageDetailsFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageDetailsFragment.java @@ -16,6 +16,7 @@ import org.thoughtcrime.securesms.components.FullScreenDialogFragment; import org.thoughtcrime.securesms.conversation.colors.Colorizer; import org.thoughtcrime.securesms.conversation.colors.RecyclerViewColorizer; import org.thoughtcrime.securesms.conversation.ui.edit.EditMessageHistoryDialog; +import org.thoughtcrime.securesms.database.model.MessageId; import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.giph.mp4.GiphyMp4PlaybackController; import org.thoughtcrime.securesms.giph.mp4.GiphyMp4ProjectionPlayerHolder; @@ -170,9 +171,9 @@ public final class MessageDetailsFragment extends FullScreenDialogFragment imple @Override public void onViewEditHistoryClicked(MessageRecord record) { if (record.isOutgoing()) { - EditMessageHistoryDialog.show(requireParentFragment().getChildFragmentManager(), record.getToRecipient().getId(), record.getId()); + EditMessageHistoryDialog.show(requireParentFragment().getChildFragmentManager(), record.getToRecipient().getId(), record); } else { - EditMessageHistoryDialog.show(requireParentFragment().getChildFragmentManager(), record.getFromRecipient().getId(), record.getId()); + EditMessageHistoryDialog.show(requireParentFragment().getChildFragmentManager(), record.getFromRecipient().getId(), record); } }