Files
Tanami_App/lib/shared/components/bloc/toggle/toggle_bloc.dart
2024-07-03 18:46:18 +05:30

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
}
}
}