From 47a5816be858acaa3120e442e0632f0852b22657 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Sat, 21 Dec 2024 12:29:32 -0500 Subject: [PATCH] Translate missing recipients into unknown recipients. --- .../org/thoughtcrime/securesms/database/GroupTable.kt | 2 +- .../securesms/recipients/LiveRecipient.java | 11 ++++++++++- .../securesms/recipients/RecipientCreator.kt | 5 ----- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/GroupTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/GroupTable.kt index 1a4b0388c3..be5596e1fe 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/GroupTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/GroupTable.kt @@ -1112,7 +1112,7 @@ class GroupTable(context: Context?, databaseHelper: SignalDatabase?) : DatabaseT recipientId = RecipientId.from(cursor.requireNonNullString(RECIPIENT_ID)), title = cursor.requireString(TITLE), serializedMembers = cursor.requireString(MEMBER_GROUP_CONCAT), - serializedUnmigratedV1Members = cursor.requireString(UNMIGRATED_V1_MEMBERS), + serializedUnmigratedV1Members = null, avatarId = cursor.requireLong(AVATAR_ID), avatarKey = cursor.requireBlob(AVATAR_KEY), avatarContentType = cursor.requireString(AVATAR_CONTENT_TYPE), diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/LiveRecipient.java b/app/src/main/java/org/thoughtcrime/securesms/recipients/LiveRecipient.java index f5b7b61c17..9b02c18364 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/LiveRecipient.java +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/LiveRecipient.java @@ -15,6 +15,7 @@ import org.thoughtcrime.securesms.database.DistributionListTables; import org.thoughtcrime.securesms.database.GroupTable; import org.thoughtcrime.securesms.database.RecipientTable; import org.thoughtcrime.securesms.database.SignalDatabase; +import org.thoughtcrime.securesms.database.model.RecipientRecord; import org.thoughtcrime.securesms.util.livedata.LiveDataUtil; import java.util.Objects; @@ -189,7 +190,15 @@ public final class LiveRecipient { } private @NonNull Recipient fetchAndCacheRecipientFromDisk(@NonNull RecipientId id) { - Recipient recipient = RecipientCreator.forRecord(context, recipientTable.getRecord(id)); + RecipientRecord record; + try { + record = recipientTable.getRecord(id); + } catch (RecipientTable.MissingRecipientException e) { + Log.w(TAG, "Failed to find " + id + "! Returning UNKNOWN."); + return Recipient.UNKNOWN; + } + + Recipient recipient = RecipientCreator.forRecord(context, record); RecipientIdCache.INSTANCE.put(recipient); return recipient; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/RecipientCreator.kt b/app/src/main/java/org/thoughtcrime/securesms/recipients/RecipientCreator.kt index cba6f90ac1..43d7c1d065 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/RecipientCreator.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/RecipientCreator.kt @@ -119,11 +119,6 @@ object RecipientCreator { return recipient } - @JvmStatic - fun forUnknown(): Recipient { - return Recipient.UNKNOWN - } - @JvmStatic fun forUnknownGroup(id: RecipientId, groupId: GroupId?): Recipient { return Recipient(