diff --git a/assets/translations/en-US.json b/assets/translations/en-US.json index 5567db3..bcd23a0 100644 --- a/assets/translations/en-US.json +++ b/assets/translations/en-US.json @@ -687,5 +687,7 @@ "databaseSize": "Database Size", "databaseDelete": "Delete Database", "databaseDeleteDescription": "Remove the database on your local disk, the content will be fetched from server again.", - "databaseDeleted": "The local database has been deleted." + "databaseDeleted": "The local database has been deleted.", + "settingsEnablePushNotifications": "Enable Push Notifications", + "settingsEnablePushNotificationsDescription": "Re-enable and request permission to receive push notifications. Just in case it didn't run automatically." } diff --git a/assets/translations/zh-CN.json b/assets/translations/zh-CN.json index 13ee771..f4bc550 100644 --- a/assets/translations/zh-CN.json +++ b/assets/translations/zh-CN.json @@ -685,5 +685,7 @@ "databaseSize": "数据库大小", "databaseDelete": "删除数据库", "databaseDeleteDescription": "删除本地数据库,内容将从服务器重新获取。", - "databaseDeleted": "本地数据库已被删除。" + "databaseDeleted": "本地数据库已被删除。", + "settingsEnablePushNotifications": "启用推送数据", + "settingsEnablePushNotificationsDescription": "重新启用并请求推送权限,以防自动激活失败。" } diff --git a/ios/Podfile.lock b/ios/Podfile.lock index e82ce11..ae56cf0 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -42,58 +42,58 @@ PODS: - Flutter - file_saver (0.0.1): - Flutter - - Firebase/Analytics (11.7.0): + - Firebase/Analytics (11.8.0): - Firebase/Core - - Firebase/Core (11.7.0): + - Firebase/Core (11.8.0): - Firebase/CoreOnly - - FirebaseAnalytics (~> 11.7.0) - - Firebase/CoreOnly (11.7.0): - - FirebaseCore (~> 11.7.0) - - Firebase/Messaging (11.7.0): + - FirebaseAnalytics (~> 11.8.0) + - Firebase/CoreOnly (11.8.0): + - FirebaseCore (~> 11.8.0) + - Firebase/Messaging (11.8.0): - Firebase/CoreOnly - - FirebaseMessaging (~> 11.7.0) - - firebase_analytics (11.4.2): - - Firebase/Analytics (= 11.7.0) + - FirebaseMessaging (~> 11.8.0) + - firebase_analytics (11.4.3): + - Firebase/Analytics (= 11.8.0) - firebase_core - Flutter - - firebase_core (3.11.0): - - Firebase/CoreOnly (= 11.7.0) + - firebase_core (3.12.0): + - Firebase/CoreOnly (= 11.8.0) - Flutter - - firebase_messaging (15.2.2): - - Firebase/Messaging (= 11.7.0) + - firebase_messaging (15.2.3): + - Firebase/Messaging (= 11.8.0) - firebase_core - Flutter - - FirebaseAnalytics (11.7.0): - - FirebaseAnalytics/AdIdSupport (= 11.7.0) - - FirebaseCore (~> 11.7.0) + - FirebaseAnalytics (11.8.0): + - FirebaseAnalytics/AdIdSupport (= 11.8.0) + - FirebaseCore (~> 11.8.0) - FirebaseInstallations (~> 11.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - GoogleUtilities/MethodSwizzler (~> 8.0) - GoogleUtilities/Network (~> 8.0) - "GoogleUtilities/NSData+zlib (~> 8.0)" - nanopb (~> 3.30910.0) - - FirebaseAnalytics/AdIdSupport (11.7.0): - - FirebaseCore (~> 11.7.0) + - FirebaseAnalytics/AdIdSupport (11.8.0): + - FirebaseCore (~> 11.8.0) - FirebaseInstallations (~> 11.0) - - GoogleAppMeasurement (= 11.7.0) + - GoogleAppMeasurement (= 11.8.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - GoogleUtilities/MethodSwizzler (~> 8.0) - GoogleUtilities/Network (~> 8.0) - "GoogleUtilities/NSData+zlib (~> 8.0)" - nanopb (~> 3.30910.0) - - FirebaseCore (11.7.0): - - FirebaseCoreInternal (~> 11.7.0) + - FirebaseCore (11.8.1): + - FirebaseCoreInternal (~> 11.8.0) - GoogleUtilities/Environment (~> 8.0) - GoogleUtilities/Logger (~> 8.0) - - FirebaseCoreInternal (11.7.0): + - FirebaseCoreInternal (11.8.0): - "GoogleUtilities/NSData+zlib (~> 8.0)" - - FirebaseInstallations (11.7.0): - - FirebaseCore (~> 11.7.0) + - FirebaseInstallations (11.8.0): + - FirebaseCore (~> 11.8.0) - GoogleUtilities/Environment (~> 8.0) - GoogleUtilities/UserDefaults (~> 8.0) - PromisesObjC (~> 2.4) - - FirebaseMessaging (11.7.0): - - FirebaseCore (~> 11.7.0) + - FirebaseMessaging (11.8.0): + - FirebaseCore (~> 11.8.0) - FirebaseInstallations (~> 11.0) - GoogleDataTransport (~> 10.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.0) @@ -122,21 +122,21 @@ PODS: - gal (1.0.0): - Flutter - FlutterMacOS - - GoogleAppMeasurement (11.7.0): - - GoogleAppMeasurement/AdIdSupport (= 11.7.0) + - GoogleAppMeasurement (11.8.0): + - GoogleAppMeasurement/AdIdSupport (= 11.8.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - GoogleUtilities/MethodSwizzler (~> 8.0) - GoogleUtilities/Network (~> 8.0) - "GoogleUtilities/NSData+zlib (~> 8.0)" - nanopb (~> 3.30910.0) - - GoogleAppMeasurement/AdIdSupport (11.7.0): - - GoogleAppMeasurement/WithoutAdIdSupport (= 11.7.0) + - GoogleAppMeasurement/AdIdSupport (11.8.0): + - GoogleAppMeasurement/WithoutAdIdSupport (= 11.8.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - GoogleUtilities/MethodSwizzler (~> 8.0) - GoogleUtilities/Network (~> 8.0) - "GoogleUtilities/NSData+zlib (~> 8.0)" - nanopb (~> 3.30910.0) - - GoogleAppMeasurement/WithoutAdIdSupport (11.7.0): + - GoogleAppMeasurement/WithoutAdIdSupport (11.8.0): - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - GoogleUtilities/MethodSwizzler (~> 8.0) - GoogleUtilities/Network (~> 8.0) @@ -210,9 +210,9 @@ PODS: - SAMKeychain (1.5.3) - screen_brightness_ios (0.1.0): - Flutter - - SDWebImage (5.20.0): - - SDWebImage/Core (= 5.20.0) - - SDWebImage/Core (5.20.0) + - SDWebImage (5.20.1): + - SDWebImage/Core (= 5.20.1) + - SDWebImage/Core (5.20.1) - share_plus (0.0.1): - Flutter - shared_preferences_foundation (0.0.1): @@ -221,16 +221,16 @@ PODS: - sqflite_darwin (0.0.4): - Flutter - FlutterMacOS - - sqlite3 (3.49.0): - - sqlite3/common (= 3.49.0) - - sqlite3/common (3.49.0) - - sqlite3/dbstatvtab (3.49.0): + - sqlite3 (3.49.1): + - sqlite3/common (= 3.49.1) + - sqlite3/common (3.49.1) + - sqlite3/dbstatvtab (3.49.1): - sqlite3/common - - sqlite3/fts5 (3.49.0): + - sqlite3/fts5 (3.49.1): - sqlite3/common - - sqlite3/perf-threadsafe (3.49.0): + - sqlite3/perf-threadsafe (3.49.1): - sqlite3/common - - sqlite3/rtree (3.49.0): + - sqlite3/rtree (3.49.1): - sqlite3/common - sqlite3_flutter_libs (0.0.1): - Flutter @@ -403,23 +403,23 @@ SPEC CHECKSUMS: DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60 file_picker: b159e0c068aef54932bb15dc9fd1571818edaf49 file_saver: 503e386464dbe118f630e17b4c2e1190fa0cf808 - Firebase: a64bf6a8546e6eab54f1c715cd6151f39d2329f4 - firebase_analytics: 7236e6115c1b4e62c2270faa29c052a317e31107 - firebase_core: aa979ae726f00b3ef4ccf59dfb96170af84efbd4 - firebase_messaging: 3af84b6a90aeac4d7a67fbf4c43a91e7083bea1f - FirebaseAnalytics: bc9e565af9044ba8d6c6e4157e4edca8e5fdf7ec - FirebaseCore: 3227e35f4197a924206fbcdc0349325baf4f5de4 - FirebaseCoreInternal: d6c17dafc8dc33614733a8b52df78fcb4394c881 - FirebaseInstallations: 9347e719c3d52d8d7b9074b2c32407dd027305e9 - FirebaseMessaging: 00ece041b71ddb52a2862ffdee73fb6e9824bd0c + Firebase: d80354ed7f6df5f9aca55e9eb47cc4b634735eaf + firebase_analytics: 7ec1166af61987fa968766eb11587c562a5650ee + firebase_core: 6e223dfa350b2edceb729cea505eaaef59330682 + firebase_messaging: 07fde77ae28c08616a1d4d870450efc2b38cf40d + FirebaseAnalytics: 4fd42def128146e24e480e89f310e3d8534ea42b + FirebaseCore: 99fe0c4b44a39f37d99e6404e02009d2db5d718d + FirebaseCoreInternal: df24ce5af28864660ecbd13596fc8dd3a8c34629 + FirebaseInstallations: 6c963bd2a86aca0481eef4f48f5a4df783ae5917 + FirebaseMessaging: 487b634ccdf6f7b7ff180fdcb2a9935490f764e8 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 flutter_app_update: 65f61da626cb111d1b24674abc4b01728d7723bc flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4 - flutter_native_splash: f71420956eb811e6d310720fee915f1d42852e7a + flutter_native_splash: df59bb2e1421aa0282cb2e95618af4dcb0c56c29 flutter_udid: b2417673f287ee62817a1de3d1643f47b9f508ab flutter_webrtc: 90260f83024b1b96d239a575ea4e3708e79344d1 gal: 6a522c75909f1244732d4596d11d6a2f86ff37a5 - GoogleAppMeasurement: 0471a5b5bff51f3a91b1e76df22c952d04c63967 + GoogleAppMeasurement: fc0817122bd4d4189164f85374e06773b9561896 GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d home_widget: 0434835a4c9a75704264feff6be17ea40e0f0d57 @@ -440,11 +440,11 @@ SPEC CHECKSUMS: receive_sharing_intent: 79c848f5b045674ad60b9fea3bafea59962ad2c1 SAMKeychain: 483e1c9f32984d50ca961e26818a534283b4cd5c screen_brightness_ios: 715ca807df953bf676d339f11464e438143ee625 - SDWebImage: 73c6079366fea25fa4bb9640d5fb58f0893facd8 + SDWebImage: 33d0f23bddeb5d209ae959153883247be6703713 share_plus: 8b6f8b3447e494cca5317c8c3073de39b3600d1f shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d - sqlite3: 4922312598b67e1825c6a6c821296dcbf6783046 + sqlite3: fc1400008a9b3525f5914ed715a5d1af0b8f4983 sqlite3_flutter_libs: 069c435986dd4b63461aecd68f4b30be4a9e9daa SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4 url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 8e3ca5d..15cada4 100644 --- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -59,6 +59,7 @@ ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" + enableGPUValidationMode = "1" allowLocationSimulation = "YES"> diff --git a/lib/controllers/chat_message_controller.dart b/lib/controllers/chat_message_controller.dart index 47bcfcc..d95a908 100644 --- a/lib/controllers/chat_message_controller.dart +++ b/lib/controllers/chat_message_controller.dart @@ -1,5 +1,6 @@ import 'dart:async'; import 'dart:convert'; +import 'dart:developer'; import 'dart:math' as math; import 'package:dio/dio.dart'; @@ -499,9 +500,38 @@ class ChatMessageController extends ChangeNotifier { } } + Timer? _readEventDebounce; + int? _readEventAnchor; + + void readEvent(int id) { + if (_readEventAnchor != null) { + _readEventAnchor = math.max(_readEventAnchor!, id); + } else { + _readEventAnchor = id; + } + if (_readEventDebounce?.isActive ?? false) { + _readEventDebounce?.cancel(); + } + + _readEventDebounce = Timer(const Duration(milliseconds: 500), () { + _ws.conn?.sink.add(jsonEncode( + WebSocketPackage( + method: 'events.read', + endpoint: 'im', + payload: { + 'channel_member_id': profile!.id, + 'event_id': _readEventAnchor, + }, + ).toJson(), + )); + log('[Messaging] Send read event request: $_readEventAnchor'); + }); + } + @override void dispose() { _wsSubscription?.cancel(); + _readEventDebounce?.cancel(); super.dispose(); } } diff --git a/lib/providers/notification.dart b/lib/providers/notification.dart index 8a196d6..d107ad1 100644 --- a/lib/providers/notification.dart +++ b/lib/providers/notification.dart @@ -84,7 +84,7 @@ class NotificationProvider extends ChangeNotifier { showingCount++; showingTrayCount++; notifications.add(notification); - Future.delayed(const Duration(seconds: 3), () { + Future.delayed(const Duration(seconds: 5), () { if (showingCount >= 0) showingCount--; notifyListeners(); }); diff --git a/lib/screens/chat/room.dart b/lib/screens/chat/room.dart index 2440d1a..e076e1a 100644 --- a/lib/screens/chat/room.dart +++ b/lib/screens/chat/room.dart @@ -39,7 +39,8 @@ class ChatRoomScreen extends StatefulWidget { final String alias; final ChatRoomScreenExtra? extra; - const ChatRoomScreen({super.key, required this.scope, required this.alias, this.extra}); + const ChatRoomScreen( + {super.key, required this.scope, required this.alias, this.extra}); @override State createState() => _ChatRoomScreenState(); @@ -192,10 +193,12 @@ class _ChatRoomScreenState extends State { WidgetsBinding.instance.addPostFrameCallback((_) { log('[ChatInput] Setting initial text and attachments...'); if (widget.extra!.initialText != null) { - _inputGlobalKey.currentState?.setInitialText(widget.extra!.initialText!); + _inputGlobalKey.currentState + ?.setInitialText(widget.extra!.initialText!); } if (widget.extra!.initialAttachments != null) { - _inputGlobalKey.currentState?.setInitialAttachments(widget.extra!.initialAttachments!); + _inputGlobalKey.currentState + ?.setInitialAttachments(widget.extra!.initialAttachments!); } }); } @@ -241,12 +244,15 @@ class _ChatRoomScreenState extends State { appBar: AppBar( title: Text( _channel?.type == 1 - ? ud.getAccountFromCache(_otherMember?.accountId)?.nick ?? _channel!.name + ? ud.getAccountFromCache(_otherMember?.accountId)?.nick ?? + _channel!.name : _channel?.name ?? 'loading'.tr(), ), actions: [ IconButton( - icon: _ongoingCall == null ? const Icon(Symbols.call) : const Icon(Symbols.call_end), + icon: _ongoingCall == null + ? const Icon(Symbols.call) + : const Icon(Symbols.call_end), onPressed: _isCalling ? null : _ongoingCall == null @@ -296,9 +302,9 @@ class _ChatRoomScreenState extends State { ) ], ), - ) - .height(_ongoingCall != null ? 54 : 0, animate: true) - .animate(const Duration(milliseconds: 300), Curves.fastLinearToSlowEaseIn), + ).height(_ongoingCall != null ? 54 : 0, animate: true).animate( + const Duration(milliseconds: 300), + Curves.fastLinearToSlowEaseIn), if (_messageController.isPending) Expanded( child: const CircularProgressIndicator().center(), @@ -316,6 +322,7 @@ class _ChatRoomScreenState extends State { }, itemBuilder: (context, idx) { final message = _messageController.messages[idx]; + _messageController.readEvent(message.id); bool canMerge = false, canMergePrevious = false; if (idx > 0) { @@ -337,7 +344,8 @@ class _ChatRoomScreenState extends State { data: message, isMerged: canMerge, hasMerged: canMergePrevious, - isPending: _messageController.unconfirmedMessages.contains(message.uuid), + isPending: _messageController.unconfirmedMessages + .contains(message.uuid), onReply: (value) { _inputGlobalKey.currentState?.setReply(value); }, diff --git a/lib/screens/settings.dart b/lib/screens/settings.dart index 2493fd4..184661b 100644 --- a/lib/screens/settings.dart +++ b/lib/screens/settings.dart @@ -17,6 +17,7 @@ import 'package:shared_preferences/shared_preferences.dart'; import 'package:styled_widget/styled_widget.dart'; import 'package:surface/providers/config.dart'; import 'package:surface/providers/database.dart'; +import 'package:surface/providers/notification.dart'; import 'package:surface/providers/sn_network.dart'; import 'package:surface/providers/theme.dart'; import 'package:surface/theme.dart'; @@ -562,6 +563,18 @@ class _SettingsScreenState extends State { setState(() {}); }, ), + ListTile( + leading: const Icon(Symbols.notifications), + title: Text('settingsEnablePushNotifications').tr(), + subtitle: + Text('settingsEnablePushNotificationsDescription').tr(), + contentPadding: const EdgeInsets.symmetric(horizontal: 24), + trailing: const Icon(Symbols.chevron_right), + onTap: () { + final nty = context.read(); + nty.registerPushNotifications(); + }, + ), ListTile( title: Text('settingsMiscAbout').tr(), subtitle: Text('settingsMiscAboutDescription').tr(), diff --git a/lib/types/account.dart b/lib/types/account.dart index 0295fbc..6d8183c 100644 --- a/lib/types/account.dart +++ b/lib/types/account.dart @@ -1,5 +1,4 @@ import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:hive_flutter/hive_flutter.dart'; part 'account.freezed.dart'; part 'account.g.dart'; diff --git a/lib/types/account.freezed.dart b/lib/types/account.freezed.dart index f742774..e851eb4 100644 --- a/lib/types/account.freezed.dart +++ b/lib/types/account.freezed.dart @@ -20,7 +20,6 @@ SnAccount _$SnAccountFromJson(Map json) { /// @nodoc mixin _$SnAccount { - @HiveField(0) int get id => throw _privateConstructorUsedError; DateTime get createdAt => throw _privateConstructorUsedError; DateTime get updatedAt => throw _privateConstructorUsedError; @@ -403,7 +402,6 @@ class _$SnAccountImpl extends _SnAccount { _$$SnAccountImplFromJson(json); @override - @HiveField(0) final int id; @override final DateTime createdAt; @@ -582,7 +580,6 @@ abstract class _SnAccount extends SnAccount { _$SnAccountImpl.fromJson; @override - @HiveField(0) int get id; @override DateTime get createdAt; diff --git a/lib/types/chat.dart b/lib/types/chat.dart index b7566da..8cd3a9c 100644 --- a/lib/types/chat.dart +++ b/lib/types/chat.dart @@ -1,5 +1,4 @@ import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:hive_flutter/hive_flutter.dart'; import 'package:livekit_client/livekit_client.dart'; import 'package:surface/types/account.dart'; import 'package:surface/types/attachment.dart'; @@ -12,7 +11,6 @@ part 'chat.g.dart'; class SnChannel with _$SnChannel { const SnChannel._(); - @HiveType(typeId: 2) const factory SnChannel({ required int id, required DateTime createdAt, @@ -42,7 +40,6 @@ class SnChannel with _$SnChannel { class SnChannelMember with _$SnChannelMember { const SnChannelMember._(); - @HiveType(typeId: 3) const factory SnChannelMember({ required int id, required DateTime createdAt, @@ -67,7 +64,6 @@ class SnChannelMember with _$SnChannelMember { class SnChatMessage with _$SnChatMessage { const SnChatMessage._(); - @HiveType(typeId: 4) const factory SnChatMessage({ required int id, required DateTime createdAt, diff --git a/lib/types/chat.freezed.dart b/lib/types/chat.freezed.dart index 9cecf60..cf1d8b1 100644 --- a/lib/types/chat.freezed.dart +++ b/lib/types/chat.freezed.dart @@ -20,34 +20,20 @@ SnChannel _$SnChannelFromJson(Map json) { /// @nodoc mixin _$SnChannel { - @HiveField(0) int get id => throw _privateConstructorUsedError; - @HiveField(1) DateTime get createdAt => throw _privateConstructorUsedError; - @HiveField(2) DateTime get updatedAt => throw _privateConstructorUsedError; - @HiveField(3) dynamic get deletedAt => throw _privateConstructorUsedError; - @HiveField(4) String get alias => throw _privateConstructorUsedError; - @HiveField(5) String get name => throw _privateConstructorUsedError; - @HiveField(6) String get description => throw _privateConstructorUsedError; - @HiveField(7) List? get members => throw _privateConstructorUsedError; List? get messages => throw _privateConstructorUsedError; - @HiveField(8) int get type => throw _privateConstructorUsedError; - @HiveField(9) int get accountId => throw _privateConstructorUsedError; - @HiveField(10) SnRealm? get realm => throw _privateConstructorUsedError; - @HiveField(11) int? get realmId => throw _privateConstructorUsedError; - @HiveField(12) bool get isPublic => throw _privateConstructorUsedError; - @HiveField(13) bool get isCommunity => throw _privateConstructorUsedError; /// Serializes this SnChannel to a JSON map. @@ -320,7 +306,6 @@ class __$$SnChannelImplCopyWithImpl<$Res> /// @nodoc @JsonSerializable() -@HiveType(typeId: 2) class _$SnChannelImpl extends _SnChannel { const _$SnChannelImpl( {required this.id, @@ -346,29 +331,21 @@ class _$SnChannelImpl extends _SnChannel { _$$SnChannelImplFromJson(json); @override - @HiveField(0) final int id; @override - @HiveField(1) final DateTime createdAt; @override - @HiveField(2) final DateTime updatedAt; @override - @HiveField(3) final dynamic deletedAt; @override - @HiveField(4) final String alias; @override - @HiveField(5) final String name; @override - @HiveField(6) final String description; final List? _members; @override - @HiveField(7) List? get members { final value = _members; if (value == null) return null; @@ -388,22 +365,16 @@ class _$SnChannelImpl extends _SnChannel { } @override - @HiveField(8) final int type; @override - @HiveField(9) final int accountId; @override - @HiveField(10) final SnRealm? realm; @override - @HiveField(11) final int? realmId; @override - @HiveField(12) final bool isPublic; @override - @HiveField(13) final bool isCommunity; @override @@ -498,48 +469,34 @@ abstract class _SnChannel extends SnChannel { _$SnChannelImpl.fromJson; @override - @HiveField(0) int get id; @override - @HiveField(1) DateTime get createdAt; @override - @HiveField(2) DateTime get updatedAt; @override - @HiveField(3) dynamic get deletedAt; @override - @HiveField(4) String get alias; @override - @HiveField(5) String get name; @override - @HiveField(6) String get description; @override - @HiveField(7) List? get members; @override List? get messages; @override - @HiveField(8) int get type; @override - @HiveField(9) int get accountId; @override - @HiveField(10) SnRealm? get realm; @override - @HiveField(11) int? get realmId; @override - @HiveField(12) bool get isPublic; @override - @HiveField(13) bool get isCommunity; /// Create a copy of SnChannel @@ -556,26 +513,16 @@ SnChannelMember _$SnChannelMemberFromJson(Map json) { /// @nodoc mixin _$SnChannelMember { - @HiveField(0) int get id => throw _privateConstructorUsedError; - @HiveField(1) DateTime get createdAt => throw _privateConstructorUsedError; - @HiveField(2) DateTime get updatedAt => throw _privateConstructorUsedError; - @HiveField(3) DateTime? get deletedAt => throw _privateConstructorUsedError; - @HiveField(4) int get channelId => throw _privateConstructorUsedError; - @HiveField(5) int get accountId => throw _privateConstructorUsedError; - @HiveField(6) String? get nick => throw _privateConstructorUsedError; - @HiveField(7) SnChannel? get channel => throw _privateConstructorUsedError; - @HiveField(8) SnAccount? get account => throw _privateConstructorUsedError; int get notify => throw _privateConstructorUsedError; - @HiveField(9) int get powerLevel => throw _privateConstructorUsedError; dynamic get calls => throw _privateConstructorUsedError; dynamic get events => throw _privateConstructorUsedError; @@ -844,7 +791,6 @@ class __$$SnChannelMemberImplCopyWithImpl<$Res> /// @nodoc @JsonSerializable() -@HiveType(typeId: 3) class _$SnChannelMemberImpl extends _SnChannelMember { const _$SnChannelMemberImpl( {required this.id, @@ -866,37 +812,27 @@ class _$SnChannelMemberImpl extends _SnChannelMember { _$$SnChannelMemberImplFromJson(json); @override - @HiveField(0) final int id; @override - @HiveField(1) final DateTime createdAt; @override - @HiveField(2) final DateTime updatedAt; @override - @HiveField(3) final DateTime? deletedAt; @override - @HiveField(4) final int channelId; @override - @HiveField(5) final int accountId; @override - @HiveField(6) final String? nick; @override - @HiveField(7) final SnChannel? channel; @override - @HiveField(8) final SnAccount? account; @override @JsonKey() final int notify; @override - @HiveField(9) final int powerLevel; @override final dynamic calls; @@ -990,36 +926,26 @@ abstract class _SnChannelMember extends SnChannelMember { _$SnChannelMemberImpl.fromJson; @override - @HiveField(0) int get id; @override - @HiveField(1) DateTime get createdAt; @override - @HiveField(2) DateTime get updatedAt; @override - @HiveField(3) DateTime? get deletedAt; @override - @HiveField(4) int get channelId; @override - @HiveField(5) int get accountId; @override - @HiveField(6) String? get nick; @override - @HiveField(7) SnChannel? get channel; @override - @HiveField(8) SnAccount? get account; @override int get notify; @override - @HiveField(9) int get powerLevel; @override dynamic get calls; @@ -1040,31 +966,18 @@ SnChatMessage _$SnChatMessageFromJson(Map json) { /// @nodoc mixin _$SnChatMessage { - @HiveField(0) int get id => throw _privateConstructorUsedError; - @HiveField(1) DateTime get createdAt => throw _privateConstructorUsedError; - @HiveField(2) DateTime get updatedAt => throw _privateConstructorUsedError; - @HiveField(3) DateTime? get deletedAt => throw _privateConstructorUsedError; - @HiveField(4) String get uuid => throw _privateConstructorUsedError; - @HiveField(5) Map get body => throw _privateConstructorUsedError; - @HiveField(6) String get type => throw _privateConstructorUsedError; - @HiveField(7) SnChannel get channel => throw _privateConstructorUsedError; - @HiveField(8) SnChannelMember get sender => throw _privateConstructorUsedError; - @HiveField(9) int get channelId => throw _privateConstructorUsedError; - @HiveField(10) int get senderId => throw _privateConstructorUsedError; - @HiveField(11) int? get quoteEventId => throw _privateConstructorUsedError; - @HiveField(12) int? get relatedEventId => throw _privateConstructorUsedError; SnChatMessagePreload? get preload => throw _privateConstructorUsedError; @@ -1353,7 +1266,6 @@ class __$$SnChatMessageImplCopyWithImpl<$Res> /// @nodoc @JsonSerializable() -@HiveType(typeId: 4) class _$SnChatMessageImpl extends _SnChatMessage { const _$SnChatMessageImpl( {required this.id, @@ -1377,24 +1289,18 @@ class _$SnChatMessageImpl extends _SnChatMessage { _$$SnChatMessageImplFromJson(json); @override - @HiveField(0) final int id; @override - @HiveField(1) final DateTime createdAt; @override - @HiveField(2) final DateTime updatedAt; @override - @HiveField(3) final DateTime? deletedAt; @override - @HiveField(4) final String uuid; final Map _body; @override @JsonKey() - @HiveField(5) Map get body { if (_body is EqualUnmodifiableMapView) return _body; // ignore: implicit_dynamic_type @@ -1402,25 +1308,18 @@ class _$SnChatMessageImpl extends _SnChatMessage { } @override - @HiveField(6) final String type; @override - @HiveField(7) final SnChannel channel; @override - @HiveField(8) final SnChannelMember sender; @override - @HiveField(9) final int channelId; @override - @HiveField(10) final int senderId; @override - @HiveField(11) final int? quoteEventId; @override - @HiveField(12) final int? relatedEventId; @override final SnChatMessagePreload? preload; @@ -1515,43 +1414,30 @@ abstract class _SnChatMessage extends SnChatMessage { _$SnChatMessageImpl.fromJson; @override - @HiveField(0) int get id; @override - @HiveField(1) DateTime get createdAt; @override - @HiveField(2) DateTime get updatedAt; @override - @HiveField(3) DateTime? get deletedAt; @override - @HiveField(4) String get uuid; @override - @HiveField(5) Map get body; @override - @HiveField(6) String get type; @override - @HiveField(7) SnChannel get channel; @override - @HiveField(8) SnChannelMember get sender; @override - @HiveField(9) int get channelId; @override - @HiveField(10) int get senderId; @override - @HiveField(11) int? get quoteEventId; @override - @HiveField(12) int? get relatedEventId; @override SnChatMessagePreload? get preload; diff --git a/lib/types/chat.g.dart b/lib/types/chat.g.dart index fb37dc7..cfc423b 100644 --- a/lib/types/chat.g.dart +++ b/lib/types/chat.g.dart @@ -2,214 +2,6 @@ part of 'chat.dart'; -// ************************************************************************** -// TypeAdapterGenerator -// ************************************************************************** - -class SnChannelImplAdapter extends TypeAdapter<_$SnChannelImpl> { - @override - final int typeId = 2; - - @override - _$SnChannelImpl read(BinaryReader reader) { - final numOfFields = reader.readByte(); - final fields = { - for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(), - }; - return _$SnChannelImpl( - id: fields[0] as int, - createdAt: fields[1] as DateTime, - updatedAt: fields[2] as DateTime, - deletedAt: fields[3] as dynamic, - alias: fields[4] as String, - name: fields[5] as String, - description: fields[6] as String, - members: (fields[7] as List?)?.cast(), - type: fields[8] as int, - accountId: fields[9] as int, - realm: fields[10] as SnRealm?, - realmId: fields[11] as int?, - isPublic: fields[12] as bool, - isCommunity: fields[13] as bool, - ); - } - - @override - void write(BinaryWriter writer, _$SnChannelImpl obj) { - writer - ..writeByte(14) - ..writeByte(0) - ..write(obj.id) - ..writeByte(1) - ..write(obj.createdAt) - ..writeByte(2) - ..write(obj.updatedAt) - ..writeByte(3) - ..write(obj.deletedAt) - ..writeByte(4) - ..write(obj.alias) - ..writeByte(5) - ..write(obj.name) - ..writeByte(6) - ..write(obj.description) - ..writeByte(8) - ..write(obj.type) - ..writeByte(9) - ..write(obj.accountId) - ..writeByte(10) - ..write(obj.realm) - ..writeByte(11) - ..write(obj.realmId) - ..writeByte(12) - ..write(obj.isPublic) - ..writeByte(13) - ..write(obj.isCommunity) - ..writeByte(7) - ..write(obj.members); - } - - @override - int get hashCode => typeId.hashCode; - - @override - bool operator ==(Object other) => - identical(this, other) || - other is SnChannelImplAdapter && - runtimeType == other.runtimeType && - typeId == other.typeId; -} - -class SnChannelMemberImplAdapter extends TypeAdapter<_$SnChannelMemberImpl> { - @override - final int typeId = 3; - - @override - _$SnChannelMemberImpl read(BinaryReader reader) { - final numOfFields = reader.readByte(); - final fields = { - for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(), - }; - return _$SnChannelMemberImpl( - id: fields[0] as int, - createdAt: fields[1] as DateTime, - updatedAt: fields[2] as DateTime, - deletedAt: fields[3] as DateTime?, - channelId: fields[4] as int, - accountId: fields[5] as int, - nick: fields[6] as String?, - channel: fields[7] as SnChannel?, - account: fields[8] as SnAccount?, - powerLevel: fields[9] as int, - ); - } - - @override - void write(BinaryWriter writer, _$SnChannelMemberImpl obj) { - writer - ..writeByte(10) - ..writeByte(0) - ..write(obj.id) - ..writeByte(1) - ..write(obj.createdAt) - ..writeByte(2) - ..write(obj.updatedAt) - ..writeByte(3) - ..write(obj.deletedAt) - ..writeByte(4) - ..write(obj.channelId) - ..writeByte(5) - ..write(obj.accountId) - ..writeByte(6) - ..write(obj.nick) - ..writeByte(7) - ..write(obj.channel) - ..writeByte(8) - ..write(obj.account) - ..writeByte(9) - ..write(obj.powerLevel); - } - - @override - int get hashCode => typeId.hashCode; - - @override - bool operator ==(Object other) => - identical(this, other) || - other is SnChannelMemberImplAdapter && - runtimeType == other.runtimeType && - typeId == other.typeId; -} - -class SnChatMessageImplAdapter extends TypeAdapter<_$SnChatMessageImpl> { - @override - final int typeId = 4; - - @override - _$SnChatMessageImpl read(BinaryReader reader) { - final numOfFields = reader.readByte(); - final fields = { - for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(), - }; - return _$SnChatMessageImpl( - id: fields[0] as int, - createdAt: fields[1] as DateTime, - updatedAt: fields[2] as DateTime, - deletedAt: fields[3] as DateTime?, - uuid: fields[4] as String, - body: (fields[5] as Map).cast(), - type: fields[6] as String, - channel: fields[7] as SnChannel, - sender: fields[8] as SnChannelMember, - channelId: fields[9] as int, - senderId: fields[10] as int, - quoteEventId: fields[11] as int?, - relatedEventId: fields[12] as int?, - ); - } - - @override - void write(BinaryWriter writer, _$SnChatMessageImpl obj) { - writer - ..writeByte(13) - ..writeByte(0) - ..write(obj.id) - ..writeByte(1) - ..write(obj.createdAt) - ..writeByte(2) - ..write(obj.updatedAt) - ..writeByte(3) - ..write(obj.deletedAt) - ..writeByte(4) - ..write(obj.uuid) - ..writeByte(6) - ..write(obj.type) - ..writeByte(7) - ..write(obj.channel) - ..writeByte(8) - ..write(obj.sender) - ..writeByte(9) - ..write(obj.channelId) - ..writeByte(10) - ..write(obj.senderId) - ..writeByte(11) - ..write(obj.quoteEventId) - ..writeByte(12) - ..write(obj.relatedEventId) - ..writeByte(5) - ..write(obj.body); - } - - @override - int get hashCode => typeId.hashCode; - - @override - bool operator ==(Object other) => - identical(this, other) || - other is SnChatMessageImplAdapter && - runtimeType == other.runtimeType && - typeId == other.typeId; -} - // ************************************************************************** // JsonSerializableGenerator // ************************************************************************** diff --git a/lib/types/realm.dart b/lib/types/realm.dart index d88d21f..c1ac6cd 100644 --- a/lib/types/realm.dart +++ b/lib/types/realm.dart @@ -1,5 +1,4 @@ import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:hive_flutter/hive_flutter.dart'; import 'package:surface/types/account.dart'; part 'realm.freezed.dart'; @@ -27,7 +26,6 @@ class SnRealmMember with _$SnRealmMember { class SnRealm with _$SnRealm { const SnRealm._(); - @HiveType(typeId: 1) const factory SnRealm({ required int id, required DateTime createdAt, diff --git a/lib/types/realm.freezed.dart b/lib/types/realm.freezed.dart index 4a8c71f..153a1cf 100644 --- a/lib/types/realm.freezed.dart +++ b/lib/types/realm.freezed.dart @@ -367,32 +367,19 @@ SnRealm _$SnRealmFromJson(Map json) { /// @nodoc mixin _$SnRealm { - @HiveField(0) int get id => throw _privateConstructorUsedError; - @HiveField(1) DateTime get createdAt => throw _privateConstructorUsedError; - @HiveField(2) DateTime get updatedAt => throw _privateConstructorUsedError; - @HiveField(3) DateTime? get deletedAt => throw _privateConstructorUsedError; - @HiveField(4) String get alias => throw _privateConstructorUsedError; - @HiveField(5) String get name => throw _privateConstructorUsedError; - @HiveField(6) String get description => throw _privateConstructorUsedError; List? get members => throw _privateConstructorUsedError; - @HiveField(7) String? get avatar => throw _privateConstructorUsedError; - @HiveField(8) String? get banner => throw _privateConstructorUsedError; - @HiveField(9) Map? get accessPolicy => throw _privateConstructorUsedError; - @HiveField(10) int get accountId => throw _privateConstructorUsedError; - @HiveField(11) bool get isPublic => throw _privateConstructorUsedError; - @HiveField(12) bool get isCommunity => throw _privateConstructorUsedError; int get popularity => throw _privateConstructorUsedError; @@ -645,7 +632,6 @@ class __$$SnRealmImplCopyWithImpl<$Res> /// @nodoc @JsonSerializable() -@HiveType(typeId: 1) class _$SnRealmImpl extends _SnRealm { const _$SnRealmImpl( {required this.id, @@ -671,25 +657,18 @@ class _$SnRealmImpl extends _SnRealm { _$$SnRealmImplFromJson(json); @override - @HiveField(0) final int id; @override - @HiveField(1) final DateTime createdAt; @override - @HiveField(2) final DateTime updatedAt; @override - @HiveField(3) final DateTime? deletedAt; @override - @HiveField(4) final String alias; @override - @HiveField(5) final String name; @override - @HiveField(6) final String description; final List? _members; @override @@ -702,14 +681,11 @@ class _$SnRealmImpl extends _SnRealm { } @override - @HiveField(7) final String? avatar; @override - @HiveField(8) final String? banner; final Map? _accessPolicy; @override - @HiveField(9) Map? get accessPolicy { final value = _accessPolicy; if (value == null) return null; @@ -719,13 +695,10 @@ class _$SnRealmImpl extends _SnRealm { } @override - @HiveField(10) final int accountId; @override - @HiveField(11) final bool isPublic; @override - @HiveField(12) final bool isCommunity; @override @JsonKey() @@ -825,45 +798,32 @@ abstract class _SnRealm extends SnRealm { factory _SnRealm.fromJson(Map json) = _$SnRealmImpl.fromJson; @override - @HiveField(0) int get id; @override - @HiveField(1) DateTime get createdAt; @override - @HiveField(2) DateTime get updatedAt; @override - @HiveField(3) DateTime? get deletedAt; @override - @HiveField(4) String get alias; @override - @HiveField(5) String get name; @override - @HiveField(6) String get description; @override List? get members; @override - @HiveField(7) String? get avatar; @override - @HiveField(8) String? get banner; @override - @HiveField(9) Map? get accessPolicy; @override - @HiveField(10) int get accountId; @override - @HiveField(11) bool get isPublic; @override - @HiveField(12) bool get isCommunity; @override int get popularity; diff --git a/lib/types/realm.g.dart b/lib/types/realm.g.dart index 32f37e5..055aee8 100644 --- a/lib/types/realm.g.dart +++ b/lib/types/realm.g.dart @@ -2,80 +2,6 @@ part of 'realm.dart'; -// ************************************************************************** -// TypeAdapterGenerator -// ************************************************************************** - -class SnRealmImplAdapter extends TypeAdapter<_$SnRealmImpl> { - @override - final int typeId = 1; - - @override - _$SnRealmImpl read(BinaryReader reader) { - final numOfFields = reader.readByte(); - final fields = { - for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(), - }; - return _$SnRealmImpl( - id: fields[0] as int, - createdAt: fields[1] as DateTime, - updatedAt: fields[2] as DateTime, - deletedAt: fields[3] as DateTime?, - alias: fields[4] as String, - name: fields[5] as String, - description: fields[6] as String, - avatar: fields[7] as String?, - banner: fields[8] as String?, - accessPolicy: (fields[9] as Map?)?.cast(), - accountId: fields[10] as int, - isPublic: fields[11] as bool, - isCommunity: fields[12] as bool, - ); - } - - @override - void write(BinaryWriter writer, _$SnRealmImpl obj) { - writer - ..writeByte(13) - ..writeByte(0) - ..write(obj.id) - ..writeByte(1) - ..write(obj.createdAt) - ..writeByte(2) - ..write(obj.updatedAt) - ..writeByte(3) - ..write(obj.deletedAt) - ..writeByte(4) - ..write(obj.alias) - ..writeByte(5) - ..write(obj.name) - ..writeByte(6) - ..write(obj.description) - ..writeByte(7) - ..write(obj.avatar) - ..writeByte(8) - ..write(obj.banner) - ..writeByte(10) - ..write(obj.accountId) - ..writeByte(11) - ..write(obj.isPublic) - ..writeByte(12) - ..write(obj.isCommunity) - ..writeByte(9) - ..write(obj.accessPolicy); - } - - @override - int get hashCode => typeId.hashCode; - - @override - bool operator ==(Object other) => - identical(this, other) || - other is SnRealmImplAdapter && - runtimeType == other.runtimeType && - typeId == other.typeId; -} - // ************************************************************************** // JsonSerializableGenerator // ************************************************************************** diff --git a/lib/widgets/notify_indicator.dart b/lib/widgets/notify_indicator.dart index dfbc191..e5ae2ec 100644 --- a/lib/widgets/notify_indicator.dart +++ b/lib/widgets/notify_indicator.dart @@ -23,7 +23,8 @@ class NotifyIndicator extends StatefulWidget { State createState() => _NotifyIndicatorState(); } -class _NotifyIndicatorState extends State with SingleTickerProviderStateMixin { +class _NotifyIndicatorState extends State + with SingleTickerProviderStateMixin { late final AnimationController _animationController = AnimationController( vsync: this, duration: const Duration(milliseconds: 300), @@ -101,7 +102,8 @@ class _NotifyIndicatorState extends State with SingleTickerProv padding: const EdgeInsets.symmetric(vertical: 16), width: double.infinity, constraints: BoxConstraints( - maxWidth: isMobile ? MediaQuery.of(context).size.width - 16 : 360, + maxWidth: + isMobile ? MediaQuery.of(context).size.width - 16 : 360, ), child: Material( elevation: 2, @@ -118,7 +120,8 @@ class _NotifyIndicatorState extends State with SingleTickerProv ), ) else - Icon(kNotificationTopicIcons[current?.topic] ?? Symbols.notifications), + Icon(kNotificationTopicIcons[current?.topic] ?? + Symbols.notifications), const Gap(16), Expanded( child: Column( @@ -126,14 +129,20 @@ class _NotifyIndicatorState extends State with SingleTickerProv children: [ Text( current?.title ?? 'Notification', - style: Theme.of(context).textTheme.bodyMedium!.copyWith( + style: Theme.of(context) + .textTheme + .bodyMedium! + .copyWith( fontWeight: FontWeight.bold, ), ), if (current?.subtitle?.isNotEmpty ?? false) Text( current!.subtitle!, - style: Theme.of(context).textTheme.bodyMedium!.copyWith( + style: Theme.of(context) + .textTheme + .bodyMedium! + .copyWith( fontWeight: FontWeight.bold, ), ), @@ -148,18 +157,25 @@ class _NotifyIndicatorState extends State with SingleTickerProv Column( crossAxisAlignment: CrossAxisAlignment.end, children: [ - Text(DateFormat('HH:mm').format(current?.createdAt.toLocal() ?? DateTime.now())) - .fontSize(12) - .padding(right: 2), + Text( + DateFormat('HH:mm').format( + (current?.createdAt ?? DateTime.now()) + .millisecondsSinceEpoch > + 0 + ? (current?.createdAt ?? DateTime.now()) + : DateTime.now()), + ).fontSize(12).padding(right: 2), const Gap(6), if (current?.metadata['image'] != null) SizedBox( width: 40, height: 40, child: ClipRRect( - borderRadius: const BorderRadius.all(Radius.circular(8)), + borderRadius: const BorderRadius.all( + Radius.circular(8)), child: AutoResizeUniversalImage( - sn.getAttachmentUrl(current?.metadata['image']), + sn.getAttachmentUrl( + current?.metadata['image']), fit: BoxFit.cover, ), ), diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 3436908..7acfc90 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -13,59 +13,59 @@ PODS: - FlutterMacOS - file_selector_macos (0.0.1): - FlutterMacOS - - Firebase/Analytics (11.7.0): + - Firebase/Analytics (11.8.0): - Firebase/Core - - Firebase/Core (11.7.0): + - Firebase/Core (11.8.0): - Firebase/CoreOnly - - FirebaseAnalytics (~> 11.7.0) - - Firebase/CoreOnly (11.7.0): - - FirebaseCore (~> 11.7.0) - - Firebase/Messaging (11.7.0): + - FirebaseAnalytics (~> 11.8.0) + - Firebase/CoreOnly (11.8.0): + - FirebaseCore (~> 11.8.0) + - Firebase/Messaging (11.8.0): - Firebase/CoreOnly - - FirebaseMessaging (~> 11.7.0) - - firebase_analytics (11.4.2): - - Firebase/Analytics (= 11.7.0) + - FirebaseMessaging (~> 11.8.0) + - firebase_analytics (11.4.3): + - Firebase/Analytics (= 11.8.0) - firebase_core - FlutterMacOS - - firebase_core (3.11.0): - - Firebase/CoreOnly (~> 11.7.0) + - firebase_core (3.12.0): + - Firebase/CoreOnly (~> 11.8.0) - FlutterMacOS - - firebase_messaging (15.2.2): - - Firebase/CoreOnly (~> 11.7.0) - - Firebase/Messaging (~> 11.7.0) + - firebase_messaging (15.2.3): + - Firebase/CoreOnly (~> 11.8.0) + - Firebase/Messaging (~> 11.8.0) - firebase_core - FlutterMacOS - - FirebaseAnalytics (11.7.0): - - FirebaseAnalytics/AdIdSupport (= 11.7.0) - - FirebaseCore (~> 11.7.0) + - FirebaseAnalytics (11.8.0): + - FirebaseAnalytics/AdIdSupport (= 11.8.0) + - FirebaseCore (~> 11.8.0) - FirebaseInstallations (~> 11.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - GoogleUtilities/MethodSwizzler (~> 8.0) - GoogleUtilities/Network (~> 8.0) - "GoogleUtilities/NSData+zlib (~> 8.0)" - nanopb (~> 3.30910.0) - - FirebaseAnalytics/AdIdSupport (11.7.0): - - FirebaseCore (~> 11.7.0) + - FirebaseAnalytics/AdIdSupport (11.8.0): + - FirebaseCore (~> 11.8.0) - FirebaseInstallations (~> 11.0) - - GoogleAppMeasurement (= 11.7.0) + - GoogleAppMeasurement (= 11.8.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - GoogleUtilities/MethodSwizzler (~> 8.0) - GoogleUtilities/Network (~> 8.0) - "GoogleUtilities/NSData+zlib (~> 8.0)" - nanopb (~> 3.30910.0) - - FirebaseCore (11.7.0): - - FirebaseCoreInternal (~> 11.7.0) + - FirebaseCore (11.8.1): + - FirebaseCoreInternal (~> 11.8.0) - GoogleUtilities/Environment (~> 8.0) - GoogleUtilities/Logger (~> 8.0) - - FirebaseCoreInternal (11.7.0): + - FirebaseCoreInternal (11.8.0): - "GoogleUtilities/NSData+zlib (~> 8.0)" - - FirebaseInstallations (11.7.0): - - FirebaseCore (~> 11.7.0) + - FirebaseInstallations (11.8.0): + - FirebaseCore (~> 11.8.0) - GoogleUtilities/Environment (~> 8.0) - GoogleUtilities/UserDefaults (~> 8.0) - PromisesObjC (~> 2.4) - - FirebaseMessaging (11.7.0): - - FirebaseCore (~> 11.7.0) + - FirebaseMessaging (11.8.0): + - FirebaseCore (~> 11.8.0) - FirebaseInstallations (~> 11.0) - GoogleDataTransport (~> 10.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.0) @@ -86,21 +86,21 @@ PODS: - gal (1.0.0): - Flutter - FlutterMacOS - - GoogleAppMeasurement (11.7.0): - - GoogleAppMeasurement/AdIdSupport (= 11.7.0) + - GoogleAppMeasurement (11.8.0): + - GoogleAppMeasurement/AdIdSupport (= 11.8.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - GoogleUtilities/MethodSwizzler (~> 8.0) - GoogleUtilities/Network (~> 8.0) - "GoogleUtilities/NSData+zlib (~> 8.0)" - nanopb (~> 3.30910.0) - - GoogleAppMeasurement/AdIdSupport (11.7.0): - - GoogleAppMeasurement/WithoutAdIdSupport (= 11.7.0) + - GoogleAppMeasurement/AdIdSupport (11.8.0): + - GoogleAppMeasurement/WithoutAdIdSupport (= 11.8.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - GoogleUtilities/MethodSwizzler (~> 8.0) - GoogleUtilities/Network (~> 8.0) - "GoogleUtilities/NSData+zlib (~> 8.0)" - nanopb (~> 3.30910.0) - - GoogleAppMeasurement/WithoutAdIdSupport (11.7.0): + - GoogleAppMeasurement/WithoutAdIdSupport (11.8.0): - GoogleUtilities/AppDelegateSwizzler (~> 8.0) - GoogleUtilities/MethodSwizzler (~> 8.0) - GoogleUtilities/Network (~> 8.0) @@ -177,6 +177,25 @@ PODS: - sqflite_darwin (0.0.4): - Flutter - FlutterMacOS + - sqlite3 (3.49.1): + - sqlite3/common (= 3.49.1) + - sqlite3/common (3.49.1) + - sqlite3/dbstatvtab (3.49.1): + - sqlite3/common + - sqlite3/fts5 (3.49.1): + - sqlite3/common + - sqlite3/perf-threadsafe (3.49.1): + - sqlite3/common + - sqlite3/rtree (3.49.1): + - sqlite3/common + - sqlite3_flutter_libs (0.0.1): + - Flutter + - FlutterMacOS + - sqlite3 (~> 3.49.0) + - sqlite3/dbstatvtab + - sqlite3/fts5 + - sqlite3/perf-threadsafe + - sqlite3/rtree - tray_manager (0.0.1): - FlutterMacOS - url_launcher_macos (0.0.1): @@ -216,6 +235,7 @@ DEPENDENCIES: - share_plus (from `Flutter/ephemeral/.symlinks/plugins/share_plus/macos`) - shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`) - sqflite_darwin (from `Flutter/ephemeral/.symlinks/plugins/sqflite_darwin/darwin`) + - sqlite3_flutter_libs (from `Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/darwin`) - tray_manager (from `Flutter/ephemeral/.symlinks/plugins/tray_manager/macos`) - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) - video_compress (from `Flutter/ephemeral/.symlinks/plugins/video_compress/macos`) @@ -237,6 +257,7 @@ SPEC REPOS: - OrderedSet - PromisesObjC - SAMKeychain + - sqlite3 - WebRTC-SDK EXTERNAL SOURCES: @@ -296,6 +317,8 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin sqflite_darwin: :path: Flutter/ephemeral/.symlinks/plugins/sqflite_darwin/darwin + sqlite3_flutter_libs: + :path: Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/darwin tray_manager: :path: Flutter/ephemeral/.symlinks/plugins/tray_manager/macos url_launcher_macos: @@ -313,21 +336,21 @@ SPEC CHECKSUMS: file_picker: e716a70a9fe5fd9e09ebc922d7541464289443af file_saver: 44e6fbf666677faf097302460e214e977fdd977b file_selector_macos: cc3858c981fe6889f364731200d6232dac1d812d - Firebase: a64bf6a8546e6eab54f1c715cd6151f39d2329f4 - firebase_analytics: 41d88c024a7756462a803e36236ba74f24cdc2c5 - firebase_core: 751d3d919b95d4ae46ab049d0d64d42d4eec086b - firebase_messaging: cc174f19945e9541e140e3cb0118448e59b38c6c - FirebaseAnalytics: bc9e565af9044ba8d6c6e4157e4edca8e5fdf7ec - FirebaseCore: 3227e35f4197a924206fbcdc0349325baf4f5de4 - FirebaseCoreInternal: d6c17dafc8dc33614733a8b52df78fcb4394c881 - FirebaseInstallations: 9347e719c3d52d8d7b9074b2c32407dd027305e9 - FirebaseMessaging: 00ece041b71ddb52a2862ffdee73fb6e9824bd0c + Firebase: d80354ed7f6df5f9aca55e9eb47cc4b634735eaf + firebase_analytics: 1a71372a9735d7046d2c69db848a8d178f9fb587 + firebase_core: 68e1d27035b096239f147a041643e14e156f1481 + firebase_messaging: 89b5e0e28413dd878a58d2f286cdc03887b5d467 + FirebaseAnalytics: 4fd42def128146e24e480e89f310e3d8534ea42b + FirebaseCore: 99fe0c4b44a39f37d99e6404e02009d2db5d718d + FirebaseCoreInternal: df24ce5af28864660ecbd13596fc8dd3a8c34629 + FirebaseInstallations: 6c963bd2a86aca0481eef4f48f5a4df783ae5917 + FirebaseMessaging: 487b634ccdf6f7b7ff180fdcb2a9935490f764e8 flutter_inappwebview_macos: bdf207b8f4ebd58e86ae06cd96b147de99a67c9b flutter_udid: 2e7b3da4b5fdfba86a396b97898f5fe8f4ec1a52 flutter_webrtc: d55fd3f5c75b42940b6b4b2cf376a5797398d1f8 FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 gal: 6a522c75909f1244732d4596d11d6a2f86ff37a5 - GoogleAppMeasurement: 0471a5b5bff51f3a91b1e76df22c952d04c63967 + GoogleAppMeasurement: fc0817122bd4d4189164f85374e06773b9561896 GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d HotKey: 400beb7caa29054ea8d864c96f5ba7e5b4852277 @@ -348,6 +371,8 @@ SPEC CHECKSUMS: share_plus: 1fa619de8392a4398bfaf176d441853922614e89 shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d + sqlite3: fc1400008a9b3525f5914ed715a5d1af0b8f4983 + sqlite3_flutter_libs: 069c435986dd4b63461aecd68f4b30be4a9e9daa tray_manager: 9064e219c56d75c476e46b9a21182087930baf90 url_launcher_macos: c82c93949963e55b228a30115bd219499a6fe404 video_compress: c896234f100791b5fef7f049afa38f6d2ef7b42f diff --git a/pubspec.lock b/pubspec.lock index 0b5f0f2..d9111d0 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,31 +5,26 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "16e298750b6d0af7ce8a3ba7c18c69c3785d11b15ec83f6dcd0ad2a0009b3cab" + sha256: dc27559385e905ad30838356c5f5d574014ba39872d732111cd07ac0beff4c57 url: "https://pub.dev" source: hosted - version: "76.0.0" + version: "80.0.0" _flutterfire_internals: dependency: transitive description: name: _flutterfire_internals - sha256: e051259913915ea5bc8fe18664596bea08592fd123930605d562969cd7315fcd + sha256: "401dd18096f5eaa140404ccbbbf346f83c850e6f27049698a7ee75a3488ddb32" url: "https://pub.dev" source: hosted - version: "1.3.51" - _macros: - dependency: transitive - description: dart - source: sdk - version: "0.3.3" + version: "1.3.52" analyzer: dependency: transitive description: name: analyzer - sha256: "1f14db053a8c23e260789e9b0980fa27f2680dd640932cae5e1137cce0e46e1e" + sha256: "192d1c5b944e7e53b24b5586db760db934b177d4147c42fbca8c8c5f1eb8d11e" url: "https://pub.dev" source: hosted - version: "6.11.0" + version: "7.3.0" animations: dependency: "direct main" description: @@ -50,10 +45,10 @@ packages: dependency: transitive description: name: archive - sha256: "6199c74e3db4fbfbd04f66d739e72fe11c8a8957d5f219f1f4482dbde6420b5a" + sha256: "528579c7e4579719f04b21eeeeddfd73a18b31dabc22766893b7d1be7f49b967" url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "4.0.3" args: dependency: transitive description: @@ -66,10 +61,10 @@ packages: dependency: transitive description: name: async - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 url: "https://pub.dev" source: hosted - version: "2.11.0" + version: "2.12.0" bitsdojo_window: dependency: "direct main" description: @@ -114,10 +109,10 @@ packages: dependency: transitive description: name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" build: dependency: transitive description: @@ -226,10 +221,10 @@ packages: dependency: transitive description: name: characters - sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.0" charcode: dependency: transitive description: @@ -258,10 +253,10 @@ packages: dependency: transitive description: name: clock - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" code_builder: dependency: transitive description: @@ -274,10 +269,10 @@ packages: dependency: "direct main" description: name: collection - sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" url: "https://pub.dev" source: hosted - version: "1.19.0" + version: "1.19.1" connectivity_plus: dependency: transitive description: @@ -354,10 +349,10 @@ packages: dependency: transitive description: name: dart_style - sha256: "7306ab8a2359a48d22310ad823521d723acfed60ee1f7e37388e8986853b6820" + sha256: "27eb0ae77836989a3bc541ce55595e8ceee0992807f14511552a898ddd0d88ac" url: "https://pub.dev" source: hosted - version: "2.3.8" + version: "3.0.1" dart_webrtc: dependency: "direct main" description: @@ -506,18 +501,18 @@ packages: dependency: transitive description: name: fake_async - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.3.2" ffi: dependency: transitive description: name: ffi - sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" + sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418" url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.4" file: dependency: transitive description: @@ -530,10 +525,10 @@ packages: dependency: "direct main" description: name: file_picker - sha256: ab13ae8ef5580a411c458d6207b6774a6c237d77ac37011b13994879f68a8810 + sha256: "6f6bfa8797f296965bdc3e1f702574ab49a540c19b9237b401e7c2b25dfe594c" url: "https://pub.dev" source: hosted - version: "8.3.7" + version: "9.0.0" file_saver: dependency: "direct main" description: @@ -578,34 +573,34 @@ packages: dependency: "direct main" description: name: firebase_analytics - sha256: "47428047a0778f72af53a3c7cb5d556e1cb25e2327cc8aa40d544971dc6245b2" + sha256: "6abce50b79729d8a13c3d4ae05ac612d5ef2f57394330bc5e581ca0e762325f4" url: "https://pub.dev" source: hosted - version: "11.4.2" + version: "11.4.3" firebase_analytics_platform_interface: dependency: transitive description: name: firebase_analytics_platform_interface - sha256: "1076f4b041f76143e14878c70f0758f17fe5910c0cd992db9e93bd3c3584512b" + sha256: cd9ae65870bf23ab7e63a04fe9c1b38522fd3556a8c32288afd3f5cb10d4b8f4 url: "https://pub.dev" source: hosted - version: "4.3.2" + version: "4.3.3" firebase_analytics_web: dependency: transitive description: name: firebase_analytics_web - sha256: "8f6dd64ea6d28b7f5b9e739d183a9e1c7f17027794a3e9aba1879621d42426ef" + sha256: "5654ed7e39d7a8099e60748924327159785512d78d913e965f9ca93c533af910" url: "https://pub.dev" source: hosted - version: "0.5.10+8" + version: "0.5.10+9" firebase_core: dependency: "direct main" description: name: firebase_core - sha256: "93dc4dd12f9b02c5767f235307f609e61ed9211047132d07f9e02c668f0bfc33" + sha256: "6a4ea0f1d533443c8afc3d809cd36a4e2b8f2e2e711f697974f55bb31d71d1b8" url: "https://pub.dev" source: hosted - version: "3.11.0" + version: "3.12.0" firebase_core_platform_interface: dependency: transitive description: @@ -618,34 +613,34 @@ packages: dependency: transitive description: name: firebase_core_web - sha256: "0e13c80f0de8acaa5d0519cbe23c8b4cc138a2d5d508b5755c861bdfc9762678" + sha256: e47f5c2776de018fa19bc9f6f723df136bc75cdb164d64b65305babd715c8e41 url: "https://pub.dev" source: hosted - version: "2.20.0" + version: "2.21.0" firebase_messaging: dependency: "direct main" description: name: firebase_messaging - sha256: "3dee3b0cbfe719e64773cb7d1cad57c58b2235a8c136f5715fe733a54058c783" + sha256: "8755a083a20bac4485e8b46d223f6f2eab34e659a76a75f8cf3cded53bc98a15" url: "https://pub.dev" source: hosted - version: "15.2.2" + version: "15.2.3" firebase_messaging_platform_interface: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: e9ea726b9bb864fc6223bb66422bd9877b9973ae51967754a769b0d01e201c1e + sha256: "8cc771079677460de53ad8fcca5bc3074d58c5fc4f9d89b19585e5bfd9c64292" url: "https://pub.dev" source: hosted - version: "4.6.2" + version: "4.6.3" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - sha256: "5f7b40e8bf861a37f8b8196e347d8a919750421a45f0b45d1bb74e98fa72726e" + sha256: caa73059b0396c97f691683c4cfc3f897c8543801579b7dd4851c431d8e4e091 url: "https://pub.dev" source: hosted - version: "3.10.2" + version: "3.10.3" fixnum: dependency: transitive description: @@ -812,10 +807,10 @@ packages: dependency: "direct dev" description: name: flutter_native_splash - sha256: "7062602e0dbd29141fb8eb19220b5871ca650be5197ab9c1f193a28b17537bc7" + sha256: edb09c35ee9230c4b03f13dd45bb3a276d0801865f0a4650b7e2a3bba61a803a url: "https://pub.dev" source: hosted - version: "2.4.4" + version: "2.4.5" flutter_plugin_android_lifecycle: dependency: transitive description: @@ -870,18 +865,18 @@ packages: dependency: "direct main" description: name: flutter_webrtc - sha256: "572df3de6c828e571db4b75b4a96a15c2f34fa3d420a84438f44a3158b22e81a" + sha256: "9c4ca34ced1d1b780baf3776557f9edd0af18ce030969346f752e8df455faaab" url: "https://pub.dev" source: hosted - version: "0.12.9" + version: "0.12.10" freezed: dependency: "direct dev" description: name: freezed - sha256: "44c19278dd9d89292cf46e97dc0c1e52ce03275f40a97c5a348e802a924bf40e" + sha256: "59a584c24b3acdc5250bb856d0d3e9c0b798ed14a4af1ddb7dc1c7b41df91c9c" url: "https://pub.dev" source: hosted - version: "2.5.7" + version: "2.5.8" freezed_annotation: dependency: "direct main" description: @@ -1038,10 +1033,10 @@ packages: dependency: transitive description: name: image - sha256: "8346ad4b5173924b5ddddab782fc7d8a6300178c8b1dc427775405a01701c4a6" + sha256: "13d3349ace88f12f4a0d175eb5c12dcdd39d35c4c109a8a13dfeb6d0bd9e31c3" url: "https://pub.dev" source: hosted - version: "4.5.2" + version: "4.5.3" image_picker: dependency: "direct main" description: @@ -1054,10 +1049,10 @@ packages: dependency: "direct main" description: name: image_picker_android - sha256: b62d34a506e12bb965e824b6db4fbf709ee4589cf5d3e99b45ab2287b008ee0c + sha256: "82652a75e3dd667a91187769a6a2cc81bd8c111bbead698d8e938d2b63e5e89a" url: "https://pub.dev" source: hosted - version: "0.8.12+20" + version: "0.8.12+21" image_picker_for_web: dependency: transitive description: @@ -1158,26 +1153,26 @@ packages: dependency: "direct dev" description: name: json_serializable - sha256: c2fcb3920cf2b6ae6845954186420fca40bc0a8abcc84903b7801f17d7050d7c + sha256: "81f04dee10969f89f604e1249382d46b97a1ccad53872875369622b5bfc9e58a" url: "https://pub.dev" source: hosted - version: "6.9.0" + version: "6.9.4" leak_tracker: dependency: transitive description: name: leak_tracker - sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" + sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec url: "https://pub.dev" source: hosted - version: "10.0.7" + version: "10.0.8" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 url: "https://pub.dev" source: hosted - version: "3.0.8" + version: "3.0.9" leak_tracker_testing: dependency: transitive description: @@ -1218,14 +1213,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.0" - macros: - dependency: transitive - description: - name: macros - sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656" - url: "https://pub.dev" - source: hosted - version: "0.1.3-main.0" markdown: dependency: "direct main" description: @@ -1246,10 +1233,10 @@ packages: dependency: transitive description: name: matcher - sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 url: "https://pub.dev" source: hosted - version: "0.12.16+1" + version: "0.12.17" material_color_utilities: dependency: transitive description: @@ -1350,10 +1337,10 @@ packages: dependency: transitive description: name: meta - sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 + sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c url: "https://pub.dev" source: hosted - version: "1.15.0" + version: "1.16.0" mime: dependency: "direct main" description: @@ -1422,10 +1409,10 @@ packages: dependency: "direct main" description: name: path - sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" url: "https://pub.dev" source: hosted - version: "1.9.0" + version: "1.9.1" path_parsing: dependency: transitive description: @@ -1494,26 +1481,26 @@ packages: dependency: "direct main" description: name: permission_handler - sha256: "18bf33f7fefbd812f37e72091a15575e72d5318854877e0e4035a24ac1113ecb" + sha256: "59adad729136f01ea9e35a48f5d1395e25cba6cea552249ddbe9cf950f5d7849" url: "https://pub.dev" source: hosted - version: "11.3.1" + version: "11.4.0" permission_handler_android: dependency: transitive description: name: permission_handler_android - sha256: "71bbecfee799e65aff7c744761a57e817e73b738fedf62ab7afd5593da21f9f1" + sha256: d3971dcdd76182a0c198c096b5db2f0884b0d4196723d21a866fc4cdea057ebc url: "https://pub.dev" source: hosted - version: "12.0.13" + version: "12.1.0" permission_handler_apple: dependency: transitive description: name: permission_handler_apple - sha256: e6f6d73b12438ef13e648c4ae56bd106ec60d17e90a59c4545db6781229082a0 + sha256: f84a188e79a35c687c132a0a0556c254747a08561e99ab933f12f6ca71ef3c98 url: "https://pub.dev" source: hosted - version: "9.4.5" + version: "9.4.6" permission_handler_html: dependency: transitive description: @@ -1526,10 +1513,10 @@ packages: dependency: transitive description: name: permission_handler_platform_interface - sha256: e9c8eadee926c4532d0305dff94b85bf961f16759c3af791486613152af4b4f9 + sha256: eb99b295153abce5d683cac8c02e22faab63e50679b937fa1bf67d58bb282878 url: "https://pub.dev" source: hosted - version: "4.2.3" + version: "4.3.0" permission_handler_windows: dependency: transitive description: @@ -1542,10 +1529,10 @@ packages: dependency: transitive description: name: petitparser - sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 + sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646" url: "https://pub.dev" source: hosted - version: "6.0.2" + version: "6.1.0" photo_view: dependency: "direct main" description: @@ -1566,10 +1553,10 @@ packages: dependency: transitive description: name: platform_detect - sha256: a62f99417fc4fa2d099ce0ccdbb1bd3977920f2a64292c326271f049d4bc3a4f + sha256: "7394dc1d884e652785a37c3ff25c54e503c6d9fa2f35b55d5efc0a133dec122c" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.5" plugin_platform_interface: dependency: transitive description: @@ -1790,10 +1777,10 @@ packages: dependency: transitive description: name: shared_preferences_android - sha256: ea86be7b7114f9e94fddfbb52649e59a03d6627ccd2387ebddcd6624719e9f16 + sha256: a768fc8ede5f0c8e6150476e14f38e2417c0864ca36bb4582be8e21925a03c22 url: "https://pub.dev" source: hosted - version: "2.4.5" + version: "2.4.6" shared_preferences_foundation: dependency: transitive description: @@ -1822,10 +1809,10 @@ packages: dependency: transitive description: name: shared_preferences_web - sha256: d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e + sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019 url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.4.3" shared_preferences_windows: dependency: transitive description: @@ -1883,10 +1870,10 @@ packages: dependency: transitive description: name: source_gen - sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" + sha256: "35c8150ece9e8c8d263337a265153c3329667640850b9304861faea59fc98f6b" url: "https://pub.dev" source: hosted - version: "1.5.0" + version: "2.0.0" source_helper: dependency: transitive description: @@ -1899,10 +1886,10 @@ packages: dependency: transitive description: name: source_span - sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.10.1" sprintf: dependency: transitive description: @@ -1915,34 +1902,34 @@ packages: dependency: transitive description: name: sqflite - sha256: "2d7299468485dca85efeeadf5d38986909c5eb0cd71fd3db2c2f000e6c9454bb" + sha256: e2297b1da52f127bc7a3da11439985d9b536f75070f3325e62ada69a5c585d03 url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.2" sqflite_android: dependency: transitive description: name: sqflite_android - sha256: "78f489aab276260cdd26676d2169446c7ecd3484bbd5fead4ca14f3ed4dd9ee3" + sha256: "2b3070c5fa881839f8b402ee4a39c1b4d561704d4ebbbcfb808a119bc2a1701b" url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.4.1" sqflite_common: dependency: transitive description: name: sqflite_common - sha256: "761b9740ecbd4d3e66b8916d784e581861fd3c3553eda85e167bc49fdb68f709" + sha256: "84731e8bfd8303a3389903e01fb2141b6e59b5973cacbb0929021df08dddbe8b" url: "https://pub.dev" source: hosted - version: "2.5.4+6" + version: "2.5.5" sqflite_darwin: dependency: transitive description: name: sqflite_darwin - sha256: "22adfd9a2c7d634041e96d6241e6e1c8138ca6817018afc5d443fef91dcefa9c" + sha256: "279832e5cde3fe99e8571879498c9211f3ca6391b0d818df4e17d9fff5c6ccb3" url: "https://pub.dev" source: hosted - version: "2.4.1+1" + version: "2.4.2" sqflite_platform_interface: dependency: transitive description: @@ -1979,18 +1966,18 @@ packages: dependency: transitive description: name: stack_trace - sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.12.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.4" stream_transform: dependency: transitive description: @@ -2003,10 +1990,10 @@ packages: dependency: transitive description: name: string_scanner - sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.1" styled_widget: dependency: "direct main" description: @@ -2027,26 +2014,26 @@ packages: dependency: "direct main" description: name: synchronized - sha256: "69fe30f3a8b04a0be0c15ae6490fc859a78ef4c43ae2dd5e8a623d45bfcf9225" + sha256: "0669c70faae6270521ee4f05bffd2919892d42d1276e6c495be80174b6bc0ef6" url: "https://pub.dev" source: hosted - version: "3.3.0+3" + version: "3.3.1" term_glyph: dependency: transitive description: name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.2" test_api: dependency: transitive description: name: test_api - sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted - version: "0.7.3" + version: "0.7.4" timing: dependency: transitive description: @@ -2235,10 +2222,10 @@ packages: dependency: transitive description: name: vm_service - sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b + sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" url: "https://pub.dev" source: hosted - version: "14.3.0" + version: "14.3.1" volume_controller: dependency: transitive description: @@ -2307,10 +2294,10 @@ packages: dependency: transitive description: name: win32 - sha256: daf97c9d80197ed7b619040e86c8ab9a9dad285e7671ee7390f9180cc828a51e + sha256: b89e6e24d1454e149ab20fbb225af58660f0c0bf4475544650700d8e2da54aef url: "https://pub.dev" source: hosted - version: "5.10.1" + version: "5.11.0" win32_registry: dependency: transitive description: @@ -2352,5 +2339,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.6.0 <4.0.0" + dart: ">=3.7.0 <4.0.0" flutter: ">=3.27.0" diff --git a/pubspec.yaml b/pubspec.yaml index 45afe24..34bbe47 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -59,7 +59,7 @@ dependencies: relative_time: ^5.0.0 image_picker: ^1.1.2 cross_file: ^0.3.4+2 - file_picker: ^8.1.6 # pinned due to compile failed on android, https://github.com/miguelpruivo/flutter_file_picker/issues/1643 + file_picker: ^9.0.0 # pinned due to compile failed on android, https://github.com/miguelpruivo/flutter_file_picker/issues/1643 croppy: ^1.3.1 flutter_expandable_fab: ^2.3.0 dropdown_button2: ^2.3.9