From 624bb38846a7533f0b13a6480206486b7e1411aa Mon Sep 17 00:00:00 2001 From: Nico Date: Sat, 9 Mar 2024 13:30:43 +0100 Subject: [PATCH] added visibility to save button in map and cleaned up db helper a bit --- Todo.txt | 4 +-- lib/addCam/add_cam_main.dart | 5 ---- lib/addCam/cam_widgets.dart | 53 +++++++++++++++++++++--------------- lib/db_helper.dart | 4 +-- 4 files changed, 35 insertions(+), 31 deletions(-) diff --git a/Todo.txt b/Todo.txt index 9757696..c631f54 100644 --- a/Todo.txt +++ b/Todo.txt @@ -1,11 +1,11 @@ todo: TESTEN!! -In der Karte den save button erst zeigen nachdem marker gesetzt wurde maybe auch vorschläge aus templates in dropdown menüs anzeigen -clean db_helper eintrag in db wenn http response (in sent column) not to do: +clean db_helper +In der Karte den save button erst zeigen nachdem marker gesetzt wurde json string in csv und exportieren in text datei add settings to change name and bland Beim Ersten öffnen der App Zwangseingabe von Namen und Bundesland (nur lokal) diff --git a/lib/addCam/add_cam_main.dart b/lib/addCam/add_cam_main.dart index 80d85d5..18f321b 100644 --- a/lib/addCam/add_cam_main.dart +++ b/lib/addCam/add_cam_main.dart @@ -28,7 +28,6 @@ class _AddCamMainState extends State { TextEditingController id = TextEditingController(); TextEditingController rudelC = TextEditingController(); - TextEditingController eugridC = TextEditingController(); TextEditingController nameVornameC = TextEditingController(); TextEditingController plzOrtC = TextEditingController(); TextEditingController emailTelC = TextEditingController(); @@ -136,7 +135,6 @@ class _AddCamMainState extends State { if (widget.isTemplate && widget.templateData != null) { id.text = widget.templateData!['CID']; rudelC.text = widget.templateData!['Rudel']; - eugridC.text = widget.templateData!['EUGrid']; nameVornameC.text = widget.templateData!['NameVorname']; plzOrtC.text = widget.templateData!['PLZOrt']; emailTelC.text = widget.templateData!['EmailTel']; @@ -231,7 +229,6 @@ class _AddCamMainState extends State { Map place = { 'CID': id.text, 'Rudel': rudelC.text, - 'EUGrid': eugridC.text, 'Datum': datumS, 'NameVorname': nameVornameC.text, 'PLZOrt': plzOrtC.text, @@ -320,7 +317,6 @@ class _AddCamMainState extends State { Map templates = { 'CID': id.text, 'Rudel': rudelC.text, - 'EUGrid': eugridC.text, 'Datum': datumS, 'NameVorname': nameVornameC.text, 'PLZOrt': plzOrtC.text, @@ -369,7 +365,6 @@ class _AddCamMainState extends State { Map place = { 'CID': id.text, 'Rudel': rudelC.text, - 'EUGrid': eugridC.text, 'Datum': datumS, 'NameVorname': nameVornameC.text, 'PLZOrt': plzOrtC.text, diff --git a/lib/addCam/cam_widgets.dart b/lib/addCam/cam_widgets.dart index c334196..c52eff7 100644 --- a/lib/addCam/cam_widgets.dart +++ b/lib/addCam/cam_widgets.dart @@ -232,6 +232,7 @@ class StandortState extends State { List markers = []; LatLng? selectedPosition; Position? updatedPosition; + bool saveVisible = false; @override Widget build(BuildContext context) { @@ -239,28 +240,35 @@ class StandortState extends State { appBar: AppBar( title: Text(AppLocalizations.of(context)!.map), actions: [ - Text(AppLocalizations.of(context)!.saveMap), - TextButton( - onPressed: () { - if (selectedPosition != null) { - setState(() { - updatedPosition = Position( - longitude: selectedPosition!.longitude, - latitude: selectedPosition!.latitude, - timestamp: DateTime.now(), - accuracy: 0.0, - altitude: 0.0, - altitudeAccuracy: 0.0, - heading: 0.0, - headingAccuracy: 0.0, - speed: 0.0, - speedAccuracy: 0.0); - widget.onPositionChange(updatedPosition!); - }); - } - Navigator.pop(context); - }, - child: const Icon(Icons.save), + Visibility( + visible: saveVisible, + child: Row( + children: [ + Text(AppLocalizations.of(context)!.saveMap), + TextButton( + onPressed: () { + if (selectedPosition != null) { + setState(() { + updatedPosition = Position( + longitude: selectedPosition!.longitude, + latitude: selectedPosition!.latitude, + timestamp: DateTime.now(), + accuracy: 0.0, + altitude: 0.0, + altitudeAccuracy: 0.0, + heading: 0.0, + headingAccuracy: 0.0, + speed: 0.0, + speedAccuracy: 0.0); + widget.onPositionChange(updatedPosition!); + }); + } + Navigator.pop(context); + }, + child: const Icon(Icons.save), + ), + ], + ), ), ], ), @@ -296,6 +304,7 @@ class StandortState extends State { ), ); selectedPosition = latlng; + saveVisible = true; }); ScaffoldMessenger.of(context).showSnackBar(SnackBar( content: Text( diff --git a/lib/db_helper.dart b/lib/db_helper.dart index 574cbfe..2fac8bc 100644 --- a/lib/db_helper.dart +++ b/lib/db_helper.dart @@ -31,9 +31,9 @@ class DBHelper { // The function that helps _onCreatePlace(Database placeDB, int version) async { await placeDB.execute( - 'CREATE TABLE place (id INTEGER PRIMARY KEY, CID TEXT UNIQUE, Standort TEXT, Rudel TEXT, EUGrid TEXT, Datum TEXT, NameVorname TEXT, PLZOrt TEXT, EmailTel TEXT, BLand TEXT, Lkr TEXT, BeiOrt TEXT, OrtInfo TEXT, Status TEXT, STTyp TEXT, FFTyp TEXT, FotoFilm TEXT, MEZ TEXT, Platzung TEXT, KSchloNr TEXT, Bearsafe TEXT, KontDat TEXT, KontSum TEXT, AbbauDat TEXT, Auftrag TEXT, Absprachen TEXT, SonstBemerkungen TEXT, FKontakt1 TEXT, FKontakt2 TEXT, FKontakt3 TEXT, AltStOrt, AusVon TEXT, AusBis TEXT, KTage1 INTEGER, KTage2 INTEGER, ProtoAm TEXT, IntKomm TEXT, Sent INTEGER DEFAULT 0)'); + 'CREATE TABLE place (id INTEGER PRIMARY KEY, CID TEXT UNIQUE, Standort TEXT, Rudel TEXT, Datum DATE, NameVorname TEXT, PLZOrt TEXT, EmailTel TEXT, BLand TEXT, Lkr TEXT, BeiOrt TEXT, OrtInfo TEXT, Status TEXT, STTyp TEXT, FFTyp TEXT, FotoFilm TEXT, MEZ TEXT, Platzung TEXT, KSchloNr TEXT, Bearsafe TEXT, KontDat DATE, KontSum TEXT, AbbauDat DATE, Auftrag TEXT, Absprachen TEXT, SonstBemerkungen TEXT, FKontakt1 TEXT, FKontakt2 TEXT, FKontakt3 TEXT, AltStOrt, AusVon DATE, AusBis DATE, KTage1 INTEGER, KTage2 INTEGER, ProtoAm DATE, IntKomm TEXT, Sent INTEGER DEFAULT 0)'); await placeDB.execute( - 'CREATE TABLE templates (id INTEGER PRIMARY KEY, CID TEXT UNIQUE, Standort TEXT, Rudel TEXT, EUGrid TEXT, Datum TEXT, NameVorname TEXT, PLZOrt TEXT, EmailTel TEXT, BLand TEXT, Lkr TEXT, BeiOrt TEXT, OrtInfo TEXT, Status TEXT, STTyp TEXT, FFTyp TEXT, FotoFilm TEXT, MEZ TEXT, Platzung TEXT, KSchloNr TEXT, Bearsafe TEXT, KontDat TEXT, KontSum TEXT, AbbauDat TEXT, Auftrag TEXT, Absprachen TEXT, SonstBemerkungen TEXT, FKontakt1 TEXT, FKontakt2 TEXT, FKontakt3 TEXT, AltStOrt TEXT, AusVon TEXT, AusBis TEXT, KTage1 INTEGER, KTage2 INTEGER, ProtoAm TEXT, IntKomm TEXT)'); + 'CREATE TABLE templates (id INTEGER PRIMARY KEY, CID TEXT UNIQUE, Standort TEXT, Rudel TEXT, Datum DATE, NameVorname TEXT, PLZOrt TEXT, EmailTel TEXT, BLand TEXT, Lkr TEXT, BeiOrt TEXT, OrtInfo TEXT, Status TEXT, STTyp TEXT, FFTyp TEXT, FotoFilm TEXT, MEZ TEXT, Platzung TEXT, KSchloNr TEXT, Bearsafe TEXT, KontDat DATE, KontSum TEXT, AbbauDat DATE, Auftrag TEXT, Absprachen TEXT, SonstBemerkungen TEXT, FKontakt1 TEXT, FKontakt2 TEXT, FKontakt3 TEXT, AltStOrt TEXT, AusVon DATE, AusBis DATE, KTage1 INTEGER, KTage2 INTEGER, ProtoAm DATE, IntKomm TEXT)'); }