PushNotificationBloc class
Manages Firebase Cloud Messaging push notifications.
This BLoC handles the complete push notification lifecycle including:
- Requesting and managing notification permissions
- Registering device tokens with the backend
- Processing foreground notifications
- Handling notification taps and deep links
- Managing initial notification when app is launched from terminated state
The bloc integrates with Firebase Cloud Messaging and maintains notification state for the application.
Constructors
- PushNotificationBloc()
- Creates a push notification bloc with initial state.
- PushNotificationBloc.fromInitialMessage(RemoteMessage? initialMessage)
- Creates a push notification bloc with an initial notification message.
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 → PushNotificationState
-
The current state.
no setterinherited
-
stream
→ Stream<
PushNotificationState> -
The current stream of states.
no setterinherited
Methods
-
add(
PushNotificationEvent event) → void -
Notifies the
Blocof a neweventwhich triggers all correspondingEventHandlerinstances.inherited -
addError(
Object error, [StackTrace? stackTrace]) → void -
Reports an
errorwhich triggersonErrorwith an optional StackTrace.inherited -
close(
) → Future< void> -
Closes the
eventandstateStreams. This method should be called when aBlocis no longer needed. Oncecloseis called,eventsthat areadded will not be processed. In addition, ifcloseis called whileeventsare still being processed, theBlocwill finish processing the pendingevents.inherited -
emit(
PushNotificationState state) → void -
emitis only for internal use and should never be called directly outside of tests. TheEmitterinstance provided to eachEventHandlershould be used instead.inherited -
getInitialNotification(
) → Future< UserNotification?> - Retrieves the notification that launched the app from terminated state.
-
hasNotificationPermission(
) → Future< bool> - Checks if the app has been granted notification permissions.
-
initializeNotifications(
{required String appId, String? channelName}) → Future< void> - Initializes push notification system with permissions and handlers.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
on<
E extends Event> (EventHandler< E, PushNotificationState> 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< PushNotificationState> change) → void -
Called whenever a
changeoccurs with the givenchange. Achangeoccurs when a newstateis emitted.onChangeis called before thestateof thecubitis updated.onChangeis a great spot to add logging/analytics for a specificcubit.inherited -
onClose(
) → Future< void> - Cleans up notification subscriptions.
-
onDone(
PushNotificationEvent event, [Object? error, StackTrace? stackTrace]) → void -
Called whenever an
eventhandler for a specificBlochas 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 notifiesBlocObserver.onError.inherited -
onEvent(
PushNotificationEvent event) → void -
Called whenever an
eventisadded to theBloc. A great spot to add logging/analytics at the individualBloclevel.inherited -
onTransition(
Transition< PushNotificationEvent, PushNotificationState> transition) → void -
Called whenever a
transitionoccurs with the giventransition. Atransitionoccurs when a neweventis added and a new state isemittedfrom a correspondingEventHandler.inherited -
registerDeviceToken(
String appCode) → Future< void> - Registers this device's FCM token with the backend.
-
requestNotificationPermission(
) → Future< bool> - Requests notification permissions from the user.
-
toString(
) → String -
A string representation of this object.
inherited
-
unregisterDeviceToken(
{int? subSystemId, required String appCode}) → Future< void> - Unregisters this device's FCM token from the backend.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
setBackgroundMessageHandler(
Future< void> handler(RemoteMessage message)) → void - Sets the handler for notifications received in the background.