Skip to content

Commit dd3f63c

Browse files
committed
fix: show all personal spaces in filter on multi-personal (Kiteworks) accounts
Signed-off-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
1 parent 8ea48e9 commit dd3f63c

1 file changed

Lines changed: 12 additions & 9 deletions

File tree

‎owncloudApp/src/main/java/com/owncloud/android/presentation/spaces/SpacesListFragment.kt‎

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -181,15 +181,7 @@ class SpacesListFragment :
181181
collectLatestLifecycleFlow(spacesListViewModel.spacesList) { uiState ->
182182
var spacesToListFiltered: List<OCSpace>
183183
if (uiState.searchFilter != "") {
184-
spacesToListFiltered =
185-
uiState.spaces.filter { it.name.lowercase().contains(uiState.searchFilter.lowercase()) && !it.isPersonal &&
186-
shouldShowDisabledSpace(it) }
187-
val personalSpace = uiState.spaces.find { it.isPersonal }
188-
personalSpace?.let {
189-
spacesToListFiltered = spacesToListFiltered.toMutableList().apply {
190-
add(0, personalSpace)
191-
}
192-
}
184+
spacesToListFiltered = uiState.spaces.filterSpaces(uiState.searchFilter, isMultiPersonal)
193185
showOrHideEmptyView(spacesToListFiltered)
194186
spacesListAdapter.setData(spacesToListFiltered, isMultiPersonal)
195187
} else {
@@ -484,6 +476,17 @@ class SpacesListFragment :
484476
binding.fileOptionsBottomSheetLayout.addView(fileOptionItemView)
485477
}
486478

479+
private fun List<OCSpace>.filterSpaces(query: String, multiPersonal: Boolean): List<OCSpace> {
480+
val queryLowercase = query.lowercase()
481+
val spacesMatchingName = filter { it.name.lowercase().contains(queryLowercase) }
482+
val matchingSpaces = spacesMatchingName.filter {
483+
(multiPersonal || !it.isPersonal) && shouldShowDisabledSpace(it)
484+
}
485+
if (multiPersonal) return matchingSpaces
486+
val personalSpace = find { it.isPersonal } ?: return matchingSpaces
487+
return listOf(personalSpace) + matchingSpaces
488+
}
489+
487490
private fun shouldShowDisabledSpace(space: OCSpace): Boolean = !space.isDisabled || spacesListViewModel.showDisabledSpaces
488491

489492
private fun isPickerMode(): Boolean = requireArguments().getBoolean(BUNDLE_IS_PICKER_MODE, false)

0 commit comments

Comments
 (0)