From 9b1a502e3851234ba94299f95ad9af944b00c490 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sun, 1 Jun 2025 12:04:41 -0700 Subject: [PATCH] Validate server URL in settings --- lib/l10n/app_en.arb | 1 + lib/settings_screen.dart | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 34e89c5..ddb3c1c 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -10,6 +10,7 @@ "settingsButton": "Change settings", "idLabel": "Device identifier", "urlLabel": "Server URL", + "invalidUrlError": "Invalid URL", "accuracyLabel": "Location accuracy", "highAccuracyLabel": "High", "mediumAccuracyLabel": "Medium", diff --git a/lib/settings_screen.dart b/lib/settings_screen.dart index 750afae..5d271f8 100644 --- a/lib/settings_screen.dart +++ b/lib/settings_screen.dart @@ -67,6 +67,20 @@ class _SettingsScreenState extends State { ); if (result != null && result.isNotEmpty) { + if (!isInt && key == Preferences.url) { + final uri = Uri.tryParse(result); + if (uri == null || + uri.host.isEmpty || + !(uri.scheme == 'http' || uri.scheme == 'https')) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: + Text(AppLocalizations.of(context)!.invalidUrlError), + ), + ); + return; + } + } if (isInt) { final intValue = int.tryParse(result); if (intValue != null) {