mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-23 20:48:43 +00:00
Utilize receipts instead of messagerecord count for views.
This commit is contained in:
committed by
Greyson Parrelli
parent
58e48fdf14
commit
8df0248d4f
@@ -71,10 +71,10 @@ class MyStoriesFragment : DSLSettingsFragment(
|
||||
DSLSettingsText.from(distributionSet.label)
|
||||
}
|
||||
)
|
||||
distributionSet.stories.forEach { conversationMessage ->
|
||||
distributionSet.stories.forEach { distributionStory ->
|
||||
customPref(
|
||||
MyStoriesItem.Model(
|
||||
distributionStory = conversationMessage,
|
||||
distributionStory = distributionStory,
|
||||
onClick = { it, preview ->
|
||||
openStoryViewer(it, preview, false)
|
||||
},
|
||||
@@ -85,7 +85,7 @@ class MyStoriesFragment : DSLSettingsFragment(
|
||||
onForwardClick = { item ->
|
||||
MultiselectForwardFragmentArgs.create(
|
||||
requireContext(),
|
||||
item.distributionStory.multiselectCollection.toSet()
|
||||
item.distributionStory.message.multiselectCollection.toSet()
|
||||
) {
|
||||
MultiselectForwardFragment.showBottomSheet(childFragmentManager, it)
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.components.menu.ActionItem
|
||||
import org.thoughtcrime.securesms.components.menu.SignalContextMenu
|
||||
import org.thoughtcrime.securesms.components.settings.PreferenceModel
|
||||
import org.thoughtcrime.securesms.conversation.ConversationMessage
|
||||
import org.thoughtcrime.securesms.database.model.MmsMessageRecord
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader
|
||||
@@ -37,7 +36,7 @@ object MyStoriesItem {
|
||||
}
|
||||
|
||||
class Model(
|
||||
val distributionStory: ConversationMessage,
|
||||
val distributionStory: MyStoriesState.DistributionStory,
|
||||
val onClick: (Model, View) -> Unit,
|
||||
val onSaveClick: (Model) -> Unit,
|
||||
val onDeleteClick: (Model) -> Unit,
|
||||
@@ -118,8 +117,8 @@ object MyStoriesItem {
|
||||
if (SignalStore.storyValues().viewedReceiptsEnabled) {
|
||||
viewCount.text = context.resources.getQuantityString(
|
||||
R.plurals.MyStories__d_views,
|
||||
model.distributionStory.messageRecord.viewedReceiptCount,
|
||||
model.distributionStory.messageRecord.viewedReceiptCount
|
||||
model.distributionStory.views,
|
||||
model.distributionStory.views
|
||||
)
|
||||
} else {
|
||||
viewCount.setText(R.string.StoryViewerPageFragment__views_off)
|
||||
|
||||
@@ -5,6 +5,7 @@ import io.reactivex.rxjava3.core.Completable
|
||||
import io.reactivex.rxjava3.core.Observable
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import org.thoughtcrime.securesms.conversation.ConversationMessage
|
||||
import org.thoughtcrime.securesms.database.GroupReceiptTable
|
||||
import org.thoughtcrime.securesms.database.RxDatabaseObserver
|
||||
import org.thoughtcrime.securesms.database.SignalDatabase
|
||||
import org.thoughtcrime.securesms.database.model.MessageRecord
|
||||
@@ -41,8 +42,11 @@ class MyStoriesRepository(context: Context) {
|
||||
private fun createDistributionSet(recipient: Recipient, messageRecords: List<MessageRecord>): MyStoriesState.DistributionSet {
|
||||
return MyStoriesState.DistributionSet(
|
||||
label = recipient.getDisplayName(context),
|
||||
stories = messageRecords.map {
|
||||
ConversationMessage.ConversationMessageFactory.createWithUnresolvedData(context, it, recipient)
|
||||
stories = messageRecords.map { record ->
|
||||
MyStoriesState.DistributionStory(
|
||||
message = ConversationMessage.ConversationMessageFactory.createWithUnresolvedData(context, record, recipient),
|
||||
views = SignalDatabase.groupReceipts.getGroupReceiptInfo(record.id).count { it.status == GroupReceiptTable.STATUS_VIEWED }
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.thoughtcrime.securesms.stories.my
|
||||
|
||||
import org.thoughtcrime.securesms.conversation.ConversationMessage
|
||||
import org.thoughtcrime.securesms.database.model.MessageRecord
|
||||
|
||||
data class MyStoriesState(
|
||||
val distributionSets: List<DistributionSet> = emptyList()
|
||||
@@ -8,6 +9,13 @@ data class MyStoriesState(
|
||||
|
||||
data class DistributionSet(
|
||||
val label: String?,
|
||||
val stories: List<ConversationMessage>
|
||||
val stories: List<DistributionStory>
|
||||
)
|
||||
|
||||
data class DistributionStory(
|
||||
val message: ConversationMessage,
|
||||
val views: Int
|
||||
) {
|
||||
val messageRecord: MessageRecord = message.messageRecord
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user