Skip to content

Conversation

demolaf
Copy link

@demolaf demolaf commented Oct 2, 2025

Release 2025-10-02

Base Branch: version-10.0.0-dev
Target Branch: release/10.0.0-dev-internal

A1 — Core: FirebaseAuthUI Singleton & DI, PR #2215

  • Add FirebaseAuthUI class with getInstance() methods and internal caching
  • Support for default app via getInstance() with singleton pattern
  • Support for multiple Firebase apps via getInstance(app)
  • Add create(app, auth) for custom auth injection and multi-tenancy
  • Thread-safe implementation using ConcurrentHashMap
  • Comprehensive unit tests covering all singleton behaviors
  • Tests verify caching, multi-app support, and custom auth injection

A2 — Core: Auth State & User Accessors, PR #2217

  • Implement isSignedIn(), getCurrentUser(), and authStateFlow(): Flow to expose auth state and user.

A3 — Core: Sign-out & Delete, PR #2226

  • Sign-out clears user; flow reflects change.
  • Delete removes current account or surfaces reauth requirement.
  • Cancellations map to AuthCancelledException.

C1 — Config: AuthUIConfiguration Model & Builder, PR #2216

  • Add AuthUIConfiguration data class with all properties
  • Implement authUIConfiguration DSL builder function
  • Add AuthProvider, AuthUITheme, AuthUIStringProvider, and PasswordRule models
  • Create comprehensive tests for default and custom configurations

C2 — Password Rules & Validators, PR #2218

  • Added Email & Password Validator and FieldValidator interface
  • EmailValidator & PasswordValidator tests covering validation logic, error state management, and integration with DefaultAuthUIStringProvider using real Android string resources.
  • PasswordRule tests for each sub class

C3 — Localization: AuthUIStringProvider, PR #2221

  • AuthUIStringProvider Interface - Defines contract for all user-facing authentication strings
  • DefaultAuthUIStringProvider with full Android string resource integration
  • Tests to validate locale override and default string provider when no custom string provider specified
  • Robust error handling for unsupported locales and missing strings

T1 — Theming: AuthUITheme & ProviderStyle, PR #2224

  • Provider buttons adopt brand styles.
  • Typography/shapes configurable.
  • Tests to validate AuthUITheme.Default is injected by default and fromMaterialTheme inherits clients MaterialTheme when AuthUITheme overridden

T2 — AuthProviderButton, PR #2228

  • Reusable AuthProviderButton component with customizable styling
  • Style override support - accepts custom ProviderStyle parameter to override default provider branding (colors, icons, elevation)
  • Conditional icon rendering - displays provider icons only when available, gracefully handles missing icons with proper fallback behavior
  • Comprehensive UI and unit tests covering provider style defaults and overrides.

E1 — AuthException Sealed Hierarchy, PR #2222

  • Define exception types (Network, InvalidCredentials, UserNotFound, WeakPassword, EmailAlreadyInUse,
    TooManyRequests, MfaRequired, AccountLinkingRequired, AuthCancelled, Unknown) + mapper.

E2 — Error Recovery & Dialog, PR #2225

  • ErrorRecoveryDialog composable with onRetry, onDismiss, optional onRecover; uses AuthUIStringProvider.

P1 — Provider Models (AuthProvider + concrete types), PR #2223

  • Precondition validations for auth provider configurations including Google email scope warnings, Facebook dependency checks, and phone number format validation
  • Provider-specific validation rules for email link settings, anonymous provider restrictions, and duplicate provider detection
  • Tests for all auth provider validation scenarios and configuration edge cases

thatfiredev and others added 12 commits March 19, 2025 17:02
* feat: Core: FirebaseAuthUI Singleton & DI

* clean
…se#2218)

* feat(AuthUIConfiguration): implement configuration model, DSL builder and tests

* refactor: use OAuthProvider base class for common properties

* feat: add Provider enum class for provider ids

* feat: setup default provider styles for each provider

* test: added builder validation logic from old auth library and tests

* refactor: changes in API design docs

replaced sealed with abstract class, data with regular class

use isXX prefix for booleans

* test: fix AuthUIConfiguration constructor test

* wip: email validator and password validator

* feat: added password rules validations, FieldValidator interface

added email and password validator

* test: EmailValidator, PasswordValidator and PasswordRule

* docs: update PasswordRule comments

* docs: update PasswordRule comments

* fix: remove mock annotation
…se#2221)

* feat: added context AuthUIConfiguration and default string provider

* add/expose existing localized strings to allow overrides

* added custom string provider sample, tests for locale overrides

* chore: code cleanup
* feat: added preconditions for specific auth provider configurations

* test: covers auth providers with config validations

* fix: auth provider validation and tests

- validate serverClientId empty string
- validate applicationId empty string
- remove @test(expected=) not descriptive
- tests covering AuthProviders Google and Facebook config validation
- added junit ui test library for compose ui tests
- refactor: default provider styles
- test: integration tests to validate AuthUITheme.Default is injected by default
- test: validate fromMaterialTheme inherits clients MaterialTheme when AuthUITheme overridden
* feat: Error Recovery & Dialog

* fix
@demolaf demolaf marked this pull request as draft October 2, 2025 21:58
* feat: AuthMethodPicker, logo and provider theme style

* chore: organize folder structure

* feat: TOS and PP footer, ui tests for AuthMethodPicker

* chore: tests folder structure

* fix: use screen width for adaptive padding values

* chore: remove unused modifier
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.

3 participants