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 support —
WeavrSecureLoginData.identitycan now benull, 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 cooldown —
WeavrComponentsFeatureFlags.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 tofalse. See the feature flags guide for details. setUserTokentraceability —OnAssociateListener.onAssociateComplete/onAssociateFailednow have overloads that additionally receive aTraceability(sessionId, operationId)value, so you can correlate asetUserTokencall with backend logs when reporting an issue. Existing single-argument overrides keep compiling unchanged.
Fixed
- Crash in biometric login —
WeavrSecureLoginDatadeserialized the login response's credential object under the wrong JSON key (credentialinstead of the backend'scredentials), so it always parsed asnulland 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.credentialis renamed tologinResponse.credentialsto match the actual JSON key. Update any call sites using the old name. In practice,credentialalways deserialized tonullbefore this fix, so no working integration could have depended on its value.loginResponse.identityis now nullable (WeavrIdentity?, was non-null). Add a null check before use.