WT 1.1.26+3 bloc migration

This commit is contained in:
Tibor Bossanyi (Freelancer)
2022-04-15 08:47:32 +02:00
parent 60df0bcf2d
commit 225172f950
47 changed files with 1527 additions and 1620 deletions
@@ -1,5 +1,3 @@
import 'dart:async';
import 'package:aitrainer_app/model/cache.dart';
import 'package:aitrainer_app/model/exercise_device.dart';
import 'package:aitrainer_app/repository/customer_exercise_device_repository.dart';
@@ -16,36 +14,38 @@ class CustomerExerciseDeviceBloc extends Bloc<CustomerExerciseDeviceEvent, Custo
final List<ExerciseDevice>? devices;
CustomerExerciseDeviceBloc({required this.repository, required this.devices}) : super(CustomerExerciseDeviceInitial()) {
_load();
on<CustomerExerciseDeviceLoad>(_onLoad);
on<CustomerExerciseDeviceAdd>(_onDeviceAdd);
on<CustomerExerciseDeviceRemove>(_onDeviceRemove);
}
void _onLoad(CustomerExerciseDeviceLoad event, Emitter<CustomerExerciseDeviceState> emit) {
emit(CustomerExerciseDeviceLoading());
emit(CustomerExerciseDeviceReady());
}
void _onDeviceAdd(CustomerExerciseDeviceAdd event, Emitter<CustomerExerciseDeviceState> emit) async {
emit(CustomerExerciseDeviceLoading());
await repository.addDevice(event.device);
Cache().initBadges();
emit(CustomerExerciseDeviceReady());
}
void _onDeviceRemove(CustomerExerciseDeviceRemove event, Emitter<CustomerExerciseDeviceState> emit) async {
emit(CustomerExerciseDeviceLoading());
await repository.removeDevice(event.device);
Cache().initBadges();
emit(CustomerExerciseDeviceReady());
}
void _load() {
if (repository.getDevices().isEmpty) {
repository.setDevices(Cache().getCustomerDevices()!);
}
Track().track(TrackingEvent.exercise_device);
}
@override
Stream<CustomerExerciseDeviceState> mapEventToState(
CustomerExerciseDeviceEvent event,
) async* {
try {
if (event is CustomerExerciseDeviceLoad) {
yield CustomerExerciseDeviceLoading();
yield CustomerExerciseDeviceReady();
} else if (event is CustomerExerciseDeviceAdd) {
yield CustomerExerciseDeviceLoading();
await repository.addDevice(event.device);
Cache().initBadges();
yield CustomerExerciseDeviceReady();
} else if (event is CustomerExerciseDeviceRemove) {
yield CustomerExerciseDeviceLoading();
await repository.removeDevice(event.device);
Cache().initBadges();
yield CustomerExerciseDeviceReady();
}
} on Exception catch (ex) {
yield CustomerExerciseDeviceError(message: ex.toString());
}
}
bool hasCustomerDevice(int exerciseDeviceId) {
return repository.hasDevice(exerciseDeviceId);
}