Erweiterungen

This commit is contained in:
Sven committed 2024-02-03 15:11:40 +01:00
1 parent d622c975c0
commit f6b81817b0
13 files changed
+176 -143

No files matched your search

+2 -1
View File
@@ -7,6 +7,7 @@ import 'package:stadtbote/content_views/utils/header_info.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:badges/badges.dart' as badges; import 'package:badges/badges.dart' as badges;
import 'package:stadtbote/protocoll_messages/accept_job_message.dart'; import 'package:stadtbote/protocoll_messages/accept_job_message.dart';
import 'package:stadtbote/protocoll_messages/fin_task_message.dart';
import 'package:stadtbote/tools/mqtt_core.dart'; import 'package:stadtbote/tools/mqtt_core.dart';
import '../main.dart'; import '../main.dart';
@@ -184,7 +185,7 @@ class _AssignedJobsPageState extends State<AssignedJobsPage> {
message.reaction.item = item; message.reaction.item = item;
message.reaction.track = Track(); message.reaction.track = Track();
message.reaction.track.time = DateTime.now().toUtc().toIso8601String(); message.reaction.track.time = DateTime.now().toUtc().toIso8601String();
message.reaction.track.pos = Pos(); message.reaction.track.pos = FinTaskPos();
message.reaction.track.pos.lat = 0; message.reaction.track.pos.lat = 0;
message.reaction.track.pos.long = 0; message.reaction.track.pos.long = 0;
message.reaction.track.pos.acc = 1; message.reaction.track.pos.acc = 1;
+66 -35
View File
@@ -16,7 +16,9 @@ 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/signature_popup.dart';
import 'package:stadtbote/popups/tasks_popups/station_notice_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/popups/tasks_popups/take_photos_popup.dart';
import 'package:stadtbote/protocoll_messages/accept_job_message.dart';
import 'package:stadtbote/protocoll_messages/fin_task_message.dart'; import 'package:stadtbote/protocoll_messages/fin_task_message.dart';
import 'package:stadtbote/protocoll_messages/fin_tour_message.dart';
import 'package:stadtbote/protocoll_messages/track_station_message.dart'; import 'package:stadtbote/protocoll_messages/track_station_message.dart';
import 'package:stadtbote/tools/constants.dart'; import 'package:stadtbote/tools/constants.dart';
import 'package:stadtbote/tools/mqtt_core.dart'; import 'package:stadtbote/tools/mqtt_core.dart';
@@ -343,12 +345,14 @@ class _TaskListPageState extends State<TaskListPage> {
SystemChrome.setPreferredOrientations([DeviceOrientation.landscapeLeft]); SystemChrome.setPreferredOrientations([DeviceOrientation.landscapeLeft]);
Future.delayed(const Duration(seconds: 1), () async { Future.delayed(const Duration(seconds: 1), () async {
_popup = showSignaturePopup(context, taskInfo, () => { _popup = showSignaturePopup(context, taskInfo, () {
_popup.dismiss(context), _popup.dismiss(context);
taskInfo.completed = true, taskInfo.completed = true;
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]) SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
_sendFinTourMessage();
}); });
}); });
} }
@@ -380,34 +384,6 @@ class _TaskListPageState extends State<TaskListPage> {
MqttCore.instance.publishPayloadMessage("job", finTaskMessage.toJson()); 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) _sendTrackStationMessage(TaskInfo taskInfo)
{ {
@@ -417,16 +393,71 @@ var location = App.CurrentLocation;
var position = MyApp.currentPosition; var position = MyApp.currentPosition;
if (position != null) { if (position != null) {
trackStationMessage.pos = Pos(); trackStationMessage.pos = FinTaskPos();
trackStationMessage.pos!.lat = position.latitude; trackStationMessage.pos!.lat = position.latitude;
trackStationMessage.pos!.long = position.latitude; trackStationMessage.pos!.long = position.latitude;
} }
var json = jsonEncode(trackStationMessage.toJson());
MqttCore.instance.publishPayloadMessage("", trackStationMessage.toJson()); MqttCore.instance.publishPayloadMessage("", trackStationMessage.toJson());
} }
/*
"fin_tour": {
"tr_id": 211,
"com": "changed com#",
"track": {
"time": "2021-02-18T12:35:51Z",
"pos":
{
"lat": 53.595121,
"long": 9.907433,
"acc": 35
}
},
"tasks": [
{
"s_id": 1,
"time": "2021-02-18T12:32:10Z",
"pos":
{
"lat": 53.595124,
"long": 9.907435
}
},
}
}
}
*/
_sendFinTourMessage() {
var finTourMessage = FinTourMessage();
finTourMessage.finTour = FinTour();
finTourMessage.finTour.trId = widget.tour.id;
finTourMessage.finTour.com = "Mir doch egal!";
var position = MyApp.currentPosition;
if (position != null) {
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;
}
finTourMessage.finTour.tasks = [];
for(var taskInfo in _taskList) {
var finTourTask = FinTourTask();
finTourTask.sId = taskInfo.task.sId;
finTourTask.time = DateTime.now().toIso8601String();
finTourTask.pos = FinTaskPos();
finTourTask.pos.lat = 0;
finTourTask.pos.long = 0;
finTourMessage.finTour.tasks.add(finTourTask);
}
MqttCore.instance.publishPayloadMessage("job", finTourMessage.toJson());
}
/*private JObject CreateFinTourMessage() /*private JObject CreateFinTourMessage()
{ {
var payloadObject = new JObject(); var payloadObject = new JObject();
+2 -1
View File
@@ -6,6 +6,7 @@ import 'package:kumi_popup_window/kumi_popup_window.dart';
import 'package:stadtbote/main.dart'; import 'package:stadtbote/main.dart';
import 'package:stadtbote/protocoll_messages/accept_job_message.dart'; import 'package:stadtbote/protocoll_messages/accept_job_message.dart';
import 'package:stadtbote/model/job.dart'; import 'package:stadtbote/model/job.dart';
import 'package:stadtbote/protocoll_messages/fin_task_message.dart';
import 'package:stadtbote/tools/constants.dart'; import 'package:stadtbote/tools/constants.dart';
import 'package:stadtbote/tools/mqtt_core.dart'; import 'package:stadtbote/tools/mqtt_core.dart';
import 'package:stadtbote/tools/util.dart'; import 'package:stadtbote/tools/util.dart';
@@ -173,7 +174,7 @@ _sendAnswer(Job job, int item) {
message.reaction.item = item; message.reaction.item = item;
message.reaction.track = Track(); message.reaction.track = Track();
message.reaction.track.time = DateTime.now().toUtc().toIso8601String(); message.reaction.track.time = DateTime.now().toUtc().toIso8601String();
message.reaction.track.pos = Pos(); message.reaction.track.pos = FinTaskPos();
message.reaction.track.pos.lat = currentPosition != null ? currentPosition.latitude : 0.0; message.reaction.track.pos.lat = currentPosition != null ? currentPosition.latitude : 0.0;
message.reaction.track.pos.long = currentPosition != null ? currentPosition.longitude : 0.0; message.reaction.track.pos.long = currentPosition != null ? currentPosition.longitude : 0.0;
message.reaction.track.pos.acc = currentPosition != null ? currentPosition.accuracy : 0.0; message.reaction.track.pos.acc = currentPosition != null ? currentPosition.accuracy : 0.0;
+2 -15
View File
@@ -1,4 +1,5 @@
import 'package:json_annotation/json_annotation.dart'; import 'package:json_annotation/json_annotation.dart';
import 'package:stadtbote/protocoll_messages/fin_task_message.dart';
part 'accept_job_message.g.dart'; part 'accept_job_message.g.dart';
@@ -30,7 +31,7 @@ class Reaction {
@JsonSerializable() @JsonSerializable()
@JsonSerializable()class Track { @JsonSerializable()class Track {
late String time; late String time;
late Pos pos; late FinTaskPos pos;
Track(); Track();
@@ -38,17 +39,3 @@ class Reaction {
Map<String, dynamic> toJson() => _$TrackToJson(this); Map<String, dynamic> toJson() => _$TrackToJson(this);
} }
@JsonSerializable()
class Pos {
late double lat;
late double long;
late double acc;
Pos();
factory Pos.fromJson(Map<String, dynamic> json) => _$PosFromJson(json);
Map<String, dynamic> toJson() => _$PosToJson(this);
}
@@ -30,20 +30,9 @@ Map<String, dynamic> _$ReactionToJson(Reaction instance) => <String, dynamic>{
Track _$TrackFromJson(Map<String, dynamic> json) => Track() Track _$TrackFromJson(Map<String, dynamic> json) => Track()
..time = json['time'] as String ..time = json['time'] as String
..pos = Pos.fromJson(json['pos'] as Map<String, dynamic>); ..pos = FinTaskPos.fromJson(json['pos'] as Map<String, dynamic>);
Map<String, dynamic> _$TrackToJson(Track instance) => <String, dynamic>{ Map<String, dynamic> _$TrackToJson(Track instance) => <String, dynamic>{
'time': instance.time, 'time': instance.time,
'pos': instance.pos, 'pos': instance.pos,
}; };
Pos _$PosFromJson(Map<String, dynamic> json) => Pos()
..lat = (json['lat'] as num).toDouble()
..long = (json['long'] as num).toDouble()
..acc = (json['acc'] as num).toDouble();
Map<String, dynamic> _$PosToJson(Pos instance) => <String, dynamic>{
'lat': instance.lat,
'long': instance.long,
'acc': instance.acc,
};
@@ -51,6 +51,8 @@ class FinTaskPos {
late double long; late double long;
late double acc;
FinTaskPos(); FinTaskPos();
factory FinTaskPos.fromJson(Map<String, dynamic> json) => _$FinTaskPosFromJson(json); factory FinTaskPos.fromJson(Map<String, dynamic> json) => _$FinTaskPosFromJson(json);
@@ -39,10 +39,12 @@ Map<String, dynamic> _$TaskToJson(Task instance) => <String, dynamic>{
FinTaskPos _$FinTaskPosFromJson(Map<String, dynamic> json) => FinTaskPos() FinTaskPos _$FinTaskPosFromJson(Map<String, dynamic> json) => FinTaskPos()
..lat = (json['lat'] as num).toDouble() ..lat = (json['lat'] as num).toDouble()
..long = (json['long'] as num).toDouble(); ..long = (json['long'] as num).toDouble()
..acc = (json['acc'] as num).toDouble();
Map<String, dynamic> _$FinTaskPosToJson(FinTaskPos instance) => Map<String, dynamic> _$FinTaskPosToJson(FinTaskPos instance) =>
<String, dynamic>{ <String, dynamic>{
'lat': instance.lat, 'lat': instance.lat,
'long': instance.long, 'long': instance.long,
'acc': instance.acc,
}; };
@@ -0,0 +1,52 @@
import 'package:isar/isar.dart';
import 'package:json_annotation/json_annotation.dart';
import 'package:stadtbote/protocoll_messages/accept_job_message.dart';
import 'package:stadtbote/protocoll_messages/fin_task_message.dart';
import 'package:stadtbote/tools/util.dart';
part 'fin_tour_message.g.dart';
@JsonSerializable()
class FinTourMessage {
late FinTour finTour;
FinTourMessage();
factory FinTourMessage.fromJson(Map<String, dynamic> json) => _$FinTourMessageFromJson(json);
Map<String, dynamic> toJson() => _$FinTourMessageToJson(this);
}
@JsonSerializable()
class FinTour {
@JsonKey(name: 'tr_id')
late int trId;
late String com;
late Track track;
late List<FinTourTask> tasks;
FinTour();
factory FinTour.fromJson(Map<String, dynamic> json) => _$FinTourFromJson(json);
Map<String, dynamic> toJson() => _$FinTourToJson(this);
}
@JsonSerializable()
class FinTourTask {
@JsonKey(name: 's_id')
late int sId;
late String time;
late FinTaskPos pos;
FinTourTask();
factory FinTourTask.fromJson(Map<String, dynamic> json) => _$FinTourTaskFromJson(json);
Map<String, dynamic> toJson() => _$FinTourTaskToJson(this);
}
@@ -0,0 +1,43 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'fin_tour_message.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
FinTourMessage _$FinTourMessageFromJson(Map<String, dynamic> json) =>
FinTourMessage()
..finTour = FinTour.fromJson(json['finTour'] as Map<String, dynamic>);
Map<String, dynamic> _$FinTourMessageToJson(FinTourMessage instance) =>
<String, dynamic>{
'finTour': instance.finTour,
};
FinTour _$FinTourFromJson(Map<String, dynamic> json) => FinTour()
..trId = json['tr_id'] as int
..com = json['com'] as String
..track = Track.fromJson(json['track'] as Map<String, dynamic>)
..tasks = (json['tasks'] as List<dynamic>)
.map((e) => FinTourTask.fromJson(e as Map<String, dynamic>))
.toList();
Map<String, dynamic> _$FinTourToJson(FinTour instance) => <String, dynamic>{
'tr_id': instance.trId,
'com': instance.com,
'track': instance.track,
'tasks': instance.tasks,
};
FinTourTask _$FinTourTaskFromJson(Map<String, dynamic> json) => FinTourTask()
..sId = json['s_id'] as int
..time = json['time'] as String
..pos = FinTaskPos.fromJson(json['pos'] as Map<String, dynamic>);
Map<String, dynamic> _$FinTourTaskToJson(FinTourTask instance) =>
<String, dynamic>{
's_id': instance.sId,
'time': instance.time,
'pos': instance.pos,
};
@@ -1,34 +0,0 @@
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);
}*/
@@ -1,20 +0,0 @@
// 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,
};
@@ -1,5 +1,6 @@
import 'package:isar/isar.dart'; import 'package:isar/isar.dart';
import 'package:json_annotation/json_annotation.dart'; import 'package:json_annotation/json_annotation.dart';
import 'package:stadtbote/protocoll_messages/fin_task_message.dart';
import 'package:stadtbote/tools/util.dart'; import 'package:stadtbote/tools/util.dart';
part 'track_station_message.g.dart'; part 'track_station_message.g.dart';
@@ -11,7 +12,7 @@ class TrackStationMessage {
late String time; late String time;
late Pos? pos; late FinTaskPos? pos;
TrackStationMessage(); TrackStationMessage();
@@ -19,16 +20,3 @@ class TrackStationMessage {
Map<String, dynamic> toJson() => _$TrackStationMessageToJson(this); 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);
}
@@ -12,7 +12,7 @@ TrackStationMessage _$TrackStationMessageFromJson(Map<String, dynamic> json) =>
..time = json['time'] as String ..time = json['time'] as String
..pos = json['pos'] == null ..pos = json['pos'] == null
? null ? null
: Pos.fromJson(json['pos'] as Map<String, dynamic>); : FinTaskPos.fromJson(json['pos'] as Map<String, dynamic>);
Map<String, dynamic> _$TrackStationMessageToJson( Map<String, dynamic> _$TrackStationMessageToJson(
TrackStationMessage instance) => TrackStationMessage instance) =>
@@ -21,12 +21,3 @@ Map<String, dynamic> _$TrackStationMessageToJson(
'time': instance.time, 'time': instance.time,
'pos': instance.pos, '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,
};