Fix crash when viewing views of a group story.

main
Alex Hart 2022-10-25 09:46:56 -03:00
rodzic 6055515be9
commit 09361b2d40
1 zmienionych plików z 8 dodań i 4 usunięć

Wyświetl plik

@ -34,20 +34,24 @@ class StoryViewsRepository {
fun getViews(storyId: Long): Observable<List<StoryViewItemData>> {
return Observable.create<List<StoryViewItemData>> { emitter ->
val record: MessageRecord = SignalDatabase.mms.getMessageRecord(storyId)
val distributionId: DistributionId = SignalDatabase.distributionLists.getDistributionId(record.recipient.requireDistributionListId())!!
val recipientIds: Set<RecipientId> = SignalDatabase.storySends.getRecipientsForDistributionId(storyId, distributionId)
val filterIds: Set<RecipientId> = 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
}
)
}