wt1.1.2d ProgressInfo+

This commit is contained in:
Bossanyi Tibor
2020-10-09 07:54:54 +02:00
parent 0cdc3a9d24
commit 35f0d0042f
66 changed files with 1615 additions and 576 deletions
+68 -3
View File
@@ -1,22 +1,72 @@
import 'dart:async';
import 'package:aitrainer_app/model/cache.dart';
import 'package:aitrainer_app/model/workout_menu_tree.dart';
import 'package:aitrainer_app/repository/exercise_repository.dart';
import 'package:aitrainer_app/repository/workout_tree_repository.dart';
import 'package:aitrainer_app/util/trans.dart';
import 'package:bloc/bloc.dart';
import 'package:equatable/equatable.dart';
import 'package:flutter/cupertino.dart';
import 'package:meta/meta.dart';
part 'menu_event.dart';
part 'menu_state.dart';
class MenuBloc extends Bloc<MenuEvent, MenuState> {
class MenuBloc extends Bloc<MenuEvent, MenuState> with Trans {
final WorkoutTreeRepository menuTreeRepository;
final ExerciseRepository exerciseRepository = ExerciseRepository();
int parent;
WorkoutMenuTree workoutItem;
String infoTitle = "";
String infoText = "";
String infoText2 = "";
String infoText3 = "";
String infoLink = "";
int missingParent = 0;
String missingTreeName = "";
BuildContext context;
MenuBloc({this.menuTreeRepository}) : super(MenuInitial()) {
parent = 0;
}
void setMenuInfo() {
double percent = Cache().getPercentExercises();
if ( context == null ) return;
percent = percent * 100;
print("Percent " + percent.toString());
if ( percent == -1 || percent == 0) {
infoTitle = t("Greetings!");
infoText = t("The purpose is to measure you physical condition") + " " + t("The suggested order of the exercises: chest - biceps - triceps - back - shoulders - core - tigh - calf.");
infoText2 = t("I suggest begin your tests with a");
infoText3 = t("Go to the menu Strength - One Rep Max - Chest, and select your favourite exercise.");
infoLink = t("Bring me there");
} else if ( percent > 0 && percent < 20) {
infoTitle = t("Nice! This is a good start");
} else if ( percent > 20 && percent < 40) {
infoTitle = t("Go on!") + " " + t("You are on track");
} else if ( percent > 60 && percent < 80) {
infoTitle = t("Persistence!") + " " + t("Not so much left");
} else if ( percent > 80 && percent < 100) {
infoTitle = t("Almost!") + " " + t("You have only 1-2 exercise left to finish!");
}
menuTreeRepository.sortByMuscleType();
missingTreeName = exerciseRepository.nextMissingBaseExercise(menuTreeRepository.sortedTree);
print("Missing " + missingTreeName);
if ( percent > 0) {
infoText = t("Please continue your tests with a") + " '" + missingTreeName + "' " + t("exercise!");
infoLink = t("Bring me there");
}
}
void setContext(BuildContext context) {
this.context = context;
}
@override
Stream<MenuState> mapEventToState(
MenuEvent event,
@@ -25,6 +75,7 @@ class MenuBloc extends Bloc<MenuEvent, MenuState> {
if ( event is MenuCreate ) {
yield MenuLoading();
await menuTreeRepository.createTree();
setMenuInfo();
yield MenuReady();
} else if (event is MenuRecreateTree) {
// ie. at language changes
@@ -34,14 +85,28 @@ class MenuBloc extends Bloc<MenuEvent, MenuState> {
// get child menus or exercises
yield MenuLoading();
parent = event.parent;
workoutItem = event.item;
//print("menuitem " + workoutItem.id.toString() + " parent "+workoutItem.parent.toString());
menuTreeRepository.getBranch(event.parent);
yield MenuReady();
} else if (event is MenuTreeUp) {
yield MenuLoading();
// get parent menus or exercises
parent = event.parent;
menuTreeRepository.getBranch(parent);
workoutItem = menuTreeRepository.getParentItem(parent);
if ( workoutItem != null) {
//print("UP menuitem " + workoutItem.id.toString() + " parent " + workoutItem.parent.toString());
menuTreeRepository.getBranch(workoutItem.parent);
}
yield MenuReady();
} else if (event is MenuTreeJump) {
yield MenuLoading();
parent = event.parent;
workoutItem = menuTreeRepository.getParentItem(parent);
if ( workoutItem != null) {
//print("JUMP menuitem " + workoutItem.id.toString() + " parent " + workoutItem.parent.toString());
menuTreeRepository.getBranch(workoutItem.parent);
}
yield MenuReady();
} else if (event is MenuClickExercise) {
yield MenuLoading();
+13 -3
View File
@@ -16,16 +16,26 @@ class MenuCreate extends MenuEvent {
}
class MenuTreeDown extends MenuEvent {
final WorkoutMenuTree item;
final int parent;
const MenuTreeDown({this.parent});
const MenuTreeDown({this.parent, this.item});
@override
List<Object> get props => [parent];
List<Object> get props => [parent, item];
}
class MenuTreeUp extends MenuEvent {
final int parent;
const MenuTreeUp({this.parent});
final WorkoutMenuTree item;
const MenuTreeUp({this.parent, this.item});
@override
List<Object> get props => [parent, item];
}
class MenuTreeJump extends MenuEvent {
final int parent;
const MenuTreeJump({this.parent});
@override
List<Object> get props => [parent];