mirror of
https://github.com/wger-project/flutter.git
synced 2026-02-18 00:17:48 +01:00
Start implementing new flexible routines
This commit is contained in:
@@ -16,66 +16,45 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:wger/models/workouts/set.dart';
|
||||
import 'package:wger/models/workouts/slot.dart';
|
||||
|
||||
part 'day.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class Day {
|
||||
static const Map<int, String> weekdays = {
|
||||
1: 'Monday',
|
||||
2: 'Tuesday',
|
||||
3: 'Wednesday',
|
||||
4: 'Thursday',
|
||||
5: 'Friday',
|
||||
6: 'Saturday',
|
||||
7: 'Sunday',
|
||||
};
|
||||
|
||||
@JsonKey(required: true)
|
||||
int? id;
|
||||
|
||||
@JsonKey(required: true, name: 'training')
|
||||
late int workoutId;
|
||||
@JsonKey(required: true, name: 'routine')
|
||||
late int routineId;
|
||||
|
||||
@JsonKey(required: true)
|
||||
late String name;
|
||||
|
||||
@JsonKey(required: true)
|
||||
late String description;
|
||||
|
||||
@JsonKey(required: true, name: 'day')
|
||||
List<int> daysOfWeek = [];
|
||||
@JsonKey(required: true, name: 'is_rest')
|
||||
late bool isRest;
|
||||
|
||||
@JsonKey(required: true, name: 'need_logs_to_advance')
|
||||
late bool needLogsToAdvance;
|
||||
|
||||
@JsonKey(required: true)
|
||||
late String type;
|
||||
|
||||
@JsonKey(required: true)
|
||||
late Object config;
|
||||
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
List<Set> sets = [];
|
||||
List<Slot> slots = [];
|
||||
|
||||
//@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
//late WorkoutPlan workout;
|
||||
|
||||
Day() {
|
||||
daysOfWeek = [];
|
||||
sets = [];
|
||||
}
|
||||
|
||||
String getDayName(int weekDay) {
|
||||
return weekdays[weekDay]!;
|
||||
}
|
||||
|
||||
String get getDaysText {
|
||||
return daysOfWeek.map((e) => getDayName(e)).join(', ');
|
||||
}
|
||||
|
||||
String getDaysTextTranslated(locale) {
|
||||
return daysOfWeek.map((e) => getDayTranslated(e, locale)).join(', ');
|
||||
}
|
||||
|
||||
/// Returns the translated name of the given day
|
||||
String getDayTranslated(int day, locale) {
|
||||
// Isn't there another way?... 🙄
|
||||
final now = DateTime.now();
|
||||
final firstDayOfWeek = now.subtract(Duration(days: now.weekday));
|
||||
|
||||
return DateFormat(DateFormat.WEEKDAY, locale).format(firstDayOfWeek.add(Duration(days: day)));
|
||||
slots = [];
|
||||
}
|
||||
|
||||
// Boilerplate
|
||||
|
||||
@@ -9,18 +9,35 @@ part of 'day.dart';
|
||||
Day _$DayFromJson(Map<String, dynamic> json) {
|
||||
$checkKeys(
|
||||
json,
|
||||
requiredKeys: const ['id', 'training', 'description', 'day'],
|
||||
requiredKeys: const [
|
||||
'id',
|
||||
'routine',
|
||||
'name',
|
||||
'description',
|
||||
'is_rest',
|
||||
'need_logs_to_advance',
|
||||
'type',
|
||||
'config'
|
||||
],
|
||||
);
|
||||
return Day()
|
||||
..id = (json['id'] as num?)?.toInt()
|
||||
..workoutId = (json['training'] as num).toInt()
|
||||
..routineId = (json['routine'] as num).toInt()
|
||||
..name = json['name'] as String
|
||||
..description = json['description'] as String
|
||||
..daysOfWeek = (json['day'] as List<dynamic>).map((e) => (e as num).toInt()).toList();
|
||||
..isRest = json['is_rest'] as bool
|
||||
..needLogsToAdvance = json['need_logs_to_advance'] as bool
|
||||
..type = json['type'] as String
|
||||
..config = json['config'] as Object;
|
||||
}
|
||||
|
||||
Map<String, dynamic> _$DayToJson(Day instance) => <String, dynamic>{
|
||||
'id': instance.id,
|
||||
'training': instance.workoutId,
|
||||
'routine': instance.routineId,
|
||||
'name': instance.name,
|
||||
'description': instance.description,
|
||||
'day': instance.daysOfWeek,
|
||||
'is_rest': instance.isRest,
|
||||
'need_logs_to_advance': instance.needLogsToAdvance,
|
||||
'type': instance.type,
|
||||
'config': instance.config,
|
||||
};
|
||||
|
||||
@@ -9,7 +9,15 @@ part of 'routine.dart';
|
||||
Routine _$RoutineFromJson(Map<String, dynamic> json) {
|
||||
$checkKeys(
|
||||
json,
|
||||
requiredKeys: const ['id', 'created', 'name', 'description', 'fit_in_week', 'start', 'end'],
|
||||
requiredKeys: const [
|
||||
'id',
|
||||
'created',
|
||||
'name',
|
||||
'description',
|
||||
'fit_in_week',
|
||||
'start',
|
||||
'end'
|
||||
],
|
||||
);
|
||||
return Routine(
|
||||
id: (json['id'] as num?)?.toInt(),
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'set.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
Set _$SetFromJson(Map<String, dynamic> json) {
|
||||
$checkKeys(
|
||||
json,
|
||||
requiredKeys: const ['id', 'sets', 'order', 'comment'],
|
||||
);
|
||||
return Set(
|
||||
day: (json['exerciseday'] as num).toInt(),
|
||||
sets: (json['sets'] as num).toInt(),
|
||||
order: (json['order'] as num).toInt(),
|
||||
)
|
||||
..id = (json['id'] as num?)?.toInt()
|
||||
..comment = json['comment'] as String? ?? '';
|
||||
}
|
||||
|
||||
Map<String, dynamic> _$SetToJson(Set instance) => <String, dynamic>{
|
||||
'id': instance.id,
|
||||
'sets': instance.sets,
|
||||
'exerciseday': instance.day,
|
||||
'order': instance.order,
|
||||
'comment': instance.comment,
|
||||
};
|
||||
@@ -18,21 +18,18 @@
|
||||
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:wger/models/exercises/exercise.dart';
|
||||
import 'package:wger/models/workouts/setting.dart';
|
||||
import 'package:wger/models/workouts/slot_entry.dart';
|
||||
|
||||
part 'set.g.dart';
|
||||
part 'slot.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class Set {
|
||||
class Slot {
|
||||
static const DEFAULT_NR_SETS = 4;
|
||||
|
||||
@JsonKey(required: true)
|
||||
int? id;
|
||||
|
||||
@JsonKey(required: true)
|
||||
late int sets;
|
||||
|
||||
@JsonKey(required: false, name: 'exerciseday')
|
||||
@JsonKey(required: false)
|
||||
late int day;
|
||||
|
||||
@JsonKey(required: true)
|
||||
@@ -41,25 +38,34 @@ class Set {
|
||||
@JsonKey(required: true, defaultValue: '')
|
||||
late String comment;
|
||||
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
List<Exercise> exerciseBasesObj = [];
|
||||
@JsonKey(required: true)
|
||||
late Object config;
|
||||
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
List<int> exerciseBasesIds = [];
|
||||
List<Exercise> exercisesObj = [];
|
||||
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
List<Setting> settings = [];
|
||||
List<int> exercisesIds = [];
|
||||
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
List<SlotEntry> entries = [];
|
||||
|
||||
/// Computed settings (instead of 4x10 this has [10, 10, 10, 10]), used for
|
||||
/// the gym mode where the individual values are used
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
List<Setting> settingsComputed = [];
|
||||
List<SlotEntry> settingsComputed = [];
|
||||
|
||||
Set({required this.day, required this.sets, required this.order});
|
||||
Slot({
|
||||
required this.id,
|
||||
required this.day,
|
||||
required this.comment,
|
||||
required this.order,
|
||||
required this.config,
|
||||
});
|
||||
|
||||
Set.empty();
|
||||
Slot.empty();
|
||||
|
||||
Set.withData({
|
||||
Slot.withData({
|
||||
this.id,
|
||||
sets,
|
||||
day,
|
||||
@@ -69,12 +75,11 @@ class Set {
|
||||
settings,
|
||||
settingsComputed,
|
||||
}) {
|
||||
this.sets = sets ?? DEFAULT_NR_SETS;
|
||||
this.order = order ?? 1;
|
||||
this.comment = comment ?? '';
|
||||
exerciseBasesObj = exercises ?? [];
|
||||
exerciseBasesIds = exerciseBasesObj.map((e) => e.id!).toList();
|
||||
this.settings = settings ?? [];
|
||||
exercisesObj = exercises ?? [];
|
||||
exercisesIds = exercisesObj.map((e) => e.id!).toList();
|
||||
this.entries = settings ?? [];
|
||||
this.settingsComputed = settingsComputed ?? [];
|
||||
if (day != null) {
|
||||
this.day = day;
|
||||
@@ -83,10 +88,10 @@ class Set {
|
||||
|
||||
/// Return only one setting object per exercise, this makes rendering workout
|
||||
/// plans easier and the gym mode uses the synthetic settings anyway.
|
||||
List<Setting> get settingsFiltered {
|
||||
final List<Setting> out = [];
|
||||
List<SlotEntry> get settingsFiltered {
|
||||
final List<SlotEntry> out = [];
|
||||
|
||||
for (final setting in settings) {
|
||||
for (final setting in entries) {
|
||||
final foundSettings = out.where(
|
||||
(element) => element.exerciseId == setting.exerciseId,
|
||||
);
|
||||
@@ -99,18 +104,18 @@ class Set {
|
||||
}
|
||||
|
||||
void addExerciseBase(Exercise base) {
|
||||
exerciseBasesObj.add(base);
|
||||
exerciseBasesIds.add(base.id!);
|
||||
exercisesObj.add(base);
|
||||
exercisesIds.add(base.id!);
|
||||
}
|
||||
|
||||
void removeExercise(Exercise base) {
|
||||
exerciseBasesObj.removeWhere((e) => e.id == base.id);
|
||||
exerciseBasesIds.removeWhere((e) => e == base.id);
|
||||
exercisesObj.removeWhere((e) => e.id == base.id);
|
||||
exercisesIds.removeWhere((e) => e == base.id);
|
||||
}
|
||||
|
||||
/// Returns all settings for the given exercise
|
||||
List<Setting> filterSettingsByExercise(Exercise exerciseBase) {
|
||||
return settings.where((element) => element.exerciseId == exerciseBase.id).toList();
|
||||
List<SlotEntry> filterSettingsByExercise(Exercise exerciseBase) {
|
||||
return entries.where((element) => element.exerciseId == exerciseBase.id).toList();
|
||||
}
|
||||
|
||||
/// Returns a list with all repetitions for the given exercise
|
||||
@@ -137,12 +142,12 @@ class Set {
|
||||
}
|
||||
|
||||
/// Returns a string with all repetitions for the given exercise
|
||||
String getSmartTextRepr(Exercise execiseBase) {
|
||||
return getSmartRepr(execiseBase).join(' – ');
|
||||
String getSmartTextRepr(Exercise exerciseBase) {
|
||||
return getSmartRepr(exerciseBase).join(' – ');
|
||||
}
|
||||
|
||||
// Boilerplate
|
||||
factory Set.fromJson(Map<String, dynamic> json) => _$SetFromJson(json);
|
||||
factory Slot.fromJson(Map<String, dynamic> json) => _$SlotFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$SetToJson(this);
|
||||
Map<String, dynamic> toJson() => _$SlotToJson(this);
|
||||
}
|
||||
29
lib/models/workouts/slot.g.dart
Normal file
29
lib/models/workouts/slot.g.dart
Normal file
@@ -0,0 +1,29 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'slot.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
Slot _$SlotFromJson(Map<String, dynamic> json) {
|
||||
$checkKeys(
|
||||
json,
|
||||
requiredKeys: const ['id', 'order', 'comment', 'config'],
|
||||
);
|
||||
return Slot(
|
||||
id: (json['id'] as num?)?.toInt(),
|
||||
day: (json['day'] as num).toInt(),
|
||||
comment: json['comment'] as String? ?? '',
|
||||
order: (json['order'] as num).toInt(),
|
||||
config: json['config'] as Object,
|
||||
);
|
||||
}
|
||||
|
||||
Map<String, dynamic> _$SlotToJson(Slot instance) => <String, dynamic>{
|
||||
'id': instance.id,
|
||||
'day': instance.day,
|
||||
'order': instance.order,
|
||||
'comment': instance.comment,
|
||||
'config': instance.config,
|
||||
};
|
||||
@@ -18,15 +18,14 @@
|
||||
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:wger/helpers/json.dart';
|
||||
import 'package:wger/helpers/misc.dart';
|
||||
import 'package:wger/models/exercises/exercise.dart';
|
||||
import 'package:wger/models/workouts/repetition_unit.dart';
|
||||
import 'package:wger/models/workouts/weight_unit.dart';
|
||||
|
||||
part 'setting.g.dart';
|
||||
part 'slot_entry.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class Setting {
|
||||
class SlotEntry {
|
||||
/// Allowed RiR values. This list must be kept in sync with RIR_OPTIONS in the
|
||||
/// wger server
|
||||
static const POSSIBLE_RIR_VALUES = ['', '0', '0.5', '1', '1.5', '2', '2.5', '3', '3.5', '4'];
|
||||
@@ -35,16 +34,19 @@ class Setting {
|
||||
@JsonKey(required: true)
|
||||
int? id;
|
||||
|
||||
@JsonKey(required: true, name: 'set')
|
||||
late int setId;
|
||||
@JsonKey(required: true, name: 'slot')
|
||||
late int slotId;
|
||||
|
||||
@JsonKey(required: true)
|
||||
late int order;
|
||||
|
||||
@JsonKey(required: true)
|
||||
late String type;
|
||||
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
late Exercise exerciseObj;
|
||||
|
||||
@JsonKey(required: true, name: 'exercise_base')
|
||||
@JsonKey(required: true, name: 'exercise')
|
||||
late int exerciseId;
|
||||
|
||||
@JsonKey(required: true, name: 'repetition_unit')
|
||||
@@ -53,6 +55,9 @@ class Setting {
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
late RepetitionUnit repetitionUnitObj;
|
||||
|
||||
@JsonKey(required: true, name: 'repetition_rounding')
|
||||
late num repetitionRounding;
|
||||
|
||||
@JsonKey(required: true)
|
||||
int? reps;
|
||||
|
||||
@@ -65,32 +70,39 @@ class Setting {
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
late WeightUnit weightUnitObj;
|
||||
|
||||
/// Personal notes about this setting. Currently not used
|
||||
@JsonKey(required: true, name: 'weight_rounding')
|
||||
late num weightRounding;
|
||||
|
||||
@JsonKey(required: true)
|
||||
late String comment = '';
|
||||
|
||||
/// Reps in Reserve
|
||||
@JsonKey(required: true)
|
||||
String? rir = '';
|
||||
late Object config;
|
||||
|
||||
Setting({
|
||||
SlotEntry({
|
||||
this.id,
|
||||
required this.setId,
|
||||
required this.slotId,
|
||||
required this.order,
|
||||
required this.type,
|
||||
required this.exerciseId,
|
||||
required this.repetitionUnitId,
|
||||
required this.repetitionRounding,
|
||||
required this.reps,
|
||||
required this.weightUnitId,
|
||||
required this.weightRounding,
|
||||
required this.comment,
|
||||
required this.rir,
|
||||
});
|
||||
|
||||
Setting.empty();
|
||||
SlotEntry.empty();
|
||||
|
||||
get rir {
|
||||
return 'DELETE ME! RIR';
|
||||
}
|
||||
|
||||
// Boilerplate
|
||||
factory Setting.fromJson(Map<String, dynamic> json) => _$SettingFromJson(json);
|
||||
factory SlotEntry.fromJson(Map<String, dynamic> json) => _$SlotEntryFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$SettingToJson(this);
|
||||
Map<String, dynamic> toJson() => _$SlotEntryToJson(this);
|
||||
|
||||
set exercise(Exercise exercise) {
|
||||
exerciseObj = exercise;
|
||||
@@ -107,16 +119,7 @@ class Setting {
|
||||
repetitionUnitId = repetitionUnit.id;
|
||||
}
|
||||
|
||||
void setRir(String newRir) {
|
||||
if (POSSIBLE_RIR_VALUES.contains(newRir)) {
|
||||
rir = newRir;
|
||||
} else {
|
||||
throw Exception('RiR value not allowed: $newRir');
|
||||
}
|
||||
}
|
||||
|
||||
/// Returns the text representation for a single setting, used in the gym mode
|
||||
String get singleSettingRepText {
|
||||
return repText(reps, repetitionUnitObj, weight, weightUnitObj, rir);
|
||||
return 'DELETE singleSettingRepText!';
|
||||
}
|
||||
}
|
||||
@@ -1,49 +1,59 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'setting.dart';
|
||||
part of 'slot_entry.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
Setting _$SettingFromJson(Map<String, dynamic> json) {
|
||||
SlotEntry _$SlotEntryFromJson(Map<String, dynamic> json) {
|
||||
$checkKeys(
|
||||
json,
|
||||
requiredKeys: const [
|
||||
'id',
|
||||
'set',
|
||||
'slot',
|
||||
'order',
|
||||
'exercise_base',
|
||||
'type',
|
||||
'exercise',
|
||||
'repetition_unit',
|
||||
'repetition_rounding',
|
||||
'reps',
|
||||
'weight',
|
||||
'weight_unit',
|
||||
'weight_rounding',
|
||||
'comment',
|
||||
'rir'
|
||||
'config'
|
||||
],
|
||||
);
|
||||
return Setting(
|
||||
return SlotEntry(
|
||||
id: (json['id'] as num?)?.toInt(),
|
||||
setId: (json['set'] as num).toInt(),
|
||||
slotId: (json['slot'] as num).toInt(),
|
||||
order: (json['order'] as num).toInt(),
|
||||
exerciseId: (json['exercise_base'] as num).toInt(),
|
||||
type: json['type'] as String,
|
||||
exerciseId: (json['exercise'] as num).toInt(),
|
||||
repetitionUnitId: (json['repetition_unit'] as num).toInt(),
|
||||
repetitionRounding: json['repetition_rounding'] as num,
|
||||
reps: (json['reps'] as num?)?.toInt(),
|
||||
weightUnitId: (json['weight_unit'] as num).toInt(),
|
||||
weightRounding: json['weight_rounding'] as num,
|
||||
comment: json['comment'] as String,
|
||||
rir: json['rir'] as String?,
|
||||
)..weight = stringToNum(json['weight'] as String?);
|
||||
)
|
||||
..weight = stringToNum(json['weight'] as String?)
|
||||
..config = json['config'] as Object;
|
||||
}
|
||||
|
||||
Map<String, dynamic> _$SettingToJson(Setting instance) => <String, dynamic>{
|
||||
Map<String, dynamic> _$SlotEntryToJson(SlotEntry instance) => <String, dynamic>{
|
||||
'id': instance.id,
|
||||
'set': instance.setId,
|
||||
'slot': instance.slotId,
|
||||
'order': instance.order,
|
||||
'exercise_base': instance.exerciseId,
|
||||
'type': instance.type,
|
||||
'exercise': instance.exerciseId,
|
||||
'repetition_unit': instance.repetitionUnitId,
|
||||
'repetition_rounding': instance.repetitionRounding,
|
||||
'reps': instance.reps,
|
||||
'weight': numToString(instance.weight),
|
||||
'weight_unit': instance.weightUnitId,
|
||||
'weight_rounding': instance.weightRounding,
|
||||
'comment': instance.comment,
|
||||
'rir': instance.rir,
|
||||
'config': instance.config,
|
||||
};
|
||||
@@ -30,8 +30,8 @@ import 'package:wger/models/workouts/log.dart';
|
||||
import 'package:wger/models/workouts/repetition_unit.dart';
|
||||
import 'package:wger/models/workouts/routine.dart';
|
||||
import 'package:wger/models/workouts/session.dart';
|
||||
import 'package:wger/models/workouts/set.dart';
|
||||
import 'package:wger/models/workouts/setting.dart';
|
||||
import 'package:wger/models/workouts/slot.dart';
|
||||
import 'package:wger/models/workouts/slot_entry.dart';
|
||||
import 'package:wger/models/workouts/weight_unit.dart';
|
||||
import 'package:wger/providers/base_provider.dart';
|
||||
import 'package:wger/providers/exercises.dart';
|
||||
@@ -39,8 +39,8 @@ import 'package:wger/providers/exercises.dart';
|
||||
class WorkoutPlansProvider with ChangeNotifier {
|
||||
static const _routinesUrlPath = 'routine';
|
||||
static const _daysUrlPath = 'day';
|
||||
static const _setsUrlPath = 'set';
|
||||
static const _settingsUrlPath = 'setting';
|
||||
static const _slotsUrlPath = 'slot';
|
||||
static const _slotEntriesUrlPath = 'slot-entry';
|
||||
static const _logsUrlPath = 'workoutlog';
|
||||
static const _sessionUrlPath = 'workoutsession';
|
||||
static const _weightUnitUrlPath = 'setting-weightunit';
|
||||
@@ -182,7 +182,7 @@ class WorkoutPlansProvider with ChangeNotifier {
|
||||
//
|
||||
// This is a bit ugly, but saves us sending lots of requests later on
|
||||
final allSettingsData = await baseProvider.fetch(
|
||||
baseProvider.makeUrl(_settingsUrlPath, query: {'limit': '1000'}),
|
||||
baseProvider.makeUrl(_slotEntriesUrlPath, query: {'limit': '1000'}),
|
||||
);
|
||||
|
||||
Routine plan;
|
||||
@@ -201,20 +201,20 @@ class WorkoutPlansProvider with ChangeNotifier {
|
||||
final day = Day.fromJson(dayEntry);
|
||||
|
||||
// Sets
|
||||
final List<Set> sets = [];
|
||||
final List<Slot> sets = [];
|
||||
final setData = await baseProvider.fetch(
|
||||
baseProvider.makeUrl(_setsUrlPath, query: {'exerciseday': day.id.toString()}),
|
||||
baseProvider.makeUrl(_slotsUrlPath, query: {'exerciseday': day.id.toString()}),
|
||||
);
|
||||
for (final setEntry in setData['results']) {
|
||||
final workoutSet = Set.fromJson(setEntry);
|
||||
final workoutSet = Slot.fromJson(setEntry);
|
||||
|
||||
fetchComputedSettings(workoutSet); // request!
|
||||
|
||||
final List<Setting> settings = [];
|
||||
final List<SlotEntry> settings = [];
|
||||
final settingData = allSettingsData['results'].where((s) => s['set'] == workoutSet.id);
|
||||
|
||||
for (final settingEntry in settingData) {
|
||||
final workoutSetting = Setting.fromJson(settingEntry);
|
||||
final workoutSetting = SlotEntry.fromJson(settingEntry);
|
||||
|
||||
workoutSetting.exercise = await _exercises.fetchAndSetExercise(workoutSetting.exerciseId);
|
||||
workoutSetting.weightUnit = _weightUnits.firstWhere(
|
||||
@@ -223,16 +223,16 @@ class WorkoutPlansProvider with ChangeNotifier {
|
||||
workoutSetting.repetitionUnit = _repetitionUnit.firstWhere(
|
||||
(e) => e.id == workoutSetting.repetitionUnitId,
|
||||
);
|
||||
if (!workoutSet.exerciseBasesIds.contains(workoutSetting.exerciseId)) {
|
||||
if (!workoutSet.exercisesIds.contains(workoutSetting.exerciseId)) {
|
||||
workoutSet.addExerciseBase(workoutSetting.exerciseObj);
|
||||
}
|
||||
|
||||
settings.add(workoutSetting);
|
||||
}
|
||||
workoutSet.settings = settings;
|
||||
workoutSet.entries = settings;
|
||||
sets.add(workoutSet);
|
||||
}
|
||||
day.sets = sets;
|
||||
day.slots = sets;
|
||||
days.add(day);
|
||||
}
|
||||
plan.days = days;
|
||||
@@ -369,13 +369,13 @@ class WorkoutPlansProvider with ChangeNotifier {
|
||||
/*
|
||||
* Saves a new day instance to the DB and adds it to the given workout
|
||||
*/
|
||||
day.workoutId = workout.id!;
|
||||
day.routineId = workout.id!;
|
||||
final data = await baseProvider.post(
|
||||
day.toJson(),
|
||||
baseProvider.makeUrl(_daysUrlPath),
|
||||
);
|
||||
day = Day.fromJson(data);
|
||||
day.sets = [];
|
||||
day.slots = [];
|
||||
workout.days.insert(0, day);
|
||||
notifyListeners();
|
||||
return day;
|
||||
@@ -400,48 +400,48 @@ class WorkoutPlansProvider with ChangeNotifier {
|
||||
/*
|
||||
* Sets
|
||||
*/
|
||||
Future<Set> addSet(Set workoutSet) async {
|
||||
Future<Slot> addSet(Slot workoutSet) async {
|
||||
final data = await baseProvider.post(
|
||||
workoutSet.toJson(),
|
||||
baseProvider.makeUrl(_setsUrlPath),
|
||||
baseProvider.makeUrl(_slotsUrlPath),
|
||||
);
|
||||
final set = Set.fromJson(data);
|
||||
final set = Slot.fromJson(data);
|
||||
notifyListeners();
|
||||
return set;
|
||||
}
|
||||
|
||||
Future<void> editSet(Set workoutSet) async {
|
||||
Future<void> editSet(Slot workoutSet) async {
|
||||
await baseProvider.patch(
|
||||
workoutSet.toJson(),
|
||||
baseProvider.makeUrl(_setsUrlPath, id: workoutSet.id),
|
||||
baseProvider.makeUrl(_slotsUrlPath, id: workoutSet.id),
|
||||
);
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<List<Set>> reorderSets(List<Set> sets, int startIndex) async {
|
||||
Future<List<Slot>> reorderSets(List<Slot> sets, int startIndex) async {
|
||||
for (int i = startIndex; i < sets.length; i++) {
|
||||
sets[i].order = i;
|
||||
await baseProvider.patch(
|
||||
sets[i].toJson(),
|
||||
baseProvider.makeUrl(_setsUrlPath, id: sets[i].id),
|
||||
baseProvider.makeUrl(_slotsUrlPath, id: sets[i].id),
|
||||
);
|
||||
}
|
||||
notifyListeners();
|
||||
return sets;
|
||||
}
|
||||
|
||||
Future<void> fetchComputedSettings(Set workoutSet) async {
|
||||
Future<void> fetchComputedSettings(Slot workoutSet) async {
|
||||
final data = await baseProvider.fetch(
|
||||
baseProvider.makeUrl(
|
||||
_setsUrlPath,
|
||||
_slotsUrlPath,
|
||||
id: workoutSet.id,
|
||||
objectMethod: 'computed_settings',
|
||||
),
|
||||
);
|
||||
|
||||
final List<Setting> settings = [];
|
||||
final List<SlotEntry> settings = [];
|
||||
data['results'].forEach((e) {
|
||||
final Setting workoutSetting = Setting.fromJson(e);
|
||||
final SlotEntry workoutSetting = SlotEntry.fromJson(e);
|
||||
|
||||
workoutSetting.weightUnitObj = _weightUnits.firstWhere(
|
||||
(unit) => unit.id == workoutSetting.weightUnitId,
|
||||
@@ -456,10 +456,10 @@ class WorkoutPlansProvider with ChangeNotifier {
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<String> fetchSmartText(Set workoutSet, Translation exercise) async {
|
||||
Future<String> fetchSmartText(Slot workoutSet, Translation exercise) async {
|
||||
final data = await baseProvider.fetch(
|
||||
baseProvider.makeUrl(
|
||||
_setsUrlPath,
|
||||
_slotsUrlPath,
|
||||
id: workoutSet.id,
|
||||
objectMethod: 'smart_text',
|
||||
query: {'exercise': exercise.id.toString()},
|
||||
@@ -469,12 +469,12 @@ class WorkoutPlansProvider with ChangeNotifier {
|
||||
return data['results'];
|
||||
}
|
||||
|
||||
Future<void> deleteSet(Set workoutSet) async {
|
||||
await baseProvider.deleteRequest(_setsUrlPath, workoutSet.id!);
|
||||
Future<void> deleteSet(Slot workoutSet) async {
|
||||
await baseProvider.deleteRequest(_slotsUrlPath, workoutSet.id!);
|
||||
|
||||
for (final workout in _workoutPlans) {
|
||||
for (final day in workout.days) {
|
||||
day.sets.removeWhere((element) => element.id == workoutSet.id);
|
||||
day.slots.removeWhere((element) => element.id == workoutSet.id);
|
||||
}
|
||||
}
|
||||
notifyListeners();
|
||||
@@ -483,12 +483,12 @@ class WorkoutPlansProvider with ChangeNotifier {
|
||||
/*
|
||||
* Setting
|
||||
*/
|
||||
Future<Setting> addSetting(Setting workoutSetting) async {
|
||||
Future<SlotEntry> addSetting(SlotEntry workoutSetting) async {
|
||||
final data = await baseProvider.post(
|
||||
workoutSetting.toJson(),
|
||||
baseProvider.makeUrl(_settingsUrlPath),
|
||||
baseProvider.makeUrl(_slotEntriesUrlPath),
|
||||
);
|
||||
final setting = Setting.fromJson(data);
|
||||
final setting = SlotEntry.fromJson(data);
|
||||
notifyListeners();
|
||||
return setting;
|
||||
}
|
||||
|
||||
@@ -394,13 +394,13 @@ class _DashboardWorkoutWidgetState extends State<DashboardWorkoutWidget> {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
day.description,
|
||||
day.name,
|
||||
style: const TextStyle(fontWeight: FontWeight.bold),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
child: MutedText(day.getDaysText, textAlign: TextAlign.right),
|
||||
child: MutedText(day.description, textAlign: TextAlign.right),
|
||||
),
|
||||
IconButton(
|
||||
icon: const Icon(Icons.play_arrow),
|
||||
@@ -413,7 +413,7 @@ class _DashboardWorkoutWidgetState extends State<DashboardWorkoutWidget> {
|
||||
),
|
||||
));
|
||||
|
||||
for (final set in day.sets) {
|
||||
for (final set in day.slots) {
|
||||
out.add(SizedBox(
|
||||
width: double.infinity,
|
||||
child: Column(
|
||||
|
||||
@@ -21,8 +21,8 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:wger/helpers/consts.dart';
|
||||
import 'package:wger/models/workouts/day.dart';
|
||||
import 'package:wger/models/workouts/set.dart';
|
||||
import 'package:wger/models/workouts/setting.dart';
|
||||
import 'package:wger/models/workouts/slot.dart';
|
||||
import 'package:wger/models/workouts/slot_entry.dart';
|
||||
import 'package:wger/providers/workout_plans.dart';
|
||||
import 'package:wger/screens/form_screen.dart';
|
||||
import 'package:wger/screens/gym_mode.dart';
|
||||
@@ -32,8 +32,8 @@ import 'package:wger/widgets/exercises/images.dart';
|
||||
import 'package:wger/widgets/workouts/forms.dart';
|
||||
|
||||
class SettingWidget extends StatelessWidget {
|
||||
final Set set;
|
||||
final Setting setting;
|
||||
final Slot set;
|
||||
final SlotEntry setting;
|
||||
final bool expanded;
|
||||
final Function toggle;
|
||||
|
||||
@@ -100,12 +100,12 @@ class WorkoutDayWidget extends StatefulWidget {
|
||||
|
||||
class _WorkoutDayWidgetState extends State<WorkoutDayWidget> {
|
||||
bool _editing = false;
|
||||
late List<Set> _sets;
|
||||
late List<Slot> _sets;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_sets = widget._day.sets;
|
||||
_sets = widget._day.slots;
|
||||
_sets.sort((a, b) => a.order.compareTo(b.order));
|
||||
}
|
||||
|
||||
@@ -115,7 +115,7 @@ class _WorkoutDayWidgetState extends State<WorkoutDayWidget> {
|
||||
});
|
||||
}
|
||||
|
||||
Widget getSetRow(Set set, int index) {
|
||||
Widget getSetRow(Slot set, int index) {
|
||||
return Row(
|
||||
key: ValueKey(set.id),
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
@@ -207,7 +207,7 @@ class _WorkoutDayWidgetState extends State<WorkoutDayWidget> {
|
||||
Provider.of<WorkoutPlansProvider>(
|
||||
context,
|
||||
listen: false,
|
||||
).findById(widget._day.workoutId),
|
||||
).findById(widget._day.routineId),
|
||||
widget._day,
|
||||
),
|
||||
hasListView: true,
|
||||
@@ -250,7 +250,8 @@ class _WorkoutDayWidgetState extends State<WorkoutDayWidget> {
|
||||
).reorderSets(_sets, startIndex);
|
||||
},
|
||||
children: [
|
||||
for (var i = 0; i < widget._day.sets.length; i++) getSetRow(widget._day.sets[i], i),
|
||||
for (var i = 0; i < widget._day.slots.length; i++)
|
||||
getSetRow(widget._day.slots[i], i),
|
||||
],
|
||||
),
|
||||
],
|
||||
@@ -278,11 +279,11 @@ class DayHeader extends StatelessWidget {
|
||||
return ListTile(
|
||||
contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
|
||||
title: Text(
|
||||
_day.description,
|
||||
_day.name,
|
||||
style: Theme.of(context).textTheme.headlineSmall,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
subtitle: Text(_day.getDaysTextTranslated(Localizations.localeOf(context).languageCode)),
|
||||
subtitle: Text(_day.description),
|
||||
leading: const Icon(Icons.play_arrow),
|
||||
minLeadingWidth: 8,
|
||||
trailing: Row(mainAxisSize: MainAxisSize.min, children: [
|
||||
|
||||
@@ -25,8 +25,8 @@ import 'package:wger/models/exercises/exercise.dart';
|
||||
import 'package:wger/models/workouts/day.dart';
|
||||
import 'package:wger/models/workouts/repetition_unit.dart';
|
||||
import 'package:wger/models/workouts/routine.dart';
|
||||
import 'package:wger/models/workouts/set.dart';
|
||||
import 'package:wger/models/workouts/setting.dart';
|
||||
import 'package:wger/models/workouts/slot.dart';
|
||||
import 'package:wger/models/workouts/slot_entry.dart';
|
||||
import 'package:wger/models/workouts/weight_unit.dart';
|
||||
import 'package:wger/providers/exercises.dart';
|
||||
import 'package:wger/providers/workout_plans.dart';
|
||||
@@ -127,39 +127,6 @@ class WorkoutForm extends StatelessWidget {
|
||||
}
|
||||
}
|
||||
|
||||
class DayCheckbox extends StatefulWidget {
|
||||
final Day _day;
|
||||
final int _dayNr;
|
||||
|
||||
const DayCheckbox(this._dayNr, this._day);
|
||||
|
||||
@override
|
||||
_DayCheckboxState createState() => _DayCheckboxState();
|
||||
}
|
||||
|
||||
class _DayCheckboxState extends State<DayCheckbox> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return CheckboxListTile(
|
||||
key: Key('field-checkbox-${widget._dayNr}'),
|
||||
title: Text(widget._day.getDayTranslated(
|
||||
widget._dayNr,
|
||||
Localizations.localeOf(context).languageCode,
|
||||
)),
|
||||
value: widget._day.daysOfWeek.contains(widget._dayNr),
|
||||
onChanged: (bool? newValue) {
|
||||
setState(() {
|
||||
if (!newValue!) {
|
||||
widget._day.daysOfWeek.remove(widget._dayNr);
|
||||
} else {
|
||||
widget._day.daysOfWeek.add(widget._dayNr);
|
||||
}
|
||||
});
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class DayFormWidget extends StatefulWidget {
|
||||
final Routine workout;
|
||||
final dayController = TextEditingController();
|
||||
@@ -167,7 +134,7 @@ class DayFormWidget extends StatefulWidget {
|
||||
|
||||
DayFormWidget(this.workout, [Day? day]) {
|
||||
_day = day ?? Day();
|
||||
_day.workoutId = workout.id!;
|
||||
_day.routineId = workout.id!;
|
||||
if (_day.id != null) {
|
||||
dayController.text = day!.description;
|
||||
}
|
||||
@@ -204,14 +171,11 @@ class _DayFormWidgetState extends State<DayFormWidget> {
|
||||
return AppLocalizations.of(context).enterCharacters(minLength, maxLength);
|
||||
}
|
||||
|
||||
if (widget._day.daysOfWeek.isEmpty) {
|
||||
return 'You need to select at least one day';
|
||||
}
|
||||
return null;
|
||||
},
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
...Day.weekdays.keys.map((dayNr) => DayCheckbox(dayNr, widget._day)),
|
||||
// const SizedBox(height: 10),
|
||||
// ...Day.weekdays.keys.map((dayNr) => DayCheckbox(dayNr, widget._day)),
|
||||
ElevatedButton(
|
||||
key: const Key(SUBMIT_BUTTON_KEY_NAME),
|
||||
child: Text(AppLocalizations.of(context).save),
|
||||
@@ -262,10 +226,10 @@ class _DayFormWidgetState extends State<DayFormWidget> {
|
||||
|
||||
class SetFormWidget extends StatefulWidget {
|
||||
final Day _day;
|
||||
late final Set _set;
|
||||
late final Slot _set;
|
||||
|
||||
SetFormWidget(this._day, [Set? set]) {
|
||||
_set = set ?? Set.withData(day: _day.id, order: _day.sets.length, sets: 4);
|
||||
SetFormWidget(this._day, [Slot? set]) {
|
||||
_set = set ?? Slot.withData(day: _day.id, order: _day.slots.length, sets: 4);
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -273,7 +237,7 @@ class SetFormWidget extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _SetFormWidgetState extends State<SetFormWidget> {
|
||||
double _currentSetSliderValue = Set.DEFAULT_NR_SETS.toDouble();
|
||||
double _currentSetSliderValue = Slot.DEFAULT_NR_SETS.toDouble();
|
||||
bool _detailed = false;
|
||||
bool _searchEnglish = true;
|
||||
|
||||
@@ -306,19 +270,19 @@ class _SetFormWidgetState extends State<SetFormWidget> {
|
||||
void addSettings() {
|
||||
final workoutProvider = context.read<WorkoutPlansProvider>();
|
||||
|
||||
widget._set.settings = [];
|
||||
widget._set.entries = [];
|
||||
int order = 0;
|
||||
for (final exercise in widget._set.exerciseBasesObj) {
|
||||
for (final exercise in widget._set.exercisesObj) {
|
||||
order++;
|
||||
for (int loop = 0; loop < widget._set.sets; loop++) {
|
||||
final Setting setting = Setting.empty();
|
||||
setting.order = order;
|
||||
setting.exercise = exercise;
|
||||
setting.weightUnit = workoutProvider.defaultWeightUnit;
|
||||
setting.repetitionUnit = workoutProvider.defaultRepetitionUnit;
|
||||
// for (int loop = 0; loop < widget._set.sets; loop++) {
|
||||
final SlotEntry setting = SlotEntry.empty();
|
||||
setting.order = order;
|
||||
setting.exercise = exercise;
|
||||
setting.weightUnit = workoutProvider.defaultWeightUnit;
|
||||
setting.repetitionUnit = workoutProvider.defaultRepetitionUnit;
|
||||
|
||||
widget._set.settings.add(setting);
|
||||
}
|
||||
widget._set.entries.add(setting);
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -343,14 +307,14 @@ class _SetFormWidgetState extends State<SetFormWidget> {
|
||||
label: _currentSetSliderValue.round().toString(),
|
||||
onChanged: (double value) {
|
||||
setState(() {
|
||||
widget._set.sets = value.round();
|
||||
// widget._set.sets = value.round();
|
||||
_currentSetSliderValue = value;
|
||||
addSettings();
|
||||
});
|
||||
},
|
||||
inactiveColor: Theme.of(context).colorScheme.surface,
|
||||
),
|
||||
if (widget._set.settings.isNotEmpty)
|
||||
if (widget._set.entries.isNotEmpty)
|
||||
SwitchListTile(
|
||||
title: Text(AppLocalizations.of(context).setUnitsAndRir),
|
||||
value: _detailed,
|
||||
@@ -422,15 +386,15 @@ class _SetFormWidgetState extends State<SetFormWidget> {
|
||||
),
|
||||
validator: (value) {
|
||||
// At least one exercise must be selected
|
||||
if (widget._set.exerciseBasesIds.isEmpty) {
|
||||
if (widget._set.exercisesIds.isEmpty) {
|
||||
return AppLocalizations.of(context).selectExercise;
|
||||
}
|
||||
|
||||
// At least one setting has to be filled in
|
||||
if (widget._set.settings
|
||||
if (widget._set.entries
|
||||
.where((s) => s.weight == null && s.reps == null)
|
||||
.length ==
|
||||
widget._set.settings.length) {
|
||||
widget._set.entries.length) {
|
||||
return AppLocalizations.of(context).enterRepetitionsOrWeight;
|
||||
}
|
||||
return null;
|
||||
@@ -534,12 +498,12 @@ class _SetFormWidgetState extends State<SetFormWidget> {
|
||||
},
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
...widget._set.exerciseBasesObj.asMap().entries.map((entry) {
|
||||
...widget._set.exercisesObj.asMap().entries.map((entry) {
|
||||
final index = entry.key;
|
||||
final exercise = entry.value;
|
||||
final showSupersetInfo = (index + 1) < widget._set.exerciseBasesObj.length;
|
||||
final showSupersetInfo = (index + 1) < widget._set.exercisesObj.length;
|
||||
final settings =
|
||||
widget._set.settings.where((e) => e.exerciseObj.id == exercise.id).toList();
|
||||
widget._set.entries.where((e) => e.exerciseObj.id == exercise.id).toList();
|
||||
|
||||
return Column(
|
||||
children: [
|
||||
@@ -580,24 +544,24 @@ class _SetFormWidgetState extends State<SetFormWidget> {
|
||||
);
|
||||
|
||||
// Save set
|
||||
final Set setDb = await workoutProvider.addSet(widget._set);
|
||||
final Slot setDb = await workoutProvider.addSet(widget._set);
|
||||
widget._set.id = setDb.id;
|
||||
|
||||
// Remove unused settings
|
||||
widget._set.settings.removeWhere((s) => s.weight == null && s.reps == null);
|
||||
widget._set.entries.removeWhere((s) => s.weight == null && s.reps == null);
|
||||
|
||||
// Save remaining settings
|
||||
for (final setting in widget._set.settings) {
|
||||
setting.setId = setDb.id!;
|
||||
for (final setting in widget._set.entries) {
|
||||
setting.slotId = setDb.id!;
|
||||
setting.comment = '';
|
||||
|
||||
final Setting settingDb = await workoutProvider.addSetting(setting);
|
||||
final SlotEntry settingDb = await workoutProvider.addSetting(setting);
|
||||
setting.id = settingDb.id;
|
||||
}
|
||||
|
||||
// Add to workout day
|
||||
workoutProvider.fetchComputedSettings(widget._set);
|
||||
widget._day.sets.add(widget._set);
|
||||
widget._day.slots.add(widget._set);
|
||||
|
||||
// Close the bottom sheet
|
||||
if (context.mounted) {
|
||||
@@ -619,7 +583,7 @@ class ExerciseSetting extends StatelessWidget {
|
||||
late final int _numberOfSets;
|
||||
final bool _detailed;
|
||||
final Function removeExercise;
|
||||
final List<Setting> _settings;
|
||||
final List<SlotEntry> _settings;
|
||||
|
||||
ExerciseSetting(
|
||||
this._exerciseBase,
|
||||
@@ -744,7 +708,7 @@ class ExerciseSetting extends StatelessWidget {
|
||||
|
||||
class RepsInputWidget extends StatelessWidget {
|
||||
final _repsController = TextEditingController();
|
||||
final Setting _setting;
|
||||
final SlotEntry _setting;
|
||||
final bool _detailed;
|
||||
|
||||
RepsInputWidget(this._setting, this._detailed);
|
||||
@@ -781,7 +745,7 @@ class RepsInputWidget extends StatelessWidget {
|
||||
|
||||
class WeightInputWidget extends StatelessWidget {
|
||||
final _weightController = TextEditingController();
|
||||
final Setting _setting;
|
||||
final SlotEntry _setting;
|
||||
final bool _detailed;
|
||||
|
||||
WeightInputWidget(this._setting, this._detailed);
|
||||
@@ -827,7 +791,7 @@ class RiRInputWidget extends StatefulWidget {
|
||||
static const SLIDER_START = -0.5;
|
||||
|
||||
RiRInputWidget(this._setting) {
|
||||
dropdownValue = _setting.rir ?? Setting.DEFAULT_RIR;
|
||||
dropdownValue = _setting.rir ?? SlotEntry.DEFAULT_RIR;
|
||||
|
||||
// Read string RiR into a double
|
||||
if (_setting.rir != null) {
|
||||
@@ -877,11 +841,11 @@ class _RiRInputWidgetState extends State<RiRInputWidget> {
|
||||
child: Slider(
|
||||
value: widget._currentSetSliderValue,
|
||||
min: RiRInputWidget.SLIDER_START,
|
||||
max: (Setting.POSSIBLE_RIR_VALUES.length - 2) / 2,
|
||||
divisions: Setting.POSSIBLE_RIR_VALUES.length - 1,
|
||||
max: (SlotEntry.POSSIBLE_RIR_VALUES.length - 2) / 2,
|
||||
divisions: SlotEntry.POSSIBLE_RIR_VALUES.length - 1,
|
||||
label: getSliderLabel(widget._currentSetSliderValue),
|
||||
onChanged: (double value) {
|
||||
widget._setting.setRir(mapDoubleToAllowedRir(value));
|
||||
// widget._setting.setRir(mapDoubleToAllowedRir(value));
|
||||
setState(() {
|
||||
widget._currentSetSliderValue = value;
|
||||
});
|
||||
|
||||
@@ -34,8 +34,8 @@ import 'package:wger/models/workouts/day.dart';
|
||||
import 'package:wger/models/workouts/log.dart';
|
||||
import 'package:wger/models/workouts/routine.dart';
|
||||
import 'package:wger/models/workouts/session.dart';
|
||||
import 'package:wger/models/workouts/set.dart';
|
||||
import 'package:wger/models/workouts/setting.dart';
|
||||
import 'package:wger/models/workouts/slot.dart';
|
||||
import 'package:wger/models/workouts/slot_entry.dart';
|
||||
import 'package:wger/providers/exercises.dart';
|
||||
import 'package:wger/providers/workout_plans.dart';
|
||||
import 'package:wger/theme/theme.dart';
|
||||
@@ -72,7 +72,7 @@ class _GymModeState extends State<GymMode> {
|
||||
void initState() {
|
||||
super.initState();
|
||||
// Calculate amount of elements for progress indicator
|
||||
for (final set in widget._workoutDay.sets) {
|
||||
for (final set in widget._workoutDay.slots) {
|
||||
_totalElements = _totalElements + set.settingsComputed.length;
|
||||
}
|
||||
// Calculate the pages for the navigation
|
||||
@@ -80,7 +80,7 @@ class _GymModeState extends State<GymMode> {
|
||||
// This duplicates the code below in the getContent method, but it seems to
|
||||
// be the easiest way
|
||||
var currentPage = 1;
|
||||
for (final set in widget._workoutDay.sets) {
|
||||
for (final set in widget._workoutDay.slots) {
|
||||
var firstPage = true;
|
||||
for (final setting in set.settingsComputed) {
|
||||
final exerciseBase = Provider.of<ExercisesProvider>(context, listen: false)
|
||||
@@ -108,7 +108,7 @@ class _GymModeState extends State<GymMode> {
|
||||
var currentElement = 1;
|
||||
final List<Widget> out = [];
|
||||
|
||||
for (final set in widget._workoutDay.sets) {
|
||||
for (final set in widget._workoutDay.slots) {
|
||||
var firstPage = true;
|
||||
for (final setting in set.settingsComputed) {
|
||||
final ratioCompleted = currentElement / _totalElements;
|
||||
@@ -129,7 +129,7 @@ class _GymModeState extends State<GymMode> {
|
||||
setting,
|
||||
set,
|
||||
exerciseBase,
|
||||
workoutProvider.findById(widget._workoutDay.workoutId),
|
||||
workoutProvider.findById(widget._workoutDay.routineId),
|
||||
ratioCompleted,
|
||||
_exercisePages,
|
||||
));
|
||||
@@ -150,7 +150,7 @@ class _GymModeState extends State<GymMode> {
|
||||
...getContent(),
|
||||
SessionPage(
|
||||
Provider.of<WorkoutPlansProvider>(context, listen: false)
|
||||
.findById(widget._workoutDay.workoutId),
|
||||
.findById(widget._workoutDay.routineId),
|
||||
_controller,
|
||||
widget._start,
|
||||
_exercisePages,
|
||||
@@ -180,7 +180,7 @@ class StartPage extends StatelessWidget {
|
||||
Expanded(
|
||||
child: ListView(
|
||||
children: [
|
||||
..._day.sets.map((set) {
|
||||
..._day.slots.map((set) {
|
||||
return Column(
|
||||
children: [
|
||||
...set.settingsFiltered.map((s) {
|
||||
@@ -220,8 +220,8 @@ class StartPage extends StatelessWidget {
|
||||
|
||||
class LogPage extends StatefulWidget {
|
||||
final PageController _controller;
|
||||
final Setting _setting;
|
||||
final Set _set;
|
||||
final SlotEntry _entry;
|
||||
final Slot _set;
|
||||
final Exercise _exerciseBase;
|
||||
final Routine _workoutPlan;
|
||||
final double _ratioCompleted;
|
||||
@@ -230,7 +230,7 @@ class LogPage extends StatefulWidget {
|
||||
|
||||
LogPage(
|
||||
this._controller,
|
||||
this._setting,
|
||||
this._entry,
|
||||
this._set,
|
||||
this._exerciseBase,
|
||||
this._workoutPlan,
|
||||
@@ -240,9 +240,9 @@ class LogPage extends StatefulWidget {
|
||||
_log.date = DateTime.now();
|
||||
_log.workoutPlan = _workoutPlan.id!;
|
||||
_log.exerciseBase = _exerciseBase;
|
||||
_log.weightUnit = _setting.weightUnitObj;
|
||||
_log.repetitionUnit = _setting.repetitionUnitObj;
|
||||
_log.rir = _setting.rir;
|
||||
_log.weightUnit = _entry.weightUnitObj;
|
||||
_log.repetitionUnit = _entry.repetitionUnitObj;
|
||||
_log.rir = _entry.rir;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -251,7 +251,7 @@ class LogPage extends StatefulWidget {
|
||||
|
||||
class _LogPageState extends State<LogPage> {
|
||||
final _form = GlobalKey<FormState>();
|
||||
String rirValue = Setting.DEFAULT_RIR;
|
||||
String rirValue = SlotEntry.DEFAULT_RIR;
|
||||
final _repsController = TextEditingController();
|
||||
final _weightController = TextEditingController();
|
||||
var _detailed = false;
|
||||
@@ -265,12 +265,12 @@ class _LogPageState extends State<LogPage> {
|
||||
|
||||
focusNode = FocusNode();
|
||||
|
||||
if (widget._setting.reps != null) {
|
||||
_repsController.text = widget._setting.reps.toString();
|
||||
if (widget._entry.reps != null) {
|
||||
_repsController.text = widget._entry.reps.toString();
|
||||
}
|
||||
|
||||
if (widget._setting.weight != null) {
|
||||
_weightController.text = widget._setting.weight.toString();
|
||||
if (widget._entry.weight != null) {
|
||||
_weightController.text = widget._entry.weight.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -618,7 +618,7 @@ class _LogPageState extends State<LogPage> {
|
||||
),
|
||||
Center(
|
||||
child: Text(
|
||||
widget._setting.singleSettingRepText,
|
||||
widget._entry.singleSettingRepText,
|
||||
style: Theme.of(context).textTheme.headlineMedium,
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
|
||||
@@ -34,7 +34,8 @@ class _FakeResponse_0 extends _i1.SmartFake implements _i2.Response {
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeStreamedResponse_1 extends _i1.SmartFake implements _i2.StreamedResponse {
|
||||
class _FakeStreamedResponse_1 extends _i1.SmartFake
|
||||
implements _i2.StreamedResponse {
|
||||
_FakeStreamedResponse_1(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -254,12 +255,14 @@ class MockClient extends _i1.Mock implements _i2.Client {
|
||||
) as _i3.Future<_i6.Uint8List>);
|
||||
|
||||
@override
|
||||
_i3.Future<_i2.StreamedResponse> send(_i2.BaseRequest? request) => (super.noSuchMethod(
|
||||
_i3.Future<_i2.StreamedResponse> send(_i2.BaseRequest? request) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#send,
|
||||
[request],
|
||||
),
|
||||
returnValue: _i3.Future<_i2.StreamedResponse>.value(_FakeStreamedResponse_1(
|
||||
returnValue:
|
||||
_i3.Future<_i2.StreamedResponse>.value(_FakeStreamedResponse_1(
|
||||
this,
|
||||
Invocation.method(
|
||||
#send,
|
||||
|
||||
@@ -34,7 +34,8 @@ import 'package:wger/providers/user.dart' as _i15;
|
||||
// ignore_for_file: camel_case_types
|
||||
// ignore_for_file: subtype_of_sealed_class
|
||||
|
||||
class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvider {
|
||||
class _FakeWgerBaseProvider_0 extends _i1.SmartFake
|
||||
implements _i2.WgerBaseProvider {
|
||||
_FakeWgerBaseProvider_0(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -87,7 +88,8 @@ class _FakeAlias_4 extends _i1.SmartFake implements _i6.Alias {
|
||||
/// A class which mocks [AddExerciseProvider].
|
||||
///
|
||||
/// See the documentation for Mockito's code generation for more information.
|
||||
class MockAddExerciseProvider extends _i1.Mock implements _i7.AddExerciseProvider {
|
||||
class MockAddExerciseProvider extends _i1.Mock
|
||||
implements _i7.AddExerciseProvider {
|
||||
MockAddExerciseProvider() {
|
||||
_i1.throwOnMissingStub(this);
|
||||
}
|
||||
@@ -376,7 +378,8 @@ class MockAddExerciseProvider extends _i1.Mock implements _i7.AddExerciseProvide
|
||||
) as _i13.Future<void>);
|
||||
|
||||
@override
|
||||
_i13.Future<_i4.Translation> addExerciseTranslation(_i4.Translation? exercise) =>
|
||||
_i13.Future<_i4.Translation> addExerciseTranslation(
|
||||
_i4.Translation? exercise) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addExerciseTranslation,
|
||||
|
||||
@@ -25,7 +25,8 @@ import 'package:wger/providers/measurement.dart' as _i4;
|
||||
// ignore_for_file: camel_case_types
|
||||
// ignore_for_file: subtype_of_sealed_class
|
||||
|
||||
class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvider {
|
||||
class _FakeWgerBaseProvider_0 extends _i1.SmartFake
|
||||
implements _i2.WgerBaseProvider {
|
||||
_FakeWgerBaseProvider_0(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -35,7 +36,8 @@ class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvi
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeMeasurementCategory_1 extends _i1.SmartFake implements _i3.MeasurementCategory {
|
||||
class _FakeMeasurementCategory_1 extends _i1.SmartFake
|
||||
implements _i3.MeasurementCategory {
|
||||
_FakeMeasurementCategory_1(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -48,7 +50,8 @@ class _FakeMeasurementCategory_1 extends _i1.SmartFake implements _i3.Measuremen
|
||||
/// A class which mocks [MeasurementProvider].
|
||||
///
|
||||
/// See the documentation for Mockito's code generation for more information.
|
||||
class MockMeasurementProvider extends _i1.Mock implements _i4.MeasurementProvider {
|
||||
class MockMeasurementProvider extends _i1.Mock
|
||||
implements _i4.MeasurementProvider {
|
||||
MockMeasurementProvider() {
|
||||
_i1.throwOnMissingStub(this);
|
||||
}
|
||||
@@ -129,7 +132,8 @@ class MockMeasurementProvider extends _i1.Mock implements _i4.MeasurementProvide
|
||||
) as _i5.Future<void>);
|
||||
|
||||
@override
|
||||
_i5.Future<void> addCategory(_i3.MeasurementCategory? category) => (super.noSuchMethod(
|
||||
_i5.Future<void> addCategory(_i3.MeasurementCategory? category) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addCategory,
|
||||
[category],
|
||||
|
||||
@@ -29,7 +29,8 @@ import 'package:wger/providers/nutrition.dart' as _i8;
|
||||
// ignore_for_file: camel_case_types
|
||||
// ignore_for_file: subtype_of_sealed_class
|
||||
|
||||
class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvider {
|
||||
class _FakeWgerBaseProvider_0 extends _i1.SmartFake
|
||||
implements _i2.WgerBaseProvider {
|
||||
_FakeWgerBaseProvider_0(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -39,7 +40,8 @@ class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvi
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeIngredientDatabase_1 extends _i1.SmartFake implements _i3.IngredientDatabase {
|
||||
class _FakeIngredientDatabase_1 extends _i1.SmartFake
|
||||
implements _i3.IngredientDatabase {
|
||||
_FakeIngredientDatabase_1(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -49,7 +51,8 @@ class _FakeIngredientDatabase_1 extends _i1.SmartFake implements _i3.IngredientD
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeNutritionalPlan_2 extends _i1.SmartFake implements _i4.NutritionalPlan {
|
||||
class _FakeNutritionalPlan_2 extends _i1.SmartFake
|
||||
implements _i4.NutritionalPlan {
|
||||
_FakeNutritionalPlan_2(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -92,7 +95,8 @@ class _FakeIngredient_5 extends _i1.SmartFake implements _i7.Ingredient {
|
||||
/// A class which mocks [NutritionPlansProvider].
|
||||
///
|
||||
/// See the documentation for Mockito's code generation for more information.
|
||||
class MockNutritionPlansProvider extends _i1.Mock implements _i8.NutritionPlansProvider {
|
||||
class MockNutritionPlansProvider extends _i1.Mock
|
||||
implements _i8.NutritionPlansProvider {
|
||||
MockNutritionPlansProvider() {
|
||||
_i1.throwOnMissingStub(this);
|
||||
}
|
||||
@@ -202,12 +206,14 @@ class MockNutritionPlansProvider extends _i1.Mock implements _i8.NutritionPlansP
|
||||
) as _i9.Future<void>);
|
||||
|
||||
@override
|
||||
_i9.Future<_i4.NutritionalPlan> fetchAndSetPlanSparse(int? planId) => (super.noSuchMethod(
|
||||
_i9.Future<_i4.NutritionalPlan> fetchAndSetPlanSparse(int? planId) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetPlanSparse,
|
||||
[planId],
|
||||
),
|
||||
returnValue: _i9.Future<_i4.NutritionalPlan>.value(_FakeNutritionalPlan_2(
|
||||
returnValue:
|
||||
_i9.Future<_i4.NutritionalPlan>.value(_FakeNutritionalPlan_2(
|
||||
this,
|
||||
Invocation.method(
|
||||
#fetchAndSetPlanSparse,
|
||||
@@ -217,12 +223,14 @@ class MockNutritionPlansProvider extends _i1.Mock implements _i8.NutritionPlansP
|
||||
) as _i9.Future<_i4.NutritionalPlan>);
|
||||
|
||||
@override
|
||||
_i9.Future<_i4.NutritionalPlan> fetchAndSetPlanFull(int? planId) => (super.noSuchMethod(
|
||||
_i9.Future<_i4.NutritionalPlan> fetchAndSetPlanFull(int? planId) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetPlanFull,
|
||||
[planId],
|
||||
),
|
||||
returnValue: _i9.Future<_i4.NutritionalPlan>.value(_FakeNutritionalPlan_2(
|
||||
returnValue:
|
||||
_i9.Future<_i4.NutritionalPlan>.value(_FakeNutritionalPlan_2(
|
||||
this,
|
||||
Invocation.method(
|
||||
#fetchAndSetPlanFull,
|
||||
@@ -232,12 +240,14 @@ class MockNutritionPlansProvider extends _i1.Mock implements _i8.NutritionPlansP
|
||||
) as _i9.Future<_i4.NutritionalPlan>);
|
||||
|
||||
@override
|
||||
_i9.Future<_i4.NutritionalPlan> addPlan(_i4.NutritionalPlan? planData) => (super.noSuchMethod(
|
||||
_i9.Future<_i4.NutritionalPlan> addPlan(_i4.NutritionalPlan? planData) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addPlan,
|
||||
[planData],
|
||||
),
|
||||
returnValue: _i9.Future<_i4.NutritionalPlan>.value(_FakeNutritionalPlan_2(
|
||||
returnValue:
|
||||
_i9.Future<_i4.NutritionalPlan>.value(_FakeNutritionalPlan_2(
|
||||
this,
|
||||
Invocation.method(
|
||||
#addPlan,
|
||||
@@ -342,7 +352,8 @@ class MockNutritionPlansProvider extends _i1.Mock implements _i8.NutritionPlansP
|
||||
) as _i9.Future<_i6.MealItem>);
|
||||
|
||||
@override
|
||||
_i9.Future<void> deleteMealItem(_i6.MealItem? mealItem) => (super.noSuchMethod(
|
||||
_i9.Future<void> deleteMealItem(_i6.MealItem? mealItem) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#deleteMealItem,
|
||||
[mealItem],
|
||||
@@ -412,7 +423,8 @@ class MockNutritionPlansProvider extends _i1.Mock implements _i8.NutritionPlansP
|
||||
) as _i9.Future<List<_i10.IngredientApiSearchEntry>>);
|
||||
|
||||
@override
|
||||
_i9.Future<_i7.Ingredient?> searchIngredientWithCode(String? code) => (super.noSuchMethod(
|
||||
_i9.Future<_i7.Ingredient?> searchIngredientWithCode(String? code) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#searchIngredientWithCode,
|
||||
[code],
|
||||
@@ -467,7 +479,8 @@ class MockNutritionPlansProvider extends _i1.Mock implements _i8.NutritionPlansP
|
||||
) as _i9.Future<void>);
|
||||
|
||||
@override
|
||||
_i9.Future<void> fetchAndSetLogs(_i4.NutritionalPlan? plan) => (super.noSuchMethod(
|
||||
_i9.Future<void> fetchAndSetLogs(_i4.NutritionalPlan? plan) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetLogs,
|
||||
[plan],
|
||||
|
||||
@@ -29,7 +29,8 @@ import 'package:wger/providers/nutrition.dart' as _i8;
|
||||
// ignore_for_file: camel_case_types
|
||||
// ignore_for_file: subtype_of_sealed_class
|
||||
|
||||
class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvider {
|
||||
class _FakeWgerBaseProvider_0 extends _i1.SmartFake
|
||||
implements _i2.WgerBaseProvider {
|
||||
_FakeWgerBaseProvider_0(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -39,7 +40,8 @@ class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvi
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeIngredientDatabase_1 extends _i1.SmartFake implements _i3.IngredientDatabase {
|
||||
class _FakeIngredientDatabase_1 extends _i1.SmartFake
|
||||
implements _i3.IngredientDatabase {
|
||||
_FakeIngredientDatabase_1(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -49,7 +51,8 @@ class _FakeIngredientDatabase_1 extends _i1.SmartFake implements _i3.IngredientD
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeNutritionalPlan_2 extends _i1.SmartFake implements _i4.NutritionalPlan {
|
||||
class _FakeNutritionalPlan_2 extends _i1.SmartFake
|
||||
implements _i4.NutritionalPlan {
|
||||
_FakeNutritionalPlan_2(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -92,7 +95,8 @@ class _FakeIngredient_5 extends _i1.SmartFake implements _i7.Ingredient {
|
||||
/// A class which mocks [NutritionPlansProvider].
|
||||
///
|
||||
/// See the documentation for Mockito's code generation for more information.
|
||||
class MockNutritionPlansProvider extends _i1.Mock implements _i8.NutritionPlansProvider {
|
||||
class MockNutritionPlansProvider extends _i1.Mock
|
||||
implements _i8.NutritionPlansProvider {
|
||||
MockNutritionPlansProvider() {
|
||||
_i1.throwOnMissingStub(this);
|
||||
}
|
||||
@@ -202,12 +206,14 @@ class MockNutritionPlansProvider extends _i1.Mock implements _i8.NutritionPlansP
|
||||
) as _i9.Future<void>);
|
||||
|
||||
@override
|
||||
_i9.Future<_i4.NutritionalPlan> fetchAndSetPlanSparse(int? planId) => (super.noSuchMethod(
|
||||
_i9.Future<_i4.NutritionalPlan> fetchAndSetPlanSparse(int? planId) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetPlanSparse,
|
||||
[planId],
|
||||
),
|
||||
returnValue: _i9.Future<_i4.NutritionalPlan>.value(_FakeNutritionalPlan_2(
|
||||
returnValue:
|
||||
_i9.Future<_i4.NutritionalPlan>.value(_FakeNutritionalPlan_2(
|
||||
this,
|
||||
Invocation.method(
|
||||
#fetchAndSetPlanSparse,
|
||||
@@ -217,12 +223,14 @@ class MockNutritionPlansProvider extends _i1.Mock implements _i8.NutritionPlansP
|
||||
) as _i9.Future<_i4.NutritionalPlan>);
|
||||
|
||||
@override
|
||||
_i9.Future<_i4.NutritionalPlan> fetchAndSetPlanFull(int? planId) => (super.noSuchMethod(
|
||||
_i9.Future<_i4.NutritionalPlan> fetchAndSetPlanFull(int? planId) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetPlanFull,
|
||||
[planId],
|
||||
),
|
||||
returnValue: _i9.Future<_i4.NutritionalPlan>.value(_FakeNutritionalPlan_2(
|
||||
returnValue:
|
||||
_i9.Future<_i4.NutritionalPlan>.value(_FakeNutritionalPlan_2(
|
||||
this,
|
||||
Invocation.method(
|
||||
#fetchAndSetPlanFull,
|
||||
@@ -232,12 +240,14 @@ class MockNutritionPlansProvider extends _i1.Mock implements _i8.NutritionPlansP
|
||||
) as _i9.Future<_i4.NutritionalPlan>);
|
||||
|
||||
@override
|
||||
_i9.Future<_i4.NutritionalPlan> addPlan(_i4.NutritionalPlan? planData) => (super.noSuchMethod(
|
||||
_i9.Future<_i4.NutritionalPlan> addPlan(_i4.NutritionalPlan? planData) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addPlan,
|
||||
[planData],
|
||||
),
|
||||
returnValue: _i9.Future<_i4.NutritionalPlan>.value(_FakeNutritionalPlan_2(
|
||||
returnValue:
|
||||
_i9.Future<_i4.NutritionalPlan>.value(_FakeNutritionalPlan_2(
|
||||
this,
|
||||
Invocation.method(
|
||||
#addPlan,
|
||||
@@ -342,7 +352,8 @@ class MockNutritionPlansProvider extends _i1.Mock implements _i8.NutritionPlansP
|
||||
) as _i9.Future<_i6.MealItem>);
|
||||
|
||||
@override
|
||||
_i9.Future<void> deleteMealItem(_i6.MealItem? mealItem) => (super.noSuchMethod(
|
||||
_i9.Future<void> deleteMealItem(_i6.MealItem? mealItem) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#deleteMealItem,
|
||||
[mealItem],
|
||||
@@ -412,7 +423,8 @@ class MockNutritionPlansProvider extends _i1.Mock implements _i8.NutritionPlansP
|
||||
) as _i9.Future<List<_i10.IngredientApiSearchEntry>>);
|
||||
|
||||
@override
|
||||
_i9.Future<_i7.Ingredient?> searchIngredientWithCode(String? code) => (super.noSuchMethod(
|
||||
_i9.Future<_i7.Ingredient?> searchIngredientWithCode(String? code) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#searchIngredientWithCode,
|
||||
[code],
|
||||
@@ -467,7 +479,8 @@ class MockNutritionPlansProvider extends _i1.Mock implements _i8.NutritionPlansP
|
||||
) as _i9.Future<void>);
|
||||
|
||||
@override
|
||||
_i9.Future<void> fetchAndSetLogs(_i4.NutritionalPlan? plan) => (super.noSuchMethod(
|
||||
_i9.Future<void> fetchAndSetLogs(_i4.NutritionalPlan? plan) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetLogs,
|
||||
[plan],
|
||||
|
||||
@@ -68,7 +68,8 @@ class _FakeResponse_3 extends _i1.SmartFake implements _i3.Response {
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeStreamedResponse_4 extends _i1.SmartFake implements _i3.StreamedResponse {
|
||||
class _FakeStreamedResponse_4 extends _i1.SmartFake
|
||||
implements _i3.StreamedResponse {
|
||||
_FakeStreamedResponse_4(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -123,7 +124,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
|
||||
);
|
||||
|
||||
@override
|
||||
Map<String, String> getDefaultHeaders({bool? includeAuth = false}) => (super.noSuchMethod(
|
||||
Map<String, String> getDefaultHeaders({bool? includeAuth = false}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getDefaultHeaders,
|
||||
[],
|
||||
@@ -169,7 +171,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
|
||||
#fetch,
|
||||
[uri],
|
||||
),
|
||||
returnValue: _i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i5.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
@@ -194,7 +197,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
|
||||
uri,
|
||||
],
|
||||
),
|
||||
returnValue: _i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i5.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
@@ -210,7 +214,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
|
||||
uri,
|
||||
],
|
||||
),
|
||||
returnValue: _i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i5.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
@@ -275,7 +280,8 @@ class MockAuthProvider extends _i1.Mock implements _i2.AuthProvider {
|
||||
);
|
||||
|
||||
@override
|
||||
set applicationVersion(_i6.PackageInfo? _applicationVersion) => super.noSuchMethod(
|
||||
set applicationVersion(_i6.PackageInfo? _applicationVersion) =>
|
||||
super.noSuchMethod(
|
||||
Invocation.setter(
|
||||
#applicationVersion,
|
||||
_applicationVersion,
|
||||
@@ -409,7 +415,8 @@ class MockAuthProvider extends _i1.Mock implements _i2.AuthProvider {
|
||||
#locale: locale,
|
||||
},
|
||||
),
|
||||
returnValue: _i5.Future<Map<String, _i2.LoginActions>>.value(<String, _i2.LoginActions>{}),
|
||||
returnValue: _i5.Future<Map<String, _i2.LoginActions>>.value(
|
||||
<String, _i2.LoginActions>{}),
|
||||
) as _i5.Future<Map<String, _i2.LoginActions>>);
|
||||
|
||||
@override
|
||||
@@ -427,7 +434,8 @@ class MockAuthProvider extends _i1.Mock implements _i2.AuthProvider {
|
||||
serverUrl,
|
||||
],
|
||||
),
|
||||
returnValue: _i5.Future<Map<String, _i2.LoginActions>>.value(<String, _i2.LoginActions>{}),
|
||||
returnValue: _i5.Future<Map<String, _i2.LoginActions>>.value(
|
||||
<String, _i2.LoginActions>{}),
|
||||
) as _i5.Future<Map<String, _i2.LoginActions>>);
|
||||
|
||||
@override
|
||||
@@ -727,12 +735,14 @@ class MockClient extends _i1.Mock implements _i3.Client {
|
||||
) as _i5.Future<_i10.Uint8List>);
|
||||
|
||||
@override
|
||||
_i5.Future<_i3.StreamedResponse> send(_i3.BaseRequest? request) => (super.noSuchMethod(
|
||||
_i5.Future<_i3.StreamedResponse> send(_i3.BaseRequest? request) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#send,
|
||||
[request],
|
||||
),
|
||||
returnValue: _i5.Future<_i3.StreamedResponse>.value(_FakeStreamedResponse_4(
|
||||
returnValue:
|
||||
_i5.Future<_i3.StreamedResponse>.value(_FakeStreamedResponse_4(
|
||||
this,
|
||||
Invocation.method(
|
||||
#send,
|
||||
|
||||
@@ -68,7 +68,8 @@ class _FakeResponse_3 extends _i1.SmartFake implements _i2.Response {
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeStreamedResponse_4 extends _i1.SmartFake implements _i2.StreamedResponse {
|
||||
class _FakeStreamedResponse_4 extends _i1.SmartFake
|
||||
implements _i2.StreamedResponse {
|
||||
_FakeStreamedResponse_4(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -114,7 +115,8 @@ class MockAuthProvider extends _i1.Mock implements _i3.AuthProvider {
|
||||
);
|
||||
|
||||
@override
|
||||
set applicationVersion(_i4.PackageInfo? _applicationVersion) => super.noSuchMethod(
|
||||
set applicationVersion(_i4.PackageInfo? _applicationVersion) =>
|
||||
super.noSuchMethod(
|
||||
Invocation.setter(
|
||||
#applicationVersion,
|
||||
_applicationVersion,
|
||||
@@ -248,7 +250,8 @@ class MockAuthProvider extends _i1.Mock implements _i3.AuthProvider {
|
||||
#locale: locale,
|
||||
},
|
||||
),
|
||||
returnValue: _i5.Future<Map<String, _i3.LoginActions>>.value(<String, _i3.LoginActions>{}),
|
||||
returnValue: _i5.Future<Map<String, _i3.LoginActions>>.value(
|
||||
<String, _i3.LoginActions>{}),
|
||||
) as _i5.Future<Map<String, _i3.LoginActions>>);
|
||||
|
||||
@override
|
||||
@@ -266,7 +269,8 @@ class MockAuthProvider extends _i1.Mock implements _i3.AuthProvider {
|
||||
serverUrl,
|
||||
],
|
||||
),
|
||||
returnValue: _i5.Future<Map<String, _i3.LoginActions>>.value(<String, _i3.LoginActions>{}),
|
||||
returnValue: _i5.Future<Map<String, _i3.LoginActions>>.value(
|
||||
<String, _i3.LoginActions>{}),
|
||||
) as _i5.Future<Map<String, _i3.LoginActions>>);
|
||||
|
||||
@override
|
||||
@@ -401,7 +405,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i8.WgerBaseProvider {
|
||||
);
|
||||
|
||||
@override
|
||||
Map<String, String> getDefaultHeaders({bool? includeAuth = false}) => (super.noSuchMethod(
|
||||
Map<String, String> getDefaultHeaders({bool? includeAuth = false}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getDefaultHeaders,
|
||||
[],
|
||||
@@ -447,7 +452,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i8.WgerBaseProvider {
|
||||
#fetch,
|
||||
[uri],
|
||||
),
|
||||
returnValue: _i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i5.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
@@ -472,7 +478,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i8.WgerBaseProvider {
|
||||
uri,
|
||||
],
|
||||
),
|
||||
returnValue: _i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i5.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
@@ -488,7 +495,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i8.WgerBaseProvider {
|
||||
uri,
|
||||
],
|
||||
),
|
||||
returnValue: _i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i5.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
@@ -727,12 +735,14 @@ class MockClient extends _i1.Mock implements _i2.Client {
|
||||
) as _i5.Future<_i10.Uint8List>);
|
||||
|
||||
@override
|
||||
_i5.Future<_i2.StreamedResponse> send(_i2.BaseRequest? request) => (super.noSuchMethod(
|
||||
_i5.Future<_i2.StreamedResponse> send(_i2.BaseRequest? request) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#send,
|
||||
[request],
|
||||
),
|
||||
returnValue: _i5.Future<_i2.StreamedResponse>.value(_FakeStreamedResponse_4(
|
||||
returnValue:
|
||||
_i5.Future<_i2.StreamedResponse>.value(_FakeStreamedResponse_4(
|
||||
this,
|
||||
Invocation.method(
|
||||
#send,
|
||||
|
||||
@@ -26,7 +26,8 @@ import 'package:wger/providers/user.dart' as _i7;
|
||||
// ignore_for_file: camel_case_types
|
||||
// ignore_for_file: subtype_of_sealed_class
|
||||
|
||||
class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvider {
|
||||
class _FakeWgerBaseProvider_0 extends _i1.SmartFake
|
||||
implements _i2.WgerBaseProvider {
|
||||
_FakeWgerBaseProvider_0(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -49,7 +50,8 @@ class _FakeWeightEntry_1 extends _i1.SmartFake implements _i3.WeightEntry {
|
||||
/// A class which mocks [BodyWeightProvider].
|
||||
///
|
||||
/// See the documentation for Mockito's code generation for more information.
|
||||
class MockBodyWeightProvider extends _i1.Mock implements _i4.BodyWeightProvider {
|
||||
class MockBodyWeightProvider extends _i1.Mock
|
||||
implements _i4.BodyWeightProvider {
|
||||
MockBodyWeightProvider() {
|
||||
_i1.throwOnMissingStub(this);
|
||||
}
|
||||
@@ -109,7 +111,8 @@ class MockBodyWeightProvider extends _i1.Mock implements _i4.BodyWeightProvider
|
||||
) as _i3.WeightEntry);
|
||||
|
||||
@override
|
||||
_i3.WeightEntry? findByDate(DateTime? date) => (super.noSuchMethod(Invocation.method(
|
||||
_i3.WeightEntry? findByDate(DateTime? date) =>
|
||||
(super.noSuchMethod(Invocation.method(
|
||||
#findByDate,
|
||||
[date],
|
||||
)) as _i3.WeightEntry?);
|
||||
@@ -120,11 +123,13 @@ class MockBodyWeightProvider extends _i1.Mock implements _i4.BodyWeightProvider
|
||||
#fetchAndSetEntries,
|
||||
[],
|
||||
),
|
||||
returnValue: _i5.Future<List<_i3.WeightEntry>>.value(<_i3.WeightEntry>[]),
|
||||
returnValue:
|
||||
_i5.Future<List<_i3.WeightEntry>>.value(<_i3.WeightEntry>[]),
|
||||
) as _i5.Future<List<_i3.WeightEntry>>);
|
||||
|
||||
@override
|
||||
_i5.Future<_i3.WeightEntry> addEntry(_i3.WeightEntry? entry) => (super.noSuchMethod(
|
||||
_i5.Future<_i3.WeightEntry> addEntry(_i3.WeightEntry? entry) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addEntry,
|
||||
[entry],
|
||||
|
||||
@@ -71,7 +71,8 @@ class _FakeResponse_3 extends _i1.SmartFake implements _i3.Response {
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeWgerBaseProvider_4 extends _i1.SmartFake implements _i4.WgerBaseProvider {
|
||||
class _FakeWgerBaseProvider_4 extends _i1.SmartFake
|
||||
implements _i4.WgerBaseProvider {
|
||||
_FakeWgerBaseProvider_4(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -81,7 +82,8 @@ class _FakeWgerBaseProvider_4 extends _i1.SmartFake implements _i4.WgerBaseProvi
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeExerciseDatabase_5 extends _i1.SmartFake implements _i5.ExerciseDatabase {
|
||||
class _FakeExerciseDatabase_5 extends _i1.SmartFake
|
||||
implements _i5.ExerciseDatabase {
|
||||
_FakeExerciseDatabase_5(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -101,7 +103,8 @@ class _FakeExercise_6 extends _i1.SmartFake implements _i6.Exercise {
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeExerciseCategory_7 extends _i1.SmartFake implements _i7.ExerciseCategory {
|
||||
class _FakeExerciseCategory_7 extends _i1.SmartFake
|
||||
implements _i7.ExerciseCategory {
|
||||
_FakeExerciseCategory_7(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -186,7 +189,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
|
||||
);
|
||||
|
||||
@override
|
||||
Map<String, String> getDefaultHeaders({bool? includeAuth = false}) => (super.noSuchMethod(
|
||||
Map<String, String> getDefaultHeaders({bool? includeAuth = false}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getDefaultHeaders,
|
||||
[],
|
||||
@@ -232,7 +236,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
|
||||
#fetch,
|
||||
[uri],
|
||||
),
|
||||
returnValue: _i11.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i11.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i11.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
@@ -257,7 +262,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
|
||||
uri,
|
||||
],
|
||||
),
|
||||
returnValue: _i11.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i11.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i11.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
@@ -273,7 +279,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
|
||||
uri,
|
||||
],
|
||||
),
|
||||
returnValue: _i11.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i11.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i11.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
@@ -359,7 +366,8 @@ class MockExercisesProvider extends _i1.Mock implements _i12.ExercisesProvider {
|
||||
) as List<_i6.Exercise>);
|
||||
|
||||
@override
|
||||
set filteredExercises(List<_i6.Exercise>? newFilteredExercises) => super.noSuchMethod(
|
||||
set filteredExercises(List<_i6.Exercise>? newFilteredExercises) =>
|
||||
super.noSuchMethod(
|
||||
Invocation.setter(
|
||||
#filteredExercises,
|
||||
newFilteredExercises,
|
||||
@@ -368,7 +376,8 @@ class MockExercisesProvider extends _i1.Mock implements _i12.ExercisesProvider {
|
||||
);
|
||||
|
||||
@override
|
||||
Map<int, List<_i6.Exercise>> get exerciseBasesByVariation => (super.noSuchMethod(
|
||||
Map<int, List<_i6.Exercise>> get exerciseBasesByVariation =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.getter(#exerciseBasesByVariation),
|
||||
returnValue: <int, List<_i6.Exercise>>{},
|
||||
) as Map<int, List<_i6.Exercise>>);
|
||||
@@ -580,7 +589,8 @@ class MockExercisesProvider extends _i1.Mock implements _i12.ExercisesProvider {
|
||||
) as _i11.Future<void>);
|
||||
|
||||
@override
|
||||
_i11.Future<_i6.Exercise> fetchAndSetExercise(int? exerciseId) => (super.noSuchMethod(
|
||||
_i11.Future<_i6.Exercise> fetchAndSetExercise(int? exerciseId) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetExercise,
|
||||
[exerciseId],
|
||||
@@ -620,7 +630,8 @@ class MockExercisesProvider extends _i1.Mock implements _i12.ExercisesProvider {
|
||||
) as _i11.Future<_i6.Exercise>);
|
||||
|
||||
@override
|
||||
_i11.Future<void> initCacheTimesLocalPrefs({dynamic forceInit = false}) => (super.noSuchMethod(
|
||||
_i11.Future<void> initCacheTimesLocalPrefs({dynamic forceInit = false}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#initCacheTimesLocalPrefs,
|
||||
[],
|
||||
@@ -666,7 +677,8 @@ class MockExercisesProvider extends _i1.Mock implements _i12.ExercisesProvider {
|
||||
) as _i11.Future<void>);
|
||||
|
||||
@override
|
||||
_i11.Future<void> updateExerciseCache(_i5.ExerciseDatabase? database) => (super.noSuchMethod(
|
||||
_i11.Future<void> updateExerciseCache(_i5.ExerciseDatabase? database) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#updateExerciseCache,
|
||||
[database],
|
||||
@@ -676,7 +688,8 @@ class MockExercisesProvider extends _i1.Mock implements _i12.ExercisesProvider {
|
||||
) as _i11.Future<void>);
|
||||
|
||||
@override
|
||||
_i11.Future<void> fetchAndSetMuscles(_i5.ExerciseDatabase? database) => (super.noSuchMethod(
|
||||
_i11.Future<void> fetchAndSetMuscles(_i5.ExerciseDatabase? database) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetMuscles,
|
||||
[database],
|
||||
@@ -686,7 +699,8 @@ class MockExercisesProvider extends _i1.Mock implements _i12.ExercisesProvider {
|
||||
) as _i11.Future<void>);
|
||||
|
||||
@override
|
||||
_i11.Future<void> fetchAndSetCategories(_i5.ExerciseDatabase? database) => (super.noSuchMethod(
|
||||
_i11.Future<void> fetchAndSetCategories(_i5.ExerciseDatabase? database) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetCategories,
|
||||
[database],
|
||||
@@ -696,7 +710,8 @@ class MockExercisesProvider extends _i1.Mock implements _i12.ExercisesProvider {
|
||||
) as _i11.Future<void>);
|
||||
|
||||
@override
|
||||
_i11.Future<void> fetchAndSetLanguages(_i5.ExerciseDatabase? database) => (super.noSuchMethod(
|
||||
_i11.Future<void> fetchAndSetLanguages(_i5.ExerciseDatabase? database) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetLanguages,
|
||||
[database],
|
||||
@@ -706,7 +721,8 @@ class MockExercisesProvider extends _i1.Mock implements _i12.ExercisesProvider {
|
||||
) as _i11.Future<void>);
|
||||
|
||||
@override
|
||||
_i11.Future<void> fetchAndSetEquipments(_i5.ExerciseDatabase? database) => (super.noSuchMethod(
|
||||
_i11.Future<void> fetchAndSetEquipments(_i5.ExerciseDatabase? database) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetEquipments,
|
||||
[database],
|
||||
|
||||
@@ -23,7 +23,7 @@ import 'package:mockito/annotations.dart';
|
||||
import 'package:mockito/mockito.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:wger/models/workouts/repetition_unit.dart';
|
||||
import 'package:wger/models/workouts/setting.dart';
|
||||
import 'package:wger/models/workouts/slot_entry.dart';
|
||||
import 'package:wger/providers/workout_plans.dart';
|
||||
import 'package:wger/screens/workout_plan_screen.dart';
|
||||
import 'package:wger/widgets/workouts/forms.dart';
|
||||
@@ -38,15 +38,17 @@ void main() {
|
||||
const unit2 = RepetitionUnit(id: 2, name: 'another name');
|
||||
const unit3 = RepetitionUnit(id: 3, name: 'this is repetition number 3');
|
||||
|
||||
final setting1 = Setting(
|
||||
setId: 1,
|
||||
final setting1 = SlotEntry(
|
||||
slotId: 1,
|
||||
type: 'normal',
|
||||
order: 1,
|
||||
exerciseId: 1,
|
||||
repetitionUnitId: 1,
|
||||
repetitionRounding: 0.25,
|
||||
reps: 2,
|
||||
weightUnitId: 1,
|
||||
weightRounding: 0.25,
|
||||
comment: 'comment',
|
||||
rir: '1',
|
||||
);
|
||||
setting1.repetitionUnitObj = unit1;
|
||||
|
||||
|
||||
@@ -15,8 +15,8 @@ import 'package:wger/models/workouts/log.dart' as _i10;
|
||||
import 'package:wger/models/workouts/repetition_unit.dart' as _i4;
|
||||
import 'package:wger/models/workouts/routine.dart' as _i5;
|
||||
import 'package:wger/models/workouts/session.dart' as _i9;
|
||||
import 'package:wger/models/workouts/set.dart' as _i7;
|
||||
import 'package:wger/models/workouts/setting.dart' as _i8;
|
||||
import 'package:wger/models/workouts/slot.dart' as _i7;
|
||||
import 'package:wger/models/workouts/slot_entry.dart' as _i8;
|
||||
import 'package:wger/models/workouts/weight_unit.dart' as _i3;
|
||||
import 'package:wger/providers/base_provider.dart' as _i2;
|
||||
import 'package:wger/providers/workout_plans.dart' as _i11;
|
||||
@@ -34,7 +34,8 @@ import 'package:wger/providers/workout_plans.dart' as _i11;
|
||||
// ignore_for_file: camel_case_types
|
||||
// ignore_for_file: subtype_of_sealed_class
|
||||
|
||||
class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvider {
|
||||
class _FakeWgerBaseProvider_0 extends _i1.SmartFake
|
||||
implements _i2.WgerBaseProvider {
|
||||
_FakeWgerBaseProvider_0(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -54,7 +55,8 @@ class _FakeWeightUnit_1 extends _i1.SmartFake implements _i3.WeightUnit {
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeRepetitionUnit_2 extends _i1.SmartFake implements _i4.RepetitionUnit {
|
||||
class _FakeRepetitionUnit_2 extends _i1.SmartFake
|
||||
implements _i4.RepetitionUnit {
|
||||
_FakeRepetitionUnit_2(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -84,8 +86,8 @@ class _FakeDay_4 extends _i1.SmartFake implements _i6.Day {
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeSet_5 extends _i1.SmartFake implements _i7.Set {
|
||||
_FakeSet_5(
|
||||
class _FakeSlot_5 extends _i1.SmartFake implements _i7.Slot {
|
||||
_FakeSlot_5(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
@@ -94,8 +96,8 @@ class _FakeSet_5 extends _i1.SmartFake implements _i7.Set {
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeSetting_6 extends _i1.SmartFake implements _i8.Setting {
|
||||
_FakeSetting_6(
|
||||
class _FakeSlotEntry_6 extends _i1.SmartFake implements _i8.SlotEntry {
|
||||
_FakeSlotEntry_6(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
@@ -104,7 +106,8 @@ class _FakeSetting_6 extends _i1.SmartFake implements _i8.Setting {
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeWorkoutSession_7 extends _i1.SmartFake implements _i9.WorkoutSession {
|
||||
class _FakeWorkoutSession_7 extends _i1.SmartFake
|
||||
implements _i9.WorkoutSession {
|
||||
_FakeWorkoutSession_7(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -127,7 +130,8 @@ class _FakeLog_8 extends _i1.SmartFake implements _i10.Log {
|
||||
/// A class which mocks [WorkoutPlansProvider].
|
||||
///
|
||||
/// See the documentation for Mockito's code generation for more information.
|
||||
class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProvider {
|
||||
class MockWorkoutPlansProvider extends _i1.Mock
|
||||
implements _i11.WorkoutPlansProvider {
|
||||
MockWorkoutPlansProvider() {
|
||||
_i1.throwOnMissingStub(this);
|
||||
}
|
||||
@@ -264,7 +268,8 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<void>);
|
||||
|
||||
@override
|
||||
_i12.Future<_i5.Routine> fetchAndSetPlanSparse(int? planId) => (super.noSuchMethod(
|
||||
_i12.Future<_i5.Routine> fetchAndSetPlanSparse(int? planId) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetPlanSparse,
|
||||
[planId],
|
||||
@@ -279,7 +284,8 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<_i5.Routine>);
|
||||
|
||||
@override
|
||||
_i12.Future<_i5.Routine> fetchAndSetWorkoutPlanFull(int? workoutId) => (super.noSuchMethod(
|
||||
_i12.Future<_i5.Routine> fetchAndSetWorkoutPlanFull(int? workoutId) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetWorkoutPlanFull,
|
||||
[workoutId],
|
||||
@@ -294,7 +300,8 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<_i5.Routine>);
|
||||
|
||||
@override
|
||||
_i12.Future<_i5.Routine> addWorkout(_i5.Routine? workout) => (super.noSuchMethod(
|
||||
_i12.Future<_i5.Routine> addWorkout(_i5.Routine? workout) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addWorkout,
|
||||
[workout],
|
||||
@@ -341,7 +348,8 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
base,
|
||||
],
|
||||
),
|
||||
returnValue: _i12.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i12.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i12.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
@@ -420,22 +428,22 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<void>);
|
||||
|
||||
@override
|
||||
_i12.Future<_i7.Set> addSet(_i7.Set? workoutSet) => (super.noSuchMethod(
|
||||
_i12.Future<_i7.Slot> addSet(_i7.Slot? workoutSet) => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addSet,
|
||||
[workoutSet],
|
||||
),
|
||||
returnValue: _i12.Future<_i7.Set>.value(_FakeSet_5(
|
||||
returnValue: _i12.Future<_i7.Slot>.value(_FakeSlot_5(
|
||||
this,
|
||||
Invocation.method(
|
||||
#addSet,
|
||||
[workoutSet],
|
||||
),
|
||||
)),
|
||||
) as _i12.Future<_i7.Set>);
|
||||
) as _i12.Future<_i7.Slot>);
|
||||
|
||||
@override
|
||||
_i12.Future<void> editSet(_i7.Set? workoutSet) => (super.noSuchMethod(
|
||||
_i12.Future<void> editSet(_i7.Slot? workoutSet) => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#editSet,
|
||||
[workoutSet],
|
||||
@@ -445,8 +453,8 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<void>);
|
||||
|
||||
@override
|
||||
_i12.Future<List<_i7.Set>> reorderSets(
|
||||
List<_i7.Set>? sets,
|
||||
_i12.Future<List<_i7.Slot>> reorderSets(
|
||||
List<_i7.Slot>? sets,
|
||||
int? startIndex,
|
||||
) =>
|
||||
(super.noSuchMethod(
|
||||
@@ -457,11 +465,12 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
startIndex,
|
||||
],
|
||||
),
|
||||
returnValue: _i12.Future<List<_i7.Set>>.value(<_i7.Set>[]),
|
||||
) as _i12.Future<List<_i7.Set>>);
|
||||
returnValue: _i12.Future<List<_i7.Slot>>.value(<_i7.Slot>[]),
|
||||
) as _i12.Future<List<_i7.Slot>>);
|
||||
|
||||
@override
|
||||
_i12.Future<void> fetchComputedSettings(_i7.Set? workoutSet) => (super.noSuchMethod(
|
||||
_i12.Future<void> fetchComputedSettings(_i7.Slot? workoutSet) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchComputedSettings,
|
||||
[workoutSet],
|
||||
@@ -472,7 +481,7 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
|
||||
@override
|
||||
_i12.Future<String> fetchSmartText(
|
||||
_i7.Set? workoutSet,
|
||||
_i7.Slot? workoutSet,
|
||||
_i14.Translation? exercise,
|
||||
) =>
|
||||
(super.noSuchMethod(
|
||||
@@ -496,7 +505,7 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<String>);
|
||||
|
||||
@override
|
||||
_i12.Future<void> deleteSet(_i7.Set? workoutSet) => (super.noSuchMethod(
|
||||
_i12.Future<void> deleteSet(_i7.Slot? workoutSet) => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#deleteSet,
|
||||
[workoutSet],
|
||||
@@ -506,19 +515,20 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<void>);
|
||||
|
||||
@override
|
||||
_i12.Future<_i8.Setting> addSetting(_i8.Setting? workoutSetting) => (super.noSuchMethod(
|
||||
_i12.Future<_i8.SlotEntry> addSetting(_i8.SlotEntry? workoutSetting) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addSetting,
|
||||
[workoutSetting],
|
||||
),
|
||||
returnValue: _i12.Future<_i8.Setting>.value(_FakeSetting_6(
|
||||
returnValue: _i12.Future<_i8.SlotEntry>.value(_FakeSlotEntry_6(
|
||||
this,
|
||||
Invocation.method(
|
||||
#addSetting,
|
||||
[workoutSetting],
|
||||
),
|
||||
)),
|
||||
) as _i12.Future<_i8.Setting>);
|
||||
) as _i12.Future<_i8.SlotEntry>);
|
||||
|
||||
@override
|
||||
_i12.Future<dynamic> fetchSessionData() => (super.noSuchMethod(
|
||||
@@ -530,12 +540,14 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<dynamic>);
|
||||
|
||||
@override
|
||||
_i12.Future<_i9.WorkoutSession> addSession(_i9.WorkoutSession? session) => (super.noSuchMethod(
|
||||
_i12.Future<_i9.WorkoutSession> addSession(_i9.WorkoutSession? session) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addSession,
|
||||
[session],
|
||||
),
|
||||
returnValue: _i12.Future<_i9.WorkoutSession>.value(_FakeWorkoutSession_7(
|
||||
returnValue:
|
||||
_i12.Future<_i9.WorkoutSession>.value(_FakeWorkoutSession_7(
|
||||
this,
|
||||
Invocation.method(
|
||||
#addSession,
|
||||
|
||||
@@ -24,8 +24,8 @@ void main() {
|
||||
group('Test the getSmartTextRepr method for a set', () {
|
||||
test('Repetitions and weigh units', () {
|
||||
final workout = getWorkout();
|
||||
final set = workout.days.first.sets.first;
|
||||
final exercise1 = set.exerciseBasesObj[0];
|
||||
final set = workout.days.first.slots.first;
|
||||
final exercise1 = set.exercisesObj[0];
|
||||
|
||||
expect(set.getSmartTextRepr(exercise1), '6 × 80 kg (3 RiR)');
|
||||
});
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:wger/models/workouts/repetition_unit.dart';
|
||||
import 'package:wger/models/workouts/setting.dart';
|
||||
import 'package:wger/models/workouts/slot_entry.dart';
|
||||
import 'package:wger/models/workouts/weight_unit.dart';
|
||||
|
||||
void main() {
|
||||
@@ -27,65 +27,60 @@ void main() {
|
||||
const repUnit = RepetitionUnit(id: 1, name: 'mol');
|
||||
const weightUnit = WeightUnit(id: 1, name: 'mg');
|
||||
|
||||
final setting = Setting.empty();
|
||||
setting.reps = 2;
|
||||
setting.weight = 30;
|
||||
setting.rir = '';
|
||||
setting.repetitionUnit = repUnit;
|
||||
setting.weightUnit = weightUnit;
|
||||
expect(setting.singleSettingRepText, '2 × 30 mg');
|
||||
final entry = SlotEntry.empty();
|
||||
entry.reps = 2;
|
||||
entry.weight = 30;
|
||||
entry.repetitionUnit = repUnit;
|
||||
entry.weightUnit = weightUnit;
|
||||
expect(entry.singleSettingRepText, '2 × 30 mg');
|
||||
});
|
||||
|
||||
test('Default rep and weight units', () {
|
||||
const repUnit = RepetitionUnit(id: 1, name: 'mol');
|
||||
const weightUnit = WeightUnit(id: 1, name: 'mg');
|
||||
|
||||
final setting = Setting.empty();
|
||||
setting.reps = 2;
|
||||
setting.weight = 30;
|
||||
setting.rir = '1.5';
|
||||
setting.repetitionUnit = repUnit;
|
||||
setting.weightUnit = weightUnit;
|
||||
expect(setting.singleSettingRepText, '2 × 30 mg \n (1.5 RiR)');
|
||||
final entry = SlotEntry.empty();
|
||||
entry.reps = 2;
|
||||
entry.weight = 30;
|
||||
entry.repetitionUnit = repUnit;
|
||||
entry.weightUnit = weightUnit;
|
||||
expect(entry.singleSettingRepText, '2 × 30 mg \n (1.5 RiR)');
|
||||
});
|
||||
|
||||
test('No weight, default rep and weight units', () {
|
||||
const repUnit = RepetitionUnit(id: 1, name: 'mol');
|
||||
const weightUnit = WeightUnit(id: 1, name: 'mg');
|
||||
|
||||
final setting = Setting.empty();
|
||||
setting.reps = 2;
|
||||
setting.weight = null;
|
||||
setting.rir = '1.5';
|
||||
setting.repetitionUnit = repUnit;
|
||||
setting.weightUnit = weightUnit;
|
||||
expect(setting.singleSettingRepText, '2 mol \n (1.5 RiR)');
|
||||
final entry = SlotEntry.empty();
|
||||
entry.reps = 2;
|
||||
entry.weight = null;
|
||||
entry.repetitionUnit = repUnit;
|
||||
entry.weightUnit = weightUnit;
|
||||
expect(entry.singleSettingRepText, '2 mol \n (1.5 RiR)');
|
||||
});
|
||||
|
||||
test('Custom rep and weight units, no RiR', () {
|
||||
const repUnit = RepetitionUnit(id: 2, name: 'mol');
|
||||
const weightUnit = WeightUnit(id: 2, name: 'mg');
|
||||
|
||||
final setting = Setting.empty();
|
||||
setting.reps = 2;
|
||||
setting.weight = 30;
|
||||
setting.rir = '';
|
||||
setting.repetitionUnit = repUnit;
|
||||
setting.weightUnit = weightUnit;
|
||||
expect(setting.singleSettingRepText, '2 mol × 30 mg');
|
||||
final slotEntry = SlotEntry.empty();
|
||||
slotEntry.reps = 2;
|
||||
slotEntry.weight = 30;
|
||||
slotEntry.repetitionUnit = repUnit;
|
||||
slotEntry.weightUnit = weightUnit;
|
||||
expect(slotEntry.singleSettingRepText, '2 mol × 30 mg');
|
||||
});
|
||||
|
||||
test('Custom rep and weight units, RiR', () {
|
||||
const repUnit = RepetitionUnit(id: 2, name: 'mol');
|
||||
const weightUnit = WeightUnit(id: 2, name: 'mg');
|
||||
|
||||
final setting = Setting.empty();
|
||||
setting.reps = 2;
|
||||
setting.weight = 30;
|
||||
setting.rir = '3';
|
||||
setting.repetitionUnit = repUnit;
|
||||
setting.weightUnit = weightUnit;
|
||||
expect(setting.singleSettingRepText, '2 mol × 30 mg \n (3 RiR)');
|
||||
final slotEntry = SlotEntry.empty();
|
||||
slotEntry.reps = 2;
|
||||
slotEntry.weight = 30;
|
||||
slotEntry.repetitionUnit = repUnit;
|
||||
slotEntry.weightUnit = weightUnit;
|
||||
expect(slotEntry.singleSettingRepText, '2 mol × 30 mg \n (3 RiR)');
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:mockito/annotations.dart';
|
||||
import 'package:mockito/mockito.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:wger/models/workouts/setting.dart';
|
||||
import 'package:wger/models/workouts/slot_entry.dart';
|
||||
import 'package:wger/models/workouts/weight_unit.dart';
|
||||
import 'package:wger/providers/body_weight.dart';
|
||||
import 'package:wger/providers/workout_plans.dart';
|
||||
@@ -39,15 +39,17 @@ void main() {
|
||||
const unit2 = WeightUnit(id: 2, name: 'donkeys');
|
||||
const unit3 = WeightUnit(id: 3, name: 'plates');
|
||||
|
||||
final setting1 = Setting(
|
||||
setId: 1,
|
||||
final setting1 = SlotEntry(
|
||||
slotId: 1,
|
||||
type: 'normal',
|
||||
order: 1,
|
||||
exerciseId: 1,
|
||||
repetitionUnitId: 1,
|
||||
repetitionRounding: 0.25,
|
||||
reps: 2,
|
||||
weightUnitId: 1,
|
||||
weightRounding: 0.25,
|
||||
comment: 'comment',
|
||||
rir: '1',
|
||||
);
|
||||
setting1.weightUnitObj = unit1;
|
||||
|
||||
|
||||
@@ -24,7 +24,8 @@ import 'package:wger/providers/body_weight.dart' as _i4;
|
||||
// ignore_for_file: camel_case_types
|
||||
// ignore_for_file: subtype_of_sealed_class
|
||||
|
||||
class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvider {
|
||||
class _FakeWgerBaseProvider_0 extends _i1.SmartFake
|
||||
implements _i2.WgerBaseProvider {
|
||||
_FakeWgerBaseProvider_0(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -47,7 +48,8 @@ class _FakeWeightEntry_1 extends _i1.SmartFake implements _i3.WeightEntry {
|
||||
/// A class which mocks [BodyWeightProvider].
|
||||
///
|
||||
/// See the documentation for Mockito's code generation for more information.
|
||||
class MockBodyWeightProvider extends _i1.Mock implements _i4.BodyWeightProvider {
|
||||
class MockBodyWeightProvider extends _i1.Mock
|
||||
implements _i4.BodyWeightProvider {
|
||||
MockBodyWeightProvider() {
|
||||
_i1.throwOnMissingStub(this);
|
||||
}
|
||||
@@ -107,7 +109,8 @@ class MockBodyWeightProvider extends _i1.Mock implements _i4.BodyWeightProvider
|
||||
) as _i3.WeightEntry);
|
||||
|
||||
@override
|
||||
_i3.WeightEntry? findByDate(DateTime? date) => (super.noSuchMethod(Invocation.method(
|
||||
_i3.WeightEntry? findByDate(DateTime? date) =>
|
||||
(super.noSuchMethod(Invocation.method(
|
||||
#findByDate,
|
||||
[date],
|
||||
)) as _i3.WeightEntry?);
|
||||
@@ -118,11 +121,13 @@ class MockBodyWeightProvider extends _i1.Mock implements _i4.BodyWeightProvider
|
||||
#fetchAndSetEntries,
|
||||
[],
|
||||
),
|
||||
returnValue: _i5.Future<List<_i3.WeightEntry>>.value(<_i3.WeightEntry>[]),
|
||||
returnValue:
|
||||
_i5.Future<List<_i3.WeightEntry>>.value(<_i3.WeightEntry>[]),
|
||||
) as _i5.Future<List<_i3.WeightEntry>>);
|
||||
|
||||
@override
|
||||
_i5.Future<_i3.WeightEntry> addEntry(_i3.WeightEntry? entry) => (super.noSuchMethod(
|
||||
_i5.Future<_i3.WeightEntry> addEntry(_i3.WeightEntry? entry) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addEntry,
|
||||
[entry],
|
||||
|
||||
@@ -15,8 +15,8 @@ import 'package:wger/models/workouts/log.dart' as _i10;
|
||||
import 'package:wger/models/workouts/repetition_unit.dart' as _i4;
|
||||
import 'package:wger/models/workouts/routine.dart' as _i5;
|
||||
import 'package:wger/models/workouts/session.dart' as _i9;
|
||||
import 'package:wger/models/workouts/set.dart' as _i7;
|
||||
import 'package:wger/models/workouts/setting.dart' as _i8;
|
||||
import 'package:wger/models/workouts/slot.dart' as _i7;
|
||||
import 'package:wger/models/workouts/slot_entry.dart' as _i8;
|
||||
import 'package:wger/models/workouts/weight_unit.dart' as _i3;
|
||||
import 'package:wger/providers/base_provider.dart' as _i2;
|
||||
import 'package:wger/providers/workout_plans.dart' as _i11;
|
||||
@@ -34,7 +34,8 @@ import 'package:wger/providers/workout_plans.dart' as _i11;
|
||||
// ignore_for_file: camel_case_types
|
||||
// ignore_for_file: subtype_of_sealed_class
|
||||
|
||||
class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvider {
|
||||
class _FakeWgerBaseProvider_0 extends _i1.SmartFake
|
||||
implements _i2.WgerBaseProvider {
|
||||
_FakeWgerBaseProvider_0(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -54,7 +55,8 @@ class _FakeWeightUnit_1 extends _i1.SmartFake implements _i3.WeightUnit {
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeRepetitionUnit_2 extends _i1.SmartFake implements _i4.RepetitionUnit {
|
||||
class _FakeRepetitionUnit_2 extends _i1.SmartFake
|
||||
implements _i4.RepetitionUnit {
|
||||
_FakeRepetitionUnit_2(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -84,8 +86,8 @@ class _FakeDay_4 extends _i1.SmartFake implements _i6.Day {
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeSet_5 extends _i1.SmartFake implements _i7.Set {
|
||||
_FakeSet_5(
|
||||
class _FakeSlot_5 extends _i1.SmartFake implements _i7.Slot {
|
||||
_FakeSlot_5(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
@@ -94,8 +96,8 @@ class _FakeSet_5 extends _i1.SmartFake implements _i7.Set {
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeSetting_6 extends _i1.SmartFake implements _i8.Setting {
|
||||
_FakeSetting_6(
|
||||
class _FakeSlotEntry_6 extends _i1.SmartFake implements _i8.SlotEntry {
|
||||
_FakeSlotEntry_6(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
@@ -104,7 +106,8 @@ class _FakeSetting_6 extends _i1.SmartFake implements _i8.Setting {
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeWorkoutSession_7 extends _i1.SmartFake implements _i9.WorkoutSession {
|
||||
class _FakeWorkoutSession_7 extends _i1.SmartFake
|
||||
implements _i9.WorkoutSession {
|
||||
_FakeWorkoutSession_7(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -127,7 +130,8 @@ class _FakeLog_8 extends _i1.SmartFake implements _i10.Log {
|
||||
/// A class which mocks [WorkoutPlansProvider].
|
||||
///
|
||||
/// See the documentation for Mockito's code generation for more information.
|
||||
class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProvider {
|
||||
class MockWorkoutPlansProvider extends _i1.Mock
|
||||
implements _i11.WorkoutPlansProvider {
|
||||
MockWorkoutPlansProvider() {
|
||||
_i1.throwOnMissingStub(this);
|
||||
}
|
||||
@@ -264,7 +268,8 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<void>);
|
||||
|
||||
@override
|
||||
_i12.Future<_i5.Routine> fetchAndSetPlanSparse(int? planId) => (super.noSuchMethod(
|
||||
_i12.Future<_i5.Routine> fetchAndSetPlanSparse(int? planId) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetPlanSparse,
|
||||
[planId],
|
||||
@@ -279,7 +284,8 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<_i5.Routine>);
|
||||
|
||||
@override
|
||||
_i12.Future<_i5.Routine> fetchAndSetWorkoutPlanFull(int? workoutId) => (super.noSuchMethod(
|
||||
_i12.Future<_i5.Routine> fetchAndSetWorkoutPlanFull(int? workoutId) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetWorkoutPlanFull,
|
||||
[workoutId],
|
||||
@@ -294,7 +300,8 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<_i5.Routine>);
|
||||
|
||||
@override
|
||||
_i12.Future<_i5.Routine> addWorkout(_i5.Routine? workout) => (super.noSuchMethod(
|
||||
_i12.Future<_i5.Routine> addWorkout(_i5.Routine? workout) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addWorkout,
|
||||
[workout],
|
||||
@@ -341,7 +348,8 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
base,
|
||||
],
|
||||
),
|
||||
returnValue: _i12.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i12.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i12.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
@@ -420,22 +428,22 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<void>);
|
||||
|
||||
@override
|
||||
_i12.Future<_i7.Set> addSet(_i7.Set? workoutSet) => (super.noSuchMethod(
|
||||
_i12.Future<_i7.Slot> addSet(_i7.Slot? workoutSet) => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addSet,
|
||||
[workoutSet],
|
||||
),
|
||||
returnValue: _i12.Future<_i7.Set>.value(_FakeSet_5(
|
||||
returnValue: _i12.Future<_i7.Slot>.value(_FakeSlot_5(
|
||||
this,
|
||||
Invocation.method(
|
||||
#addSet,
|
||||
[workoutSet],
|
||||
),
|
||||
)),
|
||||
) as _i12.Future<_i7.Set>);
|
||||
) as _i12.Future<_i7.Slot>);
|
||||
|
||||
@override
|
||||
_i12.Future<void> editSet(_i7.Set? workoutSet) => (super.noSuchMethod(
|
||||
_i12.Future<void> editSet(_i7.Slot? workoutSet) => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#editSet,
|
||||
[workoutSet],
|
||||
@@ -445,8 +453,8 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<void>);
|
||||
|
||||
@override
|
||||
_i12.Future<List<_i7.Set>> reorderSets(
|
||||
List<_i7.Set>? sets,
|
||||
_i12.Future<List<_i7.Slot>> reorderSets(
|
||||
List<_i7.Slot>? sets,
|
||||
int? startIndex,
|
||||
) =>
|
||||
(super.noSuchMethod(
|
||||
@@ -457,11 +465,12 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
startIndex,
|
||||
],
|
||||
),
|
||||
returnValue: _i12.Future<List<_i7.Set>>.value(<_i7.Set>[]),
|
||||
) as _i12.Future<List<_i7.Set>>);
|
||||
returnValue: _i12.Future<List<_i7.Slot>>.value(<_i7.Slot>[]),
|
||||
) as _i12.Future<List<_i7.Slot>>);
|
||||
|
||||
@override
|
||||
_i12.Future<void> fetchComputedSettings(_i7.Set? workoutSet) => (super.noSuchMethod(
|
||||
_i12.Future<void> fetchComputedSettings(_i7.Slot? workoutSet) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchComputedSettings,
|
||||
[workoutSet],
|
||||
@@ -472,7 +481,7 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
|
||||
@override
|
||||
_i12.Future<String> fetchSmartText(
|
||||
_i7.Set? workoutSet,
|
||||
_i7.Slot? workoutSet,
|
||||
_i14.Translation? exercise,
|
||||
) =>
|
||||
(super.noSuchMethod(
|
||||
@@ -496,7 +505,7 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<String>);
|
||||
|
||||
@override
|
||||
_i12.Future<void> deleteSet(_i7.Set? workoutSet) => (super.noSuchMethod(
|
||||
_i12.Future<void> deleteSet(_i7.Slot? workoutSet) => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#deleteSet,
|
||||
[workoutSet],
|
||||
@@ -506,19 +515,20 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<void>);
|
||||
|
||||
@override
|
||||
_i12.Future<_i8.Setting> addSetting(_i8.Setting? workoutSetting) => (super.noSuchMethod(
|
||||
_i12.Future<_i8.SlotEntry> addSetting(_i8.SlotEntry? workoutSetting) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addSetting,
|
||||
[workoutSetting],
|
||||
),
|
||||
returnValue: _i12.Future<_i8.Setting>.value(_FakeSetting_6(
|
||||
returnValue: _i12.Future<_i8.SlotEntry>.value(_FakeSlotEntry_6(
|
||||
this,
|
||||
Invocation.method(
|
||||
#addSetting,
|
||||
[workoutSetting],
|
||||
),
|
||||
)),
|
||||
) as _i12.Future<_i8.Setting>);
|
||||
) as _i12.Future<_i8.SlotEntry>);
|
||||
|
||||
@override
|
||||
_i12.Future<dynamic> fetchSessionData() => (super.noSuchMethod(
|
||||
@@ -530,12 +540,14 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<dynamic>);
|
||||
|
||||
@override
|
||||
_i12.Future<_i9.WorkoutSession> addSession(_i9.WorkoutSession? session) => (super.noSuchMethod(
|
||||
_i12.Future<_i9.WorkoutSession> addSession(_i9.WorkoutSession? session) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addSession,
|
||||
[session],
|
||||
),
|
||||
returnValue: _i12.Future<_i9.WorkoutSession>.value(_FakeWorkoutSession_7(
|
||||
returnValue:
|
||||
_i12.Future<_i9.WorkoutSession>.value(_FakeWorkoutSession_7(
|
||||
this,
|
||||
Invocation.method(
|
||||
#addSession,
|
||||
|
||||
@@ -15,8 +15,8 @@ import 'package:wger/models/workouts/log.dart' as _i10;
|
||||
import 'package:wger/models/workouts/repetition_unit.dart' as _i4;
|
||||
import 'package:wger/models/workouts/routine.dart' as _i5;
|
||||
import 'package:wger/models/workouts/session.dart' as _i9;
|
||||
import 'package:wger/models/workouts/set.dart' as _i7;
|
||||
import 'package:wger/models/workouts/setting.dart' as _i8;
|
||||
import 'package:wger/models/workouts/slot.dart' as _i7;
|
||||
import 'package:wger/models/workouts/slot_entry.dart' as _i8;
|
||||
import 'package:wger/models/workouts/weight_unit.dart' as _i3;
|
||||
import 'package:wger/providers/base_provider.dart' as _i2;
|
||||
import 'package:wger/providers/workout_plans.dart' as _i11;
|
||||
@@ -34,7 +34,8 @@ import 'package:wger/providers/workout_plans.dart' as _i11;
|
||||
// ignore_for_file: camel_case_types
|
||||
// ignore_for_file: subtype_of_sealed_class
|
||||
|
||||
class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvider {
|
||||
class _FakeWgerBaseProvider_0 extends _i1.SmartFake
|
||||
implements _i2.WgerBaseProvider {
|
||||
_FakeWgerBaseProvider_0(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -54,7 +55,8 @@ class _FakeWeightUnit_1 extends _i1.SmartFake implements _i3.WeightUnit {
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeRepetitionUnit_2 extends _i1.SmartFake implements _i4.RepetitionUnit {
|
||||
class _FakeRepetitionUnit_2 extends _i1.SmartFake
|
||||
implements _i4.RepetitionUnit {
|
||||
_FakeRepetitionUnit_2(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -84,8 +86,8 @@ class _FakeDay_4 extends _i1.SmartFake implements _i6.Day {
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeSet_5 extends _i1.SmartFake implements _i7.Set {
|
||||
_FakeSet_5(
|
||||
class _FakeSlot_5 extends _i1.SmartFake implements _i7.Slot {
|
||||
_FakeSlot_5(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
@@ -94,8 +96,8 @@ class _FakeSet_5 extends _i1.SmartFake implements _i7.Set {
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeSetting_6 extends _i1.SmartFake implements _i8.Setting {
|
||||
_FakeSetting_6(
|
||||
class _FakeSlotEntry_6 extends _i1.SmartFake implements _i8.SlotEntry {
|
||||
_FakeSlotEntry_6(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
@@ -104,7 +106,8 @@ class _FakeSetting_6 extends _i1.SmartFake implements _i8.Setting {
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeWorkoutSession_7 extends _i1.SmartFake implements _i9.WorkoutSession {
|
||||
class _FakeWorkoutSession_7 extends _i1.SmartFake
|
||||
implements _i9.WorkoutSession {
|
||||
_FakeWorkoutSession_7(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -127,7 +130,8 @@ class _FakeLog_8 extends _i1.SmartFake implements _i10.Log {
|
||||
/// A class which mocks [WorkoutPlansProvider].
|
||||
///
|
||||
/// See the documentation for Mockito's code generation for more information.
|
||||
class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProvider {
|
||||
class MockWorkoutPlansProvider extends _i1.Mock
|
||||
implements _i11.WorkoutPlansProvider {
|
||||
MockWorkoutPlansProvider() {
|
||||
_i1.throwOnMissingStub(this);
|
||||
}
|
||||
@@ -264,7 +268,8 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<void>);
|
||||
|
||||
@override
|
||||
_i12.Future<_i5.Routine> fetchAndSetPlanSparse(int? planId) => (super.noSuchMethod(
|
||||
_i12.Future<_i5.Routine> fetchAndSetPlanSparse(int? planId) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetPlanSparse,
|
||||
[planId],
|
||||
@@ -279,7 +284,8 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<_i5.Routine>);
|
||||
|
||||
@override
|
||||
_i12.Future<_i5.Routine> fetchAndSetWorkoutPlanFull(int? workoutId) => (super.noSuchMethod(
|
||||
_i12.Future<_i5.Routine> fetchAndSetWorkoutPlanFull(int? workoutId) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetWorkoutPlanFull,
|
||||
[workoutId],
|
||||
@@ -294,7 +300,8 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<_i5.Routine>);
|
||||
|
||||
@override
|
||||
_i12.Future<_i5.Routine> addWorkout(_i5.Routine? workout) => (super.noSuchMethod(
|
||||
_i12.Future<_i5.Routine> addWorkout(_i5.Routine? workout) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addWorkout,
|
||||
[workout],
|
||||
@@ -341,7 +348,8 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
base,
|
||||
],
|
||||
),
|
||||
returnValue: _i12.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i12.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i12.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
@@ -420,22 +428,22 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<void>);
|
||||
|
||||
@override
|
||||
_i12.Future<_i7.Set> addSet(_i7.Set? workoutSet) => (super.noSuchMethod(
|
||||
_i12.Future<_i7.Slot> addSet(_i7.Slot? workoutSet) => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addSet,
|
||||
[workoutSet],
|
||||
),
|
||||
returnValue: _i12.Future<_i7.Set>.value(_FakeSet_5(
|
||||
returnValue: _i12.Future<_i7.Slot>.value(_FakeSlot_5(
|
||||
this,
|
||||
Invocation.method(
|
||||
#addSet,
|
||||
[workoutSet],
|
||||
),
|
||||
)),
|
||||
) as _i12.Future<_i7.Set>);
|
||||
) as _i12.Future<_i7.Slot>);
|
||||
|
||||
@override
|
||||
_i12.Future<void> editSet(_i7.Set? workoutSet) => (super.noSuchMethod(
|
||||
_i12.Future<void> editSet(_i7.Slot? workoutSet) => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#editSet,
|
||||
[workoutSet],
|
||||
@@ -445,8 +453,8 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<void>);
|
||||
|
||||
@override
|
||||
_i12.Future<List<_i7.Set>> reorderSets(
|
||||
List<_i7.Set>? sets,
|
||||
_i12.Future<List<_i7.Slot>> reorderSets(
|
||||
List<_i7.Slot>? sets,
|
||||
int? startIndex,
|
||||
) =>
|
||||
(super.noSuchMethod(
|
||||
@@ -457,11 +465,12 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
startIndex,
|
||||
],
|
||||
),
|
||||
returnValue: _i12.Future<List<_i7.Set>>.value(<_i7.Set>[]),
|
||||
) as _i12.Future<List<_i7.Set>>);
|
||||
returnValue: _i12.Future<List<_i7.Slot>>.value(<_i7.Slot>[]),
|
||||
) as _i12.Future<List<_i7.Slot>>);
|
||||
|
||||
@override
|
||||
_i12.Future<void> fetchComputedSettings(_i7.Set? workoutSet) => (super.noSuchMethod(
|
||||
_i12.Future<void> fetchComputedSettings(_i7.Slot? workoutSet) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchComputedSettings,
|
||||
[workoutSet],
|
||||
@@ -472,7 +481,7 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
|
||||
@override
|
||||
_i12.Future<String> fetchSmartText(
|
||||
_i7.Set? workoutSet,
|
||||
_i7.Slot? workoutSet,
|
||||
_i14.Translation? exercise,
|
||||
) =>
|
||||
(super.noSuchMethod(
|
||||
@@ -496,7 +505,7 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<String>);
|
||||
|
||||
@override
|
||||
_i12.Future<void> deleteSet(_i7.Set? workoutSet) => (super.noSuchMethod(
|
||||
_i12.Future<void> deleteSet(_i7.Slot? workoutSet) => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#deleteSet,
|
||||
[workoutSet],
|
||||
@@ -506,19 +515,20 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<void>);
|
||||
|
||||
@override
|
||||
_i12.Future<_i8.Setting> addSetting(_i8.Setting? workoutSetting) => (super.noSuchMethod(
|
||||
_i12.Future<_i8.SlotEntry> addSetting(_i8.SlotEntry? workoutSetting) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addSetting,
|
||||
[workoutSetting],
|
||||
),
|
||||
returnValue: _i12.Future<_i8.Setting>.value(_FakeSetting_6(
|
||||
returnValue: _i12.Future<_i8.SlotEntry>.value(_FakeSlotEntry_6(
|
||||
this,
|
||||
Invocation.method(
|
||||
#addSetting,
|
||||
[workoutSetting],
|
||||
),
|
||||
)),
|
||||
) as _i12.Future<_i8.Setting>);
|
||||
) as _i12.Future<_i8.SlotEntry>);
|
||||
|
||||
@override
|
||||
_i12.Future<dynamic> fetchSessionData() => (super.noSuchMethod(
|
||||
@@ -530,12 +540,14 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
) as _i12.Future<dynamic>);
|
||||
|
||||
@override
|
||||
_i12.Future<_i9.WorkoutSession> addSession(_i9.WorkoutSession? session) => (super.noSuchMethod(
|
||||
_i12.Future<_i9.WorkoutSession> addSession(_i9.WorkoutSession? session) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addSession,
|
||||
[session],
|
||||
),
|
||||
returnValue: _i12.Future<_i9.WorkoutSession>.value(_FakeWorkoutSession_7(
|
||||
returnValue:
|
||||
_i12.Future<_i9.WorkoutSession>.value(_FakeWorkoutSession_7(
|
||||
this,
|
||||
Invocation.method(
|
||||
#addSession,
|
||||
|
||||
@@ -108,7 +108,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
|
||||
);
|
||||
|
||||
@override
|
||||
Map<String, String> getDefaultHeaders({bool? includeAuth = false}) => (super.noSuchMethod(
|
||||
Map<String, String> getDefaultHeaders({bool? includeAuth = false}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getDefaultHeaders,
|
||||
[],
|
||||
@@ -154,7 +155,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
|
||||
#fetch,
|
||||
[uri],
|
||||
),
|
||||
returnValue: _i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i5.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
@@ -179,7 +181,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
|
||||
uri,
|
||||
],
|
||||
),
|
||||
returnValue: _i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i5.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
@@ -195,7 +198,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
|
||||
uri,
|
||||
],
|
||||
),
|
||||
returnValue: _i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i5.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
|
||||
@@ -108,7 +108,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
|
||||
);
|
||||
|
||||
@override
|
||||
Map<String, String> getDefaultHeaders({bool? includeAuth = false}) => (super.noSuchMethod(
|
||||
Map<String, String> getDefaultHeaders({bool? includeAuth = false}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getDefaultHeaders,
|
||||
[],
|
||||
@@ -154,7 +155,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
|
||||
#fetch,
|
||||
[uri],
|
||||
),
|
||||
returnValue: _i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i5.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
@@ -179,7 +181,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
|
||||
uri,
|
||||
],
|
||||
),
|
||||
returnValue: _i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i5.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
@@ -195,7 +198,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
|
||||
uri,
|
||||
],
|
||||
),
|
||||
returnValue: _i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i5.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
|
||||
@@ -49,14 +49,17 @@ void main() {
|
||||
test('Test fetching and setting a plan', () async {
|
||||
final exercisesProvider = ExercisesProvider(mockBaseProvider);
|
||||
|
||||
final uri = Uri.https('localhost', 'api/v2/workout/325397/');
|
||||
when(mockBaseProvider.makeUrl('workout', id: 325397)).thenReturn(uri);
|
||||
final uri = Uri.https('localhost', 'api/v2/routine/325397/');
|
||||
when(mockBaseProvider.makeUrl('routine', id: 325397)).thenReturn(uri);
|
||||
when(mockBaseProvider.fetch(uri)).thenAnswer(
|
||||
(_) async => Future.value({
|
||||
'id': 325397,
|
||||
'created': '2022-10-10',
|
||||
'name': 'Test workout',
|
||||
'creation_date': '2022-10-10',
|
||||
'description': 'Test workout abcd',
|
||||
'start': '2021-12-20',
|
||||
'end': '2022-06-06',
|
||||
'fit_in_week': false
|
||||
}),
|
||||
);
|
||||
|
||||
@@ -84,7 +87,7 @@ void main() {
|
||||
'description': 'Test workout abcd',
|
||||
}),
|
||||
);
|
||||
when(mockBaseProvider.deleteRequest('workout', 325397)).thenAnswer(
|
||||
when(mockBaseProvider.deleteRequest('routine', 325397)).thenAnswer(
|
||||
(_) => Future.value(Response('', 204)),
|
||||
);
|
||||
|
||||
|
||||
@@ -108,7 +108,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
|
||||
);
|
||||
|
||||
@override
|
||||
Map<String, String> getDefaultHeaders({bool? includeAuth = false}) => (super.noSuchMethod(
|
||||
Map<String, String> getDefaultHeaders({bool? includeAuth = false}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getDefaultHeaders,
|
||||
[],
|
||||
@@ -154,7 +155,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
|
||||
#fetch,
|
||||
[uri],
|
||||
),
|
||||
returnValue: _i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i5.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
@@ -179,7 +181,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
|
||||
uri,
|
||||
],
|
||||
),
|
||||
returnValue: _i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i5.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
@@ -195,7 +198,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider {
|
||||
uri,
|
||||
],
|
||||
),
|
||||
returnValue: _i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i5.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i5.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
|
||||
@@ -24,8 +24,8 @@ import 'package:mockito/mockito.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:wger/helpers/consts.dart';
|
||||
import 'package:wger/models/workouts/day.dart';
|
||||
import 'package:wger/models/workouts/set.dart';
|
||||
import 'package:wger/models/workouts/setting.dart';
|
||||
import 'package:wger/models/workouts/slot.dart';
|
||||
import 'package:wger/models/workouts/slot_entry.dart';
|
||||
import 'package:wger/providers/base_provider.dart';
|
||||
import 'package:wger/providers/exercises.dart';
|
||||
import 'package:wger/providers/workout_plans.dart';
|
||||
@@ -81,8 +81,8 @@ void main() {
|
||||
});
|
||||
|
||||
testWidgets('Test creating a new set', (WidgetTester tester) async {
|
||||
when(mockWorkoutPlans.addSet(any)).thenAnswer((_) => Future.value(Set.empty()));
|
||||
when(mockWorkoutPlans.addSetting(any)).thenAnswer((_) => Future.value(Setting.empty()));
|
||||
when(mockWorkoutPlans.addSet(any)).thenAnswer((_) => Future.value(Slot.empty()));
|
||||
when(mockWorkoutPlans.addSetting(any)).thenAnswer((_) => Future.value(SlotEntry.empty()));
|
||||
when(mockWorkoutPlans.fetchSmartText(any, any)).thenAnswer((_) => Future.value('2 x 10'));
|
||||
when(mockExerciseProvider.searchExercise(
|
||||
any,
|
||||
|
||||
@@ -21,8 +21,8 @@ import 'package:wger/models/workouts/log.dart' as _i18;
|
||||
import 'package:wger/models/workouts/repetition_unit.dart' as _i12;
|
||||
import 'package:wger/models/workouts/routine.dart' as _i13;
|
||||
import 'package:wger/models/workouts/session.dart' as _i17;
|
||||
import 'package:wger/models/workouts/set.dart' as _i15;
|
||||
import 'package:wger/models/workouts/setting.dart' as _i16;
|
||||
import 'package:wger/models/workouts/slot.dart' as _i15;
|
||||
import 'package:wger/models/workouts/slot_entry.dart' as _i16;
|
||||
import 'package:wger/models/workouts/weight_unit.dart' as _i11;
|
||||
import 'package:wger/providers/auth.dart' as _i9;
|
||||
import 'package:wger/providers/base_provider.dart' as _i2;
|
||||
@@ -42,7 +42,8 @@ import 'package:wger/providers/workout_plans.dart' as _i22;
|
||||
// ignore_for_file: camel_case_types
|
||||
// ignore_for_file: subtype_of_sealed_class
|
||||
|
||||
class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvider {
|
||||
class _FakeWgerBaseProvider_0 extends _i1.SmartFake
|
||||
implements _i2.WgerBaseProvider {
|
||||
_FakeWgerBaseProvider_0(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -52,7 +53,8 @@ class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvi
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeExerciseDatabase_1 extends _i1.SmartFake implements _i3.ExerciseDatabase {
|
||||
class _FakeExerciseDatabase_1 extends _i1.SmartFake
|
||||
implements _i3.ExerciseDatabase {
|
||||
_FakeExerciseDatabase_1(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -72,7 +74,8 @@ class _FakeExercise_2 extends _i1.SmartFake implements _i4.Exercise {
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeExerciseCategory_3 extends _i1.SmartFake implements _i5.ExerciseCategory {
|
||||
class _FakeExerciseCategory_3 extends _i1.SmartFake
|
||||
implements _i5.ExerciseCategory {
|
||||
_FakeExerciseCategory_3(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -162,7 +165,8 @@ class _FakeWeightUnit_11 extends _i1.SmartFake implements _i11.WeightUnit {
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeRepetitionUnit_12 extends _i1.SmartFake implements _i12.RepetitionUnit {
|
||||
class _FakeRepetitionUnit_12 extends _i1.SmartFake
|
||||
implements _i12.RepetitionUnit {
|
||||
_FakeRepetitionUnit_12(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -192,8 +196,8 @@ class _FakeDay_14 extends _i1.SmartFake implements _i14.Day {
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeSet_15 extends _i1.SmartFake implements _i15.Set {
|
||||
_FakeSet_15(
|
||||
class _FakeSlot_15 extends _i1.SmartFake implements _i15.Slot {
|
||||
_FakeSlot_15(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
@@ -202,8 +206,8 @@ class _FakeSet_15 extends _i1.SmartFake implements _i15.Set {
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeSetting_16 extends _i1.SmartFake implements _i16.Setting {
|
||||
_FakeSetting_16(
|
||||
class _FakeSlotEntry_16 extends _i1.SmartFake implements _i16.SlotEntry {
|
||||
_FakeSlotEntry_16(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
@@ -212,7 +216,8 @@ class _FakeSetting_16 extends _i1.SmartFake implements _i16.Setting {
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeWorkoutSession_17 extends _i1.SmartFake implements _i17.WorkoutSession {
|
||||
class _FakeWorkoutSession_17 extends _i1.SmartFake
|
||||
implements _i17.WorkoutSession {
|
||||
_FakeWorkoutSession_17(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
@@ -289,7 +294,8 @@ class MockExercisesProvider extends _i1.Mock implements _i19.ExercisesProvider {
|
||||
) as List<_i4.Exercise>);
|
||||
|
||||
@override
|
||||
set filteredExercises(List<_i4.Exercise>? newFilteredExercises) => super.noSuchMethod(
|
||||
set filteredExercises(List<_i4.Exercise>? newFilteredExercises) =>
|
||||
super.noSuchMethod(
|
||||
Invocation.setter(
|
||||
#filteredExercises,
|
||||
newFilteredExercises,
|
||||
@@ -298,7 +304,8 @@ class MockExercisesProvider extends _i1.Mock implements _i19.ExercisesProvider {
|
||||
);
|
||||
|
||||
@override
|
||||
Map<int, List<_i4.Exercise>> get exerciseBasesByVariation => (super.noSuchMethod(
|
||||
Map<int, List<_i4.Exercise>> get exerciseBasesByVariation =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.getter(#exerciseBasesByVariation),
|
||||
returnValue: <int, List<_i4.Exercise>>{},
|
||||
) as Map<int, List<_i4.Exercise>>);
|
||||
@@ -510,7 +517,8 @@ class MockExercisesProvider extends _i1.Mock implements _i19.ExercisesProvider {
|
||||
) as _i20.Future<void>);
|
||||
|
||||
@override
|
||||
_i20.Future<_i4.Exercise> fetchAndSetExercise(int? exerciseId) => (super.noSuchMethod(
|
||||
_i20.Future<_i4.Exercise> fetchAndSetExercise(int? exerciseId) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetExercise,
|
||||
[exerciseId],
|
||||
@@ -550,7 +558,8 @@ class MockExercisesProvider extends _i1.Mock implements _i19.ExercisesProvider {
|
||||
) as _i20.Future<_i4.Exercise>);
|
||||
|
||||
@override
|
||||
_i20.Future<void> initCacheTimesLocalPrefs({dynamic forceInit = false}) => (super.noSuchMethod(
|
||||
_i20.Future<void> initCacheTimesLocalPrefs({dynamic forceInit = false}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#initCacheTimesLocalPrefs,
|
||||
[],
|
||||
@@ -596,7 +605,8 @@ class MockExercisesProvider extends _i1.Mock implements _i19.ExercisesProvider {
|
||||
) as _i20.Future<void>);
|
||||
|
||||
@override
|
||||
_i20.Future<void> updateExerciseCache(_i3.ExerciseDatabase? database) => (super.noSuchMethod(
|
||||
_i20.Future<void> updateExerciseCache(_i3.ExerciseDatabase? database) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#updateExerciseCache,
|
||||
[database],
|
||||
@@ -606,7 +616,8 @@ class MockExercisesProvider extends _i1.Mock implements _i19.ExercisesProvider {
|
||||
) as _i20.Future<void>);
|
||||
|
||||
@override
|
||||
_i20.Future<void> fetchAndSetMuscles(_i3.ExerciseDatabase? database) => (super.noSuchMethod(
|
||||
_i20.Future<void> fetchAndSetMuscles(_i3.ExerciseDatabase? database) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetMuscles,
|
||||
[database],
|
||||
@@ -616,7 +627,8 @@ class MockExercisesProvider extends _i1.Mock implements _i19.ExercisesProvider {
|
||||
) as _i20.Future<void>);
|
||||
|
||||
@override
|
||||
_i20.Future<void> fetchAndSetCategories(_i3.ExerciseDatabase? database) => (super.noSuchMethod(
|
||||
_i20.Future<void> fetchAndSetCategories(_i3.ExerciseDatabase? database) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetCategories,
|
||||
[database],
|
||||
@@ -626,7 +638,8 @@ class MockExercisesProvider extends _i1.Mock implements _i19.ExercisesProvider {
|
||||
) as _i20.Future<void>);
|
||||
|
||||
@override
|
||||
_i20.Future<void> fetchAndSetLanguages(_i3.ExerciseDatabase? database) => (super.noSuchMethod(
|
||||
_i20.Future<void> fetchAndSetLanguages(_i3.ExerciseDatabase? database) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetLanguages,
|
||||
[database],
|
||||
@@ -636,7 +649,8 @@ class MockExercisesProvider extends _i1.Mock implements _i19.ExercisesProvider {
|
||||
) as _i20.Future<void>);
|
||||
|
||||
@override
|
||||
_i20.Future<void> fetchAndSetEquipments(_i3.ExerciseDatabase? database) => (super.noSuchMethod(
|
||||
_i20.Future<void> fetchAndSetEquipments(_i3.ExerciseDatabase? database) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetEquipments,
|
||||
[database],
|
||||
@@ -745,7 +759,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i2.WgerBaseProvider {
|
||||
);
|
||||
|
||||
@override
|
||||
Map<String, String> getDefaultHeaders({bool? includeAuth = false}) => (super.noSuchMethod(
|
||||
Map<String, String> getDefaultHeaders({bool? includeAuth = false}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getDefaultHeaders,
|
||||
[],
|
||||
@@ -791,7 +806,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i2.WgerBaseProvider {
|
||||
#fetch,
|
||||
[uri],
|
||||
),
|
||||
returnValue: _i20.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i20.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i20.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
@@ -816,7 +832,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i2.WgerBaseProvider {
|
||||
uri,
|
||||
],
|
||||
),
|
||||
returnValue: _i20.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i20.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i20.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
@@ -832,7 +849,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i2.WgerBaseProvider {
|
||||
uri,
|
||||
],
|
||||
),
|
||||
returnValue: _i20.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i20.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i20.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
@@ -864,7 +882,8 @@ class MockWgerBaseProvider extends _i1.Mock implements _i2.WgerBaseProvider {
|
||||
/// A class which mocks [WorkoutPlansProvider].
|
||||
///
|
||||
/// See the documentation for Mockito's code generation for more information.
|
||||
class MockWorkoutPlansProvider extends _i1.Mock implements _i22.WorkoutPlansProvider {
|
||||
class MockWorkoutPlansProvider extends _i1.Mock
|
||||
implements _i22.WorkoutPlansProvider {
|
||||
MockWorkoutPlansProvider() {
|
||||
_i1.throwOnMissingStub(this);
|
||||
}
|
||||
@@ -1001,7 +1020,8 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i22.WorkoutPlansProv
|
||||
) as _i20.Future<void>);
|
||||
|
||||
@override
|
||||
_i20.Future<_i13.Routine> fetchAndSetPlanSparse(int? planId) => (super.noSuchMethod(
|
||||
_i20.Future<_i13.Routine> fetchAndSetPlanSparse(int? planId) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetPlanSparse,
|
||||
[planId],
|
||||
@@ -1016,7 +1036,8 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i22.WorkoutPlansProv
|
||||
) as _i20.Future<_i13.Routine>);
|
||||
|
||||
@override
|
||||
_i20.Future<_i13.Routine> fetchAndSetWorkoutPlanFull(int? workoutId) => (super.noSuchMethod(
|
||||
_i20.Future<_i13.Routine> fetchAndSetWorkoutPlanFull(int? workoutId) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetWorkoutPlanFull,
|
||||
[workoutId],
|
||||
@@ -1031,7 +1052,8 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i22.WorkoutPlansProv
|
||||
) as _i20.Future<_i13.Routine>);
|
||||
|
||||
@override
|
||||
_i20.Future<_i13.Routine> addWorkout(_i13.Routine? workout) => (super.noSuchMethod(
|
||||
_i20.Future<_i13.Routine> addWorkout(_i13.Routine? workout) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addWorkout,
|
||||
[workout],
|
||||
@@ -1078,7 +1100,8 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i22.WorkoutPlansProv
|
||||
base,
|
||||
],
|
||||
),
|
||||
returnValue: _i20.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
returnValue:
|
||||
_i20.Future<Map<String, dynamic>>.value(<String, dynamic>{}),
|
||||
) as _i20.Future<Map<String, dynamic>>);
|
||||
|
||||
@override
|
||||
@@ -1157,22 +1180,22 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i22.WorkoutPlansProv
|
||||
) as _i20.Future<void>);
|
||||
|
||||
@override
|
||||
_i20.Future<_i15.Set> addSet(_i15.Set? workoutSet) => (super.noSuchMethod(
|
||||
_i20.Future<_i15.Slot> addSet(_i15.Slot? workoutSet) => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addSet,
|
||||
[workoutSet],
|
||||
),
|
||||
returnValue: _i20.Future<_i15.Set>.value(_FakeSet_15(
|
||||
returnValue: _i20.Future<_i15.Slot>.value(_FakeSlot_15(
|
||||
this,
|
||||
Invocation.method(
|
||||
#addSet,
|
||||
[workoutSet],
|
||||
),
|
||||
)),
|
||||
) as _i20.Future<_i15.Set>);
|
||||
) as _i20.Future<_i15.Slot>);
|
||||
|
||||
@override
|
||||
_i20.Future<void> editSet(_i15.Set? workoutSet) => (super.noSuchMethod(
|
||||
_i20.Future<void> editSet(_i15.Slot? workoutSet) => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#editSet,
|
||||
[workoutSet],
|
||||
@@ -1182,8 +1205,8 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i22.WorkoutPlansProv
|
||||
) as _i20.Future<void>);
|
||||
|
||||
@override
|
||||
_i20.Future<List<_i15.Set>> reorderSets(
|
||||
List<_i15.Set>? sets,
|
||||
_i20.Future<List<_i15.Slot>> reorderSets(
|
||||
List<_i15.Slot>? sets,
|
||||
int? startIndex,
|
||||
) =>
|
||||
(super.noSuchMethod(
|
||||
@@ -1194,11 +1217,12 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i22.WorkoutPlansProv
|
||||
startIndex,
|
||||
],
|
||||
),
|
||||
returnValue: _i20.Future<List<_i15.Set>>.value(<_i15.Set>[]),
|
||||
) as _i20.Future<List<_i15.Set>>);
|
||||
returnValue: _i20.Future<List<_i15.Slot>>.value(<_i15.Slot>[]),
|
||||
) as _i20.Future<List<_i15.Slot>>);
|
||||
|
||||
@override
|
||||
_i20.Future<void> fetchComputedSettings(_i15.Set? workoutSet) => (super.noSuchMethod(
|
||||
_i20.Future<void> fetchComputedSettings(_i15.Slot? workoutSet) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchComputedSettings,
|
||||
[workoutSet],
|
||||
@@ -1209,7 +1233,7 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i22.WorkoutPlansProv
|
||||
|
||||
@override
|
||||
_i20.Future<String> fetchSmartText(
|
||||
_i15.Set? workoutSet,
|
||||
_i15.Slot? workoutSet,
|
||||
_i23.Translation? exercise,
|
||||
) =>
|
||||
(super.noSuchMethod(
|
||||
@@ -1233,7 +1257,7 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i22.WorkoutPlansProv
|
||||
) as _i20.Future<String>);
|
||||
|
||||
@override
|
||||
_i20.Future<void> deleteSet(_i15.Set? workoutSet) => (super.noSuchMethod(
|
||||
_i20.Future<void> deleteSet(_i15.Slot? workoutSet) => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#deleteSet,
|
||||
[workoutSet],
|
||||
@@ -1243,19 +1267,20 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i22.WorkoutPlansProv
|
||||
) as _i20.Future<void>);
|
||||
|
||||
@override
|
||||
_i20.Future<_i16.Setting> addSetting(_i16.Setting? workoutSetting) => (super.noSuchMethod(
|
||||
_i20.Future<_i16.SlotEntry> addSetting(_i16.SlotEntry? workoutSetting) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addSetting,
|
||||
[workoutSetting],
|
||||
),
|
||||
returnValue: _i20.Future<_i16.Setting>.value(_FakeSetting_16(
|
||||
returnValue: _i20.Future<_i16.SlotEntry>.value(_FakeSlotEntry_16(
|
||||
this,
|
||||
Invocation.method(
|
||||
#addSetting,
|
||||
[workoutSetting],
|
||||
),
|
||||
)),
|
||||
) as _i20.Future<_i16.Setting>);
|
||||
) as _i20.Future<_i16.SlotEntry>);
|
||||
|
||||
@override
|
||||
_i20.Future<dynamic> fetchSessionData() => (super.noSuchMethod(
|
||||
@@ -1267,12 +1292,14 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i22.WorkoutPlansProv
|
||||
) as _i20.Future<dynamic>);
|
||||
|
||||
@override
|
||||
_i20.Future<_i17.WorkoutSession> addSession(_i17.WorkoutSession? session) => (super.noSuchMethod(
|
||||
_i20.Future<_i17.WorkoutSession> addSession(_i17.WorkoutSession? session) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addSession,
|
||||
[session],
|
||||
),
|
||||
returnValue: _i20.Future<_i17.WorkoutSession>.value(_FakeWorkoutSession_17(
|
||||
returnValue:
|
||||
_i20.Future<_i17.WorkoutSession>.value(_FakeWorkoutSession_17(
|
||||
this,
|
||||
Invocation.method(
|
||||
#addSession,
|
||||
|
||||
@@ -21,8 +21,8 @@ import 'package:wger/models/workouts/day.dart';
|
||||
import 'package:wger/models/workouts/log.dart';
|
||||
import 'package:wger/models/workouts/repetition_unit.dart';
|
||||
import 'package:wger/models/workouts/routine.dart';
|
||||
import 'package:wger/models/workouts/set.dart';
|
||||
import 'package:wger/models/workouts/setting.dart';
|
||||
import 'package:wger/models/workouts/slot.dart';
|
||||
import 'package:wger/models/workouts/slot_entry.dart';
|
||||
import 'package:wger/models/workouts/weight_unit.dart';
|
||||
|
||||
import './exercises.dart';
|
||||
@@ -69,22 +69,24 @@ Routine getWorkout({List<Exercise>? exercises}) {
|
||||
log3.weightUnit = weightUnit1;
|
||||
log3.repetitionUnit = repetitionUnit1;
|
||||
|
||||
final settingBenchPress = Setting(
|
||||
setId: 1,
|
||||
final settingBenchPress = SlotEntry(
|
||||
slotId: 1,
|
||||
type: 'normal',
|
||||
order: 1,
|
||||
exerciseId: 1,
|
||||
repetitionUnitId: 1,
|
||||
repetitionRounding: 0.25,
|
||||
reps: 6,
|
||||
weightUnitId: 1,
|
||||
weightRounding: 0.25,
|
||||
comment: 'ddd',
|
||||
rir: '3',
|
||||
);
|
||||
settingBenchPress.repetitionUnit = repetitionUnit1;
|
||||
settingBenchPress.weightUnit = weightUnit1;
|
||||
settingBenchPress.exercise = testBases[0];
|
||||
settingBenchPress.weight = 80;
|
||||
|
||||
final setBenchPress = Set.withData(
|
||||
final setBenchPress = Slot.withData(
|
||||
id: 1,
|
||||
day: 1,
|
||||
sets: 3,
|
||||
@@ -92,63 +94,65 @@ Routine getWorkout({List<Exercise>? exercises}) {
|
||||
comment: 'Make sure to warm up',
|
||||
);
|
||||
setBenchPress.addExerciseBase(testBases[0]);
|
||||
setBenchPress.settings.add(settingBenchPress);
|
||||
setBenchPress.entries.add(settingBenchPress);
|
||||
setBenchPress.settingsComputed = [settingBenchPress, settingBenchPress];
|
||||
|
||||
final settingSquat = Setting(
|
||||
setId: 2,
|
||||
final settingSquat = SlotEntry(
|
||||
slotId: 2,
|
||||
type: 'normal',
|
||||
order: 1,
|
||||
exerciseId: 8,
|
||||
repetitionUnitId: 1,
|
||||
repetitionRounding: 0.25,
|
||||
reps: 8,
|
||||
weightUnitId: 1,
|
||||
weightRounding: 0.25,
|
||||
comment: 'ddd',
|
||||
rir: '2',
|
||||
);
|
||||
settingSquat.repetitionUnit = repetitionUnit1;
|
||||
settingSquat.weightUnit = weightUnit1;
|
||||
settingSquat.exercise = testBases[4];
|
||||
settingSquat.weight = 120;
|
||||
|
||||
final setSquat = Set.withData(id: 2, day: 1, sets: 3, order: 1);
|
||||
final setSquat = Slot.withData(id: 2, day: 1, sets: 3, order: 1);
|
||||
setSquat.addExerciseBase(testBases[4]);
|
||||
setSquat.settings.add(settingSquat);
|
||||
setSquat.entries.add(settingSquat);
|
||||
setSquat.settingsComputed = [settingSquat, settingSquat];
|
||||
|
||||
final settingSideRaises = Setting(
|
||||
setId: 2,
|
||||
final settingSideRaises = SlotEntry(
|
||||
slotId: 2,
|
||||
type: 'normal',
|
||||
order: 1,
|
||||
exerciseId: 8,
|
||||
repetitionUnitId: 1,
|
||||
repetitionRounding: 0.25,
|
||||
reps: 12,
|
||||
weightUnitId: 1,
|
||||
weightRounding: 0.25,
|
||||
comment: 'ddd',
|
||||
rir: '',
|
||||
);
|
||||
settingSideRaises.repetitionUnit = repetitionUnit1;
|
||||
settingSideRaises.weightUnit = weightUnit1;
|
||||
settingSideRaises.exercise = testBases[5];
|
||||
settingSideRaises.weight = 6;
|
||||
|
||||
final setSideRaises = Set.withData(id: 3, day: 1, sets: 3, order: 1);
|
||||
final setSideRaises = Slot.withData(id: 3, day: 1, sets: 3, order: 1);
|
||||
setSideRaises.addExerciseBase(testBases[5]);
|
||||
setSideRaises.settings.add(settingSideRaises);
|
||||
setSideRaises.entries.add(settingSideRaises);
|
||||
setSideRaises.settingsComputed = [settingSideRaises, settingSideRaises];
|
||||
|
||||
final dayChestShoulders = Day()
|
||||
..id = 1
|
||||
..workoutId = 1
|
||||
..description = 'chest, shoulders'
|
||||
..daysOfWeek = [1, 2];
|
||||
dayChestShoulders.sets.add(setBenchPress);
|
||||
dayChestShoulders.sets.add(setSideRaises);
|
||||
..routineId = 1
|
||||
..description = 'chest, shoulders';
|
||||
dayChestShoulders.slots.add(setBenchPress);
|
||||
dayChestShoulders.slots.add(setSideRaises);
|
||||
|
||||
final dayLegs = Day()
|
||||
..id = 2
|
||||
..workoutId = 1
|
||||
..description = 'legs'
|
||||
..daysOfWeek = [4];
|
||||
dayLegs.sets.add(setSquat);
|
||||
..routineId = 1
|
||||
..description = 'legs';
|
||||
dayLegs.slots.add(setSquat);
|
||||
|
||||
final routine = Routine(
|
||||
id: 1,
|
||||
|
||||
Reference in New Issue
Block a user