From cdfc42cc38b37f4d982f7f704b3d9c8d9d32d551 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Mon, 12 Feb 2024 14:59:57 -0500 Subject: [PATCH] Fix possible crash in story replies. --- .../reply/group/StoryGroupReplyRepository.kt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyRepository.kt index e9dbdf3106..29fbf722ca 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyRepository.kt @@ -11,6 +11,7 @@ import org.signal.paging.PagingController import org.thoughtcrime.securesms.conversation.colors.GroupAuthorNameColorHelper import org.thoughtcrime.securesms.conversation.colors.NameColor import org.thoughtcrime.securesms.database.DatabaseObserver +import org.thoughtcrime.securesms.database.NoSuchMessageException import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.MessageId import org.thoughtcrime.securesms.dependencies.ApplicationDependencies @@ -54,8 +55,17 @@ class StoryGroupReplyRepository { fun getNameColorsMap(storyId: Long): Observable> { return Single .fromCallable { - val groupId = SignalDatabase.messages.getMessageRecord(storyId).toRecipient.groupId - GroupAuthorNameColorHelper().getColorMap(groupId.get()) + try { + val messageRecord = SignalDatabase.messages.getMessageRecord(storyId) + val groupId = messageRecord.toRecipient.groupId.or { messageRecord.fromRecipient.groupId } + if (groupId.isPresent) { + GroupAuthorNameColorHelper().getColorMap(groupId.get()) + } else { + emptyMap() + } + } catch (e: NoSuchMessageException) { + emptyMap() + } } .toObservable() }