diff --git a/lib/content_views/task_list_page.dart b/lib/content_views/task_list_page.dart index 4a4fa92..358b198 100644 --- a/lib/content_views/task_list_page.dart +++ b/lib/content_views/task_list_page.dart @@ -429,6 +429,8 @@ class _TaskListPageState extends State { finTaskMessage.finTask.task.pos = FinTaskPos(); finTaskMessage.finTask.task.pos!.lat = position.latitude; finTaskMessage.finTask.task.pos!.long = position.longitude; + } else { + finTaskMessage.finTask.task.pos = null; } MqttCore.instance.publishPayloadMessage("job", finTaskMessage.toJson()); @@ -440,11 +442,13 @@ class _TaskListPageState extends State { var finTourTask = FinTourTask(); finTourTask.sId = taskInfo.task.sId; finTourTask.time = DateTime.now().toIso8601String(); - finTourTask.pos = FinTaskPos(); if (position != null) { - finTourTask.pos.lat = position.latitude; - finTourTask.pos.long = position.longitude; - finTourTask.pos.acc = position.accuracy.toInt(); + finTourTask.pos = FinTaskPos(); + finTourTask.pos!.lat = position.latitude; + finTourTask.pos!.long = position.longitude; + finTourTask.pos!.acc = position.accuracy.toInt(); + } else { + finTourTask.pos = null; } return finTourTask; diff --git a/lib/popups/accept_jobs_popup.dart b/lib/popups/accept_jobs_popup.dart index 0fcfc46..a1d67cc 100644 --- a/lib/popups/accept_jobs_popup.dart +++ b/lib/popups/accept_jobs_popup.dart @@ -24,6 +24,9 @@ Future showAcceptJobsPopup(BuildContext context, List jobs, Function builder: (BuildContext context) { return WillPopScope( onWillPop: () async { + MessageService().unsubscribe(Constants.messageTopicJobDeleted, jobsMap); + MessageService().unsubscribe(Constants.messageTopicJobReceived, jobsMap); + Navigator.of(context).pop(); onFinished(); @@ -181,7 +184,13 @@ Future showAcceptJobsPopup(BuildContext context, List jobs, Function ), const SizedBox(width: 20), Expanded( - child: getDefaultButton('Annehmen', () => {_sendAnswer(job, 1), jobsMap.remove(job), setState(() {})}), + child: getDefaultButton('Annehmen', () { + _sendAnswer(job, 1); + + jobsMap.removeWhere((key, value) => key == job.id); + + setState(() {}); + }), ) ]) ], diff --git a/lib/popups/infos_popup.dart b/lib/popups/infos_popup.dart index acf9743..b76f335 100644 --- a/lib/popups/infos_popup.dart +++ b/lib/popups/infos_popup.dart @@ -5,7 +5,7 @@ import 'package:stadtbote/tools/mqtt_core.dart'; import 'package:stadtbote/tools/util.dart'; void showInfosPopup(BuildContext context, SessionStatus? status) async { - var text = "Versionsnummer: a212\n"; + var text = "Versionsnummer: a213\n"; text += "Verbindungsstatus: ${MqttCore.instance.connectionState == ConnectionStateEnum.connected ? "Verbunden" : "NICHT verbunden"}\n"; text += "GPS-Status: ${MyApp.currentPosition != null ? MyApp.currentPosition!.timestamp.toString() : "Unbekannt"}\n"; text += "\n"; diff --git a/lib/protocoll_messages/fin_tour_message.dart b/lib/protocoll_messages/fin_tour_message.dart index c453321..940e068 100644 --- a/lib/protocoll_messages/fin_tour_message.dart +++ b/lib/protocoll_messages/fin_tour_message.dart @@ -49,7 +49,7 @@ class FinTourTask { List? codes; - late FinTaskPos pos; + late FinTaskPos? pos; FinTourTask(); diff --git a/lib/protocoll_messages/fin_tour_message.g.dart b/lib/protocoll_messages/fin_tour_message.g.dart index 4e55c17..feb29bb 100644 --- a/lib/protocoll_messages/fin_tour_message.g.dart +++ b/lib/protocoll_messages/fin_tour_message.g.dart @@ -37,7 +37,9 @@ FinTourTask _$FinTourTaskFromJson(Map json) => FinTourTask() ..code = json['code'] as int? ..sign = json['sign'] as String? ..codes = (json['codes'] as List?)?.map((e) => e as String).toList() - ..pos = FinTaskPos.fromJson(json['pos'] as Map); + ..pos = json['pos'] == null + ? null + : FinTaskPos.fromJson(json['pos'] as Map); Map _$FinTourTaskToJson(FinTourTask instance) => { diff --git a/lib/tools/mqtt_core.dart b/lib/tools/mqtt_core.dart index 244f894..c763af6 100644 --- a/lib/tools/mqtt_core.dart +++ b/lib/tools/mqtt_core.dart @@ -367,7 +367,7 @@ class MqttCore { handshakeMessage.app = "sb"; handshakeMessage.mqttClientId = await Util.getAppUuid(); handshakeMessage.deviceObject = deviceObject; - handshakeMessage.ver = 200; + handshakeMessage.ver = 213; var jsonMap = handshakeMessage.toJson(); var json = jsonEncode(jsonMap);