From 19a504dcfb87ae566de2d9e83adb29e9b2ad9718 Mon Sep 17 00:00:00 2001 From: Roland Geider Date: Sun, 20 Feb 2022 14:01:58 +0100 Subject: [PATCH] Actually create exercise bases and translations --- lib/helpers/consts.dart | 3 + lib/main.dart | 13 ++-- lib/models/exercises/base.dart | 60 ++++++++++------- lib/models/exercises/base.g.dart | 16 +++-- lib/models/exercises/exercise.dart | 72 +++++++++++--------- lib/models/exercises/exercise.g.dart | 20 +++--- lib/models/workouts/log.dart | 2 +- lib/models/workouts/set.dart | 4 +- lib/models/workouts/setting.dart | 2 +- lib/providers/add_exercise_provider.dart | 77 ++++++++++++++++++++++ lib/providers/exercises.dart | 8 +-- lib/screens/add_exercise_screen.dart | 2 +- lib/widgets/exercises/exercises.dart | 14 ++-- lib/widgets/exercises/list_tile.dart | 2 +- test/exercises/exercise_provider_test.dart | 2 +- test_data/exercises.dart | 2 +- 16 files changed, 208 insertions(+), 91 deletions(-) diff --git a/lib/helpers/consts.dart b/lib/helpers/consts.dart index e4b5ab2e..73be8026 100644 --- a/lib/helpers/consts.dart +++ b/lib/helpers/consts.dart @@ -76,3 +76,6 @@ const ENERGY_CARBOHYDRATES = 4; /// kcal per gram of fat (approx) const ENERGY_FAT = 9; + +/// Language ID for English (fallback) +const LANGUAGE_SHORT_ENGLISH = 'en'; diff --git a/lib/main.dart b/lib/main.dart index c0a2aaab..cfd9eedb 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -89,7 +89,8 @@ class MyApp extends StatelessWidget { ), ChangeNotifierProxyProvider( create: (context) => MeasurementProvider( - WgerBaseProvider(Provider.of(context, listen: false))), + WgerBaseProvider(Provider.of(context, listen: false)), + ), update: (context, base, previous) => previous ?? MeasurementProvider(WgerBaseProvider(base)), ), @@ -103,8 +104,12 @@ class MyApp extends StatelessWidget { GalleryProvider(Provider.of(context, listen: false), []), update: (context, auth, previous) => previous ?? GalleryProvider(auth, []), ), - ChangeNotifierProvider( - create: (_) => AddExerciseProvider(), + ChangeNotifierProxyProvider( + create: (context) => AddExerciseProvider( + WgerBaseProvider(Provider.of(context, listen: false)), + ), + update: (context, base, previous) => + previous ?? AddExerciseProvider(WgerBaseProvider(base)), ) ], child: Consumer( @@ -141,7 +146,7 @@ class MyApp extends StatelessWidget { WorkoutPlanScreen.routeName: (ctx) => WorkoutPlanScreen(), WorkoutPlansScreen.routeName: (ctx) => WorkoutPlansScreen(), ExercisesScreen.routeName: (ctx) => const ExercisesScreen(), - ExerciseDetailScreen.routeName: (ctx) => ExerciseDetailScreen(), + ExerciseDetailScreen.routeName: (ctx) => const ExerciseDetailScreen(), AddExerciseScreen.routeName: (ctx) => const AddExerciseScreen(), }, localizationsDelegates: AppLocalizations.localizationsDelegates, diff --git a/lib/models/exercises/base.dart b/lib/models/exercises/base.dart index 914e590e..0eeed300 100644 --- a/lib/models/exercises/base.dart +++ b/lib/models/exercises/base.dart @@ -18,6 +18,7 @@ import 'package:equatable/equatable.dart'; import 'package:json_annotation/json_annotation.dart'; +import 'package:wger/helpers/consts.dart'; import 'package:wger/models/exercises/category.dart'; import 'package:wger/models/exercises/equipment.dart'; import 'package:wger/models/exercises/exercise.dart'; @@ -30,19 +31,19 @@ part 'base.g.dart'; @JsonSerializable(explicitToJson: true) class ExerciseBase extends Equatable { @JsonKey(required: true) - final int id; + final int? id; @JsonKey(required: true) - final String uuid; + final String? uuid; @JsonKey(required: true, name: 'variations') final int? variationId; @JsonKey(required: true, name: 'creation_date') - final DateTime creationDate; + final DateTime? creationDate; @JsonKey(required: true, name: 'update_date') - final DateTime updateDate; + final DateTime? updateDate; @JsonKey(required: true, name: 'category') late int categoryId; @@ -77,39 +78,54 @@ class ExerciseBase extends Equatable { @JsonKey(ignore: true) List