Files
Holzleitner-Lieferservice-App/lib/feature/settings/bloc/settings_bloc.dart
2025-11-04 16:52:39 +01:00

41 lines
1.4 KiB
Dart

import 'package:flutter/cupertino.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:hl_lieferservice/feature/settings/bloc/settings_event.dart';
import 'package:hl_lieferservice/feature/settings/bloc/settings_state.dart';
import 'package:hl_lieferservice/feature/settings/model/settings.dart';
import 'package:hl_lieferservice/feature/settings/repository/settings_repository.dart';
class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
SettingsRepository repository;
SettingsBloc()
: repository = SettingsRepository(),
super(AppSettingsInitial()) {
on<LoadSettings>(_load);
on<UpdateSettings>(_update);
}
void _load(LoadSettings event, Emitter<SettingsState> emit) async {
try {
Settings settings = await repository.getSettings();
debugPrint("use ${settings.useHardwareScanner}");
emit(AppSettingsLoaded(settings: settings));
} catch (e, st) {
debugPrint("Failed to load settings: $e}");
debugPrint("Stacktrace: ${st.toString()}");
emit(AppSettingsFailed());
}
}
void _update(UpdateSettings event, Emitter<SettingsState> emit) {
try {
repository.saveSettings(event.settings);
emit(AppSettingsLoaded(settings: event.settings.copyWith()));
} catch (e, st) {
debugPrint("Failed to save settings: $e}");
debugPrint("Stacktrace: ${st.toString()}");
emit(AppSettingsFailed());
}
}
}