wt1.1d custom exercise, mydevelopment exercise list, environment for different databases
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
import 'dart:collection';
|
||||
|
||||
import 'package:aitrainer_app/model/cache.dart';
|
||||
import 'package:aitrainer_app/model/customer.dart';
|
||||
import 'package:aitrainer_app/model/exercise.dart';
|
||||
import 'package:aitrainer_app/model/exercise_type.dart';
|
||||
import 'package:aitrainer_app/model/workout_tree.dart';
|
||||
import 'package:aitrainer_app/service/exercise_service.dart';
|
||||
|
||||
class ExerciseRepository {
|
||||
@@ -70,6 +73,7 @@ class ExerciseRepository {
|
||||
modelExercise.customerId = this.customer.customerId;
|
||||
modelExercise.exerciseTypeId = this.exerciseType.exerciseTypeId;
|
||||
await ExerciseApi().addExercise(modelExercise);
|
||||
Cache().addExercise(exercise);
|
||||
}
|
||||
|
||||
|
||||
@@ -96,8 +100,57 @@ class ExerciseRepository {
|
||||
return this.exerciseList;
|
||||
}
|
||||
|
||||
double getBaseExerciseFinishedPercent() {
|
||||
return 0;
|
||||
void getBaseExerciseFinishedPercent() {
|
||||
List<int> checkedExerciseTypeId = List();
|
||||
List<int> baseTreeItem = List();
|
||||
List<int> checkedBaseTreeItem = List();
|
||||
int count1RMExercises = 0;
|
||||
LinkedHashMap<String, WorkoutTree> tree = Cache().getWorkoutTree();
|
||||
|
||||
if ( tree == null ) {
|
||||
return;
|
||||
}
|
||||
|
||||
tree.forEach((key, value) {
|
||||
WorkoutTree treeItem = value;
|
||||
if (treeItem.exerciseType != null &&
|
||||
treeItem.exerciseType.base == true &&
|
||||
!baseTreeItem.contains(treeItem.parent)) {
|
||||
baseTreeItem.add(treeItem.parent);
|
||||
}
|
||||
});
|
||||
|
||||
if ( exerciseList == null ) {
|
||||
exerciseList = Cache().getExercises();
|
||||
}
|
||||
|
||||
if ( exerciseList == null ) {
|
||||
return;
|
||||
}
|
||||
|
||||
exerciseList.forEach((element) {
|
||||
Exercise exercise = element;
|
||||
if ( !checkedExerciseTypeId.contains(exercise.exerciseTypeId )) {
|
||||
checkedExerciseTypeId.add(exercise.exerciseTypeId);
|
||||
tree.forEach((key, value) {
|
||||
WorkoutTree treeItem = value;
|
||||
if (treeItem.exerciseType != null
|
||||
&& treeItem.exerciseType.base == true
|
||||
&& exercise.exerciseTypeId == treeItem.exerciseType.exerciseTypeId
|
||||
&& !checkedBaseTreeItem.contains(treeItem.parent)) {
|
||||
print ("id: " + exercise.exerciseTypeId.toString());
|
||||
checkedBaseTreeItem.add(treeItem.parent);
|
||||
count1RMExercises++;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
print ("checkedExerciseTypeid: " + checkedExerciseTypeId.toString());
|
||||
print ("baseTreeItem: " + baseTreeItem.toString());
|
||||
print ("count1RMExercises: " + count1RMExercises.toString());
|
||||
final double percent = count1RMExercises / baseTreeItem.length;
|
||||
Cache().setPercentExercises(percent);
|
||||
}
|
||||
|
||||
void getLastExercise() {
|
||||
@@ -128,4 +181,5 @@ class ExerciseRepository {
|
||||
}
|
||||
return actualExerciseType;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import 'package:aitrainer_app/model/cache.dart';
|
||||
import 'package:aitrainer_app/model/exercise_tree.dart';
|
||||
import 'package:aitrainer_app/model/exercise_type.dart';
|
||||
import 'package:aitrainer_app/model/workout_tree.dart';
|
||||
import 'package:aitrainer_app/repository/exercise_repository.dart';
|
||||
import 'package:aitrainer_app/service/exercise_tree_service.dart';
|
||||
import 'package:aitrainer_app/service/exercisetype_service.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
@@ -12,9 +13,9 @@ class MenuTreeRepository {
|
||||
final LinkedHashMap tree = LinkedHashMap<String, WorkoutTree>();
|
||||
|
||||
Future<void> createTree() async {
|
||||
|
||||
final AppLanguage appLanguage = AppLanguage();
|
||||
bool isEnglish = appLanguage.appLocal == Locale('en');
|
||||
print("** Start creating tree on lang: " + appLanguage.appLocal.toString());
|
||||
|
||||
List<ExerciseTree> exerciseTree = Cache().getExerciseTree();
|
||||
if ( exerciseTree == null || exerciseTree.length == 0) {
|
||||
@@ -25,8 +26,8 @@ class MenuTreeRepository {
|
||||
String treeName = isEnglish ? treeItem.name : treeItem.nameTranslation;
|
||||
String assetImage = 'asset/menu/' + treeItem.imageUrl.substring(7);
|
||||
bool is1RM = treeItem.name == '1RM' ? true : false;
|
||||
if ( is1RM == false) {
|
||||
is1RM = false; //isParent1RM(treeItem.treeId);
|
||||
if ( is1RM == false && treeItem.parentId != 0) {
|
||||
is1RM = isParent1RM(treeItem.parentId);
|
||||
}
|
||||
this.tree[treeItem.name] = WorkoutTree(
|
||||
treeItem.treeId,
|
||||
@@ -51,7 +52,8 @@ class MenuTreeRepository {
|
||||
String exerciseTypeName = isEnglish ?
|
||||
exerciseType.name : exerciseType.nameTranslation;
|
||||
String assetImage = 'asset/menu/' + exerciseType.imageUrl.substring(7);
|
||||
bool is1RM = false; //this.isParent1RM(exerciseType.treeId);
|
||||
bool is1RM = this.isParent1RM(exerciseType.treeId);
|
||||
exerciseType.is1RM = is1RM;
|
||||
this.tree[exerciseType.name] = WorkoutTree(
|
||||
exerciseType.exerciseTypeId,
|
||||
exerciseType.treeId,
|
||||
@@ -66,18 +68,24 @@ class MenuTreeRepository {
|
||||
is1RM
|
||||
);
|
||||
});
|
||||
|
||||
Cache().setWorkoutTree(tree);
|
||||
ExerciseRepository exerciseRepository = ExerciseRepository();
|
||||
exerciseRepository.getBaseExerciseFinishedPercent();
|
||||
}
|
||||
|
||||
bool isParent1RM(int treeId) {
|
||||
bool isTreeItem1RM = false;
|
||||
|
||||
for (int i = 0; i < this.tree.length; i++ ) {
|
||||
WorkoutTree treeItem = this.tree[i];
|
||||
this.tree.forEach((key, value) {
|
||||
WorkoutTree treeItem = value as WorkoutTree;
|
||||
if ( treeItem.id == treeId ) {
|
||||
isTreeItem1RM = treeItem.is1RM;
|
||||
break;
|
||||
//print (treeItem.name + " 1RM " + treeItem.is1RM.toString() );
|
||||
}
|
||||
};
|
||||
|
||||
});
|
||||
|
||||
return isTreeItem1RM;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user