# Коллбеки и обработчики Android SDK

# Уведомление об изменении статуса SDK

Чтобы получать уведомления об изменениях статуса SDK, используйте .withHandlers(onStateChanged=onSDKStateChangedHandler) или .withStateChangedHandler(stateChangedHandler) в CBRMobileSDK.Builder.

Обработчик принимает два параметра:

  • newStatus — текущий статус SDK.
  • prevStatus — предыдущий статус.

Пример, который перечисляет все возможные статусы:

Статусы SDK

Статус Описание
Ready SDK инициализирован и готов к запуску.
Failed SDK завершился с ошибкой.
Initial Шаги проверки еще не пройдены.
Incomplete Пройдена часть шагов проверки.
Pending Ожидается проверка пользователя.
TemporarilyDeclined Временный отказ.
FinallyRejected Окончательный отказ.
Approved Анкета пользователя одобрена.

Типы ошибок

Ошибка Описание
ApplicantNotFound Анкета пользователя не найдена.
ApplicantMisconfigured Анкета пользователя найдена, но настройки некорректные (например, отсутствует idDocs).
InitialLoadingFailed Ошибка начальной загрузки с сервера.
InvalidParameters Некорректные параметры.
NetworkError Ошибка сети (пользователь видит экран «Network Oops»).
Unknown Неизвестная ошибка.
InitializationError Ошибка инициализации.

# Уведомление о событиях

Обработчик событий получать уведомления о событиях, происходящих в процессе обработки.
События передаются в обработчик в виде экземпляров класса, унаследованных от базового класса CBREvent. Таким образом, каждое событие содержит eventType и набор параметров, упакованных в словарь payload.

В зависимости от того что вам нужно, вы можете получать параметры события, либо анализируя payload напрямую, либо приводя переданный экземпляр события к соответствующему классу CBREvent* в зависимости от его типа.

# Уведомление о завершении работы SDK

Необязательный обработчик для получения уведомлений, когда SDK закрывается. Обработчик принимает два параметра:

  • result:
    • CBRCompletionResult.SuccessTermination — успешное завершение работы SDK, включая вызов dismiss().
    • CBRCompletionResult.AbnormalTermination — ошибка, произошедшая при работе SDK. Дополнительную информацию можно получить из объекта exception.
  • state: состояние SDK при его закрытии. Возможные состояния см. в разделе Уведомление об изменении состояния SDK.

# Истечение срока действия токена

Так как срок действия токена доступа (accessToken) ограничен, важно уметь его обновлять. Для этого нужно передать tokenHandler в CBRMobileSDK.Builder.

Обработчик делает запрос на ваш сервер, получает новый токен и затем передает его обратно в SDK.

Внимание:

onTokenExpired не должен вызываться в потоке пользовательского интерфейса.

# Уведомление об ошибках SDK

Чтобы получать уведомления об ошибках, используйте .withHandlers(onError=onSDKErrorHandler) или .withErrorHandler(errorHandler) в CBRMobileSDK.Builder.

# Уведомление о результате действий (actions)

Этот обработчик может использоваться для получения результата действия пользователя (action) и управления сценарием проверки живости (liveness).

Обработчик принимает два параметра:

  • actionId : String —идентификатор действия пользователя (action).
  • answer : String — ответ модуля проверки живости (liveness).
    Возможные значения: GREEN/YELLOW/RED/ERROR/null.

Обработчик должен вернуть CBRActionResult:

  • CBRActionResult.Continue — продолжить сценарий действия по умолчанию (показать экран результата и т. д.).
  • CBRActionResult.Cancel — отменить сценарий действия по умолчанию (закрыть SDK без экрана результата).

# Обработчик иконок

С помощью этого обработчика, можно настраивать иконки на экранах IDnGO SDK. В данный момент поддерживаются только иконки инструкций и иконки документов (для экрана выбора документа).

Обработчик предоставляет ключ иконки и тематический контекст, возвращая drawable или null, если drawable не требуется.

SDK использует следующие ключи:

  • default/do_idCard — иконка для инструкции к удостоверению личности (экран инструкций, блок DO).
  • default/dont_idCard — иконка для инструкции к удостоверению личности (экран инструкций, блок DON'T).
  • default/do_idCard_backSide — иконка для инструкции к оборотной стороне удостоверения личности (экран инструкций, блок DO).
  • default/dont_idCard_backSide — иконка для инструкции к оборотной стороне удостоверения личности (экран инструкций, блок DON'T).
  • default/do_passport — иконка для инструкции к паспорту (экран инструкций, блок DO).
  • default/dont_passport — иконка для инструкции по паспорту (экран инструкций, блок DON'T).
  • default/facescan — иконка для инструкции к проверке живости (liveness).
  • IdentityType/<DOCUMENT TYPE> — иконка для элемента документа на экране выбора документа, где <DOCUMENT TYPE> — это PASSPORT, DRIVERS, RESIDENCE_PERMIT или другой документ.
  • Flag/<COUNTRY_CODE> — иконка для флага страны, где <COUNTRY_CODE> — это код страны Альфа-2 (ISO 3166-1).

Вы можете предоставить свои собственные иконки или переопределить существующие, расширив CBRDefaultIconHandler.