Fix crash when viewing views of a group story.

This commit is contained in:
Alex Hart 2022-10-25 09:46:56 -03:00
parent 6055515be9
commit 09361b2d40

View file

@ -34,20 +34,24 @@ class StoryViewsRepository {
fun getViews(storyId: Long): Observable<List<StoryViewItemData>> { fun getViews(storyId: Long): Observable<List<StoryViewItemData>> {
return Observable.create<List<StoryViewItemData>> { emitter -> return Observable.create<List<StoryViewItemData>> { emitter ->
val record: MessageRecord = SignalDatabase.mms.getMessageRecord(storyId) val record: MessageRecord = SignalDatabase.mms.getMessageRecord(storyId)
val filterIds: Set<RecipientId> = if (record.recipient.isDistributionList) {
val distributionId: DistributionId = SignalDatabase.distributionLists.getDistributionId(record.recipient.requireDistributionListId())!! val distributionId: DistributionId = SignalDatabase.distributionLists.getDistributionId(record.recipient.requireDistributionListId())!!
val recipientIds: Set<RecipientId> = SignalDatabase.storySends.getRecipientsForDistributionId(storyId, distributionId) SignalDatabase.storySends.getRecipientsForDistributionId(storyId, distributionId)
} else {
emptySet()
}
fun refresh() { fun refresh() {
emitter.onNext( emitter.onNext(
SignalDatabase.groupReceipts.getGroupReceiptInfo(storyId).filter { SignalDatabase.groupReceipts.getGroupReceiptInfo(storyId).filter {
it.status == GroupReceiptDatabase.STATUS_VIEWED it.status == GroupReceiptDatabase.STATUS_VIEWED
}.filter {
filterIds.isEmpty() || it.recipientId in filterIds
}.map { }.map {
StoryViewItemData( StoryViewItemData(
recipient = Recipient.resolved(it.recipientId), recipient = Recipient.resolved(it.recipientId),
timeViewedInMillis = it.timestamp timeViewedInMillis = it.timestamp
) )
}.filter {
it.recipient.id in recipientIds
} }
) )
} }