WT1.1.11 Null-Safe migration
This commit is contained in:
@@ -18,17 +18,17 @@ part 'test_set_execute_state.dart';
|
||||
|
||||
class TestSetExecuteBloc extends Bloc<TestSetExecuteEvent, TestSetExecuteState> {
|
||||
// ignore: close_sinks
|
||||
MenuBloc menuBloc;
|
||||
int exerciseTypeId;
|
||||
String testName;
|
||||
late MenuBloc menuBloc;
|
||||
int? exerciseTypeId;
|
||||
String? testName;
|
||||
String testType = "";
|
||||
bool miniTestSet = false;
|
||||
bool paralellTest = false;
|
||||
double scrollOffset = 0;
|
||||
ExercisePlan exercisePlan;
|
||||
ExercisePlan? exercisePlan;
|
||||
bool isDone100 = false;
|
||||
|
||||
List<ExercisePlanDetail> exercisePlanDetails;
|
||||
List<ExercisePlanDetail>? exercisePlanDetails;
|
||||
|
||||
TestSetExecuteBloc() : super(TestSetExecuteInitial());
|
||||
|
||||
@@ -37,19 +37,19 @@ class TestSetExecuteBloc extends Bloc<TestSetExecuteEvent, TestSetExecuteState>
|
||||
void initExercisePlan() {
|
||||
exercisePlan = Cache().activeExercisePlan;
|
||||
if (exercisePlan != null) {
|
||||
testName = exercisePlan.name;
|
||||
this.miniTestSet = exercisePlan.type != null && ExerciseAbility.mini_test_set.equalsStringTo(exercisePlan.type);
|
||||
this.paralellTest = exercisePlan.type != null && ExerciseAbility.paralell_test.equalsStringTo(exercisePlan.type);
|
||||
testName = exercisePlan!.name;
|
||||
this.miniTestSet = exercisePlan!.type != null && ExerciseAbility.mini_test_set.equalsStringTo(exercisePlan!.type!);
|
||||
this.paralellTest = exercisePlan!.type != null && ExerciseAbility.paralell_test.equalsStringTo(exercisePlan!.type!);
|
||||
|
||||
testType = ExerciseAbility.mini_test_set.equalsStringTo(exercisePlan.type)
|
||||
testType = ExerciseAbility.mini_test_set.equalsStringTo(exercisePlan!.type!)
|
||||
? ExerciseAbility.mini_test_set.description
|
||||
: ExerciseAbility.paralell_test.description;
|
||||
print("exercisePlan: $testName type: $testType");
|
||||
}
|
||||
exercisePlanDetails = Cache().activeExercisePlanDetails;
|
||||
if (exercisePlanDetails != null) {
|
||||
exercisePlanDetails.forEach((element) {
|
||||
final ExerciseType exerciseType = Cache().getExerciseTypeById(element.exerciseTypeId);
|
||||
exercisePlanDetails!.forEach((element) {
|
||||
final ExerciseType? exerciseType = Cache().getExerciseTypeById(element.exerciseTypeId);
|
||||
if (exerciseType != null) {
|
||||
element.exerciseType = exerciseType;
|
||||
}
|
||||
@@ -69,7 +69,7 @@ class TestSetExecuteBloc extends Bloc<TestSetExecuteEvent, TestSetExecuteState>
|
||||
if (exerciseTypeId != null) {
|
||||
int step = 0;
|
||||
if (exercisePlanDetails != null) {
|
||||
exercisePlanDetails.forEach((element) {
|
||||
exercisePlanDetails!.forEach((element) {
|
||||
if (element.exerciseTypeId == this.exerciseTypeId) {
|
||||
scrollOffset = (step * 85).toDouble() + 10;
|
||||
}
|
||||
@@ -79,44 +79,44 @@ class TestSetExecuteBloc extends Bloc<TestSetExecuteEvent, TestSetExecuteState>
|
||||
}
|
||||
yield TestSetExecuteReady();
|
||||
} else if (event is TestSetExecuteDeleteActive) {
|
||||
print("Delete: ${exercisePlan.type} paralellTest: $paralellTest");
|
||||
if (exercisePlan != null && ExerciseAbility.mini_test_set.equalsStringTo(exercisePlan.type)) {
|
||||
print("Delete: ${exercisePlan!.type} paralellTest: $paralellTest");
|
||||
if (exercisePlan != null && ExerciseAbility.mini_test_set.equalsStringTo(exercisePlan!.type!)) {
|
||||
exercisePlan = null;
|
||||
if (exercisePlanDetails != null) {
|
||||
exercisePlanDetails.removeRange(0, exercisePlanDetails.length - 1);
|
||||
exercisePlanDetails!.removeRange(0, exercisePlanDetails!.length - 1);
|
||||
}
|
||||
await Cache().deleteActiveExercisePlan();
|
||||
}
|
||||
} else if (event is TestSetExecuteDeleteAllActive) {
|
||||
print("DeleteAll Test Set: ${exercisePlan.type}");
|
||||
if (exercisePlan != null) {
|
||||
print("DeleteAll Test Set: ${exercisePlan!.type}");
|
||||
exercisePlan = null;
|
||||
if (exercisePlanDetails != null) {
|
||||
exercisePlanDetails.removeRange(0, exercisePlanDetails.length - 1);
|
||||
exercisePlanDetails!.removeRange(0, exercisePlanDetails!.length - 1);
|
||||
}
|
||||
await Cache().deleteActiveExercisePlan();
|
||||
}
|
||||
} else if (event is TestSetExecuteExerciseFinished) {
|
||||
yield TestSetExecuteLoading();
|
||||
exercisePlanDetails.forEach((element) {
|
||||
exercisePlanDetails!.forEach((element) {
|
||||
if (element.exerciseTypeId == event.exerciseTypeId) {
|
||||
element.repeats = event.quantity.toInt();
|
||||
element.weightEquation = event.unitQuantity.toString();
|
||||
if (element.exercises == null) {
|
||||
element.exercises = List();
|
||||
element.exercises = [];
|
||||
}
|
||||
final Exercise exercise = Exercise();
|
||||
exercise.customerId = Cache().userLoggedIn.customerId;
|
||||
exercise.customerId = Cache().userLoggedIn!.customerId!;
|
||||
exercise.exerciseTypeId = event.exerciseTypeId;
|
||||
exercise.quantity = event.quantity;
|
||||
exercise.unit = element.exerciseType.unit;
|
||||
exercise.unit = element.exerciseType!.unit;
|
||||
exercise.unitQuantity = event.unitQuantity;
|
||||
exercise.dateAdd = DateTime.now();
|
||||
element.exercises.add(exercise);
|
||||
element.exercises!.add(exercise);
|
||||
setPlanDetailState(element);
|
||||
}
|
||||
});
|
||||
Cache().saveActiveExercisePlan(exercisePlan, exercisePlanDetails);
|
||||
Cache().saveActiveExercisePlan(exercisePlan!, exercisePlanDetails!);
|
||||
if (this.isDone100Percent()) {
|
||||
add(TestSetExecuteFinish());
|
||||
} else {
|
||||
@@ -125,45 +125,51 @@ class TestSetExecuteBloc extends Bloc<TestSetExecuteEvent, TestSetExecuteState>
|
||||
} else if (event is TestSetExecuteNewExercise) {
|
||||
yield TestSetExecuteLoading();
|
||||
if (exercisePlan == null) {
|
||||
exercisePlan = ExercisePlan(Cache().userLoggedIn.name + " Custom Test", Cache().userLoggedIn.customerId);
|
||||
exercisePlan.private = true;
|
||||
exercisePlan.dateAdd = DateTime.now();
|
||||
exercisePlan.type = ExerciseAbility.paralell_test.enumToString();
|
||||
ExercisePlan savedExercisePlan = await ExercisePlanApi().saveExercisePlan(exercisePlan);
|
||||
exercisePlan = ExercisePlan(Cache().userLoggedIn!.name! + " Custom Test", Cache().userLoggedIn!.customerId!);
|
||||
exercisePlan!.private = true;
|
||||
exercisePlan!.dateAdd = DateTime.now();
|
||||
exercisePlan!.type = ExerciseAbility.paralell_test.enumToString();
|
||||
ExercisePlan savedExercisePlan = await ExercisePlanApi().saveExercisePlan(exercisePlan!);
|
||||
exercisePlan = savedExercisePlan;
|
||||
exercisePlanDetails = List();
|
||||
exercisePlanDetails = [];
|
||||
}
|
||||
|
||||
if (!this.existsInPlanDetails(event.exerciseTypeId)) {
|
||||
ExercisePlanDetail exercisePlanDetail = ExercisePlanDetail(event.exerciseTypeId);
|
||||
exercisePlanDetail.exercisePlanId = exercisePlan.exercisePlanId;
|
||||
final ExerciseType exerciseType = Cache().getExerciseTypeById(event.exerciseTypeId);
|
||||
exercisePlanDetail.exercisePlanId = exercisePlan!.exercisePlanId!;
|
||||
final ExerciseType exerciseType = Cache().getExerciseTypeById(event.exerciseTypeId)!;
|
||||
|
||||
exercisePlanDetail.serie = exerciseType.unitQuantityUnit == null ? 1 : 4;
|
||||
exercisePlanDetail.exerciseType = exerciseType;
|
||||
exercisePlanDetail.exerciseTypeId = event.exerciseTypeId;
|
||||
ExercisePlanDetail savedDetail = await ExercisePlanApi().saveExercisePlanDetail(exercisePlanDetail);
|
||||
exercisePlanDetail.exercisePlanDetailId = savedDetail.exercisePlanDetailId;
|
||||
exercisePlanDetail.state = ExercisePlanDetailState.start;
|
||||
exercisePlanDetail.exercises = List();
|
||||
exercisePlanDetails.add(exercisePlanDetail);
|
||||
await Cache().saveActiveExercisePlan(exercisePlan, exercisePlanDetails);
|
||||
exercisePlanDetail.exercises = [];
|
||||
if (exercisePlanDetails == null) {
|
||||
exercisePlanDetails = [];
|
||||
}
|
||||
exercisePlanDetails!.add(exercisePlanDetail);
|
||||
await Cache().saveActiveExercisePlan(exercisePlan!, exercisePlanDetails!);
|
||||
paralellTest = true;
|
||||
}
|
||||
yield TestSetExecuteReady();
|
||||
} else if (event is TestSetExecuteDeleteExercise) {
|
||||
yield TestSetExecuteLoading();
|
||||
ExercisePlanDetail deleteDetail;
|
||||
exercisePlanDetails.forEach((element) {
|
||||
if (element.exerciseTypeId == event.exerciseTypeId) {
|
||||
deleteDetail = element;
|
||||
}
|
||||
});
|
||||
if (deleteDetail != null) {
|
||||
exercisePlanDetails.remove(deleteDetail);
|
||||
if (exercisePlanDetails.isEmpty) {
|
||||
exercisePlan = null;
|
||||
exercisePlanDetails = null;
|
||||
Cache().deleteActiveExercisePlan();
|
||||
ExercisePlanDetail? deleteDetail;
|
||||
if (exercisePlanDetails != null) {
|
||||
exercisePlanDetails!.forEach((element) {
|
||||
if (element.exerciseTypeId == event.exerciseTypeId) {
|
||||
deleteDetail = element;
|
||||
}
|
||||
});
|
||||
if (deleteDetail != null) {
|
||||
exercisePlanDetails!.remove(deleteDetail);
|
||||
if (exercisePlanDetails!.isEmpty) {
|
||||
exercisePlan = null;
|
||||
exercisePlanDetails = null;
|
||||
Cache().deleteActiveExercisePlan();
|
||||
}
|
||||
}
|
||||
}
|
||||
yield TestSetExecuteReady();
|
||||
@@ -181,9 +187,9 @@ class TestSetExecuteBloc extends Bloc<TestSetExecuteEvent, TestSetExecuteState>
|
||||
|
||||
bool hasBegun() {
|
||||
if (exercisePlanDetails == null ||
|
||||
exercisePlanDetails.isEmpty ||
|
||||
exercisePlanDetails[0].exercises == null ||
|
||||
exercisePlanDetails[0].exercises.length == 0) {
|
||||
exercisePlanDetails!.isEmpty ||
|
||||
exercisePlanDetails![0].exercises == null ||
|
||||
exercisePlanDetails![0].exercises!.length == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -191,14 +197,14 @@ class TestSetExecuteBloc extends Bloc<TestSetExecuteEvent, TestSetExecuteState>
|
||||
}
|
||||
|
||||
void setPlanDetailState(ExercisePlanDetail exercisePlanDetail) {
|
||||
if (exercisePlanDetail.exercises == null || exercisePlanDetail.exercises.length == 0) {
|
||||
if (exercisePlanDetail.exercises == null || exercisePlanDetail.exercises!.length == 0) {
|
||||
exercisePlanDetail.state = ExercisePlanDetailState.start;
|
||||
} else {
|
||||
int maxLength = 1;
|
||||
if (exercisePlanDetail.exerciseType.unitQuantityUnit != null) {
|
||||
if (exercisePlanDetail.exerciseType!.unitQuantityUnit != null) {
|
||||
maxLength = 4;
|
||||
}
|
||||
if (exercisePlanDetail.exercises.length >= maxLength) {
|
||||
if (exercisePlanDetail.exercises!.length >= maxLength) {
|
||||
exercisePlanDetail.state = ExercisePlanDetailState.finished;
|
||||
} else {
|
||||
exercisePlanDetail.state = ExercisePlanDetailState.inProgress;
|
||||
@@ -208,7 +214,8 @@ class TestSetExecuteBloc extends Bloc<TestSetExecuteEvent, TestSetExecuteState>
|
||||
|
||||
ExercisePlanDetailState actualState(int exerciseTypeId) {
|
||||
ExercisePlanDetailState state = ExercisePlanDetailState.start;
|
||||
exercisePlanDetails.forEach((element) {
|
||||
if (exercisePlanDetails == null) return state;
|
||||
exercisePlanDetails!.forEach((element) {
|
||||
if (element.exerciseTypeId == exerciseTypeId) {
|
||||
state = element.state;
|
||||
}
|
||||
@@ -218,7 +225,8 @@ class TestSetExecuteBloc extends Bloc<TestSetExecuteEvent, TestSetExecuteState>
|
||||
|
||||
bool existsInPlanDetails(int exerciseTypeId) {
|
||||
bool found = false;
|
||||
exercisePlanDetails.forEach((element) {
|
||||
if (exercisePlanDetails == null) return found;
|
||||
exercisePlanDetails!.forEach((element) {
|
||||
if (element.exerciseTypeId == exerciseTypeId) {
|
||||
found = true;
|
||||
}
|
||||
@@ -226,9 +234,11 @@ class TestSetExecuteBloc extends Bloc<TestSetExecuteEvent, TestSetExecuteState>
|
||||
return found;
|
||||
}
|
||||
|
||||
ExercisePlanDetail actualExercisePlanDetail(int exerciseTypeId) {
|
||||
ExercisePlanDetail found;
|
||||
exercisePlanDetails.forEach((element) {
|
||||
ExercisePlanDetail? actualExercisePlanDetail(int exerciseTypeId) {
|
||||
ExercisePlanDetail? found;
|
||||
if (exercisePlanDetails == null) return found;
|
||||
|
||||
exercisePlanDetails!.forEach((element) {
|
||||
if (element.exerciseTypeId == exerciseTypeId) {
|
||||
found = element;
|
||||
}
|
||||
@@ -238,10 +248,10 @@ class TestSetExecuteBloc extends Bloc<TestSetExecuteEvent, TestSetExecuteState>
|
||||
|
||||
bool isDone100Percent() {
|
||||
bool done = true;
|
||||
if (exercisePlanDetails == null || exercisePlanDetails.isEmpty) {
|
||||
if (exercisePlanDetails == null || exercisePlanDetails!.isEmpty) {
|
||||
return false;
|
||||
}
|
||||
exercisePlanDetails.forEach((element) {
|
||||
exercisePlanDetails!.forEach((element) {
|
||||
if (!element.state.equalsTo(ExercisePlanDetailState.finished)) {
|
||||
done = false;
|
||||
}
|
||||
@@ -251,7 +261,7 @@ class TestSetExecuteBloc extends Bloc<TestSetExecuteEvent, TestSetExecuteState>
|
||||
|
||||
HashMap canAddNewExercise() {
|
||||
HashMap ret = HashMap();
|
||||
if (exercisePlan != null && ExerciseAbility.mini_test_set.equalsStringTo(exercisePlan.type)) {
|
||||
if (exercisePlan != null && ExerciseAbility.mini_test_set.equalsStringTo(exercisePlan!.type!)) {
|
||||
final String message = "You have an active Test Set!";
|
||||
final String message2 = "Do you want you to override it?";
|
||||
ret['message'] = message;
|
||||
@@ -264,8 +274,8 @@ class TestSetExecuteBloc extends Bloc<TestSetExecuteEvent, TestSetExecuteState>
|
||||
return ret;
|
||||
}
|
||||
|
||||
int getActualWorkoutTreeId(int exerciseTypeId) {
|
||||
final WorkoutMenuTree workoutTree = this.menuBloc.menuTreeRepository.getMenuItemByExerciseTypeId(exerciseTypeId);
|
||||
int? getActualWorkoutTreeId(int exerciseTypeId) {
|
||||
final WorkoutMenuTree? workoutTree = this.menuBloc.menuTreeRepository.getMenuItemByExerciseTypeId(exerciseTypeId);
|
||||
if (workoutTree == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -276,7 +286,7 @@ class TestSetExecuteBloc extends Bloc<TestSetExecuteEvent, TestSetExecuteState>
|
||||
if (exerciseTypeId <= 0) {
|
||||
return "";
|
||||
}
|
||||
final WorkoutMenuTree workoutTree = this.menuBloc.menuTreeRepository.getMenuItemByExerciseTypeId(exerciseTypeId);
|
||||
final WorkoutMenuTree? workoutTree = this.menuBloc.menuTreeRepository.getMenuItemByExerciseTypeId(exerciseTypeId);
|
||||
if (workoutTree == null) {
|
||||
return "";
|
||||
}
|
||||
@@ -288,14 +298,14 @@ class TestSetExecuteBloc extends Bloc<TestSetExecuteEvent, TestSetExecuteState>
|
||||
if (exercisePlanDetails == null) {
|
||||
return true;
|
||||
}
|
||||
if (exercisePlanDetails.isEmpty) {
|
||||
if (exercisePlanDetails!.isEmpty) {
|
||||
return true;
|
||||
}
|
||||
return (exercisePlanDetails[0].exercises == null || exercisePlanDetails[0].exercises.length == 0);
|
||||
return (exercisePlanDetails![0].exercises == null || exercisePlanDetails![0].exercises!.length == 0);
|
||||
}
|
||||
|
||||
bool existsActivePlan() {
|
||||
final bool exists = exercisePlan != null && exercisePlanDetails.length > 0;
|
||||
final bool exists = exercisePlan != null && exercisePlanDetails != null && exercisePlanDetails!.isNotEmpty;
|
||||
print("Exists active plan: $exists");
|
||||
return exists;
|
||||
}
|
||||
@@ -304,20 +314,22 @@ class TestSetExecuteBloc extends Bloc<TestSetExecuteEvent, TestSetExecuteState>
|
||||
return (exercisePlanDetail.state.equalsTo(ExercisePlanDetailState.finished));
|
||||
}
|
||||
|
||||
ExercisePlanDetail getNext() {
|
||||
ExercisePlanDetail nextExercisePlanDetail;
|
||||
ExercisePlanDetail? getNext() {
|
||||
ExercisePlanDetail? nextExercisePlanDetail;
|
||||
int minStep = 99;
|
||||
for (final detail in this.exercisePlanDetails) {
|
||||
if (!detail.state.equalsTo(ExercisePlanDetailState.finished)) {
|
||||
if (detail.exercises == null) {
|
||||
nextExercisePlanDetail = detail;
|
||||
minStep = 1;
|
||||
break;
|
||||
} else {
|
||||
final int step = detail.exercises.length;
|
||||
if (step < minStep) {
|
||||
if (this.exercisePlanDetails == null) {
|
||||
for (final detail in this.exercisePlanDetails!) {
|
||||
if (!detail.state.equalsTo(ExercisePlanDetailState.finished)) {
|
||||
if (detail.exercises == null) {
|
||||
nextExercisePlanDetail = detail;
|
||||
minStep = step;
|
||||
minStep = 1;
|
||||
break;
|
||||
} else {
|
||||
final int step = detail.exercises!.length;
|
||||
if (step < minStep) {
|
||||
nextExercisePlanDetail = detail;
|
||||
minStep = step;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -341,10 +353,10 @@ class TestSetExecuteBloc extends Bloc<TestSetExecuteEvent, TestSetExecuteState>
|
||||
|
||||
String repeatTimesText(ExercisePlanDetail exercisePlanDetail) {
|
||||
String text = "maximum";
|
||||
if (!hasBegun() || exercisePlanDetail.exerciseType.unitQuantityUnit == null) {
|
||||
if (!hasBegun() || exercisePlanDetail.exerciseType!.unitQuantityUnit == null) {
|
||||
return text;
|
||||
}
|
||||
int step = exercisePlanDetail.exercises.length;
|
||||
int step = exercisePlanDetail.exercises!.length;
|
||||
print("repeatTimes step $step");
|
||||
if (step == 2) {
|
||||
text = "12";
|
||||
@@ -354,13 +366,13 @@ class TestSetExecuteBloc extends Bloc<TestSetExecuteEvent, TestSetExecuteState>
|
||||
|
||||
String getExerciseWeight(ExercisePlanDetail exercisePlanDetail) {
|
||||
String text = "you are able to do 12-20 repeats with";
|
||||
if (!hasBegun() || exercisePlanDetail.exercises.length < 2) {
|
||||
if (!hasBegun() || exercisePlanDetail.exercises!.length < 2) {
|
||||
return text;
|
||||
}
|
||||
final double unitQuantity = exercisePlanDetail.exercises.last.unitQuantity;
|
||||
final double quantity = exercisePlanDetail.exercises.last.quantity;
|
||||
final double unitQuantity = exercisePlanDetail.exercises!.last.unitQuantity;
|
||||
final double quantity = exercisePlanDetail.exercises!.last.quantity;
|
||||
double oneRepMax = this.calculate1RM(quantity, unitQuantity);
|
||||
text = (oneRepMax * 0.75).round().toStringAsFixed(0) + " " + exercisePlanDetail.exerciseType.unitQuantityUnit;
|
||||
text = (oneRepMax * 0.75).round().toStringAsFixed(0) + " " + exercisePlanDetail.exerciseType!.unitQuantityUnit!;
|
||||
return text;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ class TestSetExecuteLoad extends TestSetExecuteEvent {
|
||||
|
||||
class TestSetExecuteExecute extends TestSetExecuteEvent {
|
||||
final int exerciseTypeId;
|
||||
const TestSetExecuteExecute({this.exerciseTypeId});
|
||||
const TestSetExecuteExecute({required this.exerciseTypeId});
|
||||
|
||||
@override
|
||||
List<Object> get props => [exerciseTypeId];
|
||||
@@ -27,7 +27,7 @@ class TestSetExecuteExerciseFinished extends TestSetExecuteEvent {
|
||||
final int exerciseTypeId;
|
||||
final double quantity;
|
||||
final double unitQuantity;
|
||||
const TestSetExecuteExerciseFinished({this.exerciseTypeId, this.quantity, this.unitQuantity});
|
||||
const TestSetExecuteExerciseFinished({required this.exerciseTypeId, required this.quantity, required this.unitQuantity});
|
||||
|
||||
@override
|
||||
List<Object> get props => [exerciseTypeId, quantity, unitQuantity];
|
||||
@@ -35,7 +35,7 @@ class TestSetExecuteExerciseFinished extends TestSetExecuteEvent {
|
||||
|
||||
class TestSetExecuteNewExercise extends TestSetExecuteEvent {
|
||||
final int exerciseTypeId;
|
||||
const TestSetExecuteNewExercise({this.exerciseTypeId});
|
||||
const TestSetExecuteNewExercise({required this.exerciseTypeId});
|
||||
|
||||
@override
|
||||
List<Object> get props => [exerciseTypeId];
|
||||
@@ -43,7 +43,7 @@ class TestSetExecuteNewExercise extends TestSetExecuteEvent {
|
||||
|
||||
class TestSetExecuteDeleteExercise extends TestSetExecuteEvent {
|
||||
final int exerciseTypeId;
|
||||
const TestSetExecuteDeleteExercise({this.exerciseTypeId});
|
||||
const TestSetExecuteDeleteExercise({required this.exerciseTypeId});
|
||||
|
||||
@override
|
||||
List<Object> get props => [exerciseTypeId];
|
||||
|
||||
@@ -25,7 +25,7 @@ class TestSetExecuteReady extends TestSetExecuteState {
|
||||
|
||||
class TestSetExecuteError extends TestSetExecuteState {
|
||||
final String message;
|
||||
const TestSetExecuteError({this.message});
|
||||
const TestSetExecuteError({required this.message});
|
||||
|
||||
@override
|
||||
List<Object> get props => [message];
|
||||
|
||||
Reference in New Issue
Block a user