From 957b944b559d8658e61c14d79474aedc850267b1 Mon Sep 17 00:00:00 2001 From: Sven Carstensen Date: Wed, 31 Jan 2024 09:40:48 +0100 Subject: [PATCH] Erweiterungen --- lib/content_views/assigned_jobs_page.dart | 6 +-- lib/popups/accept_jobs_popup.dart | 15 ++++--- lib/tools/mqtt_core.dart | 52 +++++++++++++++++++++++ 3 files changed, 62 insertions(+), 11 deletions(-) diff --git a/lib/content_views/assigned_jobs_page.dart b/lib/content_views/assigned_jobs_page.dart index 07695f9..7085e6e 100644 --- a/lib/content_views/assigned_jobs_page.dart +++ b/lib/content_views/assigned_jobs_page.dart @@ -160,11 +160,11 @@ class _AssignedJobsPageState extends State { const SizedBox(height: 20), Row(children: [ Expanded( - child: getDefaultButton('Ablehnen', () => {_sendAnswer(job, 1)}), + child: getDefaultButton(!job.global ? 'Ablehnen' : 'Ignorieren', () => { _sendAnswer(job, !job.global ? 2: 3)}), ), const SizedBox(width: 20), Expanded( - child: getDefaultButton('Annehmen', () => {_sendAnswer(job, 2)}), + child: getDefaultButton('Annehmen', () => {_sendAnswer(job, 1)}), ) ]) ], @@ -193,6 +193,4 @@ class _AssignedJobsPageState extends State { message.reaction.track.pos.acc = 1; MqttCore.instance.publishPayloadMessage("server", message.toJson()); - - Util.logInfo('test'); }} diff --git a/lib/popups/accept_jobs_popup.dart b/lib/popups/accept_jobs_popup.dart index cae7de6..798d27e 100644 --- a/lib/popups/accept_jobs_popup.dart +++ b/lib/popups/accept_jobs_popup.dart @@ -7,6 +7,7 @@ import 'package:stadtbote/main.dart'; import 'package:stadtbote/model/accept_job_message.dart'; import 'package:stadtbote/model/job.dart'; import 'package:stadtbote/tools/constants.dart'; +import 'package:stadtbote/tools/mqtt_core.dart'; import 'package:stadtbote/tools/util.dart'; import 'package:badges/badges.dart' as badges; import 'package:uuid/uuid.dart'; @@ -61,13 +62,12 @@ void showAcceptJobsPopup(BuildContext context) async { ); } +// "Ablehnen" : "Ignorieren"; + Future> _createListEntries() async { List entries = []; var jobs = await MyApp.isarInstance.jobs.filter().stateEqualTo(0).findAll(); - jobs.addAll(await MyApp.isarInstance.jobs.filter().stateEqualTo(0).findAll()); - jobs.addAll(await MyApp.isarInstance.jobs.filter().stateEqualTo(0).findAll()); - jobs.addAll(await MyApp.isarInstance.jobs.filter().stateEqualTo(0).findAll()); for (var job in jobs) { entries.add(ExpandableNotifier( child: ListTile( @@ -144,11 +144,11 @@ Future> _createListEntries() async { const SizedBox(height: 20), Row(children: [ Expanded( - child: getDefaultButton('Ablehnen', () => {_sendAnswer(1)}), + child: getDefaultButton(!job.global ? 'Ablehnen' : 'Ignorieren', () => { _sendAnswer(!job.global ? 2: 3)}), ), const SizedBox(width: 20), Expanded( - child: getDefaultButton('Annehmen', () => {_sendAnswer(2)}), + child: getDefaultButton('Annehmen', () => {_sendAnswer(1)}), ) ]) ], @@ -197,11 +197,12 @@ private void SendAnswer(int item) _sendAnswer(int item) { var answer = AcceptJobMessage(); answer.reaction = Reaction(); - answer.reaction.id = Uuid().v4().toString(); + answer.reaction.item = item; + answer.reaction.id = const Uuid().v4().toString(); answer.reaction.track = Track(); answer.reaction.track.time = DateTime.now().toUtc().toIso8601String(); var json = answer.toJson(); - Util.logInfo('test'); + MqttCore.instance.publishPayloadMessage("server", json); } diff --git a/lib/tools/mqtt_core.dart b/lib/tools/mqtt_core.dart index d59f9be..c7caf41 100644 --- a/lib/tools/mqtt_core.dart +++ b/lib/tools/mqtt_core.dart @@ -147,10 +147,22 @@ class MqttCore { _sessionMessageReceived(payloadData); break; + case 'ranks': + _rankingMessageReceived(payloadData); + break; + case 'jobs': _jobMessageReceived(payloadData); break; + case 'job_del': + _jobDeleteReceived(payloadData); + break; + + case 'sync_request': + _syncRequestReceived(payloadData); + break; + case "mssg": _messageMessageReceived(payloadData); break; @@ -183,6 +195,18 @@ class MqttCore { BroadcastReceiver().publish(Constants.messageTopicStatusInfoUpdate, arguments: StatusInfoUpdate(status: statusMessage)); } + void _rankingMessageReceived(payloadData) async { + Util.logInfo('_rankingMessageReceived'); + + /*var statusMessage = Status.fromJson(payloadData['status']); + + await MyApp.isarInstance.writeTxn(() async { + await MyApp.isarInstance.status.put(statusMessage); + }); + + BroadcastReceiver().publish(Constants.messageTopicStatusInfoUpdate, arguments: StatusInfoUpdate(status: statusMessage));*/ + } + void _jobMessageReceived(payloadData) async { for (var foundJobData in payloadData) { Job newJob = Job.fromJson(foundJobData); @@ -195,6 +219,34 @@ class MqttCore { } } + void _jobDeleteReceived(payloadData) async { + Util.logInfo('_jobDeleteReceived'); + + /*for (var foundJobData in payloadData) { + Job newJob = Job.fromJson(foundJobData); + + await MyApp.isarInstance.writeTxn(() async { + await MyApp.isarInstance.jobs.put(newJob); + }); + + BroadcastReceiver().publish(Constants.messageTopicJobReceived, arguments: JobReceivedMessage(job: newJob)); + }*/ + } + + void _syncRequestReceived(payloadData) async { + Util.logInfo('_syncRequestReceived'); + + /*for (var foundJobData in payloadData) { + Job newJob = Job.fromJson(foundJobData); + + await MyApp.isarInstance.writeTxn(() async { + await MyApp.isarInstance.jobs.put(newJob); + }); + + BroadcastReceiver().publish(Constants.messageTopicJobReceived, arguments: JobReceivedMessage(job: newJob)); + }*/ + } + void _messageMessageReceived(Map payloadData) async { var newMessage = Message.fromJson(payloadData);