Repetitions are not integers anymore

This commit is contained in:
Roland Geider
2025-01-18 13:55:42 +01:00
parent 392dc695ef
commit f5ab51fd5b
6 changed files with 40 additions and 14 deletions

View File

@@ -24,7 +24,7 @@ import 'package:wger/models/workouts/weight_unit.dart';
/// Returns the text representation for a single setting, used in the gym mode
String repText(
int? reps,
num? reps,
RepetitionUnit repetitionUnitObj,
num? weight,
WeightUnit weightUnitObj,

View File

@@ -45,11 +45,11 @@ class Log {
@JsonKey(required: false, name: 'rir_target')
String? rirTarget;
@JsonKey(required: true, name: 'repetitions')
late int repetitions;
@JsonKey(required: true, fromJson: stringToNum, name: 'repetitions')
late num? repetitions;
@JsonKey(required: true, name: 'repetitions_target')
late int? repetitionsTarget;
@JsonKey(required: true, fromJson: stringToNum, name: 'repetitions_target')
late num? repetitionsTarget;
@JsonKey(required: true, name: 'repetitions_unit')
late int repetitionsUnitId;

View File

@@ -26,8 +26,8 @@ Log _$LogFromJson(Map<String, dynamic> json) {
id: (json['id'] as num?)?.toInt(),
exerciseId: (json['exercise'] as num).toInt(),
routineId: (json['routine'] as num).toInt(),
repetitions: (json['repetitions'] as num).toInt(),
repetitionsTarget: (json['repetitions_target'] as num?)?.toInt(),
repetitions: stringToNum(json['repetitions'] as String?),
repetitionsTarget: stringToNum(json['repetitions_target'] as String?),
repetitionsUnitId: (json['repetitions_unit'] as num).toInt(),
rir: json['rir'] as String?,
rirTarget: json['rir_target'] as String?,

View File

@@ -4,7 +4,8 @@ import 'package:wger/models/exercises/exercise.dart';
const GYM_PAGE_KEY = 'gym_current_page';
final StateNotifierProvider<GymStateNotifier, GymState> gymStateProvider = StateNotifierProvider<GymStateNotifier, GymState>((ref) {
final StateNotifierProvider<GymStateNotifier, GymState> gymStateProvider =
StateNotifierProvider<GymStateNotifier, GymState>((ref) {
return GymStateNotifier();
});
@@ -41,7 +42,7 @@ class GymStateNotifier extends StateNotifier<GymState> {
Future<void> _loadSavedState() async {
final SharedPreferences prefs = await _prefs;
final int savedPage = prefs.getInt(GYM_PAGE_KEY) ?? 0;
final int savedPage = prefs.getInt(GYM_PAGE_KEY) ?? 0;
state = state.copyWith(currentPage: savedPage);
}
@@ -54,7 +55,8 @@ class GymStateNotifier extends StateNotifier<GymState> {
void toggleExercisePages() {
state = state.copyWith(showExercisePages: !state.showExercisePages);
}
void setExercisePages(Map<Exercise, int> exercisePages) {
state = state.copyWith(exercisePages: exercisePages);
}
}
}

View File

@@ -22,7 +22,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:flutter_html/flutter_html.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart'as provider;
import 'package:provider/provider.dart' as provider;
import 'package:wger/exceptions/http_exception.dart';
import 'package:wger/helpers/consts.dart';
import 'package:wger/helpers/gym_mode.dart';
@@ -61,7 +61,6 @@ class GymMode extends ConsumerStatefulWidget {
ConsumerState<GymMode> createState() => _GymModeState();
}
class _GymModeState extends ConsumerState<GymMode> {
var _totalElements = 1;
@@ -73,7 +72,6 @@ class _GymModeState extends ConsumerState<GymMode> {
void dispose() {
_controller.dispose();
super.dispose();
}
@override
@@ -83,6 +81,7 @@ class _GymModeState extends ConsumerState<GymMode> {
_controller = PageController(initialPage: initialPage);
Future.microtask(() => _calculatePages());
}
void _calculatePages() {
for (final slot in widget._dayDataGym.slots) {
_totalElements += slot.setConfigs.length;
@@ -148,6 +147,7 @@ class _GymModeState extends ConsumerState<GymMode> {
return out;
}
@override
Widget build(BuildContext context) {
return PageView(

View File

@@ -501,6 +501,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.0.23"
flutter_riverpod:
dependency: "direct main"
description:
name: flutter_riverpod
sha256: "9532ee6db4a943a1ed8383072a2e3eeda041db5657cdf6d2acecf3c21ecbe7e1"
url: "https://pub.dev"
source: hosted
version: "2.6.1"
flutter_staggered_grid_view:
dependency: "direct main"
description:
@@ -1121,6 +1129,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.4.15"
riverpod:
dependency: transitive
description:
name: riverpod
sha256: "59062512288d3056b2321804332a13ffdd1bf16df70dcc8e506e411280a72959"
url: "https://pub.dev"
source: hosted
version: "2.6.1"
shared_preferences:
dependency: "direct main"
description:
@@ -1262,6 +1278,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.12.0"
state_notifier:
dependency: transitive
description:
name: state_notifier
sha256: b8677376aa54f2d7c58280d5a007f9e8774f1968d1fb1c096adcb4792fba29bb
url: "https://pub.dev"
source: hosted
version: "1.0.0"
stream_channel:
dependency: transitive
description:
@@ -1568,4 +1592,4 @@ packages:
version: "3.1.2"
sdks:
dart: ">=3.6.0 <4.0.0"
flutter: ">=3.24.0"
flutter: ">=3.27.0"