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
errorwhich triggersonErrorwith 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
stateto the providedstate.emitdoes nothing if thestatebeing emitted is equal to the currentstate.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
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 -
onError(
Object error, StackTrace stackTrace) → void -
Called whenever an
erroroccurs and notifiesBlocObserver.onError.inherited -
pause(
) → void -
Pauses the active timer and persists the current
state.secondsRemainingto 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
durationin 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