fixed the location error

the one where no toast is shown
This commit is contained in:
Nico
2025-05-09 23:32:40 +02:00
parent fb0cf85d11
commit 9879809857
3 changed files with 170 additions and 259 deletions

View File

@@ -35,30 +35,7 @@ class AddCamMain extends StatefulWidget {
class _AddCamMainState extends State<AddCamMain> { class _AddCamMainState extends State<AddCamMain> {
// var declaration // var declaration
int currentStep = 0; int currentStep = 0;
// bool isTemplate = false;
// TextEditingController cid = TextEditingController();
// TextEditingController rudelC = TextEditingController();
// TextEditingController adresse1C = TextEditingController();
// TextEditingController adresse2C = TextEditingController();
// TextEditingController adresse3C = TextEditingController();
// TextEditingController bLandC = TextEditingController();
// TextEditingController lkrC = TextEditingController();
// TextEditingController beiOrtC = TextEditingController();
// TextEditingController ortInfoC = TextEditingController();
// TextEditingController ffTypC = TextEditingController();
// TextEditingController kSchloNrC = TextEditingController();
// TextEditingController auftragC = TextEditingController();
// TextEditingController kontAbspC = TextEditingController();
// TextEditingController sonstBemC = TextEditingController();
// TextEditingController fKontakt1C = TextEditingController();
// TextEditingController fKontakt2C = TextEditingController();
// TextEditingController fKontakt3C = TextEditingController();
// TextEditingController standortC = TextEditingController();
// TextEditingController kTage1C = TextEditingController();
// TextEditingController kTage2C = TextEditingController();
// TextEditingController intKommC = TextEditingController();
// TextEditingController betreuungC = TextEditingController();
String selectedStatus = 'aktiv'; String selectedStatus = 'aktiv';
String selectedFotoFilm = 'Foto'; String selectedFotoFilm = 'Foto';
@@ -84,94 +61,144 @@ class _AddCamMainState extends State<AddCamMain> {
Map<String, Map<String, dynamic>> rmap = { Map<String, Map<String, dynamic>> rmap = {
// Step 1 // Step 1
"Standort": { "controller": TextEditingController(), "required": true, }, "Standort": {
"Status": { "controller": TextEditingController(), "required": true, }, "controller": TextEditingController(),
"Betreuung": { "controller": TextEditingController(), "required": false, }, "required": true,
"CID": { "controller": TextEditingController(), "required": true, }, },
"FFTyp": { "controller": TextEditingController(), "required": true, }, "Status": {
"MEZ": { "controller": TextEditingController(), "required": true, }, "controller": TextEditingController(),
"KSchloNr": { "controller": TextEditingController(), "required": false, }, "required": true,
"Rudel": { "controller": TextEditingController(), "required": true, }, },
"Betreuung": {
"controller": TextEditingController(),
"required": false,
},
"CID": {
"controller": TextEditingController(),
"required": true,
},
"FFTyp": {
"controller": TextEditingController(),
"required": true,
},
"MEZ": {
"controller": TextEditingController(),
"required": true,
},
"KSchloNr": {
"controller": TextEditingController(),
"required": false,
},
"Rudel": {
"controller": TextEditingController(),
"required": true,
},
// Step 2 // Step 2
"DECLNG": { "controller": TextEditingController(), "required": false, }, "DECLNG": {
"DECLAT": { "controller": TextEditingController(), "required": false, }, "controller": TextEditingController(),
"BLand": { "controller": TextEditingController(), "required": true, }, "required": false,
"Lkr": { "controller": TextEditingController(), "required": true, }, },
"BeiOrt": { "controller": TextEditingController(), "required": true, }, "DECLAT": {
"OrtInfo": { "controller": TextEditingController(), "required": false, }, "controller": TextEditingController(),
"Platzung": { "controller": TextEditingController(), "required": true, }, "required": false,
},
"BLand": {
"controller": TextEditingController(),
"required": true,
},
"Lkr": {
"controller": TextEditingController(),
"required": true,
},
"BeiOrt": {
"controller": TextEditingController(),
"required": true,
},
"OrtInfo": {
"controller": TextEditingController(),
"required": false,
},
"Platzung": {
"controller": TextEditingController(),
"required": true,
},
// Step 3 // Step 3
"Datum": { "controller": TextEditingController(), "required": false, }, "Datum": {
"KontDat": { "controller": TextEditingController(), "required": false, }, "controller": TextEditingController(),
"KTage1": { "controller": TextEditingController(), "required": true, }, "required": false,
"KTage2": { "controller": TextEditingController(), "required": true, }, },
"AbbauDat": { "controller": TextEditingController(), "required": false, }, "KontDat": {
"Auftrag": { "controller": TextEditingController(), "required": false, }, "controller": TextEditingController(),
"KontAbsp": { "controller": TextEditingController(), "required": false, }, "required": false,
"SonstBem": { "controller": TextEditingController(), "required": false, }, },
"KTage1": {
"controller": TextEditingController(),
"required": true,
},
"KTage2": {
"controller": TextEditingController(),
"required": true,
},
"AbbauDat": {
"controller": TextEditingController(),
"required": false,
},
"Auftrag": {
"controller": TextEditingController(),
"required": false,
},
"KontAbsp": {
"controller": TextEditingController(),
"required": false,
},
"SonstBem": {
"controller": TextEditingController(),
"required": false,
},
// Step 4 // Step 4
"Adresse1": { "controller": TextEditingController(), "required": true, }, "Adresse1": {
"Adresse2": { "controller": TextEditingController(), "required": false, }, "controller": TextEditingController(),
"Adresse3": { "controller": TextEditingController(), "required": false, }, "required": true,
"FKontakt1": { "controller": TextEditingController(), "required": false, }, },
"FKontakt2": { "controller": TextEditingController(), "required": false, }, "Adresse2": {
"FKontakt3": { "controller": TextEditingController(), "required": false, }, "controller": TextEditingController(),
"IntKomm": { "controller": TextEditingController(), "required": false, }, "required": false,
},
"Adresse3": {
"controller": TextEditingController(),
"required": false,
},
"FKontakt1": {
"controller": TextEditingController(),
"required": false,
},
"FKontakt2": {
"controller": TextEditingController(),
"required": false,
},
"FKontakt3": {
"controller": TextEditingController(),
"required": false,
},
"IntKomm": {
"controller": TextEditingController(),
"required": false,
},
// Gone? // Gone?
"ProtoAm": { "controller": TextEditingController(), "required": false, }, "ProtoAm": {
"FotoFilm": { "controller": TextEditingController(), "required": false, }, "controller": TextEditingController(),
"required": false,
},
"FotoFilm": {
"controller": TextEditingController(),
"required": false,
},
}; };
// Map<String, Map<String, dynamic>> rmap {
// Map<String, Map<String, dynamic>> rmap = {
// // Step 1
// "Standort": { "controller": betreuungC, "required": true, },
// "Status": { "controller": TextEditingController(), "required": true, },
// "Betreuung": { "controller": TextEditingController(), "required": false, },
// "CID": { "controller": TextEditingController(), "required": true, },
// "FFTyp": { "controller": TextEditingController(), "required": true, },
// "MEZ": { "controller": TextEditingController(), "required": true, },
// "KSchloNr": { "controller": TextEditingController(), "required": false, },
// "Rudel": { "controller": TextEditingController(), "required": true, },
//
// // Step 2
// "DECLNG": { "controller": TextEditingController(), "required": false, },
// "DECLAT": { "controller": TextEditingController(), "required": false, },
// "BLand": { "controller": TextEditingController(), "required": true, },
// "Lkr": { "controller": TextEditingController(), "required": true, },
// "BeiOrt": { "controller": TextEditingController(), "required": true, },
// "OrtInfo": { "controller": TextEditingController(), "required": false, },
// "Platzung": { "controller": TextEditingController(), "required": true, },
//
// // Step 3
// "Datum": { "controller": TextEditingController(), "required": false, },
// "KontDat": { "controller": TextEditingController(), "required": false, },
// "KTage1": { "controller": TextEditingController(), "required": true, },
// "KTage2": { "controller": TextEditingController(), "required": true, },
// "AbbauDat": { "controller": TextEditingController(), "required": false, },
// "Auftrag": { "controller": TextEditingController(), "required": false, },
// "KontAbsp": { "controller": TextEditingController(), "required": false, },
// "SonstBem": { "controller": TextEditingController(), "required": false, },
//
// // Step 4
// "Adresse1": { "controller": TextEditingController(), "required": true, },
// "Adresse2": { "controller": TextEditingController(), "required": false, },
// "Adresse3": { "controller": TextEditingController(), "required": false, },
// "FKontakt1": { "controller": TextEditingController(), "required": false, },
// "FKontakt2": { "controller": TextEditingController(), "required": false, },
// "FKontakt3": { "controller": TextEditingController(), "required": false, },
// "IntKomm": { "controller": TextEditingController(), "required": false, },
//
// // Gone?
// "ProtoAm": { "controller": TextEditingController(), "required": false, },
// "FotoFilm": { "controller": TextEditingController(), "required": false, },
// };
// return rmap;
// }
Map<String, String> getFieldsText() { Map<String, String> getFieldsText() {
Map<String, String> puff = {}; Map<String, String> puff = {};
@@ -183,69 +210,30 @@ class _AddCamMainState extends State<AddCamMain> {
return puff; return puff;
} }
// Map<String, dynamic> getPlace() {
// Map<String, dynamic> place = {
// 'ID': widget.existingData?['ID'],
// 'CID': cid.text,
// 'Rudel': rudelC.text,
// 'Datum': datum.toString().split(" ").first,
// 'Adresse1': adresse1C.text,
// 'Adresse2': adresse2C.text,
// 'Adresse3': adresse3C.text,
// 'BLand': bLandC.text,
// 'Lkr': lkrC.text,
// 'BeiOrt': beiOrtC.text,
// 'OrtInfo': ortInfoC.text,
// 'Status': selectedStatus,
// 'FFTyp': ffTypC.text,
// 'FotoFilm': selectedFotoFilm,
// 'MEZ': selectedMEZ,
// 'Platzung': selectedPlatzung,
// 'KSchloNr': kSchloNrC.text,
// 'KontDat': kontDat.toString().split(" ").first,
// 'AbbauDat': abbauDat.toString().split(" ").first.replaceAll("null", ""),
// 'Auftrag': auftragC.text,
// 'KontAbsp': kontAbspC.text,
// 'SonstBem': sonstBemC.text,
// 'FKontakt1': fKontakt1C.text,
// 'FKontakt2': fKontakt2C.text,
// 'FKontakt3': fKontakt3C.text,
// 'Standort': standortC.text,
// 'KTage1': kTage1C.text,
// 'KTage2': kTage2C.text,
// 'ProtoAm': protoAm.toString().split(" ").first,
// 'IntKomm': intKommC.text,
// 'Betreuung': betreuungC.text,
// 'DECLNG': currentPosition.longitude,
// 'DECLAT': currentPosition.latitude,
// };
//
// return place;
// }
@override @override
void initState() { void initState() {
// updates the currentPosition var after the _determine position has finished. Means user view updates with his live location // updates the currentPosition var after the _determine position has finished. Means user view updates with his live location
try {
GeolocatorService.deteterminePosition() GeolocatorService.deteterminePosition()
.then((result) => currentPosition = result); .then((result) => currentPosition = result)
} on LocationDisabledException { .catchError((error) {
if (error is LocationDisabledException) {
if (mounted) {
SnackBarHelper.showSnackBarMessage( SnackBarHelper.showSnackBarMessage(
context, AppLocalizations.of(context)!.locationDisabled); context, AppLocalizations.of(context)!.locationDisabled);
} on LocationForbiddenException { }
} else if (error is LocationForbiddenException) {
if (mounted) {
SnackBarHelper.showSnackBarMessage( SnackBarHelper.showSnackBarMessage(
context, AppLocalizations.of(context)!.locationForbidden); context, AppLocalizations.of(context)!.locationForbidden);
} }
}
return currentPosition;
});
// select initial werte // select initial werte
rmap["MEZ"]!["controller"]!.text = selectedMEZ; rmap["MEZ"]!["controller"]!.text = selectedMEZ;
rmap["Status"]!["controller"]!.text = selectedStatus; rmap["Status"]!["controller"]!.text = selectedStatus;
// TODO ADD THIS AGAIN BUT RIGHT
// If a template is edited this fills in the existing values // If a template is edited this fills in the existing values
var firstRun = true; var firstRun = true;
if (widget.existingData?.isNotEmpty ?? false) { if (widget.existingData?.isNotEmpty ?? false) {
@@ -254,51 +242,11 @@ class _AddCamMainState extends State<AddCamMain> {
firstRun = false; firstRun = false;
continue; continue;
} }
rmap[key]!["controller"]!.text = widget.existingData?[key].toString() ?? ""; rmap[key]!["controller"]!.text =
widget.existingData?[key].toString() ?? "";
} }
} }
// if (widget.isTemplate || widget.isFinished && widget.existingData != null) {
// cid.text = widget.existingData!['CID'] ?? "";
// rudelC.text = widget.existingData!['Rudel'] ?? "";
// adresse1C.text = widget.existingData!['Adresse1'] ?? "";
// adresse2C.text = widget.existingData!['Adresse2'] ?? "";
// adresse3C.text = widget.existingData!['Adresse3'] ?? "";
// bLandC.text = widget.existingData!['BLand'] ?? "";
// lkrC.text = widget.existingData!['Lkr'] ?? "";
// beiOrtC.text = widget.existingData!['BeiOrt'] ?? "";
// ortInfoC.text = widget.existingData!['OrtInfo'] ?? "";
// selectedStatus = widget.existingData!['Status'] ?? "";
// ffTypC.text = widget.existingData!['FFTyp'] ?? "";
// selectedFotoFilm = widget.existingData!['FotoFilm'] ?? "";
// selectedMEZ = widget.existingData!['MEZ'] ?? "";
// selectedPlatzung = widget.existingData!['Platzung'] ?? "";
// kSchloNrC.text = widget.existingData!['KSchloNr'] ?? "";
// datum = DateTime.parse(widget.existingData!['Datum']);
// kontDat = widget.existingData!['KontDat'] == ""
// ? null
// : DateTime.parse(widget.existingData!['KontDat']);
// abbauDat = widget.existingData!['AbbauDat'] == ""
// ? null
// : DateTime.parse(widget.existingData!['AbbauDat']);
// auftragC.text = widget.existingData!['Auftrag'] ?? "";
// kontAbspC.text = widget.existingData!['KontAbsp'] ?? "";
// sonstBemC.text = widget.existingData!['SonstBem'] ?? "";
// fKontakt1C.text = widget.existingData!['FKontakt1'] ?? "";
// fKontakt2C.text = widget.existingData!['FKontakt2'] ?? "";
// fKontakt3C.text = widget.existingData!['FKontakt3'] ?? "";
// standortC.text = widget.existingData!['Standort'] ?? "";
// kTage1C.text = widget.existingData!['KTage1'].toString();
// kTage2C.text = widget.existingData!['KTage2'].toString();
// protoAm = widget.existingData!['ProtoAm'] == null
// ? null
// : DateTime.parse(widget.existingData!['ProtoAm']);
// intKommC.text = widget.existingData!['IntKomm'] ?? "";
// betreuungC.text = widget.existingData!['Betreuung'] ?? "";
// }
super.initState(); super.initState();
} }
@@ -310,44 +258,6 @@ class _AddCamMainState extends State<AddCamMain> {
super.dispose(); super.dispose();
} }
// checks if required fields are not empty. If one is the name will be returned
// TODO rewrite
// List<String> validateData() {
// List<String> emptyFields = <String>[];
//
// Map<String, TextEditingController> fields = {
// AppLocalizations.of(context)!.camLink: cid,
// AppLocalizations.of(context)!.rudel: rudelC,
// AppLocalizations.of(context)!.adresse1: adresse1C,
// AppLocalizations.of(context)!.bland: bLandC,
// AppLocalizations.of(context)!.lkr: lkrC,
// AppLocalizations.of(context)!.beiort: beiOrtC,
// AppLocalizations.of(context)!.status:
// TextEditingController(text: selectedStatus),
// AppLocalizations.of(context)!.fftyp: ffTypC,
// "${AppLocalizations.of(context)!.foto} / ${AppLocalizations.of(context)!.filelocation}":
// TextEditingController(text: selectedFotoFilm),
// AppLocalizations.of(context)!.zeiteinstellung:
// TextEditingController(text: selectedMEZ),
// AppLocalizations.of(context)!.platzung:
// TextEditingController(text: selectedPlatzung),
// AppLocalizations.of(context)!.ktage1: kTage1C,
// AppLocalizations.of(context)!.ktage1: kTage2C,
// AppLocalizations.of(context)!.location: standortC,
// };
//
// for (var entry in fields.entries) {
// if (entry.value.text.isEmpty) {
// emptyFields.add(entry.key);
// }
// }
//
// empty = false;
// if (emptyFields.isNotEmpty) empty = true;
//
// return emptyFields;
// }
// The widget tree which gets the shown widget from the ./cam_widgets.dart file // The widget tree which gets the shown widget from the ./cam_widgets.dart file
// The names of the widgets should be self-explaining // The names of the widgets should be self-explaining
@override @override
@@ -810,8 +720,8 @@ class _AddCamMainState extends State<AddCamMain> {
final isLastStep = currentStep == getSteps().length - 1; final isLastStep = currentStep == getSteps().length - 1;
if (!isLastStep) { if (!isLastStep) {
saveTemplate(getFieldsText(), DatabasesEnum.place, saveTemplate(
widget.isTemplate); getFieldsText(), DatabasesEnum.place, widget.isTemplate);
setState(() { setState(() {
currentStep += 1; currentStep += 1;
}); });
@@ -827,8 +737,8 @@ class _AddCamMainState extends State<AddCamMain> {
bool empty = CheckRequired.checkRequired(rmap); bool empty = CheckRequired.checkRequired(rmap);
if (empty == true) { if (empty == true) {
DialogHelper.showTemplateDialog( DialogHelper.showTemplateDialog(context, getFieldsText(),
context, getFieldsText(), widget.existingData?.isNotEmpty ?? false); widget.existingData?.isNotEmpty ?? false);
return; return;
} else if (empty == false) { } else if (empty == false) {
await DialogHelper.showSaveOptionsDialog( await DialogHelper.showSaveOptionsDialog(

View File

@@ -77,3 +77,4 @@
5. mai 2h 15min 5. mai 2h 15min
6. mai 2h 15min 6. mai 2h 15min
7. mai 2h 45min 7. mai 2h 45min
9. mai 3h 40min