queryChanged

fun queryChanged(query: String, countryCode: String?)

Reacts to the user typing: waits out a short debounce, then searches.

A new keystroke cancels only the pending wait, never a request already in flight. Results therefore arrive while the user is still typing rather than after they stop, and a response is applied only when it is for the most recent query — so an earlier lookup that resolves late is discarded instead of replacing newer results.