mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-22 12:08:34 +00:00
Fix viewer count in story viewer.
This commit is contained in:
@@ -11,6 +11,7 @@ import org.signal.core.util.concurrent.SignalExecutors
|
|||||||
import org.signal.core.util.logging.Log
|
import org.signal.core.util.logging.Log
|
||||||
import org.thoughtcrime.securesms.conversation.ConversationMessage
|
import org.thoughtcrime.securesms.conversation.ConversationMessage
|
||||||
import org.thoughtcrime.securesms.database.DatabaseObserver
|
import org.thoughtcrime.securesms.database.DatabaseObserver
|
||||||
|
import org.thoughtcrime.securesms.database.GroupReceiptTable
|
||||||
import org.thoughtcrime.securesms.database.NoSuchMessageException
|
import org.thoughtcrime.securesms.database.NoSuchMessageException
|
||||||
import org.thoughtcrime.securesms.database.SignalDatabase
|
import org.thoughtcrime.securesms.database.SignalDatabase
|
||||||
import org.thoughtcrime.securesms.database.model.MessageId
|
import org.thoughtcrime.securesms.database.model.MessageId
|
||||||
@@ -77,18 +78,19 @@ open class StoryViewerPageRepository(context: Context, private val storyViewStat
|
|||||||
return Observable.create { emitter ->
|
return Observable.create { emitter ->
|
||||||
fun refresh(record: MessageRecord) {
|
fun refresh(record: MessageRecord) {
|
||||||
val recipient = Recipient.resolved(recipientId)
|
val recipient = Recipient.resolved(recipientId)
|
||||||
|
val viewedCount = SignalDatabase.groupReceipts.getGroupReceiptInfo(record.id).filter { it.status == GroupReceiptTable.STATUS_VIEWED }.size
|
||||||
val story = StoryPost(
|
val story = StoryPost(
|
||||||
id = record.id,
|
id = record.id,
|
||||||
sender = record.fromRecipient,
|
sender = record.fromRecipient,
|
||||||
group = if (recipient.isGroup) recipient else null,
|
group = if (recipient.isGroup) recipient else null,
|
||||||
distributionList = if (record.toRecipient.isDistributionList) record.toRecipient else null,
|
distributionList = if (record.toRecipient.isDistributionList) record.toRecipient else null,
|
||||||
viewCount = record.viewedReceiptCount,
|
viewCount = viewedCount,
|
||||||
replyCount = SignalDatabase.messages.getNumberOfStoryReplies(record.id),
|
replyCount = SignalDatabase.messages.getNumberOfStoryReplies(record.id),
|
||||||
dateInMilliseconds = record.dateSent,
|
dateInMilliseconds = record.dateSent,
|
||||||
content = getContent(record as MmsMessageRecord),
|
content = getContent(record as MmsMessageRecord),
|
||||||
conversationMessage = ConversationMessage.ConversationMessageFactory.createWithUnresolvedData(context, record, recipient),
|
conversationMessage = ConversationMessage.ConversationMessageFactory.createWithUnresolvedData(context, record, recipient),
|
||||||
allowsReplies = record.storyType.isStoryWithReplies,
|
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)
|
emitter.onNext(story)
|
||||||
|
|||||||
Reference in New Issue
Block a user