AutoPersistedBloc<S> constructor
AutoPersistedBloc<S> (
- PersistenceService _persistenceService, {
- S? startState,
- BlocMonitor<
Bloc, dynamic> monitor = const BlocEventsPrinter(), - Object tag = 0,
- Deserializer<
S> ? deserializer, - Serializer<
S> ? serializer,
Implementation
AutoPersistedBloc(
this._persistenceService, {
S? startState,
BlocMonitor monitor = const BlocEventsPrinter(),
this.tag = 0,
this.deserializer,
this.serializer,
}) : super(
initialState: null,
monitor: monitor,
) {
assert(_stateIsPrimitive || deserializer != null);
assert(_stateIsPrimitive || serializer != null);
_persistenceService.get(persistenceKey).then((lastState) {
if (lastState == null) {
if (startState != null) {
// if initialState is null then the bloc's is already set to busy
super.setState(startState, event: 'initializing');
}
} else {
if (lastState is S) {
super.setState(lastState, event: 'recovered_state');
} else {
assert(deserializer != null);
super.setState(deserializer!(lastState), event: 'recovered_state');
}
}
_initialization.complete();
});
}