Развернуть
SIDEvents
Обновлено 30 января 2026
SIDEvents — модуль для подписки на глобальные события SDK. Поз воляет отслеживать события авторизации, изменения состояния токенов и другие важные действия в реальном времени. Использует паттерн Observer для предоставления уведомлений о ключевых событиях жизненного цикла SDK.
Особенности модуля
Назначение
- Централизованная система событий: Единая точка для подписки на все события SDK
- Жизненный цикл: Автоматическая отписка при уничтожении LifecycleOwner
- Типизированные события: Система типов Kotlin для безопасной обработки событий
- Мультиподписка: Возможность множественных подписок на одни и те же события
Сценарии использования
- Отслеживание авторизации: Мониторинг процесса входа, выхода и релогина
- Обработка ошибок: Получение уведомлений о сетевых ошибках и проблемах валидации
- Мониторинг состояния: Отслеживание изменений в статусе токенов и сессий
- Аналитика: Сбор метрик использования SDK для аналитических систем
Доступ к модулю
Модуль доступен через свойство SID.Events:
// Получение экземпляра модуля событий
val eventsModule = SID.Events
Методы
subscribeForAuthEvents
public fun subscribeForAuthEvents()
Подписывает на события авторизации. Возвращает объекты типа AuthEvents, которые содержат информацию о различных этапах процесса аутентификации.
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| owner | Да | LifecycleOwner | Владелец жизненного цикла (Activity, Fragment, ViewModel). При уничтожении владельца подписка автоматически отменяется |
| events | Да | (AuthEvents -> Unit | Лямбда-функция, принимающая события авторизации для обработки |
Пример использования:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Подписка на события авторизации
SID.Events.subscribeForAuthEvents(owner = this) { authEvent ->
handleAuthEvent(authEvent)
}
}
private fun handleAuthEvent(authEvent: AuthEvents) {
when (authEvent) {
AuthEvents.ReLoginIsLite -> {
// Событие п ереинициализации ЕЛК
logEvent("ЕЛК переинициализация")
}
is AuthEvents.ReLoginStatus -> {
// Событие прохождения сценария релогина
handleReLoginStatus(authEvent)
}
AuthEvents.ReLoginStatusReject -> {
// Событие отмены сценария релогина
showReLoginCancelled()
}
is AuthEvents.WebViewError -> {
// Ошибка в WebView (поврежденная ссылка или проблемы с открытием)
handleWebViewError(authEvent)
}
AuthEvents.WebAuthReject -> {
// Отмена логина на любом этапе (WebView/CustomTab/Dialog)
showLoginCancelled()
}
}
}
}