feat: Add URL launcher dependency and implement more info button in settings

This commit is contained in:
Janez T
2025-10-26 17:33:01 +01:00
parent cec092b8c0
commit 676f5341b6
23 changed files with 176 additions and 8 deletions

View File

@@ -392,6 +392,16 @@
"description": "Liste der verwendeten Technologien"
},
"moreInfo": "Mehr Info",
"@moreInfo": {
"description": "Beschriftung für Mehr Info-Button"
},
"learnMoreAbout": "Erfahren Sie mehr über MeshCore SAR",
"@learnMoreAbout": {
"description": "Beschreibung des Mehr-Info-Links"
},
"developer": "Entwickler",
"@developer": {
"description": "Überschrift des Entwickler-Bereichs"

View File

@@ -392,6 +392,16 @@
"description": "List of technologies used"
},
"moreInfo": "More Info",
"@moreInfo": {
"description": "More info button label"
},
"learnMoreAbout": "Learn more about MeshCore SAR",
"@learnMoreAbout": {
"description": "Learn more link description"
},
"developer": "Developer",
"@developer": {
"description": "Developer section header"

View File

@@ -392,6 +392,16 @@
"description": "Lista de tecnologías utilizadas"
},
"moreInfo": "Más información",
"@moreInfo": {
"description": "Etiqueta del botón Más información"
},
"learnMoreAbout": "Más información sobre MeshCore SAR",
"@learnMoreAbout": {
"description": "Descripción del enlace Más información"
},
"developer": "Desarrollador",
"@developer": {
"description": "Encabezado de la sección de desarrollador"

View File

@@ -392,6 +392,16 @@
"description": "Liste des technologies utilisées"
},
"moreInfo": "Plus d'infos",
"@moreInfo": {
"description": "Libellé du bouton Plus d'infos"
},
"learnMoreAbout": "En savoir plus sur MeshCore SAR",
"@learnMoreAbout": {
"description": "Description du lien En savoir plus"
},
"developer": "Développeur",
"@developer": {
"description": "En-tête de section Développeur"

View File

@@ -143,6 +143,10 @@
"technologiesList": "• Flutter za višeplatformski razvoj\n• BLE (Bluetooth Low Energy) za mesh mrežu\n• OpenStreetMap za kartografiju\n• Provider za upravljanje stanjem\n• SharedPreferences za lokalno pohranu",
"moreInfo": "Više informacija",
"learnMoreAbout": "Saznajte više o MeshCore SAR",
"developer": "Programer",
"packageName": "Ime paketa",

View File

@@ -392,6 +392,16 @@
"description": "Elenco delle tecnologie utilizzate"
},
"moreInfo": "Maggiori informazioni",
"@moreInfo": {
"description": "Etichetta del pulsante Maggiori informazioni"
},
"learnMoreAbout": "Ulteriori informazioni su MeshCore SAR",
"@learnMoreAbout": {
"description": "Descrizione del link Ulteriori informazioni"
},
"developer": "Sviluppatore",
"@developer": {
"description": "Intestazione sezione sviluppatore"

View File

@@ -534,6 +534,18 @@ abstract class AppLocalizations {
/// **'• Flutter for cross-platform development\n• BLE (Bluetooth Low Energy) for mesh networking\n• OpenStreetMap for mapping\n• Provider for state management\n• SharedPreferences for local storage'**
String get technologiesList;
/// More info button label
///
/// In en, this message translates to:
/// **'More Info'**
String get moreInfo;
/// Learn more link description
///
/// In en, this message translates to:
/// **'Learn more about MeshCore SAR'**
String get learnMoreAbout;
/// Developer section header
///
/// In en, this message translates to:

View File

@@ -243,6 +243,12 @@ class AppLocalizationsDe extends AppLocalizations {
String get technologiesList =>
'• Flutter für plattformübergreifende Entwicklung\n• BLE (Bluetooth Low Energy) für Mesh-Netzwerk\n• OpenStreetMap für Kartendarstellung\n• Provider für Zustandsverwaltung\n• SharedPreferences für lokale Speicherung';
@override
String get moreInfo => 'Mehr Info';
@override
String get learnMoreAbout => 'Erfahren Sie mehr über MeshCore SAR';
@override
String get developer => 'Entwickler';

View File

@@ -242,6 +242,12 @@ class AppLocalizationsEn extends AppLocalizations {
String get technologiesList =>
'• Flutter for cross-platform development\n• BLE (Bluetooth Low Energy) for mesh networking\n• OpenStreetMap for mapping\n• Provider for state management\n• SharedPreferences for local storage';
@override
String get moreInfo => 'More Info';
@override
String get learnMoreAbout => 'Learn more about MeshCore SAR';
@override
String get developer => 'Developer';

View File

@@ -243,6 +243,12 @@ class AppLocalizationsEs extends AppLocalizations {
String get technologiesList =>
'• Flutter para desarrollo multiplataforma\n• BLE (Bluetooth Low Energy) para redes mesh\n• OpenStreetMap para mapas\n• Provider para gestión de estado\n• SharedPreferences para almacenamiento local';
@override
String get moreInfo => 'Más información';
@override
String get learnMoreAbout => 'Más información sobre MeshCore SAR';
@override
String get developer => 'Desarrollador';

View File

@@ -244,6 +244,12 @@ class AppLocalizationsFr extends AppLocalizations {
String get technologiesList =>
'• Flutter pour le développement multiplateforme\n• BLE (Bluetooth Low Energy) pour réseau maillé\n• OpenStreetMap pour la cartographie\n• Provider pour la gestion d\'état\n• SharedPreferences pour le stockage local';
@override
String get moreInfo => 'Plus d\'infos';
@override
String get learnMoreAbout => 'En savoir plus sur MeshCore SAR';
@override
String get developer => 'Développeur';

View File

@@ -242,6 +242,12 @@ class AppLocalizationsHr extends AppLocalizations {
String get technologiesList =>
'• Flutter za višeplatformski razvoj\n• BLE (Bluetooth Low Energy) za mesh mrežu\n• OpenStreetMap za kartografiju\n• Provider za upravljanje stanjem\n• SharedPreferences za lokalno pohranu';
@override
String get moreInfo => 'Više informacija';
@override
String get learnMoreAbout => 'Saznajte više o MeshCore SAR';
@override
String get developer => 'Programer';

View File

@@ -243,6 +243,12 @@ class AppLocalizationsIt extends AppLocalizations {
String get technologiesList =>
'• Flutter per lo sviluppo multipiattaforma\n• BLE (Bluetooth Low Energy) per la rete mesh\n• OpenStreetMap per la mappatura\n• Provider per la gestione dello stato\n• SharedPreferences per l\'archiviazione locale';
@override
String get moreInfo => 'Maggiori informazioni';
@override
String get learnMoreAbout => 'Ulteriori informazioni su MeshCore SAR';
@override
String get developer => 'Sviluppatore';

View File

@@ -242,6 +242,12 @@ class AppLocalizationsSl extends AppLocalizations {
String get technologiesList =>
'• Flutter za večplatformni razvoj\n• BLE (Bluetooth Low Energy) za mesh omrežje\n• OpenStreetMap za kartografijo\n• Provider za upravljanje stanja\n• SharedPreferences za lokalno shranjevanje';
@override
String get moreInfo => 'Več informacij';
@override
String get learnMoreAbout => 'Več o MeshCore SAR';
@override
String get developer => 'Razvijalec';

View File

@@ -143,6 +143,10 @@
"technologiesList": "• Flutter za večplatformni razvoj\n• BLE (Bluetooth Low Energy) za mesh omrežje\n• OpenStreetMap za kartografijo\n• Provider za upravljanje stanja\n• SharedPreferences za lokalno shranjevanje",
"moreInfo": "Več informacij",
"learnMoreAbout": "Več o MeshCore SAR",
"developer": "Razvijalec",
"packageName": "Ime paketa",

View File

@@ -4,6 +4,7 @@ import 'package:package_info_plus/package_info_plus.dart';
import 'package:provider/provider.dart';
import 'package:geolocator/geolocator.dart';
import 'package:latlong2/latlong.dart';
import 'package:url_launcher/url_launcher.dart';
import '../providers/contacts_provider.dart';
import '../providers/messages_provider.dart';
import '../providers/app_provider.dart';
@@ -1099,6 +1100,16 @@ class _SettingsScreenState extends State<SettingsScreen> {
),
),
actions: [
TextButton.icon(
onPressed: () async {
final url = Uri.parse('https://dz0ny.dev/posts/meshcore-sar/');
if (await canLaunchUrl(url)) {
await launchUrl(url, mode: LaunchMode.externalApplication);
}
},
icon: const Icon(Icons.open_in_new),
label: Text(AppLocalizations.of(context)!.moreInfo),
),
TextButton(
onPressed: () => Navigator.pop(context),
child: Text(AppLocalizations.of(context)!.close),