AuthenticationBloc class
The central authentication BLoC for the app.
Manages the full authentication lifecycle: startup state seeding, live status and user change listening, FCM notification init/teardown, and logout. Startup resolution happens via StartupAuthResolved (emitted by AuthCheckTask); live listening begins only after that event is processed via StartLiveListening.
FCM is initialised via StartLiveListening (startup session resume) and
_AuthStatusChanged (active login), and torn down on every transition out
of AuthenticationStatus.authenticated.
- Inheritance
-
- Object
- BlocBase<
AuthenticationState> - Bloc<
AuthenticationEvent, AuthenticationState> - AuthenticationBloc
Constructors
- AuthenticationBloc({required AuthRepository authRepository, required UserRepository userRepository, required NotificationRepository notificationRepository, required AppLogger logger})
- Creates the bloc, wiring repositories, logger, and event handlers.
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- isClosed → bool
-
Whether the bloc is closed.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- state → AuthenticationState
-
The current state.
no setterinherited
-
stream
→ Stream<
AuthenticationState> -
The current stream of states.
no setterinherited
Methods
-
add(
AuthenticationEvent event) → void -
Notifies the Bloc of a new
eventwhich triggers all corresponding EventHandler instances.inherited -
addError(
Object error, [StackTrace? stackTrace]) → void -
Reports an
errorwhich triggers onError with an optional StackTrace.inherited -
close(
) → Future< void> -
Closes the
eventandstateStreams. This method should be called when a Bloc is no longer needed. Once close is called,eventsthat are added will not be processed. In addition, if close is called whileeventsare still being processed, the Bloc will finish processing the pendingevents.override -
emit(
AuthenticationState state) → void -
emit is only for internal use and should never be called directly
outside of tests. The Emitter instance provided to each EventHandler
should be used instead.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
on<
E extends Event> (EventHandler< E, AuthenticationState> handler, {EventTransformer<E> ? transformer}) → void -
Register event handler for an event of type
E. There should only ever be one event handler per event typeE.inherited -
onChange(
Change< AuthenticationState> change) → void -
Called whenever a
changeoccurs with the givenchange. Achangeoccurs when a newstateis emitted. onChange is called before thestateof thecubitis updated. onChange is a great spot to add logging/analytics for a specificcubit.inherited -
onDone(
AuthenticationEvent event, [Object? error, StackTrace? stackTrace]) → void -
Called whenever an
eventhandler for a specific Bloc has completed. This may include anerrorandstackTraceif an uncaught exception occurred within the event handler.inherited -
onError(
Object error, StackTrace stackTrace) → void -
Called whenever an
erroroccurs and notifies BlocObserver.onError.inherited -
onEvent(
AuthenticationEvent event) → void -
Called whenever an
eventis added to the Bloc. A great spot to add logging/analytics at the individual Bloc level.inherited -
onTransition(
Transition< AuthenticationEvent, AuthenticationState> transition) → void -
Called whenever a
transitionoccurs with the giventransition. Atransitionoccurs when a neweventis added and a new state isemittedfrom a corresponding EventHandler.inherited -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited