#577 und Refactoring
This commit is contained in:
1 parent
d59260fe24
commit
f8100facf3
3 files changed
+81
-63
No files matched your search
@@ -23,7 +23,6 @@ import 'package:stadtbote/protocoll_messages/fin_tour_message.dart';
|
||||
import 'package:stadtbote/protocoll_messages/pic_message.dart';
|
||||
import 'package:stadtbote/tools/constants.dart';
|
||||
import 'package:stadtbote/tools/message_service.dart';
|
||||
import 'package:stadtbote/tools/mqtt_core.dart';
|
||||
|
||||
import '../main.dart';
|
||||
import '../model/task_info.dart';
|
||||
@@ -380,13 +379,13 @@ class _TaskListPageState extends State<TaskListPage> {
|
||||
});
|
||||
}
|
||||
|
||||
void _processSignature(TaskInfo taskInfo) async {
|
||||
void _processSignature(TaskInfo taskInfo) {
|
||||
MyApp.suppressAcceptDialog = true;
|
||||
|
||||
SystemChrome.setPreferredOrientations([DeviceOrientation.landscapeLeft]);
|
||||
|
||||
Future.delayed(const Duration(seconds: 1), () {
|
||||
showSignaturePopup(context, taskInfo, (String? signature) async {
|
||||
Future.delayed(const Duration(seconds: 1), () async {
|
||||
showSignaturePopup(context, taskInfo, (String? signature) {
|
||||
MyApp.suppressAcceptDialog = false;
|
||||
|
||||
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
|
||||
@@ -400,52 +399,61 @@ class _TaskListPageState extends State<TaskListPage> {
|
||||
|
||||
_sendFinTourMessage();
|
||||
|
||||
await _finishTaskProcessing(taskInfo);
|
||||
_finishTaskProcessing(taskInfo);
|
||||
|
||||
MessageService().publish<PopContentViewMessage>(Constants.messageTopicPopContentView, arguments: PopContentViewMessage(count: widget.job.state == 1 ? 2 : 3));
|
||||
MessageService().publish<PopContentViewMessage>(Constants.messageTopicPopContentView, arguments: PopContentViewMessage(count: 2));
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> _finishTaskProcessing(TaskInfo taskInfo) async {
|
||||
_finishTaskProcessing(TaskInfo taskInfo) async {
|
||||
Util.logInfo('Task ${taskInfo.task.sId} finished');
|
||||
|
||||
await MyApp.isarInstance.writeTxn(() async {
|
||||
await MyApp.isarInstance.taskInfos.put(taskInfo);
|
||||
});
|
||||
}
|
||||
|
||||
bool isTaskActive(int index) {
|
||||
var currentTaskInfo = _taskList[index];
|
||||
if (!widget.readOnly) {
|
||||
var currentTaskInfo = _taskList[index];
|
||||
|
||||
if (currentTaskInfo.completed && !currentTaskInfo.task.reenter!) return false;
|
||||
if (currentTaskInfo.completed && !currentTaskInfo.task.reenter!) return false;
|
||||
|
||||
for (var taskInfo in _taskList)
|
||||
{
|
||||
if (taskInfo == currentTaskInfo) break;
|
||||
for (var taskInfo in _taskList)
|
||||
{
|
||||
if (taskInfo == currentTaskInfo) break;
|
||||
|
||||
if (!taskInfo.task.opt! && !taskInfo.completed) return false;
|
||||
if (!taskInfo.task.opt! && !taskInfo.completed) return false;
|
||||
}
|
||||
|
||||
if (currentTaskInfo.task.reenter!) return true;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
if (currentTaskInfo.task.reenter!) return true;
|
||||
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
_sendArrivedMessage(TaskInfo taskInfo) {
|
||||
var message = FinTask();
|
||||
message.trId = widget.tour.id;
|
||||
message.task = Task();
|
||||
message.task.sId = taskInfo.task.sId;
|
||||
message.task.time = DateTime.now().toIso8601String();
|
||||
var finTaskMessage = FinTaskMessage();
|
||||
finTaskMessage.finTask = FinTask();
|
||||
finTaskMessage.finTask.trId = widget.tour.id;
|
||||
finTaskMessage.finTask.task = Task();
|
||||
finTaskMessage.finTask.task.sId = taskInfo.task.sId;
|
||||
finTaskMessage.finTask.task.time = DateTime.now().toIso8601String();
|
||||
|
||||
var position = MyApp.currentPosition;
|
||||
if (position != null) {
|
||||
message.task.pos = FinTaskPos();
|
||||
message.task.pos!.lat = position.latitude;
|
||||
message.task.pos!.long = position.longitude;
|
||||
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.publishMessage("fin_task", jsonEncode(message.toJson()));
|
||||
MessageService().publish<PublishPayloadMessage>(Constants.messageTopicPublishPayload, arguments: PublishPayloadMessage(topic: "job", message: finTaskMessage.toJson()));
|
||||
}
|
||||
|
||||
FinTourTask _createAnswerHeader(TaskInfo taskInfo) {
|
||||
@@ -454,49 +462,53 @@ class _TaskListPageState extends State<TaskListPage> {
|
||||
var finTourTask = FinTourTask();
|
||||
finTourTask.sId = taskInfo.task.sId;
|
||||
finTourTask.time = DateTime.now().toIso8601String();
|
||||
finTourTask.pos = FinTaskPos();
|
||||
if (position != null) {
|
||||
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;
|
||||
}
|
||||
|
||||
Future<void> _sendFinTourMessage() async {
|
||||
var message = FinTour();
|
||||
message.trId = widget.tour.id;
|
||||
message.com = _commisionNumber;
|
||||
_sendFinTourMessage() async {
|
||||
var finTourMessage = FinTourMessage();
|
||||
finTourMessage.finTour = FinTour();
|
||||
finTourMessage.finTour.trId = widget.tour.id;
|
||||
finTourMessage.finTour.com = _commisionNumber;
|
||||
|
||||
var position = MyApp.currentPosition;
|
||||
if (position != null) {
|
||||
message.track = Track();
|
||||
message.track!.time = DateTime.now().toIso8601String();
|
||||
message.track!.pos = FinTaskPos();
|
||||
message.track!.pos!.lat = position.latitude;
|
||||
message.track!.pos!.long = position.longitude;
|
||||
finTourMessage.finTour.track = Track();
|
||||
finTourMessage.finTour.track!.time = DateTime.now().toIso8601String();
|
||||
finTourMessage.finTour.track!.pos = FinTaskPos();
|
||||
finTourMessage.finTour.track!.pos!.lat = position.latitude;
|
||||
finTourMessage.finTour.track!.pos!.long = position.longitude;
|
||||
}
|
||||
|
||||
message.tasks = [];
|
||||
finTourMessage.finTour.tasks = [];
|
||||
for(var taskInfo in _taskList) {
|
||||
if (taskInfo.answer != null) {
|
||||
var finTourTask = FinTourTask.fromJson(jsonDecode(taskInfo.answer!));
|
||||
|
||||
message.tasks.add(finTourTask);
|
||||
finTourMessage.finTour.tasks.add(finTourTask);
|
||||
}
|
||||
}
|
||||
|
||||
MqttCore.instance.publishMessage("fin_tour", jsonEncode(message.toJson()));
|
||||
MessageService().publish<PublishPayloadMessage>(Constants.messageTopicPublishPayload, arguments: PublishPayloadMessage(topic: "fin_tour", message: finTourMessage.toJson()));
|
||||
|
||||
widget.tour.state = Constants.stateFinishedNotConfirmed;
|
||||
|
||||
await MyApp.isarInstance.writeTxn(() async {
|
||||
await MyApp.isarInstance.jobs.put(widget.job);
|
||||
});
|
||||
|
||||
_sendImages();
|
||||
|
||||
checkJobFinished();
|
||||
await _checkJobFinished();
|
||||
}
|
||||
|
||||
_sendImages() {
|
||||
@@ -519,27 +531,25 @@ class _TaskListPageState extends State<TaskListPage> {
|
||||
message.pos!.long = position.longitude;
|
||||
}
|
||||
|
||||
MqttCore.instance.publishMessage("pic", jsonEncode(message.toJson()));
|
||||
MessageService().publish<PublishPayloadMessage>(Constants.messageTopicPublishPayload, arguments: PublishPayloadMessage(topic: "job", message: message.toJson()));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void checkJobFinished() async {
|
||||
Future<void> _checkJobFinished() async {
|
||||
var jobFinished = true;
|
||||
|
||||
for(var tour in widget.job.tours) {
|
||||
if (tour.state < 1) {
|
||||
for (var tour in widget.job.tours) {
|
||||
if (tour.state == 0) {
|
||||
jobFinished = false;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (jobFinished) {
|
||||
widget.job.state = 2;
|
||||
for(var tour in widget.job.tours) {
|
||||
tour.state = 1;
|
||||
}
|
||||
|
||||
await MyApp.isarInstance.writeTxn(() async {
|
||||
await MyApp.isarInstance.jobs.put(widget.job);
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user