From 09361b2d4040df0d4340a606c6647962a756df8d Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Tue, 25 Oct 2022 09:46:56 -0300 Subject: [PATCH] Fix crash when viewing views of a group story. --- .../stories/viewer/views/StoryViewsRepository.kt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/views/StoryViewsRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/views/StoryViewsRepository.kt index d0c373ed51..05898c1b8d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/views/StoryViewsRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/views/StoryViewsRepository.kt @@ -34,20 +34,24 @@ class StoryViewsRepository { fun getViews(storyId: Long): Observable> { return Observable.create> { emitter -> val record: MessageRecord = SignalDatabase.mms.getMessageRecord(storyId) - val distributionId: DistributionId = SignalDatabase.distributionLists.getDistributionId(record.recipient.requireDistributionListId())!! - val recipientIds: Set = SignalDatabase.storySends.getRecipientsForDistributionId(storyId, distributionId) + val filterIds: Set = if (record.recipient.isDistributionList) { + val distributionId: DistributionId = SignalDatabase.distributionLists.getDistributionId(record.recipient.requireDistributionListId())!! + SignalDatabase.storySends.getRecipientsForDistributionId(storyId, distributionId) + } else { + emptySet() + } fun refresh() { emitter.onNext( SignalDatabase.groupReceipts.getGroupReceiptInfo(storyId).filter { it.status == GroupReceiptDatabase.STATUS_VIEWED + }.filter { + filterIds.isEmpty() || it.recipientId in filterIds }.map { StoryViewItemData( recipient = Recipient.resolved(it.recipientId), timeViewedInMillis = it.timestamp ) - }.filter { - it.recipient.id in recipientIds } ) }