Improve styling of ChooseGroupStoryBottomSheet.

This commit is contained in:
Greyson Parrelli
2022-10-05 16:00:48 -04:00
parent 26709177d2
commit 23ba5c874a
13 changed files with 66 additions and 58 deletions

View File

@@ -64,6 +64,7 @@ class ContactSearchConfiguration private constructor(
val includeInactive: Boolean = false,
val returnAsGroupStories: Boolean = false,
val sortOrder: ContactSearchSortOrder = ContactSearchSortOrder.NATURAL,
val shortSummary: Boolean = false,
override val includeHeader: Boolean,
override val expandConfig: ExpandConfig? = null
) : Section(SectionKey.GROUPS)

View File

@@ -23,7 +23,7 @@ sealed class ContactSearchData(val contactSearchKey: ContactSearchKey) {
/**
* A row displaying a known recipient.
*/
data class KnownRecipient(val recipient: Recipient) : ContactSearchData(ContactSearchKey.RecipientSearchKey.KnownRecipient(recipient.id))
data class KnownRecipient(val recipient: Recipient, val shortSummary: Boolean = false) : ContactSearchData(ContactSearchKey.RecipientSearchKey.KnownRecipient(recipient.id))
/**
* A row containing a title for a given section

View File

@@ -73,7 +73,7 @@ object ContactSearchItems {
contactSearchData.filterNotNull().map {
when (it) {
is ContactSearchData.Story -> StoryModel(it, selection.contains(it.contactSearchKey), SignalStore.storyValues().userHasBeenNotifiedAboutStories)
is ContactSearchData.KnownRecipient -> RecipientModel(it, selection.contains(it.contactSearchKey))
is ContactSearchData.KnownRecipient -> RecipientModel(it, selection.contains(it.contactSearchKey), it.shortSummary)
is ContactSearchData.Expand -> ExpandModel(it)
is ContactSearchData.Header -> HeaderModel(it)
is ContactSearchData.TestRow -> error("This row exists for testing only.")
@@ -207,7 +207,7 @@ object ContactSearchItems {
/**
* Recipient model
*/
private class RecipientModel(val knownRecipient: ContactSearchData.KnownRecipient, val isSelected: Boolean) : MappingModel<RecipientModel> {
private class RecipientModel(val knownRecipient: ContactSearchData.KnownRecipient, val isSelected: Boolean, val shortSummary: Boolean) : MappingModel<RecipientModel> {
override fun areItemsTheSame(newItem: RecipientModel): Boolean {
return newItem.knownRecipient == knownRecipient
@@ -230,6 +230,16 @@ object ContactSearchItems {
override fun isSelected(model: RecipientModel): Boolean = model.isSelected
override fun getData(model: RecipientModel): ContactSearchData.KnownRecipient = model.knownRecipient
override fun getRecipient(model: RecipientModel): Recipient = model.knownRecipient.recipient
override fun bindNumberField(model: RecipientModel) {
val recipient = getRecipient(model)
if (model.shortSummary && recipient.isGroup) {
val count = recipient.participantIds.size
number.setText(context.resources.getQuantityString(R.plurals.ContactSearchItems__group_d_members, count, count))
} else {
super.bindNumberField(model)
}
}
}
/**

View File

@@ -219,7 +219,7 @@ class ContactSearchPagedDataSource(
if (section.returnAsGroupStories) {
ContactSearchData.Story(contactSearchPagedDataSourceRepository.getRecipientFromGroupRecord(it), 0, DistributionListPrivacyMode.ALL)
} else {
ContactSearchData.KnownRecipient(contactSearchPagedDataSourceRepository.getRecipientFromGroupRecord(it))
ContactSearchData.KnownRecipient(contactSearchPagedDataSourceRepository.getRecipientFromGroupRecord(it), shortSummary = section.shortSummary)
}
}
)