Show excluded count in Story privacy settings overview.

This commit is contained in:
Cody Henthorne
2022-11-17 16:22:05 -05:00
parent cdff0a61f2
commit 258951dea8
6 changed files with 16 additions and 7 deletions

View File

@@ -16,7 +16,7 @@ sealed class ContactSearchData(val contactSearchKey: ContactSearchKey) {
*/
data class Story(
val recipient: Recipient,
val viewerCount: Int,
val count: Int,
val privacyMode: DistributionListPrivacyMode
) : ContactSearchData(ContactSearchKey.RecipientSearchKey.Story(recipient.id))

View File

@@ -130,7 +130,7 @@ object ContactSearchItems {
val count = if (model.story.recipient.isGroup) {
model.story.recipient.participantIds.size
} else {
model.story.viewerCount
model.story.count
}
if (model.story.recipient.isMyStory && !model.hasBeenNotified) {
@@ -138,7 +138,13 @@ object ContactSearchItems {
} else {
number.text = when {
model.story.recipient.isGroup -> context.resources.getQuantityString(R.plurals.ContactSearchItems__group_story_d_viewers, count, count)
model.story.recipient.isMyStory -> context.resources.getQuantityString(R.plurals.ContactSearchItems__my_story_s_dot_d_viewers, count, presentPrivacyMode(model.story.privacyMode), count)
model.story.recipient.isMyStory -> {
if (model.story.privacyMode == DistributionListPrivacyMode.ALL_EXCEPT) {
context.resources.getQuantityString(R.plurals.ContactSearchItems__my_story_s_dot_d_excluded, count, presentPrivacyMode(DistributionListPrivacyMode.ALL), count)
} else {
context.resources.getQuantityString(R.plurals.ContactSearchItems__my_story_s_dot_d_viewers, count, presentPrivacyMode(model.story.privacyMode), count)
}
}
else -> context.resources.getQuantityString(R.plurals.ContactSearchItems__custom_story_d_viewers, count, count)
}
}

View File

@@ -451,13 +451,12 @@ class DistributionListDatabase constructor(context: Context?, databaseHelper: Si
val memberCount = when (privacyMode) {
DistributionListPrivacyMode.ALL -> totalContactCount
DistributionListPrivacyMode.ALL_EXCEPT -> totalContactCount - rawMemberCount
DistributionListPrivacyMode.ALL_EXCEPT -> rawMemberCount
DistributionListPrivacyMode.ONLY_WITH -> rawMemberCount
}
return DistributionListPrivacyData(
privacyMode = privacyMode,
rawMemberCount = rawMemberCount,
memberCount = memberCount
)
}

View File

@@ -5,6 +5,5 @@ package org.thoughtcrime.securesms.database.model
*/
data class DistributionListPrivacyData(
val privacyMode: DistributionListPrivacyMode,
val rawMemberCount: Int,
val memberCount: Int
)

View File

@@ -66,7 +66,7 @@ class MyStorySettingsRepository {
return MyStoryPrivacyState(
privacyMode = privacyData.privacyMode,
connectionCount = if (privacyData.privacyMode == DistributionListPrivacyMode.ALL_EXCEPT) privacyData.rawMemberCount else privacyData.memberCount
connectionCount = privacyData.memberCount
)
}
}