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

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

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

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

  • newState — текущее состояние SDK.
  • prevState — предыдущее состояние.

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

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

Обработчик событий позволяет вам быть в курсе событий, происходящих в процессе обработки. События передаются в обработчик в виде экземпляров класса, унаследованных от базового класса 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.