Improved showing of transfer destination suggestions

This commit is contained in:
Juha Heinanen
2026-01-19 23:35:51 +02:00
parent d9dc61c169
commit 6bfb246565
@@ -1603,7 +1603,7 @@ private fun CallRow(
) )
var transferUri by remember { mutableStateOf("") } var transferUri by remember { mutableStateOf("") }
val suggestions by remember { contactNames } val suggestions by remember { contactNames }
var filteredSuggestions by remember { mutableStateOf(suggestions) } var filteredSuggestions by remember { mutableStateOf<List<AnnotatedString>>(emptyList()) }
val focusRequester = remember { FocusRequester() } val focusRequester = remember { FocusRequester() }
val lazyListState = rememberLazyListState() val lazyListState = rememberLazyListState()
OutlinedTextField( OutlinedTextField(
@@ -1612,12 +1612,16 @@ private fun CallRow(
onValueChange = { onValueChange = {
if (it != transferUri) { if (it != transferUri) {
transferUri = it transferUri = it
if (it.length > 1) {
val normalizedInput = Utils.unaccent(it) val normalizedInput = Utils.unaccent(it)
filteredSuggestions = filteredSuggestions =
suggestions.filter { suggestion -> suggestions.filter { suggestion ->
transferUri.length > 1 &&
Utils.unaccent(suggestion) Utils.unaccent(suggestion)
.contains(normalizedInput, ignoreCase = true) .contains(normalizedInput, ignoreCase = true)
}
.map { suggestion ->
Utils.buildAnnotatedStringWithHighlight(suggestion, it)
}
} }
call.showSuggestions.value = transferUri.length > 1 call.showSuggestions.value = transferUri.length > 1
} }
@@ -1679,15 +1683,14 @@ private fun CallRow(
) { ) {
items( items(
items = filteredSuggestions, items = filteredSuggestions,
key = { suggestion -> suggestion } key = { suggestion -> suggestion.toString() }
) { suggestion -> ) { suggestion ->
Box( Box(
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.clickable { .clickable {
transferUri = suggestion transferUri = suggestion.toString()
call.showSuggestions.value = call.showSuggestions.value = false
false
} }
.padding(12.dp) .padding(12.dp)
) { ) {