From 44b6a97c9027d840224e825aa0c73a070a67df11 Mon Sep 17 00:00:00 2001 From: ganfra Date: Fri, 5 Jan 2024 15:54:50 +0100 Subject: [PATCH] Rename isFetchingSearchResults to showSearchLoader --- .../impl/components/SearchUserBar.kt | 4 ++-- .../impl/components/UserListView.kt | 2 +- .../impl/userlist/DefaultUserListPresenter.kt | 12 +++++------ .../createroom/impl/userlist/UserListState.kt | 2 +- .../impl/userlist/UserListStateProvider.kt | 2 +- .../userlist/DefaultUserListPresenterTests.kt | 10 +++++----- .../impl/invite/RoomInviteMembersPresenter.kt | 16 +++++++-------- .../impl/invite/RoomInviteMembersState.kt | 2 +- .../invite/RoomInviteMembersStateProvider.kt | 6 +++--- .../impl/invite/RoomInviteMembersView.kt | 6 +++--- .../invite/RoomInviteMembersPresenterTest.kt | 20 +++++++++---------- .../usersearch/api/UserSearchResult.kt | 2 +- .../usersearch/impl/MatrixUserRepository.kt | 4 ++-- .../impl/MatrixUserRepositoryTest.kt | 12 +++++------ 14 files changed, 50 insertions(+), 50 deletions(-) diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/components/SearchUserBar.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/components/SearchUserBar.kt index a9292e5a24..c047a60018 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/components/SearchUserBar.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/components/SearchUserBar.kt @@ -50,7 +50,7 @@ import kotlinx.collections.immutable.ImmutableList fun SearchUserBar( query: String, state: SearchBarResultState>, - isSearching: Boolean, + showLoader: Boolean, selectedUsers: ImmutableList, active: Boolean, isMultiSelectionEnabled: Boolean, @@ -102,7 +102,7 @@ fun SearchUserBar( } }, contentSuffix = { - if (isSearching) { + if (showLoader) { AsyncLoading() } }, diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/components/UserListView.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/components/UserListView.kt index 8d5a3690db..b13d682250 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/components/UserListView.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/components/UserListView.kt @@ -48,7 +48,7 @@ fun UserListView( state = state.searchResults, selectedUsers = state.selectedUsers, active = state.isSearchActive, - isSearching = state.isFetchingSearchResults, + showLoader = state.showSearchLoader, isMultiSelectionEnabled = state.isMultiSelectionEnabled, showBackButton = showBackButton, onActiveChanged = { state.eventSink(UserListEvents.OnSearchActiveChanged(it)) }, diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/userlist/DefaultUserListPresenter.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/userlist/DefaultUserListPresenter.kt index 2157f0ce80..a843570fe5 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/userlist/DefaultUserListPresenter.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/userlist/DefaultUserListPresenter.kt @@ -61,16 +61,16 @@ class DefaultUserListPresenter @AssistedInject constructor( var searchResults: SearchBarResultState> by remember { mutableStateOf(SearchBarResultState.Initial()) } - var isFetchingSearchResults by remember { mutableStateOf(false) } + var showSearchLoader by remember { mutableStateOf(false) } LaunchedEffect(searchQuery) { searchResults = SearchBarResultState.Initial() - isFetchingSearchResults = false + showSearchLoader = false userRepository.search(searchQuery).onEach { state -> - isFetchingSearchResults = state.isFetchingSearchResults + showSearchLoader = state.isSearching searchResults = when { - state.results.isEmpty() && state.isFetchingSearchResults -> SearchBarResultState.Initial() - state.results.isEmpty() && !state.isFetchingSearchResults -> SearchBarResultState.NoResultsFound() + state.results.isEmpty() && state.isSearching -> SearchBarResultState.Initial() + state.results.isEmpty() && !state.isSearching -> SearchBarResultState.NoResultsFound() else -> SearchBarResultState.Results(state.results.toImmutableList()) } }.launchIn(this) @@ -81,7 +81,7 @@ class DefaultUserListPresenter @AssistedInject constructor( searchResults = searchResults, selectedUsers = selectedUsers.toImmutableList(), isSearchActive = isSearchActive, - isFetchingSearchResults = isFetchingSearchResults, + showSearchLoader = showSearchLoader, selectionMode = args.selectionMode, eventSink = { event -> when (event) { diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/userlist/UserListState.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/userlist/UserListState.kt index 5d59735e46..a27191881e 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/userlist/UserListState.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/userlist/UserListState.kt @@ -24,7 +24,7 @@ import kotlinx.collections.immutable.ImmutableList data class UserListState( val searchQuery: String, val searchResults: SearchBarResultState>, - val isFetchingSearchResults: Boolean, + val showSearchLoader: Boolean, val selectedUsers: ImmutableList, val isSearchActive: Boolean, val selectionMode: SelectionMode, diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/userlist/UserListStateProvider.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/userlist/UserListStateProvider.kt index f50ed6c5ab..4685bb47e3 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/userlist/UserListStateProvider.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/userlist/UserListStateProvider.kt @@ -63,7 +63,7 @@ fun aUserListState() = UserListState( searchResults = SearchBarResultState.Initial(), selectedUsers = persistentListOf(), selectionMode = SelectionMode.Single, - isFetchingSearchResults = false, + showSearchLoader = false, eventSink = {} ) diff --git a/features/createroom/impl/src/test/kotlin/io/element/android/features/createroom/impl/userlist/DefaultUserListPresenterTests.kt b/features/createroom/impl/src/test/kotlin/io/element/android/features/createroom/impl/userlist/DefaultUserListPresenterTests.kt index 3c1e5c44b5..d1c82120b9 100644 --- a/features/createroom/impl/src/test/kotlin/io/element/android/features/createroom/impl/userlist/DefaultUserListPresenterTests.kt +++ b/features/createroom/impl/src/test/kotlin/io/element/android/features/createroom/impl/userlist/DefaultUserListPresenterTests.kt @@ -139,7 +139,7 @@ class DefaultUserListPresenterTests { // When the user repository emits a result, it's copied to the state val result = UserSearchResultState( results = listOf(UserSearchResult(aMatrixUser())), - isFetchingSearchResults = false, + isSearching = false, ) userRepository.emitState(result) awaitItem().also { state -> @@ -148,12 +148,12 @@ class DefaultUserListPresenterTests { persistentListOf(UserSearchResult(aMatrixUser())) ) ) - assertThat(state.isFetchingSearchResults).isFalse() + assertThat(state.showSearchLoader).isFalse() } // When the user repository emits another result, it replaces the previous value val newResult = UserSearchResultState( results = aMatrixUserList().map { UserSearchResult(it) }, - isFetchingSearchResults = false, + isSearching = false, ) userRepository.emitState(newResult) awaitItem().also { state -> @@ -162,7 +162,7 @@ class DefaultUserListPresenterTests { aMatrixUserList().map { UserSearchResult(it) } ) ) - assertThat(state.isFetchingSearchResults).isFalse() + assertThat(state.showSearchLoader).isFalse() } } } @@ -189,7 +189,7 @@ class DefaultUserListPresenterTests { skipItems(2) // When the results list is empty, the state is set to NoResults - userRepository.emitState(UserSearchResultState(results = emptyList(), isFetchingSearchResults = false)) + userRepository.emitState(UserSearchResultState(results = emptyList(), isSearching = false)) assertThat(awaitItem().searchResults).isInstanceOf(SearchBarResultState.NoResultsFound::class.java) } } diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/invite/RoomInviteMembersPresenter.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/invite/RoomInviteMembersPresenter.kt index 0065f1c5e2..f7c4363613 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/invite/RoomInviteMembersPresenter.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/invite/RoomInviteMembersPresenter.kt @@ -55,7 +55,7 @@ class RoomInviteMembersPresenter @Inject constructor( val searchResults = remember { mutableStateOf>>(SearchBarResultState.Initial()) } var searchQuery by rememberSaveable { mutableStateOf("") } var searchActive by rememberSaveable { mutableStateOf(false) } - var isFetchingSearchResults = rememberSaveable { mutableStateOf(false) } + var showSearchLoader = rememberSaveable { mutableStateOf(false) } LaunchedEffect(Unit) { fetchMembers(roomMembers) @@ -65,7 +65,7 @@ class RoomInviteMembersPresenter @Inject constructor( searchResults = searchResults, roomMembers = roomMembers, selectedUsers = selectedUsers, - isFetchingSearchResults = isFetchingSearchResults, + showSearchLoader = showSearchLoader, searchQuery = searchQuery ) } @@ -76,7 +76,7 @@ class RoomInviteMembersPresenter @Inject constructor( searchQuery = searchQuery, isSearchActive = searchActive, searchResults = searchResults.value, - isFetchingSearchResults = isFetchingSearchResults.value, + showSearchLoader = showSearchLoader.value, eventSink = { when (it) { is RoomInviteMembersEvents.OnSearchActiveChanged -> { @@ -126,18 +126,18 @@ class RoomInviteMembersPresenter @Inject constructor( searchResults: MutableState>>, roomMembers: MutableState>>, selectedUsers: MutableState>, - isFetchingSearchResults: MutableState, + showSearchLoader: MutableState, searchQuery: String, ) = withContext(coroutineDispatchers.io) { searchResults.value = SearchBarResultState.Initial() - isFetchingSearchResults.value = false + showSearchLoader.value = false val joinedMembers = roomMembers.value.dataOrNull().orEmpty() userRepository.search(searchQuery).onEach { state -> - isFetchingSearchResults.value = state.isFetchingSearchResults + showSearchLoader.value = state.isSearching searchResults.value = when { - state.results.isEmpty() && state.isFetchingSearchResults -> SearchBarResultState.Initial() - state.results.isEmpty() && !state.isFetchingSearchResults -> SearchBarResultState.NoResultsFound() + state.results.isEmpty() && state.isSearching -> SearchBarResultState.Initial() + state.results.isEmpty() && !state.isSearching -> SearchBarResultState.NoResultsFound() else -> SearchBarResultState.Results(state.results.map { result -> val existingMembership = joinedMembers.firstOrNull { j -> j.userId == result.matrixUser.userId }?.membership val isJoined = existingMembership == RoomMembershipState.JOIN diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/invite/RoomInviteMembersState.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/invite/RoomInviteMembersState.kt index 1fb2dc1e78..84fb1b0986 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/invite/RoomInviteMembersState.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/invite/RoomInviteMembersState.kt @@ -23,7 +23,7 @@ import kotlinx.collections.immutable.ImmutableList data class RoomInviteMembersState( val canInvite: Boolean, val searchQuery: String, - val isFetchingSearchResults: Boolean, + val showSearchLoader: Boolean, val searchResults: SearchBarResultState>, val selectedUsers: ImmutableList, val isSearchActive: Boolean, diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/invite/RoomInviteMembersStateProvider.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/invite/RoomInviteMembersStateProvider.kt index 5e43492a17..ca4e4ac7d2 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/invite/RoomInviteMembersStateProvider.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/invite/RoomInviteMembersStateProvider.kt @@ -73,7 +73,7 @@ internal class RoomInviteMembersStateProvider : PreviewParameterProvider> = SearchBarResultState.Initial(), selectedUsers: ImmutableList = persistentListOf(), isSearchActive: Boolean = false, - isFetchingSearchResults: Boolean = false, + showSearchLoader: Boolean = false, ): RoomInviteMembersState { return RoomInviteMembersState( canInvite = canInvite, @@ -92,7 +92,7 @@ private fun aRoomInviteMembersState( searchResults = searchResults, selectedUsers = selectedUsers, isSearchActive = isSearchActive, - isFetchingSearchResults = isFetchingSearchResults, + showSearchLoader = showSearchLoader, eventSink = {}, ) } diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/invite/RoomInviteMembersView.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/invite/RoomInviteMembersView.kt index 73f6de54a8..e40e624afc 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/invite/RoomInviteMembersView.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/invite/RoomInviteMembersView.kt @@ -87,7 +87,7 @@ fun RoomInviteMembersView( RoomInviteMembersSearchBar( modifier = Modifier.fillMaxWidth(), query = state.searchQuery, - isSearching = state.isFetchingSearchResults, + showLoader = state.showSearchLoader, selectedUsers = state.selectedUsers, state = state.searchResults, active = state.isSearchActive, @@ -141,7 +141,7 @@ private fun RoomInviteMembersTopBar( private fun RoomInviteMembersSearchBar( query: String, state: SearchBarResultState>, - isSearching: Boolean, + showLoader: Boolean, selectedUsers: ImmutableList, active: Boolean, onActiveChanged: (Boolean) -> Unit, @@ -171,7 +171,7 @@ private fun RoomInviteMembersSearchBar( showBackButton = false, resultState = state, contentSuffix = { - if (isSearching) { + if (showLoader) { AsyncLoading() } }, diff --git a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/invite/RoomInviteMembersPresenterTest.kt b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/invite/RoomInviteMembersPresenterTest.kt index fbd34ad408..0d2201342f 100644 --- a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/invite/RoomInviteMembersPresenterTest.kt +++ b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/invite/RoomInviteMembersPresenterTest.kt @@ -110,15 +110,15 @@ internal class RoomInviteMembersPresenterTest { val initialState = awaitItem() initialState.eventSink(RoomInviteMembersEvents.UpdateSearchQuery("some query")) assertThat(repository.providedQuery).isEqualTo("some query") - repository.emitState(UserSearchResultState(results = emptyList(), isFetchingSearchResults = true)) - consumeItemsUntilPredicate { it.isFetchingSearchResults }.last().also { state -> + repository.emitState(UserSearchResultState(results = emptyList(), isSearching = true)) + consumeItemsUntilPredicate { it.showSearchLoader }.last().also { state -> assertThat(state.searchResults).isInstanceOf(SearchBarResultState.Initial::class.java) - assertThat(state.isFetchingSearchResults).isTrue() + assertThat(state.showSearchLoader).isTrue() } - repository.emitState(results = emptyList(), isFetchingSearchResults = false) - consumeItemsUntilPredicate { !it.isFetchingSearchResults }.last().also { state -> + repository.emitState(results = emptyList(), isSearching = false) + consumeItemsUntilPredicate { !it.showSearchLoader }.last().also { state -> assertThat(state.searchResults).isInstanceOf(SearchBarResultState.NoResultsFound::class.java) - assertThat(state.isFetchingSearchResults).isFalse() + assertThat(state.showSearchLoader).isFalse() } } } @@ -387,21 +387,21 @@ internal class RoomInviteMembersPresenterTest { private suspend fun FakeUserRepository.emitStateWithUsers( users: List, - isFetchingSearchResults: Boolean = false + isSearching: Boolean = false ) { emitState( results = users.map { UserSearchResult(it) }, - isFetchingSearchResults = isFetchingSearchResults, + isSearching = isSearching, ) } private suspend fun FakeUserRepository.emitState( results: List, - isFetchingSearchResults: Boolean = false + isSearching: Boolean = false ) { val state = UserSearchResultState( results = results, - isFetchingSearchResults = isFetchingSearchResults + isSearching = isSearching ) emitState(state) } diff --git a/libraries/usersearch/api/src/main/kotlin/io/element/android/libraries/usersearch/api/UserSearchResult.kt b/libraries/usersearch/api/src/main/kotlin/io/element/android/libraries/usersearch/api/UserSearchResult.kt index ebdfb7fedb..2410b58d05 100644 --- a/libraries/usersearch/api/src/main/kotlin/io/element/android/libraries/usersearch/api/UserSearchResult.kt +++ b/libraries/usersearch/api/src/main/kotlin/io/element/android/libraries/usersearch/api/UserSearchResult.kt @@ -25,5 +25,5 @@ data class UserSearchResult( data class UserSearchResultState( val results: List, - val isFetchingSearchResults: Boolean, + val isSearching: Boolean, ) diff --git a/libraries/usersearch/impl/src/main/kotlin/io/element/android/libraries/usersearch/impl/MatrixUserRepository.kt b/libraries/usersearch/impl/src/main/kotlin/io/element/android/libraries/usersearch/impl/MatrixUserRepository.kt index 7ac3ec8380..fa09a5ce9a 100644 --- a/libraries/usersearch/impl/src/main/kotlin/io/element/android/libraries/usersearch/impl/MatrixUserRepository.kt +++ b/libraries/usersearch/impl/src/main/kotlin/io/element/android/libraries/usersearch/impl/MatrixUserRepository.kt @@ -47,7 +47,7 @@ class MatrixUserRepository @Inject constructor( null } if (shouldQueryProfile || shouldFetchSearchResults) { - emit(UserSearchResultState(isFetchingSearchResults = shouldFetchSearchResults, results = listOfNotNull(fakeSearchResult))) + emit(UserSearchResultState(isSearching = shouldFetchSearchResults, results = listOfNotNull(fakeSearchResult))) } if (shouldFetchSearchResults) { val results = fetchSearchResults(query, shouldQueryProfile) @@ -73,7 +73,7 @@ class MatrixUserRepository @Inject constructor( ?: UserSearchResult(MatrixUser(UserId(query)), isUnresolved = true)) } - return UserSearchResultState(results = results, isFetchingSearchResults = false) + return UserSearchResultState(results = results, isSearching = false) } companion object { diff --git a/libraries/usersearch/impl/src/test/kotlin/io/element/android/libraries/usersearch/impl/MatrixUserRepositoryTest.kt b/libraries/usersearch/impl/src/test/kotlin/io/element/android/libraries/usersearch/impl/MatrixUserRepositoryTest.kt index 0ddf58e8aa..e775547efc 100644 --- a/libraries/usersearch/impl/src/test/kotlin/io/element/android/libraries/usersearch/impl/MatrixUserRepositoryTest.kt +++ b/libraries/usersearch/impl/src/test/kotlin/io/element/android/libraries/usersearch/impl/MatrixUserRepositoryTest.kt @@ -55,11 +55,11 @@ internal class MatrixUserRepositoryTest { result.test { awaitItem().also { - assertThat(it.isFetchingSearchResults).isTrue() + assertThat(it.isSearching).isTrue() assertThat(it.results).isEmpty() } awaitItem().also { - assertThat(it.isFetchingSearchResults).isFalse() + assertThat(it.isSearching).isFalse() assertThat(it.results).isEmpty() } awaitComplete() @@ -76,11 +76,11 @@ internal class MatrixUserRepositoryTest { result.test { awaitItem().also { - assertThat(it.isFetchingSearchResults).isTrue() + assertThat(it.isSearching).isTrue() assertThat(it.results).isEmpty() } awaitItem().also { - assertThat(it.isFetchingSearchResults).isFalse() + assertThat(it.isSearching).isFalse() assertThat(it.results).isEqualTo(aMatrixUserList().toUserSearchResults()) } awaitComplete() @@ -96,7 +96,7 @@ internal class MatrixUserRepositoryTest { result.test { awaitItem().also { - assertThat(it.isFetchingSearchResults).isTrue() + assertThat(it.isSearching).isTrue() assertThat(it.results).isEqualTo(listOf(placeholderResult())) } cancelAndConsumeRemainingEvents() @@ -112,7 +112,7 @@ internal class MatrixUserRepositoryTest { result.test { awaitItem().also { - assertThat(it.isFetchingSearchResults).isTrue() + assertThat(it.isSearching).isTrue() assertThat(it.results).isEmpty() } cancelAndConsumeRemainingEvents()