v1.1 dart fix

This commit is contained in:
bossanyit 2023-05-14 09:53:18 +02:00
parent 7e4934f15e
commit 14731c5ee7
9 changed files with 68 additions and 64 deletions

View File

@ -1,5 +1,10 @@
Workout Test and Diet 4 You Common Util Functions Workout Test and Diet 4 You Common Util Functions
### Version 1.1.0
- Flutter 3.10, dart fix
### Version 1.0.29 ### Version 1.0.29
- gpt4 model - gpt4 model

View File

@ -2,7 +2,6 @@ import 'package:flutter/material.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:workouttest_util/model/cache.dart'; import 'package:workouttest_util/model/cache.dart';
import 'package:workouttest_util/service/customer_service.dart'; import 'package:workouttest_util/service/customer_service.dart';
import 'package:workouttest_util/service/openai_service.dart';
void main() async { void main() async {
WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();

View File

@ -481,7 +481,7 @@ class Cache with Logging {
_exercisesTrainee = null; _exercisesTrainee = null;
_traineeExercisePlan = null; _traineeExercisePlan = null;
_exercises = []; _exercises = [];
_myExercisesPlanDetails = LinkedHashMap(); _myExercisesPlanDetails = LinkedHashMap<int, ExercisePlanDetail>();
log("Trainees is null? ${_trainee == null}"); log("Trainees is null? ${_trainee == null}");
Future<SharedPreferences> prefs = SharedPreferences.getInstance(); Future<SharedPreferences> prefs = SharedPreferences.getInstance();
await setPreferences(prefs, SharePrefsChange.logout, 0, ""); await setPreferences(prefs, SharePrefsChange.logout, 0, "");
@ -637,7 +637,7 @@ class Cache with Logging {
void initBadges() { void initBadges() {
CustomerRepository customerRepository = CustomerRepository(); CustomerRepository customerRepository = CustomerRepository();
_badges = LinkedHashMap(); _badges = LinkedHashMap<String, int>();
if (userLoggedIn == null) { if (userLoggedIn == null) {
return; return;
} }

View File

@ -6,7 +6,7 @@ class ExerciseDeviceRepository {
List<ExerciseDevice> _devices = []; List<ExerciseDevice> _devices = [];
List<ExerciseDevice> getDevices() { List<ExerciseDevice> getDevices() {
return this._devices; return _devices;
} }
void setDevices(List<ExerciseDevice> list) { void setDevices(List<ExerciseDevice> list) {
@ -14,15 +14,15 @@ class ExerciseDeviceRepository {
} }
Future<List<ExerciseDevice>> getDBDevices() async { Future<List<ExerciseDevice>> getDBDevices() async {
this._devices = await ExerciseDeviceApi().getDevices(); _devices = await ExerciseDeviceApi().getDevices();
return this._devices; return _devices;
} }
bool isGym(int deviceId) { bool isGym(int deviceId) {
bool isGym = false; bool isGym = false;
_devices.forEach((element) { for (var element in _devices) {
isGym = isGymElement(element.name); isGym = isGymElement(element.name);
}); }
return isGym; return isGym;
} }
@ -42,11 +42,11 @@ class ExerciseDeviceRepository {
if (_devices.isEmpty) { if (_devices.isEmpty) {
_devices = Cache().getDevices()!; _devices = Cache().getDevices()!;
} }
_devices.forEach((element) { for (var element in _devices) {
if (isGymElement(element.name)) { if (isGymElement(element.name)) {
gymDevices.add(element); gymDevices.add(element);
} }
}); }
return gymDevices; return gymDevices;
} }
} }

View File

@ -20,21 +20,21 @@ class TrainingPlanRepository with Common, Logging {
final List<ExerciseTree>? exerciseTree = Cache().getExerciseTree(); final List<ExerciseTree>? exerciseTree = Cache().getExerciseTree();
int? parentId; int? parentId;
if (exerciseTree != null) { if (exerciseTree != null) {
exerciseTree.forEach((element) { for (var element in exerciseTree) {
if (element.internalName == parent) { if (element.internalName == parent) {
parentId = element.treeId; parentId = element.treeId;
parentTree = element; parentTree = element;
} }
}); }
} }
final List<TrainingPlan>? plans = Cache().getTrainingPlans(); final List<TrainingPlan>? plans = Cache().getTrainingPlans();
if (plans != null && parentId != null) { if (plans != null && parentId != null) {
plans.forEach((element) { for (var element in plans) {
if (element.treeId == parentId) { if (element.treeId == parentId) {
resultList.add(element); resultList.add(element);
} }
}); }
} }
return resultList; return resultList;
} }
@ -48,12 +48,12 @@ class TrainingPlanRepository with Common, Logging {
log(" **** Activate Plan: $trainingPlanId"); log(" **** Activate Plan: $trainingPlanId");
// 1. deactivate // 1. deactivate
if (Cache().getCustomerTrainingPlans() != null) { if (Cache().getCustomerTrainingPlans() != null) {
Cache().getCustomerTrainingPlans()!.forEach((plan) { for (var plan in Cache().getCustomerTrainingPlans()!) {
plan.active = false; plan.active = false;
if (plan.customerTrainingPlanId != null) { if (plan.customerTrainingPlanId != null) {
//TrainingPlanApi().updateCustomerTrainingPlan(plan, plan.customerTrainingPlanId!); //TrainingPlanApi().updateCustomerTrainingPlan(plan, plan.customerTrainingPlanId!);
} }
}); }
} }
CustomerTrainingPlan plan = CustomerTrainingPlan(); CustomerTrainingPlan plan = CustomerTrainingPlan();
@ -72,14 +72,14 @@ class TrainingPlanRepository with Common, Logging {
// 3 calculate weights // 3 calculate weights
int index = 0; int index = 0;
int exerciseTypeIdOrig = 0; int exerciseTypeIdOrig = 0;
trainingPlan.details!.forEach((elem) { for (var elem in trainingPlan.details!) {
List<CustomerTrainingPlanDetails> list = createDetail(plan, elem, exerciseTypeIdOrig, index); List<CustomerTrainingPlanDetails> list = createDetail(plan, elem, exerciseTypeIdOrig, index);
exerciseTypeIdOrig = elem.exerciseTypeId; exerciseTypeIdOrig = elem.exerciseTypeId;
list.forEach((element) { for (var element in list) {
plan.details.add(element); plan.details.add(element);
index++; index++;
}); }
}); }
Cache().myTrainingPlan = plan; Cache().myTrainingPlan = plan;
@ -251,21 +251,21 @@ class TrainingPlanRepository with Common, Logging {
// reverse // reverse
return a.dateAdd!.compareTo(b.dateAdd!); return a.dateAdd!.compareTo(b.dateAdd!);
}); });
exercises.forEach((exercise) { for (var exercise in exercises) {
if (exercise.exerciseTypeId == exerciseTypeId && exercise.dateAdd!.compareTo(dt) >= 0) { if (exercise.exerciseTypeId == exerciseTypeId && exercise.dateAdd!.compareTo(dt) >= 0) {
detail.weight = weight; detail.weight = weight;
lastExercise1RM = exercise; lastExercise1RM = exercise;
//print("last exercise: $exercise"); //print("last exercise: $exercise");
} }
}); }
if (lastExercise1RM == null || lastExercise1RM!.unitQuantity == null) { if (lastExercise1RM == null || lastExercise1RM.unitQuantity == null) {
detail.weight = weight; detail.weight = weight;
detail.isTest = true; detail.isTest = true;
return detail; return detail;
} }
double oneRepMax = calculateMax1RMSameDay(lastExercise1RM!); double oneRepMax = calculateMax1RMSameDay(lastExercise1RM);
// Common.calculate1RM(lastExercise1RM!.unitQuantity!, lastExercise1RM!.quantity!); // Common.calculate1RM(lastExercise1RM!.unitQuantity!, lastExercise1RM!.quantity!);
//print("Exercise $exerciseTypeId - 1RM : $oneRepMax"); //print("Exercise $exerciseTypeId - 1RM : $oneRepMax");
weight = oneRepMax * Common.get1RMPercent(detail.repeats!); weight = oneRepMax * Common.get1RMPercent(detail.repeats!);
@ -286,7 +286,7 @@ class TrainingPlanRepository with Common, Logging {
List<Exercise> exercises = Cache().getExercises()!; List<Exercise> exercises = Cache().getExercises()!;
double max1RM = 0.0; double max1RM = 0.0;
exercises.forEach((exercise) { for (var exercise in exercises) {
if (actual.exerciseTypeId == exercise.exerciseTypeId && if (actual.exerciseTypeId == exercise.exerciseTypeId &&
actual.dateAdd!.year == exercise.dateAdd!.year && actual.dateAdd!.year == exercise.dateAdd!.year &&
actual.dateAdd!.month == exercise.dateAdd!.month && actual.dateAdd!.month == exercise.dateAdd!.month &&
@ -296,7 +296,7 @@ class TrainingPlanRepository with Common, Logging {
max1RM = oneRepMax; max1RM = oneRepMax;
} }
} }
}); }
return max1RM; return max1RM;
} }
@ -307,11 +307,11 @@ class TrainingPlanRepository with Common, Logging {
return 0; return 0;
} }
int originalRepeats = 0; int originalRepeats = 0;
plan.details!.forEach((element) { for (var element in plan.details!) {
if (element.trainingPlanDetailId == detail.trainingPlanDetailsId) { if (element.trainingPlanDetailId == detail.trainingPlanDetailsId) {
originalRepeats = element.repeats ?? 0; originalRepeats = element.repeats ?? 0;
} }
}); }
return originalRepeats; return originalRepeats;
} }
@ -321,11 +321,11 @@ class TrainingPlanRepository with Common, Logging {
return 0; return 0;
} }
double originalWeight = 0; double originalWeight = 0;
plan.details!.forEach((element) { for (var element in plan.details!) {
if (element.trainingPlanDetailId == detail.trainingPlanDetailsId) { if (element.trainingPlanDetailId == detail.trainingPlanDetailsId) {
originalWeight = element.weight ?? 0; originalWeight = element.weight ?? 0;
} }
}); }
return originalWeight; return originalWeight;
} }
@ -371,11 +371,11 @@ class TrainingPlanRepository with Common, Logging {
// 1.b get the original detail's repeat // 1.b get the original detail's repeat
int originalRepeats = detail.repeats!; int originalRepeats = detail.repeats!;
plan.details!.forEach((element) { for (var element in plan.details!) {
if (element.trainingPlanDetailId == detail.trainingPlanDetailsId) { if (element.trainingPlanDetailId == detail.trainingPlanDetailsId) {
originalRepeats = element.repeats ?? 0; originalRepeats = element.repeats ?? 0;
} }
}); }
// 2 get recalculated repeats // 2 get recalculated repeats
recalculatedDetail.weight = Common.calculateWeigthByChangedQuantity(detail.weight!, detail.repeats!.toDouble(), originalRepeats.toDouble()); recalculatedDetail.weight = Common.calculateWeigthByChangedQuantity(detail.weight!, detail.repeats!.toDouble(), originalRepeats.toDouble());

View File

@ -35,7 +35,7 @@ class CustomerApi with Logging {
Future<void> deactivateCustomer(int customerId) async { Future<void> deactivateCustomer(int customerId) async {
log(" ===== deactivate : $customerId"); log(" ===== deactivate : $customerId");
await _client.post("customers/deactivate/$customerId", ""); await _client.post("customers/deactivate/$customerId", "");
} }
Future<void> addCustomer(Customer customer) async { Future<void> addCustomer(Customer customer) async {
customer.dateAdd = DateTime.now(); customer.dateAdd = DateTime.now();
@ -85,7 +85,7 @@ class CustomerApi with Logging {
final String responseBody = await _client.get("customers/find_by_email/$email", ""); final String responseBody = await _client.get("customers/find_by_email/$email", "");
Customer customer; Customer customer;
try { try {
customer = Customer.fromJson(jsonDecode(responseBody)); customer = Customer.fromJson(jsonDecode(responseBody));
if (customer.firebaseUid == null) { if (customer.firebaseUid == null) {
await updateFirebaseUid(customer.customerId!, Cache().firebaseUid!); await updateFirebaseUid(customer.customerId!, Cache().firebaseUid!);
} }
@ -128,32 +128,32 @@ class CustomerApi with Logging {
if (properties != null) { if (properties != null) {
// reset Properties // reset Properties
properties.forEach((property) { for (var property in properties) {
CustomerProperty customerProperty = CustomerProperty customerProperty =
CustomerProperty(propertyId: property.propertyId, customerId: customer.customerId!, dateAdd: DateTime.now(), propertyValue: 0); CustomerProperty(propertyId: property.propertyId, customerId: customer.customerId!, dateAdd: DateTime.now(), propertyValue: 0);
customer.properties[property.propertyName] = customerProperty; customer.properties[property.propertyName] = customerProperty;
}); }
customerProperties!.forEach((customerProperty) { for (var customerProperty in customerProperties!) {
properties.forEach((property) { for (var property in properties) {
if (customerProperty.propertyId == property.propertyId) { if (customerProperty.propertyId == property.propertyId) {
customer.properties[property.propertyName] = customerProperty; customer.properties[property.propertyName] = customerProperty;
} }
}); }
}); }
} }
} }
Future<Customer> getTrainee(int customerId) async { Future<Customer> getTrainee(int customerId) async {
String body = ""; String body = "";
Customer customer; Customer customer;
log(" ===== get Trainee customer by id: " + customerId.toString()); log(" ===== get Trainee customer by id: $customerId");
try { try {
final String responseBody = await _client.get("customers/" + customerId.toString(), body); final String responseBody = await _client.get("customers/$customerId", body);
customer = Customer.fromJson(jsonDecode(responseBody)); customer = Customer.fromJson(jsonDecode(responseBody));
log(" --- Trainee: " + customer.toJson().toString()); log(" --- Trainee: ${customer.toJson()}");
} catch (exception) { } catch (exception) {
log("Exception: " + exception.toString()); log("Exception: $exception");
throw Exception(exception); throw Exception(exception);
} }
return customer; return customer;
@ -164,11 +164,11 @@ class CustomerApi with Logging {
log("Get trainees list"); log("Get trainees list");
try { try {
String body = ""; String body = "";
final String responseBody = await _client.get("customers/trainees/" + trainerId.toString(), body); final String responseBody = await _client.get("customers/trainees/$trainerId", body);
final Iterable json = jsonDecode(responseBody); final Iterable json = jsonDecode(responseBody);
trainees = json.map((customer) => Customer.fromJson(customer)).toList(); trainees = json.map((customer) => Customer.fromJson(customer)).toList();
} catch (exception) { } catch (exception) {
log("Exception: " + exception.toString()); log("Exception: $exception");
throw Exception(exception); throw Exception(exception);
} }
return trainees; return trainees;
@ -195,45 +195,45 @@ class CustomerApi with Logging {
} }
Future<CustomerProperty> addProperty(CustomerProperty property) async { Future<CustomerProperty> addProperty(CustomerProperty property) async {
String body = JsonEncoder().convert(property.toJson()); String body = const JsonEncoder().convert(property.toJson());
log(" ===== add new customer property: " + body); log(" ===== add new customer property: $body");
CustomerProperty customerProperty; CustomerProperty customerProperty;
String? responseBody; String? responseBody;
try { try {
responseBody = await _client.post("customer_property", body); responseBody = await _client.post("customer_property", body);
log(" responseBody: " + responseBody); log(" responseBody: $responseBody");
int? status = jsonDecode(responseBody)['status']; int? status = jsonDecode(responseBody)['status'];
if (status != null) { if (status != null) {
throw new Exception(jsonDecode(responseBody)['error']); throw Exception(jsonDecode(responseBody)['error']);
} else { } else {
customerProperty = CustomerProperty.fromJson(jsonDecode(responseBody)); customerProperty = CustomerProperty.fromJson(jsonDecode(responseBody));
} }
} on FormatException { } on FormatException {
throw new Exception(responseBody); throw Exception(responseBody);
} on Exception catch (e) { } on Exception catch (e) {
throw new Exception(e); throw Exception(e);
} }
return customerProperty; return customerProperty;
} }
Future<CustomerProperty> updateProperty(CustomerProperty property) async { Future<CustomerProperty> updateProperty(CustomerProperty property) async {
String body = JsonEncoder().convert(property.toJson()); String body = const JsonEncoder().convert(property.toJson());
CustomerProperty? customerProperty; CustomerProperty? customerProperty;
log(" ===== update customer property: " + body); log(" ===== update customer property: $body");
String? responseBody; String? responseBody;
try { try {
responseBody = await _client.post("customer_property/update/" + property.customerPropertyId.toString(), body); responseBody = await _client.post("customer_property/update/${property.customerPropertyId}", body);
log(" responseBody: " + responseBody); log(" responseBody: $responseBody");
int? status = jsonDecode(responseBody)['status']; int? status = jsonDecode(responseBody)['status'];
if (status != null) { if (status != null) {
throw new Exception(jsonDecode(responseBody)['error']); throw Exception(jsonDecode(responseBody)['error']);
} else { } else {
customerProperty = CustomerProperty.fromJson(jsonDecode(responseBody)); customerProperty = CustomerProperty.fromJson(jsonDecode(responseBody));
} }
} on FormatException { } on FormatException {
throw new Exception(responseBody); throw Exception(responseBody);
} on Exception catch (e) { } on Exception catch (e) {
throw new Exception(e); throw Exception(e);
} }
return customerProperty; return customerProperty;
} }

View File

@ -51,7 +51,7 @@ class ExerciseTreeApi with Logging {
int treeIndex = 0; int treeIndex = 0;
copyList.forEach((element) async { copyList.forEach((element) async {
int index = 0; int index = 0;
exerciseTreeParents.forEach((parent) { for (var parent in exerciseTreeParents) {
if (parent.exerciseTreeChildId == element.treeId) { if (parent.exerciseTreeChildId == element.treeId) {
if (index > 0) { if (index > 0) {
ExerciseTree newElement = element.copy(parent.exerciseTreeParentId); ExerciseTree newElement = element.copy(parent.exerciseTreeParentId);
@ -64,7 +64,7 @@ class ExerciseTreeApi with Logging {
} }
index++; index++;
} }
}); }
treeIndex++; treeIndex++;
}); });
return exerciseTree; return exerciseTree;

View File

@ -134,7 +134,7 @@ class PackageApi {
int treeIndex = 0; int treeIndex = 0;
copyList.forEach((element) async { copyList.forEach((element) async {
int index = 0; int index = 0;
exerciseTreeParents.forEach((parent) { for (var parent in exerciseTreeParents) {
if (parent.exerciseTreeChildId == element.treeId) { if (parent.exerciseTreeChildId == element.treeId) {
if (index > 0) { if (index > 0) {
ExerciseTree newElement = element.copy(parent.exerciseTreeParentId); ExerciseTree newElement = element.copy(parent.exerciseTreeParentId);
@ -148,7 +148,7 @@ class PackageApi {
} }
index++; index++;
} }
}); }
treeIndex++; treeIndex++;
}); });

View File

@ -1,6 +1,6 @@
name: workouttest_util name: workouttest_util
description: Workout Test app and web functions. description: Workout Test app and web functions.
version: 1.0.29 version: 1.1.0
environment: environment:
sdk: ">=2.18.6 <3.0.0" sdk: ">=2.18.6 <3.0.0"