Optimize fetching exercises from the server

This might be the reason behind wger-project/wger#2028 since depending on the routine
the server could get hammered with requests and one (or other unrelated ones) fail.
Even if this is not the case, being a bit more reserved here is still a good idea.
This commit is contained in:
Roland Geider
2025-08-27 18:52:54 +02:00
parent ec57388ed9
commit a853e45107
11 changed files with 153 additions and 70 deletions

View File

@@ -23,6 +23,7 @@ import 'package:logging/logging.dart';
import 'package:wger/exceptions/http_exception.dart';
import 'package:wger/helpers/consts.dart';
import 'package:wger/helpers/shared_preferences.dart';
import 'package:wger/models/exercises/exercise.dart';
import 'package:wger/models/workouts/base_config.dart';
import 'package:wger/models/workouts/day.dart';
import 'package:wger/models/workouts/day_data.dart';
@@ -64,7 +65,7 @@ class RoutinesProvider with ChangeNotifier {
static const _routineConfigMaxRestTime = 'max-rest-config';
Routine? activeRoutine;
late ExercisesProvider _exerciseProvider;
final ExercisesProvider _exerciseProvider;
final WgerBaseProvider baseProvider;
List<Routine> _routines = [];
List<WeightUnit> _weightUnits = [];
@@ -72,12 +73,11 @@ class RoutinesProvider with ChangeNotifier {
RoutinesProvider(
this.baseProvider,
ExercisesProvider exercises,
this._exerciseProvider,
List<Routine> entries, {
List<WeightUnit>? weightUnits,
List<RepetitionUnit>? repetitionUnits,
}) {
_exerciseProvider = exercises;
_routines = entries;
_weightUnits = weightUnits ?? [];
_repetitionUnits = repetitionUnits ?? [];
@@ -185,11 +185,18 @@ class RoutinesProvider with ChangeNotifier {
notifyListeners();
}
Future<void> setExercisesAndUnits(List<DayData> entries) async {
Future<void> setExercisesAndUnits(List<DayData> entries, {Map<int, Exercise>? exercises}) async {
exercises ??= {};
for (final entry in entries) {
for (final slot in entry.slots) {
for (final setConfig in slot.setConfigs) {
setConfig.exercise = (await _exerciseProvider.fetchAndSetExercise(setConfig.exerciseId))!;
final exerciseId = setConfig.exerciseId;
if (!exercises.containsKey(exerciseId)) {
_logger.fine('Fetching exercise $exerciseId for routine set config');
exercises[exerciseId] = (await _exerciseProvider.fetchAndSetExercise(exerciseId))!;
}
setConfig.exercise = exercises[exerciseId]!;
setConfig.repetitionsUnit = _repetitionUnits.firstWhere(
(e) => e.id == setConfig.repetitionsUnitId,
@@ -262,11 +269,15 @@ class RoutinesProvider with ChangeNotifier {
*
* note that setExercisesAndUnits modifies the list in-place
*/
/// Temporary cache to avoid fetching the same exercise multiple times
final Map<int, Exercise> exercises = {};
final dayDataEntriesDisplay = dayData.map((entry) => DayData.fromJson(entry)).toList();
await setExercisesAndUnits(dayDataEntriesDisplay);
await setExercisesAndUnits(dayDataEntriesDisplay, exercises: exercises);
final dayDataEntriesGym = dayDataGym.map((entry) => DayData.fromJson(entry)).toList();
await setExercisesAndUnits(dayDataEntriesGym);
await setExercisesAndUnits(dayDataEntriesGym, exercises: exercises);
final sessionDataEntries =
sessionData.map((entry) => WorkoutSessionApi.fromJson(entry)).toList();
@@ -274,13 +285,18 @@ class RoutinesProvider with ChangeNotifier {
for (final day in routine.days) {
for (final slot in day.slots) {
for (final slotEntry in slot.entries) {
slotEntry.exerciseObj =
(await _exerciseProvider.fetchAndSetExercise(slotEntry.exerciseId))!;
final exerciseId = slotEntry.exerciseId;
if (!exercises.containsKey(exerciseId)) {
exercises[exerciseId] = (await _exerciseProvider.fetchAndSetExercise(exerciseId))!;
}
slotEntry.exerciseObj = exercises[exerciseId]!;
if (slotEntry.repetitionUnitId != null) {
slotEntry.repetitionUnitObj = _repetitionUnits.firstWhere(
(e) => e.id == slotEntry.repetitionUnitId,
);
}
if (slotEntry.weightUnitId != null) {
slotEntry.weightUnitObj = _weightUnits.firstWhere(
(e) => e.id == slotEntry.weightUnitId,
@@ -300,10 +316,17 @@ class RoutinesProvider with ChangeNotifier {
if (log.weightUnitId != null) {
log.weightUnit = _weightUnits.firstWhere((e) => e.id == log.weightUnitId);
}
if (log.repetitionsUnitId != null) {
log.repetitionUnit = _repetitionUnits.firstWhere((e) => e.id == log.repetitionsUnitId);
}
log.exerciseBase = (await _exerciseProvider.fetchAndSetExercise(log.exerciseId))!;
if (!exercises.containsKey(log.exerciseId)) {
exercises[log.exerciseId] =
(await _exerciseProvider.fetchAndSetExercise(log.exerciseId))!;
}
log.exerciseBase = exercises[log.exerciseId]!;
}
}

View File

@@ -4,10 +4,11 @@
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'dart:async' as _i13;
import 'dart:ui' as _i16;
import 'dart:ui' as _i17;
import 'package:mockito/mockito.dart' as _i1;
import 'package:mockito/src/dummies.dart' as _i15;
import 'package:mockito/src/dummies.dart' as _i16;
import 'package:wger/models/exercises/exercise.dart' as _i15;
import 'package:wger/models/workouts/base_config.dart' as _i9;
import 'package:wger/models/workouts/day.dart' as _i6;
import 'package:wger/models/workouts/day_data.dart' as _i14;
@@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
_i13.Future<void> setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod(
_i13.Future<void> setExercisesAndUnits(
List<_i14.DayData>? entries, {
Map<int, _i15.Exercise>? exercises,
}) =>
(super.noSuchMethod(
Invocation.method(
#setExercisesAndUnits,
[entries],
{#exercises: exercises},
),
returnValue: _i13.Future<void>.value(),
returnValueForMissingStub: _i13.Future<void>.value(),
@@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
#getConfigUrl,
[type],
),
returnValue: _i15.dummyValue<String>(
returnValue: _i16.dummyValue<String>(
this,
Invocation.method(
#getConfigUrl,
@@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
void addListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void addListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#addListener,
[listener],
@@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
);
@override
void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#removeListener,
[listener],

View File

@@ -4,10 +4,11 @@
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'dart:async' as _i13;
import 'dart:ui' as _i16;
import 'dart:ui' as _i17;
import 'package:mockito/mockito.dart' as _i1;
import 'package:mockito/src/dummies.dart' as _i15;
import 'package:mockito/src/dummies.dart' as _i16;
import 'package:wger/models/exercises/exercise.dart' as _i15;
import 'package:wger/models/workouts/base_config.dart' as _i9;
import 'package:wger/models/workouts/day.dart' as _i6;
import 'package:wger/models/workouts/day_data.dart' as _i14;
@@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
_i13.Future<void> setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod(
_i13.Future<void> setExercisesAndUnits(
List<_i14.DayData>? entries, {
Map<int, _i15.Exercise>? exercises,
}) =>
(super.noSuchMethod(
Invocation.method(
#setExercisesAndUnits,
[entries],
{#exercises: exercises},
),
returnValue: _i13.Future<void>.value(),
returnValueForMissingStub: _i13.Future<void>.value(),
@@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
#getConfigUrl,
[type],
),
returnValue: _i15.dummyValue<String>(
returnValue: _i16.dummyValue<String>(
this,
Invocation.method(
#getConfigUrl,
@@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
void addListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void addListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#addListener,
[listener],
@@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
);
@override
void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#removeListener,
[listener],

View File

@@ -4,10 +4,11 @@
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'dart:async' as _i13;
import 'dart:ui' as _i16;
import 'dart:ui' as _i17;
import 'package:mockito/mockito.dart' as _i1;
import 'package:mockito/src/dummies.dart' as _i15;
import 'package:mockito/src/dummies.dart' as _i16;
import 'package:wger/models/exercises/exercise.dart' as _i15;
import 'package:wger/models/workouts/base_config.dart' as _i9;
import 'package:wger/models/workouts/day.dart' as _i6;
import 'package:wger/models/workouts/day_data.dart' as _i14;
@@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
_i13.Future<void> setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod(
_i13.Future<void> setExercisesAndUnits(
List<_i14.DayData>? entries, {
Map<int, _i15.Exercise>? exercises,
}) =>
(super.noSuchMethod(
Invocation.method(
#setExercisesAndUnits,
[entries],
{#exercises: exercises},
),
returnValue: _i13.Future<void>.value(),
returnValueForMissingStub: _i13.Future<void>.value(),
@@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
#getConfigUrl,
[type],
),
returnValue: _i15.dummyValue<String>(
returnValue: _i16.dummyValue<String>(
this,
Invocation.method(
#getConfigUrl,
@@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
void addListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void addListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#addListener,
[listener],
@@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
);
@override
void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#removeListener,
[listener],

View File

@@ -4,10 +4,11 @@
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'dart:async' as _i13;
import 'dart:ui' as _i16;
import 'dart:ui' as _i17;
import 'package:mockito/mockito.dart' as _i1;
import 'package:mockito/src/dummies.dart' as _i15;
import 'package:mockito/src/dummies.dart' as _i16;
import 'package:wger/models/exercises/exercise.dart' as _i15;
import 'package:wger/models/workouts/base_config.dart' as _i9;
import 'package:wger/models/workouts/day.dart' as _i6;
import 'package:wger/models/workouts/day_data.dart' as _i14;
@@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
_i13.Future<void> setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod(
_i13.Future<void> setExercisesAndUnits(
List<_i14.DayData>? entries, {
Map<int, _i15.Exercise>? exercises,
}) =>
(super.noSuchMethod(
Invocation.method(
#setExercisesAndUnits,
[entries],
{#exercises: exercises},
),
returnValue: _i13.Future<void>.value(),
returnValueForMissingStub: _i13.Future<void>.value(),
@@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
#getConfigUrl,
[type],
),
returnValue: _i15.dummyValue<String>(
returnValue: _i16.dummyValue<String>(
this,
Invocation.method(
#getConfigUrl,
@@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
void addListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void addListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#addListener,
[listener],
@@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
);
@override
void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#removeListener,
[listener],

View File

@@ -4,10 +4,11 @@
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'dart:async' as _i13;
import 'dart:ui' as _i16;
import 'dart:ui' as _i17;
import 'package:mockito/mockito.dart' as _i1;
import 'package:mockito/src/dummies.dart' as _i15;
import 'package:mockito/src/dummies.dart' as _i16;
import 'package:wger/models/exercises/exercise.dart' as _i15;
import 'package:wger/models/workouts/base_config.dart' as _i9;
import 'package:wger/models/workouts/day.dart' as _i6;
import 'package:wger/models/workouts/day_data.dart' as _i14;
@@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
_i13.Future<void> setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod(
_i13.Future<void> setExercisesAndUnits(
List<_i14.DayData>? entries, {
Map<int, _i15.Exercise>? exercises,
}) =>
(super.noSuchMethod(
Invocation.method(
#setExercisesAndUnits,
[entries],
{#exercises: exercises},
),
returnValue: _i13.Future<void>.value(),
returnValueForMissingStub: _i13.Future<void>.value(),
@@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
#getConfigUrl,
[type],
),
returnValue: _i15.dummyValue<String>(
returnValue: _i16.dummyValue<String>(
this,
Invocation.method(
#getConfigUrl,
@@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
void addListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void addListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#addListener,
[listener],
@@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
);
@override
void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#removeListener,
[listener],

View File

@@ -4,10 +4,11 @@
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'dart:async' as _i13;
import 'dart:ui' as _i16;
import 'dart:ui' as _i17;
import 'package:mockito/mockito.dart' as _i1;
import 'package:mockito/src/dummies.dart' as _i15;
import 'package:mockito/src/dummies.dart' as _i16;
import 'package:wger/models/exercises/exercise.dart' as _i15;
import 'package:wger/models/workouts/base_config.dart' as _i9;
import 'package:wger/models/workouts/day.dart' as _i6;
import 'package:wger/models/workouts/day_data.dart' as _i14;
@@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
_i13.Future<void> setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod(
_i13.Future<void> setExercisesAndUnits(
List<_i14.DayData>? entries, {
Map<int, _i15.Exercise>? exercises,
}) =>
(super.noSuchMethod(
Invocation.method(
#setExercisesAndUnits,
[entries],
{#exercises: exercises},
),
returnValue: _i13.Future<void>.value(),
returnValueForMissingStub: _i13.Future<void>.value(),
@@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
#getConfigUrl,
[type],
),
returnValue: _i15.dummyValue<String>(
returnValue: _i16.dummyValue<String>(
this,
Invocation.method(
#getConfigUrl,
@@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
void addListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void addListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#addListener,
[listener],
@@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
);
@override
void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#removeListener,
[listener],

View File

@@ -4,10 +4,11 @@
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'dart:async' as _i13;
import 'dart:ui' as _i16;
import 'dart:ui' as _i17;
import 'package:mockito/mockito.dart' as _i1;
import 'package:mockito/src/dummies.dart' as _i15;
import 'package:mockito/src/dummies.dart' as _i16;
import 'package:wger/models/exercises/exercise.dart' as _i15;
import 'package:wger/models/workouts/base_config.dart' as _i9;
import 'package:wger/models/workouts/day.dart' as _i6;
import 'package:wger/models/workouts/day_data.dart' as _i14;
@@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
_i13.Future<void> setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod(
_i13.Future<void> setExercisesAndUnits(
List<_i14.DayData>? entries, {
Map<int, _i15.Exercise>? exercises,
}) =>
(super.noSuchMethod(
Invocation.method(
#setExercisesAndUnits,
[entries],
{#exercises: exercises},
),
returnValue: _i13.Future<void>.value(),
returnValueForMissingStub: _i13.Future<void>.value(),
@@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
#getConfigUrl,
[type],
),
returnValue: _i15.dummyValue<String>(
returnValue: _i16.dummyValue<String>(
this,
Invocation.method(
#getConfigUrl,
@@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
void addListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void addListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#addListener,
[listener],
@@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
);
@override
void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#removeListener,
[listener],

View File

@@ -4,10 +4,11 @@
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'dart:async' as _i13;
import 'dart:ui' as _i16;
import 'dart:ui' as _i17;
import 'package:mockito/mockito.dart' as _i1;
import 'package:mockito/src/dummies.dart' as _i15;
import 'package:mockito/src/dummies.dart' as _i16;
import 'package:wger/models/exercises/exercise.dart' as _i15;
import 'package:wger/models/workouts/base_config.dart' as _i9;
import 'package:wger/models/workouts/day.dart' as _i6;
import 'package:wger/models/workouts/day_data.dart' as _i14;
@@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
_i13.Future<void> setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod(
_i13.Future<void> setExercisesAndUnits(
List<_i14.DayData>? entries, {
Map<int, _i15.Exercise>? exercises,
}) =>
(super.noSuchMethod(
Invocation.method(
#setExercisesAndUnits,
[entries],
{#exercises: exercises},
),
returnValue: _i13.Future<void>.value(),
returnValueForMissingStub: _i13.Future<void>.value(),
@@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
#getConfigUrl,
[type],
),
returnValue: _i15.dummyValue<String>(
returnValue: _i16.dummyValue<String>(
this,
Invocation.method(
#getConfigUrl,
@@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
void addListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void addListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#addListener,
[listener],
@@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
);
@override
void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#removeListener,
[listener],

View File

@@ -4,10 +4,11 @@
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'dart:async' as _i13;
import 'dart:ui' as _i16;
import 'dart:ui' as _i17;
import 'package:mockito/mockito.dart' as _i1;
import 'package:mockito/src/dummies.dart' as _i15;
import 'package:mockito/src/dummies.dart' as _i16;
import 'package:wger/models/exercises/exercise.dart' as _i15;
import 'package:wger/models/workouts/base_config.dart' as _i9;
import 'package:wger/models/workouts/day.dart' as _i6;
import 'package:wger/models/workouts/day_data.dart' as _i14;
@@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
_i13.Future<void> setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod(
_i13.Future<void> setExercisesAndUnits(
List<_i14.DayData>? entries, {
Map<int, _i15.Exercise>? exercises,
}) =>
(super.noSuchMethod(
Invocation.method(
#setExercisesAndUnits,
[entries],
{#exercises: exercises},
),
returnValue: _i13.Future<void>.value(),
returnValueForMissingStub: _i13.Future<void>.value(),
@@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
#getConfigUrl,
[type],
),
returnValue: _i15.dummyValue<String>(
returnValue: _i16.dummyValue<String>(
this,
Invocation.method(
#getConfigUrl,
@@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
void addListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void addListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#addListener,
[listener],
@@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
);
@override
void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#removeListener,
[listener],

View File

@@ -4,10 +4,11 @@
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'dart:async' as _i13;
import 'dart:ui' as _i16;
import 'dart:ui' as _i17;
import 'package:mockito/mockito.dart' as _i1;
import 'package:mockito/src/dummies.dart' as _i15;
import 'package:mockito/src/dummies.dart' as _i16;
import 'package:wger/models/exercises/exercise.dart' as _i15;
import 'package:wger/models/workouts/base_config.dart' as _i9;
import 'package:wger/models/workouts/day.dart' as _i6;
import 'package:wger/models/workouts/day_data.dart' as _i14;
@@ -323,10 +324,15 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
_i13.Future<void> setExercisesAndUnits(List<_i14.DayData>? entries) => (super.noSuchMethod(
_i13.Future<void> setExercisesAndUnits(
List<_i14.DayData>? entries, {
Map<int, _i15.Exercise>? exercises,
}) =>
(super.noSuchMethod(
Invocation.method(
#setExercisesAndUnits,
[entries],
{#exercises: exercises},
),
returnValue: _i13.Future<void>.value(),
returnValueForMissingStub: _i13.Future<void>.value(),
@@ -613,7 +619,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
#getConfigUrl,
[type],
),
returnValue: _i15.dummyValue<String>(
returnValue: _i16.dummyValue<String>(
this,
Invocation.method(
#getConfigUrl,
@@ -790,7 +796,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
) as _i13.Future<void>);
@override
void addListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void addListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#addListener,
[listener],
@@ -799,7 +805,7 @@ class MockRoutinesProvider extends _i1.Mock implements _i12.RoutinesProvider {
);
@override
void removeListener(_i16.VoidCallback? listener) => super.noSuchMethod(
void removeListener(_i17.VoidCallback? listener) => super.noSuchMethod(
Invocation.method(
#removeListener,
[listener],