Skip to content

sample(auth): full customization demo - #2414

Draft
demolaf wants to merge 11 commits into
version-10.0.0-beta05from
sample/full-customization-method-picker
Draft

sample(auth): full customization demo#2414
demolaf wants to merge 11 commits into
version-10.0.0-beta05from
sample/full-customization-method-picker

Conversation

@demolaf

@demolaf demolaf commented Jul 22, 2026

Copy link
Copy Markdown
Member

Extends the full customization demo to the remaining FirebaseAuthScreen slots, so the sample now supplies a custom UI for every one: mfaEnrollmentContent (all five enrollment steps), mfaChallengeContent, reauthContent and authenticatedContent.

The authenticated screen mostly exists to make the other two reachable — "Set up two-factor" navigates into enrollment, and changing the password runs through authUI.withReauth, which is what provokes the reauth slot.

  • common/AuthPage.kt: shared page frame (mascot, headline, card, bottom actions) for the new screens, so their background, scrolling and inset behaviour match the existing email and phone steps.
  • screens/reauth/ReauthUI.kt handles password reauthentication only, with an explicit fallback for accounts that have no password provider — the federated path the default reauth sheet uses is internal/private, so it isn't expressible from a custom slot.
  • Also addresses review feedback on the existing screens: system back returns to email entry from the login/sign-up steps, the other-sign-in-methods sheet scrolls (nine providers plus the ToS footer overflowed shorter screens), and the confirmation email is compared trimmed and case-insensitively.

Preview

  • Full Customization Flow
full-customization-flow.webm
  • Other sign in methods via bottom sheet
other-sign-in-methods.webm
  • Error Dialog (Inherits font change)
Screenshot_1784723834

@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 introduces a fully customized authentication flow demo (FullCustomizationDemoActivity and associated steps) to showcase the capabilities of customMethodPickerLayout in FirebaseAuthScreen, alongside minor inset adjustments in the default auth screens. The review feedback is highly constructive and should be addressed: it recommends implementing a BackHandler for proper step-back navigation, making the alternative sign-in methods sheet scrollable to prevent clipping on smaller screens, passing the FirebaseAuth instance dynamically to support custom configurations, performing case-insensitive and trimmed email validation, and ensuring the loading indicator in CtaButton has sufficient contrast.

@demolaf
demolaf changed the base branch from sample/firestore-database-storage to fix/mfa-edge-to-edge-insets July 22, 2026 13:02
@demolaf
demolaf changed the base branch from fix/mfa-edge-to-edge-insets to sample/firestore-database-storage July 22, 2026 13:03
@demolaf demolaf added the sample label Jul 22, 2026
@demolaf demolaf changed the title sample(auth): flesh out full customization demo with email/login/sign… sample(auth): flesh out full customization demo Jul 22, 2026
@demolaf demolaf changed the title sample(auth): flesh out full customization demo sample(auth): full customization demo Jul 22, 2026
@demolaf
demolaf force-pushed the sample/firestore-database-storage branch from 0cdfacd to 1778d6c Compare July 27, 2026 10:46
@demolaf
demolaf force-pushed the sample/full-customization-method-picker branch from e98fb6e to cbbd262 Compare July 28, 2026 16:01
@demolaf
demolaf changed the base branch from sample/firestore-database-storage to version-10.0.0-beta04 July 28, 2026 16:03
@demolaf
demolaf changed the base branch from version-10.0.0-beta04 to fix/auth-state-stale-notification-reset July 28, 2026 16:03
@demolaf demolaf closed this Jul 28, 2026
@demolaf
demolaf force-pushed the sample/full-customization-method-picker branch from ccd214c to 267731e Compare July 28, 2026 16:08
@github-project-automation github-project-automation Bot moved this from Backlog to Done in studio-2394994192-60a69 Jul 28, 2026
@demolaf demolaf reopened this Jul 28, 2026
@demolaf
demolaf force-pushed the fix/auth-state-stale-notification-reset branch from 267731e to e035a60 Compare July 29, 2026 00:45
@demolaf
demolaf force-pushed the sample/full-customization-method-picker branch from 74c0370 to 007676d Compare August 10, 2026 16:40
@demolaf
demolaf changed the base branch from fix/auth-state-stale-notification-reset to version-10.0.0-beta04 August 10, 2026 16:43
@demolaf
demolaf force-pushed the version-10.0.0-beta04 branch from dbaac07 to f896825 Compare August 18, 2026 09:55
@demolaf
demolaf force-pushed the sample/full-customization-method-picker branch from d552549 to a2d2bc9 Compare August 21, 2026 14:06
@demolaf
demolaf marked this pull request as ready for review August 21, 2026 14:58
@demolaf
demolaf force-pushed the version-10.0.0-beta04 branch from 06a6fe9 to 697f1d9 Compare August 24, 2026 09:29
@demolaf
demolaf force-pushed the sample/full-customization-method-picker branch from 4785c0e to 5e3a069 Compare August 24, 2026 10:16
@demolaf
demolaf marked this pull request as draft August 25, 2026 09:46
(cherry picked from commit d88088103e61630c95f69de273953346b90486ab)
…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)
…-state UI to full customization demo

(cherry picked from commit 96694e0dddd4dacaa769d09ee153c34d4f51f8a2)
Intercept back on the login/sign-up steps so it returns to email entry
instead of leaving the auth flow, make the other-sign-in-methods sheet
scrollable (nine providers plus the ToS footer overflow shorter screens),
compare the confirmation email trimmed and case-insensitively and give the
field an email keyboard, and take the configured FirebaseAuth instance
rather than reaching for the global default.

(cherry picked from commit 1dfdeda82ecce93f6af54f4dfd6371d108c0ca44)
(cherry picked from commit f05a83c)
(cherry picked from commit b9a58843cea3aca0bae6b7f2db69edee76dcf348)
…reation

(cherry picked from commit 7e31aa6)
(cherry picked from commit 0b6786910543474bde87be08207cce34d0d22782)
…ntState

(cherry picked from commit 20681c413ada0394de19203bb2dde2784bac6d06)
@demolaf
demolaf force-pushed the sample/full-customization-method-picker branch from 5e3a069 to ba5b475 Compare August 29, 2026 22:02
@demolaf
demolaf changed the base branch from version-10.0.0-beta04-old to version-10.0.0-beta05 August 29, 2026 22:02
@demolaf
demolaf force-pushed the sample/full-customization-method-picker branch from ba5b475 to d389203 Compare August 30, 2026 15:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant