From 72f0aa7208cb52b91eb3c21855d4defbc87e1003 Mon Sep 17 00:00:00 2001 From: zjs81 Date: Sat, 14 Feb 2026 02:22:45 -0700 Subject: [PATCH] Update dependencies and improve code consistency across multiple files --- android/app/build.gradle.kts | 2 +- lib/screens/app_debug_log_screen.dart | 2 +- lib/screens/ble_debug_log_screen.dart | 2 +- lib/screens/channel_message_path_screen.dart | 2 +- lib/screens/path_trace_map.dart | 2 +- lib/screens/settings_screen.dart | 4 +- lib/services/background_service.dart | 16 +-- lib/services/notification_service.dart | 36 +++--- lib/widgets/qr_scanner_widget.dart | 2 +- pubspec.lock | 116 +++++++++---------- pubspec.yaml | 16 +-- windows/flutter/generated_plugins.cmake | 1 + 12 files changed, 98 insertions(+), 103 deletions(-) diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 740451b..e7d2b42 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -83,5 +83,5 @@ flutter { } dependencies { - coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4") + coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4") } diff --git a/lib/screens/app_debug_log_screen.dart b/lib/screens/app_debug_log_screen.dart index e8a0aa4..5372ea8 100644 --- a/lib/screens/app_debug_log_screen.dart +++ b/lib/screens/app_debug_log_screen.dart @@ -55,7 +55,7 @@ class AppDebugLogScreen extends StatelessWidget { child: hasEntries ? ListView.separated( itemCount: entries.length, - separatorBuilder: (_, __) => const Divider(height: 1), + separatorBuilder: (_, _) => const Divider(height: 1), itemBuilder: (context, index) { final entry = entries[index]; return ListTile( diff --git a/lib/screens/ble_debug_log_screen.dart b/lib/screens/ble_debug_log_screen.dart index 7675cae..7cebb76 100644 --- a/lib/screens/ble_debug_log_screen.dart +++ b/lib/screens/ble_debug_log_screen.dart @@ -100,7 +100,7 @@ class _BleDebugLogScreenState extends State { itemCount: showingFrames ? entries.length : rawEntries.length, - separatorBuilder: (_, __) => const Divider(height: 1), + separatorBuilder: (_, _) => const Divider(height: 1), itemBuilder: (context, index) { if (showingFrames) { final entry = entries[index]; diff --git a/lib/screens/channel_message_path_screen.dart b/lib/screens/channel_message_path_screen.dart index 8dea475..1b0544c 100644 --- a/lib/screens/channel_message_path_screen.dart +++ b/lib/screens/channel_message_path_screen.dart @@ -594,7 +594,7 @@ class _ChannelMessagePathMapScreenState : ListView.separated( padding: const EdgeInsets.symmetric(vertical: 4), itemCount: hops.length, - separatorBuilder: (_, __) => const Divider(height: 1), + separatorBuilder: (_, _) => const Divider(height: 1), itemBuilder: (context, index) { final hop = hops[index]; return ListTile( diff --git a/lib/screens/path_trace_map.dart b/lib/screens/path_trace_map.dart index 5b19c30..7677d0d 100644 --- a/lib/screens/path_trace_map.dart +++ b/lib/screens/path_trace_map.dart @@ -530,7 +530,7 @@ class _PathTraceMapScreenState extends State { child: ListView.separated( padding: const EdgeInsets.symmetric(vertical: 4), itemCount: pathTraceData.pathData.length + 1, - separatorBuilder: (_, __) => const Divider(height: 1), + separatorBuilder: (_, _) => const Divider(height: 1), itemBuilder: (context, index) { return Column( children: [ diff --git a/lib/screens/settings_screen.dart b/lib/screens/settings_screen.dart index 4943284..73376f0 100644 --- a/lib/screens/settings_screen.dart +++ b/lib/screens/settings_screen.dart @@ -742,7 +742,7 @@ class _SettingsScreenState extends State { ); } - _gpxExport( + Future _gpxExport( GpxExport exporter, String name, String description, @@ -782,7 +782,7 @@ class _SettingsScreenState extends State { } } - _buildExportCard(MeshCoreConnector connector) { + Widget _buildExportCard(MeshCoreConnector connector) { final l10n = context.l10n; return Card( child: Column( diff --git a/lib/services/background_service.dart b/lib/services/background_service.dart index 6599fbc..0edd393 100644 --- a/lib/services/background_service.dart +++ b/lib/services/background_service.dart @@ -1,4 +1,3 @@ -import 'dart:isolate'; import 'dart:io'; import 'package:flutter_foreground_task/flutter_foreground_task.dart'; @@ -15,18 +14,13 @@ class BackgroundService { channelDescription: 'Keeps MeshCore running in the background.', channelImportance: NotificationChannelImportance.LOW, priority: NotificationPriority.LOW, - iconData: const NotificationIconData( - resType: ResourceType.mipmap, - resPrefix: ResourcePrefix.ic, - name: 'launcher', - ), ), iosNotificationOptions: const IOSNotificationOptions( showNotification: false, playSound: false, ), - foregroundTaskOptions: const ForegroundTaskOptions( - interval: 5000, + foregroundTaskOptions: ForegroundTaskOptions( + eventAction: ForegroundTaskEventAction.repeat(5000), autoRunOnBoot: false, allowWifiLock: false, ), @@ -63,13 +57,13 @@ void startCallback() { class _MeshCoreTaskHandler extends TaskHandler { @override - void onStart(DateTime timestamp, SendPort? sendPort) {} + Future onStart(DateTime timestamp, TaskStarter starter) async {} @override - void onRepeatEvent(DateTime timestamp, SendPort? sendPort) {} + void onRepeatEvent(DateTime timestamp) {} @override - void onDestroy(DateTime timestamp, SendPort? sendPort) {} + Future onDestroy(DateTime timestamp, bool isTimeout) async {} @override void onNotificationButtonPressed(String id) {} diff --git a/lib/services/notification_service.dart b/lib/services/notification_service.dart index 57331aa..fc979c6 100644 --- a/lib/services/notification_service.dart +++ b/lib/services/notification_service.dart @@ -67,7 +67,7 @@ class NotificationService { try { await _notifications.initialize( - initSettings, + settings: initSettings, onDidReceiveNotificationResponse: _onNotificationTapped, ); _isInitialized = true; @@ -149,10 +149,10 @@ class NotificationService { ); await _notifications.show( - contactId?.hashCode ?? 0, - contactName, - message, - notificationDetails, + id: contactId?.hashCode ?? 0, + title: contactName, + body: message, + notificationDetails: notificationDetails, payload: 'message:$contactId', ); } @@ -194,10 +194,10 @@ class NotificationService { ); await _notifications.show( - contactId?.hashCode ?? DateTime.now().millisecondsSinceEpoch, - _l10n.notification_newTypeDiscovered(contactType), - contactName, - notificationDetails, + id: contactId?.hashCode ?? DateTime.now().millisecondsSinceEpoch, + title: _l10n.notification_newTypeDiscovered(contactType), + body: contactName, + notificationDetails: notificationDetails, payload: 'advert:$contactId', ); } @@ -248,10 +248,10 @@ class NotificationService { : preview; await _notifications.show( - channelIndex?.hashCode ?? DateTime.now().millisecondsSinceEpoch, - channelName, - body, - notificationDetails, + id: channelIndex?.hashCode ?? DateTime.now().millisecondsSinceEpoch, + title: channelName, + body: body, + notificationDetails: notificationDetails, payload: 'channel:$channelIndex', ); } @@ -285,7 +285,7 @@ class NotificationService { } Future cancel(int id) async { - await _notifications.cancel(id); + await _notifications.cancel(id: id); } // ───────────────────────────────────────────────────────────────── @@ -469,10 +469,10 @@ class NotificationService { const notificationDetails = NotificationDetails(android: androidDetails); await _notifications.show( - 'batch_summary'.hashCode, - _l10n.notification_activityTitle, - parts.join(', '), - notificationDetails, + id: 'batch_summary'.hashCode, + title: _l10n.notification_activityTitle, + body: parts.join(', '), + notificationDetails: notificationDetails, payload: 'batch', ); } diff --git a/lib/widgets/qr_scanner_widget.dart b/lib/widgets/qr_scanner_widget.dart index 4dc2ee5..5b6cf5e 100644 --- a/lib/widgets/qr_scanner_widget.dart +++ b/lib/widgets/qr_scanner_widget.dart @@ -156,7 +156,7 @@ class _QrScannerWidgetState extends State MobileScanner( controller: _controller, onDetect: _handleDetection, - errorBuilder: (context, error, child) { + errorBuilder: (context, error) { return _buildErrorWidget(context, error); }, ), diff --git a/pubspec.lock b/pubspec.lock index fc11656..09e9301 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -153,14 +153,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.0" + dart_polylabel2: + dependency: transitive + description: + name: dart_polylabel2 + sha256: "7eeab15ce72894e4bdba6a8765712231fc81be0bd95247de4ad9966abc57adc6" + url: "https://pub.dev" + source: hosted + version: "1.0.0" dbus: dependency: transitive description: name: dbus - sha256: "79e0c23480ff85dc68de79e2cd6334add97e48f7f4865d17686dd6ea81a47e8c" + sha256: d0c98dcd4f5169878b6cf8f6e0a52403a9dff371a3e2f019697accbf6f44a270 url: "https://pub.dev" source: hosted - version: "0.7.11" + version: "0.7.12" fake_async: dependency: transitive description: @@ -173,10 +181,10 @@ packages: dependency: transitive description: name: ffi - sha256: d07d37192dbf97461359c1518788f203b0c9102cfd2c35a716b823741219542c + sha256: "6d7fd89431262d8f3125e81b50d3847a091d846eafcd4fdb88dd06f36d705a45" url: "https://pub.dev" source: hosted - version: "2.1.5" + version: "2.2.0" file: dependency: transitive description: @@ -202,10 +210,10 @@ packages: dependency: "direct main" description: name: flutter_blue_plus - sha256: "399b3dbc15562ef59749f04e43a99ccbb91540022380d5f269aff3c2787534e4" + sha256: "88a65ead7dea67ddcc03e6ca846163c6b6cc09a2dcebdb8bb601fcd654ea9382" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" flutter_blue_plus_android: dependency: transitive description: @@ -218,10 +226,10 @@ packages: dependency: transitive description: name: flutter_blue_plus_darwin - sha256: d160a8128e3a016fa58dd65ab6dac05cbc73e0fa799a1f24211d041641ed63ba + sha256: "52b155d868e17c1c8ad85520a0912d447d92aedccb5a5e234d3edc98ebd1307a" url: "https://pub.dev" source: hosted - version: "8.1.0" + version: "8.1.1" flutter_blue_plus_linux: dependency: transitive description: @@ -250,10 +258,10 @@ packages: dependency: transitive description: name: flutter_blue_plus_winrt - sha256: "34be2d8e23d5881b46accebb0e71025f7d52869d72ea98b5082c20764e06aa80" + sha256: ed894f0ab341f4cece8fa33edc381d46424a7c5bfd0e841d933d0f8c34c86521 url: "https://pub.dev" source: hosted - version: "0.0.16" + version: "0.0.18" flutter_cache_manager: dependency: "direct main" description: @@ -266,18 +274,18 @@ packages: dependency: "direct main" description: name: flutter_foreground_task - sha256: "6cf10a27f5e344cd2ecad0752d3a5f4ec32846d82fda8753b3fe2480ebb832a3" + sha256: "48ea45056155a99fb30b15f14f4039a044d925bc85f381ed0b2d3b00a60b99de" url: "https://pub.dev" source: hosted - version: "6.5.0" + version: "9.2.0" flutter_launcher_icons: dependency: "direct dev" description: name: flutter_launcher_icons - sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea" + sha256: "10f13781741a2e3972126fae08393d3c4e01fa4cd7473326b94b72cf594195e7" url: "https://pub.dev" source: hosted - version: "0.13.1" + version: "0.14.4" flutter_linkify: dependency: "direct main" description: @@ -290,34 +298,42 @@ packages: dependency: "direct dev" description: name: flutter_lints - sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1" + sha256: "3105dc8492f6183fb076ccf1f351ac3d60564bff92e20bfc4af9cc1651f4e7e1" url: "https://pub.dev" source: hosted - version: "5.0.0" + version: "6.0.0" flutter_local_notifications: dependency: "direct main" description: name: flutter_local_notifications - sha256: ef41ae901e7529e52934feba19ed82827b11baa67336829564aeab3129460610 + sha256: "2b50e938a275e1ad77352d6a25e25770f4130baa61eaf02de7a9a884680954ad" url: "https://pub.dev" source: hosted - version: "18.0.1" + version: "20.1.0" flutter_local_notifications_linux: dependency: transitive description: name: flutter_local_notifications_linux - sha256: "8f685642876742c941b29c32030f6f4f6dacd0e4eaecb3efbb187d6a3812ca01" + sha256: dce0116868cedd2cdf768af0365fc37ff1cbef7c02c4f51d0587482e625868d0 url: "https://pub.dev" source: hosted - version: "5.0.0" + version: "7.0.0" flutter_local_notifications_platform_interface: dependency: transitive description: name: flutter_local_notifications_platform_interface - sha256: "6c5b83c86bf819cdb177a9247a3722067dd8cc6313827ce7c77a4b238a26fd52" + sha256: "23de31678a48c084169d7ae95866df9de5c9d2a44be3e5915a2ff067aeeba899" url: "https://pub.dev" source: hosted - version: "8.0.0" + version: "10.0.0" + flutter_local_notifications_windows: + dependency: transitive + description: + name: flutter_local_notifications_windows + sha256: e97a1a3016512437d9c0b12fae7d1491c3c7b9aa7f03a69b974308840656b02a + url: "https://pub.dev" + source: hosted + version: "2.0.1" flutter_localizations: dependency: "direct main" description: flutter @@ -327,10 +343,10 @@ packages: dependency: "direct main" description: name: flutter_map - sha256: "2ecb34619a4be19df6f40c2f8dce1591675b4eff7a6857bd8f533706977385da" + sha256: "391e7dc95cc3f5190748210a69d4cfeb5d8f84dcdfa9c3235d0a9d7742ccb3f8" url: "https://pub.dev" source: hosted - version: "7.0.2" + version: "8.2.2" flutter_test: dependency: "direct dev" description: flutter @@ -361,10 +377,10 @@ packages: dependency: transitive description: name: hooks - sha256: "5d309c86e7ce34cd8e37aa71cb30cb652d3829b900ab145e4d9da564b31d59f7" + sha256: "7a08a0d684cb3b8fb604b78455d5d352f502b68079f7b80b831c62220ab0a4f6" url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.1" http: dependency: "direct main" description: @@ -397,14 +413,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.20.2" - js: - dependency: transitive - description: - name: js - sha256: "53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc" - url: "https://pub.dev" - source: hosted - version: "0.7.2" json_annotation: dependency: transitive description: @@ -457,10 +465,10 @@ packages: dependency: transitive description: name: lints - sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7 + sha256: "12f842a479589fea194fe5c5a3095abc7be0c1f2ddfa9a0e76aed1dbd26a87df" url: "https://pub.dev" source: hosted - version: "5.1.1" + version: "6.1.0" lists: dependency: transitive description: @@ -529,10 +537,10 @@ packages: dependency: "direct main" description: name: mobile_scanner - sha256: "0b466a0a8a211b366c2e87f3345715faef9b6011c7147556ad22f37de6ba3173" + sha256: c6184bf2913dd66be244108c9c27ca04b01caf726321c44b0e7a7a1e32d41044 url: "https://pub.dev" source: hosted - version: "6.0.11" + version: "7.1.4" native_toolchain_c: dependency: transitive description: @@ -553,10 +561,10 @@ packages: dependency: transitive description: name: objective_c - sha256: "983c7fa1501f6dcc0cb7af4e42072e9993cb28d73604d25ebf4dab08165d997e" + sha256: "100a1c87616ab6ed41ec263b083c0ef3261ee6cd1dc3b0f35f8ddfa4f996fe52" url: "https://pub.dev" source: hosted - version: "9.2.5" + version: "9.3.0" octo_image: dependency: transitive description: @@ -569,10 +577,10 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: "16eee997588c60225bda0488b6dcfac69280a6b7a3cf02c741895dd370a02968" + sha256: f69da0d3189a4b4ceaeb1a3defb0f329b3b352517f52bed4290f83d4f06bc08d url: "https://pub.dev" source: hosted - version: "8.3.1" + version: "9.0.0" package_info_plus_platform_interface: dependency: transitive description: @@ -665,18 +673,10 @@ packages: dependency: "direct main" description: name: pointycastle - sha256: "4be0097fcf3fd3e8449e53730c631200ebc7b88016acecab2b0da2f0149222fe" + sha256: "92aa3841d083cc4b0f4709b5c74fd6409a3e6ba833ffc7dc6a8fee096366acf5" url: "https://pub.dev" source: hosted - version: "3.9.1" - polylabel: - dependency: transitive - description: - name: polylabel - sha256: "41b9099afb2aa6c1730bdd8a0fab1400d287694ec7615dd8516935fa3144214b" - url: "https://pub.dev" - source: hosted - version: "1.0.1" + version: "4.0.0" posix: dependency: transitive description: @@ -822,10 +822,10 @@ packages: dependency: transitive description: name: source_span - sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" + sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab" url: "https://pub.dev" source: hosted - version: "1.10.1" + version: "1.10.2" sqflite: dependency: transitive description: @@ -958,10 +958,10 @@ packages: dependency: transitive description: name: url_launcher_ios - sha256: cfde38aa257dae62ffe79c87fab20165dfdf6988c1d31b58ebf59b9106062aad + sha256: "580fe5dfb51671ae38191d316e027f6b76272b026370708c2d898799750a02b0" url: "https://pub.dev" source: hosted - version: "6.3.6" + version: "6.4.1" url_launcher_linux: dependency: transitive description: @@ -1030,10 +1030,10 @@ packages: dependency: "direct main" description: name: wakelock_plus - sha256: "61713aa82b7f85c21c9f4cd0a148abd75f38a74ec645fcb1e446f882c82fd09b" + sha256: "9296d40c9adbedaba95d1e704f4e0b434be446e2792948d0e4aa977048104228" url: "https://pub.dev" source: hosted - version: "1.3.3" + version: "1.4.0" wakelock_plus_platform_interface: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index fa3bd63..f5ceaaf 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -41,19 +41,19 @@ dependencies: provider: ^6.1.5+1 shared_preferences: ^2.2.2 uuid: ^4.3.3 - flutter_map: ^7.0.2 + flutter_map: ^8.2.2 latlong2: ^0.9.1 - flutter_local_notifications: ^18.0.1 + flutter_local_notifications: ^20.1.0 crypto: ^3.0.3 - pointycastle: ^3.7.4 + pointycastle: ^4.0.0 http: ^1.2.0 cached_network_image: ^3.4.1 flutter_cache_manager: ^3.4.1 - flutter_foreground_task: ^6.1.2 + flutter_foreground_task: ^9.2.0 wakelock_plus: ^1.2.8 characters: ^1.4.0 - package_info_plus: ^8.0.0 - mobile_scanner: ^6.0.0 # QR/barcode scanning + package_info_plus: ^9.0.0 + mobile_scanner: ^7.1.4 # QR/barcode scanning qr_flutter: ^4.1.0 # QR code generation url_launcher: ^6.3.0 # Launch URLs in system browser flutter_linkify: ^6.0.0 # Auto-detect and linkify URLs in text @@ -70,8 +70,8 @@ dev_dependencies: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - flutter_lints: ^5.0.0 - flutter_launcher_icons: ^0.13.1 + flutter_lints: ^6.0.0 + flutter_launcher_icons: ^0.14.4 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 571addb..4c358e7 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -9,6 +9,7 @@ list(APPEND FLUTTER_PLUGIN_LIST ) list(APPEND FLUTTER_FFI_PLUGIN_LIST + flutter_local_notifications_windows ) set(PLUGIN_BUNDLED_LIBRARIES)