From 72347af967fd397cc6e25d22bdf7167220cd529e Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Thu, 6 Oct 2022 16:17:36 -0300 Subject: [PATCH] Disassociate direct replies when remote-deleting a story. --- .../thoughtcrime/securesms/database/MmsDatabase.java | 12 ++++++++++++ .../thoughtcrime/securesms/database/model/Quote.java | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/MmsDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/MmsDatabase.java index dd6b2b5216..53dede3bd9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/MmsDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/MmsDatabase.java @@ -989,6 +989,17 @@ public class MmsDatabase extends MessageDatabase { } } + private void disassociateStoryQuotes(long storyId) { + ContentValues contentValues = new ContentValues(2); + contentValues.put(QUOTE_MISSING, 1); + contentValues.putNull(QUOTE_BODY); + + getWritableDatabase().update(TABLE_NAME, + contentValues, + PARENT_STORY_ID + " = ?", + SqlUtil.buildArgs(new ParentStoryId.DirectReply(storyId).serialize())); + } + @Override public boolean isGroupQuitMessage(long messageId) { SQLiteDatabase db = databaseHelper.getSignalReadableDatabase(); @@ -1380,6 +1391,7 @@ public class MmsDatabase extends MessageDatabase { SignalDatabase.messageLog().deleteAllRelatedToMessage(messageId, true); SignalDatabase.reactions().deleteReactions(new MessageId(messageId, true)); deleteGroupStoryReplies(messageId); + disassociateStoryQuotes(messageId); threadId = getThreadIdForMessage(messageId); SignalDatabase.threads().update(threadId, false); diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/model/Quote.java b/app/src/main/java/org/thoughtcrime/securesms/database/model/Quote.java index 795af6af5a..de84d5ee89 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/model/Quote.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/model/Quote.java @@ -9,6 +9,7 @@ import org.thoughtcrime.securesms.components.mention.MentionAnnotation; import org.thoughtcrime.securesms.mms.QuoteModel; import org.thoughtcrime.securesms.mms.SlideDeck; import org.thoughtcrime.securesms.recipients.RecipientId; +import org.thoughtcrime.securesms.util.Util; import java.util.List; @@ -37,7 +38,7 @@ public class Quote { this.mentions = mentions; this.quoteType = quoteType; - SpannableString spannable = new SpannableString(text); + SpannableString spannable = new SpannableString(Util.emptyIfNull(text)); MentionAnnotation.setMentionAnnotations(spannable, mentions); this.text = spannable;