Merge ssh://git.aitrainer.app:6622/bossanyit/aitrainer_app

This commit is contained in:
bossanyit
2020-11-29 10:41:13 +01:00
71 changed files with 1458 additions and 845 deletions
@@ -0,0 +1,51 @@
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';
import 'package:bloc/bloc.dart';
import 'package:equatable/equatable.dart';
part 'customer_exercise_device_event.dart';
part 'customer_exercise_device_state.dart';
class CustomerExerciseDeviceBloc extends Bloc<CustomerExerciseDeviceEvent, CustomerExerciseDeviceState> {
final CustomerExerciseDeviceRepository repository;
final List<ExerciseDevice> devices;
CustomerExerciseDeviceBloc({this.repository, this.devices}) : super(CustomerExerciseDeviceInitial()) {
if (repository.getDevices().isEmpty) {
repository.setDevices(Cache().getCustomerDevices());
}
}
@override
Stream<CustomerExerciseDeviceState> mapEventToState(
CustomerExerciseDeviceEvent event,
) async* {
try {
if (event is CustomerExerciseDeviceLoad) {
yield CustomerExerciseDeviceLoading();
yield CustomerExerciseDeviceReady();
} else if (event is CustomerExerciseDeviceAdd) {
yield CustomerExerciseDeviceLoading();
print("Add device " + event.device.exerciseDeviceId.toString());
await repository.addDevice(event.device);
Cache().initBadges();
yield CustomerExerciseDeviceReady();
} else if (event is CustomerExerciseDeviceRemove) {
print("Remove device " + event.device.exerciseDeviceId.toString());
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);
}
}
@@ -0,0 +1,32 @@
part of 'customer_exercise_device_bloc.dart';
abstract class CustomerExerciseDeviceEvent extends Equatable {
const CustomerExerciseDeviceEvent();
@override
List<Object> get props => [];
}
class CustomerExerciseDeviceLoad extends CustomerExerciseDeviceEvent {
const CustomerExerciseDeviceLoad();
}
class CustomerExerciseDeviceAdd extends CustomerExerciseDeviceEvent {
final ExerciseDevice device;
const CustomerExerciseDeviceAdd({this.device});
@override
List<Object> get props => [device];
}
class CustomerExerciseDeviceRemove extends CustomerExerciseDeviceEvent {
final ExerciseDevice device;
const CustomerExerciseDeviceRemove({this.device});
@override
List<Object> get props => [device];
}
class CustomerExerciseDeviceSave extends CustomerExerciseDeviceEvent {
const CustomerExerciseDeviceSave();
}
@@ -0,0 +1,28 @@
part of 'customer_exercise_device_bloc.dart';
abstract class CustomerExerciseDeviceState extends Equatable {
const CustomerExerciseDeviceState();
@override
List<Object> get props => [];
}
class CustomerExerciseDeviceInitial extends CustomerExerciseDeviceState {
const CustomerExerciseDeviceInitial();
}
class CustomerExerciseDeviceLoading extends CustomerExerciseDeviceState {
const CustomerExerciseDeviceLoading();
}
class CustomerExerciseDeviceReady extends CustomerExerciseDeviceState {
const CustomerExerciseDeviceReady();
}
class CustomerExerciseDeviceError extends CustomerExerciseDeviceState {
final String message;
const CustomerExerciseDeviceError({this.message});
@override
List<Object> get props => [message];
}