From 9daf13ddc0460d065b274f2202ab70df881258a1 Mon Sep 17 00:00:00 2001 From: cogwheel <172976095+cogwheel0@users.noreply.github.com> Date: Wed, 3 Jun 2026 15:23:40 +0530 Subject: [PATCH] chore: update dependencies and refactor file picker usage - Bumped versions of several dependencies in pubspec.yaml, including `vad`, `speech_to_text`, `file_picker`, `package_info_plus`, `share_plus`, `flutter_local_notifications`, and `flutter_callkit_incoming`. - Refactored file picker usage in `ServerConnectionPage`, `FileAttachmentService`, and `TerminalTab` to streamline file selection logic and improve code clarity. - Enhanced `CallKitService` to ensure consistent handling of call accept and decline text. - Improved voice input service to utilize updated speech listening options for better performance. --- lib/core/services/callkit_service.dart | 4 +- .../auth/views/server_connection_page.dart | 14 +- .../services/file_attachment_service.dart | 57 ++-- .../chat/services/voice_input_service.dart | 12 +- .../native_call_surface_callkit.dart | 65 +++-- .../terminal/widgets/terminal_tab.dart | 21 +- pubspec.lock | 244 +++++++++--------- pubspec.yaml | 14 +- 8 files changed, 221 insertions(+), 210 deletions(-) diff --git a/lib/core/services/callkit_service.dart b/lib/core/services/callkit_service.dart index 733044d99..ee336ec78 100644 --- a/lib/core/services/callkit_service.dart +++ b/lib/core/services/callkit_service.dart @@ -181,8 +181,6 @@ class CallKitService { handle: handle, type: 0, // 0 = audio call duration: durationMs, - textAccept: l10n.acceptCall, - textDecline: l10n.declineCall, missedCallNotification: NotificationParams( showNotification: true, isShowCallback: true, @@ -202,6 +200,8 @@ class CallKitService { ringtonePath: 'system_ringtone_default', backgroundColor: '#0D1726', actionColor: '#4CAF50', + textAccept: l10n.acceptCall, + textDecline: l10n.declineCall, incomingCallNotificationChannelName: l10n.incomingCallChannelName, missedCallNotificationChannelName: l10n.missedCallChannelName, ), diff --git a/lib/features/auth/views/server_connection_page.dart b/lib/features/auth/views/server_connection_page.dart index 7d10ee84b..6575f8af9 100644 --- a/lib/features/auth/views/server_connection_page.dart +++ b/lib/features/auth/views/server_connection_page.dart @@ -648,19 +648,17 @@ class _ServerConnectionPageState extends ConsumerState { Future _pickMutualTlsFile({required bool isPrivateKey}) async { try { - final result = await FilePicker.pickFiles( - allowMultiple: false, + final file = await FilePicker.pickFile( type: FileType.custom, allowedExtensions: isPrivateKey ? const ['pem', 'key'] : const ['pem', 'crt', 'cer'], ); - if (result == null || result.files.isEmpty) { + if (file == null) { return; } - final file = result.files.single; final pemContent = await _readPickedPemFile(file); final validationError = _validatePickedPemContent( pemContent, @@ -695,10 +693,10 @@ class _ServerConnectionPageState extends ConsumerState { Future _readPickedPemFile(PlatformFile file) async { final l10n = AppLocalizations.of(context)!; - final bytes = - file.bytes ?? - (file.path != null ? await File(file.path!).readAsBytes() : null); - if (bytes == null || bytes.isEmpty) { + final bytes = file.path != null + ? await File(file.path!).readAsBytes() + : await file.readAsBytes(); + if (bytes.isEmpty) { throw Exception(l10n.mutualTlsFileReadFailed); } diff --git a/lib/features/chat/services/file_attachment_service.dart b/lib/features/chat/services/file_attachment_service.dart index 97c592497..e0d6ae469 100644 --- a/lib/features/chat/services/file_attachment_service.dart +++ b/lib/features/chat/services/file_attachment_service.dart @@ -72,6 +72,26 @@ String _extractMimeTypeFromDataUrl(String imageDataUrl) { return match?.group(1)?.toLowerCase() ?? 'image/png'; } +Future> _pickPlatformFiles({ + required bool allowMultiple, + FileType type = FileType.any, + List? allowedExtensions, +}) async { + if (allowMultiple) { + final result = await FilePicker.pickFiles( + type: type, + allowedExtensions: allowedExtensions, + ); + return result?.files ?? const []; + } + + final file = await FilePicker.pickFile( + type: type, + allowedExtensions: allowedExtensions, + ); + return file == null ? const [] : [file]; +} + /// Top-level function for base64 encoding in an isolate. String _encodeToDataUrlWorker(Map payload) { final bytes = payload['bytes'] as List; @@ -268,17 +288,17 @@ class FileAttachmentService { List? allowedExtensions, }) async { try { - final result = await FilePicker.pickFiles( + final files = await _pickPlatformFiles( allowMultiple: allowMultiple, type: allowedExtensions != null ? FileType.custom : FileType.any, allowedExtensions: allowedExtensions, ); - if (result == null || result.files.isEmpty) { + if (files.isEmpty) { return []; } - return result.files.where((file) => file.path != null).map((file) { + return files.where((file) => file.path != null).map((file) { final displayName = _deriveDisplayName( preferredName: file.name, filePath: file.path!, @@ -328,20 +348,14 @@ class FileAttachmentService { Future _pickImageWithFilePicker() async { try { - final result = await FilePicker.pickFiles( - allowMultiple: false, - type: FileType.image, - ); + final platformFile = await FilePicker.pickFile(type: FileType.image); - if (result != null && result.files.isNotEmpty) { - final platformFile = result.files.first; - if (platformFile.path != null) { - return _localAttachmentFromPath( - filePath: platformFile.path!, - preferredName: platformFile.name, - fallbackPrefix: 'photo', - ); - } + if (platformFile != null && platformFile.path != null) { + return _localAttachmentFromPath( + filePath: platformFile.path!, + preferredName: platformFile.name, + fallbackPrefix: 'photo', + ); } } catch (e) { DebugLogger.log( @@ -356,10 +370,7 @@ class FileAttachmentService { Future> _pickImagesWithFilePicker() async { try { - final result = await FilePicker.pickFiles( - allowMultiple: true, - type: FileType.image, - ); + final result = await FilePicker.pickFiles(type: FileType.image); if (result == null || result.files.isEmpty) { return []; @@ -614,17 +625,17 @@ class MockFileAttachmentService { List? allowedExtensions, }) async { try { - final result = await FilePicker.pickFiles( + final files = await _pickPlatformFiles( allowMultiple: allowMultiple, type: allowedExtensions != null ? FileType.custom : FileType.any, allowedExtensions: allowedExtensions, ); - if (result == null || result.files.isEmpty) { + if (files.isEmpty) { return []; } - return result.files.where((file) => file.path != null).map((file) { + return files.where((file) => file.path != null).map((file) { final displayName = _deriveDisplayName( preferredName: file.name, filePath: file.path!, diff --git a/lib/features/chat/services/voice_input_service.dart b/lib/features/chat/services/voice_input_service.dart index 6f4c097e2..6f939a144 100644 --- a/lib/features/chat/services/voice_input_service.dart +++ b/lib/features/chat/services/voice_input_service.dart @@ -334,7 +334,10 @@ class VoiceInputService { } // Start and stop quickly to test - await _speech.listen(onResult: (_) {}, localeId: _selectedLocaleId); + await _speech.listen( + onResult: (_) {}, + listenOptions: SpeechListenOptions(localeId: _selectedLocaleId), + ); await Future.delayed(const Duration(milliseconds: 100)); await _speech.stop(); @@ -488,11 +491,10 @@ class VoiceInputService { try { await _speech.listen( onResult: _handleSttResult, - localeId: _selectedLocaleId, - listenFor: _localRecognitionMaxDuration, - // Use user's silence duration setting for pause detection - pauseFor: pauseDuration, listenOptions: SpeechListenOptions( + localeId: _selectedLocaleId, + listenFor: _localRecognitionMaxDuration, + pauseFor: pauseDuration, listenMode: ListenMode.dictation, cancelOnError: false, partialResults: true, diff --git a/lib/features/chat/voice_call/infrastructure/native_call_surface_callkit.dart b/lib/features/chat/voice_call/infrastructure/native_call_surface_callkit.dart index 550490ed1..9efbefbd8 100644 --- a/lib/features/chat/voice_call/infrastructure/native_call_surface_callkit.dart +++ b/lib/features/chat/voice_call/infrastructure/native_call_surface_callkit.dart @@ -48,40 +48,39 @@ class NativeCallSurfaceCallkit implements NativeCallSurface { Future endAllCalls() => _service.endAllCalls(); NativeCallEvent? _mapEvent(CallEvent event) { - final body = event.body; - final callId = body is Map ? body['id']?.toString() : null; - - switch (event.event) { - case Event.actionCallEnded: - case Event.actionCallDecline: - return NativeCallEvent(type: NativeCallEventType.ended, callId: callId); - case Event.actionCallTimeout: - return NativeCallEvent( - type: NativeCallEventType.timeout, - callId: callId, - ); - case Event.actionCallConnected: - return NativeCallEvent( - type: NativeCallEventType.connected, - callId: callId, - ); - case Event.actionCallToggleMute: - final isMuted = body is Map ? body['isMuted'] == true : body == true; - return NativeCallEvent( - type: NativeCallEventType.muteToggled, - callId: callId, - isMuted: isMuted, - ); - case Event.actionCallToggleHold: - final isOnHold = body is Map ? body['isOnHold'] == true : body == true; - return NativeCallEvent( - type: NativeCallEventType.holdToggled, - callId: callId, - isOnHold: isOnHold, - ); - default: - return null; + if (event is CallEventActionCallEnded) { + return NativeCallEvent(type: NativeCallEventType.ended, callId: event.id); } + if (event is CallEventActionCallDecline) { + return NativeCallEvent(type: NativeCallEventType.ended, callId: event.id); + } + if (event is CallEventActionCallTimeout) { + return NativeCallEvent( + type: NativeCallEventType.timeout, + callId: event.id, + ); + } + if (event is CallEventActionCallConnected) { + return NativeCallEvent( + type: NativeCallEventType.connected, + callId: event.id, + ); + } + if (event is CallEventActionCallToggleMute) { + return NativeCallEvent( + type: NativeCallEventType.muteToggled, + callId: event.id, + isMuted: event.isMuted, + ); + } + if (event is CallEventActionCallToggleHold) { + return NativeCallEvent( + type: NativeCallEventType.holdToggled, + callId: event.id, + isOnHold: event.isOnHold, + ); + } + return null; } } diff --git a/lib/features/terminal/widgets/terminal_tab.dart b/lib/features/terminal/widgets/terminal_tab.dart index 4e7b85807..86e8f4a43 100644 --- a/lib/features/terminal/widgets/terminal_tab.dart +++ b/lib/features/terminal/widgets/terminal_tab.dart @@ -557,8 +557,9 @@ class _TerminalTabState extends ConsumerState }) async { final sessionScopeId = ref.read(terminalSessionScopeIdProvider); final normalizedPath = ensureTerminalDirectoryPath(path); - final failedToLoadFilesMessage = - AppLocalizations.of(context)!.terminalFailedToLoadFiles; + final failedToLoadFilesMessage = AppLocalizations.of( + context, + )!.terminalFailedToLoadFiles; if (mounted) { setState(() => _loadingFiles = true); @@ -601,8 +602,9 @@ class _TerminalTabState extends ConsumerState TerminalServerInfo server, ) async { final sessionScopeId = ref.read(terminalSessionScopeIdProvider); - final failedToLoadPortsMessage = - AppLocalizations.of(context)!.terminalFailedToLoadPorts; + final failedToLoadPortsMessage = AppLocalizations.of( + context, + )!.terminalFailedToLoadPorts; if (mounted) { setState(() => _loadingPorts = true); } @@ -842,8 +844,7 @@ class _TerminalTabState extends ConsumerState final l10n = AppLocalizations.of(context)!; try { - final result = await FilePicker.pickFiles(withData: true); - final pickedFile = result?.files.single; + final pickedFile = await FilePicker.pickFile(); if (pickedFile == null) { return; } @@ -932,12 +933,12 @@ class _TerminalTabState extends ConsumerState return File(pickedFile.path!); } - final bytes = pickedFile.bytes; - if (bytes == null) { + try { + final bytes = await pickedFile.readAsBytes(); + return _materializeTempFile(pickedFile.name, bytes); + } catch (_) { return null; } - - return _materializeTempFile(pickedFile.name, bytes); } Future _materializeTempFile(String fileName, List bytes) async { diff --git a/pubspec.lock b/pubspec.lock index 74168d801..3aed1626c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -229,10 +229,10 @@ packages: dependency: transitive description: name: code_assets - sha256: "83ccdaa064c980b5596c35dd64a8d3ecc68620174ab9b90b6343b753aa721687" + sha256: bf394f466ba9205f1812a0433b392d6af280f155f56651eda7c18cc32ed493b8 url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.2.1" code_builder: dependency: transitive description: @@ -349,10 +349,10 @@ packages: dependency: transitive description: name: dbus - sha256: d0c98dcd4f5169878b6cf8f6e0a52403a9dff371a3e2f019697accbf6f44a270 + sha256: "792974a4007974fbc5c1b5433eb2330a9db3e368c3f906253af4c007d0f49a91" url: "https://pub.dev" source: hosted - version: "0.7.12" + version: "0.7.13" dio: dependency: "direct main" description: @@ -393,6 +393,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.2.0" + ffi_leak_tracker: + dependency: transitive + description: + name: ffi_leak_tracker + sha256: "4093d4ef9ca06ffe2786e73bfb25e22aa92112b9bb4ec941f11e3e6b61489a97" + url: "https://pub.dev" + source: hosted + version: "0.1.2" file: dependency: transitive description: @@ -405,10 +413,10 @@ packages: dependency: "direct main" description: name: file_picker - sha256: f13a03000d942e476bc1ff0a736d2e9de711d2f89a95cd4c1d88f861c3348387 + sha256: fc83774ce5bd7ce08168333b5e53dbe9090ec04eb21e7aa7cd7bac921032c934 url: "https://pub.dev" source: hosted - version: "11.0.2" + version: "12.0.0-beta.5" file_selector_linux: dependency: transitive description: @@ -474,10 +482,10 @@ packages: dependency: "direct main" description: name: flutter_callkit_incoming - sha256: "3589deb8b71e43f2d520a9c8a5240243f611062a8b246cdca4b1fda01fbbf9b8" + sha256: "83beeb7b85bcdf9b410c724dba4b54bbc588f5723efe075fd4b53b162b32a014" url: "https://pub.dev" source: hosted - version: "3.0.0" + version: "3.1.1" flutter_driver: dependency: "direct main" description: flutter @@ -615,34 +623,42 @@ packages: dependency: "direct main" description: name: flutter_local_notifications - sha256: "0d9035862236fe38250fe1644d7ed3b8254e34a21b2c837c9f539fbb3bba5ef1" + sha256: "3c7aeaded67100c7eecaac46e40097952f1afb8562a3e8b974515ea9cdc5439a" url: "https://pub.dev" source: hosted - version: "21.0.0" + version: "22.0.0-dev.3" flutter_local_notifications_linux: dependency: transitive description: name: flutter_local_notifications_linux - sha256: e0f25e243c6c44c825bbbc6b2b2e76f7d9222362adcfe9fd780bf01923c840bd + sha256: ad8c60755a783d632ac17e42f03053dabbddfe5766f48b5340b1dac159f94d46 url: "https://pub.dev" source: hosted - version: "8.0.0" + version: "8.0.1-dev.1" flutter_local_notifications_platform_interface: dependency: transitive description: name: flutter_local_notifications_platform_interface - sha256: e7db3d5b49c2b7ecc68deba4aaaa67a348f92ee0fef34c8e4b4459dbef0d7307 + sha256: "21d45c421e4069d26fccfdd7934a5a5155f2ff352e1fbec0f9efbab3eb243646" url: "https://pub.dev" source: hosted - version: "11.0.0" + version: "12.0.0-dev.1" + flutter_local_notifications_web: + dependency: transitive + description: + name: flutter_local_notifications_web + sha256: "8868c009ed125ab2990fe7b5cf84c26b9f25132da40303cfa8a0682efb01922c" + url: "https://pub.dev" + source: hosted + version: "1.0.0-dev.2" flutter_local_notifications_windows: dependency: transitive description: name: flutter_local_notifications_windows - sha256: "3a2654ba104fbb52c618ebed9def24ef270228470718c43b3a6afcd5c81bef0c" + sha256: "2ec0b816f25b5cd59e7a40f88925dbf0fff30944736b71b6920bdd7a421b145e" url: "https://pub.dev" source: hosted - version: "3.0.0" + version: "3.1.0-dev.2" flutter_localizations: dependency: "direct main" description: flutter @@ -652,18 +668,18 @@ packages: dependency: "direct dev" description: name: flutter_native_splash - sha256: "4fb9f4113350d3a80841ce05ebf1976a36de622af7d19aca0ca9a9911c7ff002" + sha256: "9db4b80b044e9af17cc4b1272137fc7ace0054d879ef8210a76adc34aaf4cdff" url: "https://pub.dev" source: hosted - version: "2.4.7" + version: "2.4.8" flutter_plugin_android_lifecycle: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: "38d1c268de9097ff59cf0e844ac38759fc78f76836d37edad06fa21e182055a0" + sha256: "3854fe5e3bff0b113c658f260b90c95dea17c92db0f2addeac2e343dd9969785" url: "https://pub.dev" source: hosted - version: "2.0.34" + version: "2.0.35" flutter_riverpod: dependency: "direct main" description: @@ -676,26 +692,26 @@ packages: dependency: "direct main" description: name: flutter_secure_storage - sha256: "6848263f9744072d0977347c383fb8b57d9780319a6bf5238b5a2866a029de62" + sha256: "7686b1d6a29985dcbb808c59518226e603e3bfa7c0ddfd1a0d00e4cda77c868e" url: "https://pub.dev" source: hosted - version: "10.2.0" + version: "10.3.1" flutter_secure_storage_darwin: dependency: transitive description: name: flutter_secure_storage_darwin - sha256: "67cd1ff671add31dc13e45194398187a04bb63804b37fa47866afae296d73fcb" + sha256: "82329fa5cdf343773b1b6897dea959105a29f092454259edff92f9f6637e8149" url: "https://pub.dev" source: hosted - version: "0.3.1" + version: "0.3.2" flutter_secure_storage_linux: dependency: transitive description: name: flutter_secure_storage_linux - sha256: "2b5c76dce569ab752d55a1cee6a2242bcc11fdba927078fb88c503f150767cda" + sha256: a5f35ddab43cf5c8215d2feb4ce1957851f28c5c37e6f04335066a0602087bf5 url: "https://pub.dev" source: hosted - version: "3.0.0" + version: "3.0.1" flutter_secure_storage_platform_interface: dependency: transitive description: @@ -716,10 +732,10 @@ packages: dependency: transitive description: name: flutter_secure_storage_windows - sha256: "3b7c8e068875dfd46719ff57c90d8c459c87f2302ed6b00ff006b3c9fcad1613" + sha256: "471951813a97006d899db4948acc654a4f28c440083ea08178935ce20b173ec1" url: "https://pub.dev" source: hosted - version: "4.1.0" + version: "4.2.2" flutter_shaders: dependency: transitive description: @@ -835,10 +851,10 @@ packages: dependency: transitive description: name: geolocator_linux - sha256: d64112a205931926f4363bb6bd48f14cb38e7326833041d170615586cd143797 + sha256: b02993d59b753bf1967ed28862002841aec5cdd5090c1f495213b32ce488aced url: "https://pub.dev" source: hosted - version: "0.2.4" + version: "0.2.5" geolocator_platform_interface: dependency: transitive description: @@ -875,10 +891,10 @@ packages: dependency: "direct main" description: name: go_router - sha256: "92d8cee7c57dff0a6c409c05597b460002434eccf7424a712283225b3962d03f" + sha256: "5922b2861e2235a3504896f0d6fa07d84141b480cf52eecd2f42cd25585a9e8a" url: "https://pub.dev" source: hosted - version: "17.2.3" + version: "17.3.0" graphs: dependency: transitive description: @@ -931,10 +947,10 @@ packages: dependency: transitive description: name: hooks - sha256: "025f060e86d2d4c3c47b56e33caf7f93bf9283340f26d23424ebcfccf34f621e" + sha256: "9a62a50b50b769a737bc0a8ff381f333529df3ab746b2f6b02e83760231455ba" url: "https://pub.dev" source: hosted - version: "1.0.3" + version: "2.0.2" html: dependency: transitive description: @@ -979,10 +995,10 @@ packages: dependency: transitive description: name: image - sha256: f9881ff4998044947ec38d098bc7c8316ae1186fa786eddffdb867b9bc94dfce + sha256: "6300175e00616bbc832e2fc91bfa4d776af5402c81c7151bee6905bb08473c52" url: "https://pub.dev" source: hosted - version: "4.8.0" + version: "4.9.1" image_picker: dependency: "direct main" description: @@ -995,10 +1011,10 @@ packages: dependency: transitive description: name: image_picker_android - sha256: d5b3e1774af29c9ab00103afb0d4614070f924d2e0057ac867ec98800114793f + sha256: "6f3a1995eafb000333174fae92202622033b0ee7fd917a6cd3730295264df84a" url: "https://pub.dev" source: hosted - version: "0.8.13+17" + version: "0.8.13+19" image_picker_for_web: dependency: transitive description: @@ -1099,10 +1115,10 @@ packages: dependency: "direct main" description: name: jovial_svg - sha256: "99e9c3afcf7371ae38083ad52de23677d6d751f46150c3c6ae842e009e84d9f0" + sha256: "53d5ef08fafb28c56131bfd83894221597f522c324fb0f0e6fcbfdcae3b0867d" url: "https://pub.dev" source: hosted - version: "1.1.29" + version: "1.1.30" json_annotation: dependency: "direct main" description: @@ -1239,14 +1255,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.5" - native_toolchain_c: - dependency: transitive - description: - name: native_toolchain_c - sha256: "6ba77bb18063eebe9de401f5e6437e95e1438af0a87a3a39084fbd37c90df572" - url: "https://pub.dev" - source: hosted - version: "0.17.6" nm: dependency: transitive description: @@ -1267,10 +1275,10 @@ packages: dependency: transitive description: name: objective_c - sha256: "100a1c87616ab6ed41ec263b083c0ef3261ee6cd1dc3b0f35f8ddfa4f996fe52" + sha256: "6cb691c686fa2838c6deb34980d426145c2a5d537491cb83d463c33cdbc726ed" url: "https://pub.dev" source: hosted - version: "9.3.0" + version: "9.4.1" octo_image: dependency: transitive description: @@ -1291,18 +1299,18 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: "468c26b4254ab01979fa5e4a98cb343ea3631b9acee6f21028997419a80e1a20" + sha256: "4bf625947f6c7713ee242296a682e23e44823c09cf9d79e4f1238923c92db852" url: "https://pub.dev" source: hosted - version: "9.0.1" + version: "10.1.0" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface - sha256: "202a487f08836a592a6bd4f901ac69b3a8f146af552bbd14407b6b41e1c3f086" + sha256: db762cb2f4f25ee60fb6359773861b0f199e00b90d237bd85a76a1e806b46ef4 url: "https://pub.dev" source: hosted - version: "3.2.1" + version: "4.1.0" path: dependency: "direct main" description: @@ -1367,22 +1375,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.0" - pedantic: - dependency: transitive - description: - name: pedantic - sha256: "67fc27ed9639506c856c840ccce7594d0bdcd91bc8d53d6e52359449a1d50602" - url: "https://pub.dev" - source: hosted - version: "1.11.1" permission_handler: dependency: "direct main" description: name: permission_handler - sha256: bc917da36261b00137bbc8896bf1482169cd76f866282368948f032c8c1caae1 + sha256: fe54465bcc62a4564c6e4db337bbaded6c0c0fa6e10487414436d163114784f6 url: "https://pub.dev" source: hosted - version: "12.0.1" + version: "12.0.3" permission_handler_android: dependency: transitive description: @@ -1395,10 +1395,10 @@ packages: dependency: transitive description: name: permission_handler_apple - sha256: f000131e755c54cf4d84a5d8bd6e4149e262cc31c5a8b1d698de1ac85fa41023 + sha256: e20daf680eef1ca62ffe8c8c526b778cc386d50137c77ac71c8ec9c88c13fb9d url: "https://pub.dev" source: hosted - version: "9.4.7" + version: "9.4.9" permission_handler_html: dependency: transitive description: @@ -1499,10 +1499,10 @@ packages: dependency: transitive description: name: quick_actions_android - sha256: "6fbdda87fbedd0602b91f35d870c2cbcb6d053bc863efb76c6e7f60f1d8e3fd6" + sha256: af50d52d882a0f520c4be082636b5177b3de239bd468857d5da0b5a6eec61e07 url: "https://pub.dev" source: hosted - version: "1.0.30" + version: "1.0.32" quick_actions_ios: dependency: transitive description: @@ -1531,50 +1531,50 @@ packages: dependency: "direct main" description: name: record - sha256: d5b6b334f3ab02460db6544e08583c942dbf23e3504bf1e14fd4cbe3d9409277 + sha256: "10911465138fafacef459a780564e883e01bd48eabf87ab20543684884492870" url: "https://pub.dev" source: hosted - version: "6.2.0" + version: "6.2.1" record_android: dependency: transitive description: name: record_android - sha256: "94783f08403aed33ffb68797bf0715b0812eb852f3c7985644c945faea462ba1" + sha256: eb1732e42d0d2a1895b8db86e4fc917287e6d8491b6ed59918aea8bed6c69de4 url: "https://pub.dev" source: hosted - version: "1.5.1" + version: "1.5.2" record_ios: dependency: transitive description: name: record_ios - sha256: "8df7c136131bd05efc19256af29b2ba6ccc000ccc2c80d4b6b6d7a8d21a3b5a9" + sha256: c051fb48edd7a0e265daafb9108730dc827c27b551728a3fdfb3ef69efd89c73 url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.2.1" record_linux: dependency: transitive description: name: record_linux - sha256: c31a35cc158cd666fc6395f7f56fc054f31685571684be6b97670a27649ce5c7 + sha256: "31181787bf7eccb0e298835836b69b3cd0a903863b75d70e937de3dec71cd8f3" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.3.1" record_macos: dependency: transitive description: name: record_macos - sha256: "084902e63fc9c0c224c29203d6c75f0bdf9b6a40536c9d916393c8f4c4256488" + sha256: cfe1b61435e27db418bf513dc36820d10c9f7eb1843786c2c9a52e07e2f4f627 url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.2" record_platform_interface: dependency: transitive description: name: record_platform_interface - sha256: "8a81dbc4e14e1272a285bbfef6c9136d070a47d9b0d1f40aa6193516253ee2f6" + sha256: "8e56cbe06c6984137fb86132ff03459f29938d927496d9b2d0962e2d6345d488" url: "https://pub.dev" source: hosted - version: "1.5.0" + version: "1.6.0" record_use: dependency: transitive description: @@ -1651,18 +1651,18 @@ packages: dependency: "direct main" description: name: share_plus - sha256: "223873d106614442ea6f20db5a038685cc5b32a2fba81cdecaefbbae0523f7fa" + sha256: a857d8b1479250aff6b57a51b2c02d31ca05848d441817c43f1640c885c286c0 url: "https://pub.dev" source: hosted - version: "12.0.2" + version: "13.1.0" share_plus_platform_interface: dependency: transitive description: name: share_plus_platform_interface - sha256: "88023e53a13429bd65d8e85e11a9b484f49d4c190abbd96c7932b74d6927cc9a" + sha256: "7f7ae28cf400d13f811e297ff37742dba83b79e0a6f5dce14eec0248274e6ce9" url: "https://pub.dev" source: hosted - version: "6.1.0" + version: "7.1.0" shared_preferences: dependency: "direct main" description: @@ -1675,10 +1675,10 @@ packages: dependency: transitive description: name: shared_preferences_android - sha256: e8d4762b1e2e8578fc4d0fd548cebf24afd24f49719c08974df92834565e2c53 + sha256: a2c49fc1fed7140cadd892d765bd47edbe4ac0b9c7e7e3c493dcb58126f99cf0 url: "https://pub.dev" source: hosted - version: "2.4.23" + version: "2.4.25" shared_preferences_foundation: dependency: transitive description: @@ -1816,66 +1816,66 @@ packages: dependency: "direct main" description: name: speech_to_text - sha256: c07557664974afa061f221d0d4186935bea4220728ea9446702825e8b988db04 + sha256: "75587f7400f485fdf166beacd471549d98fe5d58e634f708916bb65dec05d6a4" url: "https://pub.dev" source: hosted - version: "7.3.0" + version: "7.4.0" speech_to_text_platform_interface: dependency: transitive description: name: speech_to_text_platform_interface - sha256: a1935847704e41ee468aad83181ddd2423d0833abe55d769c59afca07adb5114 + sha256: a7e16e02853853ed7534ac2bde9a1c4f39c8879970a7974ac6ff832d4bdaa4b0 url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.4.0" speech_to_text_windows: dependency: transitive description: name: speech_to_text_windows - sha256: "2c9846d18253c7bbe059a276297ef9f27e8a2745dead32192525beb208195072" + sha256: "2d1d10565b23262386b453b33656299608dc7a66784453735d6c1318f13f44d7" url: "https://pub.dev" source: hosted - version: "1.0.0+beta.8" + version: "1.0.1" sqflite: dependency: transitive description: name: sqflite - sha256: "564cfed0746fe53140c23b70b308e045c3b31f17778f2f326ccb7d804ea0250a" + sha256: "58a799e6ac17dd32fbab93813d39ed835a75ccc0f8f85b8955fe318c6712b082" url: "https://pub.dev" source: hosted - version: "2.4.2+1" + version: "2.4.3" sqflite_android: dependency: transitive description: name: sqflite_android - sha256: "881e28efdcc9950fd8e9bb42713dcf1103e62a2e7168f23c9338d82db13dec40" + sha256: d0548f9d7422a2dae99ec6f8b0a3074463b132d216fa5ba0d230eeefc901983b url: "https://pub.dev" source: hosted - version: "2.4.2+3" + version: "2.4.3" sqflite_common: dependency: transitive description: name: sqflite_common - sha256: f8a08a13fb8f0f8c590df89d745000bed44a673ed94bac846739e1a016875c21 + sha256: cce558075afe2a83f3fd7fc123acd6b090683e4f23910d44fbb31ecd7800b014 url: "https://pub.dev" source: hosted - version: "2.5.7" + version: "2.5.9" sqflite_darwin: dependency: transitive description: name: sqflite_darwin - sha256: "279832e5cde3fe99e8571879498c9211f3ca6391b0d818df4e17d9fff5c6ccb3" + sha256: "164a5d73ab87a134566057219988bafde837029a64264e61f1f04376ef3cfcd2" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.4.3" sqflite_platform_interface: dependency: transitive description: name: sqflite_platform_interface - sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920" + sha256: f84939f84350d92d04416f8bc4dc52d3896aec7716cc9e80cf0146342139dc50 url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.4.1" stack_trace: dependency: transitive description: @@ -1937,10 +1937,10 @@ packages: dependency: transitive description: name: synchronized - sha256: "63896c27e81b28f8cb4e69ead0d3e8f03f1d1e5fc531a3e579cabed6a2c7c9e5" + sha256: "93b153dcb6a26dcddee6ca087dd634b53e38c10b5aa163e8e49501a776456153" url: "https://pub.dev" source: hosted - version: "3.4.0+1" + version: "3.4.1" term_glyph: dependency: transitive description: @@ -2009,10 +2009,10 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: "3bb000251e55d4a209aa0e2e563309dc9bb2befea2295fd0cec1f51760aac572" + sha256: b413d49b73867ac08dd2f9890efd3cc11f2a0e577618d50843440a1fb3776c32 url: "https://pub.dev" source: hosted - version: "6.3.29" + version: "6.3.32" url_launcher_ios: dependency: transitive description: @@ -2073,18 +2073,18 @@ packages: dependency: "direct main" description: name: vad - sha256: ef6c8b12c5af7a6a519ff5684f074b8a2ac00c434705f544af379ea77bccd258 + sha256: "0a0ad600e3dbbfdc241b3f1404c9b3926be3cd8dc1ca51ae5d2fdb311ab8bb7e" url: "https://pub.dev" source: hosted - version: "0.0.7+1" + version: "0.0.8" vector_graphics: dependency: transitive description: name: vector_graphics - sha256: "4d35a36400983c3457c289d4d553b5308f506ea84f7e51c7a564651b5525209a" + sha256: "2306c03da2ba81724afeb589c351ebbc0aa7d86005925be8f8735856dbe5e42d" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.2" vector_graphics_codec: dependency: transitive description: @@ -2097,10 +2097,10 @@ packages: dependency: transitive description: name: vector_graphics_compiler - sha256: "98e7e94de127b46a86ef46197fff84ff99f3d3b80a708390d717ad731efef598" + sha256: "7ee12e6dffe0fc8e755179d6d91b3b34f5924223fc104d85572ef9180d73d172" url: "https://pub.dev" source: hosted - version: "1.2.2" + version: "1.2.5" vector_math: dependency: transitive description: @@ -2121,10 +2121,10 @@ packages: dependency: "direct main" description: name: wakelock_plus - sha256: ddf3db70eaa10c37558ff817519b85d527dbd21034fd5d8e1c2e85f31588f1c1 + sha256: "824c5bba0f800e86d32e57d3d1843c531f090005cc89d9a837933e6601093d53" url: "https://pub.dev" source: hosted - version: "1.5.2" + version: "1.6.1" wakelock_plus_platform_interface: dependency: transitive description: @@ -2193,10 +2193,10 @@ packages: dependency: transitive description: name: webview_flutter_android - sha256: ad5182eff9a550925330cb9f0cb038eddfdd5712aba8b77aa0f0400e50f6e688 + sha256: e37e565ed17605a4dbf3ad9c109afb06523e268963e8a9748137e6d8ecd9c955 url: "https://pub.dev" source: hosted - version: "4.12.0" + version: "4.12.2" webview_flutter_platform_interface: dependency: transitive description: @@ -2225,10 +2225,10 @@ packages: dependency: transitive description: name: win32 - sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e + sha256: ba6f4bba816c8d7e3c1580e170f3786d216951cc6b94babc3b814c08d2cb2738 url: "https://pub.dev" source: hosted - version: "5.15.0" + version: "6.3.0" xdg_directories: dependency: transitive description: @@ -2241,10 +2241,10 @@ packages: dependency: transitive description: name: xml - sha256: "971043b3a0d3da28727e40ed3e0b5d18b742fa5a68665cca88e74b7876d5e025" + sha256: "67f0aff7be013d107995e9b75bf4e7f2c3ef2dfdb2c8e68024bba0a7fd5756a4" url: "https://pub.dev" source: hosted - version: "6.6.1" + version: "7.0.1" xterm: dependency: "direct main" description: @@ -2278,5 +2278,5 @@ packages: source: hosted version: "0.0.6" sdks: - dart: ">=3.11.0 <4.0.0" - flutter: ">=3.41.0" + dart: ">=3.12.0 <4.0.0" + flutter: ">=3.44.0" diff --git a/pubspec.yaml b/pubspec.yaml index 0870f15c1..4f9f3ff46 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -43,14 +43,14 @@ dependencies: flutter_animate: ^4.5.0 # Platform Features - vad: ^0.0.7+1 - speech_to_text: ^7.3.0 + vad: ^0.0.8 + speech_to_text: ^7.4.0 record: ^6.2.0 flutter_tts: ^4.2.5 audio_session: ^0.2.2 permission_handler: ^12.0.1 image_picker: ^1.2.0 - file_picker: ^11.0.2 + file_picker: ^12.0.0-beta.5 flutter_image_compress: ^2.1.0 path_provider: ^2.1.4 @@ -58,7 +58,7 @@ dependencies: path: ^1.9.0 uuid: ^4.5.0 crypto: ^3.0.3 - package_info_plus: ^9.0.1 + package_info_plus: ^10.1.0 url_launcher: ^6.3.0 intl: ^0.20.2 @@ -67,13 +67,13 @@ dependencies: json_annotation: ^4.9.0 freezed_annotation: ^3.0.0 wakelock_plus: ^1.4.0 - share_plus: ^12.0.0 + share_plus: ^13.1.0 riverpod_annotation: ^4.0.0 - flutter_local_notifications: ^21.0.0 + flutter_local_notifications: ^22.0.0-dev.3 connectivity_plus: ^7.0.0 flutter_cache_manager: ^3.4.1 http: ^1.5.0 - flutter_callkit_incoming: ^3.0.0 + flutter_callkit_incoming: ^3.1.1 quick_actions: 1.1.0 html_unescape: ^2.0.0 home_widget: ^0.9.2