Fix viewer count in story viewer.

This commit is contained in:
Alex Hart 2023-08-25 11:57:28 -03:00
parent cfc0ace41e
commit 9626f33768

View file

@ -11,6 +11,7 @@ import org.signal.core.util.concurrent.SignalExecutors
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.conversation.ConversationMessage
import org.thoughtcrime.securesms.database.DatabaseObserver
import org.thoughtcrime.securesms.database.GroupReceiptTable
import org.thoughtcrime.securesms.database.NoSuchMessageException
import org.thoughtcrime.securesms.database.SignalDatabase
import org.thoughtcrime.securesms.database.model.MessageId
@ -77,18 +78,19 @@ open class StoryViewerPageRepository(context: Context, private val storyViewStat
return Observable.create { emitter ->
fun refresh(record: MessageRecord) {
val recipient = Recipient.resolved(recipientId)
val viewedCount = SignalDatabase.groupReceipts.getGroupReceiptInfo(record.id).filter { it.status == GroupReceiptTable.STATUS_VIEWED }.size
val story = StoryPost(
id = record.id,
sender = record.fromRecipient,
group = if (recipient.isGroup) recipient else null,
distributionList = if (record.toRecipient.isDistributionList) record.toRecipient else null,
viewCount = record.viewedReceiptCount,
viewCount = viewedCount,
replyCount = SignalDatabase.messages.getNumberOfStoryReplies(record.id),
dateInMilliseconds = record.dateSent,
content = getContent(record as MmsMessageRecord),
conversationMessage = ConversationMessage.ConversationMessageFactory.createWithUnresolvedData(context, record, recipient),
allowsReplies = record.storyType.isStoryWithReplies,
hasSelfViewed = storyViewStateCache.getOrPut(record.id, if (record.isOutgoing) true else record.viewedReceiptCount > 0)
hasSelfViewed = storyViewStateCache.getOrPut(record.id, if (record.isOutgoing) true else viewedCount > 0)
)
emitter.onNext(story)