BIT-2131: Display folders when filtering by org in vault (#1170)

This commit is contained in:
Caleb Derosier
2024-03-26 11:21:39 -06:00
committed by Álison Fernandes
parent 9144bae079
commit 25ceaf8c0b
4 changed files with 27 additions and 10 deletions

View File

@@ -672,9 +672,7 @@ class VaultItemListingViewModel @Inject constructor(
itemListingType = currentState
.itemListingType
.updateWithAdditionalDataIfNecessary(
folderList = vaultData
.folderViewList
.toFilteredList(state.vaultFilterType),
folderList = vaultData.folderViewList,
collectionList = vaultData
.collectionViewList
.toFilteredList(state.vaultFilterType),

View File

@@ -209,7 +209,9 @@ fun List<SendView>.toViewState(
)
}
/** * Updates a [VaultItemListingState.ItemListingType] with the given data if necessary. */
/**
* Updates a [VaultItemListingState.ItemListingType] with the given data if necessary.
*/
fun VaultItemListingState.ItemListingType.updateWithAdditionalDataIfNecessary(
folderList: List<FolderView>,
collectionList: List<CollectionView>,

View File

@@ -46,7 +46,12 @@ fun VaultData.toViewState(
val filteredCipherViewList = filteredCipherViewListWithDeletedItems
.filter { it.deletedDate == null }
val filteredFolderViewList = folderViewList.toFilteredList(vaultFilterType).getFilteredFolders()
val filteredFolderViewList = folderViewList
.toFilteredList(
cipherList = filteredCipherViewList,
vaultFilterType = vaultFilterType,
)
.getFilteredFolders()
val filteredCollectionViewList = collectionViewList
.toFilteredList(vaultFilterType)
@@ -257,17 +262,20 @@ fun List<CipherView>.toFilteredList(
*/
@JvmName("toFilteredFolderList")
fun List<FolderView>.toFilteredList(
cipherList: List<CipherView>,
vaultFilterType: VaultFilterType,
): List<FolderView> =
this
.filter {
.filter { folder ->
when (vaultFilterType) {
// Folders are only included when including the user's personal data.
VaultFilterType.AllVaults,
VaultFilterType.MyVault,
-> true
is VaultFilterType.OrganizationVault -> false
// Only include folders containing an item associated with this organization.
is VaultFilterType.OrganizationVault -> {
cipherList.any { it.folderId == folder.id }
}
}
}