Skip to main content

Android Secure Components v3.13.0

· 2 min read

An improved design for the biometric enrollment consent/OTP screens, additional language support, initial support for Single User, Multiple Identities (SUMI) login flows, and other quality of life improvements and fixes.

Includes two source-level changes to WeavrSecureLoginData — see Action Required below.

Changed

  • Enrollment consent and OTP screens redesigned — updated visuals for the consent bottom sheet and OTP entry screens.

Added

  • Spanish and Portuguese localizations — all SDK UI strings are now available in Spanish (es) and Portuguese (pt).
  • Single User, Multiple Identities (SUMI) login supportWeavrSecureLoginData.identity can now be null, which happens when a login resolves to more than one identity under the same credentials. Use this to detect a SUMI account and prompt the user to pick which identity to proceed with.
  • Fast OTP resend cooldownWeavrComponentsFeatureFlags.setFastOtpResendCooldown(true) shortens the OTP resend cooldown from 60 seconds to 5 seconds, so UI tests don't have to wait out the real duration. Available in Sandbox only; calls in Production are ignored and the flag is reset to false. See the feature flags guide for details.
  • setUserToken traceabilityOnAssociateListener.onAssociateComplete/onAssociateFailed now have overloads that additionally receive a Traceability(sessionId, operationId) value, so you can correlate a setUserToken call with backend logs when reporting an issue. Existing single-argument overrides keep compiling unchanged.

Fixed

  • Crash in biometric loginWeavrSecureLoginData deserialized the login response's credential object under the wrong JSON key (credential instead of the backend's credentials), so it always parsed as null and crashed any code that accessed it. The field is now populated correctly.

ACTION REQUIRED

Two source-level changes to WeavrSecureLoginData — the type your WeavrLoginListener.onSuccess(loginResponse) callback receives:

  • loginResponse.credential is renamed to loginResponse.credentials to match the actual JSON key. Update any call sites using the old name. In practice, credential always deserialized to null before this fix, so no working integration could have depended on its value.
  • loginResponse.identity is now nullable (WeavrIdentity?, was non-null). Add a null check before use.