From f5e4069c87c0c5edd154af59e441b50923e55a48 Mon Sep 17 00:00:00 2001 From: Ryunosuke Muramatsu Date: Tue, 17 Dec 2024 20:48:39 +0900 Subject: [PATCH 1/3] feat: use initialization page and providers --- packages/flutter_app/ios/Podfile.lock | 6 ++-- .../lib/initialization_provider.dart | 3 ++ .../lib/initialization_provider.g.dart | 2 +- packages/flutter_app/lib/main_app.dart | 4 +++ .../configurator_provider.dart | 15 ++++++++ .../configurator_provider.g.dart | 34 +++++++++++++++++++ .../package_info_provider.dart | 5 +-- .../package_info_provider.g.dart | 2 +- .../lib/pages/initialization_page.dart | 7 ++-- .../flutter_app/lib/router/app_routes.dart | 17 ---------- .../flutter_app/lib/router/app_routes.g.dart | 25 -------------- .../lib/router/router_provider.dart | 5 --- .../lib/router/router_provider.g.dart | 2 +- packages/flutter_app/macos/Podfile.lock | 8 ++--- 14 files changed, 74 insertions(+), 61 deletions(-) create mode 100644 packages/flutter_app/lib/package_adaptor/configurator_provider.dart create mode 100644 packages/flutter_app/lib/package_adaptor/configurator_provider.g.dart diff --git a/packages/flutter_app/ios/Podfile.lock b/packages/flutter_app/ios/Podfile.lock index 57645e7c..81b84e26 100644 --- a/packages/flutter_app/ios/Podfile.lock +++ b/packages/flutter_app/ios/Podfile.lock @@ -434,9 +434,9 @@ CHECKOUT OPTIONS: SPEC CHECKSUMS: AppAuth: d4f13a8fe0baf391b2108511793e4b479691fb73 - cloud_firestore: 56bca083ecf07f16188ace1d5b57123bcb1b3465 - connectivity_plus: 18382e7311ba19efcaee94442b23b32507b20695 - device_info_plus: bf2e3232933866d73fe290f2942f2156cdd10342 + cloud_firestore: 3fafe78d755b01fe1fd267a87bb52e80b7dacacc + connectivity_plus: 4c41c08fc6d7c91f63bc7aec70ffe3730b04f563 + device_info_plus: 97af1d7e84681a90d0693e63169a5d50e0839a0d Firebase: cf1b19f21410b029b6786a54e9764a0cacad3c99 firebase_analytics: 2815af29d49c1a994652abd37a5b001a88bc7b75 firebase_auth: c4bdd9d7b338ac004008cb5024a643584e0ec03f diff --git a/packages/flutter_app/lib/initialization_provider.dart b/packages/flutter_app/lib/initialization_provider.dart index 1df1f46b..df937b1f 100644 --- a/packages/flutter_app/lib/initialization_provider.dart +++ b/packages/flutter_app/lib/initialization_provider.dart @@ -2,6 +2,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart'; import 'features/user_device/user_device_provider.dart'; +import 'package_adaptor/configurator_provider.dart'; import 'package_adaptor/package_info_provider.dart'; import 'util/providers/providers.dart'; @@ -21,4 +22,6 @@ Future initialization(Ref ref) async { ref.watch(packageInfoInitializingProvider.future), ref.watch(userDeviceInitializingProvider.future), ]); + final configurator = ref.watch(configuratorProvider); + await configurator.fetchAndActivate(); } diff --git a/packages/flutter_app/lib/initialization_provider.g.dart b/packages/flutter_app/lib/initialization_provider.g.dart index 049715eb..1efb09ed 100644 --- a/packages/flutter_app/lib/initialization_provider.g.dart +++ b/packages/flutter_app/lib/initialization_provider.g.dart @@ -8,7 +8,7 @@ part of 'initialization_provider.dart'; // RiverpodGenerator // ************************************************************************** -String _$initializationHash() => r'0093b1f1b4f96b36d941a6139447f1b966a4ae8c'; +String _$initializationHash() => r'4c856a1b01533aad40e6acc6e3992ac78dd9c054'; /// See also [initialization]. @ProviderFor(initialization) diff --git a/packages/flutter_app/lib/main_app.dart b/packages/flutter_app/lib/main_app.dart index 068fa4b4..406a40e9 100644 --- a/packages/flutter_app/lib/main_app.dart +++ b/packages/flutter_app/lib/main_app.dart @@ -5,6 +5,7 @@ import 'package:themes/themes.dart'; import 'features/theme_selector/theme_selector.dart'; import 'gen/strings.g.dart'; +import 'pages/initialization_page.dart'; import 'router/router.dart'; import 'util/providers/scaffold_messenger_key_provider.dart'; @@ -29,6 +30,9 @@ class MainApp extends ConsumerWidget { ], supportedLocales: AppLocaleUtils.supportedLocales, scaffoldMessengerKey: ref.watch(scaffoldMessengerKeyProvider), + builder: (context, child) { + return InitializationPage(onInitialized: (_) => child!); + }, ); } } diff --git a/packages/flutter_app/lib/package_adaptor/configurator_provider.dart b/packages/flutter_app/lib/package_adaptor/configurator_provider.dart new file mode 100644 index 00000000..6b283d76 --- /dev/null +++ b/packages/flutter_app/lib/package_adaptor/configurator_provider.dart @@ -0,0 +1,15 @@ +import 'package:altfire_configurator/altfire_configurator.dart'; +import 'package:hooks_riverpod/hooks_riverpod.dart'; +import 'package:riverpod_annotation/riverpod_annotation.dart'; + +part 'configurator_provider.g.dart'; + +/// Provides a [Configurator] to retrieve parameters using "RemoteConfig". +/// +/// It is recommended to call [Configurator.fetchAndActivate] before using +/// the parameters (e.g., at app startup) in order to fetch and activate them +/// for use in the app. +@Riverpod(keepAlive: true) +Configurator configurator(Ref ref) { + return Configurator(); +} diff --git a/packages/flutter_app/lib/package_adaptor/configurator_provider.g.dart b/packages/flutter_app/lib/package_adaptor/configurator_provider.g.dart new file mode 100644 index 00000000..364ae212 --- /dev/null +++ b/packages/flutter_app/lib/package_adaptor/configurator_provider.g.dart @@ -0,0 +1,34 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ignore_for_file: duplicate_ignore, type=lint, implicit_dynamic_parameter, implicit_dynamic_type, implicit_dynamic_method, strict_raw_type + +part of 'configurator_provider.dart'; + +// ************************************************************************** +// RiverpodGenerator +// ************************************************************************** + +String _$configuratorHash() => r'9e492ffb951b15cbe24c846fb5bdcbb0fe71a690'; + +/// Provides a [Configurator] to retrieve parameters using "RemoteConfig". +/// +/// It is recommended to call [Configurator.fetchAndActivate] before using +/// the parameters (e.g., at app startup) in order to fetch and activate them +/// for use in the app. +/// +/// Copied from [configurator]. +@ProviderFor(configurator) +final configuratorProvider = Provider.internal( + configurator, + name: r'configuratorProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') ? null : _$configuratorHash, + dependencies: null, + allTransitiveDependencies: null, +); + +@Deprecated('Will be removed in 3.0. Use Ref instead') +// ignore: unused_element +typedef ConfiguratorRef = ProviderRef; +// ignore_for_file: type=lint +// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/packages/flutter_app/lib/package_adaptor/package_info_provider.dart b/packages/flutter_app/lib/package_adaptor/package_info_provider.dart index 08214855..a311eda8 100644 --- a/packages/flutter_app/lib/package_adaptor/package_info_provider.dart +++ b/packages/flutter_app/lib/package_adaptor/package_info_provider.dart @@ -6,8 +6,9 @@ part 'package_info_provider.g.dart'; /// Providers that need to initialize asynchronously only once at startup. @Riverpod(keepAlive: true) -Future packageInfoInitializing(Ref ref) async => - PackageInfo.fromPlatform(); +Future packageInfoInitializing(Ref ref) async { + return PackageInfo.fromPlatform(); +} /// Provide metadata for the application. /// diff --git a/packages/flutter_app/lib/package_adaptor/package_info_provider.g.dart b/packages/flutter_app/lib/package_adaptor/package_info_provider.g.dart index d1426451..c2ed7d69 100644 --- a/packages/flutter_app/lib/package_adaptor/package_info_provider.g.dart +++ b/packages/flutter_app/lib/package_adaptor/package_info_provider.g.dart @@ -9,7 +9,7 @@ part of 'package_info_provider.dart'; // ************************************************************************** String _$packageInfoInitializingHash() => - r'92258b1cb5e798dac5f0ee4dadb2a05b2bc9c6a9'; + r'9e9859b77c365e47475d313f542ee8bf55158c16'; /// Providers that need to initialize asynchronously only once at startup. /// diff --git a/packages/flutter_app/lib/pages/initialization_page.dart b/packages/flutter_app/lib/pages/initialization_page.dart index a40273e4..b2b48cd9 100644 --- a/packages/flutter_app/lib/pages/initialization_page.dart +++ b/packages/flutter_app/lib/pages/initialization_page.dart @@ -4,13 +4,16 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import '../initialization_provider.dart'; +/// The first page. class InitializationPage extends ConsumerWidget { - const InitializationPage({super.key}); + const InitializationPage({super.key, required this.onInitialized}); + + final WidgetBuilder onInitialized; @override Widget build(BuildContext context, WidgetRef ref) { return switch (ref.watch(initializationProvider)) { - AsyncData(isLoading: false) => throw AssertionError(), + AsyncData(isLoading: false) => onInitialized(context), AsyncError(:final error) => _ErrorPage( error, onRetry: () => ref.invalidate(initializationProvider), diff --git a/packages/flutter_app/lib/router/app_routes.dart b/packages/flutter_app/lib/router/app_routes.dart index 4617b065..491bf2e2 100644 --- a/packages/flutter_app/lib/router/app_routes.dart +++ b/packages/flutter_app/lib/router/app_routes.dart @@ -1,28 +1,11 @@ import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; -import '../pages/initialization_page.dart'; import '../pages/main/main_page.dart'; import 'branches/branches.dart'; part 'app_routes.g.dart'; -@TypedGoRoute( - name: InitializationRoute.name, - path: InitializationRoute.path, -) -class InitializationRoute extends GoRouteData { - const InitializationRoute(); - - static const String name = '/init'; - static const String path = '/init'; - - @override - Page buildPage(BuildContext context, GoRouterState state) { - return const NoTransitionPage(child: InitializationPage()); - } -} - @TypedStatefulShellRoute( branches: [ TypedStatefulShellBranch( diff --git a/packages/flutter_app/lib/router/app_routes.g.dart b/packages/flutter_app/lib/router/app_routes.g.dart index 82901af0..890d43f4 100644 --- a/packages/flutter_app/lib/router/app_routes.g.dart +++ b/packages/flutter_app/lib/router/app_routes.g.dart @@ -9,34 +9,9 @@ part of 'app_routes.dart'; // ************************************************************************** List get $appRoutes => [ - $initializationRoute, $mainShellRouteData, ]; -RouteBase get $initializationRoute => GoRouteData.$route( - path: '/init', - name: '/init', - factory: $InitializationRouteExtension._fromState, - ); - -extension $InitializationRouteExtension on InitializationRoute { - static InitializationRoute _fromState(GoRouterState state) => - const InitializationRoute(); - - String get location => GoRouteData.$location( - '/init', - ); - - void go(BuildContext context) => context.go(location); - - Future push(BuildContext context) => context.push(location); - - void pushReplacement(BuildContext context) => - context.pushReplacement(location); - - void replace(BuildContext context) => context.replace(location); -} - RouteBase get $mainShellRouteData => StatefulShellRouteData.$route( factory: $MainShellRouteDataExtension._fromState, branches: [ diff --git a/packages/flutter_app/lib/router/router_provider.dart b/packages/flutter_app/lib/router/router_provider.dart index 505d5a65..a41411c2 100644 --- a/packages/flutter_app/lib/router/router_provider.dart +++ b/packages/flutter_app/lib/router/router_provider.dart @@ -5,7 +5,6 @@ import 'package:go_router/go_router.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart'; -import '../initialization_provider.dart'; import '../package_adaptor/tracker_provider.dart'; import '../pages/not_found_page/error_page.dart'; import '../util/logger.dart'; @@ -16,16 +15,12 @@ part 'router_provider.g.dart'; @Riverpod(keepAlive: true) Raw router(Ref ref) { - final initialization = ref.watch(initializationProvider); final tracker = ref.watch(trackerProvider); late final GoRouter router; router = GoRouter( routes: $appRoutes, redirect: (context, state) { - if (initialization.isLoading || initialization.hasError) { - return InitializationRoute.path; - } if (state.matchedLocation == '/') { return HomeRouteData.path; } diff --git a/packages/flutter_app/lib/router/router_provider.g.dart b/packages/flutter_app/lib/router/router_provider.g.dart index 0b7ddcb1..1b62e33d 100644 --- a/packages/flutter_app/lib/router/router_provider.g.dart +++ b/packages/flutter_app/lib/router/router_provider.g.dart @@ -8,7 +8,7 @@ part of 'router_provider.dart'; // RiverpodGenerator // ************************************************************************** -String _$routerHash() => r'05e67d1c964e44d7ff84c89541d7cee8406a9605'; +String _$routerHash() => r'49290ce66bc128bc0a2d2bd864b390e877df9735'; /// See also [router]. @ProviderFor(router) diff --git a/packages/flutter_app/macos/Podfile.lock b/packages/flutter_app/macos/Podfile.lock index f74e04ea..2f6aad4d 100644 --- a/packages/flutter_app/macos/Podfile.lock +++ b/packages/flutter_app/macos/Podfile.lock @@ -386,10 +386,10 @@ CHECKOUT OPTIONS: SPEC CHECKSUMS: AppAuth: d4f13a8fe0baf391b2108511793e4b479691fb73 - cloud_firestore: 0d1c982890702bf99ab2881743c35fddb66e295d - connectivity_plus: 18382e7311ba19efcaee94442b23b32507b20695 - device_info_plus: 1b14eed9bf95428983aed283a8d51cce3d8c4215 - file_selector_macos: cc3858c981fe6889f364731200d6232dac1d812d + cloud_firestore: 9a20a45d1f46dda8d3486bc68866e8dca2d68548 + connectivity_plus: 4c41c08fc6d7c91f63bc7aec70ffe3730b04f563 + device_info_plus: ce1b7762849d3ec103d0e0517299f2db7ad60720 + file_selector_macos: 54fdab7caa3ac3fc43c9fac4d7d8d231277f8cf2 Firebase: cf1b19f21410b029b6786a54e9764a0cacad3c99 firebase_analytics: a80b3d6645f2f12d626fde928b61dae12e5ea2ef firebase_auth: cda334a14540e3c1be90eb2cd82682f9409bea37 From 1101e03afd595b985a08a34542c61d5df39adffa Mon Sep 17 00:00:00 2001 From: Ryunosuke Muramatsu Date: Fri, 27 Dec 2024 19:40:08 +0900 Subject: [PATCH 2/3] chore: build diff --- .../lib/gen/assets.gen.dart | 42 +++++++------------ 1 file changed, 15 insertions(+), 27 deletions(-) diff --git a/packages/convenient_widgets/lib/gen/assets.gen.dart b/packages/convenient_widgets/lib/gen/assets.gen.dart index 2c9f6492..6e3dad9e 100644 --- a/packages/convenient_widgets/lib/gen/assets.gen.dart +++ b/packages/convenient_widgets/lib/gen/assets.gen.dart @@ -7,10 +7,10 @@ // ignore_for_file: type=lint // ignore_for_file: directives_ordering,unnecessary_import,implicit_dynamic_list_literal,deprecated_member_use -import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; -import 'package:flutter_svg/flutter_svg.dart' as _svg; -import 'package:vector_graphics/vector_graphics.dart' as _vg; +import 'package:flutter/services.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:vector_graphics/vector_graphics.dart'; class Assets { Assets._(); @@ -31,22 +31,20 @@ class Assets { class SvgGenImage { const SvgGenImage( this._assetName, { - this.size, - this.flavors = const {}, + this.size = null, }) : _isVecFormat = false; const SvgGenImage.vec( this._assetName, { - this.size, - this.flavors = const {}, + this.size = null, }) : _isVecFormat = true; final String _assetName; + final Size? size; - final Set flavors; final bool _isVecFormat; - _svg.SvgPicture svg({ + SvgPicture svg({ Key? key, bool matchTextDirection = false, AssetBundle? bundle, @@ -59,30 +57,19 @@ class SvgGenImage { WidgetBuilder? placeholderBuilder, String? semanticsLabel, bool excludeFromSemantics = false, - _svg.SvgTheme? theme, + SvgTheme? theme, ColorFilter? colorFilter, Clip clipBehavior = Clip.hardEdge, @deprecated Color? color, @deprecated BlendMode colorBlendMode = BlendMode.srcIn, @deprecated bool cacheColorFilter = false, }) { - final _svg.BytesLoader loader; - if (_isVecFormat) { - loader = _vg.AssetBytesLoader( - _assetName, - assetBundle: bundle, - packageName: package, - ); - } else { - loader = _svg.SvgAssetLoader( - _assetName, - assetBundle: bundle, - packageName: package, - theme: theme, - ); - } - return _svg.SvgPicture( - loader, + return SvgPicture( + _isVecFormat + ? AssetBytesLoader(_assetName, + assetBundle: bundle, packageName: package) + : SvgAssetLoader(_assetName, + assetBundle: bundle, packageName: package), key: key, matchTextDirection: matchTextDirection, width: width, @@ -93,6 +80,7 @@ class SvgGenImage { placeholderBuilder: placeholderBuilder, semanticsLabel: semanticsLabel, excludeFromSemantics: excludeFromSemantics, + theme: theme, colorFilter: colorFilter ?? (color == null ? null : ColorFilter.mode(color, colorBlendMode)), clipBehavior: clipBehavior, From 64f0117bdf7c9eeaf16a54d135aeeaeeb175a43f Mon Sep 17 00:00:00 2001 From: Ryunosuke Muramatsu Date: Fri, 27 Dec 2024 19:56:31 +0900 Subject: [PATCH 3/3] chore: build diff --- .../lib/gen/assets.gen.dart | 42 ++++++++++++------- packages/flutter_app/ios/Podfile.lock | 6 +-- packages/flutter_app/macos/Podfile.lock | 8 ++-- ...ync_notifier_provider_page_test.mocks.dart | 3 +- .../connectivity_provider_test.mocks.dart | 3 +- 5 files changed, 38 insertions(+), 24 deletions(-) diff --git a/packages/convenient_widgets/lib/gen/assets.gen.dart b/packages/convenient_widgets/lib/gen/assets.gen.dart index 6e3dad9e..2c9f6492 100644 --- a/packages/convenient_widgets/lib/gen/assets.gen.dart +++ b/packages/convenient_widgets/lib/gen/assets.gen.dart @@ -7,10 +7,10 @@ // ignore_for_file: type=lint // ignore_for_file: directives_ordering,unnecessary_import,implicit_dynamic_list_literal,deprecated_member_use -import 'package:flutter/widgets.dart'; import 'package:flutter/services.dart'; -import 'package:flutter_svg/flutter_svg.dart'; -import 'package:vector_graphics/vector_graphics.dart'; +import 'package:flutter/widgets.dart'; +import 'package:flutter_svg/flutter_svg.dart' as _svg; +import 'package:vector_graphics/vector_graphics.dart' as _vg; class Assets { Assets._(); @@ -31,20 +31,22 @@ class Assets { class SvgGenImage { const SvgGenImage( this._assetName, { - this.size = null, + this.size, + this.flavors = const {}, }) : _isVecFormat = false; const SvgGenImage.vec( this._assetName, { - this.size = null, + this.size, + this.flavors = const {}, }) : _isVecFormat = true; final String _assetName; - final Size? size; + final Set flavors; final bool _isVecFormat; - SvgPicture svg({ + _svg.SvgPicture svg({ Key? key, bool matchTextDirection = false, AssetBundle? bundle, @@ -57,19 +59,30 @@ class SvgGenImage { WidgetBuilder? placeholderBuilder, String? semanticsLabel, bool excludeFromSemantics = false, - SvgTheme? theme, + _svg.SvgTheme? theme, ColorFilter? colorFilter, Clip clipBehavior = Clip.hardEdge, @deprecated Color? color, @deprecated BlendMode colorBlendMode = BlendMode.srcIn, @deprecated bool cacheColorFilter = false, }) { - return SvgPicture( - _isVecFormat - ? AssetBytesLoader(_assetName, - assetBundle: bundle, packageName: package) - : SvgAssetLoader(_assetName, - assetBundle: bundle, packageName: package), + final _svg.BytesLoader loader; + if (_isVecFormat) { + loader = _vg.AssetBytesLoader( + _assetName, + assetBundle: bundle, + packageName: package, + ); + } else { + loader = _svg.SvgAssetLoader( + _assetName, + assetBundle: bundle, + packageName: package, + theme: theme, + ); + } + return _svg.SvgPicture( + loader, key: key, matchTextDirection: matchTextDirection, width: width, @@ -80,7 +93,6 @@ class SvgGenImage { placeholderBuilder: placeholderBuilder, semanticsLabel: semanticsLabel, excludeFromSemantics: excludeFromSemantics, - theme: theme, colorFilter: colorFilter ?? (color == null ? null : ColorFilter.mode(color, colorBlendMode)), clipBehavior: clipBehavior, diff --git a/packages/flutter_app/ios/Podfile.lock b/packages/flutter_app/ios/Podfile.lock index 81b84e26..57645e7c 100644 --- a/packages/flutter_app/ios/Podfile.lock +++ b/packages/flutter_app/ios/Podfile.lock @@ -434,9 +434,9 @@ CHECKOUT OPTIONS: SPEC CHECKSUMS: AppAuth: d4f13a8fe0baf391b2108511793e4b479691fb73 - cloud_firestore: 3fafe78d755b01fe1fd267a87bb52e80b7dacacc - connectivity_plus: 4c41c08fc6d7c91f63bc7aec70ffe3730b04f563 - device_info_plus: 97af1d7e84681a90d0693e63169a5d50e0839a0d + cloud_firestore: 56bca083ecf07f16188ace1d5b57123bcb1b3465 + connectivity_plus: 18382e7311ba19efcaee94442b23b32507b20695 + device_info_plus: bf2e3232933866d73fe290f2942f2156cdd10342 Firebase: cf1b19f21410b029b6786a54e9764a0cacad3c99 firebase_analytics: 2815af29d49c1a994652abd37a5b001a88bc7b75 firebase_auth: c4bdd9d7b338ac004008cb5024a643584e0ec03f diff --git a/packages/flutter_app/macos/Podfile.lock b/packages/flutter_app/macos/Podfile.lock index 2f6aad4d..f74e04ea 100644 --- a/packages/flutter_app/macos/Podfile.lock +++ b/packages/flutter_app/macos/Podfile.lock @@ -386,10 +386,10 @@ CHECKOUT OPTIONS: SPEC CHECKSUMS: AppAuth: d4f13a8fe0baf391b2108511793e4b479691fb73 - cloud_firestore: 9a20a45d1f46dda8d3486bc68866e8dca2d68548 - connectivity_plus: 4c41c08fc6d7c91f63bc7aec70ffe3730b04f563 - device_info_plus: ce1b7762849d3ec103d0e0517299f2db7ad60720 - file_selector_macos: 54fdab7caa3ac3fc43c9fac4d7d8d231277f8cf2 + cloud_firestore: 0d1c982890702bf99ab2881743c35fddb66e295d + connectivity_plus: 18382e7311ba19efcaee94442b23b32507b20695 + device_info_plus: 1b14eed9bf95428983aed283a8d51cce3d8c4215 + file_selector_macos: cc3858c981fe6889f364731200d6232dac1d812d Firebase: cf1b19f21410b029b6786a54e9764a0cacad3c99 firebase_analytics: a80b3d6645f2f12d626fde928b61dae12e5ea2ef firebase_auth: cda334a14540e3c1be90eb2cd82682f9409bea37 diff --git a/packages/flutter_app/test/pages/riverpod_example_page/async_notifier_provider_page/async_notifier_provider_page_test.mocks.dart b/packages/flutter_app/test/pages/riverpod_example_page/async_notifier_provider_page/async_notifier_provider_page_test.mocks.dart index 92314c0d..96553b12 100644 --- a/packages/flutter_app/test/pages/riverpod_example_page/async_notifier_provider_page/async_notifier_provider_page_test.mocks.dart +++ b/packages/flutter_app/test/pages/riverpod_example_page/async_notifier_provider_page/async_notifier_provider_page_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.4 from annotations +// Mocks generated by Mockito 5.4.5 from annotations // in flutter_app/test/pages/riverpod_example_page/async_notifier_provider_page/async_notifier_provider_page_test.dart. // Do not manually edit this file. @@ -17,6 +17,7 @@ import 'package:mockito/mockito.dart' as _i1; // ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member +// ignore_for_file: must_be_immutable // ignore_for_file: prefer_const_constructors // ignore_for_file: unnecessary_parenthesis // ignore_for_file: camel_case_types diff --git a/packages/flutter_app/test/util/network_connectivity/connectivity_provider_test.mocks.dart b/packages/flutter_app/test/util/network_connectivity/connectivity_provider_test.mocks.dart index bcaf3a47..7ba5e27a 100644 --- a/packages/flutter_app/test/util/network_connectivity/connectivity_provider_test.mocks.dart +++ b/packages/flutter_app/test/util/network_connectivity/connectivity_provider_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.4.4 from annotations +// Mocks generated by Mockito 5.4.5 from annotations // in flutter_app/test/util/network_connectivity/connectivity_provider_test.dart. // Do not manually edit this file. @@ -18,6 +18,7 @@ import 'package:mockito/mockito.dart' as _i1; // ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member +// ignore_for_file: must_be_immutable // ignore_for_file: prefer_const_constructors // ignore_for_file: unnecessary_parenthesis // ignore_for_file: camel_case_types