Erweiterungen
This commit is contained in:
1 parent
b7d45efecc
commit
d622c975c0
9 files changed
+345
-2
No files matched your search
@@ -1,3 +1,5 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
@@ -14,7 +16,10 @@ import 'package:stadtbote/popups/tasks_popups/scan_barcodes_popup.dart';
|
||||
import 'package:stadtbote/popups/tasks_popups/signature_popup.dart';
|
||||
import 'package:stadtbote/popups/tasks_popups/station_notice_popup.dart';
|
||||
import 'package:stadtbote/popups/tasks_popups/take_photos_popup.dart';
|
||||
import 'package:stadtbote/protocoll_messages/fin_task_message.dart';
|
||||
import 'package:stadtbote/protocoll_messages/track_station_message.dart';
|
||||
import 'package:stadtbote/tools/constants.dart';
|
||||
import 'package:stadtbote/tools/mqtt_core.dart';
|
||||
|
||||
import '../main.dart';
|
||||
import '../model/task_info.dart';
|
||||
@@ -244,6 +249,8 @@ class _TaskListPageState extends State<TaskListPage> {
|
||||
taskInfo.additionalText = dateFormat.format(DateTime.now());
|
||||
taskInfo.completed = true;
|
||||
|
||||
_sendArrivedMessage(taskInfo);
|
||||
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
@@ -355,4 +362,113 @@ class _TaskListPageState extends State<TaskListPage> {
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
_sendArrivedMessage(TaskInfo taskInfo) {
|
||||
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) {
|
||||
finTaskMessage.finTask.task.pos = FinTaskPos();
|
||||
finTaskMessage.finTask.task.pos!.lat = position.latitude;
|
||||
finTaskMessage.finTask.task.pos!.long = position.longitude;
|
||||
}
|
||||
|
||||
MqttCore.instance.publishPayloadMessage("job", finTaskMessage.toJson());
|
||||
}
|
||||
/*
|
||||
var location = App.CurrentLocation;
|
||||
|
||||
var root = new JObject();
|
||||
|
||||
var finTask = new JObject();
|
||||
root.Add(new JProperty("finTask", finTask));
|
||||
|
||||
finTask.Add(new JProperty("tr_id", _jobTour.Id));
|
||||
|
||||
var taskObject = new JObject();
|
||||
finTask.Add(new JProperty("task", taskObject));
|
||||
|
||||
taskObject.Add(new JProperty("s_id", task.SId));
|
||||
taskObject.Add(new JProperty("time", DateTime.Now.ToString("o")));
|
||||
|
||||
if (location != null)
|
||||
{
|
||||
var posObject = new JObject
|
||||
{
|
||||
new JProperty("lat", location.Latitude),
|
||||
new JProperty("long", location.Longitude)
|
||||
};
|
||||
taskObject.Add(new JProperty("pos", posObject));
|
||||
}
|
||||
|
||||
App.Core.SendJsonMessageAsync("job", root);
|
||||
*/
|
||||
|
||||
_sendTrackStationMessage(TaskInfo taskInfo)
|
||||
{
|
||||
var trackStationMessage = TrackStationMessage();
|
||||
trackStationMessage.sid = taskInfo.task.sId;
|
||||
trackStationMessage.time = DateTime.now().toIso8601String();
|
||||
|
||||
var position = MyApp.currentPosition;
|
||||
if (position != null) {
|
||||
trackStationMessage.pos = Pos();
|
||||
trackStationMessage.pos!.lat = position.latitude;
|
||||
trackStationMessage.pos!.long = position.latitude;
|
||||
}
|
||||
|
||||
var json = jsonEncode(trackStationMessage.toJson());
|
||||
|
||||
MqttCore.instance.publishPayloadMessage("", trackStationMessage.toJson());
|
||||
}
|
||||
|
||||
/*private JObject CreateFinTourMessage()
|
||||
{
|
||||
var payloadObject = new JObject();
|
||||
|
||||
var finTourObject = new JObject();
|
||||
payloadObject.Add(new JProperty("fin_tour", finTourObject));
|
||||
|
||||
finTourObject.Add(new JProperty("tr_id", _jobTour.Id));
|
||||
finTourObject.Add(new JProperty("track", CreateTrackObject()));
|
||||
|
||||
var tasksArray = new JArray();
|
||||
finTourObject.Add(new JProperty("tasks", tasksArray));
|
||||
|
||||
foreach (var task in _jobTour.Tasks)
|
||||
{
|
||||
if (task.Answer != null && task.Answer.Length > 0)
|
||||
{
|
||||
var answerObject = (JObject)JsonConvert.DeserializeObject(task.Answer);
|
||||
|
||||
tasksArray.Add(answerObject);
|
||||
}
|
||||
}
|
||||
|
||||
return payloadObject;
|
||||
}*/
|
||||
|
||||
/*Map<String, dynamic> CreateTrackObject()
|
||||
{
|
||||
var location = App.CurrentLocation;
|
||||
|
||||
var trackObject = new JObject { new JProperty("time", DateTime.Now.ToString("o")) };
|
||||
|
||||
if (location != null)
|
||||
{
|
||||
var posObject = new JObject();
|
||||
trackObject.Add(new JProperty("pos", posObject));
|
||||
|
||||
posObject.Add(new JProperty("lat", location.Latitude));
|
||||
posObject.Add(new JProperty("long", location.Longitude));
|
||||
posObject.Add(new JProperty("acc", location.Accuracy));
|
||||
}
|
||||
|
||||
return trackObject;
|
||||
}*/
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
import 'package:isar/isar.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:stadtbote/tools/util.dart';
|
||||
|
||||
part 'fin_task_message.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class FinTaskMessage {
|
||||
late FinTask finTask;
|
||||
|
||||
FinTaskMessage();
|
||||
|
||||
factory FinTaskMessage.fromJson(Map<String, dynamic> json) => _$FinTaskMessageFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$FinTaskMessageToJson(this);
|
||||
}
|
||||
|
||||
@JsonSerializable()
|
||||
class FinTask {
|
||||
@JsonKey(name: 'tr_id')
|
||||
late int trId;
|
||||
|
||||
late Task task;
|
||||
|
||||
FinTask();
|
||||
|
||||
factory FinTask.fromJson(Map<String, dynamic> json) => _$FinTaskFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$FinTaskToJson(this);
|
||||
}
|
||||
|
||||
@JsonSerializable()
|
||||
class Task {
|
||||
@JsonKey(name: 's_id')
|
||||
late int sId;
|
||||
|
||||
late String time;
|
||||
|
||||
late FinTaskPos? pos;
|
||||
|
||||
Task();
|
||||
|
||||
factory Task.fromJson(Map<String, dynamic> json) => _$TaskFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$TaskToJson(this);
|
||||
}
|
||||
|
||||
@JsonSerializable()
|
||||
class FinTaskPos {
|
||||
late double lat;
|
||||
|
||||
late double long;
|
||||
|
||||
FinTaskPos();
|
||||
|
||||
factory FinTaskPos.fromJson(Map<String, dynamic> json) => _$FinTaskPosFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$FinTaskPosToJson(this);
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'fin_task_message.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
FinTaskMessage _$FinTaskMessageFromJson(Map<String, dynamic> json) =>
|
||||
FinTaskMessage()
|
||||
..finTask = FinTask.fromJson(json['finTask'] as Map<String, dynamic>);
|
||||
|
||||
Map<String, dynamic> _$FinTaskMessageToJson(FinTaskMessage instance) =>
|
||||
<String, dynamic>{
|
||||
'finTask': instance.finTask,
|
||||
};
|
||||
|
||||
FinTask _$FinTaskFromJson(Map<String, dynamic> json) => FinTask()
|
||||
..trId = json['tr_id'] as int
|
||||
..task = Task.fromJson(json['task'] as Map<String, dynamic>);
|
||||
|
||||
Map<String, dynamic> _$FinTaskToJson(FinTask instance) => <String, dynamic>{
|
||||
'tr_id': instance.trId,
|
||||
'task': instance.task,
|
||||
};
|
||||
|
||||
Task _$TaskFromJson(Map<String, dynamic> json) => Task()
|
||||
..sId = json['s_id'] as int
|
||||
..time = json['time'] as String
|
||||
..pos = json['pos'] == null
|
||||
? null
|
||||
: FinTaskPos.fromJson(json['pos'] as Map<String, dynamic>);
|
||||
|
||||
Map<String, dynamic> _$TaskToJson(Task instance) => <String, dynamic>{
|
||||
's_id': instance.sId,
|
||||
'time': instance.time,
|
||||
'pos': instance.pos,
|
||||
};
|
||||
|
||||
FinTaskPos _$FinTaskPosFromJson(Map<String, dynamic> json) => FinTaskPos()
|
||||
..lat = (json['lat'] as num).toDouble()
|
||||
..long = (json['long'] as num).toDouble();
|
||||
|
||||
Map<String, dynamic> _$FinTaskPosToJson(FinTaskPos instance) =>
|
||||
<String, dynamic>{
|
||||
'lat': instance.lat,
|
||||
'long': instance.long,
|
||||
};
|
||||
@@ -0,0 +1,34 @@
|
||||
import 'package:isar/isar.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:stadtbote/tools/util.dart';
|
||||
|
||||
part 'finish_tour_message.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class FinishTourMessage {
|
||||
Id get isarId => Util.fastHash(messageId);
|
||||
|
||||
late String recv;
|
||||
|
||||
late bool store;
|
||||
|
||||
late String messageId;
|
||||
|
||||
FinishTourMessage();
|
||||
|
||||
factory FinishTourMessage.fromJson(Map<String, dynamic> json) => _$FinishTourMessageFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$FinishTourMessageToJson(this);
|
||||
}
|
||||
|
||||
/*@JsonSerializable()
|
||||
class Pos {
|
||||
@JsonKey(name:'start_session')
|
||||
late String startSession;
|
||||
|
||||
Payload();
|
||||
|
||||
factory Payload.fromJson(Map<String, dynamic> json) => _$PayloadFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$PayloadToJson(this);
|
||||
}*/
|
||||
@@ -0,0 +1,20 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'finish_tour_message.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
FinishTourMessage _$FinishTourMessageFromJson(Map<String, dynamic> json) =>
|
||||
FinishTourMessage()
|
||||
..recv = json['recv'] as String
|
||||
..store = json['store'] as bool
|
||||
..messageId = json['messageId'] as String;
|
||||
|
||||
Map<String, dynamic> _$FinishTourMessageToJson(FinishTourMessage instance) =>
|
||||
<String, dynamic>{
|
||||
'recv': instance.recv,
|
||||
'store': instance.store,
|
||||
'messageId': instance.messageId,
|
||||
};
|
||||
@@ -0,0 +1,34 @@
|
||||
import 'package:isar/isar.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:stadtbote/tools/util.dart';
|
||||
|
||||
part 'track_station_message.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class TrackStationMessage {
|
||||
@JsonKey(name: 's_id')
|
||||
late int sid;
|
||||
|
||||
late String time;
|
||||
|
||||
late Pos? pos;
|
||||
|
||||
TrackStationMessage();
|
||||
|
||||
factory TrackStationMessage.fromJson(Map<String, dynamic> json) => _$TrackStationMessageFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$TrackStationMessageToJson(this);
|
||||
}
|
||||
|
||||
@JsonSerializable()
|
||||
class Pos {
|
||||
late double lat;
|
||||
|
||||
late double long;
|
||||
|
||||
Pos();
|
||||
|
||||
factory Pos.fromJson(Map<String, dynamic> json) => _$PosFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$PosToJson(this);
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'track_station_message.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
TrackStationMessage _$TrackStationMessageFromJson(Map<String, dynamic> json) =>
|
||||
TrackStationMessage()
|
||||
..sid = json['s_id'] as int
|
||||
..time = json['time'] as String
|
||||
..pos = json['pos'] == null
|
||||
? null
|
||||
: Pos.fromJson(json['pos'] as Map<String, dynamic>);
|
||||
|
||||
Map<String, dynamic> _$TrackStationMessageToJson(
|
||||
TrackStationMessage instance) =>
|
||||
<String, dynamic>{
|
||||
's_id': instance.sid,
|
||||
'time': instance.time,
|
||||
'pos': instance.pos,
|
||||
};
|
||||
|
||||
Pos _$PosFromJson(Map<String, dynamic> json) => Pos()
|
||||
..lat = (json['lat'] as num).toDouble()
|
||||
..long = (json['long'] as num).toDouble();
|
||||
|
||||
Map<String, dynamic> _$PosToJson(Pos instance) => <String, dynamic>{
|
||||
'lat': instance.lat,
|
||||
'long': instance.long,
|
||||
};
|
||||
@@ -168,7 +168,7 @@ class MqttCore {
|
||||
break;
|
||||
|
||||
case 'job_del':
|
||||
_jobDeleteReceived(payloadData);
|
||||
//_jobDeleteReceived(payloadData);
|
||||
break;
|
||||
|
||||
case 'sync_request':
|
||||
|
||||
+1
-1
@@ -72,7 +72,7 @@ class Util {
|
||||
|
||||
static logInfo(String message) {
|
||||
if (kDebugMode) {
|
||||
print('Message: $message');
|
||||
print(message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user