mirror of
https://github.com/wger-project/flutter.git
synced 2026-02-18 00:17:48 +01:00
Add startTime to GymState and update GymMode to use it
This keeps the start time, even if the user leaves the gym mode and returns later, which is what we want anyway.
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:wger/models/exercises/exercise.dart';
|
||||
@@ -14,6 +15,7 @@ class GymState {
|
||||
final bool showExercisePages;
|
||||
final int currentPage;
|
||||
final int? dayId;
|
||||
late TimeOfDay startTime;
|
||||
late DateTime validUntil;
|
||||
|
||||
GymState(
|
||||
@@ -21,8 +23,10 @@ class GymState {
|
||||
this.showExercisePages = true,
|
||||
this.currentPage = 0,
|
||||
this.dayId,
|
||||
DateTime? validUntil}) {
|
||||
DateTime? validUntil,
|
||||
TimeOfDay? startTime}) {
|
||||
this.validUntil = validUntil ?? DateTime.now().add(DEFAULT_DURATION);
|
||||
this.startTime = startTime ?? TimeOfDay.now();
|
||||
}
|
||||
|
||||
GymState copyWith({
|
||||
@@ -31,6 +35,7 @@ class GymState {
|
||||
int? currentPage,
|
||||
int? dayId,
|
||||
DateTime? validUntil,
|
||||
TimeOfDay? startTime,
|
||||
}) {
|
||||
return GymState(
|
||||
exercisePages: exercisePages ?? this.exercisePages,
|
||||
@@ -38,6 +43,7 @@ class GymState {
|
||||
currentPage: currentPage ?? this.currentPage,
|
||||
dayId: dayId ?? this.dayId,
|
||||
validUntil: validUntil ?? this.validUntil.add(DEFAULT_DURATION),
|
||||
startTime: startTime ?? this.startTime,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -49,6 +55,7 @@ class GymState {
|
||||
'exercisePages: ${exercisePages.length} exercises, '
|
||||
'dayId: $dayId, '
|
||||
'validUntil: $validUntil '
|
||||
'startTime: $startTime, '
|
||||
')';
|
||||
}
|
||||
}
|
||||
@@ -86,6 +93,7 @@ class GymStateNotifier extends StateNotifier<GymState> {
|
||||
currentPage: 0,
|
||||
dayId: null,
|
||||
validUntil: DateTime.now().add(DEFAULT_DURATION),
|
||||
startTime: TimeOfDay.now(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,12 +36,9 @@ class GymMode extends ConsumerStatefulWidget {
|
||||
final DayData _dayDataGym;
|
||||
final DayData _dayDataDisplay;
|
||||
final int _iteration;
|
||||
late final TimeOfDay _start;
|
||||
final _logger = Logger('GymMode');
|
||||
|
||||
GymMode(this._dayDataGym, this._dayDataDisplay, this._iteration) {
|
||||
_start = TimeOfDay.now();
|
||||
}
|
||||
GymMode(this._dayDataGym, this._dayDataDisplay, this._iteration);
|
||||
|
||||
@override
|
||||
ConsumerState<GymMode> createState() => _GymModeState();
|
||||
@@ -118,8 +115,8 @@ class _GymModeState extends ConsumerState<GymMode> {
|
||||
|
||||
List<Widget> getContent() {
|
||||
final state = ref.watch(gymStateProvider);
|
||||
final exerciseProvider = provider.Provider.of<ExercisesProvider>(context, listen: false);
|
||||
final workoutProvider = provider.Provider.of<RoutinesProvider>(context, listen: false);
|
||||
final exerciseProvider = context.read<ExercisesProvider>();
|
||||
final routinesProvider = context.read<RoutinesProvider>();
|
||||
var currentElement = 1;
|
||||
final List<Widget> out = [];
|
||||
|
||||
@@ -144,7 +141,7 @@ class _GymModeState extends ConsumerState<GymMode> {
|
||||
config,
|
||||
slotData,
|
||||
exercise,
|
||||
workoutProvider.findById(widget._dayDataGym.day!.routineId),
|
||||
routinesProvider.findById(widget._dayDataGym.day!.routineId),
|
||||
ratioCompleted,
|
||||
state.exercisePages,
|
||||
widget._iteration,
|
||||
@@ -192,10 +189,9 @@ class _GymModeState extends ConsumerState<GymMode> {
|
||||
StartPage(_controller, widget._dayDataDisplay, _exercisePages),
|
||||
...getContent(),
|
||||
SessionPage(
|
||||
provider.Provider.of<RoutinesProvider>(context, listen: false)
|
||||
.findById(widget._dayDataGym.day!.routineId),
|
||||
context.read<RoutinesProvider>().findById(widget._dayDataGym.day!.routineId),
|
||||
_controller,
|
||||
widget._start,
|
||||
ref.read(gymStateProvider).startTime,
|
||||
_exercisePages,
|
||||
),
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user