From c81c467d7abe33bc0787856cb523aaece2492fdc Mon Sep 17 00:00:00 2001 From: Miroslav Mazel Date: Sun, 5 Nov 2023 23:11:46 +0100 Subject: [PATCH 01/19] Dependency bump + replacing deprecated lib --- lib/theme/theme.dart | 2 +- lib/widgets/core/charts.dart | 2 +- lib/widgets/nutrition/charts.dart | 2 +- lib/widgets/workouts/charts.dart | 2 +- macos/Podfile | 2 +- macos/Podfile.lock | 28 ++- macos/Runner.xcodeproj/project.pbxproj | 8 +- .../xcshareddata/xcschemes/Runner.xcscheme | 2 +- pubspec.lock | 214 ++++++------------ pubspec.yaml | 8 +- 10 files changed, 98 insertions(+), 172 deletions(-) diff --git a/lib/theme/theme.dart b/lib/theme/theme.dart index 89f98fb93..042a98138 100644 --- a/lib/theme/theme.dart +++ b/lib/theme/theme.dart @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -import 'package:charts_flutter/flutter.dart' as charts; +import 'package:community_charts_flutter/community_charts_flutter.dart' as charts; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:table_calendar/table_calendar.dart'; diff --git a/lib/widgets/core/charts.dart b/lib/widgets/core/charts.dart index d1bddd668..d2f335450 100644 --- a/lib/widgets/core/charts.dart +++ b/lib/widgets/core/charts.dart @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -import 'package:charts_flutter/flutter.dart' as charts; +import 'package:community_charts_flutter/community_charts_flutter.dart' as charts; import 'package:flutter/widgets.dart'; import 'package:wger/theme/theme.dart'; diff --git a/lib/widgets/nutrition/charts.dart b/lib/widgets/nutrition/charts.dart index 00588d2c4..1873c5cf0 100644 --- a/lib/widgets/nutrition/charts.dart +++ b/lib/widgets/nutrition/charts.dart @@ -16,8 +16,8 @@ * along with this program. If not, see . */ -import 'package:charts_flutter/flutter.dart' as charts; import 'package:collection/collection.dart'; +import 'package:community_charts_flutter/community_charts_flutter.dart' as charts; import 'package:flutter/widgets.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:wger/models/nutrition/nutritional_plan.dart'; diff --git a/lib/widgets/workouts/charts.dart b/lib/widgets/workouts/charts.dart index 6cfd628e9..c7e69aca6 100644 --- a/lib/widgets/workouts/charts.dart +++ b/lib/widgets/workouts/charts.dart @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -import 'package:charts_flutter/flutter.dart' as charts; +import 'package:community_charts_flutter/community_charts_flutter.dart' as charts; import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; diff --git a/macos/Podfile b/macos/Podfile index 049abe295..9ec46f8cd 100644 --- a/macos/Podfile +++ b/macos/Podfile @@ -1,4 +1,4 @@ -platform :osx, '10.14' +platform :osx, '10.15' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 8ac0f7074..72fa8204f 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -1,4 +1,8 @@ PODS: + - file_selector_macos (0.0.1): + - FlutterMacOS + - flutter_zxing (0.0.1): + - FlutterMacOS - FlutterMacOS (1.0.0) - package_info_plus (0.0.1): - FlutterMacOS @@ -9,18 +13,21 @@ PODS: - FlutterMacOS - url_launcher_macos (0.0.1): - FlutterMacOS - - wakelock_macos (0.0.1): - - FlutterMacOS DEPENDENCIES: + - file_selector_macos (from `Flutter/ephemeral/.symlinks/plugins/file_selector_macos/macos`) + - flutter_zxing (from `Flutter/ephemeral/.symlinks/plugins/flutter_zxing/macos`) - FlutterMacOS (from `Flutter/ephemeral`) - package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`) - rive_common (from `Flutter/ephemeral/.symlinks/plugins/rive_common/macos`) - - shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/macos`) + - shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`) - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) - - wakelock_macos (from `Flutter/ephemeral/.symlinks/plugins/wakelock_macos/macos`) EXTERNAL SOURCES: + file_selector_macos: + :path: Flutter/ephemeral/.symlinks/plugins/file_selector_macos/macos + flutter_zxing: + :path: Flutter/ephemeral/.symlinks/plugins/flutter_zxing/macos FlutterMacOS: :path: Flutter/ephemeral package_info_plus: @@ -28,20 +35,19 @@ EXTERNAL SOURCES: rive_common: :path: Flutter/ephemeral/.symlinks/plugins/rive_common/macos shared_preferences_foundation: - :path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/macos + :path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin url_launcher_macos: :path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos - wakelock_macos: - :path: Flutter/ephemeral/.symlinks/plugins/wakelock_macos/macos SPEC CHECKSUMS: + file_selector_macos: 0f85c1108e2fd597b58246bc0b0c1cb483d7593b + flutter_zxing: ea030278aa2a051cd81a5b0053be9d0569d11c9a FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 package_info_plus: 02d7a575e80f194102bef286361c6c326e4c29ce - rive_common: e966d74ca90edb3761cfc559d0f4c884ee947576 + rive_common: acedcab7802c0ece4b0d838b71d7deb637e1309a shared_preferences_foundation: 986fc17f3d3251412d18b0265f9c64113a8c2472 url_launcher_macos: 5335912b679c073563f29d89d33d10d459f95451 - wakelock_macos: bc3f2a9bd8d2e6c89fee1e1822e7ddac3bd004a9 -PODFILE CHECKSUM: 353c8bcc5d5b0994e508d035b5431cfe18c1dea7 +PODFILE CHECKSUM: 0d3963a09fc94f580682bd88480486da345dc3f0 -COCOAPODS: 1.12.0 +COCOAPODS: 1.13.0 diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index d211aabab..9fda4bfbd 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -203,7 +203,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1430; ORGANIZATIONNAME = ""; TargetAttributes = { 33CC10EC2044A3C60003C045 = { @@ -405,7 +405,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; + MACOSX_DEPLOYMENT_TARGET = 10.15; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = macosx; SWIFT_COMPILATION_MODE = wholemodule; @@ -484,7 +484,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; + MACOSX_DEPLOYMENT_TARGET = 10.15; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; @@ -531,7 +531,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; + MACOSX_DEPLOYMENT_TARGET = 10.15; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = macosx; SWIFT_COMPILATION_MODE = wholemodule; diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 5d323891c..5dc152fa7 100644 --- a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ =2.19.0 <3.0.0" + dart: ">=3.1.0-185.0.dev <4.0.0" flutter: ">=3.7.0" diff --git a/pubspec.yaml b/pubspec.yaml index 39d607272..b36e96632 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -33,7 +33,7 @@ dependencies: sdk: flutter android_metadata: ^0.2.1 - charts_flutter: ^0.12.0 + community_charts_flutter: ^1.0.2 collection: ^1.17.0 cupertino_icons: ^1.0.5 equatable: ^2.0.5 @@ -42,8 +42,8 @@ dependencies: flutter_typeahead: ^4.8.0 font_awesome_flutter: ^10.4.0 http: ^0.13.5 - image_picker: ^0.8.9 - intl: ^0.17.0 + image_picker: ^1.0.4 + intl: ^0.18.0 json_annotation: ^4.8.1 version: ^3.0.2 package_info_plus: ^4.2.0 @@ -58,7 +58,7 @@ dependencies: carousel_slider: ^4.2.1 multi_select_flutter: ^4.1.3 flutter_svg: ^2.0.5 - flutter_zxing: ^1.1.2 + flutter_zxing: ^1.4.1 dev_dependencies: flutter_test: From 46e35e04675c944d38e5ba7b856bea8f16dc2eca Mon Sep 17 00:00:00 2001 From: Miroslav Mazel Date: Sun, 5 Nov 2023 23:12:07 +0100 Subject: [PATCH 02/19] Updating screenshot driver --- test_driver/screenshot_driver.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test_driver/screenshot_driver.dart b/test_driver/screenshot_driver.dart index 476709ee4..285d715ac 100644 --- a/test_driver/screenshot_driver.dart +++ b/test_driver/screenshot_driver.dart @@ -6,7 +6,8 @@ import 'package:integration_test/integration_test_driver_extended.dart'; Future main() async { try { await integrationDriver( - onScreenshot: (String screenshotName, List screenshotBytes) async { + onScreenshot: (String screenshotName, List screenshotBytes, + [Map? _]) async { final File image = await File(screenshotName).create(recursive: true); image.writeAsBytesSync(screenshotBytes); return true; From 50b634d78ae44a0528a272afeb0be244b8c9db3d Mon Sep 17 00:00:00 2001 From: Miroslav Mazel Date: Sun, 5 Nov 2023 23:12:39 +0100 Subject: [PATCH 03/19] Single quotes instead of double --- test/gallery/gallery_provider_test.dart | 2 +- test/workout/workout_provider_test.dart | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/test/gallery/gallery_provider_test.dart b/test/gallery/gallery_provider_test.dart index 9750866eb..1c6021a8a 100644 --- a/test/gallery/gallery_provider_test.dart +++ b/test/gallery/gallery_provider_test.dart @@ -69,7 +69,7 @@ void main() { final image = gallery.Image( id: 58, date: DateTime(2022, 01, 09), - url: "https://wger.de/media/gallery/170335/d2b9c9e0-d541-41ae-8786-a2ab459e3538.jpg", + url: 'https://wger.de/media/gallery/170335/d2b9c9e0-d541-41ae-8786-a2ab459e3538.jpg', description: "eggsaddjujuit\'ddayhadIforcanview"); galleryProvider.images.add(image); diff --git a/test/workout/workout_provider_test.dart b/test/workout/workout_provider_test.dart index 598c08490..3c242e82d 100644 --- a/test/workout/workout_provider_test.dart +++ b/test/workout/workout_provider_test.dart @@ -152,10 +152,10 @@ void main() { await provider.fetchAndSetUnits(); final prefsJson = jsonDecode(prefs.getString('workoutUnits')!); - expect(prefsJson["repetitionUnits"].length, 7); - expect(prefsJson["weightUnit"].length, 6); - expect(true, DateTime.parse(prefsJson["date"]).isBefore(DateTime.now())); - expect(true, DateTime.parse(prefsJson["expiresIn"]).isAfter(DateTime.now())); + expect(prefsJson['repetitionUnits'].length, 7); + expect(prefsJson['weightUnit'].length, 6); + expect(true, DateTime.parse(prefsJson['date']).isBefore(DateTime.now())); + expect(true, DateTime.parse(prefsJson['expiresIn']).isAfter(DateTime.now())); }); }); } From c655c3e86ee3317ac611dcd4c7976cb011444a1c Mon Sep 17 00:00:00 2001 From: Miroslav Mazel Date: Sun, 5 Nov 2023 23:16:53 +0100 Subject: [PATCH 04/19] Stricter mixin rules: with -> implements --- lib/widgets/core/app_bar.dart | 4 ++-- lib/widgets/workouts/app_bar.dart | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/widgets/core/app_bar.dart b/lib/widgets/core/app_bar.dart index 6e420c794..8f618cd33 100644 --- a/lib/widgets/core/app_bar.dart +++ b/lib/widgets/core/app_bar.dart @@ -29,7 +29,7 @@ import 'package:wger/screens/form_screen.dart'; import 'package:wger/widgets/core/about.dart'; import 'package:wger/widgets/user/forms.dart'; -class MainAppBar extends StatelessWidget with PreferredSizeWidget { +class MainAppBar extends StatelessWidget implements PreferredSizeWidget { final String _title; MainAppBar(this._title); @@ -113,7 +113,7 @@ class MainAppBar extends StatelessWidget with PreferredSizeWidget { } /// App bar that only displays a title -class EmptyAppBar extends StatelessWidget with PreferredSizeWidget { +class EmptyAppBar extends StatelessWidget implements PreferredSizeWidget { final String _title; EmptyAppBar(this._title); diff --git a/lib/widgets/workouts/app_bar.dart b/lib/widgets/workouts/app_bar.dart index ab8bd1480..73ce790d4 100644 --- a/lib/widgets/workouts/app_bar.dart +++ b/lib/widgets/workouts/app_bar.dart @@ -26,7 +26,7 @@ enum _WorkoutAppBarOptions { contribute, } -class WorkoutOverviewAppBar extends StatelessWidget with PreferredSizeWidget { +class WorkoutOverviewAppBar extends StatelessWidget implements PreferredSizeWidget { @override Widget build(BuildContext context) { return AppBar( From f0930ba84a511406c0b7b2443f01e3c36c2cd084 Mon Sep 17 00:00:00 2001 From: Miroslav Mazel Date: Sun, 5 Nov 2023 23:17:11 +0100 Subject: [PATCH 05/19] Ignore specific unused field warning --- lib/helpers/consts.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/helpers/consts.dart b/lib/helpers/consts.dart index 84f148b3b..d8077cd02 100644 --- a/lib/helpers/consts.dart +++ b/lib/helpers/consts.dart @@ -88,6 +88,7 @@ const LANGUAGE_SHORT_ENGLISH = 'en'; /// /// Values taken from exercises/models/image.py enum EXERCISE_IMAGE_ART_STYLE { + // ignore: unused_field _, // 0 is not used LINE_ART, THREE_D, From 420b06a661c8024ab368affcd13896d5178151f2 Mon Sep 17 00:00:00 2001 From: Miroslav Mazel Date: Sun, 5 Nov 2023 23:22:34 +0100 Subject: [PATCH 06/19] Organize imports / remove unnecessary ones --- lib/main.dart | 4 ++-- lib/models/nutrition/nutritional_values.dart | 2 -- lib/providers/workout_plans.dart | 1 - lib/screens/dashboard.dart | 1 - lib/widgets/dashboard/calendar.dart | 1 - lib/widgets/dashboard/widgets.dart | 1 - lib/widgets/exercises/videos.dart | 1 - lib/widgets/measurements/forms.dart | 1 - lib/widgets/nutrition/widgets.dart | 7 +------ lib/widgets/user/forms.dart | 1 - lib/widgets/weight/forms.dart | 1 - lib/widgets/workouts/log.dart | 1 - 12 files changed, 3 insertions(+), 19 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 016c63102..f7b2657d7 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -16,8 +16,10 @@ * along with this program. If not, see . */ +import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:flutter_zxing/flutter_zxing.dart'; import 'package:provider/provider.dart'; import 'package:wger/providers/add_exercise.dart'; import 'package:wger/providers/base_provider.dart'; @@ -50,8 +52,6 @@ import 'package:wger/theme/theme.dart'; import 'package:wger/widgets/core/about.dart'; import 'providers/auth.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter_zxing/flutter_zxing.dart'; void main() { zx.setLogEnabled(kDebugMode); diff --git a/lib/models/nutrition/nutritional_values.dart b/lib/models/nutrition/nutritional_values.dart index 834dcbb26..902fbd32a 100644 --- a/lib/models/nutrition/nutritional_values.dart +++ b/lib/models/nutrition/nutritional_values.dart @@ -16,8 +16,6 @@ * along with this program. If not, see . */ -import 'dart:ui'; - class NutritionalValues { double energy = 0; double protein = 0; diff --git a/lib/providers/workout_plans.dart b/lib/providers/workout_plans.dart index 664468850..c5d2406aa 100644 --- a/lib/providers/workout_plans.dart +++ b/lib/providers/workout_plans.dart @@ -18,7 +18,6 @@ import 'dart:convert'; import 'dart:developer' as dev; -import 'dart:developer'; import 'package:flutter/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; diff --git a/lib/screens/dashboard.dart b/lib/screens/dashboard.dart index 2723ec956..2b324c389 100644 --- a/lib/screens/dashboard.dart +++ b/lib/screens/dashboard.dart @@ -16,7 +16,6 @@ * along with this program. If not, see . */ -import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:wger/widgets/core/app_bar.dart'; diff --git a/lib/widgets/dashboard/calendar.dart b/lib/widgets/dashboard/calendar.dart index dea7d7203..f2ade2f5e 100644 --- a/lib/widgets/dashboard/calendar.dart +++ b/lib/widgets/dashboard/calendar.dart @@ -17,7 +17,6 @@ */ import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:provider/provider.dart'; import 'package:table_calendar/table_calendar.dart'; diff --git a/lib/widgets/dashboard/widgets.dart b/lib/widgets/dashboard/widgets.dart index 441eda169..893cc2d2a 100644 --- a/lib/widgets/dashboard/widgets.dart +++ b/lib/widgets/dashboard/widgets.dart @@ -18,7 +18,6 @@ import 'package:carousel_slider/carousel_slider.dart'; import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:intl/intl.dart'; diff --git a/lib/widgets/exercises/videos.dart b/lib/widgets/exercises/videos.dart index 655af11cb..4675fc2da 100644 --- a/lib/widgets/exercises/videos.dart +++ b/lib/widgets/exercises/videos.dart @@ -17,7 +17,6 @@ */ import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; import 'package:video_player/video_player.dart'; import 'package:wger/models/exercises/video.dart'; diff --git a/lib/widgets/measurements/forms.dart b/lib/widgets/measurements/forms.dart index 6270757d1..ab3f91989 100644 --- a/lib/widgets/measurements/forms.dart +++ b/lib/widgets/measurements/forms.dart @@ -17,7 +17,6 @@ */ import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:provider/provider.dart'; import 'package:wger/exceptions/http_exception.dart'; diff --git a/lib/widgets/nutrition/widgets.dart b/lib/widgets/nutrition/widgets.dart index 2137c28a1..d9dfc8bb4 100644 --- a/lib/widgets/nutrition/widgets.dart +++ b/lib/widgets/nutrition/widgets.dart @@ -16,15 +16,12 @@ * along with this program. If not, see . */ -import 'dart:developer'; -import 'dart:io'; - import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; //import 'package:flutter_barcode_scanner/flutter_barcode_scanner.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:flutter_typeahead/flutter_typeahead.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:flutter_zxing/flutter_zxing.dart'; import 'package:provider/provider.dart'; import 'package:wger/helpers/consts.dart'; import 'package:wger/helpers/platform.dart'; @@ -32,8 +29,6 @@ import 'package:wger/helpers/ui.dart'; import 'package:wger/providers/nutrition.dart'; import 'package:wger/widgets/core/core.dart'; -import 'package:flutter_zxing/flutter_zxing.dart'; - class ScanReader extends StatelessWidget { String? scannedr; diff --git a/lib/widgets/user/forms.dart b/lib/widgets/user/forms.dart index 14e1f28bc..87907f8ed 100644 --- a/lib/widgets/user/forms.dart +++ b/lib/widgets/user/forms.dart @@ -17,7 +17,6 @@ */ import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:provider/provider.dart'; import 'package:wger/models/user/profile.dart'; diff --git a/lib/widgets/weight/forms.dart b/lib/widgets/weight/forms.dart index 7523f1655..edf773525 100644 --- a/lib/widgets/weight/forms.dart +++ b/lib/widgets/weight/forms.dart @@ -17,7 +17,6 @@ */ import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:provider/provider.dart'; import 'package:wger/exceptions/http_exception.dart'; diff --git a/lib/widgets/workouts/log.dart b/lib/widgets/workouts/log.dart index c0fd30c5b..54a09b954 100644 --- a/lib/widgets/workouts/log.dart +++ b/lib/widgets/workouts/log.dart @@ -17,7 +17,6 @@ */ import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:wger/helpers/ui.dart'; From 15923aea1006ee2c252a401a08befc4f0a0073be Mon Sep 17 00:00:00 2001 From: Miroslav Mazel Date: Sun, 5 Nov 2023 23:22:42 +0100 Subject: [PATCH 07/19] Camel-case variables --- test/nutrition/nutrition_provider_test.dart | 24 ++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/test/nutrition/nutrition_provider_test.dart b/test/nutrition/nutrition_provider_test.dart index fdedd435c..8f3f4f95e 100644 --- a/test/nutrition/nutrition_provider_test.dart +++ b/test/nutrition/nutrition_provider_test.dart @@ -21,29 +21,29 @@ void main() { const String diaryUrl = 'nutritiondiary'; const String ingredientUrl = 'ingredient'; - final Map NutritionalPlanInfoResponse = jsonDecode( + final Map nutritionalPlanInfoResponse = jsonDecode( fixture('nutrition/nutritional_plan_info_detail_response.json'), ); - final Map NutritionalPlanDetailResponse = jsonDecode( + final Map nutritionalPlanDetailResponse = jsonDecode( fixture('nutrition/nutritional_plan_detail_response.json'), ); - final List NutritionDiaryResponse = jsonDecode( + final List nutritionDiaryResponse = jsonDecode( fixture('nutrition/nutrition_diary_response.json'), )['results']; - final Map Ingredient59887Response = jsonDecode( + final Map ingredient59887Response = jsonDecode( fixture('nutrition/ingredient_59887_response.json'), ); - final Map Ingredient10065Response = jsonDecode( + final Map ingredient10065Response = jsonDecode( fixture('nutrition/ingredient_10065_response.json'), ); - final Map Ingredient58300Response = jsonDecode( + final Map ingredient58300Response = jsonDecode( fixture('nutrition/ingredient_58300_response.json'), ); final ingredientList = [ - Ingredient.fromJson(Ingredient59887Response), - Ingredient.fromJson(Ingredient10065Response), - Ingredient.fromJson(Ingredient58300Response), + Ingredient.fromJson(ingredient59887Response), + Ingredient.fromJson(ingredient10065Response), + Ingredient.fromJson(ingredient58300Response), ]; nutritionProvider.ingredients = ingredientList; @@ -67,13 +67,13 @@ void main() { when(mockWgerBaseProvider.makeUrl(planUrl, id: anyNamed('id'))).thenReturn(planUri); when(mockWgerBaseProvider.makeUrl(diaryUrl, query: anyNamed('query'))).thenReturn(diaryUri); when(mockWgerBaseProvider.fetch(planInfoUri)).thenAnswer( - (realInvocation) => Future.value(NutritionalPlanInfoResponse), + (realInvocation) => Future.value(nutritionalPlanInfoResponse), ); when(mockWgerBaseProvider.fetch(planUri)).thenAnswer( - (realInvocation) => Future.value(NutritionalPlanDetailResponse), + (realInvocation) => Future.value(nutritionalPlanDetailResponse), ); when(mockWgerBaseProvider.fetchPaginated(diaryUri)).thenAnswer( - (realInvocation) => Future.value(NutritionDiaryResponse), + (realInvocation) => Future.value(nutritionDiaryResponse), ); }); From d86ee692bb4461a5c8cff67fec19e32bfd40f4ef Mon Sep 17 00:00:00 2001 From: Miroslav Mazel Date: Sun, 5 Nov 2023 23:24:50 +0100 Subject: [PATCH 08/19] Children at the bottom + consistent variable names + BuildContext async gaps --- .../add_exercise_dropdown_button.dart | 2 +- lib/widgets/nutrition/forms.dart | 19 ++++-- lib/widgets/nutrition/meal.dart | 62 ++++++++--------- lib/widgets/workouts/day.dart | 68 +++++++++---------- lib/widgets/workouts/gym_mode.dart | 40 +++++------ lib/widgets/workouts/workout_logs.dart | 14 ++-- 6 files changed, 105 insertions(+), 100 deletions(-) diff --git a/lib/widgets/add_exercise/add_exercise_dropdown_button.dart b/lib/widgets/add_exercise/add_exercise_dropdown_button.dart index dda65e15e..0f2894da4 100644 --- a/lib/widgets/add_exercise/add_exercise_dropdown_button.dart +++ b/lib/widgets/add_exercise/add_exercise_dropdown_button.dart @@ -49,8 +49,8 @@ class _AddExerciseDropdownButtonState extends State { items: widget.items .map( (item) => DropdownMenuItem( - child: Text(item), value: item, + child: Text(item), ), ) .toList(), diff --git a/lib/widgets/nutrition/forms.dart b/lib/widgets/nutrition/forms.dart index 3345a1a56..a634aea72 100644 --- a/lib/widgets/nutrition/forms.dart +++ b/lib/widgets/nutrition/forms.dart @@ -192,8 +192,8 @@ class MealItemForm extends StatelessWidget { ), if (_listMealItems.isNotEmpty) const SizedBox(height: 10.0), Container( - child: Text(AppLocalizations.of(context).recentlyUsedIngredients), padding: const EdgeInsets.all(10.0), + child: Text(AppLocalizations.of(context).recentlyUsedIngredients), ), Expanded( child: ListView.builder( @@ -320,8 +320,8 @@ class IngredientLogForm extends StatelessWidget { ), if (diaryEntries.isNotEmpty) const SizedBox(height: 10.0), Container( - child: Text(AppLocalizations.of(context).recentlyUsedIngredients), padding: const EdgeInsets.all(10.0), + child: Text(AppLocalizations.of(context).recentlyUsedIngredients), ), Expanded( child: ListView.builder( @@ -392,16 +392,21 @@ class PlanForm extends StatelessWidget { // Save to DB try { + final navigator = Navigator.of(context); if (_plan.id != null) { await Provider.of(context, listen: false).editPlan(_plan); - Navigator.of(context).pop(); + if (context.mounted) { + navigator.pop(); + } } else { _plan = await Provider.of(context, listen: false) .addPlan(_plan); - Navigator.of(context).pushReplacementNamed( - NutritionalPlanScreen.routeName, - arguments: _plan, - ); + if (context.mounted) { + navigator.pushReplacementNamed( + NutritionalPlanScreen.routeName, + arguments: _plan, + ); + } } // Saving was successful, reset the data diff --git a/lib/widgets/nutrition/meal.dart b/lib/widgets/nutrition/meal.dart index 528a0bcd5..9e7b49058 100644 --- a/lib/widgets/nutrition/meal.dart +++ b/lib/widgets/nutrition/meal.dart @@ -223,37 +223,6 @@ class DismissibleMealHeader extends StatelessWidget { return Dismissible( key: Key(_meal.id.toString()), direction: DismissDirection.startToEnd, - child: Container( - padding: const EdgeInsets.all(10), - decoration: const BoxDecoration(color: Colors.white), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - if (_meal.name != '') - Text( - _meal.name, - style: Theme.of(context).textTheme.headline5, - ), - Row( - children: [ - Expanded( - child: Text( - _meal.time!.format(context), - style: Theme.of(context).textTheme.headline5, - ), - ), - IconButton( - visualDensity: VisualDensity.compact, - icon: _expanded ? const Icon(Icons.unfold_less) : const Icon(Icons.unfold_more), - onPressed: () { - _toggle(); - }, - ), - ], - ), - ], - ), - ), background: Container( color: wgerPrimaryButtonColor, //Theme.of(context).primaryColor, alignment: Alignment.centerLeft, @@ -287,6 +256,37 @@ class DismissibleMealHeader extends StatelessWidget { } return false; }, + child: Container( + padding: const EdgeInsets.all(10), + decoration: const BoxDecoration(color: Colors.white), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (_meal.name != '') + Text( + _meal.name, + style: Theme.of(context).textTheme.headline5, + ), + Row( + children: [ + Expanded( + child: Text( + _meal.time!.format(context), + style: Theme.of(context).textTheme.headline5, + ), + ), + IconButton( + visualDensity: VisualDensity.compact, + icon: _expanded ? const Icon(Icons.unfold_less) : const Icon(Icons.unfold_more), + onPressed: () { + _toggle(); + }, + ), + ], + ), + ], + ), + ), ); } } diff --git a/lib/widgets/workouts/day.dart b/lib/widgets/workouts/day.dart index 3de5af759..1ea0c3a5c 100644 --- a/lib/widgets/workouts/day.dart +++ b/lib/widgets/workouts/day.dart @@ -50,8 +50,8 @@ class SettingWidget extends StatelessWidget { return ListTile( leading: InkWell( child: SizedBox( - child: ExerciseImageWidget(image: setting.exerciseBaseObj.getMainImage), width: 45, + child: ExerciseImageWidget(image: setting.exerciseBaseObj.getMainImage), ), onTap: () { showDialog( @@ -224,19 +224,19 @@ class _WorkoutDayWidgetState extends State { physics: const NeverScrollableScrollPhysics(), shrinkWrap: true, buildDefaultDragHandles: false, - onReorder: (_oldIndex, _newIndex) async { - int _startIndex = 0; - if (_oldIndex < _newIndex) { - _newIndex -= 1; - _startIndex = _oldIndex; + onReorder: (oldIndex, newIndex) async { + int startIndex = 0; + if (oldIndex < newIndex) { + newIndex -= 1; + startIndex = oldIndex; } else { - _startIndex = _newIndex; + startIndex = newIndex; } setState(() { - _sets.insert(_newIndex, _sets.removeAt(_oldIndex)); + _sets.insert(newIndex, _sets.removeAt(oldIndex)); }); _sets = await Provider.of(context, listen: false) - .reorderSets(_sets, _startIndex); + .reorderSets(_sets, startIndex); }, children: [ for (var i = 0; i < widget._day.sets.length; i++) getSetRow(widget._day.sets[i], i), @@ -283,6 +283,31 @@ class DayHeaderDismissible extends StatelessWidget { return Dismissible( key: Key(_day.id.toString()), direction: DismissDirection.startToEnd, + background: Container( + color: wgerPrimaryButtonColor, //Theme.of(context).primaryColor, + alignment: Alignment.centerLeft, + padding: const EdgeInsets.only(left: 10), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + AppLocalizations.of(context).gymMode, + style: const TextStyle(color: Colors.white), + ), + const Icon( + Icons.play_arrow, + color: Colors.white, + ), + ], + ), + ), + confirmDismiss: (direction) async { + // Delete day + if (direction == DismissDirection.startToEnd) { + Navigator.of(context).pushNamed(GymModeScreen.routeName, arguments: _day); + } + return false; + }, child: Container( padding: const EdgeInsets.all(10), decoration: const BoxDecoration(color: Colors.white), @@ -311,31 +336,6 @@ class DayHeaderDismissible extends StatelessWidget { ], ), ), - background: Container( - color: wgerPrimaryButtonColor, //Theme.of(context).primaryColor, - alignment: Alignment.centerLeft, - padding: const EdgeInsets.only(left: 10), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - AppLocalizations.of(context).gymMode, - style: const TextStyle(color: Colors.white), - ), - const Icon( - Icons.play_arrow, - color: Colors.white, - ), - ], - ), - ), - confirmDismiss: (direction) async { - // Delete day - if (direction == DismissDirection.startToEnd) { - Navigator.of(context).pushNamed(GymModeScreen.routeName, arguments: _day); - } - return false; - }, ); } } diff --git a/lib/widgets/workouts/gym_mode.dart b/lib/widgets/workouts/gym_mode.dart index 96616393e..b9a787217 100644 --- a/lib/widgets/workouts/gym_mode.dart +++ b/lib/widgets/workouts/gym_mode.dart @@ -466,15 +466,6 @@ class _LogPageState extends State { }, ), ElevatedButton( - child: (!_isSaving) - ? Text(AppLocalizations.of(context).save) - : const SizedBox( - height: 20, - width: 20, - child: CircularProgressIndicator( - valueColor: AlwaysStoppedAnimation(Colors.white), - ), - ), onPressed: _isSaving ? null : () async { @@ -512,6 +503,15 @@ class _LogPageState extends State { _isSaving = false; } }, + child: (!_isSaving) + ? Text(AppLocalizations.of(context).save) + : const SizedBox( + height: 20, + width: 20, + child: CircularProgressIndicator( + valueColor: AlwaysStoppedAnimation(Colors.white), + ), + ), ), ], ), @@ -781,17 +781,6 @@ class _SessionPageState extends State { mainAxisAlignment: MainAxisAlignment.center, children: [ ToggleButtons( - children: const [ - Icon( - Icons.sentiment_very_dissatisfied, - ), - Icon( - Icons.sentiment_neutral, - ), - Icon( - Icons.sentiment_very_satisfied, - ), - ], renderBorder: false, onPressed: (int index) { setState(() { @@ -809,6 +798,17 @@ class _SessionPageState extends State { }); }, isSelected: selectedImpression, + children: const [ + Icon( + Icons.sentiment_very_dissatisfied, + ), + Icon( + Icons.sentiment_neutral, + ), + Icon( + Icons.sentiment_very_satisfied, + ), + ], ), TextFormField( decoration: InputDecoration( diff --git a/lib/widgets/workouts/workout_logs.dart b/lib/widgets/workouts/workout_logs.dart index 1147c3c5e..64c8c6f64 100644 --- a/lib/widgets/workouts/workout_logs.dart +++ b/lib/widgets/workouts/workout_logs.dart @@ -45,6 +45,13 @@ class _WorkoutLogsState extends State { return Column( children: [ ToggleButtons( + renderBorder: false, + onPressed: (int index) { + if (index == 0) { + widget._changeMode(WorkoutScreenMode.workout); + } + }, + isSelected: const [false, true], children: const [ Icon( Icons.table_chart_outlined, @@ -53,13 +60,6 @@ class _WorkoutLogsState extends State { Icons.show_chart, ), ], - renderBorder: false, - onPressed: (int index) { - if (index == 0) { - widget._changeMode(WorkoutScreenMode.workout); - } - }, - isSelected: const [false, true], ), Padding( padding: const EdgeInsets.symmetric(vertical: 10), From f31bcc770dc79abf3f3b21362573bc0613bc02cd Mon Sep 17 00:00:00 2001 From: Miroslav Mazel Date: Sun, 5 Nov 2023 23:27:22 +0100 Subject: [PATCH 09/19] Consts and finals where possible --- integration_test/5_nutritional_plan.dart | 2 +- lib/providers/gallery.dart | 2 +- lib/widgets/core/app_bar.dart | 4 ++-- lib/widgets/core/text_prompt.dart | 2 +- lib/widgets/dashboard/widgets.dart | 2 +- lib/widgets/exercises/filter_row.dart | 4 ++-- lib/widgets/measurements/categories_card.dart | 8 ++++---- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/integration_test/5_nutritional_plan.dart b/integration_test/5_nutritional_plan.dart index 78a2993ff..d45a6def9 100644 --- a/integration_test/5_nutritional_plan.dart +++ b/integration_test/5_nutritional_plan.dart @@ -14,7 +14,7 @@ import 'package:wger/theme/theme.dart'; import '../test/user/provider_test.mocks.dart'; Widget createNutritionalPlanScreen({locale = 'en'}) { - var mockBaseProvider = MockWgerBaseProvider(); + final mockBaseProvider = MockWgerBaseProvider(); final key = GlobalKey(); diff --git a/lib/providers/gallery.dart b/lib/providers/gallery.dart index f4ad1f4ba..ce1980b4e 100644 --- a/lib/providers/gallery.dart +++ b/lib/providers/gallery.dart @@ -103,7 +103,7 @@ class GalleryProvider extends WgerBaseProvider with ChangeNotifier { } Future deleteImage(gallery.Image image) async { - var response = await deleteRequest(_galleryUrlPath, image.id!); + final response = await deleteRequest(_galleryUrlPath, image.id!); images.removeWhere((element) => element.id == image.id); notifyListeners(); diff --git a/lib/widgets/core/app_bar.dart b/lib/widgets/core/app_bar.dart index 8f618cd33..06f1c7466 100644 --- a/lib/widgets/core/app_bar.dart +++ b/lib/widgets/core/app_bar.dart @@ -32,7 +32,7 @@ import 'package:wger/widgets/user/forms.dart'; class MainAppBar extends StatelessWidget implements PreferredSizeWidget { final String _title; - MainAppBar(this._title); + const MainAppBar(this._title); @override Widget build(BuildContext context) { @@ -116,7 +116,7 @@ class MainAppBar extends StatelessWidget implements PreferredSizeWidget { class EmptyAppBar extends StatelessWidget implements PreferredSizeWidget { final String _title; - EmptyAppBar(this._title); + const EmptyAppBar(this._title); @override Widget build(BuildContext context) { diff --git a/lib/widgets/core/text_prompt.dart b/lib/widgets/core/text_prompt.dart index c2b14e775..83dbc0f3a 100644 --- a/lib/widgets/core/text_prompt.dart +++ b/lib/widgets/core/text_prompt.dart @@ -13,7 +13,7 @@ class TextPrompt extends StatelessWidget { style: Theme.of(context).textTheme.headlineMedium, ), Padding( - padding: EdgeInsets.only(top: 12), + padding: const EdgeInsets.only(top: 12), child: Text(AppLocalizations.of(context).textPromptSubheading), ), ], diff --git a/lib/widgets/dashboard/widgets.dart b/lib/widgets/dashboard/widgets.dart index 893cc2d2a..be6f74cea 100644 --- a/lib/widgets/dashboard/widgets.dart +++ b/lib/widgets/dashboard/widgets.dart @@ -394,7 +394,7 @@ class _DashboardMeasurementWidgetState extends State child: Container( width: 12.0, height: 12.0, - margin: EdgeInsets.symmetric(vertical: 8.0, horizontal: 4.0), + margin: const EdgeInsets.symmetric(vertical: 8.0, horizontal: 4.0), decoration: BoxDecoration( shape: BoxShape.circle, color: (Theme.of(context).brightness == Brightness.dark diff --git a/lib/widgets/exercises/filter_row.dart b/lib/widgets/exercises/filter_row.dart index 8fb4c5eae..d7510dd1b 100644 --- a/lib/widgets/exercises/filter_row.dart +++ b/lib/widgets/exercises/filter_row.dart @@ -25,7 +25,7 @@ import 'package:wger/screens/add_exercise_screen.dart'; import 'filter_modal.dart'; class FilterRow extends StatefulWidget { - FilterRow({Key? key}) : super(key: key); + const FilterRow({Key? key}) : super(key: key); @override _FilterRowState createState() => _FilterRowState(); @@ -89,8 +89,8 @@ class _FilterRowState extends State { itemBuilder: (context) { return [ PopupMenuItem( - child: Text(AppLocalizations.of(context).contributeExercise), value: ExerciseMoreOption.ADD_EXERCISE, + child: Text(AppLocalizations.of(context).contributeExercise), ) ]; }, diff --git a/lib/widgets/measurements/categories_card.dart b/lib/widgets/measurements/categories_card.dart index 772a02dd9..e42dd068f 100644 --- a/lib/widgets/measurements/categories_card.dart +++ b/lib/widgets/measurements/categories_card.dart @@ -1,17 +1,17 @@ import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import '../../models/measurements/measurement_category.dart'; import '../../screens/form_screen.dart'; import '../../screens/measurement_entries_screen.dart'; import '../core/charts.dart'; import 'forms.dart'; -import 'package:flutter_gen/gen_l10n/app_localizations.dart'; class CategoriesCard extends StatelessWidget { - MeasurementCategory currentCategory; - double? elevation; + final MeasurementCategory currentCategory; + final double? elevation; - CategoriesCard(this.currentCategory, {this.elevation}); + const CategoriesCard(this.currentCategory, {this.elevation}); @override Widget build(BuildContext context) { From 9a34eac395efe0c6a5b80a157df189c119d7b5f2 Mon Sep 17 00:00:00 2001 From: Miroslav Mazel Date: Sun, 5 Nov 2023 23:27:37 +0100 Subject: [PATCH 10/19] isEmpty instead of ==0 --- lib/widgets/gallery/overview.dart | 2 +- lib/widgets/nutrition/nutritional_plans_list.dart | 2 +- lib/widgets/workouts/workout_plans_list.dart | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/widgets/gallery/overview.dart b/lib/widgets/gallery/overview.dart index e222ae0b8..a0011c2e5 100644 --- a/lib/widgets/gallery/overview.dart +++ b/lib/widgets/gallery/overview.dart @@ -39,7 +39,7 @@ class Gallery extends StatelessWidget { padding: const EdgeInsets.all(5), child: RefreshIndicator( onRefresh: () => provider.fetchAndSetGallery(), - child: provider.images.length == 0 + child: provider.images.isEmpty ? TextPrompt() : MasonryGridView.count( crossAxisCount: 2, diff --git a/lib/widgets/nutrition/nutritional_plans_list.dart b/lib/widgets/nutrition/nutritional_plans_list.dart index c2678c206..6d1eae27d 100644 --- a/lib/widgets/nutrition/nutritional_plans_list.dart +++ b/lib/widgets/nutrition/nutritional_plans_list.dart @@ -32,7 +32,7 @@ class NutritionalPlansList extends StatelessWidget { Widget build(BuildContext context) { return RefreshIndicator( onRefresh: () => _nutritionProvider.fetchAndSetAllPlansSparse(), - child: _nutritionProvider.items.length == 0 + child: _nutritionProvider.items.isEmpty ? TextPrompt() : ListView.builder( padding: const EdgeInsets.all(10.0), diff --git a/lib/widgets/workouts/workout_plans_list.dart b/lib/widgets/workouts/workout_plans_list.dart index 875bf5d7f..92723dd40 100644 --- a/lib/widgets/workouts/workout_plans_list.dart +++ b/lib/widgets/workouts/workout_plans_list.dart @@ -33,7 +33,7 @@ class WorkoutPlansList extends StatelessWidget { Widget build(BuildContext context) { return RefreshIndicator( onRefresh: () => _workoutProvider.fetchAndSetAllPlansSparse(), - child: _workoutProvider.items.length == 0 + child: _workoutProvider.items.isEmpty ? TextPrompt() : ListView.builder( padding: const EdgeInsets.all(10.0), From 5f7bc96f8b9321080950c79332f0ed4c15f0d557 Mon Sep 17 00:00:00 2001 From: Miroslav Mazel Date: Sun, 5 Nov 2023 23:34:37 +0100 Subject: [PATCH 11/19] Don't use BuildContext across async gaps --- lib/screens/auth_screen.dart | 12 ++++++---- .../mixins/image_picker_mixin.dart | 4 +++- lib/widgets/measurements/forms.dart | 24 ++++++++++++++----- lib/widgets/nutrition/forms.dart | 13 ++++++---- lib/widgets/nutrition/widgets.dart | 10 ++++---- lib/widgets/weight/forms.dart | 12 +++++++--- lib/widgets/workouts/forms.dart | 18 +++++++++----- lib/widgets/workouts/gym_mode.dart | 20 ++++++++++++---- 8 files changed, 78 insertions(+), 35 deletions(-) diff --git a/lib/screens/auth_screen.dart b/lib/screens/auth_screen.dart index 98f08072d..7424ae8f7 100644 --- a/lib/screens/auth_screen.dart +++ b/lib/screens/auth_screen.dart @@ -187,17 +187,19 @@ class _AuthCardState extends State { _isLoading = false; }); } on WgerHttpException catch (error) { - showHttpExceptionErrorDialog(error, context); + if (mounted) { + showHttpExceptionErrorDialog(error, context); + } setState(() { _isLoading = false; }); } catch (error) { if (mounted) { showErrorDialog(error, context); - setState(() { - _isLoading = false; - }); } + setState(() { + _isLoading = false; + }); } } @@ -249,7 +251,7 @@ class _AuthCardState extends State { if (value == null || value.isEmpty) { return AppLocalizations.of(context).invalidUsername; } - if (!RegExp(r'^[\w.@+-]+$').hasMatch(value!)) { + if (!RegExp(r'^[\w.@+-]+$').hasMatch(value)) { return AppLocalizations.of(context).usernameValidChars; } diff --git a/lib/widgets/add_exercise/mixins/image_picker_mixin.dart b/lib/widgets/add_exercise/mixins/image_picker_mixin.dart index 425b0308e..d98a235ee 100644 --- a/lib/widgets/add_exercise/mixins/image_picker_mixin.dart +++ b/lib/widgets/add_exercise/mixins/image_picker_mixin.dart @@ -49,7 +49,9 @@ mixin ExerciseImagePickerMixin { } if (!isFileValid) { - showDialog(context: context, builder: (context) => Text(errorMessage)); + if (context.mounted) { + showDialog(context: context, builder: (context) => Text(errorMessage)); + } return; } } diff --git a/lib/widgets/measurements/forms.dart b/lib/widgets/measurements/forms.dart index ab3f91989..4e6e09e9a 100644 --- a/lib/widgets/measurements/forms.dart +++ b/lib/widgets/measurements/forms.dart @@ -109,11 +109,17 @@ class MeasurementCategoryForm extends StatelessWidget { : await Provider.of(context, listen: false).editCategory( categoryData['id'], categoryData['name'], categoryData['unit']); } on WgerHttpException catch (error) { - showHttpExceptionErrorDialog(error, context); + if (context.mounted) { + showHttpExceptionErrorDialog(error, context); + } } catch (error) { - showErrorDialog(error, context); + if (context.mounted) { + showErrorDialog(error, context); + } + } + if (context.mounted) { + Navigator.of(context).pop(); } - Navigator.of(context).pop(); }, ), ], @@ -271,11 +277,17 @@ class MeasurementEntryForm extends StatelessWidget { _entryData['date'], ); } on WgerHttpException catch (error) { - showHttpExceptionErrorDialog(error, context); + if (context.mounted) { + showHttpExceptionErrorDialog(error, context); + } } catch (error) { - showErrorDialog(error, context); + if (context.mounted) { + showErrorDialog(error, context); + } + } + if (context.mounted) { + Navigator.of(context).pop(); } - Navigator.of(context).pop(); }, ), ], diff --git a/lib/widgets/nutrition/forms.dart b/lib/widgets/nutrition/forms.dart index a634aea72..b0b002253 100644 --- a/lib/widgets/nutrition/forms.dart +++ b/lib/widgets/nutrition/forms.dart @@ -392,17 +392,16 @@ class PlanForm extends StatelessWidget { // Save to DB try { - final navigator = Navigator.of(context); if (_plan.id != null) { await Provider.of(context, listen: false).editPlan(_plan); if (context.mounted) { - navigator.pop(); + Navigator.of(context).pop(); } } else { _plan = await Provider.of(context, listen: false) .addPlan(_plan); if (context.mounted) { - navigator.pushReplacementNamed( + Navigator.of(context).pushReplacementNamed( NutritionalPlanScreen.routeName, arguments: _plan, ); @@ -412,9 +411,13 @@ class PlanForm extends StatelessWidget { // Saving was successful, reset the data _descriptionController.clear(); } on WgerHttpException catch (error) { - showHttpExceptionErrorDialog(error, context); + if (context.mounted) { + showHttpExceptionErrorDialog(error, context); + } } catch (error) { - showErrorDialog(error, context); + if (context.mounted) { + showErrorDialog(error, context); + } } }, ), diff --git a/lib/widgets/nutrition/widgets.dart b/lib/widgets/nutrition/widgets.dart index d9dfc8bb4..977eae0aa 100644 --- a/lib/widgets/nutrition/widgets.dart +++ b/lib/widgets/nutrition/widgets.dart @@ -207,10 +207,12 @@ class _IngredientTypeaheadState extends State { } } } catch (e) { - showErrorDialog(e, context); - // Need to pop back since reader scan is a widget - // otherwise returns null when back button is pressed - return Navigator.pop(context); + if (context.mounted) { + showErrorDialog(e, context); + // Need to pop back since reader scan is a widget + // otherwise returns null when back button is pressed + return Navigator.pop(context); + } } }, icon: Image.asset('assets/images/barcode_scanner_icon.png'), diff --git a/lib/widgets/weight/forms.dart b/lib/widgets/weight/forms.dart index edf773525..c4b6f6760 100644 --- a/lib/widgets/weight/forms.dart +++ b/lib/widgets/weight/forms.dart @@ -119,11 +119,17 @@ class WeightForm extends StatelessWidget { : await Provider.of(context, listen: false) .editEntry(_weightEntry); } on WgerHttpException catch (error) { - showHttpExceptionErrorDialog(error, context); + if (context.mounted) { + showHttpExceptionErrorDialog(error, context); + } } catch (error) { - showErrorDialog(error, context); + if (context.mounted) { + showErrorDialog(error, context); + } + } + if (context.mounted) { + Navigator.of(context).pop(); } - Navigator.of(context).pop(); }, ), ], diff --git a/lib/widgets/workouts/forms.dart b/lib/widgets/workouts/forms.dart index 0a13b1cef..3de5b3a66 100644 --- a/lib/widgets/workouts/forms.dart +++ b/lib/widgets/workouts/forms.dart @@ -104,15 +104,19 @@ class WorkoutForm extends StatelessWidget { // Save to DB if (_plan.id != null) { await Provider.of(context, listen: false).editWorkout(_plan); - Navigator.of(context).pop(); + if (context.mounted) { + Navigator.of(context).pop(); + } } else { final WorkoutPlan newPlan = await Provider.of(context, listen: false) .addWorkout(_plan); - Navigator.of(context).pushReplacementNamed( - WorkoutPlanScreen.routeName, - arguments: newPlan, - ); + if (context.mounted) { + Navigator.of(context).pushReplacementNamed( + WorkoutPlanScreen.routeName, + arguments: newPlan, + ); + } } }, ), @@ -541,7 +545,9 @@ class _SetFormWidgetState extends State { widget._day.sets.add(widget._set); // Close the bottom sheet - Navigator.of(context).pop(); + if (context.mounted) { + Navigator.of(context).pop(); + } }, ), ], diff --git a/lib/widgets/workouts/gym_mode.dart b/lib/widgets/workouts/gym_mode.dart index b9a787217..c6731a461 100644 --- a/lib/widgets/workouts/gym_mode.dart +++ b/lib/widgets/workouts/gym_mode.dart @@ -496,10 +496,14 @@ class _LogPageState extends State { ); _isSaving = false; } on WgerHttpException catch (error) { - showHttpExceptionErrorDialog(error, context); + if (mounted) { + showHttpExceptionErrorDialog(error, context); + } _isSaving = false; } catch (error) { - showErrorDialog(error, context); + if (mounted) { + showErrorDialog(error, context); + } _isSaving = false; } }, @@ -902,11 +906,17 @@ class _SessionPageState extends State { try { await Provider.of(context, listen: false) .addSession(_session); - Navigator.of(context).pop(); + if (mounted) { + Navigator.of(context).pop(); + } } on WgerHttpException catch (error) { - showHttpExceptionErrorDialog(error, context); + if (mounted) { + showHttpExceptionErrorDialog(error, context); + } } catch (error) { - showErrorDialog(error, context); + if (mounted) { + showErrorDialog(error, context); + } } }, ), From c9e9aa0de450a70f7bf365fa8271078647dce364 Mon Sep 17 00:00:00 2001 From: Miroslav Mazel Date: Mon, 6 Nov 2023 00:30:34 +0100 Subject: [PATCH 12/19] Sharper iOS icons --- .../Icon-App-1024x1024@1x.png | Bin 15111 -> 2093 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 410 -> 225 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 725 -> 319 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 793 -> 404 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 574 -> 295 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 779 -> 387 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 842 -> 453 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 725 -> 319 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 841 -> 446 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 862 -> 468 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 862 -> 468 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 919 -> 556 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 638 -> 459 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 722 -> 521 bytes .../Icon-App-83.5x83.5@2x.png | Bin 918 -> 550 bytes 15 files changed, 0 insertions(+), 0 deletions(-) diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png index 88c5fc5cf9e0880d8002d506a7bfc4577391a1e5..da9a609435b66640a6d30a55912fc11e0b54a881 100644 GIT binary patch literal 2093 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7&w@Ll*i%Q8-WyOfk$L90|U1(2s1Lwnj--e zWGoJHcVbv~PUa;@eY&HsBLl<6e(pbstU$g^fKQ04mQSsDc&kNtt7}rPYjSUV<=mW> zrMWFjtNPbg^{<<_t=hp8zfAZ4(QAsKt|34ykZB?VASXtz1&mRWrMmx@ZmQkM4rvFU$ z;e)Fnzl;JBL*Rr@D$D%E6+WfU?iHxtTx#{P(B#g3Ddis<#2U`1>{e7~{1Nljje&`Q zgF%6zfq^jNK&;4S%?#_`Jf%NA2yAS8a!YRY%cFNDTve-C{XD;|R;*!9$x6RJb}k_+ zKL7Mt*Zc3&Q_1+-A4NVsI=A;pTby#-?wec(M5b>pbz7EnEp7J4-yb*_ z>X?B!M1a8omqud9kmYMZy#c-@wVsTccI*%SV5I1>Fg zVQcZ<^9Fl#`nK~nxHEi^CNjo>QS$wwgkzPu@{E*Z7N&qEb08z1MUD~KO_;&PXuw2a zNX}Sh*!0Cp*@0o&YEvc~Cc}9-Jw1(67*!8fj@AzkS zMb4he;Irv&RC>y)&m5$A%xB{9bqCge_TR`aclYg`q;)m(>$}A7la?78G-n0fJMpKt zb#?y1!-l`P!o@DWPGoFj7zHGUfWx+b4Eq^v_gphPr4G{U>FVdQ&MBb@09!X%Q~&?~ literal 15111 zcmeHud011|y7vZ$szvc!Js=f9(JEkMQXwEDp2MM~%5XGBjDi#)P?RYQ0-Axg_mF!C zf&+6RX(@(7K&(VT1__p8nA3_tAws|ih>h=Sxf6ZuVY# z?X}kXzQ1Al_rH34ymrk8YY+rk`-$scjv~l%I9!gbS_ywJw(R~A{aetV-2a3iw^QF& z`K^GzZ}oRQ>W&~6b|Of^zaz*3oJx3(ATd@5^5RnjamYdt{RmFw5l8sN$}@*Q{tKc( z|NH8G!8Q1;(IiJiSgWUA@-m*~~QXF&gw8`xC z@7zRRB6+Rsj3=nf_LfpFYiU(@DjiN z)^9lbdo})sKK}Y6-_XZ@8mxC{{GaZ9>vMjm#(({--*EO_dj5uH{%N(mbpU>O!SB`h zI}G&em-uDJ-ZVn*(D<90`SnNsPL03YKszJwd0Srp*#!yc^=~g4OEqBY(zU;>@!wW7 z5|�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 E0K#fXApigX delta 396 zcmV;70dxN00h$Al7=H)`0001ui5(3900Ci1L_t(|0b|kfsr}DDMZiK$!$u9Hk%4Ti z%nYJJybQ5^mJAP{y=7Rw^%RPHgqJCUg0u+3;!P(Q-n{$F@bmW{+y=VaXft@(>N323 z|C!lVndinMfoNuA81a|d{ zHy=?AWMX7wU}a`T(agle$iU9Vf+og<>LQ>XkU9((zW?-%Veg6SD2g9GeakR?#Q_wt zf;blx{*iOH8GoL=`haO52t0lHp25dnkKq9@(BFOh%772pnW!;nt4J~IJ9z`u#mJmZ z`!6!=0lHFNQkWsk!-V1C^LH2qfqbGWFV3)L=NX1Y8;>!3`SugHfgteh`!9y;_ntE} qPTP#tWeYbP!|U=PnDvIgfdK9UZU`prm~{XE002ovP6b4+LSTZ_54&*y diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png index 5307f04ced18257864539f047cdd65790ffc4805..0c5443fefff109da5c3c61a43ac00f480f573b04 100644 GIT binary patch delta 276 zcmV+v0qg$N1-}B2Bp(TINLh0L01FcU01FcV0GgZ_00001b5ch_0Itp)>5(B5e?L%6 zR7EOGeK=QzL}QIbVvR*(jbC}4hnlvOrM{G=zM`_YuFqtU|TJMMlxMq%=HLzjc`ITwGo;cAr8+>Bo;#vdEKAy aig^Rf+6stdKjh5-0000-V3(erGo=aY^bm3~CI_nX>y>{ncl$KHPou>idsh^Vc2O zb@b}J$FCngdwcQ5W3#Z9(1Pi|fB$*=;mePozpDDzdZhOIW=@K)nEUJZpMtjK7j8US zv-8Zc^LI{Nx@Q~Hv24r91E+3GShRclq03tiT=Ytx5R^Cd|NsAo&)%B0Y+r86vi4b9 zH|{;}l+eBB*tPT5AFbYT`ozV%^*}dWz5Vpd*B@WL{V)!03M-tk_r&$b&)?m+_x$Gl z7ng26wuorWXjoh~X~Unte;+-6`|91Nuit(&PTdqyG}AbwIj?n@duqRFXtVp*Yns5Y zVodUOcQIMH@#SA2hrPtp*OmPVH;W)E=Yl^Mt^kG3db&7?8e?Z@9-)slC;Sf|F&q%XnbVCLn%Sf+SL4j5lvn@z(B%HFWSahw@5QbhcjvJ;3hes7|DOLhhQt50{I5Q+Yyx^s zwZt`|BqgyV)hf9t6-Y4{85kMp8XD>vn1mRbTN#*I8JKGu7+4t?ti09S57l4>(UF^< Zl9^VCTgQ!dYh$1e22WQ%mvv4FO#lT?QtSW# diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png index 15a4317beab690a9bcf6f4fda923724e6fefa914..4f2bc86564cc12cb74f7edbee18793363a911b0a 100644 GIT binary patch delta 362 zcmV-w0hRul29yJkBp(TINLh0L01FcU01FcV0GgZ_00001b5ch_0Itp)>5(B5e^gLR zR7EOGeK=QzL}QIbVvR*(jbC}4UwNKvgr#kRrEP?zdXKGokFJ!ZzOKB_ue{H^$JV^Z z*S*Kqy~o$d(%#9^-^$Y7%F^HD>F?#~@A35a^7Qxr|NjgR05bpp0Le*2K~zY`?bXW; zf-n$;;c;-}HY(~k1mew`Em08x{|EfD}fA}rjj!4=B_-jl4s zLdB2Zx|`zh6g5oot)5}U6vLus7@ENEmi;|EdK414_8C4#&Gy{Ye}BSAKpg^N&cF0x!mSG0K`}#5OZjkUjP6A07*qo IM6N<$f?hJOF8}}l delta 769 zcmbQjJd-V3MuKHDJb&Do0+T)ovAs}bU z)Mfkjp1A(^@4q8wZ)Z0z?VZ1K*_M+hFWuX;|H6@Tw}1Tn_3YJ$fB*ii+I~7XZ(4Ne z?E1+YU%&hG?fcL7AHNxU3*yBxAx5mLSxrldJ6ASL*%)3p zBfWl+V?uXD-`ZObUd&v1uyw|k`mf)91m;eC{qFOgW7kexxcmI|hb;##zIgL-^ZpAC z@!hF)3v*hQzIp$-XWov!1-q7PIzDUF!R?1GpT2y5<@Qr6ww16 zc(^0MhKcKuQ}cqPjXQ$E4?GGpV3Jz>=+nRaq{CNdUXrpt%=-Arew&&3le*6+x-7r^ zQf{ILXzS_}{%>cS>kk*yJh6{%{QRV1Q^8rggFmjgEj6^; zeBS*7E5ory0XBn>8#`RCCO@iTzS`6I*!K6S%*2|v3-S#1mA?CTTK(h4y|2YYcDyY+ z^pW}bo=-R4x<0Ji&f-63`?38zDd(N`Fno?{{&BXty;0zi^TuOq9*Q#Rtp1l+U3V=d zzT%6m)uopuRl5woGP|9y59`vZ-USRV)e_f;l9a@fRIB8oR3OD*WME{VYiOuzU=m_z vZe?I9+u*R>u&ab@Aue{H^$Jf2b*2>b}%74?}*WKpi>F){cH~$m(jSXpDqqJL6nj}f-hpo&S+~dCkGZfwG d>(2FL2P&)wy%2~w#C!k%002ovPDHLkV1jROdldix delta 560 zcmV-00?+-Y0=@*08Gi-<0035#XAb}X0tHD#K~#7FW6|=d{m(#Wz(Q{eM=c$-bktJn zTWV#f%#aXZ4Q6-D+0Jn9@oNkBJBGDD%dgyi%5dZE zbB3S4|KPWji-V1!B|m`S^35j)ALgHo6QI*1~2V@>W zOV8hU3{EuIfRlwLgR!;(hBzk&E5jqSc!PlpK=aT6hNUxB9AIe3@xyAsgoV4Y8X^Ns z=?MW=SoKT?nn%!55Kxd7VeoMTCL#)|cV|mY21OYWtbcMCmVW>Fn_>F$0}RsQ0t^ve zW(?+fiVRD(oFLjVKVUZb|NlS3-s9I94xhQr@ao-X!j^&xgS{uNGcYnTFs$5u8k`VP zLTnirfc*U@Z(z0PH!u$yXv#6@smm}d-F$*!LA<9x(f>BFHEgiL#Bme-}$F^UDUe}TU00005(B5e^F3O zR7EOGeK%KyI9G*4V~s^(jYVUPY=ot4gr$0qt$L5HhnlvOrM{uC#-gysue;8#ywAMH z*S*Kq$F@FM_ww}j|NsA>eGnr6006s5L_t(Y$L-X?4#FS| zfZ@7s+JSC5Mhkua2lZxQu^da+sOl)CP=l~+HVVNFSz~HBQu-# r4VcGR3nEKYB$US5j$vA>)qb`+snZ>jt<-C900000NkvXXu0mjfdDW$f delta 755 zcmZo>?q-{yQqPj^=LqiJ#!!Mvv!wUw6QUeBt zR|yOZRx=nF#0%!^3bX-A{0Z<0an&Bf z^3pwvh_;xr+4I&N`S9uM+YetZ-gxYjG0`Qd_x8h=`EAQvXKuBL?r592bjO3i|$TTV1h+tfa5n`=_<@~tONUAn*H@a5vpm2=h{TDARj$Lwtp zMKgCFyIRq=cES3iOEw*U|LJS}vsWL!eEaeG-REm}o@F;Lef9R!5**Bc(Z!-Cw z-nX7tKy0)0kN^K$Uu#%!3d&ggu%ifwx?k-pUGixzAd_2j( zaK-D!f@@V7JMNvhH1XGq8P}?8+I=;astK|LUrti6NBtJtl^h33*Y% zNt_JR=9Z{N=`PC-)NVhfq_-^h;?Lw=`|1zAOl#hH^yRm6=DWE4j19Z?3hk;tV711j z-)hZcuPv7jsULayQu6hj%iY)PE3e{McDThI|#5JNMC9x#cD!C{XNHG{07#Zjq8tNLDgczDz8JJobm}?stSQ!|syw%(f g3|@qW-29Zxv`X9>ZnRq)12r&sy85}Sb4q9e0BP}VeE5(B5e_BvX zR7EOGeMDo8MPiLbV~tX7l~Zn&UwNHugr#kRrFxI8dXKJ$nzodsy_BWCl%~FwroN)E z#;&~2ue;8#ywAMH*S*Kq$*$#p*5JlM>Er_C`6tw^Uf17rTK0uoSq6yyfNNx|bnGO?0000000DnnV8d7H> zv59Pymk9$o6J!&4sPdv{1ZRwKuh%4QIv?P*-=U&suh%3DUSrWJ#Dj>A!QM)yJE2#W zj;MWkr_VRktIoH3Z*kbWi{p5bSFU3ouhLBNz8=847H>+t?=8qh(f3|yapSlZJ+F_R zclc%udh3&mc9wV4`L5V&y7mzDEbj;EA)|U`{c=jsAK(q}<}?1sTaR~{`QgwgL?^4h z3ij@0`Y!a!;>+`y!FKJ?d6Mh=59i-S=XC%8004m1@B~>&O*ANRm@NPR002ovPDHLk FV1fw|&9ndj delta 819 zcmX@ge2Q&?N{}@GjaW_ zRR`}pdUfyd>)e)QKADqt9KQ1O<@@)azP^0>>DrxV8}^T!eCtW|g!N6+HZR|L^3R{Y@s)GEGbR>xtZ10JY2)7Wt9P7v_4boRMC<9x z_mgWD96WvV`Rfli?mfTt;6>-0?bQ?3ZP;`E`rT*KSM1+=;`-q;x00&o&slS*ym!sF zAHRP5{Pp|KUm)@8*PqopPS;P~SYOt&`plIFcOSiSPw9K~{Oy--KipFK0&=GG&fnQG zeapXp|4O@8Sw*%vC-(SePI~t0{nu|le*Xr#>TmbF9Zm_|dj9nZRr9>kC;DVe)Su@k z4-78GByV>Y)*tyVj{`aEC7!;n>`%B^1X(#3{JC%iC~fcQ;usQf`0e%UeuoX}MH(JD zSf=iJvmxkIk!Iq12G-4oj^$MRH&^tlX%$XV4qtoWr+!uO9RG`ftCsaOCrY#dQRF(^ zmA0uN6E+``zrp9Bwd{=5(>1G2@4TD0BCf&C$xAZNUNMD%?dUff~LLOz;r`46FKb<@6(cfpgF4jGNBKo=V9n;cv6QdVS z3HyB4bz{76_?zu*dBS&9_b=OZdf%RR^WKWcyXzvE0^?v^*#ux#3UvnSu*{&6bdtdoe# z+;KgzqMmvCN7HiO%KD5o)&B*)as)j6qj|XY*_{0cR$KhICiQ;u`=?9#r`%jVr}p7~ z7M{ZfKy5(B5e?L%6 zR7EOGeK=QzL}QIbVvR*(jbC}4hnlvOrM{G=zM`_YuFqtU|TJMMlxMq%=HLzjc`ITwGo;cAr8+>Bo;#vdEKAy aig^Rf+6stdKjh5-0000-V3(erGo=aY^bm3~CI_nX>y>{ncl$KHPou>idsh^Vc2O zb@b}J$FCngdwcQ5W3#Z9(1Pi|fB$*=;mePozpDDzdZhOIW=@K)nEUJZpMtjK7j8US zv-8Zc^LI{Nx@Q~Hv24r91E+3GShRclq03tiT=Ytx5R^Cd|NsAo&)%B0Y+r86vi4b9 zH|{;}l+eBB*tPT5AFbYT`ozV%^*}dWz5Vpd*B@WL{V)!03M-tk_r&$b&)?m+_x$Gl z7ng26wuorWXjoh~X~Unte;+-6`|91Nuit(&PTdqyG}AbwIj?n@duqRFXtVp*Yns5Y zVodUOcQIMH@#SA2hrPtp*OmPVH;W)E$MxS2oPa`SJzX3_EKa|@>@IxJL89Sd{nje| z&KEA~9YTBA0vAXB`|n?PQfa2`%)&=|YmLu8z0GuBf4mR7;+4k-85B)~W}eL1c*ADrZ9e?&ID}upQ=!wHiUc)CX>+^UY319SU3NBpMR_qz2 z6CSlA&1}+^t8wO2%B%lZ?!wJ}f!gQu&X%Q~loCIF&fQl9_- diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png index d0ca7ab09f6852a468578fbd990d269e816e85a6..81ed89bc1ccc784aef9261ef2bb51d20cf5f5888 100644 GIT binary patch delta 404 zcmV;F0c-xr2EGH3Bp(TINLh0L01FcU01FcV0GgZ_00001b5ch_0Itp)>5(B5e_BvX zR7EOGeK%KyI9G*4V~s^(jYVUPQf`%Bd7W&8rEG+zZG)wHkF9!-u7{eohnu#PrM{uC z#-gysuDs8$yUwq?&%DRhyvNtQ$JW=~=H%(`<>~M7^!M`g_y7O@>#bx|0002(Nkl(GG$z3`LPCDyRcNp^pCle{Z^V#u&6Zkch^f2VQ!2k^)N`MS>s*f*^b~vx+FV zdg1GFuyBq9aCPwYMTl#Ca$v2L0$vEVd_;<-yeqaTwZj$wu%ctU&^}7E!4|jf)Z^w$ z-^j+b93-?YXZ}pZ2n($beTB8wIV+?@PvJE#!XFSOy6FmA&0xC1MkjZ|YRq5GTOqP^ zg>)TW3)>|F3>1dH!^wnP%VwbPy^k{bZzFg4UxcF%sgcL%WzZY9IRpu9&^#OT#0nf? ys|ZEYPcKV;o!b*RyUzJ~_&O&Df*=UOB%A?ixI*~X`YE~q00000Dy!50Qvv`0D$NK z0Cg|`0P0`>06Lfe02gqax=}m;009wDOjJcGOnpOPjDnW4cZ{rHdY(*Zk!OFR|NsBv z=kBh%&3uusI$4Hth^d;Y!TS6Bx5CrD$k))<;^^%0sJ6;kbbp%h^Y%bqigk;tyvEj! zpt?zBka&%(mZ!h#?(?y|&&SZ+&(`7C-siW&(_MF*fR(b!(%zJ%zP7>A;N|S+>+tXK z_3iNVqOrz=m$Y|{toHc&`uhC+{{H*?{rvp>tGLU1kgl-2&*SLsElz%~yUzIe`^?nf zJ6eZVahRK{!hh-P@xRH}#m?JCV~*P3=&QKQ)7s?D*5OodmXf2qs<_ML>F<}PzqP>8 zzscCk)8EC;+-`-Yr?ttz%GiOGve(__$$In00Cl4 zM??n}VTkJh000McNliru851qj#s;6eZZ0X0cPL4Q z?FAjUXn)&zSYrFjEx;A=!3B0h4M=aeDz=L)!HnaqnS<+&v!MYu*$s_Bdc!RQI|^>Q zJ2JTID(%VOzI*Tkcu0R#5*V2T0vwrx$0tgsu|Sg>wgsM@E9GK=@osqGUCLm|Q@WDD zYp;y|l#YTG-%pu?H@<(X0e|@sa95?>!$T0%bbnwy2p*xq_M3nC80D3pXwTq=VKy2} zhT#jmvaPrOc@^QkfAFg6##H##siIxsgYFfckWFxZDXGXMYp07*qoM6N<$g0^0nuK)l5 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png index 7b53d9d3ee5d7454330b9e6dc6ee001fa15af4a6..af6c4429983a6b7123b4910ea83c4adf3ed9d9de 100644 GIT binary patch delta 427 zcmV;c0aX6p2Gj$PBp(TINLh0L01FcU01FcV0GgZ_00001b5ch_0Itp)>5(B5e@;+L zR7EOGeK=QzL}QIbVvR*(jbC}4dXKGokFJNBwv?s4l%>9vrM{J>zM-(jqOiuVyw1GG z*2&V}%F^H0-RIcd=j7?{<>~M7^!M`g_y7O@4&xy=0003GNklVDcU z=HCgg>)}gQ=stWgm)FCW+IDBZYlMBpTGWi{Nmlg(>L8y z`z!m_W;QNPs-8b-@t&W*eotS%fB(rFmv23}^XS#4eHZ4gJ-p-al_xLX-+B1*_n*I4 zZa+PB>0Zn9E#XBoj-9`A;M9%jEB3$t^tH5m^|WRC?>>69=h(HKN3N81uj-z=qj&z! zcOSog|MBbF_n#j>fBW3bI$g>)@5~*H~jhYH@RlP-s9I!U%r3+ z?z2t%FPyk|_u`GmkDkAM`S#KmV#jMBhrPtp*OmPVH;W)E$MxS2oPg3{o-U3d8Ta1a2=`}l6lqJW zU*pc|Dp-AZ-Q!yudLsfhCIN$Pc|}?Kn|l?TbhIZ;e7{psCH-0Id}&3QN6!sT zM@yf3-!W%bTeek9SbO<*m*4+C7hE;2S@3nCgkHwQi4u0#ezCmIY7zYR`$OhL(WJKX z75&B0_5Ti;sMS1_P+jCbtxsxSQFyHI-5I%gg~|f2*1g%OURA*VGdbf&=kj@-ac6dY z(tfuyhjahl-*!({o=QCB#5JNMC9x#cD!C{XNHG{0 z7#Zjq8tNLDgczDz8JJobm}?stSQ!|sbhy>rkD?U?bgO1TRmO5(B5e@;+L zR7EOGeK=QzL}QIbVvR*(jbC}4dXKGokFJNBwv?s4l%>9vrM{J>zM-(jqOiuVyw1GG z*2&V}%F^H0-RIcd=j7?{<>~M7^!M`g_y7O@4&xy=0003GNklVDcU z=HCgg>)}gQ=stWgm)FCW+IDBZYlMBpTGWi{Nmlg(>L8y z`z!m_W;QNPs-8b-@t&W*eotS%fB(rFmv23}^XS#4eHZ4gJ-p-al_xLX-+B1*_n*I4 zZa+PB>0Zn9E#XBoj-9`A;M9%jEB3$t^tH5m^|WRC?>>69=h(HKN3N81uj-z=qj&z! zcOSog|MBbF_n#j>fBW3bI$g>)@5~*H~jhYH@RlP-s9I!U%r3+ z?z2t%FPyk|_u`GmkDkAM`S#KmV#jMBhrPtp*OmPVH;W)EySvNZ%RuQcPZ!6KjC*fyg!?l&inJxx zuW@H}6|6qI?(wY+y%7N$lYl|DyrQiA&Ap0EI@*&azTc^+lKw1p@<}xxB}Sl;U~qQj z(yQ0i{I{|P%kCF>rxHKi=BljE*9d99Wj1?VYBR6NOUXT0$#Zc*G_QhP99&&>F*;I>~c9rEz9Ehy82nFvy5-6tmZqzcItL zLi6ynEC_Gm9?u^{LLS=zh>)z~CuPWgGnVj*XbNRf^xHG#x zX}{Zzm0Xkxq!^40 zj0|)Q4RsAnLJZBV3{0&I%(V>+tPBiRI^1gRN70d+pOTqYiCf2wc57pht)8xaF6*2U FngE>8pq&5! diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png index 1b6c4a5fe41de0429a65a9827e39c4e7e6140e39..91145264b411dcb04cc1986fa879da83df34e6d1 100644 GIT binary patch delta 515 zcmV+e0{s1#2do5;Bp(TINLh0L01FcU01FcV0GgZ_00001b5ch_0Itp)>5(B5e`8Qg zR7EOGeK%KyI9G*4V~s^(jYVUPQf`$~Zk1noonU#LY=ot4gr$0qt$L5HhnlvBo3@mt zzOKB_ue;8#ywAMH*1X5py~ozQ$Jfcy-pSJ6%F^D-(%s?oIE0bX6yw~RO`>ti&%tJ6U5k1`Ko7uPd<_g7q>8)M#Yc-Q^ zUeC8zxa}x9-Tk+u)t_hWqVEo`i~h~g)9qb0`@HK`jf9Cx??k9TE z&9h1LDWlhmQhv(lqPpl~Wb~fdexuv0ixw?fv}nskel)t@r-x|KqW^C6ARl=?5&vIwlBQ|VY_>?F9I>8s|Ni#P zMYL$qqD6}qEn4&`q6c|&S;EO0(R+kP+@6+SdOG4(TW@p3t zxti(eC~}RH>Y@)g3x4Y{j+?m*W<~%2000000000G`T$~GbxFF3zi!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$Ysfq{`Jz$e62%cs^OZ9;tI zyujS4W??OQ{`E^YpZNd(|M3fVW6S4QMYV6*e__|rtB;<&U9$Oje%tb^x1X-wapu;8 z7yD1%$ZA^h`Rk9$zO@HW-)x?~<;2CiopZKZMz%$l&HncN=h>?dU%mZw@y6pNn@ld#-K7INA$IsvG zv$mbN@?hr5gC{TEGYD)*teW@a<@;Hy4(7EkYni@f)sEBmp1fYT;b=th%!s0yi#8sM zE}ebs{GC64{wCKf*n9li{U>i$Za-Djv7)SJ_0e;;FI<1L<-o<4Z$4hR_2kX_&ka*H z`eaOWN$RzY>D2M9Q}?+X0}Lj{ByV>YcCo~c*FX+?iKnkC`x9;!K~|3IzaKaOr6+m1 zIEGZ*dV4F=|B!)9!^ckcdlicx?a5EASY#yn{%X{?=v(XWmTYjA_9++gEh)MfdpFef(VlxfSHvxL z#q;uYd|j~pWq{1Z!?(Ik7RjAs>yrz8ZJ4{iaMAzhlDtF7-E-BKt~{}5`PH^0%g3^& z(ppu1_1mxCk(=nU`gU@hb!ubAqU7GVm`T%;`{DwRuW=LJ8&>@EsKnpWr)!0MO)k2C zh=q$k_dOOlvncoYg|^5q%PQVo^Ix=mzkTu5e!gXOTedixTs-OeUX1tc--Rz$thZSN zwB!GQfO)r@GZr;#?p#-$Ay)fD%F3);ujBc&pF$3BL%r1}$rgWEX{C1heTR$iT1)Hi zF&%I9maaar$T-V+ZnRq)gRJ&+^>bP0 Hl+XkK7Q?fX diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png index 20c884a5b93f4febbd75bf24c2a9556895ac376e..a538920e7fd52fe2f9fd269043681a24640f898a 100644 GIT binary patch delta 417 zcmV;S0bc(81j_@EBp(TINLh0L01FcU01FcV0GgZ_00001b5ch_0Itp)>5(B5e`Zij zR7EOGeK%KyI9G*4V~s^(jYVUPQf`$~Zk1nooos}qY=ow5gQabRrFxI8dXKJ$nzods zy_BWCm8HIwroN%D#-gysuDs8$yw0z@&%DRhyvNtQ$Jfcy-^$Y8*WKsj>F?#~@Bjb* zPsn!O0002)Nkl-4=o%e++>A4=XY)G7Zwb|4XLg6@jg^PN()=aI^89q2lIw z1VIo4@prIxU}KN2b##Rhb!5;=d4-)lgTqzI7P3Awm~=%jkat$MjCo$J^J16BKX=qn zael~RDQEF;DP^!`60b<@rngPe)lIkc%L=Xf)5I@EZXQxFkgb89(00000 LNkvXXu0mjf@z}^L delta 613 zcmX@j{EuaVNUw+&2 zI}cxGH!WGS^URHV&+k2c{r$(UpTB;8`|-;)xv#2!ovvSjJc6VVH zOYC?Jl|4=M08d|YFmcW=?6%ayy& zKK}pT%<&$FP>Icq8}Bz}?rRf@;&2pTaTHKdZ++A~Nlt%t#Z%=-(YPyLDq@dHubY?V zeW8tSY3yX31tu-?&b+if!M5thgb5Qp&D2sB87(X0pUwGf!-Ja4>1!?e6Y6z0o9Cx) z)Y>`KcJnEh^JQA)`4eR&taqJqI_4L4GxFP+K(#8dzkA47<)W zs4?%@btmIsx1XJ(Nr9tDqJpVy zlTBvr39DeBM^#H)BT7;dOH!?pi&Eo&G=q_Wk%6wEp{{{Rh@rWafvJ^&xwe6Um4U&^ hTh09_I&$+_m`7&HI? diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png index 5fa92ae09837baeb1c27afc90b1ef5bfe559c6dd..9579c5e3e48a775990f4a0da11c53bc2fa14aaab 100644 GIT binary patch delta 480 zcmV<60U!R-1&IWZBp(TINLh0L01FcU01FcV0GgZ_00001b5ch_0Itp)>5(B5e^gLR zR7EOGeK=QzL}QIbVvR*(jbC}4UwNKvgr#kRrEP?zdXKGokFJ!ZzOKB_ue{H^$JV^Z z*S*Kqy~o$d(%#9^-^$Y7%F^HD>F?#~@A35a^7Qxr|NjgR05bpp0X|7YK~#9!?b^|9 zf-o3BVVrh|(vIoGLEry97pT@=e;Dgu3){%~uDGypQW`?2MF9W+000000001BUhi$- zARBAKvD?gHI~zF5#-78m`(=l%>#GlIdv|n72|Ky5owc9-l$#gA)SY>%Q^M*ybElRQ zwtBlNhn`WNE39|t8&;dYOwv4AzxeZnT^7GhnLEN#!qj;4cTI z)`Ss87-57F_Rqp9W13i4Z$!FS*wL6O8dkeEk%wV&kHc<1SZvsrNH<$p?!`|SVT8RJ z*0&-&V1Fm9(z=b_N-Yw7@;6#n&n#Bn#|R^gFv18U?Ag!h<&j4UFo@cVVc zmd*F5%N5qS^Z6~C!K#pAHiuX0&u-S=@V^VGGW-&!Wn-IgtSSHi0000000000%!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFjxT%5HFasE6@fgF+ad3#8u0uwybB(`aS1* z=I!)Mn_v>syma%4|Ns9Vzi>CUe2!IAdsfquT}Q7zdiHk7=HvNo%X{bVyn6fToA;mh zpS-bY|Ao#u+bjFlh84~@c>3n!7w$FCnhfB*IS&!;cnzyJ6ZTQ=v+l?RDc^G{y9 zXAszsST*m4a?2c`QyG)I-Cfwl5<6Z4IqW5#zOL*~xLE{QIj;YH-~^O5@N{tuskrs_ z*3FqYE72o zZM8jmuRMC+6;HWqU&C!nj~FMW^SU}oXpFKio*4=0X`wFT0XVr z;jJ#oy{<{UuF1VYc~gV)rp8y!jjx=S)3P+Td1+Pu+N%C_?X$N{S-Nl0hGXmYoL|5D z-1l|8k~>tVgjivR!9tqvZ(wXjI~aKOFiU90og%UCGsc>-Mu z2k)-?L@=q{U`}H$O>^)5-*824!bQt_=eF zs><@vdrLO&o>8p+Kl}LWnqb5A>-e6pPQUP%=l!n_31U2Vst(&t%Pi|E)&5myV7%*p v-G=-d>=tLwZFygJOTF4*7CcOVj63UvjTO|_+>Cbr1QPai^>bP0l+XkKBgg@R delta 895 zcmZ3+GL3zLNd-MGDhph)LT1T~i{#yUz@r!o{Pu~nHoKe}g zwsX$*=+fE8&fod-=kLb7=aXv|Qbn|iB%&k9u z{@!!!+O%c++*0~B?YnUA@#`0_KYsiE^Xbd?5ydmlTzQaKHUG)W_p??VJbCe+L105- z)x5mcWi8XUtlDw<-jml0Hym}0@2-FG=HsC=w|@Wmd-u_+Qi&~A-n{>O_4d==`8$_vKK|(0+pMM~I=*!-Nxil) zotBYpO#iDqfg#42%b&ZqC~*GntLvA! zvj2H2b7kG}fW+q;wx1K+X}K!?mSMfs%QY8%v>3hY>p9xm!ap~-C@AL5oUr9HR_-Vc z`~R}|)y|OI^p882^v_?uxy?#kY-visT<@YkMOWu;eE-{a!ns3#_c^K0ExF{WK6k&@ z&24kdUc_wmT_ahdcC_(zoV9sZKKoNETaC+_xtApS&aKTAURnSC%lo?J#y)ecC53n2 zd0$_0E%o`l#}>cY=Cb#7Iyax&V)3ElyT8@TC6oQE4&Rw+JI$}@mCe-0=YQODT%JC$ z_~{|pl9|HmYF_M_Hn}M2d9T&cwNIJ%iC<5D9=q?!J=uQ~CdlnAwL9s0{@u0iS<~vb zG9CKg^kU7^bKA?$wqIP-v+u=aCV21x8FdxEm|71VdcI#rbsCVXTH+c}l9E`GYL#4+ z3Zxi}42%qP4Gnb-OhOFJtqe@949v9+46Fsc57ph&7Q7) JF6*2UngG4W#_0e6 From fc90cd30a2a0b5cc93a2b6b39cb2a472ae60c4be Mon Sep 17 00:00:00 2001 From: Miroslav Mazel Date: Mon, 6 Nov 2023 00:31:28 +0100 Subject: [PATCH 13/19] Squircle macOS icons --- .../AppIcon.appiconset/app_icon_1024.png | Bin 65609 -> 79382 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 2699 -> 2702 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 422 -> 318 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 5232 -> 7780 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 990 -> 722 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 23101 -> 22938 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 1562 -> 1255 bytes 7 files changed, 0 insertions(+), 0 deletions(-) diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png index 1e68ec1711266a450ee285000d280189ca5ba50c..9c62d0ad8730d7503cd28087072c15f187048475 100644 GIT binary patch literal 79382 zcmeFYi9eL<8$W(OGnVX1*|+LMr|hz2ndzidgch{h>s2!^=Dwc$+TPduy6$^!*;-qO2+9fq07MQR zFh2?a4}8l5*73m?RAFZ%d=UsZ;1~pekOcQ10veL- z6>PcruSD$;wYzT*+uD2}=w^Z$PS zp9TJZVu5Mfin$uOwHwtrtzVc7-o0-JhoV?XVWF$bm8E%il}?x~$K!ea6a8ilVF_#X zor+~m)S)Hj+*0UtWz9F355*ODGZkG;omx>m@!p@^H?xx3z%q-PH;URsEq;PmEK)p1 zrdCJBJo~1WyWNOEXt8VM$mHeXL4Tu5c=1r#FZ>F7#(%n7gEaANqOWu93R+W|c(reG zrLU2#Fj9FXxNmx;Ke$}f-i5xC)Gzr||Fe4w#_6l?mi&8sH&X{EgjaRNc3LY=j838k z?3oq&l*H1!V#o{r#1N{m;JZ$J6Y6o0-e%^rkmGbgu_bbe2mTmmH>1k|M5%d(W>Z`OU2; z^^XtH|KTEA$N8=F#BkB7ivkl`@1zy%)zgDolG~~s!@qObq*{kP7)|PBqmnC29t&&ZlHHc{WB5Wl??mrk5!1nssZ?gDnp-hP zM^P{dvzqje|SNS%^8X4;Do+#dx}?dqQUeT4yQXCrA+Vcn|q6w&Id8* z-fYD+>Rbao0MDMu#VeK)9+cMZ!9&L)RCnUf*)#8Pvvc~E4>IW9tSfW*9KcBK_r^`m8m-mgx6GZD-qG_WQ-wyXx}}eMvxBL;T%qiZPv$ zVWHtT6CGYqtV_t#T+92;nW6P&>?Zk#Q|#zfy-i0YoA|GU;-xdC5pkS_hs8=sJ>svr zw>MO{g~czkZO795mq+N2hBBBGBO)RxzZqj(VuDyqq*7vi!(oi)8pZg^Ud(g~=) z%v#fTTz%wqImc-N=PY?17JijVaa*ihDxI5ncV*75ry%|+v{rVP#lFt-lyQG~&MZY70#=$oV zFB~}`bu0*f9h)x}{%bFPBr{@|E%vZ_;M-tWJ9XmpTa?0lyH9H1rjYH96D9vw~PtYuT1N-5}c@Dcd&&`A=C<2ez< zL6j_x%MyEB<#h4HsbcSE5%JDPpxk%Ml+oOii7;TBI(36x8`z2`!V`kf);>jIP(nM? zXhGX_Ie5~oY1uWPRPmvAXGH(0 z=fRhfH0i0P-^Zo2awG$DB-y10yknd1`fc7_sg6@COg3uL7t)sHv+?4d30;5Vv-G+hH&!%@-*soxuHqDCKxc@AwRPQY*RBz zUkdtK;X8fp7wI`iVU)uNQaXkpw75tlKJlZ>x)+$FTPqM?x+44cuiA~fmRYCNb-WeTSKZu&h z@pPRF-u>7u&qbMN|<*o)xGulC^iVSYf7Sy7iyX1H5Z|%irv~-!{iA?$3 zCziC-irW^O+ILpz1`7>Lsz|j3CULF7m%=$!?e+A*%c>k^aP(`>5{>Q5W4BLn3Kne9 z3xyXvn*DcQJZ0~O4&G9YZ!7M^V-u(F#O+Ea+?3o#s5^%jCReD_?EOr%_~yu6PS7IV zGcsmW#N_lf6%U=oLmijO8)m2+mms=FL*gqRXT&*;EVMXykQPF|(YqY8K22FQ+@>L5gW>kAo=1)TmL2 zb!XWrub8{pbkFG_|I4n+GsQi%owXI*VxmamBv$%q=body%Qkvf@BS!9Ql{+CW4lee z!gH!}b&R8uwQBonJf|N@oY}VD+^w4MY@Qp*CbJS{_s%VJHua!x!$D0D#qf4Y==5?j-7TD&OmE3Ar3A)v{NIc( z>n)ehyrcxRcRpIXI#M~(+xe(maemZyMmOAt<2q8ASDN>Ll67*zf4IA}{c)q|i4tcb9~&_9^yE%{b(xmL`^)ruknM;lkX^(hxPGpA{VLH-V?tRPFFM_4U`+ z#KP?KJVn`aPUJ(*jqyJ5eGPc2fKbp@Nza&-_d1Vr z9*!@wvxBzfvA?|iKru}{FZ6ut*(U`BEeZQNsy#`;b90`g%X8l>Dp{=Roo<|!OsSKc zGXbmP-st(C%s9GL|FSA|*4W04s(o>_TF%Y&Ju6b-{mKIa07A+`MxIhx(d?kcVJSEK zf|*j`=rgK;*@@~e4A#=((h2HfL*WTCZL?zaw4t;xMi6OZ)75sD0}{$^lpN8Qn|KNd zPweFz3bzTnzW(4M`9VvidN!KA&qg0T5v<8V*RT@CZqI-YtX^! zo!3M?*HqVdE!?6UZKe{fgChop#LSjhnkUN`9whd?{JROf&8?koxLhpnH-8P^UiBRa z2-c}SAl(@0oyWN*&Hr>gr&r1?WZZ&;MF-Uh@*_Pe z%=b}ML7VSZU5xn=|57ZdHEjHP)ffi${r=0Wk5!OZ;|Id+g}sL|(Xd!}S++ zImx`bo8zO)uT*}g^*>2Ds?}h{9;@BhQT0!0Rs2_JobS2K8XGvzon#-CCAM!&O73co z7H51XypvdWfzzCQes8gtm^3pHf>ugMH+AS4mGQOFp|S>R zO3YHrC3Bn~owU?v0?=DpLz}62G%zUS#{BFxC0Eb$Pif2Zs*5WF$N#j|jmq8}5UX~5 zO#BbrHIgqDp{-NilCfkurgW};ZB2(0_SRW1J};iWvm(SYi&ZsmHMG^ZMx9NoRl2RZ zxNf81sM{E{Pl$Ir!Qk-q*rtf_(*~k*2Rwx*Ux>euA;b~)CLd}`K`w{4jjn6B$$w67 z8?^sPUuLwOjXirmHJF-XX?Dq!6}}ra9cyakFrUePWj7YEwa>eKK*qX*&HcAe;s0%H{z2Hm8BfES%Ip} zYL*B-c+jy4N-FWSBQ%OjFYwggPj^zVwGi;MBU4Tt7sgD4zu%Q=J|VDC*WC$qe6V4C zi}AHVw?i#gd|0FVhwfkMEgK^pC$bKa@Vl=m=%HaWs4DNV5&*AiV?GA@UR)Zssrg|p zO9*t(me>*U!rtKF`fB5OV$`s9?OOCEUqnSf97-%3n@J0Za(=)Fwhlhr?7Dl{-{!XE z80*I?y8P(VXHc3CA^+S}_RPL0GRZexK0wWGov`i@pSSo$kqz=?`qxiIJkx=8E6)AC z0e_O&Ch8hP*OC~JvT?8ek)}SS`C+$(Qg~AWY0=bRZ3VS(BmvMB@|wQVXL-Vn^Ya)t z9QJx|@@kK>_y%4K-9Aw$_$o=|O&%XVqdi#|f$h)EEVka+BEOZy8|>XgWgAx3VU+aT zUn8GX5;7blrRf$vr5X3KToTS<+$~F4gA;CXS89?pY#Xri;m30bBUaZdx1>KJ&`&$LiFgKH*v6O{Ab>Tbp`&7k5ta0}%X7M*QhNPj%8M zYImjx?L05MbAL28(=uCbYzsR7dEGBzWD{a;9?X1>CjGfQv&Qs3+VSMG@$+?U|6orFc;WxMh*2GiwjG#cow<3>l|i~u z$5fc%=aOR07qAqV;RoAJD_wbLZ1z%SpGXvTU7z!KCcg@M{c;5k8mOyI}_H+ zKUC#=0W-F{tr4Y+&=Y2Jve=Ghl5MRV#@}y`kI)I;@vhgVV>Q*%k~nu&J>iyu-|rhR z@R(}1c5~H5Z%D~= zTWhGA^z2O6cCdYzW30~^Qyjg8mj;c-*WNp1Qu=EK#*YKNnf4oRe8pZEA>U)fouyT+>!{j|B<9+KRp?}&`|D?a@|y)- z^_oJ$-Q7P2?>_zxx!7lDu>XxLC}o`C6JOs~*@&MZEPmz$?Ln`0Qx-EhSG%bz)E4!k zIk<(c6&j6RdTF?kMsvN5y;QjLT0K3FuUVFCUck>sZssq9PDx{RO5nYV(L*WhQ<=5& zTQE0i3>k#lvwxj+E~2{%jyVi8ACAuEx72MVs5RV*>EAr%tetn+A`f+&r!TLJp2xp! zC&{7EbGd#Zb#G|r-yYK@+8-9FYs58FurRPCqj*<#yDSCyQS zQ6H9WZ_~Xk@QDh?*3YKcnBuX=_K}bOE$aJoVQ|=Cy=})`{&#}PjhIU$LmjD_-?amF zwxS}KLKY{Sf~GAlt8%7PB1)b!qbKBsSZUf{#Q+$HAD%Bfftrd&zSSuRJo8%CeY-Dm zx$L+=TACB#I6-`U_?jH2Y_6$udAUsje{y@#o9)s%Lb72=$y39Yh7)~QFk5FAV+}Y1 z-`W!+G&*8@a}8yY(uY>W^rLZDY5w)_ZP;U|m8(9U^UH?yrS9Qa)Z??9gXOoVM&D+t z^H|qacf%mMw4c_gNy2YZb_Y-Q&P7}xOCycqh7R3U6TfJ(e^pSuPdpHVe&`uNlLYKu z8nlO0$hH4#>SURM51XL~G$$yzY&&pIY30+fy@-|!Qn)2OUbMjl+ij-hOkmDkkMsds z-j1QIBB?34PHXH55q%NNX`14}j*^_05}j^6;l^(FG-E#SzxEdlC7Sc_x6>kyFa#fp z*k&W5?T4`4I&Ye?cX;<+7a*GlmmzP4eo{-b)-IHx51FI4P(My|$0$V(FF9D-$Q+C& zp~LgB29@Ii!f<2s&29-7FnKxC_eKXV=n$Baq6eao3#ZaRvW7?D`vO2)yf-QLt`0U;>Hzq0^KQhu-r*()TVmWxD>I~B?R{t*J9 z{0@0bhH=&+Yze8F$%j<+Jo9S~7xA%&9jFF-IeuY%5}V-i{^<+Y3oX}I773%>@4oOS z?dQ94sy*4G(Ep|YqzD;Pbk_1&+skPe`gbk-q^2>8kK%v!kpjkHh+sV*ATYC+qS2o= zsg@GT9nXyZOwYBe#b`c`hb7!!Z%Vf(K+MX>HCuJtv}jNu{-E2^&W7DngL{?#P^7MW z9L@X0vbQ^gASDo4eON!XTC{izJ`06DxAEqg9?#k-vkG&3m3Hc(6zGIgaB> z2DO)L-*uAeF5*|_(T^`-q5;OWqhwt|e8&Y$c-^Z9z;SB#{Ug__zPgiFfq8*~3c0_n zUc?{o{fzERku|`>^Khb=Nx&BQ&a6E8imQzYl+e|R(YR#XT5$VTVgjQbT&>f)bc~R_ z-d3!^MC^|Pc@gLZ)nIv1vv^M*N@qqsvFYv(Fl zP3yk6)b19i->!vx1a&@`{x>}+<6U}GX)%$H)_g7P?c$%p*cAzvZq~#ySAY8g9+%KzgQ$l> zTK5BJKN_vDOczX6+`*Y}?rmXA4CD1A+CGN<$##>SNzCHx*%>R_*CK>2Rxj-5!i~FJ z5b|jKn_ZigMKD>>Bo#8+Y`>Qh5AYqP(w_I-;)XUC+C{9T;c(6%xf;(tKFaem~v( zSVJRrwW&WpqrJc8+ejsshAq*rBT7(2u({#DgG9Xdv}xGeLZX!fAzQ#!mFJm&mVwG0 zh%Cibpi6t&KScMJKg!U2ppANbJKx*Yt=4va0bL!>`IiIL5AaL|T)2AY*_3vBDM0>q zq2BzrB--wMJ9Ch-E6&FVF~3sjtYA639~j#101yA=1T83?wF#_>m7}P_Er8yaD&$6< zIsv4SCy79i<1e%CDgB3Ac=9HxWw+bI8}9sjaU6YfTkmrm-eNy;DQE#5en6e9;bMVt zxx&B$YOfWhEtUQ%MXd7zrUjTTm`lRw2ba*knwv5GlIlycnF6*3cw_QoCa32!9wPB2 z4Nc)fw7aJ(VT=}+{R1$#*qFJ1M|;&@O|T@YU#r)GdB z=2bA{{1)L#@{jtR=xRfZVD_6xb`bz9d@#;*}OL=2uVON@q$fM<@Cc8az(&<&0W$ zsv0lNLoLDNSBQA4aowWLqHQ%-FlAT>G$hhTkT$*dSHPBQIo+M~1M?&QhFi!mr3^Ag z4p|?>zb{ZjT${KkHS1eITzmkk8eK5MGsedcV=njj!+EhCaN(B}d|bAp5#1d(r&Gn5 z|A~5?LVq~a)VK|BV`DZo1r%;bKSvPu-A!)f^?FcddA+Yl&-~JtMqEpGI*+ufR7Rs3 zu8KK%eRg2@FK~An7W@IrFY=4_*;CY`sNqp8c5WY;dc|N97SlgJLKS0w(Ro_7DyB1= zm&WN~!T1Ms1=!n<4Oe$Fk2`xLJOKHO*INnE8-$ZQ2!#ak7WMXv%&1vM$B?I%| z*&1pZV_6k<+<*TpzUO&@=-D>6lDmO>oq8Ypa5DxA{#(v1K`&T{&m?&YG_EsrQMsfr zc^E63_9Te+{eTda$?@z)J^U7^yQcj=xF+UNIeG?X;d2L4U-5*ny_frf>8?f!?q1N? z`bOKQlxn?E7Q6i&wIekvAD$t@+T{-^%P(r^o3@-N%WHG1*& z>TY9U?2&-D_u@r|;O&u!u0*;uzdL+-a`)X8B~^~z6v+m!I($3jVEo#bMzka$@%4Mw ziQX9Q?t5x8N2#nsud1E(rjKg58<(W~g;;vew25k|jiT#YQf(32V|yk_sND;cTX=XA z+8Y4JNxGeV*zd(Qud3f|g0Xx53bwb9;NE^5^yHuGTRcLLZc(&GGU9+`BEge#JZ2tT_c{C1`5gA8N$A<8iBTSZC+g^Sd_?V_DD zYQUz6F}!sH&V5{kK2mvQI(bx401|~U_8H7xKr0#K_vbl+$QI1pxqMYAN@I#@j}%m< zk1bLy*OUzKBd0f}pij5}L3@-0p^cMbB%|ChnR{W`%el!$g)Becz5{FE`DF$6gBD3I zdiGmf*)nqeCuxo2{maddqiKfUv?*~ z2>0GZ%QnHjnOT|3h0K%M($Y$sscHiC_wdQJ1UU=1Z`aj%w?GeGxVFPsOu1t^KPsUx zOnxL&;LavcAt25lsi$nRELL>XJSCXv<{4@&HqKxk{pHpxUN%4t>~%AY(e`K);gUNC zG%ajex3daJcZbmI+d~T!7>&um5qU#xB1->F*x-9|2323n%f!R!cy9@{7X3wE-D*P( z**nGstT!@Y>?dDHOt0gFT@nK!ujV{*-JFpqNkZCHuuawH+Ii!B1y{51v61#b^eJ-Z zl=AmAHzp_R8=jR{!4&H?=lZ?z0&k27bhdadsP*1Sw&q(Wk={gvII(BDa?5^L6)P`g ziLou;PLk?c@h5+CTq8IOlq*E8?)nLkf{Z0}m|(96FYX~u`)04dBK#sEGQeE!IFo(? zT&lpModlZimI#~~LxTin?3vsU_0ch?vB#>rIj=Ru1{@R#=OoE5dAd#kEhMJnJt19a zI_W45scaOdy%BHz3!ip8@Sn0jT*8M*v4!EU=7!QWJ6QP)H$B-mFg?V{FqdVQ**2TO{qSu--?cY7Q;Wrwg`%Qv-M>I;Ffd25e1hXgs&CE z=vRRk;l@jliZ7xcLYPVhHzwEIex1zx9UhDVf=S5O-h{I|$rS!(VXW%xp|0x<;yLZ0 z8*aH^84U@#RNJ*c2{%%|{= zY!f+E5Mrn>$j~!hRXQ|?erMV6k$pJtSR}K@&#o?&5ko2Y z9ZmL_B+JwuF}Dlo!pUM~pvyGa@>C8tR85BP9Lv}5Ma!za`ej`-VEp(U~ z5Xrr*Q*_5WkKO9E?CXtZz66DW%FAMoyv_WC?uhkMb7QC_Cr=%$=~ln)T#4!r12rUshAAQl6k6 zemF5nmtNw5OlryIbsR2;7NrRDJbq62TcG(iCNC1Qy$4+MU$1!<5zqY$xngZH^U}ph zHxn%7Ug8IIZXoR_?y-Q*-PFYG4EDm+1J>(!So3aireu5MjIz5d&=X7ln{e)Hm)TWd z9@>Lb?=vaGyEA9d9qfcgbYd-Gl`=Gjdyr=5NQ?#x>ipsVqBAgS>OOy*?a=LrS;Q%NjRB2y^~_ru_NT59c6Ixay^ zypHAm74nJ@6IqoGAOAR?eR&J{YHCdX9-_PSxf;%J4e1a*(M1hdxG;vhPyT+iXV6q3 zDr*N$5zIG1B>&X^L>A=d9gs*ruBZ!Q{5*NdB0pYiGg?)SSg za7b%=4B*%c4168FB^EaBu~&en;UzdvFy9ww?BJpUm}+1On9mH1p}70b6r9K&Au&TF zq@iE-NIx2^dLg9maNnZ#>d|QG`e9$cxsgtj<5SeQ3fr{8*N?5u4i{ym>09%n)o5yrV+1tsz7S-0=m0vxWt>v?Ov{kGDFhhbl&=(oUP7C88#0m z4vYE^aj|VHnlDrEhaFenKbU%aLG+~I)hw8oQ@@m1VIy;-cDg8E&{9){< zfbCAeNP!yb%YmR_{0M^{$8jEK`+q=}O_^-cT)3YPTnGC9k|a-Veom%!d3-v#RRnty z$7>~_TuUgj2XclPGp83wZEqj#0%a}e`ug=L_|ukUQm_1)K^mvnEUh&$uaf0f_L94S z5<5v+vkJjH%|TwHh%xxIohPQ^fNc*rgNTO*k1Ls5R^aEsr^q)lp!VYvZ?WV5*|}2v z^o)3DOar0r76g;@DN>CZrn4d7r6745XbC<~SbU0)kB~y~swdujG}Az)l4x2h%H6jA z%`ci^t9ko*1AoTsljJ6~B-z{8?0zn2=kZF3*aXb!VmzKN_cML@i7+1<2(Wq;A+Tlet-tE^87MPFui+ClR3VN~ zmhU86^E3Vw5r?kmHcI1=mU>4cTH?5a9-6a0@;Ypc^iPF3X}$7}c#oNu>^ov-VO;`U zouf$C_w^NeME5^eG~rc^>2vRI^PlwNRNeI!tADwS|NMNtN2S;n{3Lj zbN#V$D#B{B_9nxlxb)|eV%Pc~Yc*u)Wa$xH!d51cHj8vX2_0@&J(d2}W%olcY zl2fGMO3c4p&^ygG;6*T>GwyMIRBeArr6J%auT zv_dbuogrQG9l3^ACC4_RhL>S9EsFIO{1#zw3OnNH@(x_sM3z6qP$AO=(+Suw^)yaa zq@*f-gh{XQk)MW?`IaS7S-vdg2bw2@|F)d#O+6uXI-O_ zN_;fp6$~$F_sM;OwmMb7gZi%{kU8BS$5YU{)yWPK7yEZ|Esu|8HIIL`|3_B^uN}jO zVUb++v*&8kAFoBLHXHIehn$h4-H^yvJt(1^4VYmOsu=!VoEVP64SOQ_n16YOOpaza5`0I}&cYdJ03uuPv!1yofnx^a3 zG5=Dd-@5Sk0P9YDOqMUn4x9(~?XmDabD#qHz9ZP!KfK8-NO^XFLo=ufPEY-T8hpY1 zS(XOBhaUc+aBk#Z> z<;8LE>A-C#MEtC-9!nDry_lqjxIwMDVu;5oKAfY;-fOUpYlj&ZIa(raABEJMI->^$ z-{@Enif#e^HDz)Z{&SIPc&Y*s&(xg*JJ|Tp2&oDm+|zj|K+%@N4T*tNKcW{Od2)|+ zG$I~)?*b^OAI=v^r|`iHkp`J8QY2nKhCg8pB!9#+AQkjF1xb!6JZz@j`JLbvd@)Y4Uo05C}!!Y|;c$(xU-yod4c zxF(xRDQLbw1{a2QVfiA;Z$Wqe86RTI!{Kf|@z6)A|v;BOB} zu}2|*ch3EShkngGF8Mx?ac&i#sONTzpqK9?o~Ua5I7GP{WWeI7;``V4&-VFYYNA@+ z((b?E3eMWKeiEM)fZH05LSMV?a+E}!C)i3=xZ>3r3g=CVI242RRPUuP=g-XafGs(% zV1e=2LM}qiY@*GMJkvD-mn^c&+}@4B{v5Whr@;MLY6~b?x$DOK=l`xgrnEYUZh&E} z`dOdbg}`@NFMVOQNgqd=6+FS24d)&K86cg7?=kWEXd2s!PvT<4bYD*GJpQHggso0}t)MJp`72^=6hkNrYw&$~<<0w=9wf7J|V;q%k(B-K8)jAoW%& z9*uWdpfr(na5+4SYbcMHeOdQMY}Mzkrv(-DU3|?>Aik(*q?<1wy@;GcNH^91Zw%en zz7V&r;X~Jh-t%5)o{+hIBc1W-DM^FoakMMIBtZD~{%FgL_ zpgFZ*RcZV)dKhnNK^-}Cg5L9aJfPe9vEkgn@J>zk2|q6B1AZ`L+D~v!6(Hu`7mc62 zS7oRjsd(%Q+JSVx{NS#IjkJ<5s)e!Mu#L=Amy!hbGMC!cf6gL_`cU=?L;xVr!6bzx$IJl0k9>7)u{ z7aWCN1c&4b1VNcD6JI!;$49Pt0*mp zDiwY2JSg~QxV%Sk6s1pz;wLnVR^rEqO|5XV#8f* zn`)d_`5{~vXlbs5fC52G9uHQl#S8hZZ{xA%jncVu&6)5zmDvBp-LyP$l2hA~Eg$-@ z0f`aB&Vk!@z&9`G*-fDM$_}XWz~R4hW~L-&KmM;&L>eby43cFC+R{J>f@XE(c<&&> zP&bg_?rq{eQ9SfPsWJ^ht`W#xy84Px*YV5GNw$Si0EE@qq+0xeAeK3Y3S|(KYw>+x zAW{r(wlSUI`<(!NC9`Ry)xGO^q@xpaZ?5*+w}-tw`*^Aj+0KUvgYMV!xNtF?(Wv1{ z-7C~dJb~XLG~H?le~aU=2b}lpb>Z&em7ERhmnQ3|5Wz$)Iw?O9!e)fLyFEC=haCh3 z5BSL1gy*gJIl^r|vSqFO7kuc$hG9IJqhzWl<+d_UzY_F2r~O>Qe#D~2sz|}!23Wx4 z_(OKpBIlH^Jpz$X%Hd4>ff_D0n)3`-^4VV)C%f_& z{M5MWbQrDEx(MEixX&?7lZkisV1*(utiJIaAd)u$-$-~)NGquuI_*DG(MNdE`Xngv?p{a z%L{b*yq7o$GH+bU+VOtF-^iUIJS~LLN(nyp+a^VOuvk;eGl}i;m|^d2Q)_9EKYEa; z+ye#|NsNOqnyZe<9qjgzP`-zI19xLKX@j+cESLkg-rP<~O&)^nfH>e56ZgJI@bsEd z4;(kZa(4IXLnDwcRlft1Wnrvtw_FdfmjM@n*Updl{FZ48P&6C+8F+o|f&eA<@K@@s4Ue>d zq}U7p(wAJTI*cmQ)@k~OCS3r%seI(WDV-2*Q11T76lK;>J4^0m{0 zds_HGO{4`-hHJ6I1J_9xm!fs~l^MHoMcmJd!`8vjHWF6hf?M4uMjWS`A{^iRR*kFx8dAQ5#Wj_6eGAyx{e#tx_Uk-X2lb4hufZc0tIO!jF%uiP86T` zf=BCfG&LA6!1gR$6%Ozq!X+Oh4!j&S!#n$|pb+rN*v54EJBb3#mvzhM-7c_Y(L@+) zK)lpj_~nfB;t+BQ1-X-n2L{%D=?5|YCYgbNxk|D9VvU(Od90%Uc5-=i5FYwXXsio( z#A7Rh+4E{a5cv}niqPW!)&BzK>oZG+mHi!<2Rhd2ci%yK5!CcQ_7RM zTX6`L3{5orbi2X|21W5L!O^aXGop~_d>SF;fbs3LZ~G4yIKo@Fpl<%*HKvjj9uTB5 z@^X9JE&c<4pEX~_2Ytn=BWvThG?u2)tb(|B-2;ks%CucTG7ruTCvRQc2#ws8$BXF~ zEs_qX=1{;JcsYh^-|C4%9JgZNBvvG8^@iMU^B&%;ihN3YE(5d$XVcEX*2+_ma9baC z6Y?+Y0Q7L3Ae_6*--w^bUjeTy*fQT?(=DIQ{s*klz-rR{A$p&1P>=Tqixp z|G--HxX2B|fni}Jkbd*|=m_c#n)l0qrA3m)$dw~DTftL;@*(#NFbxe)pF8*WIrCNY znOE5@uB5JwY0Q=;&LL@_zHXNDFz||hBLdZf#8wh33Vvh-G7jf}Bm#KHLcf9-NlYIZ zurfIil_CK&T*5e(Xzk(Org~|w;ME+AMzw3*M zeCVTxNPvo{aTS1tHJ^|U11`SmTd#4oWfoo#$i}zPwrKo>O{gSR()Dz4TW?;7_@~It z5HkN=buT%)A8>o(F7vPGOzeyZF})D^q^O#mI^)YnzD+P`5ymnhc?NYmfFmeaF9S2x zu#+Gzb+rKOB0`rie%8u`+-mk~F=Fz{a+K<1ZZ0DnGJp!a_iJzN+J*@64H`FY|RhshXK6WtI2+p!fk}G!&_^TVF%UP=p;Tc zCV4F)IOm395P(Hf^x(uFU>GkrlKt{Q1p<9_nm`*2pB9u-Tf?1sX?srrmonzOfB99e z9$kjSfqF~orqD;H!Q=CMG-)2`&?mwKVF_i%p?v@BEIe})=2fv1TwG9+@}I!Pp0CFO znIv6;)<^BPgn=JlPPnax8*oVwkgJ6wn0>l{sZ0w!Bt8J?adxKex&Z1Ctl-ZS{E6$c zp>?!$d+>?(njm`uF@eHuf@(fhP@;4gvns7z<$angOZM8sZHjnNgDqA2Ue_)S@ z@HELcVP8QSoayKM9Dz*;w3gKB8L-F=HCF_*e-H$(Y=)l#1=^!S z+i4LS$RY$t)EU-iH>L}M?#IH=6aE?iVdvEGDJh4&6(>dXVAURGzy#p?k=pp zb+nKGmk?Go`iNUefxE}mK{jda)~Tx-2a>O>$k;XCB?e>^TGT3@m*-7N!G#G8`k?%< zlf~4R4G+{DKg)CTSSnZqQImk82ROnYY%r3-yph8Fb}|;H2h!MWQW+IS!dTZt0}o=Y z4rF+e)PWv9P5)j;(IWNRHT%Iq(>9Hft&Kl+D{caTEikymZiHwRh|{oOP8|wZ~p2G6Kw%^dESx%pPUFq5v)sM_z$du&sG(&f<4Cu%qtvL25DLZkNZP> zc`K*_F&mP#fQD=MYH{B#t{k5oQhDzeonbjK{TdL|yV^y#^Ay0YLm#u(GaUx^ThV*K zD|{!IANJ!TTLG^hQtcoF&Ttc4Dw*{&<^OZoX`9v^;Nr%C@A`sT-RTy@^tc0JTQsKv zk~8%AkPh~PDV5x*F_eMVj!=t0fe_2w8muF_e;Dh)aa&nn1E<(-CI5+Xcui%*y?}p( z{Ofd6t1$MMC*Z9Wp-!BZ&#TNhE<^B=SI*6a@O$CTv|T)C5X5#9-V}nLJXj#lfER#Y zz3?ynPm&99pvK@WFO>5L5#NI?*PPtWFb^bmiyq86f}ID#Fev*}ax;-;jjwZyR3#({ zdYu6Sh$_-ZH3#6u}w z@GBqNX@-9^9>Ma1>-8}$HtKhIozI(I>gJh)%yzAD8Ymav zarg6P%w?q#UAv&m4e{$;Yo9iI^$4ZbYeS0^2waGUmA3~R2hC1t9I4!_B8;s~*EQ|L;*(rKc!{ z$hvP}d#HLwp*D!>#^LY<(!IT4XfPhOONcZd*#!PQMgYuk22@F7|5KGawC2QqC)lbW zkKyN_N!JbB*hWl`C!QfRJ3ZheuHIjBzA*g32dP_+9U1)Q1TJzNe@2K5CvTCT8o4Ek z_I#o3w7;_*;%JG{$l&oJ zAZ%a(Dc9`4;L^eoWVS7uv>?^{yFKvPZDX>QOufTLJ5611|D9;Uh)?J zx}mre44!V1#Ev2Xn|A<>%GqJO=6{w88v9+$9%})oo&_)P=?`ubBTbX!33*|S)Exvn zfY+2W_y#M;q9KxA2tM_GS<``(m$}ywp>Z_?Z$v)z!~Upi;?omPX^>@|`p@3xmxOe? zgPL$ho3YEiW#VL~oP%JG0@1;lTT=A#d8-tlB?A&)SF(EkXQzJPwF!=yZ<*RmhQlL{ z3fp)BOm?`JwCpcH*-4X_-tf|jI1m8s99!O4E-!+WtU!04nqyeNACe&m=A+K^4C}51iM%xKV7r{DezzZ30|QRxT?a^-G;h$>)cS1( zpE%@ASC1OQD8UZaKr&=Bp-<}$dWU8{)h1{$Y|n!>eaxq{h?rTJ#A6HZQV0N7UfQja zlBX=HEYKEuCk+xzAp=DJhXF&SoNfb{p1Pp>kAk(+JDlLuxVc~$$XgSYVGe9eUyl{o z+kva6Is`FjJ9QAePlz@+Jf_d9{7tJ#UD_E8?iu_q$1H`h7a(M1Wo{^cGdlxXaaoR~#uE$d>FTYtY zH6se&yAEa~%;PV>0iydW;QpVy3_R>blnKk5+LO^?11lhtU$541m7epl=!S)n6rSOow?GV^BE}U+Jls0K7 zBR&L6Xb;DXItCWq{cJO_yMeP)LQR&VrDj%M!d6 zY`i@IPp-*X$T*Gx9b)$K0}TYYyXfg6G|xAw5S90W zXdS*cLWoH^i_%fZ>yFw(z6Dv}T`sGZg;|jPH!#zQ;u3E7)AifpCntk7%sGxSMClK| zf;;~N`N7$IE$d@fFwfIz{-N1Z?hx{c`oQz{@xcp$v0Q5&<|1e|^^_en-(U&G@INle$*reN#u zny+cM6O5;Q(YVhz+PXsRWt|`@Uvs!dOfPi_%%^aulckf`4J?Kz^g}I>fG)%9gdff<{C#Ub+D|qk!wcS0XYH1v)tvNs|NOirrZj! z=P3btVq_yWG&Q@+0*Qy8gp=0v%Z6;F@eyjtG5(>9Ty=2QFIk;Sg{zgsZoB|q9)Lcq z@|zaK3S+_T+-!&JNJju(hTeNwkUM_!QwPWRAX^EXtJxAMSLT-z;r#6xqFU3)Uo)&kK%yqdDW;yp0lySISeVR7Q9g-L>59GJ3)$X zb{M(yAE*DK3lyhx05l=*cS3-UGdHLFk?o-xd|=9VoqHn^6RRtN1>|Ljr1Ltd-30q* z_h|!-|2=hzkE}pUk^y==Z|s1)-@SIxpNcus@cNGw=o;lx2$zDXLDP=s!2F=49=O0q zyZXNrZ3hnG(P?)PE!cgfy|A;OZ;H-5ML5F?jeMCW9h%%;9eVuEW^BFF`Yhb{;qXyD zGKn|cRQi8u@=w=LLDkon1osc$UxAXD%C+f#u8ei*4sV17ebBa0;q|nE;GK@=g!FTe z9lwLaVTcv&Zi_x-e(i*$%6&5T#*gH>%QFsINMf# zurK=e7=Xk>V;s%~nji^>heiJ@W*)q>)owy_cSi7S#ER%XcM(=}cqL{k{QnSkC15qC z{rmU6XDOA0N|BVcPzoh$hma)|g;Y2rkrLUrF}*Wm8;ORPh#X6+O6Vl}F(g|GZNg}* zi7bOGsq?>|Q|6O#UH@FyeAo5S>3yH)x7@$`zMm&;`N=r_@t}WlV!dd-Ub(+iwuVyb zcR5h1islT~?nZ{_4?7}(UN#eLNN^ZKpc~xr@O9ye$W*60ExPAgLsmkC*~}T(z|Y3M zZWr?z`0nuqn$B6;VUZ2F-u|KTY-)z1L?}kSZRDPJqcx6FR9bCLPo!|;JnLhm8_-Qg zFFj$;2KIj=%u}BB92Pp83#uxrIbk6~q~NJrQ`OruYsfqzqHiy{-+uQc%2sK9ZU$0r zJB#M+oPj1u^1_{^8Pn6Mws5kL>wHwJ=?HIax&O%prWnYaPA%PSEmE1t*!SLs?z=Yb zXlqfayBae@Qqr8Y2eg2ukDHLoEEMM?8Ki`(UUfCjG@U0m8uXm ztU4o;OZx}v%I4I8h8QelI(pIJ-kodW_N*@eWF1SKY z6a84cxZH^03##36r!_0OK(Q*iTkCI9L4Ryp1q&AP(2&%dc`0YJr zEoaw?FZE4ZO*cMyv-LIhnU^i`0n9)cq)&tnV?O(5lMD3;I9w#Z49sGoKdc5hHn8oA zBp19|0BK2)f>L;qz;2`?Cx-SN{lGhv3wqQefQ={rrjo1)=O4_ib9~yH?!W4-sbS5y z+2irbdsiwA<0r@T?+Ki*c&7yLwq~8fS0bBE176gZ{a8Igd%#>98XZ6Za}5VS?JGgq z7-}Q{RX?+)W%H`N0Pg2(!8BVQca^N9_zP?l`MEaX%(}6KX3UAAYU>4Kq#Ja)$Mn3V zctl7bKYi0EO=yKF|GcXsQXC}hK5q5Z!zPuM4$utJD|XuhnGA(E1(dRV+Dk*NqUgDu|m?cjc-2^z*Tou!QnMAejQ__OInXj)qH*eU)A|79;_zCBlukh7vdf zBT9?!SM3c@5Z_b?@<2+1ugg=rY0G!Sa zJC~NSJRKh`ga30XI-V&lVA$+@&TcQ7#+niP@PoIw?{o1$=H#yfY_M3pX4 z4UaAclkL*=Pl{XV zPzGg@w7l*~o!0CltkoeW*Y2I?)GyOsK!vVJEFGN_my$`(=f zdcYG#9YDSae!4j5cr?Qym46@DWmPpvR|a7KP<49F-;bxXeb!X?`>~1YW>4HWDA$$K zi|`lWs$B*QFuiDZ*+dn@C9%$ia8%(TfMd#ru`<cP|SHI${h zxF-vV=}a{C|Ez1i;is4h#t6c%)^{S?wIYntV_Q>b{=&>LV{h9_6j@VmuelL75rx0p z){EQ`M%fi;)mzVLbK?Jf^KD}ue9a8n88Oh)Y|RX*?4BkNCx)hwRctsq>aE9Tq}+?$ zu^{~C`CpyP;Ezm~zIvI<2C9BiyPjYU)>T*3yf`t}QH;iYT0K>ls+MWX=Mr2H@jAj! zI-CI8O6KDvE81iAaG>FzXU(9irgZnOh@h93)opGX3gZD{w9D^0 zi0u*yfbXk^pTn@-8oFRPYbsaZ!6k*3r0K*4z5Io4{=VZ1tuu(g3=`4c7XgaCIGd9b z8LNy{bVq$hE!bS8r6mOy7)rlJ*$3P?lf@f3GZ%_zBG($V;x=C}O8o~I18w>3&zqz& z|A+8xHCs~=fzv2oW!@qk+4Gg33=m2|E8-u7{!;e46}rX!tfZsXg7y5M}YkcIxMI zPrkl+uf-KH1g~eUJT@b1UsIKPG%%;d0@^WpQ4o;lgK3~Jx?=GwdV#8a zl^rWCUafwju5rm7(k;_n_rQlKK+$vl;4&iLp9%FIu=d1@L*Syl2bN&sjJT#J1pP6` z2++{HG7KA2W~CZemrsgQ!0&AUhV|Ze1>np)v}5V@*C-t#bm)s}U_3T!w|mD;?YE|s15;EFk(6)${*3J?e% zVMiI`y%_tuiwDi4$88ws^?Vnot=UHxfAR>K$Q6v?d~~?(P>1;J>{t003_)zJqF*#W zUi0lHRC?c7NLmhNZgDTh2$xQb=c2qQhBDa^T8t|de$-y1fY#BFTPDEC=+2rK5p0@q zJ5d01S@+_C0f44-MUzzDdqf6luGrlDRnzWXM{X`*1sy}0uN3gPkZ-&Uz|DwbHx4*F zhJ_nkV^72F@i5e8Y?+@(A*F4`tX_@I9MBw$_xyK8qHQx0>#BZvFt&KJ4cPR8wPZVG(4XI|WT>T(c6Zqh z-e6e}z}JfX+x~C_%`v5GwfCW;m9PSNmU)TfGg>gc?@_nV=p48VuNbkku^U1Q^gxTC zi#FQdkaatc+~C8~HH*jo1K${B={!6BaU!Z{8$PDh4`>d5DpSA(7T>rG&s=s7+fUga zZW20A{Y%yFwF*}Hh?4vwdjSC6a@HEMtqa#|>(9qO{(+B5TlsWE9_CAte6Ty0eNZy> z&TdmAX%N>qRN^g#X08(1L&a8O7$U~7aUfHtQhU5}j92mT;t(UsJZeKvhv($n!fYq; z&!r2);xGg7^6b7XT(m73?R**{ZtZSORou?ja}9$)!OxWFbITZBFlZGrmxfLnJpmj< z`NHJ?tW7r;x;!&(S^%Xx zy~wx!+ujm+PyqE3vH#wrr4RC6hr>&RnAsQ~6T$`U>z-hZfKf)&y18@OeNxAu#s^FPY;-<|&p~TOf}EF_5#I+(P>ju(Jz*HR$ydR?RZI3fVqO+(0HMR#UN_ zupmO~9H#X8Ptimn{4AJWP3g()zh_RMJ12tm=0F)QZ#61p3un+-cEYn6pr`GG z>`A74X;%i77dGLhfAdU_k&xunYJ~y<5|*FUXN1>o?$z)%=jL=7wE}I$2wVq1x)~QE z1*q36dG@m&=Wh@|?UrmQ9WdyhUg4qsKA~;yeJW8uJ~2i3d?4qEPvY*U;UCM?f!tNX z^S%flz5a0xjjxlHe6dZ374h z{kS)$ckE+6lU96nRfntslab4d0~wd`T44t?toj1=a>+uf+BSpyfqy^}_hCx_Ej;|) zg@4{U#CrPfw#I>KhD*?K%E;Ia0U);XMP2KO7yGw^B3gw|pf+QnxNZPk0lZHynzq>& z@RH=PRJGB9xk3`LcI$+4A{_Y<`!0GTYZ>&NjIEn*N2h9+8^=vEr#|Trq0e=x8 z)6k#;$Ur22#-^2sQgG~o9JSAt?olle8vlvcr zx;s-7y#GFz9!(?0X@0n4qSEGI@Bx{7d!aK6oFlvpDCwhEn8rWPk6M3~jgPjEA#^S| zFoA}C9DRkd3;gXF_aPM|8Ms2>J^VlRAXp{kzt3h*Om2I3sHHolj$w%ZfP7hg1(A+v%?U=z#o% zy)h+vt>&V%(w0@Q!J!GaK{xZ5_daO7f9>S$z;dw3#sRs*>hjkw7mB}*wiiNsWJYsQ z0km&@zv^)|j8I1cPO$_)l?SuZgMkKPte3WYJ0EtsQvi$i#z7DwRUKQb-7gXZltnJh zkbrfMzg*Ule0#LCxLBtSrf3~ui;`DNe(R+xt52B59{|1$T4R{0XsM$MwPN_U>LZqbp&I&%OxFcMT19#%_EaK!QXplB2+*YIzTysVj4!PmE`? zN-GJ_Z*x5^kRIm5JhBGyhQOYYGwkjK`s?ne$tjrjzN!LG>T(fIvlmEYX3IC)kUjAC z(6Mb1`i1twvQJa}4q|B%y{OXvvLjb6(@l*5UEzG?x1D^3#SrqCscFRjmXwAM>u@M{ zq)5^Br{TJ)?JT+#RofE`RKXZR6vkBc##rbx10*clq~`M9!7Cqpl%9RDmq_vM3=3|P zcOE~f!^0mar`F6ZSu?lxS@=1WEUAjZ)VF1#@~Jj)=SpUcX&z!GRkaPJ0fW#)uvh4sP+HGOM?p7}YiHUSZdyeSEnm0Q`#` zunoO|>dR+Fyp=!m1N(S?FEl0)j!Tz?>;CD~Lmc(h2jU|!CFG$Qtn@Yb1TidSpGP30 zdO&xL8Q(wJQpgjVyj9;U^Jep)Mx*(qdjfobmG}R8ynG;3t!r1le#c{2Ev)%6sme)G z&JO7L*_Pe?eakkD8uQrM4IOj?w_mw~2jXHpv~4MBDx*3}6W{~`=_ip5uwt~|x4W3k zg$)`)A*{d+dZiLw@40dSgm69K@Joy*E9O$~&LWG^6YldMd;kDg+`am-P2}0HpRHjZ z%M4T?U3(a=-5WZ$_XKPwE_~6)k>2MAH_-k?m&qhjcs>SHoS6t+ckh`_pZs^+c2H9H zDN{6c`Ac-M_(FKz0y*FT4mH+NfJW#JN4V;SA&ys7C38`+>ZJqQrlgWjSZ_CBvAqX| zZCw=`67?)ZD*ilw{+$+ME%Mo(c55nZTapF;T2Hi+&>LG=NQ8Re=b};kvMcCi0vUEm z$$|niuzPM<&X4Vz3X2bUn4*zduPo^Tb+Ym^6kdjGn<5_5?dNIFCKNA{_)4D%r z<%NeO9h;cjzNn`Q+aUkX+cnkje^FZ>WMCuqN-&IN4aj5`u8}o*!gd{@_E&o$)7FR{ zy$$cl{i&=(tch2?*_UCCGF7I^UuVEo3b&fwDX?G09t_FOqpYaTwkMie>-{S z8OTskH<}X8eXY|2rpb)>IJ6G{>WL5ek4%6f{_{!<2-Pg`rkw+p&4)OfvM-ULlXbP; z2U6pF2}efvo(kc#N6osdFH%gP?x^--tLKNu*29D^g`pwX7f4j+K;MUQF&9A2V&4Xb zqI?ug37Nn5{-3FRDYS*^diFZMy*O;L#Nm&S-q;z7ruEpY@$30*1CYgoNo1LWbEhOp z_F;peyJb-lb}fWe$*_d`fheI;)p{nanHbY6ndQ;hyiocBcr78KW z15{5KE3u%c;&dMNkm(0U9Uv3fNn$!^+ucc9{QD-&7G=_^Zk;t~p>h2h-HopGs2=p> zxQ=ilU{kbI1}6&^d5U>T09`p95tQ$tzNxu~N&k_=ELL5PJBX@zLZPsDg+)@^Hx%C8v^GpONV-h6(> zYVuZ7N<*4Bzl2pPa>UfjupcM6q@{h5y-<#NryOIIHq1cYnzT?+{w_Xu*bqVt1a(#E zcOw*8$x1hBF1Xp2;L@VGg6fH*W5fGW=95@;nYvx8S=r-lj`h5AV4sq=@J~-Aq!C*3 zK6?#H`zB0hQfB#^wZ8gg7-7dV6jg16`6b9kPcU{nbY?tlU?Yo3s|DGLTTeAjB}X4Hs$_a zTN`>{D1edJb8Omo+x#SnszWEn(@b+V1PVoekH;cEkDunT6-eu;Gpv4>#a0c@XKkwnH_pZ{KLK4x9ZxJN*<%-&4w+_pOld$_yq04WCcp?{{$PA@#W_>lP=sS1Cs zCxjh4ZcR^o+dtm-JxGNDVM6G%t0=3w!fUd2`Sm$^^4c8OxT(l59#02j-|&7|isOt4Q24@@O(*KUY|_H*Y<%%Tla z75|;0UJTv(T>izuS1{c%MteV3pg+FZ`MS$u@=eqcZUOZNojaQX!RI~@(JTgCb?84K znFZG%JTpgkMe4yPf;=c5zS7EtYV;@+i(x6awDI_z@yaHhfq20n+b|QFL^EoC$rIME zFu`k-r$bun^?-Ved%O&;Rb$aL;%w+a2Pn*GWmJ~44F0Be*Ng?6GU%x%2~BWzW$nY@M`MB;uFU?gP=hcC);fLNzq1ookg0R_4)}V9OWWVnUp9R3;hCNP^fHYSiH7@RY9(k%tLzQd7i9cc zoUC+LFDXg8aNxwtV~MBRz8*H-!Bo$B+P#(4XR1Gy92|4vB3DrR((38qxlA13sg;4P z#dBvW|NP+dgPI6>)o~T2JboIy`_wQmy1`p;vd}`E@k=s374T6{L$oRNkf9pRG&^3k zSC8iY(`z1GlpawkmHCDwCR+=CS!p<_KIVSRecy_c@6{Jp(Tim1C|$wa_1%aR-;w+1 z8F&>6ZA0U&LXrU~+o(b^X*T08bjVWBCVyGBkfA2w&89b-UiRQs@FJY&3^>)Xpq0A9 z`tTyRIECXXTK;F5Zxer4vD~JJvs*`HQJutLF}x!3jy5H3;lK%)(RV+pqex|2fnP(` ziBDST3*9A4-HsEK-kf62h2i2T3M*XM{S=k!3HT>Bc|k;+psU@=pt>D})xEBLgypfz zF{b{soCCgV!Yz#K-A7tbRoF)Nxf&~T9rpiNzC3R0m~K7`Y^aD+=m~C|iW5jBS*5F8 z(~O+dAL{<89Y!%bsQkB?F4}TmHsrP7m%>(#_wS3($fW7L%Jv?9asNy{i{)`gdrLhR zw+j9AAa~Q$Fl`GjGN5cBjQat{cAvC+((c|=v0y!e%%Y8jW7ZTG<>*8(1lS8HX*X)- z&cH*Bb>o6^sk5kj9xv2P!Jv2VtciA`#d+C-eaJ|6uA*|+sp({8GLV;Dpklyunqkh3 z(4`PKJ}~Ge6iKtzFLK*sjI%;mK`JL1mGgf}R@G|J&hVY#KZZA_&Q@gBQ6%Gq+lsZu z!i$$(I?!}I#d@_9-RD(x`K{5N#S~hw0~kf_7u(O2+KxNXo}Q0v+M&@}&%YZ)f>3;jaHkjcYAU> zBvDmen@`XCX@%N~3pU07O6AK(r5@c!TforRJbLHc)q6N)*-+W}anKkPW72>6W0)m= zt_6j0fAfFh=BjJXr_ZqWOL)voq9;&h0;mIZ6c_N&r~E_Ar%p?Bt@15ga3QRjC`e%!uW-Vmnh>MTdvq;-kjywIY@%s@TGPkK(@%K#k;UgEAR zOF*pv`!vQa#E-na;&b}77xrieMh55zRcaS)g_!1+cO^ZH6jVK+g^2r3dMovWDHQf% zQV+61r0h++&1{zy$AjUal~RazdqIq7yU3N_55LmECM!fLc=xz9wV!QhXlPZ9>(BI^ zRL8mD4*4*e>mxQ$GNeLq!XS}qPG#iDx`~`%O{w;QIG~z(KVt#&tY;-q(3UGNrro|W z?3P@c8~UFNOL$I*4dcG#-78)qW0^Xm1?f|9QUYBau)8OqrHQORZFFV3aP;+)gm2Qc zA#`vng0ns;UGUGeb^Rv{^#J- zKkkWWL(AF=eNlzdKfRy0B)#OpdsW+|$-K%ATPNVG0c3j}p%)eJ*b$NAdzzx|PmL{P zDHOFjUWdjVGvl46)57o<56DM9z}H`9K--paGYpT<5< zo3`k4(WEHLHKkus!)3F$inf%J_>lFXTOrt95)FgfU!_XK@tJpcAT*Lg(mI0%HqsXBwK0I0z;%s z*%0U7KEWh%vf^bgDG7y<_XLfvBfI2#Ag!c(@%-C}5zk(fxlH-na0K-<& zr@JwGEY_rxArP?i_il3um`JAdGNL=arzWfq7gO<#8uiRH@@xws$-;()QB>`t%{4!; z5BSeMdxdhP&WoRy#{F7QV@zu)?p44nv9K>a-uv^x#HJSSibcNUGun_IuMZD(pIdOw zROFM0=!zL=w&=PpjXQHk>qrky@j!6l89rhU7m+iBy)*+z*X@NBv$zaVd34DB2g~gy z8}dn?Qu?v?*cZli6lcu9Ck6SEJ7~48RN-p5Xv23uW-O;@hNDmdE)Dmiw@JQJ)y>%_ zkl{16<=le5xblx%rx{=ek{Zs}v^S%YKo*WFl`l?c}1rWfo#;za&6dNy>8ViwQ` z%SA2@<4u)=+;|nIYJIMwFiA|w-Y+Khy`OhttAWgei^?0ut2R1@UqDnd81c=6B~;P~ zU7<|z&SVFMaKajuU2-V2lUVGd*m*+t;(vzF1BNl;eTPxOjC2MDf@2vSS zE#U$%p3DousF=k$`C`dF?cVlm!0E$2_>Cn;b(9lwY57fk%=(h@%(et{YD{6@eXx#f z*gPdtWTDF`e3Sd(*?ihkr_ar_DCDCl1$NN)qC#ngTu0TU%jCG zqP0mDRUEqMu*uxHN0Ko{fL>H+dkUr^oF=Nhhl5;o(++KWKqFp*Te+p~CAG7mzX~sr zQ^@Tr616sbP2~-Flo74_3O7&hs#6=2TSGl%tJ-}eIc1Py$IN^i(rt@AWw_V2k8(kg zlvB7(4LG#z2`2rmk+W*lb`sUf?k-XpYjoMo66P}BbNwo|l4J03sSjKSEu{HErAH4K zvScMAZm0Zl*-$9C4Ai9ZU9PX%vsgzkIavfza+_RTfP6~;a0^?-ouD^}+& zv|pkMEjWcjYUM>cV;wbxIp&>KpxA<^5JMZvsk`UFjgSh%gwqlL`s1BAxhrQf>)%Pi zPV-dt!+3a z1!@=(%=zqChJBOJtrPo<|D4Nt4iyHR9JlW9Hq>cTfEn+5m+jzcBqvchJivFFx#*(A zU`|!}3!Lz#S$$6K2e~hmy?;N2UIjcof>qIh#vAcN1j!Q3|_SKSg;|G8y4gu=4 zuDdG@bF!gJRItWfTfPW^A`74sXWE60_|78353piI&A2>@BE{laMQ$m(*29{^u_>zP zS$H0Yl>({63y#Zr(kLb(ei>Kgwkk~EYwLU0dK)qqIc1{#t2REh6niSY`%4Xw$_obz z^9Yk#4l2}e^3)YXJ=Pf0yK@⪈o0T__e-;onu%-Cov&beM{rvRl(VE7@um--u8< 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 CR$iz8 literal 65609 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 z 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\yvW2SzNHSCaXR}jLK55LK?6W&N80p-+~{?2Jx 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 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png index 086ee987b4a09d07bcd896de54d5f7784e94db50..680fac3cb1f2bc2d199b9b4ad06d30611cf22045 100644 GIT binary patch literal 2702 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 literal 2699 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 FV1jNe|1U}oXkrghb7(7*O7r?V?Xzw zL{=c*FTf|n6-Wbtj!%t_PlK9Mj*5M{wpXpTZ>_3Ro{D{DL_{2rt?gT{=8~`FQyY{w zHNIkQeC6Dn=B2sKORM_VR`suIpS`VP*4FxtS=**8-S;o(&@7;Nd?i7C!3?Yp4xYXV z3AsfL{rwBG99c7fGVz`+jv*3~tOpsnm<$D2Hk6e4yZrg@&wB9PRThQ=PNB`Vhabr@ zd=}(n2wlXuz;(0S2MvySr3a^qOMPFP(8R!CBE&3evTtkRd-+pY=?MnH(hS>n@H3?A h$du?Oyk}-OAU`!*#y)c;|8$VIJYD@<);T3K0RX^qU_Jl< delta 396 zcmdnTw2XOzO8ue$pAc6D5MX3r1R^FzCKhHkE*1`6R!#v{EP#}^u4VN{IkTZ(}B6+KLMVn+GQnE_}qjY75 zOclp$RhI%F()6j-@~+hal0NmdrlBo%F`f3Yof!>_D|**d^{;E0zPV%ewh0S&uiSoW z?XI)ycc0sP{F>iWO=+MbHA;f~f`JZYW)l*Vk+ZUK^Y--(k50^7v|{C|Rjb!+-F4{5 z$y28ll>IEF}E&h0-g*5n}K+#IXZad%_Tm4LLiU;pd(KXY;k ze6RO@j*315gT%Dg5xQ4;^i^K^Xjxiqe3Zc?@#g)So$r1{Y(B`<u0G_gr2f=n5#rJzf1+UDi1zGywoo9F+C| diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png index c39dcb1e924717d864fd8f750e89b6faa00304cc..0865e5e9f21d03ec420e54803f3d4dbdeac4d25f 100644 GIT binary patch literal 7780 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 literal 5232 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 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png index f88fb85fdae50469ee475be31021169a9f4b2213..d5ff3829aabddf99de8fa7b9e480d7dfeaf2288e 100644 GIT binary patch literal 22938 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 X^D$^?CwFXmyZ`a>fVvaUg=YR2onni) literal 23101 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 W0}#>gbD$O)Vqs=wT6x<2+W!H6kRKWV diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png index db99a0c18698d88fb1da34c5bdcba15c8e52e498..52e106c7db1ef76b1ccac15322073f8fdea9bd15 100644 GIT binary patch delta 1246 zcmbQm^PF>nWIZzj1H;_yjcl3I z&gSOk267>!w0RJa&B4I|Cw09mwA>3dUGsn{rPM4{Y!l^-LbW}L)!Ykt#grvAog_3I z#no)JJgS6MZNyaUqzvkPCH1_ty(%IH9gBz95dA2N;G|Hl%29QJuB2b%GEu}G(5^w zT?*7(3$(mzw7jdeys9*T$g@Jzt3uPGTmyv4G~7!yJWA`ed}=klt2Mo=w0(h$8j$rq zwJyoM@s)F{`q#G4+BRkBzNt(1E!=Qy(S~E|_MBh8=iK@|=l2}Hw&(cuy~nSgymbH6 zrTb4_zJL1i{l_ogKYjTQjEJdnpH>3HB)=rcFPMRmk%@_!nT3Uwm5q&^or8mulZ%U+ zn}>&&mycgSpk7c&NLW~0LPADHRzXowNl8UjO+(Ar)Xd7x-r3p3Eg(2JGCDCaDLE}8 zv#_Y7w!X2mcjEL}a~3UMv2yk5En5yAK63Q<@sp=cpFR8F$Dq1{QVmsQl8=rD?2G;6FYF!wZm zqc+=QeNUh9ulsq+?!Nnd_V(+ix&G(t|FUs1IW6Ie%jN#r&$sPT-)Vle(}uJ5R43Xy z2|n|%iZv5jVRNwD#bUyVI~Tu59Oo?gGI?Ue{QlM&hh&CoCkqJ`jmvBv>qW~%UaVrg z;@Zjh#n+KBID4k3MNY%k`u2IOABAKJVwW+ztS&fk*o5^(Ef>4Z>!l3L`41XSF|bO! zVhT7L)bP+tT<(d6!#ZgPMWKdhml<#6@>W0j$#8jFZg$!+E~Yu#RBxL-w*7H0CyM*V z79M3DgpEr-@T%XB);Mkol_)nt?O(YKFt11+)HlAFgsbP%pqLQNzc+XTkm6zx@vzet)?gxs#E-M_WXp zl!MP=(xT!e6UzgBZ;zhoQ}{tjq#)aN^0TFG_Yc3Ze>3T(k9GATzK!eW$B3UOJ*xYh zvE|p!vq1*8r){7AbHzD3bX1%I% z>9c=d!e@O6_kSmIecM;}*tssM(RX%+U*005xoTC`k`+sZelE&{X~-F^T7 delta 1556 zcmV+v2J89f37QO$8Gi-<0063Kaozv`1>s3VK~#9!V_+Bnz$GN7CTkens%)QeSkW=_ zu#9nNH&9H4VYmYhehCG6+oTm*KDB><_&*BvuK6Qt8a|zkM?`ekd7PPzlS5L+t5nmw z_7jH3F>uXiDFgp5U_gird5^Pj@bXA#xt3~pRy-l>aa0TptbZ>uM!|g?{E|{b&f|>C ztjuCMt_kFL97~G$pl;J&u9DNa}jmFtc&74@%GT zOY7LGIOd$7fyYrWFjYMi*K|u_78(z-~$Qe3oc$B{wE*?k6sxAc=c*WI?v3ed@p9cd= z_8-I5^GF5dZ)v08N)*rYN~jwH^UDbEJfhkZ(Q=G{2LQ0Mv3dk~9@3=tD8C6007aXW z<0CBqfPYQ*U!ws)%>c-2UH1RRz2_LXsB}q%GbnZ&1~t+@05(?03fjcrI$8~m2Eb?lP%i*3+<5fgA+8II zcO1SvXaeBgYbY zW&jZY3bsibM_K@=xfP#8OplAH8fth}yc;ny!=4o{xCCWYQPv3X$?2Pogh0^nt$o8K zrKXQ{l?b=Eih-JU#f{IG<+V9xT+2%`+F1=t&^8)4eAx57%~1&**ST z6X<|XTwM=X=lnHh!*U}R!t5K*&>1@UvcJv&9G8P1l;wl7@bjK((C1b_Y4I z4Z$a>;h3T9n7tq9=|{l!`Xg1Bf-_S3{_Si$A~N)L4*;cVBbl4T$_-Bd0000 Date: Mon, 6 Nov 2023 01:16:21 +0100 Subject: [PATCH 14/19] Vector Android icon, also as monochrome variant --- .../res/drawable-hdpi/ic_launcher_foreground.png | Bin 791 -> 0 bytes .../res/drawable-mdpi/ic_launcher_foreground.png | Bin 719 -> 0 bytes .../drawable-xhdpi/ic_launcher_foreground.png | Bin 862 -> 0 bytes .../drawable-xxhdpi/ic_launcher_foreground.png | Bin 1027 -> 0 bytes .../drawable-xxxhdpi/ic_launcher_foreground.png | Bin 2233 -> 0 bytes .../main/res/drawable/ic_launcher_foreground.xml | 10 ++++++++++ .../main/res/mipmap-anydpi-v26/ic_launcher.xml | 1 + 7 files changed, 11 insertions(+) delete mode 100644 android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png delete mode 100644 android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png delete mode 100644 android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png delete mode 100644 android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png delete mode 100644 android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/drawable/ic_launcher_foreground.xml diff --git a/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png deleted file mode 100644 index c0c4d66b5539635627c99c81db3aa48c959ec8ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 791 zcmeAS@N?(olHy`uVBq!ia0vp^i$Iuz1xRN6zBd6#v7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpafHrx4R3&|Mvbf`++?6 z5>H=O_9xsdf~;JYUmNp)^75W8jv*Dd-rly)5Dt_%@bR)^`<11en-|OtIpX+cLCQHD ztCWxZMW;?wf^ z=ks;;eE;BWLgZy>!UOrRQ{N|LKo&kNU6Yl{b8=acx)p zw%}Vzi#n9T_F7GQ~e|Ao`_#IGB5Ve zb(i?~{jE&D7vHDYBferEE3Gcg-C=sKHT4P zFMI~SQs46=!N4Q+t}(vpZ1ew2>d+GtbQdiw-?CUXTU2SC`|d+~RtbDe2Xez}-+sOu z3APDH$OIqxS`l^Tw&DMeb&qBA_c8|BF1qevmU-k?lGT0dk19$^dG6X#7rS07_wR^$ zbEV7A#bw`>@_EHKO+M8v>X@u(FLv6tc>V8-a&vsoUhz2_A!(OXw<+SatBcE?cenF* z&O0mfze({?%bmN?mpdm}#$>MDd1>pnbo6*)U@-Vw$H*{AFCt{i`#7MiYKdz^NlIc# zs#S7PDv)9@GB7gGH8j*UFbOdNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)C%Fkd<@6p9@zQ7#Od6x;TbZ+&DFgUZ`;`yBVpnJPM=6p$vo)$H0sk)%p zHJz;{DUUgC+gK$#^S_>BxZh7AG2QUYvnyeO{FlYIE-n_}zC7>NzkeBrp7Gy5vT=i* z>mik&?o+w4@5Jm9ldhe2V8g>X8@bwEwtrjvIbGeNjpH(qC%Z>?`N$p=SIdb>anQyi&d7rg%>2~J$XE`gD zPTRKR!=By$r?Td)Z2R+OPW_FU8`M1C$Nx;LD4et5ZTY^Jv$dAIy?%G^o1(4jc2s|< z75?+ya&5?`cXpQP*H2IO`T8+AMt6P09$@?!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4F!Z|`i(7EY8n@GwMV;;QE0*qAG>tfc~0A)7mI z#=cq6v3rK2ZcTlIlGcvb3Q8PJ7k-*4PS$G`l4Usf{GBnWd%Te~zm z)W=5j&3=~Kq03#smU7BlnLTn={Tyik6{xrSVmnJ}<|-rpC}vN8 zY?dD_fNE7sTq8mdKI;Vst09Q0f3IG5A diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png deleted file mode 100644 index 06bff14173f727bb29fe87d8ba55cb9e8317ad2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1027 zcmeAS@N?(olHy`uVBq!ia0y~yU~~at4i=!u*T?<7K#C>Z(btiIVPik{pF~z5Um@8e z2q<2q#=y|f!octgDAe$RfuYoZf#FpG1B2BJ1_tqhIlBUFfD%ke-tI08|J(b|><9AL zOFVsD*`IK;2(of6_;cY30|PU+r;B4q#jUq@?fnh~$Q&qKEbJXF6t3s+NYx`Ia)wRA zLxw8e^$!mnI40U5o{;dBMMv$t?{D>eUj%>UynOyyTKZ7-{cxe#LV0;Wkip*1$J-*b~uSBot*tkVrFWp_xHr;nX&#( zcdlOBx?U#s*trY;zN;R--Ew|f>f5c~Z8<;gD=V2<;8!jsut-2~kwB}4ON)k!B3I#+ zm9mG^OX}7h-eR^{o1^fW#p=?R8Gmlcd@bJTYrXYfNk!J4Z9AF-q|LV+4t}j&bg3Vt zRS{^rlL*k18R|!TD^{L;eZsjWH)dk5z;6DJmR0hFJ&I=Ul-ttb%8+zmGF`w%xy#*m zuJ}E3y^ms^*ZZ4abBtPlgjStrk6qfn4ssEa`7idT{Ws;lSc`BjL~^FnmzHhnTdKvEzF#v(e$o3i;DAKci)0KMbK{>C z)9z<~t3GSXVR%me#&u3;P(YQvDY)GC(AaAKwZy2|H$_`4vgcggRbo`83wD}*Zemyfi=DJN{tnhCRY9%=ahB+^#-K=lxu|_V@0vf7X;u=wsl30>zm0Xkx zq!^40j0|)Q4RsAnLJZBV3{0&I%(V>+tPBiR-fHeg(U6;;l9^VCTf>cZYh#eJJzf1= J);T3K0RTeDR-ga? diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png deleted file mode 100644 index 14728c77cce979eccb0bf880dc7fd04fa1a0603c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2233 zcmd5*c~nzp7Jot{A}|FlB3iIRg^V;n00|fZ9FWBTNs9$0Y!V{^wrFJEjQF&Ggg_LI z5Vm-f4x1qfBC7$@F@UlbOjrd3W`Jo}1|lG9<^_7}Y3KCsneY7G`_8-fe)rw`yT32( zYl4f~!D9yj08qo7b36|K`*`x_01UE_T|PX5Hdu%~-W~v|7%E#A_e0;GUpjXl4*&@U z0C4Mj0N8*`w`Kt#8U+A9lK=q21OTn;g^eCq$e}=Xb8!S@sf^AS000-^9PK^hhUZ7a z>HX0_GqQ&+x$FcIbJ2$l9E!>T|=V-RR$f-pLKI!!an=C zlT3R*ZDmP*PFDQ{&3yK#!*!Yfhj^z0i+D@j7#Npg<33@uEv#YJ5~w@d^Q)WGb-rb* zbgIE!2`c1&zBa&i_my~Y_7koVnNy)_F@5JsLJm&LlVS8Tj#H_d6xjktDmE=jHBI$$ z+FJF31N`mgCr{gSyv%JGpe1Bwga=C3wS1Ji?MaGLeS=33>CFE6$l+Pf{i|tlyfVZY zZMCkmu+|3UxtCSuv~a5hS0B>URH;XySm7*54nTvL;AVQ zWtI%)o6BgmSt?}!tAE|ZtoS>`$_-yP1J$)~?L2pbNPO_RFphsKUeCMb zzVK;NLeLVodF9;Ih$92F-83yXV_s=~bME#@hG^$z44Yn@CW&dGIS?fOehg0uyw>n4 z=*XY$j-+o%`c$4bUw<7xWXIK$F25rBM1Wm4qKFI8mR_xNE23zKubVp>+@Q`B>;aY{ z_yq>Mow<=%3(gh)kvDTb1uNxV!s?}BCd)ilXjAoK9A10s+htbQ<3U#aLL8goJ0ks; z<<9iRDRhmaQF;2yaQ3Y;_iMt`{5YEv_vY4DoJ@@`%&&plt3Q=J{6}He)+2aHi!@Er zI2pGOF|I)oyVsTf?HG~D|3(x@@y6baUihj*YD`X2MJ_(Sd&jVL>{yb~QpCk;k9-KW7e3pXAk-M{qlhC80)e0jwZvN zC+8IsWnj^SSNX=NDhHCn;g5tFKt({KhT#53<^%2|2xu?Je{>g2fom^aqo5?Lac#6( zMhVAgf;tSb^)zC!k}{K#+{?@oU}A0a>g$H_hiz>J(WO5rdM%9(<})petu?`DXScA9 z#=7RB>B8~6zQ2OeEn~u>ZT)Knm_Br=DNosBjWzz`KrHy+cC#{a0Q}G@aveeLQuWKv zVe*=hMPPKB?6J)lp*Kp113iqvBASkliOx-1n@F-7-vHIF&nsTq&davjx&OX%Swb!s z{3TbwH`L$FwAYfHhCR8AS@SZ>0wY4YwBDHah+4lH|Zg7cw)_h6+B^J#F5Sk+{N0pSAuvslyz>i8R`)iBGfk zJ8Vg4l2f8~R)P?X?<}m(oG3QeKXKaRLQ?GV*hb8S9Rk}8M=C{cVZ$kwVup_0D|9X_ zu!w5Vj5+?_gW40koRQrrL5=;|)hU0@k$Ah*>kw23lV1_hy07E(6*x$^%GEI>cD}aheIw z>>&HPTw9vXzn2gFwt}B}>g2h7kw^)HDjqw|(#^3ca1m-&J%O$tXS**XCFEh(hFj)M z3$#8*LaS53Z1(4K2StaXr87r5eNf!e_@y1`uZi7l1nVKl;I8)F_ z)G|twWIB%yZzkGq@2}?a|6Y<)gXOwvR@fLIshi^9d)EwZ%dY3U`OFp~xW%ewyb8ZJLc`*^i&ip-@m{lxnlzLhm~{TcJJGY(oxBb~0z)@iTf;6(Zz9`f8R6+sJp>_Vpv7NfslnaV0y_u3vhE zO6|M{qSLGI%>)P?9ypMa+c%B%_Vfq6KSzNczMxm@_!LQ_`iqjUHovY=ctVSJvU&Yu z96O#Tu!7tA^`iNeoU4~Lq@g1gfv#fjo%*Nq9Z*DjZ6f-UW8Z4eQni9A3@e + + diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index 5f349f7f4..b26e945b8 100644 --- a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -2,4 +2,5 @@ + From a6a141c6fad280f7399530e32f3ce4d06faaa7eb Mon Sep 17 00:00:00 2001 From: Miroslav Mazel Date: Mon, 6 Nov 2023 01:18:31 +0100 Subject: [PATCH 15/19] flutter_launcher_icons: disable generation --- pubspec.yaml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pubspec.yaml b/pubspec.yaml index b36e96632..3c97d0b03 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -73,16 +73,17 @@ dev_dependencies: flutter_lints: ^2.0.3 cider: ^0.1.6 -flutter_icons: - android: true - ios: true + # Better icons have been added manually, Android now uses vector icon + # TODO Consider removing flutter_launcher_icons completely + flutter_icons: + android: false + ios: false image_path: "assets_dev/logo.png" adaptive_icon_background: "#2a4c7d" adaptive_icon_foreground: "assets_dev/logo_adaptive.png" macos: - generate: true + generate: false image_path: "assets/images/logo.png" - # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec From 7e9f4c5ce13ec317d0433a66854806f3b343ca6f Mon Sep 17 00:00:00 2001 From: Miroslav Mazel Date: Mon, 6 Nov 2023 01:25:21 +0100 Subject: [PATCH 16/19] Fix accidental flutter_icons indent --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 3c97d0b03..5413e843a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -75,7 +75,7 @@ dev_dependencies: # Better icons have been added manually, Android now uses vector icon # TODO Consider removing flutter_launcher_icons completely - flutter_icons: +flutter_icons: android: false ios: false image_path: "assets_dev/logo.png" From 02e88310dc235b0d575c607474b930d634b25425 Mon Sep 17 00:00:00 2001 From: Miroslav Mazel Date: Mon, 6 Nov 2023 01:36:59 +0100 Subject: [PATCH 17/19] Remove unused logo_adaptive --- assets_dev/logo_adaptive.png | Bin 1108 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 assets_dev/logo_adaptive.png diff --git a/assets_dev/logo_adaptive.png b/assets_dev/logo_adaptive.png deleted file mode 100644 index 17d72394e45106dc3eddb63adda9ed5d0961a6b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1108 zcmeAS@N?(olHy`uVBq!ia0y~yUZ(btiIVPik{pF~z5Um@8e z$d`ekN{xY`p@o6r7f`6-1p`B=0RzLU1O^7H84L{K1#@-<+5jb(lDyqr82-2SpV<%O zaTa()7BevL9R^{>;UaSW-r_4f8g-@^_P z4S^!7O!6jXY<5_p)95n0t&4FHkHfVDUMcaCNW~<^t}Q+e%_Upx=I?mnl5_lAb$zC* z*neo+5Z@u!zr zK?~K`|2^FK;APEf&lOGzLL#vYU$1^ zy^t$(1xF}QIm9}k4lYrU7|e2z0FdVj7Pwk+?`(AI^<#g&NMy;@7Rv{Jmw4s><*fG7 zzvfq#+y8gp`#PZgTJDOC>PtDHCV&HA;XLgt=RaKhTmv-eTp%z|;1nbPPw)JmJau3I5i%sS#op|TI*{*r@LGGr!(?70xvG?c3_Nr5B zl|XR_au`qt5S0e4v`bUJ_rkd%|12=Z?yA4GK2o3Yb9dsc57px21$?&!TD(=<%vb94CUqJ gdYO6I#mR{Use1WE>9gP2NP+z5>FVdQ&MBb@0Q8!AumAu6 From ca27faf9e28605cb166c11ebe8b74f805cded272 Mon Sep 17 00:00:00 2001 From: Github-actions Date: Thu, 9 Nov 2023 19:26:45 +0000 Subject: [PATCH 18/19] Automatic linting --- lib/helpers/colors.dart | 2 +- lib/models/body_weight/weight_entry.g.dart | 3 +- lib/models/exercises/base.g.dart | 22 ++---- lib/models/exercises/category.g.dart | 3 +- lib/models/exercises/image.g.dart | 3 +- lib/models/exercises/translation.g.dart | 7 +- .../measurements/measurement_category.g.dart | 4 +- .../measurements/measurement_entry.g.dart | 3 +- lib/models/nutrition/image.g.dart | 3 +- lib/models/nutrition/ingredient.g.dart | 3 +- .../nutrition/ingredient_weight_unit.g.dart | 6 +- lib/models/nutrition/log.g.dart | 9 +-- lib/models/nutrition/nutritional_plan.g.dart | 3 +- lib/models/nutrition/weight_unit.g.dart | 3 +- lib/models/user/profile.g.dart | 7 +- lib/models/workouts/repetition_unit.g.dart | 3 +- lib/models/workouts/session.g.dart | 12 +--- lib/models/workouts/weight_unit.g.dart | 3 +- lib/models/workouts/workout_plan.g.dart | 3 +- .../contribute_exercise_test.mocks.dart | 9 +-- test/gallery/gallery_form_test.mocks.dart | 12 ++-- test/gallery/gallery_screen_test.mocks.dart | 12 ++-- ...surement_categories_screen_test.mocks.dart | 12 ++-- .../measurement_provider_test.mocks.dart | 12 ++-- .../nutritional_meal_form_test.mocks.dart | 39 ++++------ .../nutritional_plan_form_test.mocks.dart | 39 ++++------ .../nutritional_plan_screen_test.mocks.dart | 30 +++----- .../nutritional_plans_screen_test.mocks.dart | 30 +++----- test/other/base_provider_test.mocks.dart | 9 +-- test/user/provider_test.mocks.dart | 12 ++-- test/weight/weight_provider_test.mocks.dart | 12 ++-- test/weight/weight_screen_test.mocks.dart | 15 ++-- test/workout/gym_mode_screen_test.mocks.dart | 36 ++++------ ...epetition_unit_form_widget_test.mocks.dart | 39 ++++------ .../weight_unit_form_widget_test.mocks.dart | 15 ++-- test/workout/workout_day_form_test.mocks.dart | 39 ++++------ test/workout/workout_form_test.mocks.dart | 39 ++++------ .../workout_plan_screen_test.mocks.dart | 12 ++-- .../workout_plans_screen_test.mocks.dart | 12 ++-- test/workout/workout_provider_test.mocks.dart | 12 ++-- test/workout/workout_set_form_test.mocks.dart | 72 +++++++------------ 41 files changed, 201 insertions(+), 420 deletions(-) diff --git a/lib/helpers/colors.dart b/lib/helpers/colors.dart index 62cb1cf49..8e362db04 100644 --- a/lib/helpers/colors.dart +++ b/lib/helpers/colors.dart @@ -40,4 +40,4 @@ Iterable generateChartColors(int nrOfItems) sync* { for (final color in colors) { yield color; } -} \ No newline at end of file +} diff --git a/lib/models/body_weight/weight_entry.g.dart b/lib/models/body_weight/weight_entry.g.dart index 60ee02c9b..d1152d20e 100644 --- a/lib/models/body_weight/weight_entry.g.dart +++ b/lib/models/body_weight/weight_entry.g.dart @@ -18,8 +18,7 @@ WeightEntry _$WeightEntryFromJson(Map json) { ); } -Map _$WeightEntryToJson(WeightEntry instance) => - { +Map _$WeightEntryToJson(WeightEntry instance) => { 'id': instance.id, 'weight': numToString(instance.weight), 'date': toDate(instance.date), diff --git a/lib/models/exercises/base.g.dart b/lib/models/exercises/base.g.dart index b57b9ebfa..d9f7c36ee 100644 --- a/lib/models/exercises/base.g.dart +++ b/lib/models/exercises/base.g.dart @@ -24,26 +24,18 @@ ExerciseBase _$ExerciseBaseFromJson(Map json) { return ExerciseBase( id: json['id'] as int?, uuid: json['uuid'] as String?, - created: json['created'] == null - ? null - : DateTime.parse(json['created'] as String), - lastUpdate: json['last_update'] == null - ? null - : DateTime.parse(json['last_update'] as String), + created: json['created'] == null ? null : DateTime.parse(json['created'] as String), + lastUpdate: json['last_update'] == null ? null : DateTime.parse(json['last_update'] as String), variationId: json['variations'] as int?, ) ..categoryId = json['category'] as int - ..musclesIds = - (json['muscles'] as List).map((e) => e as int).toList() - ..musclesSecondaryIds = (json['muscles_secondary'] as List) - .map((e) => e as int) - .toList() - ..equipmentIds = - (json['equipment'] as List).map((e) => e as int).toList(); + ..musclesIds = (json['muscles'] as List).map((e) => e as int).toList() + ..musclesSecondaryIds = + (json['muscles_secondary'] as List).map((e) => e as int).toList() + ..equipmentIds = (json['equipment'] as List).map((e) => e as int).toList(); } -Map _$ExerciseBaseToJson(ExerciseBase instance) => - { +Map _$ExerciseBaseToJson(ExerciseBase instance) => { 'id': instance.id, 'uuid': instance.uuid, 'variations': instance.variationId, diff --git a/lib/models/exercises/category.g.dart b/lib/models/exercises/category.g.dart index 19383107b..915120d13 100644 --- a/lib/models/exercises/category.g.dart +++ b/lib/models/exercises/category.g.dart @@ -17,8 +17,7 @@ ExerciseCategory _$ExerciseCategoryFromJson(Map json) { ); } -Map _$ExerciseCategoryToJson(ExerciseCategory instance) => - { +Map _$ExerciseCategoryToJson(ExerciseCategory instance) => { 'id': instance.id, 'name': instance.name, }; diff --git a/lib/models/exercises/image.g.dart b/lib/models/exercises/image.g.dart index 1240dc38d..6ef7c62e4 100644 --- a/lib/models/exercises/image.g.dart +++ b/lib/models/exercises/image.g.dart @@ -20,8 +20,7 @@ ExerciseImage _$ExerciseImageFromJson(Map json) { ); } -Map _$ExerciseImageToJson(ExerciseImage instance) => - { +Map _$ExerciseImageToJson(ExerciseImage instance) => { 'id': instance.id, 'uuid': instance.uuid, 'exercise_base': instance.exerciseBaseId, diff --git a/lib/models/exercises/translation.g.dart b/lib/models/exercises/translation.g.dart index d40525477..642c2e7f2 100644 --- a/lib/models/exercises/translation.g.dart +++ b/lib/models/exercises/translation.g.dart @@ -22,17 +22,14 @@ Translation _$TranslationFromJson(Map json) { return Translation( id: json['id'] as int?, uuid: json['uuid'] as String?, - created: json['created'] == null - ? null - : DateTime.parse(json['created'] as String), + created: json['created'] == null ? null : DateTime.parse(json['created'] as String), name: json['name'] as String, description: json['description'] as String, baseId: json['exercise_base'] as int?, )..languageId = json['language'] as int; } -Map _$TranslationToJson(Translation instance) => - { +Map _$TranslationToJson(Translation instance) => { 'id': instance.id, 'uuid': instance.uuid, 'language': instance.languageId, diff --git a/lib/models/measurements/measurement_category.g.dart b/lib/models/measurements/measurement_category.g.dart index ef4ebcd30..eb887b2e7 100644 --- a/lib/models/measurements/measurement_category.g.dart +++ b/lib/models/measurements/measurement_category.g.dart @@ -22,9 +22,7 @@ MeasurementCategory _$MeasurementCategoryFromJson(Map json) { ); } -Map _$MeasurementCategoryToJson( - MeasurementCategory instance) => - { +Map _$MeasurementCategoryToJson(MeasurementCategory instance) => { 'id': instance.id, 'name': instance.name, 'unit': instance.unit, diff --git a/lib/models/measurements/measurement_entry.g.dart b/lib/models/measurements/measurement_entry.g.dart index 4b0969600..7f6e346ad 100644 --- a/lib/models/measurements/measurement_entry.g.dart +++ b/lib/models/measurements/measurement_entry.g.dart @@ -20,8 +20,7 @@ MeasurementEntry _$MeasurementEntryFromJson(Map json) { ); } -Map _$MeasurementEntryToJson(MeasurementEntry instance) => - { +Map _$MeasurementEntryToJson(MeasurementEntry instance) => { 'id': instance.id, 'category': instance.category, 'date': toDate(instance.date), diff --git a/lib/models/nutrition/image.g.dart b/lib/models/nutrition/image.g.dart index 39272d16a..0bd0771d9 100644 --- a/lib/models/nutrition/image.g.dart +++ b/lib/models/nutrition/image.g.dart @@ -38,8 +38,7 @@ IngredientImage _$IngredientImageFromJson(Map json) { ); } -Map _$IngredientImageToJson(IngredientImage instance) => - { +Map _$IngredientImageToJson(IngredientImage instance) => { 'id': instance.id, 'uuid': instance.uuid, 'ingredient_id': instance.ingredientId, diff --git a/lib/models/nutrition/ingredient.g.dart b/lib/models/nutrition/ingredient.g.dart index fcff133a6..d0ea8cfac 100644 --- a/lib/models/nutrition/ingredient.g.dart +++ b/lib/models/nutrition/ingredient.g.dart @@ -43,8 +43,7 @@ Ingredient _$IngredientFromJson(Map json) { ); } -Map _$IngredientToJson(Ingredient instance) => - { +Map _$IngredientToJson(Ingredient instance) => { 'id': instance.id, 'code': instance.code, 'name': instance.name, diff --git a/lib/models/nutrition/ingredient_weight_unit.g.dart b/lib/models/nutrition/ingredient_weight_unit.g.dart index 74b1f1015..f147a2ee1 100644 --- a/lib/models/nutrition/ingredient_weight_unit.g.dart +++ b/lib/models/nutrition/ingredient_weight_unit.g.dart @@ -13,16 +13,14 @@ IngredientWeightUnit _$IngredientWeightUnitFromJson(Map json) { ); return IngredientWeightUnit( id: json['id'] as int, - weightUnit: - WeightUnit.fromJson(json['weight_unit'] as Map), + weightUnit: WeightUnit.fromJson(json['weight_unit'] as Map), ingredient: Ingredient.fromJson(json['ingredient'] as Map), grams: json['grams'] as int, amount: (json['amount'] as num).toDouble(), ); } -Map _$IngredientWeightUnitToJson( - IngredientWeightUnit instance) => +Map _$IngredientWeightUnitToJson(IngredientWeightUnit instance) => { 'id': instance.id, 'weight_unit': instance.weightUnit, diff --git a/lib/models/nutrition/log.g.dart b/lib/models/nutrition/log.g.dart index 390687681..616901551 100644 --- a/lib/models/nutrition/log.g.dart +++ b/lib/models/nutrition/log.g.dart @@ -9,14 +9,7 @@ part of 'log.dart'; Log _$LogFromJson(Map json) { $checkKeys( json, - requiredKeys: const [ - 'id', - 'plan', - 'datetime', - 'ingredient', - 'weight_unit', - 'amount' - ], + requiredKeys: const ['id', 'plan', 'datetime', 'ingredient', 'weight_unit', 'amount'], ); return Log( id: json['id'] as int?, diff --git a/lib/models/nutrition/nutritional_plan.g.dart b/lib/models/nutrition/nutritional_plan.g.dart index 9b10d8a5a..661a9f47a 100644 --- a/lib/models/nutrition/nutritional_plan.g.dart +++ b/lib/models/nutrition/nutritional_plan.g.dart @@ -18,8 +18,7 @@ NutritionalPlan _$NutritionalPlanFromJson(Map json) { ); } -Map _$NutritionalPlanToJson(NutritionalPlan instance) => - { +Map _$NutritionalPlanToJson(NutritionalPlan instance) => { 'id': instance.id, 'description': instance.description, 'creation_date': toDate(instance.creationDate), diff --git a/lib/models/nutrition/weight_unit.g.dart b/lib/models/nutrition/weight_unit.g.dart index 74e1f0cfb..6f2b9607e 100644 --- a/lib/models/nutrition/weight_unit.g.dart +++ b/lib/models/nutrition/weight_unit.g.dart @@ -17,8 +17,7 @@ WeightUnit _$WeightUnitFromJson(Map json) { ); } -Map _$WeightUnitToJson(WeightUnit instance) => - { +Map _$WeightUnitToJson(WeightUnit instance) => { 'id': instance.id, 'name': instance.name, }; diff --git a/lib/models/user/profile.g.dart b/lib/models/user/profile.g.dart index d9147ebe9..fc05b9cf2 100644 --- a/lib/models/user/profile.g.dart +++ b/lib/models/user/profile.g.dart @@ -9,12 +9,7 @@ part of 'profile.dart'; Profile _$ProfileFromJson(Map json) { $checkKeys( json, - requiredKeys: const [ - 'username', - 'email_verified', - 'is_trustworthy', - 'email' - ], + requiredKeys: const ['username', 'email_verified', 'is_trustworthy', 'email'], ); return Profile( username: json['username'] as String, diff --git a/lib/models/workouts/repetition_unit.g.dart b/lib/models/workouts/repetition_unit.g.dart index 115dc338c..33e6a815e 100644 --- a/lib/models/workouts/repetition_unit.g.dart +++ b/lib/models/workouts/repetition_unit.g.dart @@ -17,8 +17,7 @@ RepetitionUnit _$RepetitionUnitFromJson(Map json) { ); } -Map _$RepetitionUnitToJson(RepetitionUnit instance) => - { +Map _$RepetitionUnitToJson(RepetitionUnit instance) => { 'id': instance.id, 'name': instance.name, }; diff --git a/lib/models/workouts/session.g.dart b/lib/models/workouts/session.g.dart index e16affadb..79f4fee41 100644 --- a/lib/models/workouts/session.g.dart +++ b/lib/models/workouts/session.g.dart @@ -9,14 +9,7 @@ part of 'session.dart'; WorkoutSession _$WorkoutSessionFromJson(Map json) { $checkKeys( json, - requiredKeys: const [ - 'id', - 'workout', - 'date', - 'impression', - 'time_start', - 'time_end' - ], + requiredKeys: const ['id', 'workout', 'date', 'impression', 'time_start', 'time_end'], ); return WorkoutSession() ..id = json['id'] as int? @@ -28,8 +21,7 @@ WorkoutSession _$WorkoutSessionFromJson(Map json) { ..timeEnd = stringToTime(json['time_end'] as String?); } -Map _$WorkoutSessionToJson(WorkoutSession instance) => - { +Map _$WorkoutSessionToJson(WorkoutSession instance) => { 'id': instance.id, 'workout': instance.workoutId, 'date': toDate(instance.date), diff --git a/lib/models/workouts/weight_unit.g.dart b/lib/models/workouts/weight_unit.g.dart index 74e1f0cfb..6f2b9607e 100644 --- a/lib/models/workouts/weight_unit.g.dart +++ b/lib/models/workouts/weight_unit.g.dart @@ -17,8 +17,7 @@ WeightUnit _$WeightUnitFromJson(Map json) { ); } -Map _$WeightUnitToJson(WeightUnit instance) => - { +Map _$WeightUnitToJson(WeightUnit instance) => { 'id': instance.id, 'name': instance.name, }; diff --git a/lib/models/workouts/workout_plan.g.dart b/lib/models/workouts/workout_plan.g.dart index ef156e3e0..ac1d6fa9f 100644 --- a/lib/models/workouts/workout_plan.g.dart +++ b/lib/models/workouts/workout_plan.g.dart @@ -19,8 +19,7 @@ WorkoutPlan _$WorkoutPlanFromJson(Map json) { ); } -Map _$WorkoutPlanToJson(WorkoutPlan instance) => - { +Map _$WorkoutPlanToJson(WorkoutPlan instance) => { 'id': instance.id, 'creation_date': instance.creationDate.toIso8601String(), 'name': instance.name, diff --git a/test/exercises/contribute_exercise_test.mocks.dart b/test/exercises/contribute_exercise_test.mocks.dart index d57a4f903..415e960c6 100644 --- a/test/exercises/contribute_exercise_test.mocks.dart +++ b/test/exercises/contribute_exercise_test.mocks.dart @@ -32,8 +32,7 @@ import 'package:wger/providers/user.dart' as _i15; // ignore_for_file: camel_case_types // ignore_for_file: subtype_of_sealed_class -class _FakeWgerBaseProvider_0 extends _i1.SmartFake - implements _i2.WgerBaseProvider { +class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvider { _FakeWgerBaseProvider_0( Object parent, Invocation parentInvocation, @@ -86,8 +85,7 @@ class _FakeAlias_4 extends _i1.SmartFake implements _i6.Alias { /// A class which mocks [AddExerciseProvider]. /// /// See the documentation for Mockito's code generation for more information. -class MockAddExerciseProvider extends _i1.Mock - implements _i7.AddExerciseProvider { +class MockAddExerciseProvider extends _i1.Mock implements _i7.AddExerciseProvider { MockAddExerciseProvider() { _i1.throwOnMissingStub(this); } @@ -376,8 +374,7 @@ class MockAddExerciseProvider extends _i1.Mock ) as _i13.Future); @override - _i13.Future<_i4.Translation> addExerciseTranslation( - _i4.Translation? exercise) => + _i13.Future<_i4.Translation> addExerciseTranslation(_i4.Translation? exercise) => (super.noSuchMethod( Invocation.method( #addExerciseTranslation, diff --git a/test/gallery/gallery_form_test.mocks.dart b/test/gallery/gallery_form_test.mocks.dart index 68ca4e783..c207984de 100644 --- a/test/gallery/gallery_form_test.mocks.dart +++ b/test/gallery/gallery_form_test.mocks.dart @@ -193,8 +193,7 @@ class MockGalleryProvider extends _i1.Mock implements _i4.GalleryProvider { ) as _i6.Future); @override - Map getDefaultHeaders({dynamic includeAuth = false}) => - (super.noSuchMethod( + Map getDefaultHeaders({dynamic includeAuth = false}) => (super.noSuchMethod( Invocation.method( #getDefaultHeaders, [], @@ -240,8 +239,7 @@ class MockGalleryProvider extends _i1.Mock implements _i4.GalleryProvider { #fetch, [uri], ), - returnValue: - _i6.Future>.value({}), + returnValue: _i6.Future>.value({}), ) as _i6.Future>); @override @@ -266,8 +264,7 @@ class MockGalleryProvider extends _i1.Mock implements _i4.GalleryProvider { uri, ], ), - returnValue: - _i6.Future>.value({}), + returnValue: _i6.Future>.value({}), ) as _i6.Future>); @override @@ -283,8 +280,7 @@ class MockGalleryProvider extends _i1.Mock implements _i4.GalleryProvider { uri, ], ), - returnValue: - _i6.Future>.value({}), + returnValue: _i6.Future>.value({}), ) as _i6.Future>); @override diff --git a/test/gallery/gallery_screen_test.mocks.dart b/test/gallery/gallery_screen_test.mocks.dart index 5bf657f70..0642ae7d4 100644 --- a/test/gallery/gallery_screen_test.mocks.dart +++ b/test/gallery/gallery_screen_test.mocks.dart @@ -193,8 +193,7 @@ class MockGalleryProvider extends _i1.Mock implements _i4.GalleryProvider { ) as _i6.Future); @override - Map getDefaultHeaders({dynamic includeAuth = false}) => - (super.noSuchMethod( + Map getDefaultHeaders({dynamic includeAuth = false}) => (super.noSuchMethod( Invocation.method( #getDefaultHeaders, [], @@ -240,8 +239,7 @@ class MockGalleryProvider extends _i1.Mock implements _i4.GalleryProvider { #fetch, [uri], ), - returnValue: - _i6.Future>.value({}), + returnValue: _i6.Future>.value({}), ) as _i6.Future>); @override @@ -266,8 +264,7 @@ class MockGalleryProvider extends _i1.Mock implements _i4.GalleryProvider { uri, ], ), - returnValue: - _i6.Future>.value({}), + returnValue: _i6.Future>.value({}), ) as _i6.Future>); @override @@ -283,8 +280,7 @@ class MockGalleryProvider extends _i1.Mock implements _i4.GalleryProvider { uri, ], ), - returnValue: - _i6.Future>.value({}), + returnValue: _i6.Future>.value({}), ) as _i6.Future>); @override diff --git a/test/measurements/measurement_categories_screen_test.mocks.dart b/test/measurements/measurement_categories_screen_test.mocks.dart index 4459e9d66..1ef3dc244 100644 --- a/test/measurements/measurement_categories_screen_test.mocks.dart +++ b/test/measurements/measurement_categories_screen_test.mocks.dart @@ -23,8 +23,7 @@ import 'package:wger/providers/measurement.dart' as _i4; // ignore_for_file: camel_case_types // ignore_for_file: subtype_of_sealed_class -class _FakeWgerBaseProvider_0 extends _i1.SmartFake - implements _i2.WgerBaseProvider { +class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvider { _FakeWgerBaseProvider_0( Object parent, Invocation parentInvocation, @@ -34,8 +33,7 @@ class _FakeWgerBaseProvider_0 extends _i1.SmartFake ); } -class _FakeMeasurementCategory_1 extends _i1.SmartFake - implements _i3.MeasurementCategory { +class _FakeMeasurementCategory_1 extends _i1.SmartFake implements _i3.MeasurementCategory { _FakeMeasurementCategory_1( Object parent, Invocation parentInvocation, @@ -48,8 +46,7 @@ class _FakeMeasurementCategory_1 extends _i1.SmartFake /// A class which mocks [MeasurementProvider]. /// /// See the documentation for Mockito's code generation for more information. -class MockMeasurementProvider extends _i1.Mock - implements _i4.MeasurementProvider { +class MockMeasurementProvider extends _i1.Mock implements _i4.MeasurementProvider { MockMeasurementProvider() { _i1.throwOnMissingStub(this); } @@ -130,8 +127,7 @@ class MockMeasurementProvider extends _i1.Mock ) as _i5.Future); @override - _i5.Future addCategory(_i3.MeasurementCategory? category) => - (super.noSuchMethod( + _i5.Future addCategory(_i3.MeasurementCategory? category) => (super.noSuchMethod( Invocation.method( #addCategory, [category], diff --git a/test/measurements/measurement_provider_test.mocks.dart b/test/measurements/measurement_provider_test.mocks.dart index b18f41ef6..746c0bcc8 100644 --- a/test/measurements/measurement_provider_test.mocks.dart +++ b/test/measurements/measurement_provider_test.mocks.dart @@ -106,8 +106,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { ); @override - Map getDefaultHeaders({dynamic includeAuth = false}) => - (super.noSuchMethod( + Map getDefaultHeaders({dynamic includeAuth = false}) => (super.noSuchMethod( Invocation.method( #getDefaultHeaders, [], @@ -153,8 +152,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { #fetch, [uri], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override @@ -179,8 +177,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { uri, ], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override @@ -196,8 +193,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { uri, ], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override diff --git a/test/nutrition/nutritional_meal_form_test.mocks.dart b/test/nutrition/nutritional_meal_form_test.mocks.dart index 8ed74c571..a4d10af42 100644 --- a/test/nutrition/nutritional_meal_form_test.mocks.dart +++ b/test/nutrition/nutritional_meal_form_test.mocks.dart @@ -25,8 +25,7 @@ import 'package:wger/providers/nutrition.dart' as _i7; // ignore_for_file: camel_case_types // ignore_for_file: subtype_of_sealed_class -class _FakeWgerBaseProvider_0 extends _i1.SmartFake - implements _i2.WgerBaseProvider { +class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvider { _FakeWgerBaseProvider_0( Object parent, Invocation parentInvocation, @@ -36,8 +35,7 @@ class _FakeWgerBaseProvider_0 extends _i1.SmartFake ); } -class _FakeNutritionalPlan_1 extends _i1.SmartFake - implements _i3.NutritionalPlan { +class _FakeNutritionalPlan_1 extends _i1.SmartFake implements _i3.NutritionalPlan { _FakeNutritionalPlan_1( Object parent, Invocation parentInvocation, @@ -80,8 +78,7 @@ class _FakeIngredient_4 extends _i1.SmartFake implements _i6.Ingredient { /// A class which mocks [NutritionPlansProvider]. /// /// See the documentation for Mockito's code generation for more information. -class MockNutritionPlansProvider extends _i1.Mock - implements _i7.NutritionPlansProvider { +class MockNutritionPlansProvider extends _i1.Mock implements _i7.NutritionPlansProvider { MockNutritionPlansProvider() { _i1.throwOnMissingStub(this); } @@ -167,14 +164,12 @@ class MockNutritionPlansProvider extends _i1.Mock ) as _i8.Future); @override - _i8.Future<_i3.NutritionalPlan> fetchAndSetPlanSparse(int? planId) => - (super.noSuchMethod( + _i8.Future<_i3.NutritionalPlan> fetchAndSetPlanSparse(int? planId) => (super.noSuchMethod( Invocation.method( #fetchAndSetPlanSparse, [planId], ), - returnValue: - _i8.Future<_i3.NutritionalPlan>.value(_FakeNutritionalPlan_1( + returnValue: _i8.Future<_i3.NutritionalPlan>.value(_FakeNutritionalPlan_1( this, Invocation.method( #fetchAndSetPlanSparse, @@ -184,14 +179,12 @@ class MockNutritionPlansProvider extends _i1.Mock ) as _i8.Future<_i3.NutritionalPlan>); @override - _i8.Future<_i3.NutritionalPlan> fetchAndSetPlanFull(int? planId) => - (super.noSuchMethod( + _i8.Future<_i3.NutritionalPlan> fetchAndSetPlanFull(int? planId) => (super.noSuchMethod( Invocation.method( #fetchAndSetPlanFull, [planId], ), - returnValue: - _i8.Future<_i3.NutritionalPlan>.value(_FakeNutritionalPlan_1( + returnValue: _i8.Future<_i3.NutritionalPlan>.value(_FakeNutritionalPlan_1( this, Invocation.method( #fetchAndSetPlanFull, @@ -201,14 +194,12 @@ class MockNutritionPlansProvider extends _i1.Mock ) as _i8.Future<_i3.NutritionalPlan>); @override - _i8.Future<_i3.NutritionalPlan> addPlan(_i3.NutritionalPlan? planData) => - (super.noSuchMethod( + _i8.Future<_i3.NutritionalPlan> addPlan(_i3.NutritionalPlan? planData) => (super.noSuchMethod( Invocation.method( #addPlan, [planData], ), - returnValue: - _i8.Future<_i3.NutritionalPlan>.value(_FakeNutritionalPlan_1( + returnValue: _i8.Future<_i3.NutritionalPlan>.value(_FakeNutritionalPlan_1( this, Invocation.method( #addPlan, @@ -313,8 +304,7 @@ class MockNutritionPlansProvider extends _i1.Mock ) as _i8.Future<_i5.MealItem>); @override - _i8.Future deleteMealItem(_i5.MealItem? mealItem) => - (super.noSuchMethod( + _i8.Future deleteMealItem(_i5.MealItem? mealItem) => (super.noSuchMethod( Invocation.method( #deleteMealItem, [mealItem], @@ -324,8 +314,7 @@ class MockNutritionPlansProvider extends _i1.Mock ) as _i8.Future); @override - _i8.Future<_i6.Ingredient> fetchIngredient(int? ingredientId) => - (super.noSuchMethod( + _i8.Future<_i6.Ingredient> fetchIngredient(int? ingredientId) => (super.noSuchMethod( Invocation.method( #fetchIngredient, [ingredientId], @@ -368,8 +357,7 @@ class MockNutritionPlansProvider extends _i1.Mock ) as _i8.Future>); @override - _i8.Future<_i6.Ingredient?> searchIngredientWithCode(String? code) => - (super.noSuchMethod( + _i8.Future<_i6.Ingredient?> searchIngredientWithCode(String? code) => (super.noSuchMethod( Invocation.method( #searchIngredientWithCode, [code], @@ -424,8 +412,7 @@ class MockNutritionPlansProvider extends _i1.Mock ) as _i8.Future); @override - _i8.Future fetchAndSetLogs(_i3.NutritionalPlan? plan) => - (super.noSuchMethod( + _i8.Future fetchAndSetLogs(_i3.NutritionalPlan? plan) => (super.noSuchMethod( Invocation.method( #fetchAndSetLogs, [plan], diff --git a/test/nutrition/nutritional_plan_form_test.mocks.dart b/test/nutrition/nutritional_plan_form_test.mocks.dart index a2b1b9702..ad0fb5e1e 100644 --- a/test/nutrition/nutritional_plan_form_test.mocks.dart +++ b/test/nutrition/nutritional_plan_form_test.mocks.dart @@ -25,8 +25,7 @@ import 'package:wger/providers/nutrition.dart' as _i7; // ignore_for_file: camel_case_types // ignore_for_file: subtype_of_sealed_class -class _FakeWgerBaseProvider_0 extends _i1.SmartFake - implements _i2.WgerBaseProvider { +class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvider { _FakeWgerBaseProvider_0( Object parent, Invocation parentInvocation, @@ -36,8 +35,7 @@ class _FakeWgerBaseProvider_0 extends _i1.SmartFake ); } -class _FakeNutritionalPlan_1 extends _i1.SmartFake - implements _i3.NutritionalPlan { +class _FakeNutritionalPlan_1 extends _i1.SmartFake implements _i3.NutritionalPlan { _FakeNutritionalPlan_1( Object parent, Invocation parentInvocation, @@ -80,8 +78,7 @@ class _FakeIngredient_4 extends _i1.SmartFake implements _i6.Ingredient { /// A class which mocks [NutritionPlansProvider]. /// /// See the documentation for Mockito's code generation for more information. -class MockNutritionPlansProvider extends _i1.Mock - implements _i7.NutritionPlansProvider { +class MockNutritionPlansProvider extends _i1.Mock implements _i7.NutritionPlansProvider { MockNutritionPlansProvider() { _i1.throwOnMissingStub(this); } @@ -167,14 +164,12 @@ class MockNutritionPlansProvider extends _i1.Mock ) as _i8.Future); @override - _i8.Future<_i3.NutritionalPlan> fetchAndSetPlanSparse(int? planId) => - (super.noSuchMethod( + _i8.Future<_i3.NutritionalPlan> fetchAndSetPlanSparse(int? planId) => (super.noSuchMethod( Invocation.method( #fetchAndSetPlanSparse, [planId], ), - returnValue: - _i8.Future<_i3.NutritionalPlan>.value(_FakeNutritionalPlan_1( + returnValue: _i8.Future<_i3.NutritionalPlan>.value(_FakeNutritionalPlan_1( this, Invocation.method( #fetchAndSetPlanSparse, @@ -184,14 +179,12 @@ class MockNutritionPlansProvider extends _i1.Mock ) as _i8.Future<_i3.NutritionalPlan>); @override - _i8.Future<_i3.NutritionalPlan> fetchAndSetPlanFull(int? planId) => - (super.noSuchMethod( + _i8.Future<_i3.NutritionalPlan> fetchAndSetPlanFull(int? planId) => (super.noSuchMethod( Invocation.method( #fetchAndSetPlanFull, [planId], ), - returnValue: - _i8.Future<_i3.NutritionalPlan>.value(_FakeNutritionalPlan_1( + returnValue: _i8.Future<_i3.NutritionalPlan>.value(_FakeNutritionalPlan_1( this, Invocation.method( #fetchAndSetPlanFull, @@ -201,14 +194,12 @@ class MockNutritionPlansProvider extends _i1.Mock ) as _i8.Future<_i3.NutritionalPlan>); @override - _i8.Future<_i3.NutritionalPlan> addPlan(_i3.NutritionalPlan? planData) => - (super.noSuchMethod( + _i8.Future<_i3.NutritionalPlan> addPlan(_i3.NutritionalPlan? planData) => (super.noSuchMethod( Invocation.method( #addPlan, [planData], ), - returnValue: - _i8.Future<_i3.NutritionalPlan>.value(_FakeNutritionalPlan_1( + returnValue: _i8.Future<_i3.NutritionalPlan>.value(_FakeNutritionalPlan_1( this, Invocation.method( #addPlan, @@ -313,8 +304,7 @@ class MockNutritionPlansProvider extends _i1.Mock ) as _i8.Future<_i5.MealItem>); @override - _i8.Future deleteMealItem(_i5.MealItem? mealItem) => - (super.noSuchMethod( + _i8.Future deleteMealItem(_i5.MealItem? mealItem) => (super.noSuchMethod( Invocation.method( #deleteMealItem, [mealItem], @@ -324,8 +314,7 @@ class MockNutritionPlansProvider extends _i1.Mock ) as _i8.Future); @override - _i8.Future<_i6.Ingredient> fetchIngredient(int? ingredientId) => - (super.noSuchMethod( + _i8.Future<_i6.Ingredient> fetchIngredient(int? ingredientId) => (super.noSuchMethod( Invocation.method( #fetchIngredient, [ingredientId], @@ -368,8 +357,7 @@ class MockNutritionPlansProvider extends _i1.Mock ) as _i8.Future>); @override - _i8.Future<_i6.Ingredient?> searchIngredientWithCode(String? code) => - (super.noSuchMethod( + _i8.Future<_i6.Ingredient?> searchIngredientWithCode(String? code) => (super.noSuchMethod( Invocation.method( #searchIngredientWithCode, [code], @@ -424,8 +412,7 @@ class MockNutritionPlansProvider extends _i1.Mock ) as _i8.Future); @override - _i8.Future fetchAndSetLogs(_i3.NutritionalPlan? plan) => - (super.noSuchMethod( + _i8.Future fetchAndSetLogs(_i3.NutritionalPlan? plan) => (super.noSuchMethod( Invocation.method( #fetchAndSetLogs, [plan], diff --git a/test/nutrition/nutritional_plan_screen_test.mocks.dart b/test/nutrition/nutritional_plan_screen_test.mocks.dart index da991af90..eee84b13c 100644 --- a/test/nutrition/nutritional_plan_screen_test.mocks.dart +++ b/test/nutrition/nutritional_plan_screen_test.mocks.dart @@ -65,8 +65,7 @@ class _FakeResponse_3 extends _i1.SmartFake implements _i3.Response { ); } -class _FakeStreamedResponse_4 extends _i1.SmartFake - implements _i3.StreamedResponse { +class _FakeStreamedResponse_4 extends _i1.SmartFake implements _i3.StreamedResponse { _FakeStreamedResponse_4( Object parent, Invocation parentInvocation, @@ -121,8 +120,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { ); @override - Map getDefaultHeaders({dynamic includeAuth = false}) => - (super.noSuchMethod( + Map getDefaultHeaders({dynamic includeAuth = false}) => (super.noSuchMethod( Invocation.method( #getDefaultHeaders, [], @@ -168,8 +166,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { #fetch, [uri], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override @@ -194,8 +191,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { uri, ], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override @@ -211,8 +207,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { uri, ], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override @@ -277,8 +272,7 @@ class MockAuthProvider extends _i1.Mock implements _i2.AuthProvider { ); @override - set applicationVersion(_i6.PackageInfo? _applicationVersion) => - super.noSuchMethod( + set applicationVersion(_i6.PackageInfo? _applicationVersion) => super.noSuchMethod( Invocation.setter( #applicationVersion, _applicationVersion, @@ -410,8 +404,7 @@ class MockAuthProvider extends _i1.Mock implements _i2.AuthProvider { #serverUrl: serverUrl, }, ), - returnValue: _i5.Future>.value( - {}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override @@ -429,8 +422,7 @@ class MockAuthProvider extends _i1.Mock implements _i2.AuthProvider { serverUrl, ], ), - returnValue: _i5.Future>.value( - {}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override @@ -711,14 +703,12 @@ class MockClient extends _i1.Mock implements _i3.Client { ) as _i5.Future<_i9.Uint8List>); @override - _i5.Future<_i3.StreamedResponse> send(_i3.BaseRequest? request) => - (super.noSuchMethod( + _i5.Future<_i3.StreamedResponse> send(_i3.BaseRequest? request) => (super.noSuchMethod( Invocation.method( #send, [request], ), - returnValue: - _i5.Future<_i3.StreamedResponse>.value(_FakeStreamedResponse_4( + returnValue: _i5.Future<_i3.StreamedResponse>.value(_FakeStreamedResponse_4( this, Invocation.method( #send, diff --git a/test/nutrition/nutritional_plans_screen_test.mocks.dart b/test/nutrition/nutritional_plans_screen_test.mocks.dart index 2cee1227f..4cda1a3db 100644 --- a/test/nutrition/nutritional_plans_screen_test.mocks.dart +++ b/test/nutrition/nutritional_plans_screen_test.mocks.dart @@ -65,8 +65,7 @@ class _FakeResponse_3 extends _i1.SmartFake implements _i2.Response { ); } -class _FakeStreamedResponse_4 extends _i1.SmartFake - implements _i2.StreamedResponse { +class _FakeStreamedResponse_4 extends _i1.SmartFake implements _i2.StreamedResponse { _FakeStreamedResponse_4( Object parent, Invocation parentInvocation, @@ -112,8 +111,7 @@ class MockAuthProvider extends _i1.Mock implements _i3.AuthProvider { ); @override - set applicationVersion(_i4.PackageInfo? _applicationVersion) => - super.noSuchMethod( + set applicationVersion(_i4.PackageInfo? _applicationVersion) => super.noSuchMethod( Invocation.setter( #applicationVersion, _applicationVersion, @@ -245,8 +243,7 @@ class MockAuthProvider extends _i1.Mock implements _i3.AuthProvider { #serverUrl: serverUrl, }, ), - returnValue: _i5.Future>.value( - {}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override @@ -264,8 +261,7 @@ class MockAuthProvider extends _i1.Mock implements _i3.AuthProvider { serverUrl, ], ), - returnValue: _i5.Future>.value( - {}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override @@ -388,8 +384,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i7.WgerBaseProvider { ); @override - Map getDefaultHeaders({dynamic includeAuth = false}) => - (super.noSuchMethod( + Map getDefaultHeaders({dynamic includeAuth = false}) => (super.noSuchMethod( Invocation.method( #getDefaultHeaders, [], @@ -435,8 +430,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i7.WgerBaseProvider { #fetch, [uri], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override @@ -461,8 +455,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i7.WgerBaseProvider { uri, ], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override @@ -478,8 +471,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i7.WgerBaseProvider { uri, ], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override @@ -711,14 +703,12 @@ class MockClient extends _i1.Mock implements _i2.Client { ) as _i5.Future<_i9.Uint8List>); @override - _i5.Future<_i2.StreamedResponse> send(_i2.BaseRequest? request) => - (super.noSuchMethod( + _i5.Future<_i2.StreamedResponse> send(_i2.BaseRequest? request) => (super.noSuchMethod( Invocation.method( #send, [request], ), - returnValue: - _i5.Future<_i2.StreamedResponse>.value(_FakeStreamedResponse_4( + returnValue: _i5.Future<_i2.StreamedResponse>.value(_FakeStreamedResponse_4( this, Invocation.method( #send, diff --git a/test/other/base_provider_test.mocks.dart b/test/other/base_provider_test.mocks.dart index aeb648c76..b9f7770ed 100644 --- a/test/other/base_provider_test.mocks.dart +++ b/test/other/base_provider_test.mocks.dart @@ -31,8 +31,7 @@ class _FakeResponse_0 extends _i1.SmartFake implements _i2.Response { ); } -class _FakeStreamedResponse_1 extends _i1.SmartFake - implements _i2.StreamedResponse { +class _FakeStreamedResponse_1 extends _i1.SmartFake implements _i2.StreamedResponse { _FakeStreamedResponse_1( Object parent, Invocation parentInvocation, @@ -245,14 +244,12 @@ class MockClient extends _i1.Mock implements _i2.Client { ) as _i3.Future<_i5.Uint8List>); @override - _i3.Future<_i2.StreamedResponse> send(_i2.BaseRequest? request) => - (super.noSuchMethod( + _i3.Future<_i2.StreamedResponse> send(_i2.BaseRequest? request) => (super.noSuchMethod( Invocation.method( #send, [request], ), - returnValue: - _i3.Future<_i2.StreamedResponse>.value(_FakeStreamedResponse_1( + returnValue: _i3.Future<_i2.StreamedResponse>.value(_FakeStreamedResponse_1( this, Invocation.method( #send, diff --git a/test/user/provider_test.mocks.dart b/test/user/provider_test.mocks.dart index d6dc8d6eb..3f8bd77a2 100644 --- a/test/user/provider_test.mocks.dart +++ b/test/user/provider_test.mocks.dart @@ -106,8 +106,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { ); @override - Map getDefaultHeaders({dynamic includeAuth = false}) => - (super.noSuchMethod( + Map getDefaultHeaders({dynamic includeAuth = false}) => (super.noSuchMethod( Invocation.method( #getDefaultHeaders, [], @@ -153,8 +152,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { #fetch, [uri], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override @@ -179,8 +177,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { uri, ], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override @@ -196,8 +193,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { uri, ], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override diff --git a/test/weight/weight_provider_test.mocks.dart b/test/weight/weight_provider_test.mocks.dart index 352c53ad1..8d12e498e 100644 --- a/test/weight/weight_provider_test.mocks.dart +++ b/test/weight/weight_provider_test.mocks.dart @@ -106,8 +106,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { ); @override - Map getDefaultHeaders({dynamic includeAuth = false}) => - (super.noSuchMethod( + Map getDefaultHeaders({dynamic includeAuth = false}) => (super.noSuchMethod( Invocation.method( #getDefaultHeaders, [], @@ -153,8 +152,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { #fetch, [uri], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override @@ -179,8 +177,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { uri, ], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override @@ -196,8 +193,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { uri, ], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override diff --git a/test/weight/weight_screen_test.mocks.dart b/test/weight/weight_screen_test.mocks.dart index a63186b3d..f53b8c2fe 100644 --- a/test/weight/weight_screen_test.mocks.dart +++ b/test/weight/weight_screen_test.mocks.dart @@ -22,8 +22,7 @@ import 'package:wger/providers/body_weight.dart' as _i4; // ignore_for_file: camel_case_types // ignore_for_file: subtype_of_sealed_class -class _FakeWgerBaseProvider_0 extends _i1.SmartFake - implements _i2.WgerBaseProvider { +class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvider { _FakeWgerBaseProvider_0( Object parent, Invocation parentInvocation, @@ -46,8 +45,7 @@ class _FakeWeightEntry_1 extends _i1.SmartFake implements _i3.WeightEntry { /// A class which mocks [BodyWeightProvider]. /// /// See the documentation for Mockito's code generation for more information. -class MockBodyWeightProvider extends _i1.Mock - implements _i4.BodyWeightProvider { +class MockBodyWeightProvider extends _i1.Mock implements _i4.BodyWeightProvider { MockBodyWeightProvider() { _i1.throwOnMissingStub(this); } @@ -107,8 +105,7 @@ class MockBodyWeightProvider extends _i1.Mock ) as _i3.WeightEntry); @override - _i3.WeightEntry? findByDate(DateTime? date) => - (super.noSuchMethod(Invocation.method( + _i3.WeightEntry? findByDate(DateTime? date) => (super.noSuchMethod(Invocation.method( #findByDate, [date], )) as _i3.WeightEntry?); @@ -119,13 +116,11 @@ class MockBodyWeightProvider extends _i1.Mock #fetchAndSetEntries, [], ), - returnValue: - _i5.Future>.value(<_i3.WeightEntry>[]), + returnValue: _i5.Future>.value(<_i3.WeightEntry>[]), ) as _i5.Future>); @override - _i5.Future<_i3.WeightEntry> addEntry(_i3.WeightEntry? entry) => - (super.noSuchMethod( + _i5.Future<_i3.WeightEntry> addEntry(_i3.WeightEntry? entry) => (super.noSuchMethod( Invocation.method( #addEntry, [entry], diff --git a/test/workout/gym_mode_screen_test.mocks.dart b/test/workout/gym_mode_screen_test.mocks.dart index b32f85875..033e344e8 100644 --- a/test/workout/gym_mode_screen_test.mocks.dart +++ b/test/workout/gym_mode_screen_test.mocks.dart @@ -68,8 +68,7 @@ class _FakeResponse_3 extends _i1.SmartFake implements _i3.Response { ); } -class _FakeWgerBaseProvider_4 extends _i1.SmartFake - implements _i4.WgerBaseProvider { +class _FakeWgerBaseProvider_4 extends _i1.SmartFake implements _i4.WgerBaseProvider { _FakeWgerBaseProvider_4( Object parent, Invocation parentInvocation, @@ -89,8 +88,7 @@ class _FakeExerciseBase_5 extends _i1.SmartFake implements _i5.ExerciseBase { ); } -class _FakeExerciseCategory_6 extends _i1.SmartFake - implements _i6.ExerciseCategory { +class _FakeExerciseCategory_6 extends _i1.SmartFake implements _i6.ExerciseCategory { _FakeExerciseCategory_6( Object parent, Invocation parentInvocation, @@ -175,8 +173,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { ); @override - Map getDefaultHeaders({dynamic includeAuth = false}) => - (super.noSuchMethod( + Map getDefaultHeaders({dynamic includeAuth = false}) => (super.noSuchMethod( Invocation.method( #getDefaultHeaders, [], @@ -222,8 +219,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { #fetch, [uri], ), - returnValue: - _i10.Future>.value({}), + returnValue: _i10.Future>.value({}), ) as _i10.Future>); @override @@ -248,8 +244,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { uri, ], ), - returnValue: - _i10.Future>.value({}), + returnValue: _i10.Future>.value({}), ) as _i10.Future>); @override @@ -265,8 +260,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { uri, ], ), - returnValue: - _i10.Future>.value({}), + returnValue: _i10.Future>.value({}), ) as _i10.Future>); @override @@ -313,8 +307,7 @@ class MockExercisesProvider extends _i1.Mock implements _i11.ExercisesProvider { ) as _i4.WgerBaseProvider); @override - set exerciseBases(List<_i5.ExerciseBase>? exercisesBases) => - super.noSuchMethod( + set exerciseBases(List<_i5.ExerciseBase>? exercisesBases) => super.noSuchMethod( Invocation.setter( #exerciseBases, exercisesBases, @@ -329,8 +322,7 @@ class MockExercisesProvider extends _i1.Mock implements _i11.ExercisesProvider { ) as List<_i5.ExerciseBase>); @override - set filteredExerciseBases(List<_i5.ExerciseBase>? newFilteredExercises) => - super.noSuchMethod( + set filteredExerciseBases(List<_i5.ExerciseBase>? newFilteredExercises) => super.noSuchMethod( Invocation.setter( #filteredExerciseBases, newFilteredExercises, @@ -339,8 +331,7 @@ class MockExercisesProvider extends _i1.Mock implements _i11.ExercisesProvider { ); @override - Map> get exerciseBasesByVariation => - (super.noSuchMethod( + Map> get exerciseBasesByVariation => (super.noSuchMethod( Invocation.getter(#exerciseBasesByVariation), returnValue: >{}, ) as Map>); @@ -559,8 +550,7 @@ class MockExercisesProvider extends _i1.Mock implements _i11.ExercisesProvider { ) as _i10.Future); @override - _i10.Future<_i5.ExerciseBase> fetchAndSetExerciseBase(int? exerciseBaseId) => - (super.noSuchMethod( + _i10.Future<_i5.ExerciseBase> fetchAndSetExerciseBase(int? exerciseBaseId) => (super.noSuchMethod( Invocation.method( #fetchAndSetExerciseBase, [exerciseBaseId], @@ -575,8 +565,7 @@ class MockExercisesProvider extends _i1.Mock implements _i11.ExercisesProvider { ) as _i10.Future<_i5.ExerciseBase>); @override - _i5.ExerciseBase readExerciseBaseFromBaseInfo(dynamic baseData) => - (super.noSuchMethod( + _i5.ExerciseBase readExerciseBaseFromBaseInfo(dynamic baseData) => (super.noSuchMethod( Invocation.method( #readExerciseBaseFromBaseInfo, [baseData], @@ -625,8 +614,7 @@ class MockExercisesProvider extends _i1.Mock implements _i11.ExercisesProvider { #searchEnglish: searchEnglish, }, ), - returnValue: - _i10.Future>.value(<_i5.ExerciseBase>[]), + returnValue: _i10.Future>.value(<_i5.ExerciseBase>[]), ) as _i10.Future>); @override diff --git a/test/workout/repetition_unit_form_widget_test.mocks.dart b/test/workout/repetition_unit_form_widget_test.mocks.dart index 07ecf14bc..956588067 100644 --- a/test/workout/repetition_unit_form_widget_test.mocks.dart +++ b/test/workout/repetition_unit_form_widget_test.mocks.dart @@ -31,8 +31,7 @@ import 'package:wger/providers/workout_plans.dart' as _i11; // ignore_for_file: camel_case_types // ignore_for_file: subtype_of_sealed_class -class _FakeWgerBaseProvider_0 extends _i1.SmartFake - implements _i2.WgerBaseProvider { +class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvider { _FakeWgerBaseProvider_0( Object parent, Invocation parentInvocation, @@ -52,8 +51,7 @@ class _FakeWeightUnit_1 extends _i1.SmartFake implements _i3.WeightUnit { ); } -class _FakeRepetitionUnit_2 extends _i1.SmartFake - implements _i4.RepetitionUnit { +class _FakeRepetitionUnit_2 extends _i1.SmartFake implements _i4.RepetitionUnit { _FakeRepetitionUnit_2( Object parent, Invocation parentInvocation, @@ -103,8 +101,7 @@ class _FakeSetting_6 extends _i1.SmartFake implements _i8.Setting { ); } -class _FakeWorkoutSession_7 extends _i1.SmartFake - implements _i9.WorkoutSession { +class _FakeWorkoutSession_7 extends _i1.SmartFake implements _i9.WorkoutSession { _FakeWorkoutSession_7( Object parent, Invocation parentInvocation, @@ -127,8 +124,7 @@ class _FakeLog_8 extends _i1.SmartFake implements _i10.Log { /// A class which mocks [WorkoutPlansProvider]. /// /// See the documentation for Mockito's code generation for more information. -class MockWorkoutPlansProvider extends _i1.Mock - implements _i11.WorkoutPlansProvider { +class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProvider { MockWorkoutPlansProvider() { _i1.throwOnMissingStub(this); } @@ -265,8 +261,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i12.Future); @override - _i12.Future<_i5.WorkoutPlan> fetchAndSetPlanSparse(int? planId) => - (super.noSuchMethod( + _i12.Future<_i5.WorkoutPlan> fetchAndSetPlanSparse(int? planId) => (super.noSuchMethod( Invocation.method( #fetchAndSetPlanSparse, [planId], @@ -281,8 +276,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i12.Future<_i5.WorkoutPlan>); @override - _i12.Future<_i5.WorkoutPlan> fetchAndSetWorkoutPlanFull(int? workoutId) => - (super.noSuchMethod( + _i12.Future<_i5.WorkoutPlan> fetchAndSetWorkoutPlanFull(int? workoutId) => (super.noSuchMethod( Invocation.method( #fetchAndSetWorkoutPlanFull, [workoutId], @@ -297,8 +291,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i12.Future<_i5.WorkoutPlan>); @override - _i12.Future<_i5.WorkoutPlan> addWorkout(_i5.WorkoutPlan? workout) => - (super.noSuchMethod( + _i12.Future<_i5.WorkoutPlan> addWorkout(_i5.WorkoutPlan? workout) => (super.noSuchMethod( Invocation.method( #addWorkout, [workout], @@ -313,8 +306,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i12.Future<_i5.WorkoutPlan>); @override - _i12.Future editWorkout(_i5.WorkoutPlan? workout) => - (super.noSuchMethod( + _i12.Future editWorkout(_i5.WorkoutPlan? workout) => (super.noSuchMethod( Invocation.method( #editWorkout, [workout], @@ -346,8 +338,7 @@ class MockWorkoutPlansProvider extends _i1.Mock base, ], ), - returnValue: - _i12.Future>.value({}), + returnValue: _i12.Future>.value({}), ) as _i12.Future>); @override @@ -467,8 +458,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i12.Future>); @override - _i12.Future fetchComputedSettings(_i7.Set? workoutSet) => - (super.noSuchMethod( + _i12.Future fetchComputedSettings(_i7.Set? workoutSet) => (super.noSuchMethod( Invocation.method( #fetchComputedSettings, [workoutSet], @@ -504,8 +494,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i12.Future); @override - _i12.Future<_i8.Setting> addSetting(_i8.Setting? workoutSetting) => - (super.noSuchMethod( + _i12.Future<_i8.Setting> addSetting(_i8.Setting? workoutSetting) => (super.noSuchMethod( Invocation.method( #addSetting, [workoutSetting], @@ -529,14 +518,12 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i12.Future); @override - _i12.Future<_i9.WorkoutSession> addSession(_i9.WorkoutSession? session) => - (super.noSuchMethod( + _i12.Future<_i9.WorkoutSession> addSession(_i9.WorkoutSession? session) => (super.noSuchMethod( Invocation.method( #addSession, [session], ), - returnValue: - _i12.Future<_i9.WorkoutSession>.value(_FakeWorkoutSession_7( + returnValue: _i12.Future<_i9.WorkoutSession>.value(_FakeWorkoutSession_7( this, Invocation.method( #addSession, diff --git a/test/workout/weight_unit_form_widget_test.mocks.dart b/test/workout/weight_unit_form_widget_test.mocks.dart index 7dacae9e1..2bb2c28a6 100644 --- a/test/workout/weight_unit_form_widget_test.mocks.dart +++ b/test/workout/weight_unit_form_widget_test.mocks.dart @@ -22,8 +22,7 @@ import 'package:wger/providers/body_weight.dart' as _i4; // ignore_for_file: camel_case_types // ignore_for_file: subtype_of_sealed_class -class _FakeWgerBaseProvider_0 extends _i1.SmartFake - implements _i2.WgerBaseProvider { +class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvider { _FakeWgerBaseProvider_0( Object parent, Invocation parentInvocation, @@ -46,8 +45,7 @@ class _FakeWeightEntry_1 extends _i1.SmartFake implements _i3.WeightEntry { /// A class which mocks [BodyWeightProvider]. /// /// See the documentation for Mockito's code generation for more information. -class MockBodyWeightProvider extends _i1.Mock - implements _i4.BodyWeightProvider { +class MockBodyWeightProvider extends _i1.Mock implements _i4.BodyWeightProvider { MockBodyWeightProvider() { _i1.throwOnMissingStub(this); } @@ -107,8 +105,7 @@ class MockBodyWeightProvider extends _i1.Mock ) as _i3.WeightEntry); @override - _i3.WeightEntry? findByDate(DateTime? date) => - (super.noSuchMethod(Invocation.method( + _i3.WeightEntry? findByDate(DateTime? date) => (super.noSuchMethod(Invocation.method( #findByDate, [date], )) as _i3.WeightEntry?); @@ -119,13 +116,11 @@ class MockBodyWeightProvider extends _i1.Mock #fetchAndSetEntries, [], ), - returnValue: - _i5.Future>.value(<_i3.WeightEntry>[]), + returnValue: _i5.Future>.value(<_i3.WeightEntry>[]), ) as _i5.Future>); @override - _i5.Future<_i3.WeightEntry> addEntry(_i3.WeightEntry? entry) => - (super.noSuchMethod( + _i5.Future<_i3.WeightEntry> addEntry(_i3.WeightEntry? entry) => (super.noSuchMethod( Invocation.method( #addEntry, [entry], diff --git a/test/workout/workout_day_form_test.mocks.dart b/test/workout/workout_day_form_test.mocks.dart index c147b84f0..9811b312b 100644 --- a/test/workout/workout_day_form_test.mocks.dart +++ b/test/workout/workout_day_form_test.mocks.dart @@ -31,8 +31,7 @@ import 'package:wger/providers/workout_plans.dart' as _i11; // ignore_for_file: camel_case_types // ignore_for_file: subtype_of_sealed_class -class _FakeWgerBaseProvider_0 extends _i1.SmartFake - implements _i2.WgerBaseProvider { +class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvider { _FakeWgerBaseProvider_0( Object parent, Invocation parentInvocation, @@ -52,8 +51,7 @@ class _FakeWeightUnit_1 extends _i1.SmartFake implements _i3.WeightUnit { ); } -class _FakeRepetitionUnit_2 extends _i1.SmartFake - implements _i4.RepetitionUnit { +class _FakeRepetitionUnit_2 extends _i1.SmartFake implements _i4.RepetitionUnit { _FakeRepetitionUnit_2( Object parent, Invocation parentInvocation, @@ -103,8 +101,7 @@ class _FakeSetting_6 extends _i1.SmartFake implements _i8.Setting { ); } -class _FakeWorkoutSession_7 extends _i1.SmartFake - implements _i9.WorkoutSession { +class _FakeWorkoutSession_7 extends _i1.SmartFake implements _i9.WorkoutSession { _FakeWorkoutSession_7( Object parent, Invocation parentInvocation, @@ -127,8 +124,7 @@ class _FakeLog_8 extends _i1.SmartFake implements _i10.Log { /// A class which mocks [WorkoutPlansProvider]. /// /// See the documentation for Mockito's code generation for more information. -class MockWorkoutPlansProvider extends _i1.Mock - implements _i11.WorkoutPlansProvider { +class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProvider { MockWorkoutPlansProvider() { _i1.throwOnMissingStub(this); } @@ -265,8 +261,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i12.Future); @override - _i12.Future<_i5.WorkoutPlan> fetchAndSetPlanSparse(int? planId) => - (super.noSuchMethod( + _i12.Future<_i5.WorkoutPlan> fetchAndSetPlanSparse(int? planId) => (super.noSuchMethod( Invocation.method( #fetchAndSetPlanSparse, [planId], @@ -281,8 +276,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i12.Future<_i5.WorkoutPlan>); @override - _i12.Future<_i5.WorkoutPlan> fetchAndSetWorkoutPlanFull(int? workoutId) => - (super.noSuchMethod( + _i12.Future<_i5.WorkoutPlan> fetchAndSetWorkoutPlanFull(int? workoutId) => (super.noSuchMethod( Invocation.method( #fetchAndSetWorkoutPlanFull, [workoutId], @@ -297,8 +291,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i12.Future<_i5.WorkoutPlan>); @override - _i12.Future<_i5.WorkoutPlan> addWorkout(_i5.WorkoutPlan? workout) => - (super.noSuchMethod( + _i12.Future<_i5.WorkoutPlan> addWorkout(_i5.WorkoutPlan? workout) => (super.noSuchMethod( Invocation.method( #addWorkout, [workout], @@ -313,8 +306,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i12.Future<_i5.WorkoutPlan>); @override - _i12.Future editWorkout(_i5.WorkoutPlan? workout) => - (super.noSuchMethod( + _i12.Future editWorkout(_i5.WorkoutPlan? workout) => (super.noSuchMethod( Invocation.method( #editWorkout, [workout], @@ -346,8 +338,7 @@ class MockWorkoutPlansProvider extends _i1.Mock base, ], ), - returnValue: - _i12.Future>.value({}), + returnValue: _i12.Future>.value({}), ) as _i12.Future>); @override @@ -467,8 +458,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i12.Future>); @override - _i12.Future fetchComputedSettings(_i7.Set? workoutSet) => - (super.noSuchMethod( + _i12.Future fetchComputedSettings(_i7.Set? workoutSet) => (super.noSuchMethod( Invocation.method( #fetchComputedSettings, [workoutSet], @@ -504,8 +494,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i12.Future); @override - _i12.Future<_i8.Setting> addSetting(_i8.Setting? workoutSetting) => - (super.noSuchMethod( + _i12.Future<_i8.Setting> addSetting(_i8.Setting? workoutSetting) => (super.noSuchMethod( Invocation.method( #addSetting, [workoutSetting], @@ -529,14 +518,12 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i12.Future); @override - _i12.Future<_i9.WorkoutSession> addSession(_i9.WorkoutSession? session) => - (super.noSuchMethod( + _i12.Future<_i9.WorkoutSession> addSession(_i9.WorkoutSession? session) => (super.noSuchMethod( Invocation.method( #addSession, [session], ), - returnValue: - _i12.Future<_i9.WorkoutSession>.value(_FakeWorkoutSession_7( + returnValue: _i12.Future<_i9.WorkoutSession>.value(_FakeWorkoutSession_7( this, Invocation.method( #addSession, diff --git a/test/workout/workout_form_test.mocks.dart b/test/workout/workout_form_test.mocks.dart index a61e2a921..26964b783 100644 --- a/test/workout/workout_form_test.mocks.dart +++ b/test/workout/workout_form_test.mocks.dart @@ -31,8 +31,7 @@ import 'package:wger/providers/workout_plans.dart' as _i11; // ignore_for_file: camel_case_types // ignore_for_file: subtype_of_sealed_class -class _FakeWgerBaseProvider_0 extends _i1.SmartFake - implements _i2.WgerBaseProvider { +class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvider { _FakeWgerBaseProvider_0( Object parent, Invocation parentInvocation, @@ -52,8 +51,7 @@ class _FakeWeightUnit_1 extends _i1.SmartFake implements _i3.WeightUnit { ); } -class _FakeRepetitionUnit_2 extends _i1.SmartFake - implements _i4.RepetitionUnit { +class _FakeRepetitionUnit_2 extends _i1.SmartFake implements _i4.RepetitionUnit { _FakeRepetitionUnit_2( Object parent, Invocation parentInvocation, @@ -103,8 +101,7 @@ class _FakeSetting_6 extends _i1.SmartFake implements _i8.Setting { ); } -class _FakeWorkoutSession_7 extends _i1.SmartFake - implements _i9.WorkoutSession { +class _FakeWorkoutSession_7 extends _i1.SmartFake implements _i9.WorkoutSession { _FakeWorkoutSession_7( Object parent, Invocation parentInvocation, @@ -127,8 +124,7 @@ class _FakeLog_8 extends _i1.SmartFake implements _i10.Log { /// A class which mocks [WorkoutPlansProvider]. /// /// See the documentation for Mockito's code generation for more information. -class MockWorkoutPlansProvider extends _i1.Mock - implements _i11.WorkoutPlansProvider { +class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProvider { MockWorkoutPlansProvider() { _i1.throwOnMissingStub(this); } @@ -265,8 +261,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i12.Future); @override - _i12.Future<_i5.WorkoutPlan> fetchAndSetPlanSparse(int? planId) => - (super.noSuchMethod( + _i12.Future<_i5.WorkoutPlan> fetchAndSetPlanSparse(int? planId) => (super.noSuchMethod( Invocation.method( #fetchAndSetPlanSparse, [planId], @@ -281,8 +276,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i12.Future<_i5.WorkoutPlan>); @override - _i12.Future<_i5.WorkoutPlan> fetchAndSetWorkoutPlanFull(int? workoutId) => - (super.noSuchMethod( + _i12.Future<_i5.WorkoutPlan> fetchAndSetWorkoutPlanFull(int? workoutId) => (super.noSuchMethod( Invocation.method( #fetchAndSetWorkoutPlanFull, [workoutId], @@ -297,8 +291,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i12.Future<_i5.WorkoutPlan>); @override - _i12.Future<_i5.WorkoutPlan> addWorkout(_i5.WorkoutPlan? workout) => - (super.noSuchMethod( + _i12.Future<_i5.WorkoutPlan> addWorkout(_i5.WorkoutPlan? workout) => (super.noSuchMethod( Invocation.method( #addWorkout, [workout], @@ -313,8 +306,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i12.Future<_i5.WorkoutPlan>); @override - _i12.Future editWorkout(_i5.WorkoutPlan? workout) => - (super.noSuchMethod( + _i12.Future editWorkout(_i5.WorkoutPlan? workout) => (super.noSuchMethod( Invocation.method( #editWorkout, [workout], @@ -346,8 +338,7 @@ class MockWorkoutPlansProvider extends _i1.Mock base, ], ), - returnValue: - _i12.Future>.value({}), + returnValue: _i12.Future>.value({}), ) as _i12.Future>); @override @@ -467,8 +458,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i12.Future>); @override - _i12.Future fetchComputedSettings(_i7.Set? workoutSet) => - (super.noSuchMethod( + _i12.Future fetchComputedSettings(_i7.Set? workoutSet) => (super.noSuchMethod( Invocation.method( #fetchComputedSettings, [workoutSet], @@ -504,8 +494,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i12.Future); @override - _i12.Future<_i8.Setting> addSetting(_i8.Setting? workoutSetting) => - (super.noSuchMethod( + _i12.Future<_i8.Setting> addSetting(_i8.Setting? workoutSetting) => (super.noSuchMethod( Invocation.method( #addSetting, [workoutSetting], @@ -529,14 +518,12 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i12.Future); @override - _i12.Future<_i9.WorkoutSession> addSession(_i9.WorkoutSession? session) => - (super.noSuchMethod( + _i12.Future<_i9.WorkoutSession> addSession(_i9.WorkoutSession? session) => (super.noSuchMethod( Invocation.method( #addSession, [session], ), - returnValue: - _i12.Future<_i9.WorkoutSession>.value(_FakeWorkoutSession_7( + returnValue: _i12.Future<_i9.WorkoutSession>.value(_FakeWorkoutSession_7( this, Invocation.method( #addSession, diff --git a/test/workout/workout_plan_screen_test.mocks.dart b/test/workout/workout_plan_screen_test.mocks.dart index 03f2be6fa..c47859e69 100644 --- a/test/workout/workout_plan_screen_test.mocks.dart +++ b/test/workout/workout_plan_screen_test.mocks.dart @@ -106,8 +106,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { ); @override - Map getDefaultHeaders({dynamic includeAuth = false}) => - (super.noSuchMethod( + Map getDefaultHeaders({dynamic includeAuth = false}) => (super.noSuchMethod( Invocation.method( #getDefaultHeaders, [], @@ -153,8 +152,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { #fetch, [uri], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override @@ -179,8 +177,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { uri, ], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override @@ -196,8 +193,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { uri, ], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override diff --git a/test/workout/workout_plans_screen_test.mocks.dart b/test/workout/workout_plans_screen_test.mocks.dart index cdf74da5f..6b542c207 100644 --- a/test/workout/workout_plans_screen_test.mocks.dart +++ b/test/workout/workout_plans_screen_test.mocks.dart @@ -106,8 +106,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { ); @override - Map getDefaultHeaders({dynamic includeAuth = false}) => - (super.noSuchMethod( + Map getDefaultHeaders({dynamic includeAuth = false}) => (super.noSuchMethod( Invocation.method( #getDefaultHeaders, [], @@ -153,8 +152,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { #fetch, [uri], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override @@ -179,8 +177,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { uri, ], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override @@ -196,8 +193,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { uri, ], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override diff --git a/test/workout/workout_provider_test.mocks.dart b/test/workout/workout_provider_test.mocks.dart index a89a913f4..8ab1d85b8 100644 --- a/test/workout/workout_provider_test.mocks.dart +++ b/test/workout/workout_provider_test.mocks.dart @@ -106,8 +106,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { ); @override - Map getDefaultHeaders({dynamic includeAuth = false}) => - (super.noSuchMethod( + Map getDefaultHeaders({dynamic includeAuth = false}) => (super.noSuchMethod( Invocation.method( #getDefaultHeaders, [], @@ -153,8 +152,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { #fetch, [uri], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override @@ -179,8 +177,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { uri, ], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override @@ -196,8 +193,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i4.WgerBaseProvider { uri, ], ), - returnValue: - _i5.Future>.value({}), + returnValue: _i5.Future>.value({}), ) as _i5.Future>); @override diff --git a/test/workout/workout_set_form_test.mocks.dart b/test/workout/workout_set_form_test.mocks.dart index c319ed775..a31bcb5aa 100644 --- a/test/workout/workout_set_form_test.mocks.dart +++ b/test/workout/workout_set_form_test.mocks.dart @@ -38,8 +38,7 @@ import 'package:wger/providers/workout_plans.dart' as _i21; // ignore_for_file: camel_case_types // ignore_for_file: subtype_of_sealed_class -class _FakeWgerBaseProvider_0 extends _i1.SmartFake - implements _i2.WgerBaseProvider { +class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvider { _FakeWgerBaseProvider_0( Object parent, Invocation parentInvocation, @@ -59,8 +58,7 @@ class _FakeExerciseBase_1 extends _i1.SmartFake implements _i3.ExerciseBase { ); } -class _FakeExerciseCategory_2 extends _i1.SmartFake - implements _i4.ExerciseCategory { +class _FakeExerciseCategory_2 extends _i1.SmartFake implements _i4.ExerciseCategory { _FakeExerciseCategory_2( Object parent, Invocation parentInvocation, @@ -150,8 +148,7 @@ class _FakeWeightUnit_10 extends _i1.SmartFake implements _i10.WeightUnit { ); } -class _FakeRepetitionUnit_11 extends _i1.SmartFake - implements _i11.RepetitionUnit { +class _FakeRepetitionUnit_11 extends _i1.SmartFake implements _i11.RepetitionUnit { _FakeRepetitionUnit_11( Object parent, Invocation parentInvocation, @@ -201,8 +198,7 @@ class _FakeSetting_15 extends _i1.SmartFake implements _i15.Setting { ); } -class _FakeWorkoutSession_16 extends _i1.SmartFake - implements _i16.WorkoutSession { +class _FakeWorkoutSession_16 extends _i1.SmartFake implements _i16.WorkoutSession { _FakeWorkoutSession_16( Object parent, Invocation parentInvocation, @@ -240,8 +236,7 @@ class MockExercisesProvider extends _i1.Mock implements _i18.ExercisesProvider { ) as _i2.WgerBaseProvider); @override - set exerciseBases(List<_i3.ExerciseBase>? exercisesBases) => - super.noSuchMethod( + set exerciseBases(List<_i3.ExerciseBase>? exercisesBases) => super.noSuchMethod( Invocation.setter( #exerciseBases, exercisesBases, @@ -256,8 +251,7 @@ class MockExercisesProvider extends _i1.Mock implements _i18.ExercisesProvider { ) as List<_i3.ExerciseBase>); @override - set filteredExerciseBases(List<_i3.ExerciseBase>? newFilteredExercises) => - super.noSuchMethod( + set filteredExerciseBases(List<_i3.ExerciseBase>? newFilteredExercises) => super.noSuchMethod( Invocation.setter( #filteredExerciseBases, newFilteredExercises, @@ -266,8 +260,7 @@ class MockExercisesProvider extends _i1.Mock implements _i18.ExercisesProvider { ); @override - Map> get exerciseBasesByVariation => - (super.noSuchMethod( + Map> get exerciseBasesByVariation => (super.noSuchMethod( Invocation.getter(#exerciseBasesByVariation), returnValue: >{}, ) as Map>); @@ -486,8 +479,7 @@ class MockExercisesProvider extends _i1.Mock implements _i18.ExercisesProvider { ) as _i19.Future); @override - _i19.Future<_i3.ExerciseBase> fetchAndSetExerciseBase(int? exerciseBaseId) => - (super.noSuchMethod( + _i19.Future<_i3.ExerciseBase> fetchAndSetExerciseBase(int? exerciseBaseId) => (super.noSuchMethod( Invocation.method( #fetchAndSetExerciseBase, [exerciseBaseId], @@ -502,8 +494,7 @@ class MockExercisesProvider extends _i1.Mock implements _i18.ExercisesProvider { ) as _i19.Future<_i3.ExerciseBase>); @override - _i3.ExerciseBase readExerciseBaseFromBaseInfo(dynamic baseData) => - (super.noSuchMethod( + _i3.ExerciseBase readExerciseBaseFromBaseInfo(dynamic baseData) => (super.noSuchMethod( Invocation.method( #readExerciseBaseFromBaseInfo, [baseData], @@ -552,8 +543,7 @@ class MockExercisesProvider extends _i1.Mock implements _i18.ExercisesProvider { #searchEnglish: searchEnglish, }, ), - returnValue: - _i19.Future>.value(<_i3.ExerciseBase>[]), + returnValue: _i19.Future>.value(<_i3.ExerciseBase>[]), ) as _i19.Future>); @override @@ -638,8 +628,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i2.WgerBaseProvider { ); @override - Map getDefaultHeaders({dynamic includeAuth = false}) => - (super.noSuchMethod( + Map getDefaultHeaders({dynamic includeAuth = false}) => (super.noSuchMethod( Invocation.method( #getDefaultHeaders, [], @@ -685,8 +674,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i2.WgerBaseProvider { #fetch, [uri], ), - returnValue: - _i19.Future>.value({}), + returnValue: _i19.Future>.value({}), ) as _i19.Future>); @override @@ -711,8 +699,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i2.WgerBaseProvider { uri, ], ), - returnValue: - _i19.Future>.value({}), + returnValue: _i19.Future>.value({}), ) as _i19.Future>); @override @@ -728,8 +715,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i2.WgerBaseProvider { uri, ], ), - returnValue: - _i19.Future>.value({}), + returnValue: _i19.Future>.value({}), ) as _i19.Future>); @override @@ -761,8 +747,7 @@ class MockWgerBaseProvider extends _i1.Mock implements _i2.WgerBaseProvider { /// A class which mocks [WorkoutPlansProvider]. /// /// See the documentation for Mockito's code generation for more information. -class MockWorkoutPlansProvider extends _i1.Mock - implements _i21.WorkoutPlansProvider { +class MockWorkoutPlansProvider extends _i1.Mock implements _i21.WorkoutPlansProvider { MockWorkoutPlansProvider() { _i1.throwOnMissingStub(this); } @@ -899,8 +884,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i19.Future); @override - _i19.Future<_i12.WorkoutPlan> fetchAndSetPlanSparse(int? planId) => - (super.noSuchMethod( + _i19.Future<_i12.WorkoutPlan> fetchAndSetPlanSparse(int? planId) => (super.noSuchMethod( Invocation.method( #fetchAndSetPlanSparse, [planId], @@ -915,8 +899,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i19.Future<_i12.WorkoutPlan>); @override - _i19.Future<_i12.WorkoutPlan> fetchAndSetWorkoutPlanFull(int? workoutId) => - (super.noSuchMethod( + _i19.Future<_i12.WorkoutPlan> fetchAndSetWorkoutPlanFull(int? workoutId) => (super.noSuchMethod( Invocation.method( #fetchAndSetWorkoutPlanFull, [workoutId], @@ -931,8 +914,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i19.Future<_i12.WorkoutPlan>); @override - _i19.Future<_i12.WorkoutPlan> addWorkout(_i12.WorkoutPlan? workout) => - (super.noSuchMethod( + _i19.Future<_i12.WorkoutPlan> addWorkout(_i12.WorkoutPlan? workout) => (super.noSuchMethod( Invocation.method( #addWorkout, [workout], @@ -947,8 +929,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i19.Future<_i12.WorkoutPlan>); @override - _i19.Future editWorkout(_i12.WorkoutPlan? workout) => - (super.noSuchMethod( + _i19.Future editWorkout(_i12.WorkoutPlan? workout) => (super.noSuchMethod( Invocation.method( #editWorkout, [workout], @@ -980,8 +961,7 @@ class MockWorkoutPlansProvider extends _i1.Mock base, ], ), - returnValue: - _i19.Future>.value({}), + returnValue: _i19.Future>.value({}), ) as _i19.Future>); @override @@ -1101,8 +1081,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i19.Future>); @override - _i19.Future fetchComputedSettings(_i14.Set? workoutSet) => - (super.noSuchMethod( + _i19.Future fetchComputedSettings(_i14.Set? workoutSet) => (super.noSuchMethod( Invocation.method( #fetchComputedSettings, [workoutSet], @@ -1138,8 +1117,7 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i19.Future); @override - _i19.Future<_i15.Setting> addSetting(_i15.Setting? workoutSetting) => - (super.noSuchMethod( + _i19.Future<_i15.Setting> addSetting(_i15.Setting? workoutSetting) => (super.noSuchMethod( Invocation.method( #addSetting, [workoutSetting], @@ -1163,14 +1141,12 @@ class MockWorkoutPlansProvider extends _i1.Mock ) as _i19.Future); @override - _i19.Future<_i16.WorkoutSession> addSession(_i16.WorkoutSession? session) => - (super.noSuchMethod( + _i19.Future<_i16.WorkoutSession> addSession(_i16.WorkoutSession? session) => (super.noSuchMethod( Invocation.method( #addSession, [session], ), - returnValue: - _i19.Future<_i16.WorkoutSession>.value(_FakeWorkoutSession_16( + returnValue: _i19.Future<_i16.WorkoutSession>.value(_FakeWorkoutSession_16( this, Invocation.method( #addSession, From 10bfb787ff20627d6b73dd0dec304ca358ca098e Mon Sep 17 00:00:00 2001 From: Roland Geider Date: Thu, 9 Nov 2023 20:31:33 +0100 Subject: [PATCH 19/19] Remove flutter_launcher_icons Better icons have been added manually --- pubspec.yaml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/pubspec.yaml b/pubspec.yaml index 235e84917..570dab009 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -66,24 +66,12 @@ dev_dependencies: integration_test: sdk: flutter build_runner: ^2.3.3 - flutter_launcher_icons: ^0.13.1 json_serializable: ^6.6.2 mockito: ^5.4.0 network_image_mock: ^2.1.1 flutter_lints: ^3.0.1 cider: ^0.2.4 - # Better icons have been added manually, Android now uses vector icon - # TODO Consider removing flutter_launcher_icons completely -flutter_icons: - android: false - ios: false - image_path: "assets_dev/logo.png" - adaptive_icon_background: "#2a4c7d" - adaptive_icon_foreground: "assets_dev/logo_adaptive.png" - macos: - generate: false - image_path: "assets/images/logo.png" # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec