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