Implemented settings, new scan, enhanced UI/UX

This commit is contained in:
Dennis Nemec
2025-11-04 16:52:39 +01:00
parent b19a6e1cd4
commit 7ea9108f62
79 changed files with 3306 additions and 566 deletions

View File

@ -0,0 +1,40 @@
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());
}
}
}

View File

@ -0,0 +1,10 @@
import 'package:hl_lieferservice/feature/settings/model/settings.dart';
abstract class SettingsEvent {}
class UpdateSettings extends SettingsEvent {
UpdateSettings({required this.settings});
Settings settings;
}
class LoadSettings extends SettingsEvent {}

View File

@ -0,0 +1,11 @@
import 'package:hl_lieferservice/feature/settings/model/settings.dart';
abstract class SettingsState {}
class AppSettingsInitial extends SettingsState {}
class AppSettingsFailed extends SettingsState {}
class AppSettingsLoaded extends SettingsState {
AppSettingsLoaded({required this.settings});
Settings settings;
}