diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 1e198ad9..4e50bad4 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -29,10 +29,6 @@
android:enableOnBackInvokedCallback="true"
android:networkSecurityConfig="@xml/network_security_config">
-
-
+ authResultSnapshot.connectionState == ConnectionState.waiting
+ ? const SplashScreen()
+ : const AuthScreen(),
+ );
+ }
+ }
@override
Widget build(BuildContext context) {
@@ -161,15 +178,7 @@ class MyApp extends StatelessWidget {
highContrastTheme: wgerLightThemeHc,
highContrastDarkTheme: wgerDarkThemeHc,
themeMode: user.themeMode,
- home: auth.isAuth
- ? HomeTabsScreen()
- : FutureBuilder(
- future: auth.tryAutoLogin(),
- builder: (ctx, authResultSnapshot) =>
- authResultSnapshot.connectionState == ConnectionState.waiting
- ? const SplashScreen()
- : const AuthScreen(),
- ),
+ home: _getHomeScreen(auth),
routes: {
DashboardScreen.routeName: (ctx) => const DashboardScreen(),
FormScreen.routeName: (ctx) => const FormScreen(),
diff --git a/lib/models/exercises/exercise_api.dart b/lib/models/exercises/exercise_api.dart
index 7cf6c687..b89eafc1 100644
--- a/lib/models/exercises/exercise_api.dart
+++ b/lib/models/exercises/exercise_api.dart
@@ -16,7 +16,7 @@ part 'exercise_api.g.dart';
/// Basically this is just used as a convenience to create "real" exercise
/// objects and nothing more
@freezed
-class ExerciseApiData with _$ExerciseApiData {
+sealed class ExerciseApiData with _$ExerciseApiData {
factory ExerciseApiData({
required int id,
required String uuid,
@@ -52,7 +52,7 @@ class ExerciseApiData with _$ExerciseApiData {
/// Model for the search results returned from the /api/v2/exercise/search endpoint
///
@freezed
-class ExerciseSearchDetails with _$ExerciseSearchDetails {
+sealed class ExerciseSearchDetails with _$ExerciseSearchDetails {
factory ExerciseSearchDetails({
// ignore: invalid_annotation_target
@JsonKey(name: 'id') required int translationId,
@@ -70,7 +70,7 @@ class ExerciseSearchDetails with _$ExerciseSearchDetails {
}
@freezed
-class ExerciseSearchEntry with _$ExerciseSearchEntry {
+sealed class ExerciseSearchEntry with _$ExerciseSearchEntry {
factory ExerciseSearchEntry({
required String value,
required ExerciseSearchDetails data,
@@ -81,7 +81,7 @@ class ExerciseSearchEntry with _$ExerciseSearchEntry {
}
@freezed
-class ExerciseApiSearch with _$ExerciseApiSearch {
+sealed class ExerciseApiSearch with _$ExerciseApiSearch {
factory ExerciseApiSearch({
required List suggestions,
}) = _ExerciseApiSearch;
diff --git a/lib/models/exercises/exercise_api.freezed.dart b/lib/models/exercises/exercise_api.freezed.dart
index 650a6df8..711987ac 100644
--- a/lib/models/exercises/exercise_api.freezed.dart
+++ b/lib/models/exercises/exercise_api.freezed.dart
@@ -1,3 +1,4 @@
+// dart format width=80
// coverage:ignore-file
// GENERATED CODE - DO NOT MODIFY BY HAND
// ignore_for_file: type=lint
@@ -9,180 +10,101 @@ part of 'exercise_api.dart';
// FreezedGenerator
// **************************************************************************
+// dart format off
T _$identity(T value) => value;
-
-final _privateConstructorUsedError = UnsupportedError(
- 'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models');
-
ExerciseApiData _$ExerciseApiDataFromJson(Map json) {
return _ExerciseBaseData.fromJson(json);
}
/// @nodoc
mixin _$ExerciseApiData {
- int get id => throw _privateConstructorUsedError;
- String get uuid => throw _privateConstructorUsedError; // ignore: invalid_annotation_target
+ int get id;
+ String get uuid; // ignore: invalid_annotation_target
@JsonKey(name: 'variations')
- int? get variationId => throw _privateConstructorUsedError; // ignore: invalid_annotation_target
+ int? get variationId; // ignore: invalid_annotation_target
@JsonKey(name: 'created')
- DateTime get created => throw _privateConstructorUsedError; // ignore: invalid_annotation_target
+ DateTime get created; // ignore: invalid_annotation_target
@JsonKey(name: 'last_update')
- DateTime get lastUpdate =>
- throw _privateConstructorUsedError; // ignore: invalid_annotation_target
+ DateTime get lastUpdate; // ignore: invalid_annotation_target
@JsonKey(name: 'last_update_global')
- DateTime get lastUpdateGlobal => throw _privateConstructorUsedError;
- ExerciseCategory get category => throw _privateConstructorUsedError;
- List get muscles =>
- throw _privateConstructorUsedError; // ignore: invalid_annotation_target
+ DateTime get lastUpdateGlobal;
+ ExerciseCategory get category;
+ List get muscles; // ignore: invalid_annotation_target
@JsonKey(name: 'muscles_secondary')
- List get musclesSecondary =>
- throw _privateConstructorUsedError; // ignore: invalid_annotation_target
- List get equipment =>
- throw _privateConstructorUsedError; // ignore: invalid_annotation_target
+ List get musclesSecondary; // ignore: invalid_annotation_target
+ List get equipment; // ignore: invalid_annotation_target
@JsonKey(name: 'translations', defaultValue: [])
- List get translations => throw _privateConstructorUsedError;
- List get images => throw _privateConstructorUsedError;
- List