Merge ssh://git.aitrainer.app:6622/bossanyit/aitrainer_app
This commit is contained in:
@@ -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];
|
||||
}
|
||||
Reference in New Issue
Block a user