feat: Wire drive filter (WPB-20721)#4612
feat: Wire drive filter (WPB-20721)#4612ohassine wants to merge 18 commits intoepic-filter-sort-search-in-shared-drivefrom
Conversation
# Conflicts: # app/src/main/kotlin/com/wire/android/navigation/MainNavHost.kt # app/src/main/kotlin/com/wire/android/navigation/WireMainNavGraph.kt # build-logic/plugins/src/main/kotlin/AndroidCoordinates.kt # core/ui-common/src/main/kotlin/com/wire/android/ui/common/bottomsheet/WireModalSheetState.kt # features/cells/src/main/java/com/wire/android/feature/cells/ui/ConversationFilesScreen.kt # features/cells/src/main/java/com/wire/android/feature/cells/ui/ConversationFilesWithSlideInTransitionScreen.kt
Ups 🫰🟨This PR is too big. Please try to break it up into smaller PRs. |
|
| FilterChip( | ||
| modifier = modifier.wrapContentSize(), | ||
| onClick = { onSelectChip(label) }, | ||
| onClick = { onClick(label) }, |
There was a problem hiding this comment.
Minor comment: "label" must be always passed by the WireFilterChip caller, no need to return it back in onClick(label). Could be just onClick().
| ), | ||
| ).map { pagingData: PagingData<Node> -> | ||
| pagingData.map { node: Node -> | ||
| if (uiState.value.availableOwners.isEmpty()) { |
There was a problem hiding this comment.
I do not understand how this is supposed to work. Why do we launch a new coroutine here (and only if not empty:
- It does not handle duplicates. If there are 10 files from same user it will launch 10 coroutines to get user info
- It stops adding new users if availableUsers already have some values (?). There will be no filters for users from the second page of files.
I think it's worth to re-think approach to this filter logic.
| .collect(state::onQueryChange) | ||
| } | ||
|
|
||
| LaunchedEffect(sheetState) { sheetState.show() } |
There was a problem hiding this comment.
There is already same line above LaunchedEffect(sheetState) { sheetState.show() }
| val showFilterByTags: Boolean = false, | ||
| val showFilterByOwner: Boolean = false, | ||
|
|
||
| val filesWithPublicLink: Boolean = false, |
There was a problem hiding this comment.
Not sure if it is a bug or a feature. My assumption about this flag is that it must support three values:
- null - all files
- true - only files with public link
- false - only files without public link



https://wearezeta.atlassian.net/browse/WPB-20721
PR Submission Checklist for internal contributors
The PR Title
SQPIT-764The PR Description
What's new in this PR?
Description
Implement filter feature in shared drive
screen-20260223-133714-1771850185637.mp4
Needs releases with:
Testing
Test Coverage (Optional)
How to Test
Briefly describe how this change was tested and if applicable the exact steps taken to verify that it works as expected.
Notes (Optional)
Specify here any other facts that you think are important for this issue.
Attachments (Optional)
Attachments like images, videos, etc. (drag and drop in the text box)
PR Post Submission Checklist for internal contributors (Optional)
PR Post Merge Checklist for internal contributors
References
feat(conversation-list): Sort conversations by most emojis in the title #SQPIT-764.