diff --git a/lib/app/app_run_tasks.dart b/lib/app/app_run_tasks.dart index 3937932..cb5b5c7 100644 --- a/lib/app/app_run_tasks.dart +++ b/lib/app/app_run_tasks.dart @@ -11,13 +11,12 @@ import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:flutter_native_splash/flutter_native_splash.dart'; import 'package:universal_platform/universal_platform.dart'; -import 'injection_container.dart'; - class RunAppTasks extends RunTasks { + RunAppTasks(List providers) : super(providers); + @override Future beforeRun(WidgetsBinding widgetsBinding) async { FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding); - await init(); if (!(Auth.check())) { await Auth.loginAnonymous(); } @@ -64,7 +63,7 @@ class RunAppTasks extends RunTasks { @override void onError(Object error, StackTrace stack) { - log(stack.toString()); + log('Error: $error', stackTrace: stack); FirebaseCrashlytics.instance.recordError(error, stack, fatal: true); } } diff --git a/lib/app/injection_container.dart b/lib/app/injection_container.dart index aa24a9d..11ef2d2 100644 --- a/lib/app/injection_container.dart +++ b/lib/app/injection_container.dart @@ -6,5 +6,5 @@ Future init() async { for (var provider in providers) { await provider.register(core.sl); } - core.providers = providers; + core.appProviders = providers; } diff --git a/lib/core/app_widgets.dart b/lib/core/app_widgets.dart index d325c92..0121ec2 100644 --- a/lib/core/app_widgets.dart +++ b/lib/core/app_widgets.dart @@ -2,4 +2,3 @@ library app_widgets; export 'widgets/app_button.dart'; export 'widgets/bond_pop_menu/bond_pop_menu_button.dart'; -export 'widgets/app_password_text_form_field.dart'; diff --git a/lib/core/widgets/app_password_text_form_field.dart b/lib/core/widgets/app_password_text_form_field.dart deleted file mode 100644 index f066222..0000000 --- a/lib/core/widgets/app_password_text_form_field.dart +++ /dev/null @@ -1,39 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_hooks/flutter_hooks.dart'; - -class AppPasswordTextFormField extends HookWidget { - const AppPasswordTextFormField({ - Key? key, - required this.hintText, - this.controller, - this.errorText, - this.autofocus = false, - }) : super(key: key); - - final TextEditingController? controller; - final String hintText; - final String? errorText; - final bool autofocus; - - @override - Widget build(BuildContext context) { - final obscured = useState(true); - - return TextFormField( - controller: controller, - decoration: InputDecoration( - hintText: hintText, - prefixIcon: const Icon(Icons.lock), - suffixIcon: IconButton( - icon: Icon(obscured.value - ? Icons.lock_outline - : Icons.lock_open_outlined), - onPressed: () => obscured.value = !obscured.value, - ), - errorText: errorText, - ), - obscureText: obscured.value, - autofocus: autofocus, - ); - } -} diff --git a/lib/features/auth/auth_service_provider.dart b/lib/features/auth/auth_service_provider.dart index 59deab8..e0ca0bf 100644 --- a/lib/features/auth/auth_service_provider.dart +++ b/lib/features/auth/auth_service_provider.dart @@ -1,11 +1,11 @@ -import 'package:get_it/get_it.dart'; import 'package:bond_core/bond_core.dart'; +import 'package:get_it/get_it.dart'; import 'data/api.dart'; import 'data/models/user.dart'; import 'data/models/user_meta.dart'; -class AuthServiceProvider extends ServiceProvider { +class AuthServiceProvider extends ServiceProvider with ResponseDecoding { @override Future register(GetIt it) async { it.registerFactory(() => AuthApi(it())); diff --git a/lib/features/auth/presentation/views/login/login_form.dart b/lib/features/auth/presentation/views/login/login_form.dart index b219091..f0ef91c 100644 --- a/lib/features/auth/presentation/views/login/login_form.dart +++ b/lib/features/auth/presentation/views/login/login_form.dart @@ -5,7 +5,7 @@ import 'package:bond/features/auth/auth.dart'; import 'package:bond/features/auth/presentation/providers/login_form_provider.dart'; import 'package:bond_form/bond_form.dart'; import 'package:flutter/material.dart'; -import 'package:hooks_riverpod/hooks_riverpod.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; class LoginForm extends ConsumerWidget { const LoginForm({super.key}); diff --git a/lib/features/auth/presentation/views/register/register_form.dart b/lib/features/auth/presentation/views/register/register_form.dart index 6fcb548..edb6aed 100644 --- a/lib/features/auth/presentation/views/register/register_form.dart +++ b/lib/features/auth/presentation/views/register/register_form.dart @@ -5,7 +5,7 @@ import 'package:bond/features/auth/data/models/user.dart'; import 'package:bond/features/auth/presentation/providers/register_form_provider.dart'; import 'package:bond_form/bond_form.dart'; import 'package:flutter/material.dart'; -import 'package:hooks_riverpod/hooks_riverpod.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; class RegisterForm extends ConsumerWidget { const RegisterForm({super.key}); diff --git a/lib/features/post/post_service_provider.dart b/lib/features/post/post_service_provider.dart index 6fe79d0..b4673b7 100644 --- a/lib/features/post/post_service_provider.dart +++ b/lib/features/post/post_service_provider.dart @@ -5,7 +5,7 @@ import 'data/api.dart'; import 'data/models/post.dart'; import 'presentations/cubit/post_cubit.dart'; -class PostServiceProvider extends ServiceProvider { +class PostServiceProvider extends ServiceProvider with ResponseDecoding { @override Future register(GetIt it) async { it.registerFactory(() => PostsApi(it())); diff --git a/lib/main.dart b/lib/main.dart index 520cbf8..f3ca29c 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -5,6 +5,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'app/app_run_tasks.dart'; import 'bond_app.dart'; + void main() => run( () => ProviderScope( child: BlocProvider( @@ -12,5 +13,5 @@ void main() => run( child: const BondApp(), ), ), - RunAppTasks(), + RunAppTasks(appProviders), ); diff --git a/lib/providers/notifications_service_provider.dart b/lib/providers/notifications_service_provider.dart index af7891f..a2ef53b 100644 --- a/lib/providers/notifications_service_provider.dart +++ b/lib/providers/notifications_service_provider.dart @@ -8,7 +8,7 @@ import 'package:bond_core/bond_core.dart'; import '../config/notification.dart'; -class NotificationsServiceProvider extends ServiceProvider { +class NotificationsServiceProvider extends ServiceProvider with ResponseDecoding { @override Future register(GetIt it) async { for (final provider in NotificationConfig.providers.entries) { diff --git a/pubspec.lock b/pubspec.lock index 9b5dabf..1a31e3a 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: a742f71d7f3484253a623b30e19256aa4668ecbb3de6ad1beb0bcf8d4777ecd8 + sha256: "554f148e71e9e016d9c04d4af6b103ca3f74a1ceed7d7307b70a0f41e991eb77" url: "https://pub.dev" source: hosted - version: "1.3.3" + version: "1.3.26" analyzer: dependency: transitive description: @@ -77,10 +77,10 @@ packages: dependency: "direct main" description: name: bond_core - sha256: b83fd57d7b230c1f2ecf332492cc9c3c90f423ab5a49c52ae116b3e090ef6713 + sha256: "96b72a8578ba429838e42deed1d9db2f6b360c10b13cece71c036b56811689d7" url: "https://pub.dev" source: hosted - version: "0.0.1+2" + version: "0.0.1+5" bond_form: dependency: "direct main" description: @@ -109,10 +109,10 @@ packages: dependency: "direct main" description: name: bond_notifications - sha256: b3bf54454aa86e018cabe751f19730b794c56db07323ba5c35e3bd933affef17 + sha256: aa077815cac576a6b5cc4e92a457db63352360e3621da087e438360749d29d33 url: "https://pub.dev" source: hosted - version: "0.0.1+1" + version: "0.0.1+4" boolean_selector: dependency: transitive description: @@ -357,114 +357,114 @@ packages: dependency: "direct main" description: name: firebase_analytics - sha256: b4f0da1ba0ed06a738d2f729a94dae2518c3738167a13e7f2347303e7a5ab0d9 + sha256: ddfcb2aadec496e3ae2c49aa77c11b416ff705c38a3faa837fcbddceb2e049fa url: "https://pub.dev" source: hosted - version: "10.4.3" + version: "10.8.10" firebase_analytics_platform_interface: dependency: transitive description: name: firebase_analytics_platform_interface - sha256: "25ff27c6dfc875ec299af1c714cbc9f4d44bd47a1163a0ba008a1e5d88a6a786" + sha256: "0a83107f585a630592e8b9113a7e0f2bd6fb72cdb331026ed45744f80686658d" url: "https://pub.dev" source: hosted - version: "3.6.3" + version: "3.9.10" firebase_analytics_web: dependency: transitive description: name: firebase_analytics_web - sha256: "9b80a8444a94ace32f56e43e7e946613b02bc7daa9fd4ae7857f4a2394b134f9" + sha256: "920da330f32a3958af929084aa114eaceb3d3a267ab784b814d1bdfb622a8a9a" url: "https://pub.dev" source: hosted - version: "0.5.4+3" + version: "0.5.5+22" firebase_core: dependency: "direct main" description: name: firebase_core - sha256: a4a99204da264a0aa9d54a332ea0315ce7b0768075139c77abefe98093dd98be + sha256: "67bf0d5fd78f12f51c6b54a72f6141314136a1a90e98b1b7c45e7fac883254ed" url: "https://pub.dev" source: hosted - version: "2.14.0" + version: "2.27.1" firebase_core_platform_interface: dependency: transitive description: name: firebase_core_platform_interface - sha256: b63e3be6c96ef5c33bdec1aab23c91eb00696f6452f0519401d640938c94cba2 + sha256: c437ae5d17e6b5cc7981cf6fd458a5db4d12979905f9aafd1fea930428a9fe63 url: "https://pub.dev" source: hosted - version: "4.8.0" + version: "5.0.0" firebase_core_web: dependency: transitive description: name: firebase_core_web - sha256: "0fd5c4b228de29b55fac38aed0d9e42514b3d3bd47675de52bf7f8fccaf922fa" + sha256: "5377eaac3b9fe8aaf22638d87f92b62784f23572e132dfc029195e84d6cb37de" url: "https://pub.dev" source: hosted - version: "2.6.0" + version: "2.12.0" firebase_crashlytics: dependency: "direct main" description: name: firebase_crashlytics - sha256: "398012cf7838f8a373a25da65dd62fc3a3f4abe4b5f886caa634952c3387dce3" + sha256: cf120df5b473f5f8cd24f9de663edc8aed3a1888d29d805076be0448bdee249e url: "https://pub.dev" source: hosted - version: "3.3.3" + version: "3.4.19" firebase_crashlytics_platform_interface: dependency: transitive description: name: firebase_crashlytics_platform_interface - sha256: "39dfcc9a5ddfaa0588ad67f1016174dd9e19f6b31f592b8641bd559399567592" + sha256: "99656cc39228e8f2b845cddb4d43307bb44294a03e7d00b4d8e35536889bc65c" url: "https://pub.dev" source: hosted - version: "3.6.3" + version: "3.6.26" firebase_messaging: dependency: "direct main" description: name: firebase_messaging - sha256: "77d93f897c893fa7c8de433f6950123bd9c56f27fd7f88a032a53102ca23fcee" + sha256: "34fac43b70d5c41dc864eeb52417128da1f68b0a48604a0c56cd3190f0f609b8" url: "https://pub.dev" source: hosted - version: "14.6.3" + version: "14.7.20" firebase_messaging_platform_interface: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: e9e9dc48a3d8ffa67aaba3d6b1ebf74bc7d7d8c83d10b1458ff97878b9d8a2b0 + sha256: "1dcf7d0d6776396bb2e488c53b0e4cc671c45a65717a73d881e52190d23aca3c" url: "https://pub.dev" source: hosted - version: "4.5.3" + version: "4.5.28" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - sha256: "381f217e41e0e407baf8df21787b97e46fabfacefd6a953425be3a6cdf2269f4" + sha256: ceabccf24d15d03c89dfd6c7eaef11c58fbf00b9c76ebc94028408943b8d2bfd url: "https://pub.dev" source: hosted - version: "3.5.3" + version: "3.7.0" firebase_remote_config: dependency: "direct main" description: name: firebase_remote_config - sha256: "180367f364f8a7eb02a9a9d163182122d10eda4ec657c523f7027a1a3ad174d7" + sha256: ec95cc5b024cc7014a37bf2e269c677284807caa7ef8081a4d08ae2b4b717123 url: "https://pub.dev" source: hosted - version: "4.2.3" + version: "4.3.18" firebase_remote_config_platform_interface: dependency: transitive description: name: firebase_remote_config_platform_interface - sha256: "7e4ccca4b597e02dfb468c454301ce9f4ad441a639f3cf5d9d237000cd4ded60" + sha256: be4829ea3f36b31752905e0fec189b98f1e070ce552d193b9a212434f97c1892 url: "https://pub.dev" source: hosted - version: "1.4.3" + version: "1.4.26" firebase_remote_config_web: dependency: transitive description: name: firebase_remote_config_web - sha256: "0018ad4f3ae00a07caa8acf0f695863513c4b69a22def1c3e4c7ccd401cf6f5a" + sha256: d9cb08f8cf86f098e20574fb54a6d90596d945fb2c425eadfbb2a3aec51e3c8d url: "https://pub.dev" source: hosted - version: "1.4.3" + version: "1.4.26" fixnum: dependency: transitive description: @@ -486,14 +486,6 @@ packages: url: "https://pub.dev" source: hosted version: "8.1.3" - flutter_hooks: - dependency: "direct main" - description: - name: flutter_hooks - sha256: "6a126f703b89499818d73305e4ce1e3de33b4ae1c5512e3b8eab4b986f46774c" - url: "https://pub.dev" - source: hosted - version: "0.18.6" flutter_launcher_icons: dependency: "direct dev" description: @@ -551,10 +543,10 @@ packages: dependency: "direct main" description: name: flutter_riverpod - sha256: b83ac5827baadefd331ea1d85110f34645827ea234ccabf53a655f41901a9bf4 + sha256: "0f1974eff5bbe774bf1d870e406fc6f29e3d6f1c46bd9c58e7172ff68a785d7d" url: "https://pub.dev" source: hosted - version: "2.3.6" + version: "2.5.1" flutter_secure_storage: dependency: "direct main" description: @@ -633,10 +625,10 @@ packages: dependency: "direct main" description: name: get_it - sha256: "529de303c739fca98cd7ece5fca500d8ff89649f1bb4b4e94fb20954abcd7468" + sha256: e6017ce7fdeaf218dc51a100344d8cb70134b80e28b760f8bb23c242437bafd7 url: "https://pub.dev" source: hosted - version: "7.6.0" + version: "7.6.7" glob: dependency: transitive description: @@ -669,14 +661,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.1" - hooks_riverpod: - dependency: "direct main" - description: - name: hooks_riverpod - sha256: be68cf7653fcab798500f9047ac58c3f109287a1595012412f4a0d654a9bb9c5 - url: "https://pub.dev" - source: hosted - version: "2.3.6" html: dependency: transitive description: @@ -1041,10 +1025,10 @@ packages: dependency: transitive description: name: riverpod - sha256: "80e48bebc83010d5e67a11c9514af6b44bbac1ec77b4333c8ea65dbc79e2d8ef" + sha256: f21b32ffd26a36555e501b04f4a5dca43ed59e16343f1a30c13632b2351dfa4d url: "https://pub.dev" source: hosted - version: "2.3.6" + version: "2.5.1" share_plus: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 83c9095..4112b55 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -15,7 +15,7 @@ dependencies: # Bond packages - bond_core: ^0.0.1 + bond_core: ^0.0.1+5 bond_network: ^0.0.3 bond_cache: ^0.0.2 bond_form: ^0.0.1+10 @@ -43,9 +43,7 @@ dependencies: # state management bloc: ^8.0.2 flutter_bloc: ^8.0.1 - flutter_riverpod: ^2.3.6 - hooks_riverpod: ^2.2.0 - flutter_hooks: ^0.18.5+1 + flutter_riverpod: ^2.5.1 equatable: ^2.0.5 # navigation @@ -67,11 +65,11 @@ dependencies: share_plus: ^7.0.2 # Firebase - firebase_analytics: ^10.4.3 - firebase_core: ^2.14.0 - firebase_messaging: ^14.6.3 - firebase_crashlytics: ^3.3.3 - firebase_remote_config: ^4.2.3 + firebase_analytics: ^10.8.10 + firebase_core: ^2.27.1 + firebase_messaging: ^14.7.20 + firebase_crashlytics: ^3.4.19 + firebase_remote_config: ^4.3.18 # localization intl: ^0.18.0