From de629adc2a38679151a8059854d8fb6bcc2ff4a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Saleniuk?= <30429749+saleniuk@users.noreply.github.com> Date: Wed, 27 Mar 2024 12:38:00 +0100 Subject: [PATCH] fix: input is hiding when searching and scrolling [WPB-271] (#2826) --- .../com/wire/android/ui/home/HomeScreen.kt | 1 + .../search/SearchPeopleRouter.kt | 1 + .../SearchConversationMessagesScreen.kt | 49 +++++++++---------- 3 files changed, 26 insertions(+), 25 deletions(-) diff --git a/app/src/main/kotlin/com/wire/android/ui/home/HomeScreen.kt b/app/src/main/kotlin/com/wire/android/ui/home/HomeScreen.kt index 71ad167e624..7b416327417 100644 --- a/app/src/main/kotlin/com/wire/android/ui/home/HomeScreen.kt +++ b/app/src/main/kotlin/com/wire/android/ui/home/HomeScreen.kt @@ -281,6 +281,7 @@ fun HomeContent( ) } }, + isSwipeable = !searchBarState.isSearchActive, content = { /** * This "if" is a workaround, otherwise it can crash because of the SubcomposeLayout's nature. diff --git a/app/src/main/kotlin/com/wire/android/ui/home/conversations/search/SearchPeopleRouter.kt b/app/src/main/kotlin/com/wire/android/ui/home/conversations/search/SearchPeopleRouter.kt index 66eba49e479..91dfb94e0de 100644 --- a/app/src/main/kotlin/com/wire/android/ui/home/conversations/search/SearchPeopleRouter.kt +++ b/app/src/main/kotlin/com/wire/android/ui/home/conversations/search/SearchPeopleRouter.kt @@ -146,6 +146,7 @@ fun SearchUsersAndServicesScreen( } } }, + isSwipeable = !searchBarState.isSearchActive, content = { Crossfade( targetState = searchBarState.isSearchActive, label = "" diff --git a/app/src/main/kotlin/com/wire/android/ui/home/conversations/search/messages/SearchConversationMessagesScreen.kt b/app/src/main/kotlin/com/wire/android/ui/home/conversations/search/messages/SearchConversationMessagesScreen.kt index 7847cb4a23e..bbcb84fc324 100644 --- a/app/src/main/kotlin/com/wire/android/ui/home/conversations/search/messages/SearchConversationMessagesScreen.kt +++ b/app/src/main/kotlin/com/wire/android/ui/home/conversations/search/messages/SearchConversationMessagesScreen.kt @@ -17,6 +17,7 @@ */ package com.wire.android.ui.home.conversations.search.messages +import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier @@ -31,8 +32,8 @@ import com.wire.android.navigation.BackStackMode import com.wire.android.navigation.NavigationCommand import com.wire.android.navigation.Navigator import com.wire.android.navigation.style.PopUpNavigationAnimation -import com.wire.android.ui.common.CollapsingTopBarScaffold import com.wire.android.ui.common.dimensions +import com.wire.android.ui.common.scaffold.WireScaffold import com.wire.android.ui.common.topappbar.search.SearchTopBar import com.wire.android.ui.destinations.ConversationScreenDestination import com.wire.android.ui.home.conversations.ConversationNavArgs @@ -50,9 +51,8 @@ fun SearchConversationMessagesScreen( searchConversationMessagesViewModel: SearchConversationMessagesViewModel = hiltViewModel() ) { with(searchConversationMessagesViewModel.searchConversationMessagesState) { - CollapsingTopBarScaffold( - topBarHeader = { }, - topBarCollapsing = { + WireScaffold( + topBar = { SearchTopBar( isSearchActive = true, // we want the search to be always active and back arrow visible on this particular screen searchBarHint = stringResource(id = R.string.label_search_messages), @@ -63,28 +63,27 @@ fun SearchConversationMessagesScreen( isLoading = isLoading ) }, - content = { - SearchConversationMessagesResultContent( - searchQuery = searchQuery.text, - searchResult = searchResult, - onMessageClick = { messageId -> - navigator.navigate( - NavigationCommand( - ConversationScreenDestination( - navArgs = ConversationNavArgs( - conversationId = conversationId, - searchedMessageId = messageId - ) - ), - BackStackMode.UPDATE_EXISTED + content = { internalPadding -> + Column(modifier = Modifier.padding(internalPadding)) { + SearchConversationMessagesResultContent( + searchQuery = searchQuery.text, + searchResult = searchResult, + onMessageClick = { messageId -> + navigator.navigate( + NavigationCommand( + ConversationScreenDestination( + navArgs = ConversationNavArgs( + conversationId = conversationId, + searchedMessageId = messageId + ) + ), + BackStackMode.UPDATE_EXISTED + ) ) - ) - } - ) - }, - bottomBar = { }, - snapOnFling = false, - keepElevationWhenCollapsed = true + } + ) + } + } ) } }