diff --git a/.fvmrc b/.fvmrc index eb1057a..38802ac 100644 --- a/.fvmrc +++ b/.fvmrc @@ -1,4 +1,4 @@ { - "flutter": "3.32.0", + "flutter": "3.32.8", "flavors": {} } \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 30ecbd7..72a68d6 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,3 @@ { - "dart.flutterSdkPath": ".fvm/flutter_sdk" + "dart.flutterSdkPath": ".fvm/versions/3.32.8" } \ No newline at end of file diff --git a/README.md b/README.md index 7f67648..a80a475 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@
-[![Flutter](https://img.shields.io/badge/Flutter-3.32-blue)](https://docs.flutter.dev/release/whats-new#flutter-332) +[![Flutter](https://img.shields.io/badge/Flutter-3.32.8-blue)](https://docs.flutter.dev/release/whats-new#flutter-332) [![Dart](https://img.shields.io/badge/Dart-3.8.0-blue)](https://dart.dev/guides/whats-new#dart-380) [![License](https://img.shields.io/github/license/HE-LU/flutter-template)](LICENSE) @@ -11,7 +11,6 @@
[![CodeCheck](https://github.com/HE-LU/flutter-template/actions/workflows/flutter_project_codecheck_android.yml/badge.svg)](https://github.com/HE-LU/flutter-template/actions/workflows/flutter_project_codecheck_android.yml) -[![CodeRabbit Pull Request Reviews](https://img.shields.io/coderabbit/prs/github/HE-LU/flutter-template?utm_source=oss&utm_medium=github&utm_campaign=HE-LU%2Fflutter-template&labelColor=171717&color=FF570A)](#)
@@ -71,6 +70,7 @@ - [Authors](#authors) + @@ -78,6 +78,7 @@ - Notes that could be beneficial to know during the development. - For example list of test accounts, required credentials, steps required to get testing account, etc. + @@ -92,6 +93,7 @@ These are our four core values: - **Innovation** - We encourage creativity and innovation within the Flutter team. Support an environment where team members feel comfortable suggesting new ideas, experimenting with different approaches, and finding new solutions to problems. + @@ -114,6 +116,7 @@ These are our four core values: 9. - [ ] Go through all the ToDo's inside the project, and react to them. + @@ -199,6 +202,7 @@ For Google sign in: - for iOS, you have to copy value from `REVERSED_CLIENT_ID` from `GoogleService-Info.plist` into `GOOGLE_REVERSED_CLIENT_ID` in build settings. + @@ -407,6 +411,7 @@ To be able to use the firebase provider for Apple login, we need to do some conf - The app will crash, and you will see the error message `[CustomException] Received error PlatformException(google_sign_in, Your app is missing support for the following URL schemes: com.googleusercontent.apps......` in the debug console if the custom URL schemes setup is incorrect after tapping the Google Auth button. + diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 50e2c2e..2f3991e 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -9,6 +9,7 @@ diff --git a/build.yaml b/build.yaml index 26cf9f7..a0ab740 100644 --- a/build.yaml +++ b/build.yaml @@ -7,15 +7,12 @@ targets: generate_for: - lib/common/data/dto/*_dto.dart - lib/common/data/dto/**/*_dto.dart - - lib/common/data/dto/**/**/*_dto.dart - lib/common/data/enum/*.dart - lib/common/data/enum/**/*.dart - - lib/common/data/enum/**/**/*.dart - lib/common/data/model/*.dart - lib/common/data/model/**/*.dart - - lib/common/data/model/**/**/*.dart - lib/common/validator/*.dart @@ -24,11 +21,9 @@ targets: - lib/features/*_event.dart - lib/features/**/*_event.dart - - lib/features/**/**/*_event.dart - lib/features/*_state.dart - lib/features/**/*_state.dart - - lib/features/**/**/*_state.dart # Title: Riverpod @@ -39,11 +34,9 @@ targets: - lib/common/provider/*.dart - lib/common/provider/**/*.dart - - lib/common/provider/**/**/*.dart - lib/common/usecase/*.dart - lib/common/usecase/**/*.dart - - lib/common/usecase/**/**/*.dart - lib/core/analytics/analytics_manager.dart - lib/core/analytics/analytics_route_observer.dart @@ -53,7 +46,6 @@ targets: - lib/features/*_state.dart - lib/features/**/*_state.dart - - lib/features/**/**/*_state.dart # Title: Json Serializable @@ -62,15 +54,12 @@ targets: generate_for: - lib/common/data/dto/*_dto.dart - lib/common/data/dto/**/*_dto.dart - - lib/common/data/dto/**/**/*_dto.dart - lib/common/data/enum/*.dart - lib/common/data/enum/**/*.dart - - lib/common/data/enum/**/**/*.dart - lib/common/data/model/*.dart - lib/common/data/model/**/*.dart - - lib/common/data/model/**/**/*.dart # Title: Auto Route diff --git a/flutter.code-workspace b/flutter.code-workspace index 3ba5c0f..10b6934 100644 --- a/flutter.code-workspace +++ b/flutter.code-workspace @@ -236,6 +236,7 @@ "cSpell.words": [ "Buildless", "Refreshable", + "Riverpod", "usecase" ] } diff --git a/ios/Podfile b/ios/Podfile index 526c6f1..6b7de04 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -platform :ios, '13.0' +platform :ios, '15.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 1f604d3..002833b 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,11 +1,11 @@ PODS: - app_settings (5.1.1): - Flutter - - AppAuth (1.7.6): - - AppAuth/Core (= 1.7.6) - - AppAuth/ExternalUserAgent (= 1.7.6) - - AppAuth/Core (1.7.6) - - AppAuth/ExternalUserAgent (1.7.6): + - AppAuth (2.0.0): + - AppAuth/Core (= 2.0.0) + - AppAuth/ExternalUserAgent (= 2.0.0) + - AppAuth/Core (2.0.0) + - AppAuth/ExternalUserAgent (2.0.0): - AppAuth/Core - AppCheckCore (11.2.0): - GoogleUtilities/Environment (~> 8.0) @@ -14,138 +14,124 @@ PODS: - CocoaAsyncSocket (7.6.5) - device_info_plus (0.0.1): - Flutter - - Firebase/Analytics (11.10.0): - - Firebase/Core - - Firebase/Auth (11.10.0): + - Firebase/Auth (12.0.0): - Firebase/CoreOnly - - FirebaseAuth (~> 11.10.0) - - Firebase/Core (11.10.0): + - FirebaseAuth (~> 12.0.0) + - Firebase/CoreOnly (12.0.0): + - FirebaseCore (~> 12.0.0) + - Firebase/Crashlytics (12.0.0): - Firebase/CoreOnly - - FirebaseAnalytics (~> 11.10.0) - - Firebase/CoreOnly (11.10.0): - - FirebaseCore (~> 11.10.0) - - Firebase/Crashlytics (11.10.0): + - FirebaseCrashlytics (~> 12.0.0) + - Firebase/Messaging (12.0.0): - Firebase/CoreOnly - - FirebaseCrashlytics (~> 11.10.0) - - Firebase/DynamicLinks (11.10.0): + - FirebaseMessaging (~> 12.0.0) + - Firebase/RemoteConfig (12.0.0): - Firebase/CoreOnly - - FirebaseDynamicLinks (~> 11.10.0) - - Firebase/Messaging (11.10.0): - - Firebase/CoreOnly - - FirebaseMessaging (~> 11.10.0) - - Firebase/RemoteConfig (11.10.0): - - Firebase/CoreOnly - - FirebaseRemoteConfig (~> 11.10.0) - - firebase_analytics (11.4.6): - - Firebase/Analytics (= 11.10.0) + - FirebaseRemoteConfig (~> 12.0.0) + - firebase_analytics (12.0.0): - firebase_core + - FirebaseAnalytics (= 12.0.0) - Flutter - - firebase_auth (5.5.4): - - Firebase/Auth (= 11.10.0) + - firebase_auth (6.0.0): + - Firebase/Auth (= 12.0.0) - firebase_core - Flutter - - firebase_core (3.13.1): - - Firebase/CoreOnly (= 11.10.0) - - Flutter - - firebase_crashlytics (4.3.6): - - Firebase/Crashlytics (= 11.10.0) - - firebase_core + - firebase_core (4.0.0): + - Firebase/CoreOnly (= 12.0.0) - Flutter - - firebase_dynamic_links (6.1.6): - - Firebase/DynamicLinks (= 11.10.0) + - firebase_crashlytics (5.0.0): + - Firebase/Crashlytics (= 12.0.0) - firebase_core - Flutter - - firebase_messaging (15.2.6): - - Firebase/Messaging (= 11.10.0) + - firebase_messaging (16.0.0): + - Firebase/Messaging (= 12.0.0) - firebase_core - Flutter - - firebase_remote_config (5.4.4): - - Firebase/RemoteConfig (= 11.10.0) + - firebase_remote_config (6.0.0): + - Firebase/RemoteConfig (= 12.0.0) - firebase_core - Flutter - - FirebaseABTesting (11.10.0): - - FirebaseCore (~> 11.10.0) - - FirebaseAnalytics (11.10.0): - - FirebaseAnalytics/AdIdSupport (= 11.10.0) - - FirebaseCore (~> 11.10.0) - - FirebaseInstallations (~> 11.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - - GoogleUtilities/MethodSwizzler (~> 8.0) - - GoogleUtilities/Network (~> 8.0) - - "GoogleUtilities/NSData+zlib (~> 8.0)" + - FirebaseABTesting (12.0.0): + - FirebaseCore (~> 12.0.0) + - FirebaseAnalytics (12.0.0): + - FirebaseAnalytics/Default (= 12.0.0) + - FirebaseCore (~> 12.0.0) + - FirebaseInstallations (~> 12.0.0) + - GoogleUtilities/AppDelegateSwizzler (~> 8.1) + - GoogleUtilities/MethodSwizzler (~> 8.1) + - GoogleUtilities/Network (~> 8.1) + - "GoogleUtilities/NSData+zlib (~> 8.1)" - nanopb (~> 3.30910.0) - - FirebaseAnalytics/AdIdSupport (11.10.0): - - FirebaseCore (~> 11.10.0) - - FirebaseInstallations (~> 11.0) - - GoogleAppMeasurement (= 11.10.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - - GoogleUtilities/MethodSwizzler (~> 8.0) - - GoogleUtilities/Network (~> 8.0) - - "GoogleUtilities/NSData+zlib (~> 8.0)" + - FirebaseAnalytics/Default (12.0.0): + - FirebaseCore (~> 12.0.0) + - FirebaseInstallations (~> 12.0.0) + - GoogleAppMeasurement/Default (= 12.0.0) + - GoogleUtilities/AppDelegateSwizzler (~> 8.1) + - GoogleUtilities/MethodSwizzler (~> 8.1) + - GoogleUtilities/Network (~> 8.1) + - "GoogleUtilities/NSData+zlib (~> 8.1)" - nanopb (~> 3.30910.0) - - FirebaseAppCheckInterop (11.13.0) - - FirebaseAuth (11.10.0): - - FirebaseAppCheckInterop (~> 11.0) - - FirebaseAuthInterop (~> 11.0) - - FirebaseCore (~> 11.10.0) - - FirebaseCoreExtension (~> 11.10.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - - GoogleUtilities/Environment (~> 8.0) - - GTMSessionFetcher/Core (< 5.0, >= 3.4) + - FirebaseAppCheckInterop (12.0.0) + - FirebaseAuth (12.0.0): + - FirebaseAppCheckInterop (~> 12.0.0) + - FirebaseAuthInterop (~> 12.0.0) + - FirebaseCore (~> 12.0.0) + - FirebaseCoreExtension (~> 12.0.0) + - GoogleUtilities/AppDelegateSwizzler (~> 8.1) + - GoogleUtilities/Environment (~> 8.1) + - GTMSessionFetcher/Core (< 6.0, >= 3.4) - RecaptchaInterop (~> 101.0) - - FirebaseAuthInterop (11.13.0) - - FirebaseCore (11.10.0): - - FirebaseCoreInternal (~> 11.10.0) - - GoogleUtilities/Environment (~> 8.0) - - GoogleUtilities/Logger (~> 8.0) - - FirebaseCoreExtension (11.10.0): - - FirebaseCore (~> 11.10.0) - - FirebaseCoreInternal (11.10.0): - - "GoogleUtilities/NSData+zlib (~> 8.0)" - - FirebaseCrashlytics (11.10.0): - - FirebaseCore (~> 11.10.0) - - FirebaseInstallations (~> 11.0) - - FirebaseRemoteConfigInterop (~> 11.0) - - FirebaseSessions (~> 11.0) - - GoogleDataTransport (~> 10.0) - - GoogleUtilities/Environment (~> 8.0) + - FirebaseAuthInterop (12.0.0) + - FirebaseCore (12.0.0): + - FirebaseCoreInternal (~> 12.0.0) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/Logger (~> 8.1) + - FirebaseCoreExtension (12.0.0): + - FirebaseCore (~> 12.0.0) + - FirebaseCoreInternal (12.0.0): + - "GoogleUtilities/NSData+zlib (~> 8.1)" + - FirebaseCrashlytics (12.0.0): + - FirebaseCore (~> 12.0.0) + - FirebaseInstallations (~> 12.0.0) + - FirebaseRemoteConfigInterop (~> 12.0.0) + - FirebaseSessions (~> 12.0.0) + - GoogleDataTransport (~> 10.1) + - GoogleUtilities/Environment (~> 8.1) - nanopb (~> 3.30910.0) - PromisesObjC (~> 2.4) - - FirebaseDynamicLinks (11.10.0): - - FirebaseCore (~> 11.10.0) - - FirebaseInstallations (11.10.0): - - FirebaseCore (~> 11.10.0) - - GoogleUtilities/Environment (~> 8.0) - - GoogleUtilities/UserDefaults (~> 8.0) + - FirebaseInstallations (12.0.0): + - FirebaseCore (~> 12.0.0) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/UserDefaults (~> 8.1) - PromisesObjC (~> 2.4) - - FirebaseMessaging (11.10.0): - - FirebaseCore (~> 11.10.0) - - FirebaseInstallations (~> 11.0) - - GoogleDataTransport (~> 10.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - - GoogleUtilities/Environment (~> 8.0) - - GoogleUtilities/Reachability (~> 8.0) - - GoogleUtilities/UserDefaults (~> 8.0) + - FirebaseMessaging (12.0.0): + - FirebaseCore (~> 12.0.0) + - FirebaseInstallations (~> 12.0.0) + - GoogleDataTransport (~> 10.1) + - GoogleUtilities/AppDelegateSwizzler (~> 8.1) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/Reachability (~> 8.1) + - GoogleUtilities/UserDefaults (~> 8.1) - nanopb (~> 3.30910.0) - - FirebaseRemoteConfig (11.10.0): - - FirebaseABTesting (~> 11.0) - - FirebaseCore (~> 11.10.0) - - FirebaseInstallations (~> 11.0) - - FirebaseRemoteConfigInterop (~> 11.0) - - FirebaseSharedSwift (~> 11.0) - - GoogleUtilities/Environment (~> 8.0) - - "GoogleUtilities/NSData+zlib (~> 8.0)" - - FirebaseRemoteConfigInterop (11.13.0) - - FirebaseSessions (11.10.0): - - FirebaseCore (~> 11.10.0) - - FirebaseCoreExtension (~> 11.10.0) - - FirebaseInstallations (~> 11.0) - - GoogleDataTransport (~> 10.0) - - GoogleUtilities/Environment (~> 8.0) - - GoogleUtilities/UserDefaults (~> 8.0) + - FirebaseRemoteConfig (12.0.0): + - FirebaseABTesting (~> 12.0.0) + - FirebaseCore (~> 12.0.0) + - FirebaseInstallations (~> 12.0.0) + - FirebaseRemoteConfigInterop (~> 12.0.0) + - FirebaseSharedSwift (~> 12.0.0) + - GoogleUtilities/Environment (~> 8.1) + - "GoogleUtilities/NSData+zlib (~> 8.1)" + - FirebaseRemoteConfigInterop (12.0.0) + - FirebaseSessions (12.0.0): + - FirebaseCore (~> 12.0.0) + - FirebaseCoreExtension (~> 12.0.0) + - FirebaseInstallations (~> 12.0.0) + - GoogleDataTransport (~> 10.1) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/UserDefaults (~> 8.1) - nanopb (~> 3.30910.0) - PromisesSwift (~> 2.1) - - FirebaseSharedSwift (11.13.0) + - FirebaseSharedSwift (12.0.0) - Flutter (1.0.0) - flutter_local_notifications (0.0.1): - Flutter @@ -154,38 +140,43 @@ PODS: - freerasp (1.0.0): - Flutter - google_sign_in_ios (0.0.1): - - AppAuth (>= 1.7.4) - Flutter - FlutterMacOS - - GoogleSignIn (~> 8.0) + - GoogleSignIn (~> 9.0) - GTMSessionFetcher (>= 3.4.0) - - GoogleAppMeasurement (11.10.0): - - GoogleAppMeasurement/AdIdSupport (= 11.10.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - - GoogleUtilities/MethodSwizzler (~> 8.0) - - GoogleUtilities/Network (~> 8.0) - - "GoogleUtilities/NSData+zlib (~> 8.0)" + - GoogleAdsOnDeviceConversion (2.1.0): + - GoogleUtilities/Logger (~> 8.1) + - GoogleUtilities/Network (~> 8.1) + - nanopb (~> 3.30910.0) + - GoogleAppMeasurement/Core (12.0.0): + - GoogleUtilities/AppDelegateSwizzler (~> 8.1) + - GoogleUtilities/MethodSwizzler (~> 8.1) + - GoogleUtilities/Network (~> 8.1) + - "GoogleUtilities/NSData+zlib (~> 8.1)" - nanopb (~> 3.30910.0) - - GoogleAppMeasurement/AdIdSupport (11.10.0): - - GoogleAppMeasurement/WithoutAdIdSupport (= 11.10.0) - - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - - GoogleUtilities/MethodSwizzler (~> 8.0) - - GoogleUtilities/Network (~> 8.0) - - "GoogleUtilities/NSData+zlib (~> 8.0)" + - GoogleAppMeasurement/Default (12.0.0): + - GoogleAdsOnDeviceConversion (= 2.1.0) + - GoogleAppMeasurement/Core (= 12.0.0) + - GoogleAppMeasurement/IdentitySupport (= 12.0.0) + - GoogleUtilities/AppDelegateSwizzler (~> 8.1) + - GoogleUtilities/MethodSwizzler (~> 8.1) + - GoogleUtilities/Network (~> 8.1) + - "GoogleUtilities/NSData+zlib (~> 8.1)" - nanopb (~> 3.30910.0) - - GoogleAppMeasurement/WithoutAdIdSupport (11.10.0): - - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - - GoogleUtilities/MethodSwizzler (~> 8.0) - - GoogleUtilities/Network (~> 8.0) - - "GoogleUtilities/NSData+zlib (~> 8.0)" + - GoogleAppMeasurement/IdentitySupport (12.0.0): + - GoogleAppMeasurement/Core (= 12.0.0) + - GoogleUtilities/AppDelegateSwizzler (~> 8.1) + - GoogleUtilities/MethodSwizzler (~> 8.1) + - GoogleUtilities/Network (~> 8.1) + - "GoogleUtilities/NSData+zlib (~> 8.1)" - nanopb (~> 3.30910.0) - GoogleDataTransport (10.1.0): - nanopb (~> 3.30910.0) - PromisesObjC (~> 2.4) - - GoogleSignIn (8.0.0): - - AppAuth (< 2.0, >= 1.7.3) + - GoogleSignIn (9.0.0): + - AppAuth (~> 2.0) - AppCheckCore (~> 11.0) - - GTMAppAuth (< 5.0, >= 4.1.1) + - GTMAppAuth (~> 5.0) - GTMSessionFetcher/Core (~> 3.3) - GoogleUtilities/AppDelegateSwizzler (8.1.0): - GoogleUtilities/Environment @@ -214,8 +205,8 @@ PODS: - GoogleUtilities/UserDefaults (8.1.0): - GoogleUtilities/Logger - GoogleUtilities/Privacy - - GTMAppAuth (4.1.1): - - AppAuth/Core (~> 1.7) + - GTMAppAuth (5.0.0): + - AppAuth/Core (~> 2.0) - GTMSessionFetcher/Core (< 4.0, >= 3.3) - GTMSessionFetcher (3.5.0): - GTMSessionFetcher/Full (= 3.5.0) @@ -259,7 +250,6 @@ DEPENDENCIES: - firebase_auth (from `.symlinks/plugins/firebase_auth/ios`) - firebase_core (from `.symlinks/plugins/firebase_core/ios`) - firebase_crashlytics (from `.symlinks/plugins/firebase_crashlytics/ios`) - - firebase_dynamic_links (from `.symlinks/plugins/firebase_dynamic_links/ios`) - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) - firebase_remote_config (from `.symlinks/plugins/firebase_remote_config/ios`) - Flutter (from `Flutter`) @@ -291,13 +281,13 @@ SPEC REPOS: - FirebaseCoreExtension - FirebaseCoreInternal - FirebaseCrashlytics - - FirebaseDynamicLinks - FirebaseInstallations - FirebaseMessaging - FirebaseRemoteConfig - FirebaseRemoteConfigInterop - FirebaseSessions - FirebaseSharedSwift + - GoogleAdsOnDeviceConversion - GoogleAppMeasurement - GoogleDataTransport - GoogleSignIn @@ -322,8 +312,6 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/firebase_core/ios" firebase_crashlytics: :path: ".symlinks/plugins/firebase_crashlytics/ios" - firebase_dynamic_links: - :path: ".symlinks/plugins/firebase_dynamic_links/ios" firebase_messaging: :path: ".symlinks/plugins/firebase_messaging/ios" firebase_remote_config: @@ -357,44 +345,43 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: app_settings: 58017cd26b604ae98c3e65acbdd8ba173703cc82 - AppAuth: d4f13a8fe0baf391b2108511793e4b479691fb73 + AppAuth: 1c1a8afa7e12f2ec3a294d9882dfa5ab7d3cb063 AppCheckCore: cc8fd0a3a230ddd401f326489c99990b013f0c4f CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 device_info_plus: bf2e3232933866d73fe290f2942f2156cdd10342 - Firebase: 1fe1c0a7d9aaea32efe01fbea5f0ebd8d70e53a2 - firebase_analytics: 943aa4699bf6afe056a96991ba8ee34776323d4c - firebase_auth: 519455ee22dea9cb8b4e05d7821f93f77db88882 - firebase_core: 3c2f323cae65c97a636a05a23b17730ef93df2cf - firebase_crashlytics: 6f5f71ba7ec7b6a0412c4ed076272643c434f69f - firebase_dynamic_links: 9ac84226585cfd0e723a13d5547122155fed99c4 - firebase_messaging: 456e01ff29a451c90097d0b45925551d5be0c143 - firebase_remote_config: 6dc3e79fe219c24f1393faf91463559bf3784fd4 - FirebaseABTesting: dfc10eb6cc08fe3b391ac9e5aa40396d43ea6675 - FirebaseAnalytics: 4e42333f02cf78ed93703a5c36f36dd518aebdef - FirebaseAppCheckInterop: 72066489c209823649a997132bcd9269bc33a4bb - FirebaseAuth: c4146bdfdc87329f9962babd24dae89373f49a32 - FirebaseAuthInterop: 4fa327ec3c551a80a6929561f83af80b1dd44937 - FirebaseCore: 8344daef5e2661eb004b177488d6f9f0f24251b7 - FirebaseCoreExtension: 6f357679327f3614e995dc7cf3f2d600bdc774ac - FirebaseCoreInternal: ef4505d2afb1d0ebbc33162cb3795382904b5679 - FirebaseCrashlytics: 84b073c997235740e6a951b7ee49608932877e5c - FirebaseDynamicLinks: a76f75ddb0612301c34b3f598100449b41bc2669 - FirebaseInstallations: 9980995bdd06ec8081dfb6ab364162bdd64245c3 - FirebaseMessaging: 2b9f56aa4ed286e1f0ce2ee1d413aabb8f9f5cb9 - FirebaseRemoteConfig: 10695bc0ce3b103e3706a5578c43f2a9f69d5aaa - FirebaseRemoteConfigInterop: 7915cec47731a806cda541f90898ad0fab8f9f86 - FirebaseSessions: 9b3b30947b97a15370e0902ee7a90f50ef60ead6 - FirebaseSharedSwift: aca73668bc95e8efccb618e0167eab05d19d3a75 + Firebase: 800d487043c0557d9faed71477a38d9aafb08a41 + firebase_analytics: 2d63841132d444fad3d3e71682dc0072ae2aaf08 + firebase_auth: ea2c71a75676e82165974c12b0d09a946340a1c7 + firebase_core: c70f903d70ec229c08c2f49aba5a8c1338546d40 + firebase_crashlytics: f5df4d26483758138b386e0db8a704e5b7ba6543 + firebase_messaging: efa3a73cad64b05131bfe138c139a65e0daebe78 + firebase_remote_config: f137e220690596eb50e2724d6c85a14c5c8c092a + FirebaseABTesting: 2cad22e464cd7ef4589ae29f897bc71ff83ce83b + FirebaseAnalytics: 6d790cd1b159b4eb61a99948df0934ce505a34f7 + FirebaseAppCheckInterop: c848d06a04030c9858ef0ae555b82035dbe470d0 + FirebaseAuth: 654e4de84787c45d7265599a651038e854ccb439 + FirebaseAuthInterop: 002da671896af5e8879ae117dc604ed240b86e80 + FirebaseCore: 055f4ab117d5964158c833f3d5e7ec6d91648d4a + FirebaseCoreExtension: 639afb3de6abd611952be78a794c54a47fa0f361 + FirebaseCoreInternal: dedc28e569a4be85f38f3d6af1070a2e12018d55 + FirebaseCrashlytics: db75aa0cab8d00f68406fa247c32fe17ade884d7 + FirebaseInstallations: d4c7c958f99c8860d7fcece786314ae790e2f988 + FirebaseMessaging: af49f8d7c0a3d2a017d9302c80946f45a7777dde + FirebaseRemoteConfig: 4cbbe0083474359025e7bb334b9d0cff16b78d3a + FirebaseRemoteConfigInterop: bfa0ea72ba3dc5af739777296424e46bd6f42613 + FirebaseSessions: 4e784acda213108aafef536535cdfc03504acc42 + FirebaseSharedSwift: 59266c22ccfcef604d725c034c568fa666ea9bda Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 flutter_local_notifications: ff50f8405aaa0ccdc7dcfb9022ca192e8ad9688f flutter_native_splash: df59bb2e1421aa0282cb2e95618af4dcb0c56c29 freerasp: bb827d80b926abcfb8f4ca4ff4557c2fe4a5ae21 - google_sign_in_ios: 7411fab6948df90490dc4620ecbcabdc3ca04017 - GoogleAppMeasurement: 36684bfb3ee034e2b42b4321eb19da3a1b81e65d + google_sign_in_ios: 4bb0e529b167cadc6ac785b6ed943c0a0a4cc1c9 + GoogleAdsOnDeviceConversion: 2be6297a4f048459e0ae17fad9bfd2844e10cf64 + GoogleAppMeasurement: 8f6ab04ad6ae493b53fcf56bd26323fb2f1384f3 GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 - GoogleSignIn: ce8c89bb9b37fb624b92e7514cc67335d1e277e4 + GoogleSignIn: c7f09cfbc85a1abf69187be091997c317cc33b77 GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1 - GTMAppAuth: f69bd07d68cd3b766125f7e072c45d7340dea0de + GTMAppAuth: 217a876b249c3c585a54fd6f73e6b58c4f5c4238 GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6 nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 package_info_plus: c0502532a26c7662a62a356cebe2692ec5fe4ec4 @@ -409,6 +396,6 @@ SPEC CHECKSUMS: sign_in_with_apple: f3bf75217ea4c2c8b91823f225d70230119b8440 url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe -PODFILE CHECKSUM: 2dd925d938854ab0a15694b67b98ef05cc6d9fd1 +PODFILE CHECKSUM: 4b58752610e7b5bbd146b584e63d3c1bd146c7d4 COCOAPODS: 1.16.2 diff --git a/lib/app/setup/setup_app.dart b/lib/app/setup/setup_app.dart index 3acc9fa..6bff945 100644 --- a/lib/app/setup/setup_app.dart +++ b/lib/app/setup/setup_app.dart @@ -20,6 +20,7 @@ import 'package:flutter_app/core/flogger.dart'; import 'package:flutter_native_splash/flutter_native_splash.dart'; import 'package:flutter_web_plugins/url_strategy.dart'; import 'package:freerasp/freerasp.dart'; +import 'package:google_sign_in/google_sign_in.dart'; import 'package:window_manager/window_manager.dart'; Future setupApp({required Flavor flavor}) async { @@ -47,6 +48,9 @@ Future setupApp({required Flavor flavor}) async { await _setupFirebaseMessaging(); await _setupLocalNotificationsService(); + // Setup Google Sign In + await GoogleSignIn.instance.initialize(); + // Setup FreeRASP Security await _setupRASP(flavor: flavor); diff --git a/lib/app/theme/app_theme.dart b/lib/app/theme/app_theme.dart index 034ba34..b90d1c7 100644 --- a/lib/app/theme/app_theme.dart +++ b/lib/app/theme/app_theme.dart @@ -16,11 +16,19 @@ class AppTheme { final colorScheme = CustomColorScheme(brightness: brightness); final textTheme = CustomTextTheme(colorScheme: colorScheme); + // Create a native color scheme based on the custom color scheme. + var nativeColorScheme = kDebugMode + ? _getUndefinedColorScheme(brightness) + : ColorScheme.fromSeed(seedColor: colorScheme.primary, brightness: brightness); + + // Override colors that make sense to override, and that we can match. + nativeColorScheme = nativeColorScheme.copyWith( + surface: colorScheme.surface, + ); + return ThemeData( brightness: brightness, - colorScheme: kDebugMode - ? _getUndefinedColorScheme(brightness) - : ColorScheme.fromSeed(seedColor: colorScheme.primary, brightness: brightness), + colorScheme: nativeColorScheme, visualDensity: VisualDensity.standard, // Needed for consistent web and app sizing textTheme: kDebugMode ? _getUndefinedTextTheme() : null, scaffoldBackgroundColor: colorScheme.surface, diff --git a/lib/common/data/model/exception/custom_exception.dart b/lib/common/data/model/exception/custom_exception.dart index ca3767a..ffc1d56 100644 --- a/lib/common/data/model/exception/custom_exception.dart +++ b/lib/common/data/model/exception/custom_exception.dart @@ -7,6 +7,7 @@ import 'package:flutter_app/common/extension/build_context.dart'; import 'package:flutter_app/core/analytics/crashlytics_manager.dart'; import 'package:flutter_app/core/flogger.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; +import 'package:google_sign_in/google_sign_in.dart'; import 'package:sign_in_with_apple/sign_in_with_apple.dart'; part 'custom_exception.freezed.dart'; @@ -51,6 +52,13 @@ sealed class CustomException with _$CustomException implements Exception { return CustomException.withMessage(message: error.message); } + } else if (error is GoogleSignInException) { + switch (error.code) { + case GoogleSignInExceptionCode.canceled: + return const CustomException.signInCancelled(); + default: + return CustomException.withMessage(message: error.description); + } } else if (error is SignInWithAppleAuthorizationException) { switch (error.code) { case AuthorizationErrorCode.canceled: diff --git a/lib/common/usecase/authentication/sign_in_with_google_use_case.dart b/lib/common/usecase/authentication/sign_in_with_google_use_case.dart index 897e7c2..4884f2e 100644 --- a/lib/common/usecase/authentication/sign_in_with_google_use_case.dart +++ b/lib/common/usecase/authentication/sign_in_with_google_use_case.dart @@ -1,5 +1,4 @@ import 'package:firebase_auth/firebase_auth.dart'; -import 'package:flutter_app/common/data/model/exception/custom_exception.dart'; import 'package:flutter_app/common/data/model/user_model.dart'; import 'package:flutter_app/common/usecase/authentication/sign_in_with_auth_credential_use_case.dart'; import 'package:flutter_app/core/flogger.dart'; @@ -9,29 +8,33 @@ import 'package:riverpod_annotation/riverpod_annotation.dart'; part 'sign_in_with_google_use_case.g.dart'; +const List _scopes = [ + 'email', +]; + @riverpod Future signInWithGoogleUseCase(Ref ref) async { Flogger.d('[Authentication] Sign in with Google started'); - final googleSignIn = GoogleSignIn(); + final googleSignIn = GoogleSignIn.instance; - // Step 1: Logout from Current Google account if any - if (await googleSignIn.isSignedIn()) { - await googleSignIn.disconnect(); - } + // Subtitle: Step 1 - Logout from Current Google account if any + await googleSignIn.disconnect(); - // Step 2: Sign in with Google - final googleSignInAccount = await googleSignIn.signIn(); + // Subtitle: Step 2 - Authenticate user with Google + final account = await googleSignIn.authenticate(); - if (googleSignInAccount == null) throw const CustomException.signInCancelled(); + // Subtitle: Step 3 - Authorize scopes + var authorization = await account.authorizationClient.authorizationForScopes(_scopes); + authorization ??= await account.authorizationClient.authorizeScopes(_scopes); - final googleSignInAuthentication = await googleSignInAccount.authentication; + // Subtitle: Step 4 - Create OAuth credential for Firebase final oauthCredential = GoogleAuthProvider.credential( - accessToken: googleSignInAuthentication.accessToken, - idToken: googleSignInAuthentication.idToken, + accessToken: authorization.accessToken, + idToken: account.authentication.idToken, ); - Flogger.d('[Authentication] Received credential from Google: $oauthCredential'); + Flogger.d('[Authentication] Received credential: $oauthCredential'); return await ref.read( signInWithAuthCredentialUseCaseProvider( diff --git a/lib/common/usecase/authentication/sign_out_use_case.dart b/lib/common/usecase/authentication/sign_out_use_case.dart index 93d0382..1be59e6 100644 --- a/lib/common/usecase/authentication/sign_out_use_case.dart +++ b/lib/common/usecase/authentication/sign_out_use_case.dart @@ -14,7 +14,7 @@ Future signOutUseCase(Ref ref) async { // Title: Try to sign out from Google - if any try { - await GoogleSignIn().disconnect(); + await GoogleSignIn.instance.disconnect(); } on MissingPluginException catch (error) { Flogger.d('[Authentication] MissingPluginException $error'); } on PlatformException catch (error) { diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 160e063..bae23f1 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -28,12 +28,12 @@ import window_manager func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { AppSettingsPlugin.register(with: registry.registrar(forPlugin: "AppSettingsPlugin")) DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin")) - FLTFirebaseAnalyticsPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseAnalyticsPlugin")) + FirebaseAnalyticsPlugin.register(with: registry.registrar(forPlugin: "FirebaseAnalyticsPlugin")) FLTFirebaseAuthPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseAuthPlugin")) FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin")) FLTFirebaseCrashlyticsPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCrashlyticsPlugin")) FLTFirebaseMessagingPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseMessagingPlugin")) - FLTFirebaseRemoteConfigPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseRemoteConfigPlugin")) + FirebaseRemoteConfigPlugin.register(with: registry.registrar(forPlugin: "FirebaseRemoteConfigPlugin")) FlutterLocalNotificationsPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalNotificationsPlugin")) FLTGoogleSignInPlugin.register(with: registry.registrar(forPlugin: "FLTGoogleSignInPlugin")) FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin")) diff --git a/pubspec.lock b/pubspec.lock index 6583bb6..f15be97 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,34 +5,34 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: dc27559385e905ad30838356c5f5d574014ba39872d732111cd07ac0beff4c57 + sha256: da0d9209ca76bde579f2da330aeb9df62b6319c834fa7baae052021b0462401f url: "https://pub.dev" source: hosted - version: "80.0.0" + version: "85.0.0" _flutterfire_internals: dependency: transitive description: name: _flutterfire_internals - sha256: "214e6f07e2a44f45972e0365c7b537eaeaddb4598db0778dd4ac64b4acd3f5b1" + sha256: bb84ee51e527053dd8e25ecc9f97a6abfdc19130fb4d883e4e8585e23e7e6dd8 url: "https://pub.dev" source: hosted - version: "1.3.55" + version: "1.3.60" analyzer: dependency: transitive description: name: analyzer - sha256: "192d1c5b944e7e53b24b5586db760db934b177d4147c42fbca8c8c5f1eb8d11e" + sha256: f4ad0fea5f102201015c9aae9d93bc02f75dd9491529a8c21f88d17a8523d44c url: "https://pub.dev" source: hosted - version: "7.3.0" + version: "7.6.0" analyzer_plugin: dependency: transitive description: name: analyzer_plugin - sha256: b3075265c5ab222f8b3188342dcb50b476286394a40323e85d1fa725035d40a4 + sha256: a5ab7590c27b779f3d4de67f31c4109dbe13dd7339f86461a6f2a8ab2594d8ce url: "https://pub.dev" source: hosted - version: "0.13.0" + version: "0.13.4" ansicolor: dependency: transitive description: @@ -77,10 +77,10 @@ packages: dependency: "direct main" description: name: auto_route - sha256: "89bc5d17d8c575399891194b8cd02b39f52a8512c730052f17ebe443cdcb9109" + sha256: b8c036fa613a98a759cf0fdcba26e62f4985dcbff01a5e760ab411e8554bbaf0 url: "https://pub.dev" source: hosted - version: "10.0.1" + version: "10.1.0+1" auto_route_generator: dependency: "direct dev" description: @@ -101,10 +101,10 @@ packages: dependency: transitive description: name: build - sha256: cef23f1eda9b57566c81e2133d196f8e3df48f244b317368d65c5943d91148f0 + sha256: "51dc711996cbf609b90cbe5b335bbce83143875a9d58e4b5c6d3c4f684d3dda7" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.5.4" build_config: dependency: transitive description: @@ -125,26 +125,26 @@ packages: dependency: transitive description: name: build_resolvers - sha256: b9e4fda21d846e192628e7a4f6deda6888c36b5b69ba02ff291a01fd529140f0 + sha256: ee4257b3f20c0c90e72ed2b57ad637f694ccba48839a821e87db762548c22a62 url: "https://pub.dev" source: hosted - version: "2.4.4" + version: "2.5.4" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "058fe9dce1de7d69c4b84fada934df3e0153dd000758c4d65964d0166779aa99" + sha256: "382a4d649addbfb7ba71a3631df0ec6a45d5ab9b098638144faf27f02778eb53" url: "https://pub.dev" source: hosted - version: "2.4.15" + version: "2.5.4" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: "22e3aa1c80e0ada3722fe5b63fd43d9c8990759d0a2cf489c8c5d7b2bdebc021" + sha256: "85fbbb1036d576d966332a3f5ce83f2ce66a40bea1a94ad2d5fc29a19a0d3792" url: "https://pub.dev" source: hosted - version: "8.0.0" + version: "9.1.2" built_collection: dependency: transitive description: @@ -157,10 +157,10 @@ packages: dependency: transitive description: name: built_value - sha256: ea90e81dc4a25a043d9bee692d20ed6d1c4a1662a28c03a96417446c093ed6b4 + sha256: "0b1b12a0a549605e5f04476031cd0bc91ead1d7c8e830773a18ee54179b3cb62" url: "https://pub.dev" source: hosted - version: "8.9.5" + version: "8.11.0" characters: dependency: transitive description: @@ -181,10 +181,10 @@ packages: dependency: transitive description: name: checked_yaml - sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff + sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f" url: "https://pub.dev" source: hosted - version: "2.0.3" + version: "2.0.4" ci: dependency: transitive description: @@ -293,18 +293,18 @@ packages: dependency: transitive description: name: custom_lint_visitor - sha256: "36282d85714af494ee2d7da8c8913630aa6694da99f104fb2ed4afcf8fc857d8" + sha256: "4a86a0d8415a91fbb8298d6ef03e9034dc8e323a599ddc4120a0e36c433983a2" url: "https://pub.dev" source: hosted - version: "1.0.0+7.3.0" + version: "1.0.0+7.7.0" dart_style: dependency: transitive description: name: dart_style - sha256: "5b236382b47ee411741447c1f1e111459c941ea1b3f2b540dde54c210a3662af" + sha256: "8a0e5fba27e8ee025d2ffb4ee820b4e6e2cf5e4246a6b1a477eb66866947e0bb" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.1" dartx: dependency: transitive description: @@ -325,18 +325,18 @@ packages: dependency: "direct main" description: name: device_info_plus - sha256: "0c6396126421b590089447154c5f98a5de423b70cfb15b1578fd018843ee6f53" + sha256: "98f28b42168cc509abc92f88518882fd58061ea372d7999aecc424345c7bff6a" url: "https://pub.dev" source: hosted - version: "11.4.0" + version: "11.5.0" device_info_plus_platform_interface: dependency: transitive description: name: device_info_plus_platform_interface - sha256: "0b04e02b30791224b31969eb1b50d723498f402971bff3630bca2ba839bd1ed2" + sha256: e1ea89119e34903dca74b883d0dd78eb762814f97fb6c76f35e9ff74d261a18f url: "https://pub.dev" source: hosted - version: "7.0.2" + version: "7.0.3" dio: dependency: "direct main" description: @@ -381,10 +381,10 @@ packages: dependency: transitive description: name: extended_image_library - sha256: ae468c31c375064964de11cbb31310a58c4462df6e3bae1a0bc0066f586795d5 + sha256: "1f9a24d3a00c2633891c6a7b5cab2807999eb2d5b597e5133b63f49d113811fe" url: "https://pub.dev" source: hosted - version: "5.0.0" + version: "5.0.1" fake_async: dependency: transitive description: @@ -413,154 +413,138 @@ packages: dependency: "direct main" description: name: firebase_analytics - sha256: b5b31727ad7c7f41e139637d1d582e435fd14054abcbd162c64476f90737105c + sha256: "07146e89e11302c6b07e3465c2c556ebcdd0053a3c5b1aa9bfd3203b778e5b4c" url: "https://pub.dev" source: hosted - version: "11.4.6" + version: "12.0.0" firebase_analytics_platform_interface: dependency: transitive description: name: firebase_analytics_platform_interface - sha256: "86817ee7db6377e09830467932c31644713d8e8915cefff64610ad735612bc7d" + sha256: "27e81a0efc821bec6cba64abc1083b91c8ddbad28eeb4c6f6b7c78a59d06f259" url: "https://pub.dev" source: hosted - version: "4.3.6" + version: "5.0.0" firebase_analytics_web: dependency: transitive description: name: firebase_analytics_web - sha256: "4914e184a6aa37811d976db59f95fa8fda1d58db49ab7f73d4d8aac9dd9b19b7" + sha256: "7d87f47462042a7d9125e3123db2783bc72917d85e2719d4cb6aeaec209605e1" url: "https://pub.dev" source: hosted - version: "0.5.10+12" + version: "0.6.0" firebase_auth: dependency: "direct main" description: name: firebase_auth - sha256: "10cd3f00a247f33b0a5c77574011a87379432bf3fec77a500b55f2bcc30ddd8b" + sha256: "974541532dc3f5ea3c0d7c5bb3e6c90fb81a8950e0e15c4a11e2b17a06379070" url: "https://pub.dev" source: hosted - version: "5.5.4" + version: "6.0.0" firebase_auth_platform_interface: dependency: transitive description: name: firebase_auth_platform_interface - sha256: "2d15872a8899b0459fab6b4c148fd142e135acfc8a303d383d80b455e4dba7bd" + sha256: "86a6318fd53a2958a9323454a4b8601b19963030157d71f92e356deadf9a3551" url: "https://pub.dev" source: hosted - version: "7.6.3" + version: "8.0.0" firebase_auth_web: dependency: transitive description: name: firebase_auth_web - sha256: efba45393050ca03d992eae1d305d5fc8c0c9f5980624053512e935c23767c4f + sha256: "042d424d50515cd62b4c0bda70872f5fa7e69c905e442b087e07e0117aac1222" url: "https://pub.dev" source: hosted - version: "5.14.3" + version: "6.0.0" firebase_core: dependency: "direct main" description: name: firebase_core - sha256: "8cfe3c900512399ce8d50fcc817e5758ff8615eeb6fa5c846a4cc47bbf6353b6" + sha256: "6b343e6f7b72a4f32d7ce8df8c9a28d8f54b4ac20d7c6500f3e8b3969afca457" url: "https://pub.dev" source: hosted - version: "3.13.1" + version: "4.0.0" firebase_core_platform_interface: dependency: transitive description: name: firebase_core_platform_interface - sha256: d7253d255ff10f85cfd2adaba9ac17bae878fa3ba577462451163bd9f1d1f0bf + sha256: "5dbc900677dcbe5873d22ad7fbd64b047750124f1f9b7ebe2a33b9ddccc838eb" url: "https://pub.dev" source: hosted - version: "5.4.0" + version: "6.0.0" firebase_core_web: dependency: transitive description: name: firebase_core_web - sha256: ddd72baa6f727e5b23f32d9af23d7d453d67946f380bd9c21daf474ee0f7326e + sha256: "5d28b14dd32282fb7ce2b22b897362453755b6b8541d491127dc72b755bb7b16" url: "https://pub.dev" source: hosted - version: "2.23.0" + version: "3.0.0" firebase_crashlytics: dependency: "direct main" description: name: firebase_crashlytics - sha256: "49d20b1dd87bb42746e27b5c72c1e3a3d84ae6415d062f8b31ecb71a35d36d0c" + sha256: "95b6871850b1a7e3b09c284c59a0c71fafcad3eee8ac1b6f06aaf8979290cbb8" url: "https://pub.dev" source: hosted - version: "4.3.6" + version: "5.0.0" firebase_crashlytics_platform_interface: dependency: transitive description: name: firebase_crashlytics_platform_interface - sha256: "0a5b2c9a662db7563482547b31da06a3951277cbfb42af12c5b52a15456ea951" - url: "https://pub.dev" - source: hosted - version: "3.8.6" - firebase_dynamic_links: - dependency: "direct main" - description: - name: firebase_dynamic_links - sha256: "417b07ed518cd33cd00d0b9546b5bb1e0a0b7edff694c322881cbafca01ebfc5" - url: "https://pub.dev" - source: hosted - version: "6.1.6" - firebase_dynamic_links_platform_interface: - dependency: transitive - description: - name: firebase_dynamic_links_platform_interface - sha256: "998fc351ded1fc5e366ace0e627b5e35b462d760f22058d86ee7351c2c96da97" + sha256: ba5b7a916f1ebedc6db35b33abdc618f202fc25e0792088dfba698e19fec9c09 url: "https://pub.dev" source: hosted - version: "0.2.7+6" + version: "3.8.11" firebase_messaging: dependency: "direct main" description: name: firebase_messaging - sha256: "38111089e511f03daa2c66b4c3614c16421b7d78c84ee04331a0a65b47df4542" + sha256: "10272b553a49c13a6cedfd00121047157521f82a5d3f2a1706b9dd28342cc482" url: "https://pub.dev" source: hosted - version: "15.2.6" + version: "16.0.0" firebase_messaging_platform_interface: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: ba254769982e5f439e534eed68856181c74e2b3f417c8188afad2bb440807cc7 + sha256: b846a305feb3f74ee3f0aace447f65a4696bc6550bc828ecf5a84a1b77473d16 url: "https://pub.dev" source: hosted - version: "4.6.6" + version: "4.7.0" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - sha256: dba89137272aac39e95f71408ba25c33fb8ed903cd5fa8d1e49b5cd0d96069e0 + sha256: "28714749880f7242c5fb3b1ee6c66b41f61453f02ae348b43c82957df80b87ae" url: "https://pub.dev" source: hosted - version: "3.10.6" + version: "4.0.0" firebase_remote_config: dependency: "direct main" description: name: firebase_remote_config - sha256: e65062f7435c8be13826d38c75218b30251a096ca742e7da55342b33ff8b4749 + sha256: d22fe46323f19f5ea252202438c4e006567aa2f2f116521e9373618bcd4daedc url: "https://pub.dev" source: hosted - version: "5.4.4" + version: "6.0.0" firebase_remote_config_platform_interface: dependency: transitive description: name: firebase_remote_config_platform_interface - sha256: "6d2f94570edbea0b1fb47e623af576f1896d14f839b1e3ba9b393a5e7c93c84d" + sha256: "3ab6c74a1a0ea28e275d44b1ebd3158fc188af301ff96ec36f0fa2d42d4caa63" url: "https://pub.dev" source: hosted - version: "1.5.4" + version: "2.0.1" firebase_remote_config_web: dependency: transitive description: name: firebase_remote_config_web - sha256: "5cf6eff2748193b64e9eb9965d5d727585f562d2946a53239385ad667e1c22e4" + sha256: c46d8320a9d263e13b89266f3552cc445b6f1f2bd28d74d010dcf8abad0b82d1 url: "https://pub.dev" source: hosted - version: "1.8.4" + version: "1.8.10" fixnum: dependency: transitive description: @@ -586,34 +570,34 @@ packages: dependency: transitive description: name: flutter_gen_core - sha256: "3eaa2d3d8be58267ac4cd5e215ac965dd23cae0410dc073de2e82e227be32bfc" + sha256: eda54fdc5de08e7eeea663eb8442aafc8660b5a13fda4e0c9e572c64e50195fb url: "https://pub.dev" source: hosted - version: "5.10.0" + version: "5.11.0" flutter_gen_runner: dependency: "direct dev" description: name: flutter_gen_runner - sha256: e74b4ead01df3e8f02e73a26ca856759dbbe8cb3fd60941ba9f4005cd0cd19c9 + sha256: "669bf8b7a9b4acbdcb7fcc5e12bf638aca19acedf43341714cbca3bf3a219521" url: "https://pub.dev" source: hosted - version: "5.10.0" + version: "5.11.0" flutter_lints: dependency: "direct dev" description: name: flutter_lints - sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1" + sha256: "3105dc8492f6183fb076ccf1f351ac3d60564bff92e20bfc4af9cc1651f4e7e1" url: "https://pub.dev" source: hosted - version: "5.0.0" + version: "6.0.0" flutter_local_notifications: dependency: "direct main" description: name: flutter_local_notifications - sha256: b94a50aabbe56ef254f95f3be75640f99120429f0a153b2dc30143cffc9bfdf3 + sha256: "20ca0a9c82ce0c855ac62a2e580ab867f3fbea82680a90647f7953832d0850ae" url: "https://pub.dev" source: hosted - version: "19.2.1" + version: "19.4.0" flutter_local_notifications_linux: dependency: transitive description: @@ -626,18 +610,18 @@ packages: dependency: transitive description: name: flutter_local_notifications_platform_interface - sha256: "2569b973fc9d1f63a37410a9f7c1c552081226c597190cb359ef5d5762d1631c" + sha256: "277d25d960c15674ce78ca97f57d0bae2ee401c844b6ac80fcd972a9c99d09fe" url: "https://pub.dev" source: hosted - version: "9.0.0" + version: "9.1.0" flutter_local_notifications_windows: dependency: transitive description: name: flutter_local_notifications_windows - sha256: f8fc0652a601f83419d623c85723a3e82ad81f92b33eaa9bcc21ea1b94773e6e + sha256: ed46d7ae4ec9d19e4c8fa2badac5fe27ba87a3fe387343ce726f927af074ec98 url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.2" flutter_localizations: dependency: "direct main" description: flutter @@ -679,10 +663,10 @@ packages: dependency: "direct main" description: name: flutter_svg - sha256: d44bf546b13025ec7353091516f6881f1d4c633993cb109c3916c3a0159dadf1 + sha256: cd57f7969b4679317c17af6fd16ee233c1e60a82ed209d8a475c54fd6fd6f845 url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.2.0" flutter_test: dependency: "direct dev" description: flutter @@ -697,10 +681,10 @@ packages: dependency: "direct main" description: name: freerasp - sha256: cfff05a951f6314475cefbe6f37c385afd1c36989389735bd78373182fa7d706 + sha256: a6c3f534499959152f0b9a24779f45dcac21f1c7e139c1cce26c0a80f68ca7a4 url: "https://pub.dev" source: hosted - version: "7.0.0" + version: "7.2.1" freezed: dependency: "direct dev" description: @@ -713,10 +697,10 @@ packages: dependency: "direct main" description: name: freezed_annotation - sha256: c87ff004c8aa6af2d531668b46a4ea379f7191dc6dfa066acd53d506da6e044b + sha256: "7294967ff0a6d98638e7acb774aac3af2550777accd8149c90af5b014e6d44d8" url: "https://pub.dev" source: hosted - version: "3.0.0" + version: "3.1.0" frontend_server_client: dependency: transitive description: @@ -745,42 +729,42 @@ packages: dependency: "direct main" description: name: google_sign_in - sha256: d0a2c3bcb06e607bb11e4daca48bd4b6120f0bbc4015ccebbe757d24ea60ed2a + sha256: "939a8b58f84c4053811b8c1bc9adbcb59449a15b37958264bbf60020698cca0e" url: "https://pub.dev" source: hosted - version: "6.3.0" + version: "7.1.1" google_sign_in_android: dependency: transitive description: name: google_sign_in_android - sha256: d5e23c56a4b84b6427552f1cf3f98f716db3b1d1a647f16b96dbb5b93afa2805 + sha256: f256b8f0e6c09d135c166fe20b25256e24d60fe1a72e6bdc112a200bd0d555b4 url: "https://pub.dev" source: hosted - version: "6.2.1" + version: "7.0.3" google_sign_in_ios: dependency: transitive description: name: google_sign_in_ios - sha256: "102005f498ce18442e7158f6791033bbc15ad2dcc0afa4cf4752e2722a516c96" + sha256: c7ee744ebbcd98353966dbdee735d4fca085226f6bf725c6bea8a5c8fe0055bc url: "https://pub.dev" source: hosted - version: "5.9.0" + version: "6.1.0" google_sign_in_platform_interface: dependency: transitive description: name: google_sign_in_platform_interface - sha256: "5f6f79cf139c197261adb6ac024577518ae48fdff8e53205c5373b5f6430a8aa" + sha256: "8736443134d2cccadd4f228d600177cb3947e36683466a6ab96877ce6932885a" url: "https://pub.dev" source: hosted - version: "2.5.0" + version: "3.0.0" google_sign_in_web: dependency: transitive description: name: google_sign_in_web - sha256: "460547beb4962b7623ac0fb8122d6b8268c951cf0b646dd150d60498430e4ded" + sha256: "09ac306b2787b48f19c857b9f93375b654f774643c75bd6a1a078c85f4f7b468" url: "https://pub.dev" source: hosted - version: "0.12.4+4" + version: "1.0.0" graphs: dependency: transitive description: @@ -937,10 +921,10 @@ packages: dependency: transitive description: name: lints - sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7 + sha256: a5e2b223cb7c9c8efdc663ef484fdd95bb243bff242ef5b13e26883547fce9a0 url: "https://pub.dev" source: hosted - version: "5.1.1" + version: "6.0.0" logging: dependency: transitive description: @@ -993,10 +977,10 @@ packages: dependency: "direct dev" description: name: netglade_analysis - sha256: "67778583fbddc666daddb53a9ab948bf5a37cbfb949c5d7fdf51b87b0cd1746a" + sha256: "5f3b6824ad4b341d7c75eb854c42045468cd9cd6ff1b62638459ba06918c0cb0" url: "https://pub.dev" source: hosted - version: "16.1.0" + version: "18.0.0" package_config: dependency: transitive description: @@ -1089,34 +1073,34 @@ packages: dependency: "direct dev" description: name: patrol - sha256: "254493e63a7307ee6080c2f6ab649f4dca404a9871d9b98d473563127c18823b" + sha256: "8432f7d71f5d40788804f1a5662f082dc10c6c991ec1160c0cd6e4ecf1aed542" url: "https://pub.dev" source: hosted - version: "3.15.2" + version: "3.18.0" patrol_finders: dependency: transitive description: name: patrol_finders - sha256: "8787f9d5c3417b72e8959a55ad51c024cc0594d15e5db85bc179c4d8faa0c493" + sha256: "4a658d7d560de523f92deb3fa3326c78747ca0bf7e7f4b8788c012463138b628" url: "https://pub.dev" source: hosted - version: "2.7.2" + version: "2.9.0" patrol_log: dependency: transitive description: name: patrol_log - sha256: "98b2701400c7a00b11533ab942bdeb44c3c714746e7cdb12e6cb93b6d06361da" + sha256: "9fed4143980df1e3bbcfa00d0b443c7d68f04f9132317b7698bbc37f8a5a58c5" url: "https://pub.dev" source: hosted - version: "0.3.0" + version: "0.5.0" permission_handler: dependency: "direct main" description: name: permission_handler - sha256: "2d070d8684b68efb580a5997eb62f675e8a885ef0be6e754fb9ef489c177470f" + sha256: bc917da36261b00137bbc8896bf1482169cd76f866282368948f032c8c1caae1 url: "https://pub.dev" source: hosted - version: "12.0.0+1" + version: "12.0.1" permission_handler_android: dependency: transitive description: @@ -1193,10 +1177,10 @@ packages: dependency: transitive description: name: posix - sha256: f0d7856b6ca1887cfa6d1d394056a296ae33489db914e365e2044fdada449e62 + sha256: "6323a5b0fa688b6a010df4905a56b00181479e6d10534cecfecede2aa55add61" url: "https://pub.dev" source: hosted - version: "6.0.2" + version: "6.0.3" pretty_dio_logger: dependency: "direct main" description: @@ -1438,10 +1422,10 @@ packages: dependency: transitive description: name: source_helper - sha256: "86d247119aedce8e63f4751bd9626fc9613255935558447569ad42f9f5b48b3c" + sha256: "4f81479fe5194a622cdd1713fe1ecb683a6e6c85cd8cec8e2e35ee5ab3fdf2a1" url: "https://pub.dev" source: hosted - version: "1.3.5" + version: "1.3.6" source_span: dependency: transitive description: @@ -1526,10 +1510,10 @@ packages: dependency: transitive description: name: talker_logger - sha256: d8d2afd912c4a185bc125d8ae84d5960c3505f7ec52856e732a4b8a0db510b5d + sha256: "778ec673f1b71a6516e5576ae8d90ea23bbbcf9f405a97cc30e8ccdc33e26d27" url: "https://pub.dev" source: hosted - version: "4.7.9" + version: "4.9.3" term_glyph: dependency: transitive description: @@ -1598,10 +1582,10 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603" + sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8 url: "https://pub.dev" source: hosted - version: "6.3.1" + version: "6.3.2" url_launcher_android: dependency: transitive description: @@ -1670,10 +1654,10 @@ packages: dependency: transitive description: name: vector_graphics - sha256: "44cc7104ff32563122a929e4620cf3efd584194eec6d1d913eb5ba593dbcf6de" + sha256: a4f059dc26fc8295b5921376600a194c4ec7d55e72f2fe4c7d2831e103d461e6 url: "https://pub.dev" source: hosted - version: "1.1.18" + version: "1.1.19" vector_graphics_codec: dependency: transitive description: @@ -1686,10 +1670,10 @@ packages: dependency: transitive description: name: vector_graphics_compiler - sha256: "1b4b9e706a10294258727674a340ae0d6e64a7231980f9f9a3d12e4b42407aad" + sha256: "557a315b7d2a6dbb0aaaff84d857967ce6bdc96a63dc6ee2a57ce5a6ee5d3331" url: "https://pub.dev" source: hosted - version: "1.1.16" + version: "1.1.17" vector_math: dependency: transitive description: @@ -1710,10 +1694,10 @@ packages: dependency: transitive description: name: watcher - sha256: "69da27e49efa56a15f8afe8f4438c4ec02eff0a117df1b22ea4aad194fe1c104" + sha256: "0b7fd4a0bbc4b92641dbf20adfd7e3fd1398fe17102d94b674234563e110088a" url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" web: dependency: transitive description: @@ -1742,10 +1726,10 @@ packages: dependency: transitive description: name: win32 - sha256: "329edf97fdd893e0f1e3b9e88d6a0e627128cc17cc316a8d67fda8f1451178ba" + sha256: "66814138c3562338d05613a6e368ed8cfb237ad6d64a9e9334be3f309acfca03" url: "https://pub.dev" source: hosted - version: "5.13.0" + version: "5.14.0" win32_registry: dependency: transitive description: @@ -1758,10 +1742,10 @@ packages: dependency: "direct main" description: name: window_manager - sha256: "732896e1416297c63c9e3fb95aea72d0355f61390263982a47fd519169dc5059" + sha256: "7eb6d6c4164ec08e1bf978d6e733f3cebe792e2a23fb07cbca25c2872bfdbdcd" url: "https://pub.dev" source: hosted - version: "0.4.3" + version: "0.5.1" xdg_directories: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 5ad99bb..8e684dc 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: flutter_app -description: Template project for flutter apps. +description: Template project for Flutter apps. publish_to: "none" # Remove this line if you wish to publish to pub.dev version: 1.0.0+10000000 #1 00 00 000 @@ -22,10 +22,10 @@ dependencies: riverpod_annotation: 2.6.1 # Navigation - auto_route: 10.0.1 + auto_route: 10.1.0+1 # Data Structures - freezed_annotation: 3.0.0 + freezed_annotation: 3.1.0 json_annotation: 4.9.0 # Network @@ -35,26 +35,25 @@ dependencies: shared_preferences: 2.5.3 # Firebase - firebase_analytics: 11.4.6 - firebase_auth: 5.5.4 - firebase_core: 3.13.1 - firebase_crashlytics: 4.3.6 - firebase_dynamic_links: 6.1.6 - firebase_messaging: 15.2.6 - firebase_remote_config: 5.4.4 + firebase_analytics: 12.0.0 + firebase_auth: 6.0.0 + firebase_core: 4.0.0 + firebase_crashlytics: 5.0.0 + firebase_messaging: 16.0.0 + firebase_remote_config: 6.0.0 # Authentication - google_sign_in: 6.3.0 + google_sign_in: 7.1.1 sign_in_with_apple: 7.0.1 # Device - device_info_plus: 11.4.0 + device_info_plus: 11.5.0 package_info_plus: 8.3.0 path_provider: 2.1.5 - window_manager: 0.4.3 + window_manager: 0.5.1 # Security - freerasp: 7.0.0 + freerasp: 7.2.1 # Logging pretty_dio_logger: 1.4.0 @@ -65,12 +64,12 @@ dependencies: # Resources extended_image: 10.0.1 flutter_native_splash: 2.4.6 - flutter_svg: 2.1.0 + flutter_svg: 2.2.0 intl: 0.20.2 # UI flutter_animate: 4.5.2 - flutter_local_notifications: 19.2.1 + flutter_local_notifications: 19.4.0 modal_bottom_sheet: 3.0.0 universal_html: 2.2.4 @@ -78,8 +77,8 @@ dependencies: app_settings: 6.1.1 collection: 1.19.1 crypto: 3.0.6 - permission_handler: 12.0.0+1 - url_launcher: 6.3.1 + permission_handler: 12.0.1 + url_launcher: 6.3.2 dev_dependencies: @@ -87,7 +86,7 @@ dev_dependencies: sdk: flutter # Build Runner - build_runner: 2.4.15 + build_runner: 2.5.4 # State management riverpod_generator: 2.6.5 @@ -100,16 +99,16 @@ dev_dependencies: json_serializable: 6.9.5 # Resources - flutter_gen_runner: 5.10.0 + flutter_gen_runner: 5.11.0 # Lint custom_lint: 0.7.5 - flutter_lints: 5.0.0 - netglade_analysis: 16.1.0 + flutter_lints: 6.0.0 + netglade_analysis: 18.0.0 riverpod_lint: 2.6.5 # UI Tests - patrol: 3.15.2 + patrol: 3.18.0 patrol: