From 978ea4790da8dccb323d9dd5b6a2677ee15ea197 Mon Sep 17 00:00:00 2001 From: Winston Lowe Date: Thu, 5 Feb 2026 13:46:05 -0800 Subject: [PATCH] Refactor GPX export constants to use lowercase naming convention and improve export function error handling --- lib/screens/settings_screen.dart | 10 +++++----- lib/utils/gpx_export.dart | 24 ++++++++++++------------ 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/lib/screens/settings_screen.dart b/lib/screens/settings_screen.dart index cbcbc0d..c5a307f 100644 --- a/lib/screens/settings_screen.dart +++ b/lib/screens/settings_screen.dart @@ -691,21 +691,21 @@ class _SettingsScreenState extends State { _gpxExport(GpxExport exporter) async { final l10n = context.l10n; final result = await exporter.exportGPX(); - // Implement GPX export functionality here + if(!mounted) return; switch (result) { - case GpxExportSuccess: + case gpxExportSuccess: ScaffoldMessenger.of( context, ).showSnackBar(SnackBar(content: Text(l10n.settings_gpxExportSuccess))); - case GpxExportNoContacts: + case gpxExportNoContacts: ScaffoldMessenger.of( context, ).showSnackBar(SnackBar(content: Text(l10n.settings_gpxExportNoContacts))); - case GpxExportNotAvailable: + case gpxExportNotAvailable: ScaffoldMessenger.of( context, ).showSnackBar(SnackBar(content: Text(l10n.settings_gpxExportNotAvailable))); - case GpxExportFailed: + case gpxExportFailed: ScaffoldMessenger.of( context, ).showSnackBar(SnackBar(content: Text(l10n.settings_gpxExportError))); diff --git a/lib/utils/gpx_export.dart b/lib/utils/gpx_export.dart index ae1c128..12c6e27 100644 --- a/lib/utils/gpx_export.dart +++ b/lib/utils/gpx_export.dart @@ -23,15 +23,15 @@ class ContactExport { }); } -const int GpxExportFailed = -1; -const int GpxExportSuccess = 1; -const int GpxExportNoContacts = 2; -const int GpxExportCancelled = 3; -const int GpxExportNotAvailable = 4; +const int gpxExportFailed = -1; +const int gpxExportSuccess = 1; +const int gpxExportNoContacts = 2; +const int gpxExportCancelled = 3; +const int gpxExportNotAvailable = 4; class GpxExport { - MeshCoreConnector _connector; - List _contacts = []; + final MeshCoreConnector _connector; + final List _contacts = []; GpxExport(this._connector); @@ -95,7 +95,7 @@ class GpxExport { Future exportGPX() async { if (_contacts.isEmpty) { debugPrint("No repeaters to export – nothing to share."); - return GpxExportNoContacts; + return gpxExportNoContacts; } try { @@ -145,13 +145,13 @@ class GpxExport { switch (result.status) { case ShareResultStatus.success: debugPrint('Share successful – user completed the action.'); - return GpxExportSuccess; + return gpxExportSuccess; case ShareResultStatus.dismissed: debugPrint('Share sheet was dismissed / cancelled by user.'); - return GpxExportCancelled; + return gpxExportCancelled; case ShareResultStatus.unavailable: debugPrint('Sharing is not available on this platform / context.'); - return GpxExportNotAvailable; + return gpxExportNotAvailable; } // Optional cleanup (uncomment if you don't want to keep the file) @@ -160,6 +160,6 @@ class GpxExport { debugPrint('Export or share failed: $e\n$stack'); // → here you could show a SnackBar / AlertDialog in real UI code } - return GpxExportFailed; + return gpxExportFailed; } } \ No newline at end of file