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> {
// var declaration
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 selectedFotoFilm = 'Foto';
@@ -82,96 +59,146 @@ class _AddCamMainState extends State<AddCamMain> {
DateTime? kontDat = DateTime.now();
DateTime? protoAm = DateTime.now();
Map<String, Map<String, dynamic>> rmap = {
// Step 1
"Standort": { "controller": TextEditingController(), "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, },
Map<String, Map<String, dynamic>> rmap = {
// Step 1
"Standort": {
"controller": TextEditingController(),
"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 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 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, },
// 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, },
};
// Gone?
"ProtoAm": {
"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> puff = {};
@@ -183,170 +210,53 @@ class _AddCamMainState extends State<AddCamMain> {
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
void initState() {
// updates the currentPosition var after the _determine position has finished. Means user view updates with his live location
try {
GeolocatorService.deteterminePosition()
.then((result) => currentPosition = result);
} on LocationDisabledException {
SnackBarHelper.showSnackBarMessage(
context, AppLocalizations.of(context)!.locationDisabled);
} on LocationForbiddenException {
SnackBarHelper.showSnackBarMessage(
context, AppLocalizations.of(context)!.locationForbidden);
}
GeolocatorService.deteterminePosition()
.then((result) => currentPosition = result)
.catchError((error) {
if (error is LocationDisabledException) {
if (mounted) {
SnackBarHelper.showSnackBarMessage(
context, AppLocalizations.of(context)!.locationDisabled);
}
} else if (error is LocationForbiddenException) {
if (mounted) {
SnackBarHelper.showSnackBarMessage(
context, AppLocalizations.of(context)!.locationForbidden);
}
}
return currentPosition;
});
// select initial werte
rmap["MEZ"]!["controller"]!.text = selectedMEZ;
rmap["Status"]!["controller"]!.text = selectedStatus;
// TODO ADD THIS AGAIN BUT RIGHT
// If a template is edited this fills in the existing values
var firstRun = true;
if (widget.existingData?.isNotEmpty ?? false) {
for (var key in widget.existingData!.keys) {
if (firstRun) {
firstRun = false;
continue;
if (firstRun) {
firstRun = false;
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();
}
@override
void dispose() {
for (String key in rmap.keys) {
rmap[key]!["controller"].dispose();
}
super.dispose();
void dispose() {
for (String key in rmap.keys) {
rmap[key]!["controller"].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;
// }
super.dispose();
}
// The widget tree which gets the shown widget from the ./cam_widgets.dart file
// The names of the widgets should be self-explaining
@@ -810,8 +720,8 @@ class _AddCamMainState extends State<AddCamMain> {
final isLastStep = currentStep == getSteps().length - 1;
if (!isLastStep) {
saveTemplate(getFieldsText(), DatabasesEnum.place,
widget.isTemplate);
saveTemplate(
getFieldsText(), DatabasesEnum.place, widget.isTemplate);
setState(() {
currentStep += 1;
});
@@ -821,14 +731,14 @@ class _AddCamMainState extends State<AddCamMain> {
if (widget.isSent) {
Navigator.pushNamedAndRemoveUntil(
context, '/home', (route) => false);
return;
return;
}
bool empty = CheckRequired.checkRequired(rmap);
if (empty == true) {
DialogHelper.showTemplateDialog(
context, getFieldsText(), widget.existingData?.isNotEmpty ?? false);
DialogHelper.showTemplateDialog(context, getFieldsText(),
widget.existingData?.isNotEmpty ?? false);
return;
} else if (empty == false) {
await DialogHelper.showSaveOptionsDialog(

View File

@@ -20,7 +20,7 @@ class GeolocatorService {
throw LocationForbiddenException();
}
}
return await Geolocator.getCurrentPosition();
return await Geolocator.getCurrentPosition();
}
}

View File

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