TimerCubit class

A Cubit that manages the state of a countdown timer with background persistence.

It handles the core logic of ticking, pausing, and calculating elapsed time that occurred while the app was inactive or closed.

Constructors

TimerCubit({TimerStorageManager? storageManager})
Creates a TimerCubit.

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 → TimerState
The current state.
no setterinherited
storageManager → TimerStorageManager
The manager responsible for persisting timer and timestamp data.
final
stream → Stream<TimerState>
The current stream of states.
no setterinherited

Methods

addError(Object error, [StackTrace? stackTrace]) → void
Reports an error which triggers onError with an optional StackTrace.
inherited
close() → Future<void>
Closes the instance. This method should be called when the instance is no longer needed. Once close is called, the instance can no longer be used.
currentTimer() → FutureOr<int>
Calculates the remaining time by comparing the current time with the saved background timestamp.
currentTimeStampInEpoch() → int
Returns the current system time in milliseconds since epoch.
emit(TimerState state) → void
Updates the state to the provided state. emit does nothing if the state being emitted is equal to the current state.
inherited
init() → Future<void>
Initializes the cubit by checking local storage for an existing timer.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onBackground() → Future<void>
Saves the current state and a timestamp to storage when the app enters the background.
onChange(Change<TimerState> change) → void
Called whenever a change occurs with the given change. A change occurs when a new state is emitted. onChange is called before the state of the cubit is updated. onChange is a great spot to add logging/analytics for a specific cubit.
inherited
onError(Object error, StackTrace stackTrace) → void
Called whenever an error occurs and notifies BlocObserver.onError.
inherited
pause() → void
Pauses the active timer and persists the current state.secondsRemaining to local storage.
resume() → void
Resumes a paused timer from its current state.secondsRemaining.
start(int duration) → void
Starts a new countdown timer for the specified duration in seconds.
stop() → void
Stops the timer and resets the state to zero.
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited