Skip to content

Commit 6245692

Browse files
style(search): Ensure initial selection on search, make backgroudn selection highlighting edge2edge
AI-assistant: Claude Code v2.1.138 (Claude Sonnet 4.6) Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
1 parent 9c02bf8 commit 6245692

3 files changed

Lines changed: 14 additions & 11 deletions

File tree

app/src/main/java/com/nextcloud/talk/chat/viewmodels/ChatViewModel.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -584,6 +584,9 @@ class ChatViewModel @AssistedInject constructor(
584584
error = false
585585
)
586586
}
587+
if (navigableResults.isNotEmpty()) {
588+
jumpToSearchSelection()
589+
}
587590
} catch (_: CancellationException) {
588591
// Ignore cancellation; request was superseded by a newer one.
589592
} catch (@Suppress("Detekt.TooGenericExceptionCaught") throwable: Throwable) {

app/src/main/java/com/nextcloud/talk/ui/chat/ChatMessageView.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import androidx.compose.foundation.background
1414
import androidx.compose.foundation.combinedClickable
1515
import androidx.compose.foundation.interaction.MutableInteractionSource
1616
import androidx.compose.foundation.layout.Box
17+
import androidx.compose.foundation.layout.fillMaxWidth
18+
import androidx.compose.foundation.layout.padding
1719
import androidx.compose.material3.MaterialTheme
1820
import androidx.compose.material3.ripple
1921
import androidx.compose.runtime.Composable
@@ -23,6 +25,7 @@ import androidx.compose.runtime.mutableStateOf
2325
import androidx.compose.runtime.remember
2426
import androidx.compose.runtime.saveable.rememberSaveable
2527
import androidx.compose.ui.Modifier
28+
import androidx.compose.ui.unit.dp
2629
import com.nextcloud.talk.R
2730
import com.nextcloud.talk.chat.ui.model.ChatMessageUi
2831
import com.nextcloud.talk.chat.ui.model.MessageTypeContent
@@ -110,6 +113,7 @@ fun ChatMessageView(
110113
) {
111114
Box(
112115
modifier = Modifier
116+
.fillMaxWidth()
113117
.combinedClickable(
114118
interactionSource = interactionSource,
115119
indication = ripple(),
@@ -124,6 +128,7 @@ fun ChatMessageView(
124128
onLongClick = { callbacks.onLongClick?.invoke(message.id) }
125129
)
126130
) {
131+
Box(modifier = Modifier.padding(horizontal = 12.dp)) {
127132
when (val content = message.content) {
128133
MessageTypeContent.RegularText -> {
129134
TextMessage(
@@ -201,7 +206,8 @@ fun ChatMessageView(
201206
Log.d("ChatView", "Unknown message type: ${'$'}content")
202207
}
203208
}
204-
val useContainerHighlight = highlightSearchTerm.isNullOrBlank()
209+
}
210+
val useContainerHighlight = highlightSearchTerm.isNullOrBlank() || isSelected
205211
if (isSelected && useContainerHighlight) {
206212
Box(
207213
modifier = Modifier

app/src/main/java/com/nextcloud/talk/ui/chat/ChatView.kt

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,6 @@ fun ChatView(
326326
verticalArrangement = Arrangement.spacedBy(2.dp),
327327
contentPadding = PaddingValues(bottom = 20.dp),
328328
modifier = Modifier
329-
.padding(start = 12.dp, end = 12.dp)
330329
.fillMaxSize()
331330
) {
332331
items(
@@ -346,12 +345,7 @@ fun ChatView(
346345
?.takeIf { it.messageId == chatItem.uiMessage.id }
347346
?.nonce,
348347
isSelected = state.highlightedMessageId == chatItem.uiMessage.id,
349-
highlightSearchTerm =
350-
if (state.highlightedMessageId == chatItem.uiMessage.id) {
351-
state.highlightedSearchTerm
352-
} else {
353-
null
354-
},
348+
highlightSearchTerm = state.highlightedSearchTerm,
355349
context = ChatMessageContext(
356350
isOneToOneConversation = state.isOneToOneConversation,
357351
conversationThreadId = state.conversationThreadId,
@@ -376,19 +370,19 @@ fun ChatView(
376370
}
377371

378372
is ChatViewModel.ChatItem.DateHeaderItem -> {
379-
Box(modifier = Modifier.padding(top = 6.dp)) {
373+
Box(modifier = Modifier.padding(top = 6.dp, start = 12.dp, end = 12.dp)) {
380374
DateHeader(chatItem.date)
381375
}
382376
}
383377

384378
is ChatViewModel.ChatItem.UnreadMessagesMarkerItem -> {
385-
Box(modifier = Modifier.padding(top = 6.dp)) {
379+
Box(modifier = Modifier.padding(top = 6.dp, start = 12.dp, end = 12.dp)) {
386380
UnreadMessagesMarker()
387381
}
388382
}
389383

390384
is ChatViewModel.ChatItem.LoadGapItem -> {
391-
Box(modifier = Modifier.padding(top = 6.dp)) {
385+
Box(modifier = Modifier.padding(top = 6.dp, start = 12.dp, end = 12.dp)) {
392386
DateHeaderLabel(text = stringResource(R.string.chat_messages_load_gap))
393387
}
394388
}

0 commit comments

Comments
 (0)