From 2e00b98f104235c89c0ed19b848fa5f32bcfca41 Mon Sep 17 00:00:00 2001 From: Sven Carstensen Date: Fri, 15 Mar 2024 12:16:22 +0100 Subject: [PATCH] =?UTF-8?q?Bei=20Ablehnen=20werden=20Jobs=20gleich=20auf?= =?UTF-8?q?=20dem=20Ger=C3=A4t=20gel=C3=B6scht?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/content_views/assigned_jobs_page.dart | 9 +++++++-- lib/content_views/main_page.dart | 5 +++++ lib/popups/accept_jobs_popup.dart | 9 +++++++-- lib/tools/constants.dart | 1 + lib/tools/messages/refresh_badges_message.dart | 4 ++++ 5 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 lib/tools/messages/refresh_badges_message.dart diff --git a/lib/content_views/assigned_jobs_page.dart b/lib/content_views/assigned_jobs_page.dart index 6a9132b..14eea96 100644 --- a/lib/content_views/assigned_jobs_page.dart +++ b/lib/content_views/assigned_jobs_page.dart @@ -9,6 +9,8 @@ import 'package:intl/intl.dart'; import 'package:badges/badges.dart' as badges; import 'package:stadtbote/protocoll_messages/accept_job_message.dart'; import 'package:stadtbote/protocoll_messages/fin_task_message.dart'; +import 'package:stadtbote/tools/message_service.dart'; +import 'package:stadtbote/tools/messages/refresh_badges_message.dart'; import 'package:stadtbote/tools/mqtt_core.dart'; import '../main.dart'; @@ -198,8 +200,11 @@ class _AssignedJobsPageState extends State { MqttCore.instance.publishText("reaction", jsonEncode(message.toJson())); - job.state = 9; - MyApp.isarInstance.writeTxnSync(() => {MyApp.isarInstance.jobs.putSync(job)}); + MyApp.isarInstance.writeTxnSync(() { + MyApp.isarInstance.jobs.deleteSync(job.id); + }); + + MessageService().publish(Constants.messageTopicRefreshBadges, arguments: RefreshBadgesMessage()); _entries = await _createListEntries(); diff --git a/lib/content_views/main_page.dart b/lib/content_views/main_page.dart index 80e6e9e..5c08728 100644 --- a/lib/content_views/main_page.dart +++ b/lib/content_views/main_page.dart @@ -19,6 +19,7 @@ import 'package:stadtbote/tools/message_service.dart'; import 'package:stadtbote/tools/messages/job_deleted_message.dart'; import 'package:stadtbote/tools/messages/job_received_message.dart'; import 'package:stadtbote/tools/messages/message_message.dart'; +import 'package:stadtbote/tools/messages/refresh_badges_message.dart'; import 'package:stadtbote/tools/messages/session_info_update.dart'; import 'package:badges/badges.dart' as badges; import 'package:stadtbote/tools/messages/status_info_update.dart'; @@ -276,6 +277,10 @@ class _MainPageState extends State { MessageService().subscribe(Constants.messageTopicJobDeleted, this, (JobDeletedMessage job) { _refreshBadges(); }); + + MessageService().subscribe(Constants.messageTopicRefreshBadges, this, (RefreshBadgesMessage refreshMessage) { + _refreshBadges(); + }); } void _exitMessages() { diff --git a/lib/popups/accept_jobs_popup.dart b/lib/popups/accept_jobs_popup.dart index 435e146..6bff8dd 100644 --- a/lib/popups/accept_jobs_popup.dart +++ b/lib/popups/accept_jobs_popup.dart @@ -8,6 +8,8 @@ import 'package:stadtbote/protocoll_messages/accept_job_message.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/message_service.dart'; +import 'package:stadtbote/tools/messages/refresh_badges_message.dart'; import 'package:stadtbote/tools/mqtt_core.dart'; import 'package:stadtbote/tools/util.dart'; import 'package:badges/badges.dart' as badges; @@ -169,6 +171,9 @@ _sendAnswer(Job job, int item) { MqttCore.instance.publishText("reaction", jsonEncode(message.toJson())); - job.state = 9; - MyApp.isarInstance.writeTxnSync(() => {MyApp.isarInstance.jobs.putSync(job)}); + MyApp.isarInstance.writeTxnSync(() { + MyApp.isarInstance.jobs.deleteSync(job.id); + }); + + MessageService().publish(Constants.messageTopicRefreshBadges, arguments: RefreshBadgesMessage()); } diff --git a/lib/tools/constants.dart b/lib/tools/constants.dart index daf9eae..775341a 100644 --- a/lib/tools/constants.dart +++ b/lib/tools/constants.dart @@ -11,6 +11,7 @@ class Constants { static const String messageTopicRankingUpdated = "ranking_updated"; static const String messageTopicJobReceived = "job_received"; static const String messageTopicJobDeleted = "job_deleted"; + static const String messageTopicRefreshBadges = "refresh_badges"; static const String messageTopicMessageReceived = "message_received"; static const String messageTopicPushContentView = "push_content_view"; static const String messageTopicPopContentView = "pop_content_view"; diff --git a/lib/tools/messages/refresh_badges_message.dart b/lib/tools/messages/refresh_badges_message.dart new file mode 100644 index 0000000..fb61c3e --- /dev/null +++ b/lib/tools/messages/refresh_badges_message.dart @@ -0,0 +1,4 @@ + +class RefreshBadgesMessage { + RefreshBadgesMessage(); +} \ No newline at end of file