From 5cdeb7bd22da632a7fc21bdf70c28276dd2afb12 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Mon, 2 Feb 2026 03:13:27 +0800 Subject: [PATCH] :bug: Adding fab to chat wide screen mode, close #244 --- ios/Podfile.lock | 130 ++++++++++---------- lib/screens/chat/chat.dart | 236 ++++++++++++++++++++----------------- macos/Podfile.lock | 134 ++++++++++----------- 3 files changed, 257 insertions(+), 243 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index b534d41f..27e9143b 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -44,83 +44,83 @@ PODS: - Flutter - file_saver (0.0.1): - Flutter - - Firebase/CoreOnly (12.6.0): - - FirebaseCore (~> 12.6.0) - - Firebase/Crashlytics (12.6.0): + - Firebase/CoreOnly (12.8.0): + - FirebaseCore (~> 12.8.0) + - Firebase/Crashlytics (12.8.0): - Firebase/CoreOnly - - FirebaseCrashlytics (~> 12.6.0) - - Firebase/Messaging (12.6.0): + - FirebaseCrashlytics (~> 12.8.0) + - Firebase/Messaging (12.8.0): - Firebase/CoreOnly - - FirebaseMessaging (~> 12.6.0) - - firebase_analytics (12.1.0): + - FirebaseMessaging (~> 12.8.0) + - firebase_analytics (12.1.1): - firebase_core - - FirebaseAnalytics (= 12.6.0) + - FirebaseAnalytics (= 12.8.0) - Flutter - - firebase_core (4.3.0): - - Firebase/CoreOnly (= 12.6.0) + - firebase_core (4.4.0): + - Firebase/CoreOnly (= 12.8.0) - Flutter - - firebase_crashlytics (5.0.6): - - Firebase/Crashlytics (= 12.6.0) + - firebase_crashlytics (5.0.7): + - Firebase/Crashlytics (= 12.8.0) - firebase_core - Flutter - - firebase_messaging (16.1.0): - - Firebase/Messaging (= 12.6.0) + - firebase_messaging (16.1.1): + - Firebase/Messaging (= 12.8.0) - firebase_core - Flutter - - FirebaseAnalytics (12.6.0): - - FirebaseAnalytics/Default (= 12.6.0) - - FirebaseCore (~> 12.6.0) - - FirebaseInstallations (~> 12.6.0) + - FirebaseAnalytics (12.8.0): + - FirebaseAnalytics/Default (= 12.8.0) + - FirebaseCore (~> 12.8.0) + - FirebaseInstallations (~> 12.8.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.1) - GoogleUtilities/MethodSwizzler (~> 8.1) - GoogleUtilities/Network (~> 8.1) - "GoogleUtilities/NSData+zlib (~> 8.1)" - nanopb (~> 3.30910.0) - - FirebaseAnalytics/Default (12.6.0): - - FirebaseCore (~> 12.6.0) - - FirebaseInstallations (~> 12.6.0) - - GoogleAppMeasurement/Default (= 12.6.0) + - FirebaseAnalytics/Default (12.8.0): + - FirebaseCore (~> 12.8.0) + - FirebaseInstallations (~> 12.8.0) + - GoogleAppMeasurement/Default (= 12.8.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.1) - GoogleUtilities/MethodSwizzler (~> 8.1) - GoogleUtilities/Network (~> 8.1) - "GoogleUtilities/NSData+zlib (~> 8.1)" - nanopb (~> 3.30910.0) - - FirebaseCore (12.6.0): - - FirebaseCoreInternal (~> 12.6.0) + - FirebaseCore (12.8.0): + - FirebaseCoreInternal (~> 12.8.0) - GoogleUtilities/Environment (~> 8.1) - GoogleUtilities/Logger (~> 8.1) - - FirebaseCoreExtension (12.6.0): - - FirebaseCore (~> 12.6.0) - - FirebaseCoreInternal (12.6.0): + - FirebaseCoreExtension (12.8.0): + - FirebaseCore (~> 12.8.0) + - FirebaseCoreInternal (12.8.0): - "GoogleUtilities/NSData+zlib (~> 8.1)" - - FirebaseCrashlytics (12.6.0): - - FirebaseCore (~> 12.6.0) - - FirebaseInstallations (~> 12.6.0) - - FirebaseRemoteConfigInterop (~> 12.6.0) - - FirebaseSessions (~> 12.6.0) + - FirebaseCrashlytics (12.8.0): + - FirebaseCore (~> 12.8.0) + - FirebaseInstallations (~> 12.8.0) + - FirebaseRemoteConfigInterop (~> 12.8.0) + - FirebaseSessions (~> 12.8.0) - GoogleDataTransport (~> 10.1) - GoogleUtilities/Environment (~> 8.1) - nanopb (~> 3.30910.0) - PromisesObjC (~> 2.4) - - FirebaseInstallations (12.6.0): - - FirebaseCore (~> 12.6.0) + - FirebaseInstallations (12.8.0): + - FirebaseCore (~> 12.8.0) - GoogleUtilities/Environment (~> 8.1) - GoogleUtilities/UserDefaults (~> 8.1) - PromisesObjC (~> 2.4) - - FirebaseMessaging (12.6.0): - - FirebaseCore (~> 12.6.0) - - FirebaseInstallations (~> 12.6.0) + - FirebaseMessaging (12.8.0): + - FirebaseCore (~> 12.8.0) + - FirebaseInstallations (~> 12.8.0) - GoogleDataTransport (~> 10.1) - GoogleUtilities/AppDelegateSwizzler (~> 8.1) - GoogleUtilities/Environment (~> 8.1) - GoogleUtilities/Reachability (~> 8.1) - GoogleUtilities/UserDefaults (~> 8.1) - nanopb (~> 3.30910.0) - - FirebaseRemoteConfigInterop (12.6.0) - - FirebaseSessions (12.6.0): - - FirebaseCore (~> 12.6.0) - - FirebaseCoreExtension (~> 12.6.0) - - FirebaseInstallations (~> 12.6.0) + - FirebaseRemoteConfigInterop (12.8.0) + - FirebaseSessions (12.8.0): + - FirebaseCore (~> 12.8.0) + - FirebaseCoreExtension (~> 12.8.0) + - FirebaseInstallations (~> 12.8.0) - GoogleDataTransport (~> 10.1) - GoogleUtilities/Environment (~> 8.1) - GoogleUtilities/UserDefaults (~> 8.1) @@ -161,23 +161,23 @@ PODS: - GoogleUtilities/Logger (~> 8.1) - GoogleUtilities/Network (~> 8.1) - nanopb (~> 3.30910.0) - - GoogleAppMeasurement/Core (12.6.0): + - GoogleAppMeasurement/Core (12.8.0): - GoogleUtilities/AppDelegateSwizzler (~> 8.1) - GoogleUtilities/MethodSwizzler (~> 8.1) - GoogleUtilities/Network (~> 8.1) - "GoogleUtilities/NSData+zlib (~> 8.1)" - nanopb (~> 3.30910.0) - - GoogleAppMeasurement/Default (12.6.0): + - GoogleAppMeasurement/Default (12.8.0): - GoogleAdsOnDeviceConversion (~> 3.2.0) - - GoogleAppMeasurement/Core (= 12.6.0) - - GoogleAppMeasurement/IdentitySupport (= 12.6.0) + - GoogleAppMeasurement/Core (= 12.8.0) + - GoogleAppMeasurement/IdentitySupport (= 12.8.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.1) - GoogleUtilities/MethodSwizzler (~> 8.1) - GoogleUtilities/Network (~> 8.1) - "GoogleUtilities/NSData+zlib (~> 8.1)" - nanopb (~> 3.30910.0) - - GoogleAppMeasurement/IdentitySupport (12.6.0): - - GoogleAppMeasurement/Core (= 12.6.0) + - GoogleAppMeasurement/IdentitySupport (12.8.0): + - GoogleAppMeasurement/Core (= 12.8.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.1) - GoogleUtilities/MethodSwizzler (~> 8.1) - GoogleUtilities/Network (~> 8.1) @@ -275,7 +275,7 @@ PODS: - Flutter - receive_sharing_intent (1.8.1): - Flutter - - record_ios (1.1.0): + - record_ios (1.2.0): - Flutter - SDWebImage (5.21.5): - SDWebImage/Core (= 5.21.5) @@ -527,20 +527,20 @@ SPEC CHECKSUMS: DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60 file_picker: a0560bc09d61de87f12d246fc47d2119e6ef37be file_saver: 6cdbcddd690cb02b0c1a0c225b37cd805c2bf8b6 - Firebase: a451a7b61536298fd5cbfe3a746fd40443a50679 - firebase_analytics: 4f9cca09e65f6c2944a862c6dc86f6bed9fb769c - firebase_core: ba00a168e719694f38960502ceb560285603d073 - firebase_crashlytics: 13f4b77e9ce2a84b1f8ea07f293db5b6213ce1cf - firebase_messaging: bf0e29321927edc02a563c984dbfa5b063864b15 - FirebaseAnalytics: d0a97a0db6425e5a5d966340b87f92ca7b13a557 - FirebaseCore: 0e38ad5d62d980a47a64b8e9301ffa311457be04 - FirebaseCoreExtension: 032fd6f8509e591fda8cb76f6651f20d926b121f - FirebaseCoreInternal: 69bf1306a05b8ac43004f6cc1f804bb7b05b229e - FirebaseCrashlytics: 3d6248c50726ee7832aef0e53cb84c9e64d9fa7e - FirebaseInstallations: 631b38da2e11a83daa4bfb482f79d286a5dfa7ad - FirebaseMessaging: a61bc42dcab3f7a346d94bbb54dab2c9435b18b2 - FirebaseRemoteConfigInterop: 3443b8cb8fffd76bb3e03b2a84bfd3db952fcda4 - FirebaseSessions: 2e8f808347e665dff3e5843f275715f07045297d + Firebase: 9a58fdbc9d8655ed7b79a19cf9690bb007d3d46d + firebase_analytics: b5a19eaf3e4bf4187b0815ef4850b8916e2bc549 + firebase_core: ee30637e6744af8e0c12a6a1e8a9718506ec2398 + firebase_crashlytics: 28b8f39df8104131376393e6af658b8b77dd120f + firebase_messaging: 343de01a8d3e18b60df0c6d37f7174c44ae38e02 + FirebaseAnalytics: f20bbad8cb7f65d8a5eaefeb424ae8800a31bdfc + FirebaseCore: 0dbad74bda10b8fb9ca34ad8f375fb9dd3ebef7c + FirebaseCoreExtension: 6605938d51f765d8b18bfcafd2085276a252bee2 + FirebaseCoreInternal: fe5fa466aeb314787093a7dce9f0beeaad5a2a21 + FirebaseCrashlytics: fb31c6907e5b52aa252668394d3f1ab326df1511 + FirebaseInstallations: 6a14ab3d694ebd9f839c48d330da5547e9ca9dc0 + FirebaseMessaging: 7f42cfd10ec64181db4e01b305a613791c8e782c + FirebaseRemoteConfigInterop: 869ddca16614f979e5c931ece11fbb0b8729ed41 + FirebaseSessions: d614ca154c63dbbc6c10d6c38259c2162c4e7c9b Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467 flutter_app_update: 816fdb2e30e4832a7c45e3f108d391c42ef040a9 flutter_inappwebview_ios: b89ba3482b96fb25e00c967aae065701b66e9b99 @@ -553,7 +553,7 @@ SPEC CHECKSUMS: flutter_webrtc: c3e21fc0dcd9d8eb246ae4d5256fcbeb2f5ecd22 gal: baecd024ebfd13c441269ca7404792a7152fde89 GoogleAdsOnDeviceConversion: d68c69dd9581a0f5da02617b6f377e5be483970f - GoogleAppMeasurement: 3bf40aff49a601af5da1c3345702fcb4991d35ee + GoogleAppMeasurement: 72c9a682fec6290327ea5e3c4b829b247fcb2c17 GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1 image_picker_ios: e0ece4aa2a75771a7de3fa735d26d90817041326 @@ -580,7 +580,7 @@ SPEC CHECKSUMS: protocol_handler_ios: 59f23ee71f3ec602d67902ca7f669a80957888d5 quick_actions_ios: 500fcc11711d9f646739093395c4ae8eec25f779 receive_sharing_intent: 222384f00ffe7e952bbfabaa9e3967cb87e5fe00 - record_ios: f75fa1d57f840012775c0e93a38a7f3ceea1a374 + record_ios: 412daca2350b228e698fffcd08f1f94ceb1e3844 SDWebImage: e9c98383c7572d713c1a0d7dd2783b10599b9838 sensors_plus: 6a11ed0c2e1d0bd0b20b4029d3bad27d96e0c65b share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a diff --git a/lib/screens/chat/chat.dart b/lib/screens/chat/chat.dart index 268e4c38..5daab878 100644 --- a/lib/screens/chat/chat.dart +++ b/lib/screens/chat/chat.dart @@ -347,6 +347,78 @@ class ChatShellScreen extends HookConsumerWidget { } } +class ChatFabWidget extends HookConsumerWidget { + const ChatFabWidget({super.key}); + + @override + Widget build(BuildContext context, WidgetRef ref) { + final userInfo = ref.watch(userInfoProvider); + + if (userInfo.value == null) { + return const SizedBox.shrink(); + } + + return FloatingActionButton( + child: const Icon(Symbols.add), + onPressed: () { + showModalBottomSheet( + context: context, + isScrollControlled: true, + useRootNavigator: true, + builder: (context) => Column( + mainAxisSize: MainAxisSize.min, + children: [ + const Gap(40), + ListTile( + title: const Text('createChatRoom').tr(), + leading: const Icon(Symbols.add), + contentPadding: const EdgeInsets.symmetric(horizontal: 24), + onTap: () { + showModalBottomSheet( + context: context, + useRootNavigator: true, + isScrollControlled: true, + builder: (context) => const EditChatScreen(), + ).then((value) { + if (value != null) { + eventBus.fire(const ChatRoomsRefreshEvent()); + } + }); + }, + ), + ListTile( + title: const Text('createDirectMessage').tr(), + leading: const Icon(Symbols.person), + contentPadding: const EdgeInsets.symmetric(horizontal: 24), + onTap: () async { + final result = await showModalBottomSheet( + context: context, + useRootNavigator: true, + isScrollControlled: true, + builder: (context) => const AccountPickerSheet(), + ); + if (result == null) return; + final client = ref.read(apiClientProvider); + try { + await client.post( + '/messager/chat/direct', + data: {'related_user_id': result.id}, + ); + eventBus.fire(const ChatRoomsRefreshEvent()); + } catch (err) { + showErrorAlert(err); + } + }, + ), + const Gap(16), + ], + ), + ); + }, + ).padding(bottom: MediaQuery.of(context).padding.bottom); + } +} + class ChatListScreen extends HookConsumerWidget { final bool isAside; final bool isFloating; @@ -386,61 +458,66 @@ class ChatListScreen extends HookConsumerWidget { margin: EdgeInsets.zero, child: ClipRRect( borderRadius: const BorderRadius.all(Radius.circular(8)), - child: Column( + child: Stack( children: [ - Row( + Column( children: [ - Expanded( - child: TabBar( - dividerColor: Colors.transparent, - controller: tabController, - tabAlignment: TabAlignment.start, - isScrollable: true, - tabs: [ - const Tab(icon: Icon(Symbols.chat)), - const Tab(icon: Icon(Symbols.person)), - const Tab(icon: Icon(Symbols.group)), - ], - ), - ), - Padding( - padding: const EdgeInsets.only(right: 8), - child: IconButton( - icon: Badge( - label: Text( - chatInvites.when( - data: (invites) => invites.length.toString(), - error: (_, _) => '0', - loading: () => '0', - ), + Row( + children: [ + Expanded( + child: TabBar( + dividerColor: Colors.transparent, + controller: tabController, + tabAlignment: TabAlignment.start, + isScrollable: true, + tabs: [ + const Tab(icon: Icon(Symbols.chat)), + const Tab(icon: Icon(Symbols.person)), + const Tab(icon: Icon(Symbols.group)), + ], ), - isLabelVisible: chatInvites.when( - data: (invites) => invites.isNotEmpty, - error: (_, _) => false, - loading: () => false, - ), - child: const Icon(Symbols.email), ), - onPressed: () { - showModalBottomSheet( - useRootNavigator: true, - isScrollControlled: true, - context: context, - builder: (context) => const _ChatInvitesSheet(), - ); - }, + Padding( + padding: const EdgeInsets.only(right: 8), + child: IconButton( + icon: Badge( + label: Text( + chatInvites.when( + data: (invites) => invites.length.toString(), + error: (_, _) => '0', + loading: () => '0', + ), + ), + isLabelVisible: chatInvites.when( + data: (invites) => invites.isNotEmpty, + error: (_, _) => false, + loading: () => false, + ), + child: const Icon(Symbols.email), + ), + onPressed: () { + showModalBottomSheet( + useRootNavigator: true, + isScrollControlled: true, + context: context, + builder: (context) => const _ChatInvitesSheet(), + ); + }, + ), + ), + ], + ).padding(horizontal: 8), + const Divider(height: 1), + Expanded( + child: ChatListBodyWidget( + isFloating: false, + tabController: tabController, + selectedTab: selectedTab, ), ), ], - ).padding(horizontal: 8), - const Divider(height: 1), - Expanded( - child: ChatListBodyWidget( - isFloating: false, - tabController: tabController, - selectedTab: selectedTab, - ), ), + Positioned(bottom: 16, right: 16, child: ChatFabWidget()), ], ), ), @@ -457,70 +534,7 @@ class ChatListScreen extends HookConsumerWidget { return AppScaffold( extendBody: false, // Prevent conflicts with tabs navigation - floatingActionButton: userInfo.value != null - ? FloatingActionButton( - child: const Icon(Symbols.add), - onPressed: () { - showModalBottomSheet( - context: context, - isScrollControlled: true, - useRootNavigator: true, - builder: (context) => Column( - mainAxisSize: MainAxisSize.min, - children: [ - const Gap(40), - ListTile( - title: const Text('createChatRoom').tr(), - leading: const Icon(Symbols.add), - contentPadding: const EdgeInsets.symmetric( - horizontal: 24, - ), - onTap: () { - showModalBottomSheet( - context: context, - useRootNavigator: true, - isScrollControlled: true, - builder: (context) => const EditChatScreen(), - ).then((value) { - if (value != null) { - eventBus.fire(const ChatRoomsRefreshEvent()); - } - }); - }, - ), - ListTile( - title: const Text('createDirectMessage').tr(), - leading: const Icon(Symbols.person), - contentPadding: const EdgeInsets.symmetric( - horizontal: 24, - ), - onTap: () async { - final result = await showModalBottomSheet( - context: context, - useRootNavigator: true, - isScrollControlled: true, - builder: (context) => const AccountPickerSheet(), - ); - if (result == null) return; - final client = ref.read(apiClientProvider); - try { - await client.post( - '/messager/chat/direct', - data: {'related_user_id': result.id}, - ); - eventBus.fire(const ChatRoomsRefreshEvent()); - } catch (err) { - showErrorAlert(err); - } - }, - ), - const Gap(16), - ], - ), - ); - }, - ).padding(bottom: MediaQuery.of(context).padding.bottom) - : null, + floatingActionButton: const ChatFabWidget(), appBar: AppBar( flexibleSpace: Container( height: 48, diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 113e621b..ed141a7b 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -15,85 +15,85 @@ PODS: - FlutterMacOS - file_selector_macos (0.0.1): - FlutterMacOS - - Firebase/CoreOnly (12.6.0): - - FirebaseCore (~> 12.6.0) - - Firebase/Crashlytics (12.6.0): + - Firebase/CoreOnly (12.8.0): + - FirebaseCore (~> 12.8.0) + - Firebase/Crashlytics (12.8.0): - Firebase/CoreOnly - - FirebaseCrashlytics (~> 12.6.0) - - Firebase/Messaging (12.6.0): + - FirebaseCrashlytics (~> 12.8.0) + - Firebase/Messaging (12.8.0): - Firebase/CoreOnly - - FirebaseMessaging (~> 12.6.0) - - firebase_analytics (12.1.0): + - FirebaseMessaging (~> 12.8.0) + - firebase_analytics (12.1.1): - firebase_core - - FirebaseAnalytics (= 12.6.0) + - FirebaseAnalytics (= 12.8.0) - FlutterMacOS - - firebase_core (4.3.0): - - Firebase/CoreOnly (~> 12.6.0) + - firebase_core (4.4.0): + - Firebase/CoreOnly (~> 12.8.0) - FlutterMacOS - - firebase_crashlytics (5.0.6): - - Firebase/CoreOnly (~> 12.6.0) - - Firebase/Crashlytics (~> 12.6.0) + - firebase_crashlytics (5.0.7): + - Firebase/CoreOnly (~> 12.8.0) + - Firebase/Crashlytics (~> 12.8.0) - firebase_core - FlutterMacOS - - firebase_messaging (16.1.0): - - Firebase/CoreOnly (~> 12.6.0) - - Firebase/Messaging (~> 12.6.0) + - firebase_messaging (16.1.1): + - Firebase/CoreOnly (~> 12.8.0) + - Firebase/Messaging (~> 12.8.0) - firebase_core - FlutterMacOS - - FirebaseAnalytics (12.6.0): - - FirebaseAnalytics/Default (= 12.6.0) - - FirebaseCore (~> 12.6.0) - - FirebaseInstallations (~> 12.6.0) + - FirebaseAnalytics (12.8.0): + - FirebaseAnalytics/Default (= 12.8.0) + - FirebaseCore (~> 12.8.0) + - FirebaseInstallations (~> 12.8.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.1) - GoogleUtilities/MethodSwizzler (~> 8.1) - GoogleUtilities/Network (~> 8.1) - "GoogleUtilities/NSData+zlib (~> 8.1)" - nanopb (~> 3.30910.0) - - FirebaseAnalytics/Default (12.6.0): - - FirebaseCore (~> 12.6.0) - - FirebaseInstallations (~> 12.6.0) - - GoogleAppMeasurement/Default (= 12.6.0) + - FirebaseAnalytics/Default (12.8.0): + - FirebaseCore (~> 12.8.0) + - FirebaseInstallations (~> 12.8.0) + - GoogleAppMeasurement/Default (= 12.8.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.1) - GoogleUtilities/MethodSwizzler (~> 8.1) - GoogleUtilities/Network (~> 8.1) - "GoogleUtilities/NSData+zlib (~> 8.1)" - nanopb (~> 3.30910.0) - - FirebaseCore (12.6.0): - - FirebaseCoreInternal (~> 12.6.0) + - FirebaseCore (12.8.0): + - FirebaseCoreInternal (~> 12.8.0) - GoogleUtilities/Environment (~> 8.1) - GoogleUtilities/Logger (~> 8.1) - - FirebaseCoreExtension (12.6.0): - - FirebaseCore (~> 12.6.0) - - FirebaseCoreInternal (12.6.0): + - FirebaseCoreExtension (12.8.0): + - FirebaseCore (~> 12.8.0) + - FirebaseCoreInternal (12.8.0): - "GoogleUtilities/NSData+zlib (~> 8.1)" - - FirebaseCrashlytics (12.6.0): - - FirebaseCore (~> 12.6.0) - - FirebaseInstallations (~> 12.6.0) - - FirebaseRemoteConfigInterop (~> 12.6.0) - - FirebaseSessions (~> 12.6.0) + - FirebaseCrashlytics (12.8.0): + - FirebaseCore (~> 12.8.0) + - FirebaseInstallations (~> 12.8.0) + - FirebaseRemoteConfigInterop (~> 12.8.0) + - FirebaseSessions (~> 12.8.0) - GoogleDataTransport (~> 10.1) - GoogleUtilities/Environment (~> 8.1) - nanopb (~> 3.30910.0) - PromisesObjC (~> 2.4) - - FirebaseInstallations (12.6.0): - - FirebaseCore (~> 12.6.0) + - FirebaseInstallations (12.8.0): + - FirebaseCore (~> 12.8.0) - GoogleUtilities/Environment (~> 8.1) - GoogleUtilities/UserDefaults (~> 8.1) - PromisesObjC (~> 2.4) - - FirebaseMessaging (12.6.0): - - FirebaseCore (~> 12.6.0) - - FirebaseInstallations (~> 12.6.0) + - FirebaseMessaging (12.8.0): + - FirebaseCore (~> 12.8.0) + - FirebaseInstallations (~> 12.8.0) - GoogleDataTransport (~> 10.1) - GoogleUtilities/AppDelegateSwizzler (~> 8.1) - GoogleUtilities/Environment (~> 8.1) - GoogleUtilities/Reachability (~> 8.1) - GoogleUtilities/UserDefaults (~> 8.1) - nanopb (~> 3.30910.0) - - FirebaseRemoteConfigInterop (12.6.0) - - FirebaseSessions (12.6.0): - - FirebaseCore (~> 12.6.0) - - FirebaseCoreExtension (~> 12.6.0) - - FirebaseInstallations (~> 12.6.0) + - FirebaseRemoteConfigInterop (12.8.0) + - FirebaseSessions (12.8.0): + - FirebaseCore (~> 12.8.0) + - FirebaseCoreExtension (~> 12.8.0) + - FirebaseInstallations (~> 12.8.0) - GoogleDataTransport (~> 10.1) - GoogleUtilities/Environment (~> 8.1) - GoogleUtilities/UserDefaults (~> 8.1) @@ -119,23 +119,23 @@ PODS: - gal (1.0.0): - Flutter - FlutterMacOS - - GoogleAppMeasurement/Core (12.6.0): + - GoogleAppMeasurement/Core (12.8.0): - GoogleUtilities/AppDelegateSwizzler (~> 8.1) - GoogleUtilities/MethodSwizzler (~> 8.1) - GoogleUtilities/Network (~> 8.1) - "GoogleUtilities/NSData+zlib (~> 8.1)" - nanopb (~> 3.30910.0) - - GoogleAppMeasurement/Default (12.6.0): + - GoogleAppMeasurement/Default (12.8.0): - GoogleAdsOnDeviceConversion (~> 3.2.0) - - GoogleAppMeasurement/Core (= 12.6.0) - - GoogleAppMeasurement/IdentitySupport (= 12.6.0) + - GoogleAppMeasurement/Core (= 12.8.0) + - GoogleAppMeasurement/IdentitySupport (= 12.8.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.1) - GoogleUtilities/MethodSwizzler (~> 8.1) - GoogleUtilities/Network (~> 8.1) - "GoogleUtilities/NSData+zlib (~> 8.1)" - nanopb (~> 3.30910.0) - - GoogleAppMeasurement/IdentitySupport (12.6.0): - - GoogleAppMeasurement/Core (= 12.6.0) + - GoogleAppMeasurement/IdentitySupport (12.8.0): + - GoogleAppMeasurement/Core (= 12.8.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.1) - GoogleUtilities/MethodSwizzler (~> 8.1) - GoogleUtilities/Network (~> 8.1) @@ -209,7 +209,7 @@ PODS: - PromisesObjC (= 2.4.0) - protocol_handler_macos (0.0.1): - FlutterMacOS - - record_macos (1.1.0): + - record_macos (1.2.0): - FlutterMacOS - screen_retriever_macos (0.0.1): - FlutterMacOS @@ -431,20 +431,20 @@ SPEC CHECKSUMS: file_picker: 7584aae6fa07a041af2b36a2655122d42f578c1a file_saver: e35bd97de451dde55ff8c38862ed7ad0f3418d0f file_selector_macos: 9e9e068e90ebee155097d00e89ae91edb2374db7 - Firebase: a451a7b61536298fd5cbfe3a746fd40443a50679 - firebase_analytics: d59fdb2c980c7975f249eafd51520a45d4050a77 - firebase_core: 2ccd04fc130691db5f3d3cd9aa43ab430004c1e9 - firebase_crashlytics: a2ffade1722840166ba9b05a5aa846a23cd84cb3 - firebase_messaging: 80efbf2e975a91f612ce5b5d18c67e5a762fbdf8 - FirebaseAnalytics: d0a97a0db6425e5a5d966340b87f92ca7b13a557 - FirebaseCore: 0e38ad5d62d980a47a64b8e9301ffa311457be04 - FirebaseCoreExtension: 032fd6f8509e591fda8cb76f6651f20d926b121f - FirebaseCoreInternal: 69bf1306a05b8ac43004f6cc1f804bb7b05b229e - FirebaseCrashlytics: 3d6248c50726ee7832aef0e53cb84c9e64d9fa7e - FirebaseInstallations: 631b38da2e11a83daa4bfb482f79d286a5dfa7ad - FirebaseMessaging: a61bc42dcab3f7a346d94bbb54dab2c9435b18b2 - FirebaseRemoteConfigInterop: 3443b8cb8fffd76bb3e03b2a84bfd3db952fcda4 - FirebaseSessions: 2e8f808347e665dff3e5843f275715f07045297d + Firebase: 9a58fdbc9d8655ed7b79a19cf9690bb007d3d46d + firebase_analytics: a5e02c7d878b16431358e4b65808c171db05ae5a + firebase_core: b1697fb64ff2b9ca16baaa821205f8b0c058e5d2 + firebase_crashlytics: 1fc281aed26b12f6076d4be765f3dc66a453c64b + firebase_messaging: e6b30479b390f3a41203a7244886c6ab345536d3 + FirebaseAnalytics: f20bbad8cb7f65d8a5eaefeb424ae8800a31bdfc + FirebaseCore: 0dbad74bda10b8fb9ca34ad8f375fb9dd3ebef7c + FirebaseCoreExtension: 6605938d51f765d8b18bfcafd2085276a252bee2 + FirebaseCoreInternal: fe5fa466aeb314787093a7dce9f0beeaad5a2a21 + FirebaseCrashlytics: fb31c6907e5b52aa252668394d3f1ab326df1511 + FirebaseInstallations: 6a14ab3d694ebd9f839c48d330da5547e9ca9dc0 + FirebaseMessaging: 7f42cfd10ec64181db4e01b305a613791c8e782c + FirebaseRemoteConfigInterop: 869ddca16614f979e5c931ece11fbb0b8729ed41 + FirebaseSessions: d614ca154c63dbbc6c10d6c38259c2162c4e7c9b flutter_inappwebview_macos: c2d68649f9f8f1831bfcd98d73fd6256366d9d1d flutter_local_notifications: 4bf37a31afde695b56091b4ae3e4d9c7a7e6cda0 flutter_secure_storage_darwin: acdb3f316ed05a3e68f856e0353b133eec373a23 @@ -453,7 +453,7 @@ SPEC CHECKSUMS: flutter_webrtc: 718eae22a371cd94e5d56aa4f301443ebc5bb737 FlutterMacOS: d0db08ddef1a9af05a5ec4b724367152bb0500b1 gal: baecd024ebfd13c441269ca7404792a7152fde89 - GoogleAppMeasurement: 3bf40aff49a601af5da1c3345702fcb4991d35ee + GoogleAppMeasurement: 72c9a682fec6290327ea5e3c4b829b247fcb2c17 GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1 HotKey: 400beb7caa29054ea8d864c96f5ba7e5b4852277 @@ -473,7 +473,7 @@ SPEC CHECKSUMS: PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 PromisesSwift: 9d77319bbe72ebf6d872900551f7eeba9bce2851 protocol_handler_macos: f9cd7b13bcaf6b0425f7410cbe52376cb843a936 - record_macos: 43194b6c06ca6f8fa132e2acea72b202b92a0f5b + record_macos: 7f227161b93c49e7e34fe681c5891c8622c8cc8b screen_retriever_macos: 452e51764a9e1cdb74b3c541238795849f21557f share_plus: 510bf0af1a42cd602274b4629920c9649c52f4cc shared_preferences_foundation: 7036424c3d8ec98dfe75ff1667cb0cd531ec82bb