Implemented settings, new scan, enhanced UI/UX
This commit is contained in:
40
lib/feature/settings/bloc/settings_bloc.dart
Normal file
40
lib/feature/settings/bloc/settings_bloc.dart
Normal 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());
|
||||
}
|
||||
}
|
||||
}
|
||||
10
lib/feature/settings/bloc/settings_event.dart
Normal file
10
lib/feature/settings/bloc/settings_event.dart
Normal 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 {}
|
||||
11
lib/feature/settings/bloc/settings_state.dart
Normal file
11
lib/feature/settings/bloc/settings_state.dart
Normal 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;
|
||||
}
|
||||
Reference in New Issue
Block a user