Включение и настройка шторки ассистента
Следующая инструкция описывает, как включить шторку и настроить ее отображение и фон. Если для своего приложения вы хотите настроить только длинную шторку, читайте раздел «Использовать только длинную шторку».
Обратите внимание, что не все настройки реализованы на стороне SDK. Чтобы работали все функции, выполните на своей стороне требования, которые описаны в шаге 5 инструкции.
Чтобы включить и настроить шторку в своем приложении:
- Включите навигацию 2.0:
dialogConfigDependencies = object : DialogConfigDependencies {
<...>
override val hostNavigation2Availability = object : HostNavigation2Availability {
override val isHostNavigation2Enabled: Boolean = true
}
}
Отрегулируйте показ шторки с помощью методов:
fun showTiny()
— показывает свернутую шторку ассистента в хосте;fun hideTiny()
— скрывает свернутую шторку ассистента в хосте;fun hideAll()
— полностью скрывает ассистента в хосте, закрывая уже открытые смартапы, при этом фрагмент ассистента остается в иерархии;fun showAll()
— включает видимость развернутой и свернутой шторки.
При формировании фрагмента ассистента в
FragmentLaunchParams
задайте следующие параметры, если необходимо:showByDefault
— должен ли фрагмент отображаться сразу как только его добавили в иерархию. Значение по умолчанию —true
.hideTinyOnBack
— должна ли короткая шторка сворачиваться при нажатии на кнопку Назад. Значение по умолчанию —false
.setKeyboardPaddings
— подписываться ли на изменения клавиатуры и изменять ли значения полей (паддинги) согласно этим изменениям. Если у активности не стоит флагadjustResize
или этот флаг выставлен вместе с"android:configChanges="keyboardHidden|keyboard"
, значение параметра должно бытьtrue
. Значение по умолчанию —false
.
Для шторки укажите необходимый режим фона: в
FeatureFlagManager
передайте объект типаAssistantTinyPanelFeatureFlag
и задайте в нем нужный фон. По умолчанию используется сплошной (солидный) фон. Значения для фона:SolidRounded
— сплошной задний фон с закругленными сверху краями;Gradient
— градиент под всем содержимым короткой шторки, разный градиент для разного контента;Transparent
— прозрачный задний фон.
Например:
interface AssistantTinyPanelFeatureFlag : FeatureFlag {
fun tinyBackgroundMode(): BackgroundMode = BackgroundMode.SolidRounded
fun fullBackgroundMode(): BackgroundMode = BackgroundMode.SolidRounded
}Здесь:
- первая функция задает тип фона для шторки ассистента, когда активен режим свернутой шторки;
- вторая функция задает тип фона для шторки ассистента, когда активен режим развернутой шторки.
Настройте закрытие короткой шторки, когда закрывается последний экран в длинной шторке:
object : NavigationFeatureFlag {
/**
* Например, открыли короткую шторку > спросили погоду > увидели карточку в длинной шторке.
* Нажали кнопку Назад > закрылась и длинная, и короткая шторка.
*/
override fun closeTinyOnLastAppClosedEnabled(): Boolean = true
},
Чтобы правильно интегрировать шторку ассистента, настройте в коде своего приложения следующее:
- укажите, что нажатие вне области шторки закрывает шторку;
- добавьте таймаут: закрывать шторку, если пользователь ничего не делает более 3 секунд;
- укажите, что когда длинная шторка открыта на весь экран, короткая шторка градиентно окрашивается в цвет выбранного голоса.
Использовать только длинную шторку
Если вы хотите, чтобы в приложении осталась только длинная шторка, выполните шаги ниже.
Обратите внимание, что в следующей инструкции используется legacy-код.
Чтобы оставить в приложении только длинную шторку:
- Выключите навигацию 2.0:
override val hostNavigation2Availability = object : HostNavigation2Availability {
override val isHostNavigation2Enabled: Boolean = false
}
- Запустите Activity ассистента (длинная шторка):
AssistantDialogActivity.launch(this)
Основное управление шторкой в динамике
Ниже описана прослойка для принудительного управления навигацией ассистента через API FullAssistantFragment
.
package ru.sberbank.sdakit.full.assistant.fragment.domain
import androidx.annotation.Keep
@Keep
interface FullAssistantFragmentNavigation {
/**
* Показывает свернутую шторку ассистента в хосте
* */
fun showTiny()
/**
* Скрывает свернутую шторку ассистента в хосте
* */
fun hideTiny()
/**
* Полностью скрывает ассистента в хосте, закрывая уже открытые смартапы,
* фрагмент ассистента при этом остается в иерархии
* */
fun hideAll()
/**
* Включает видимость короткой и длинной шторки
* */
fun showAll()
/**
* Принудительный запуск слушания
* @param request описание запроса
* */
fun requestListening(request: ListeningRequest)
/**
* Включение/выключение споттера в динамике
* @param enabled true - включить, false - выключить
*/
fun setSpotterEnabled(enabled: Boolean)
/**
* Останавливает все TTS и автослушание
*/
fun stopTtsAndListening()
}
Примеры использования шторок
Вы можете написать на developer@sberdevices.ru и запросить примеры использования (семплы) короткой и длинной шторок.