From 21c05374325ef1aa4125b1b953f129744e8da690 Mon Sep 17 00:00:00 2001 From: jubb Date: Mon, 5 Jul 2021 16:52:56 +1000 Subject: [PATCH] fix: pass original missing to the quote view to prevent image with no content rendering --- .../securesms/conversation/v2/input_bar/InputBar.kt | 2 +- .../securesms/conversation/v2/messages/QuoteView.kt | 5 +++-- .../conversation/v2/messages/VisibleMessageContentView.kt | 3 ++- .../org/thoughtcrime/securesms/database/MmsDatabase.java | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBar.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBar.kt index cfb1e38726..f10ad10e2b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBar.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBar.kt @@ -122,7 +122,7 @@ class InputBar : RelativeLayout, InputBarEditTextDelegate, QuoteViewDelegate, Li val maxContentWidth = (screenWidth - 2 * resources.getDimension(R.dimen.medium_spacing) - toPx(16, resources) - toPx(30, resources)).roundToInt() val sender = if (message.isOutgoing) TextSecurePreferences.getLocalNumber(context)!! else message.individualRecipient.address.serialize() quoteView.bind(sender, message.body, attachments, - thread, true, maxContentWidth, message.isOpenGroupInvitation, message.threadId, glide) + thread, true, maxContentWidth, message.isOpenGroupInvitation, message.threadId, false, glide) // The 6 DP below is the padding the quote view applies to itself, which isn't included in the // intrinsic height calculation. val quoteViewIntrinsicHeight = quoteView.getIntrinsicHeight(maxContentWidth) + toPx(6, resources) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/QuoteView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/QuoteView.kt index b452a58b02..b03b4be278 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/QuoteView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/QuoteView.kt @@ -110,7 +110,8 @@ class QuoteView : LinearLayout { // region Updating fun bind(authorPublicKey: String, body: String?, attachments: SlideDeck?, thread: Recipient, - isOutgoingMessage: Boolean, maxContentWidth: Int, isOpenGroupInvitation: Boolean, threadID: Long, glide: GlideRequests) { + isOutgoingMessage: Boolean, maxContentWidth: Int, isOpenGroupInvitation: Boolean, threadID: Long, + isOriginalMissing: Boolean, glide: GlideRequests) { val contactDB = DatabaseFactory.getSessionContactDatabase(context) // Reduce the max body text view line count to 2 if this is a group thread because // we'll be showing the author text view and we don't want the overall quote view height @@ -128,7 +129,7 @@ class QuoteView : LinearLayout { quoteViewBodyTextView.text = if (isOpenGroupInvitation) resources.getString(R.string.open_group_invitation_view__open_group_invitation) else MentionUtilities.highlightMentions((body ?: "").toSpannable(), threadID, context); quoteViewBodyTextView.setTextColor(getTextColor(isOutgoingMessage)) // Accent line / attachment preview - val hasAttachments = (attachments != null && attachments.asAttachments().isNotEmpty()) + val hasAttachments = (attachments != null && attachments.asAttachments().isNotEmpty()) && !isOriginalMissing quoteViewAccentLine.isVisible = !hasAttachments quoteViewAttachmentPreviewContainer.isVisible = hasAttachments if (!hasAttachments) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageContentView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageContentView.kt index 258b93a1ef..e2587c9dac 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageContentView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageContentView.kt @@ -92,7 +92,8 @@ class VisibleMessageContentView : LinearLayout { quote.text } quoteView.bind(quote.author.toString(), quoteText, quote.attachment, thread, - message.isOutgoing, maxContentWidth, message.isOpenGroupInvitation, message.threadId, glide) + message.isOutgoing, maxContentWidth, message.isOpenGroupInvitation, message.threadId, + quote.isOriginalMissing, glide) mainContainer.addView(quoteView) val bodyTextView = VisibleMessageContentView.getBodyTextView(context, message, searchQuery) ViewUtil.setPaddingTop(bodyTextView, 0) 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 abae960330..87b59132d4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/MmsDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/MmsDatabase.java @@ -1090,7 +1090,7 @@ public class MmsDatabase extends MessagingDatabase { public int setQuoteMissing(long messageId) { ContentValues contentValues = new ContentValues(); contentValues.put(QUOTE_MISSING, 1); - SQLiteDatabase database = databaseHelper.getReadableDatabase(); + SQLiteDatabase database = databaseHelper.getWritableDatabase(); int rows = database.update(TABLE_NAME, contentValues, ID + " = ?", new String[]{ String.valueOf(messageId) }); return rows; }