From 67aa54cf53e8af6685fbdd8a6766054020557a82 Mon Sep 17 00:00:00 2001 From: Andy Scherzinger Date: Wed, 13 May 2026 10:16:21 +0200 Subject: [PATCH] style(convo-list): visually indicate ongoing search AI-assistant: Claude Code v2.1.140 (Claude Sonnet 4.6) Signed-off-by: Andy Scherzinger --- .../conversationlist/ui/ConversationListTopBar.kt | 15 +++++++++++++-- .../ui/ConversationsListScreen.kt | 3 ++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/conversationlist/ui/ConversationListTopBar.kt b/app/src/main/java/com/nextcloud/talk/conversationlist/ui/ConversationListTopBar.kt index 159a3664c9..caf0439379 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationlist/ui/ConversationListTopBar.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationlist/ui/ConversationListTopBar.kt @@ -44,6 +44,7 @@ import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.IconButton +import androidx.compose.material3.LinearProgressIndicator import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.material3.Text @@ -90,7 +91,8 @@ data class ConversationListTopBarState( val avatarUrl: String?, val credentials: String, val showFilterActive: Boolean, - val showThreadsButton: Boolean + val showThreadsButton: Boolean, + val isSearchLoading: Boolean = false ) @Suppress("LongParameterList") @@ -133,6 +135,7 @@ fun ConversationListTopBar( ) is TopBarMode.SearchActive -> TopBarSearchActiveContent( query = mode.query, + isLoading = state.isSearchLoading, onQueryChange = actions.onSearchQueryChange, onSearchClose = actions.onSearchClose, focusRequester = focusRequester @@ -256,6 +259,7 @@ private fun IdleSearchBarActions( @Composable private fun TopBarSearchActiveContent( query: String, + isLoading: Boolean, onQueryChange: (String) -> Unit, onSearchClose: () -> Unit, focusRequester: FocusRequester @@ -301,7 +305,14 @@ private fun TopBarSearchActiveContent( ), windowInsets = WindowInsets(0) ) - HorizontalDivider() + if (isLoading) { + LinearProgressIndicator( + modifier = Modifier.fillMaxWidth(), + color = MaterialTheme.colorScheme.primary + ) + } else { + HorizontalDivider() + } } LaunchedEffect(Unit) { focusRequester.requestFocus() } } diff --git a/app/src/main/java/com/nextcloud/talk/conversationlist/ui/ConversationsListScreen.kt b/app/src/main/java/com/nextcloud/talk/conversationlist/ui/ConversationsListScreen.kt index 04f6455645..4cf1320847 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationlist/ui/ConversationsListScreen.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationlist/ui/ConversationsListScreen.kt @@ -224,7 +224,8 @@ fun ConversationsListScreen( avatarUrl = avatarUrl, credentials = state.credentials, showFilterActive = showFilterActive, - showThreadsButton = showThreadsButton + showThreadsButton = showThreadsButton, + isSearchLoading = isSearchLoading ), actions = ConversationListTopBarActions( onSearchQueryChange = { viewModel.setSearchQuery(it) },