34 lines
951 B
Dart
34 lines
951 B
Dart
import 'package:bloc/bloc.dart';
|
|
import 'package:tanami_app/core/utils/secure/secure_storage_service.dart';
|
|
|
|
import 'toggle_event.dart';
|
|
import 'toggle_state.dart';
|
|
|
|
class ToggleBloc extends Bloc<ToggleEvent, ToggleState> {
|
|
final String type;
|
|
|
|
final SecureStorageService secureStorageService = SecureStorageService();
|
|
|
|
ToggleBloc(this.type) : super(ToggleInitial()) {
|
|
on<ToggleSwitch>(_onToggleSwitch);
|
|
_initializeToggleState();
|
|
}
|
|
|
|
void _onToggleSwitch(ToggleSwitch event, Emitter<ToggleState> emit) async {
|
|
if (state is ToggleOn) {
|
|
emit(ToggleOff());
|
|
await secureStorageService.write(type, 'off');
|
|
} else {
|
|
emit(ToggleOn());
|
|
await secureStorageService.write(type, 'on');
|
|
}
|
|
}
|
|
|
|
void _initializeToggleState() async {
|
|
final toggleValue = await secureStorageService.read(type);
|
|
if (toggleValue == 'on') {
|
|
add(ToggleSwitch()); // Initializing the state by adding an event
|
|
}
|
|
}
|
|
}
|