ThemeCubit class
A cubit that manages the app's ThemeMode and persists it across sessions via HydratedCubit.
Each theme change also synchronises system UI colours (status bar and navigation bar) via AppTheme.setStatusBarAndNavigationBarColors.
- Inheritance
-
- Object
- BlocBase<
ThemeState> - Cubit<
ThemeState> - HydratedCubit<
ThemeState> - ThemeCubit
Constructors
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- id → String
-
id is used to uniquely identify multiple instances
of the same HydratedBloc type.
In most cases it is not necessary;
however, if you wish to intentionally have multiple instances
of the same HydratedBloc, then you must override id
and return a unique identifier for each HydratedBloc instance
in order to keep the caches independent of each other.
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 → ThemeState
-
The current state.
no setterinherited
- storagePrefix → String
-
Storage prefix which can be overridden to provide a custom
storage namespace.
Defaults to runtimeType but should be overridden in cases
where stored data should be resilient to obfuscation, minification
or persist between debug/release builds.
no setterinherited
- storageToken → String
-
storageTokenis used as registration token for hydrated storage. Composed of storagePrefix and id.no setterinherited -
stream
→ Stream<
ThemeState> -
The current stream of states.
no setterinherited
Methods
-
addError(
Object error, [StackTrace? stackTrace]) → void -
Reports an
errorwhich triggers onError with an optional StackTrace.inherited -
changeToDarkTheme(
) → Future< void> - Switches the app to ThemeMode.dark and updates system UI colours.
-
changeToLightTheme(
) → Future< void> - Switches the app to ThemeMode.light and updates system UI colours.
-
clear(
) → Future< void> -
clear is used to wipe or invalidate the cache of a HydratedBloc.
Calling clear will delete the cached state of the bloc
but will not modify the current state of the bloc.
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.
inherited
-
emit(
ThemeState state) → void -
Updates the
stateto the providedstate. emit does nothing if thestatebeing emitted is equal to the currentstate.inherited -
fromJson(
Map< String, dynamic> json) → ThemeState? -
Responsible for converting the
Map<String, dynamic>representation of the bloc state into a concrete instance of the bloc state.override -
hydrate(
{Storage? storage, OnHydrationError onError = defaultOnHydrationError}) → void -
Populates the internal state storage with the latest state.
This should be called when using the HydratedMixin
directly within the constructor body.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
onChange(
Change< ThemeState> 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 -
onError(
Object error, StackTrace stackTrace) → void -
Called whenever an
erroroccurs and notifies BlocObserver.onError.inherited -
toJson(
ThemeState state) → Map< String, dynamic> ? -
Responsible for converting a concrete instance of the bloc state
into the the
Map<String, dynamic>representation.override -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited