Skip to content

Instantly share code, notes, and snippets.

@lagner
Created April 16, 2021 03:19
Show Gist options
  • Save lagner/53d0a5752d594c3271df1f5966de2a21 to your computer and use it in GitHub Desktop.
Save lagner/53d0a5752d594c3271df1f5966de2a21 to your computer and use it in GitHub Desktop.
work with directory suggest
val asyncResult = searchManager.suggest(query).wait()
val suggests = asyncResult.suggests
// тут мы получили коллекцию саджестов
// и должы показать список этих подсказок пользователю
suggests.forEach { suggest ->
suggest.title // это то что должно быть в основном тексте подсказки
suggest.subtitle // это вторая строка саджеста(она обычно менее яркая и шрифт меньше)
// после того как элемент есть есть в интерфесе ему надо закинуть onClick обработчик
// эта штука как раз делается через handler
// onClick:
suggest.handler.match(
{ objectHandler ->
val item = objectHandler?.item ?: return@match
// в этом месте мы поняли что за объект пользователь выбрал
// в этой ситуации в 2GIS открывается карточка конкретного объекта
item.title // имя
item.address //
item.markerPosition // точка на карте куда перелететь и поставить маркер
},
{ searchHandler ->
val query = searchHandler?.searchQuery ?: return@match
// это какой-то поиск надо запустить
searchManager.search(query)
// и показать список результатов этого поиска
},
{ incompleteText ->
val text = incompleteText?.queryText ?: return@match
// в этом случае пользователь может "дополнить" запрос
// но еще ожидается что запрос нужно дописать
// нужно поставить text в строку поиска и ждать дальше ввода
}
)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment