added visibility to save button in map and cleaned up db helper a bit

This commit is contained in:
Nico
2024-03-09 13:30:43 +01:00
parent 2ef12cac7f
commit 624bb38846
4 changed files with 35 additions and 31 deletions

View File

@@ -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)

View File

@@ -28,7 +28,6 @@ class _AddCamMainState extends State<AddCamMain> {
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<AddCamMain> {
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<AddCamMain> {
Map<String, dynamic> 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<AddCamMain> {
Map<String, dynamic> 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<AddCamMain> {
Map<String, dynamic> place = {
'CID': id.text,
'Rudel': rudelC.text,
'EUGrid': eugridC.text,
'Datum': datumS,
'NameVorname': nameVornameC.text,
'PLZOrt': plzOrtC.text,

View File

@@ -232,6 +232,7 @@ class StandortState extends State<Standort> {
List<Marker> markers = [];
LatLng? selectedPosition;
Position? updatedPosition;
bool saveVisible = false;
@override
Widget build(BuildContext context) {
@@ -239,28 +240,35 @@ class StandortState extends State<Standort> {
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<Standort> {
),
);
selectedPosition = latlng;
saveVisible = true;
});
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(

View File

@@ -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)');
}