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