Skip to content

fix(auth): stop dropping the user identifier from localized sign-in labels - #2501

Open
demolaf wants to merge 50 commits into
pre-GAfrom
fix/localized-signed-in-as-identifier
Open

fix(auth): stop dropping the user identifier from localized sign-in labels#2501
demolaf wants to merge 50 commits into
pre-GAfrom
fix/localized-signed-in-as-identifier

Conversation

@demolaf

@demolaf demolaf commented Sep 9, 2026

Copy link
Copy Markdown
Member

55 locales declared fui_signed_in_as without the %1$s that the base string and DefaultAuthUIStringProvider both expect, so the user identifier was silently dropped and those users saw a bare "Signed in as" with nobody named. Every locale now carries the argument, positioned where that language puts it rather than simply appended.

The rest of the change clears the localization lint findings that needed no translator, taking auth/lint-baseline.xml from 168 entries to 43. Literal ... becomes an ellipsis character in the base strings, which the locale files already used; one of those strings also carried a format specifier, and that pairing is what crashed TypographyDetector on lint's first run here, so fixing the text removes the trigger rather than baselining around it. The Romance locales that require a CLDR many plural get one, derived from each file's own other text. The 14 AuthException messages that ship empty are marked translatable="false", because they are override hooks that fall back to the Firebase SDK message and so have no source text to translate. PluralsCandidate is suppressed with tools:ignore on the four declarations that trigger it rather than disabled for the module, since minimumPasswordLength is an unbounded Int and "at least 1 characters long" is reachable, so the check still needs to guard every other string. AppBundleLocaleChanges is suppressed at the one construct it describes, because the bundle configuration and any Play Core dependency belong to the app that embeds this library.

What stays baselined is 43 MissingTranslation findings, real UI copy that the Compose rewrite added and never sent for translation across 50 languages. No repo-side edit clears those, so the baseline can only be deleted once translations land.


Maintainer note: Fixes internal CPRN-432

demolaf and others added 30 commits September 7, 2026 13:25
…tion that owns it (#2454)

* refactor(auth): let the phone screen own its verification loading state

* fix(auth): read auth state per authUI instance when clearing loading on dispose
…eption fallback exhausts

(cherry picked from commit 6fa4f00)
(cherry picked from commit aca99e7)
(cherry picked from commit 8784b13ce29739ed7785aab9ab6fe4faad2a2981)
…data

(cherry picked from commit 8eca4fa)
(cherry picked from commit ac61312)
(cherry picked from commit 126ba985660ff272dbfda427b644ad4fb1ca6197)
…loop

(cherry picked from commit a87cfe3)
(cherry picked from commit 3f4ae70)
(cherry picked from commit 1f1ada380039ed5e7476dfc2e38a683e6edb4549)
…lot (#2452)

* feat(auth): reshape reauthContent into a ReauthContentState content slot

* fix(auth): address reauth review findings and retain state across recreation

* refactor(auth): make reauthentication a request-scoped state machine

* fix(auth): keep a proved reauthentication alive when its operation signs out

* fix(auth): tear down phone verification when a reauthentication attempt fails

* test(auth): cover sign-out-during-retry and phone reauth failure end to end

* test(auth): drop the flaky phone reauth e2e case
…lment (#2462)

* test(auth): pin onComplete and factor refresh on successful MFA enrollment

* test(auth): pin the SMS MFA enrollment route through send, verify and resend

* test(auth): pin the missing TOTP secret guard and the resend's clean enroll
…slot's sheet chrome (#2476)

* test(auth): cover the three recoveries that write a value through to the step they move to

* test(auth): assert a custom reauth slot's email and phone steps stay inside the library sheet
demolaf and others added 15 commits September 7, 2026 13:25
…2477)

Co-authored-by: Russell Wheatley <russellwheatley85@gmail.com>
…2492)

Co-authored-by: Russell Wheatley <russellwheatley85@gmail.com>

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request configures and integrates Android Lint checks across modules, introducing a repo-wide lintAll task, updating the CI build script, and documenting the linting policy. It also includes various bug fixes and optimizations, such as optimizing QR code generation to reduce JNI crossings, refining coroutine cancellation in AuthFlowController, updating localized strings with proper placeholders, and adding nullability annotations in the paging source. Feedback suggests explicitly validating the non-null Query parameter in DatabasePagingSource using Objects.requireNonNull to prevent potential null pointer exceptions.

@demolaf
demolaf force-pushed the fix/localized-signed-in-as-identifier branch from 8460e8e to fff04f7 Compare September 9, 2026 13:14
@demolaf
demolaf force-pushed the ci/run-android-lint-in-the-build branch 2 times, most recently from 64ce7cf to 4f2b154 Compare September 9, 2026 13:35
@demolaf
demolaf force-pushed the fix/localized-signed-in-as-identifier branch 2 times, most recently from c667639 to 50f0fdd Compare September 9, 2026 13:42
@demolaf
demolaf marked this pull request as draft September 9, 2026 14:31
…on it (#2498)

Co-authored-by: Ademola Fadumo <ademola.fadumo@invertase.io>
@demolaf
demolaf marked this pull request as ready for review September 10, 2026 07:14
@demolaf
demolaf force-pushed the fix/localized-signed-in-as-identifier branch from 50f0fdd to 362283d Compare September 10, 2026 07:47
@demolaf
demolaf changed the base branch from ci/run-android-lint-in-the-build to version-10.0.0-beta05 September 10, 2026 07:47
@demolaf
demolaf changed the base branch from version-10.0.0-beta05 to pre-GA September 14, 2026 09:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant