From 3ad446c6c9882c9d8d17829a000194781ecbca3d Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Tue, 2 Jun 2026 14:06:59 +0000 Subject: [PATCH] Render legacy encryption error messages. --- .../conversationlist/ConversationListItem.java | 4 ---- .../securesms/database/MessageTypes.java | 18 +++++------------- .../database/model/MessageRecord.java | 4 ---- .../database/model/MmsMessageRecord.java | 6 ------ 4 files changed, 5 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListItem.java b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListItem.java index 4e8ed4d5f7..2fe7da05f7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListItem.java @@ -629,12 +629,8 @@ public final class ConversationListItem extends ConstraintLayout implements Bind return emphasisAdded(context, context.getString(R.string.ConversationListItem_key_exchange_message), defaultTint); } else if (MessageTypes.isChatSessionRefresh(thread.getType())) { return emphasisAdded(context, context.getString(R.string.ThreadRecord_chat_session_refreshed), Glyph.REFRESH, defaultTint); - } else if (MessageTypes.isNoRemoteSessionType(thread.getType())) { - return emphasisAdded(context, context.getString(R.string.MessageDisplayHelper_message_encrypted_for_non_existing_session), defaultTint); } else if (MessageTypes.isEndSessionType(thread.getType())) { return emphasisAdded(context, context.getString(R.string.ThreadRecord_secure_session_reset), defaultTint); - } else if (MessageTypes.isLegacyType(thread.getType())) { - return emphasisAdded(context, context.getString(R.string.MessageRecord_message_encrypted_with_a_legacy_protocol_version_that_is_no_longer_supported), defaultTint); } else if (thread.isScheduledMessage()) { return emphasisAdded(context, context.getString(R.string.ThreadRecord_scheduled_message), Glyph.CALENDAR, defaultTint); } else if (MessageTypes.isDraftMessageType(thread.getType())) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/MessageTypes.java b/app/src/main/java/org/thoughtcrime/securesms/database/MessageTypes.java index d2f9c7f489..fe6b6f5fa7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/MessageTypes.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/MessageTypes.java @@ -345,19 +345,11 @@ public interface MessageTypes { } static boolean isChatSessionRefresh(long type) { - return (type & ENCRYPTION_REMOTE_FAILED_BIT) != 0; - } - - static boolean isDuplicateMessageType(long type) { - return (type & ENCRYPTION_REMOTE_DUPLICATE_BIT) != 0; - } - - static boolean isNoRemoteSessionType(long type) { - return (type & ENCRYPTION_REMOTE_NO_SESSION_BIT) != 0; - } - - static boolean isLegacyType(long type) { - return (type & ENCRYPTION_REMOTE_LEGACY_BIT) != 0 || + return (type & ENCRYPTION_REMOTE_FAILED_BIT) != 0 || + // These are legacy encryption error types that we just bundle into this type + (type & ENCRYPTION_REMOTE_NO_SESSION_BIT) != 0 || + (type & ENCRYPTION_REMOTE_DUPLICATE_BIT) != 0 || + (type & ENCRYPTION_REMOTE_LEGACY_BIT) != 0 || (type & ENCRYPTION_REMOTE_BIT) != 0; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/model/MessageRecord.java b/app/src/main/java/org/thoughtcrime/securesms/database/model/MessageRecord.java index 183b28ab77..026bda0d5b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/model/MessageRecord.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/model/MessageRecord.java @@ -180,10 +180,6 @@ public abstract class MessageRecord extends DisplayRecord { return MessageTypes.isSecureType(type); } - public boolean isLegacyMessage() { - return MessageTypes.isLegacyType(type); - } - @Override public boolean isFailed() { return super.isFailed() || isFailedAdminDelete(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/model/MmsMessageRecord.java b/app/src/main/java/org/thoughtcrime/securesms/database/model/MmsMessageRecord.java index cc2d2f878a..821113eea6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/model/MmsMessageRecord.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/model/MmsMessageRecord.java @@ -228,12 +228,6 @@ public class MmsMessageRecord extends MessageRecord { public SpannableString getDisplayBody(@NonNull Context context) { if (MessageTypes.isChatSessionRefresh(type)) { return emphasisAdded(context.getString(R.string.MessageRecord_chat_session_refreshed)); - } else if (MessageTypes.isDuplicateMessageType(type)) { - return emphasisAdded(context.getString(R.string.SmsMessageRecord_duplicate_message)); - } else if (MessageTypes.isNoRemoteSessionType(type)) { - return emphasisAdded(context.getString(R.string.MessageDisplayHelper_message_encrypted_for_non_existing_session)); - } else if (isLegacyMessage()) { - return emphasisAdded(context.getString(R.string.MessageRecord_message_encrypted_with_a_legacy_protocol_version_that_is_no_longer_supported)); } else if (isPaymentNotification() && payment != null) { return new SpannableString(context.getString(R.string.MessageRecord__payment_s, payment.getAmount().toString(FormatterOptions.defaults()))); } else if (isPaymentTombstone() || isPaymentNotification()) {