diff --git a/app/src/main/kotlin/com/tutpro/baresip/MainScreen.kt b/app/src/main/kotlin/com/tutpro/baresip/MainScreen.kt index 80f9171e..398b2947 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/MainScreen.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/MainScreen.kt @@ -1603,7 +1603,7 @@ private fun CallRow( ) var transferUri by remember { mutableStateOf("") } val suggestions by remember { contactNames } - var filteredSuggestions by remember { mutableStateOf(suggestions) } + var filteredSuggestions by remember { mutableStateOf>(emptyList()) } val focusRequester = remember { FocusRequester() } val lazyListState = rememberLazyListState() OutlinedTextField( @@ -1612,13 +1612,17 @@ private fun CallRow( onValueChange = { if (it != transferUri) { transferUri = it - val normalizedInput = Utils.unaccent(it) - filteredSuggestions = - suggestions.filter { suggestion -> - transferUri.length > 1 && - Utils.unaccent(suggestion) - .contains(normalizedInput, ignoreCase = true) - } + if (it.length > 1) { + val normalizedInput = Utils.unaccent(it) + filteredSuggestions = + suggestions.filter { suggestion -> + Utils.unaccent(suggestion) + .contains(normalizedInput, ignoreCase = true) + } + .map { suggestion -> + Utils.buildAnnotatedStringWithHighlight(suggestion, it) + } + } call.showSuggestions.value = transferUri.length > 1 } }, @@ -1679,15 +1683,14 @@ private fun CallRow( ) { items( items = filteredSuggestions, - key = { suggestion -> suggestion } + key = { suggestion -> suggestion.toString() } ) { suggestion -> Box( modifier = Modifier .fillMaxWidth() .clickable { - transferUri = suggestion - call.showSuggestions.value = - false + transferUri = suggestion.toString() + call.showSuggestions.value = false } .padding(12.dp) ) {