68 lines
2.2 KiB
Dart
68 lines
2.2 KiB
Dart
import 'dart:async';
|
|
import 'package:aitrainer_app/bloc/development_diagram/development_diagram_bloc.dart';
|
|
import 'package:aitrainer_app/repository/exercise_repository.dart';
|
|
import 'package:aitrainer_app/repository/workout_tree_repository.dart';
|
|
import 'package:bloc/bloc.dart';
|
|
import 'package:equatable/equatable.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
part 'body_development_event.dart';
|
|
part 'body_development_state.dart';
|
|
|
|
enum DiagramDateFilterGroup { l3m, fm_lm, l3t, yearly }
|
|
|
|
class BodyDevelopmentBloc extends Bloc<BodyDevelopmentEvent, BodyDevelopmentState> {
|
|
final WorkoutTreeRepository workoutTreeRepository;
|
|
final ExerciseRepository exerciseRepository = ExerciseRepository();
|
|
|
|
List<int> radarTicks = [];
|
|
List<String> radarFeatures = [];
|
|
List<List<int>> radarData = [];
|
|
DiagramGroup group = DiagramGroup.sumMass;
|
|
DiagramDateFilterGroup filter = DiagramDateFilterGroup.l3t;
|
|
|
|
@override
|
|
BodyDevelopmentBloc({required this.workoutTreeRepository}) : super(BodyDevelopmentInitial()) {
|
|
on<BodyDevelopmentLoad>(_onLoad);
|
|
on<BodyDevelopmentChangeDate>(_onDateFilterChange);
|
|
on<BodyDevelopmentChangeGroup>(_onGroupChange);
|
|
}
|
|
|
|
List<MaterialColor> defaultGraphColors = [
|
|
Colors.green,
|
|
Colors.blue,
|
|
Colors.red,
|
|
Colors.orange,
|
|
];
|
|
|
|
Future<void> getData() async {
|
|
radarTicks = [20, 40, 60, 80, 100];
|
|
radarFeatures = ["Mell", "Bicepsz", "Tricepsz", "Hát", "Váll", "Core", "Comb", "Vádli"];
|
|
radarData = [
|
|
[80, 95, 45, 67, 83, 40, 56, 78],
|
|
[82, 90, 56, 77, 82, 40, 50, 87],
|
|
[86, 92, 58, 70, 80, 49, 52, 87],
|
|
];
|
|
}
|
|
|
|
void _onLoad(BodyDevelopmentLoad event, Emitter<BodyDevelopmentState> emit) {
|
|
emit(BodyDevelopmentLoading());
|
|
getData();
|
|
emit(BodyDevelopmentReady());
|
|
}
|
|
|
|
void _onDateFilterChange(BodyDevelopmentChangeDate event, Emitter<BodyDevelopmentState> emit) {
|
|
emit(BodyDevelopmentLoading());
|
|
this.filter = event.filter;
|
|
getData();
|
|
emit(BodyDevelopmentReady());
|
|
}
|
|
|
|
void _onGroupChange(BodyDevelopmentChangeGroup event, Emitter<BodyDevelopmentState> emit) {
|
|
emit(BodyDevelopmentLoading());
|
|
this.group = event.group;
|
|
getData();
|
|
emit(BodyDevelopmentReady());
|
|
}
|
|
}
|