diff --git a/lib/content_views/main_page.dart b/lib/content_views/main_page.dart index 55f169c..5ffe82a 100644 --- a/lib/content_views/main_page.dart +++ b/lib/content_views/main_page.dart @@ -256,9 +256,9 @@ class _MainPageState extends State { widget.sidValueNotifier.value = statusInfoUpdateMessage.status.sid; }); - BroadcastReceiver().subscribe(Constants.messageTopicJobReceived, (JobReceivedMessage jobReceivedMessage) { + /*BroadcastReceiver().subscribe(Constants.messageTopicJobReceived, (JobReceivedMessage jobReceivedMessage) { _jobReceived(jobReceivedMessage.job); - }); + });*/ } void _exitMessages() { @@ -274,13 +274,5 @@ class _MainPageState extends State { void _jobReceived(Job job) { _refreshBadges(); - - if (job.state == 0) { - _showAcceptanceDialog(job); - } - } - - void _showAcceptanceDialog(Job job) async { - await showAcceptJobsPopup(context, await MyApp.isarInstance.jobs.filter().stateEqualTo(0).findAll()); } } diff --git a/lib/content_views/messages_page.dart b/lib/content_views/messages_page.dart index 604717e..318bf00 100644 --- a/lib/content_views/messages_page.dart +++ b/lib/content_views/messages_page.dart @@ -96,8 +96,8 @@ class _MessagesPageState extends State { message.time = DateFormat("yyyy.mm.dd HH:mm").format(DateTime.now()); message.id = 0; - await MyApp.isarInstance.writeTxn(() async { - await MyApp.isarInstance.messages.put(message); + MyApp.isarInstance.writeTxnSync(() { + MyApp.isarInstance.messages.putSync(message); }); _messages.insert(0, types.TextMessage( diff --git a/lib/main.dart b/lib/main.dart index 497f3d2..fd1aff8 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -7,9 +7,11 @@ import 'package:isar/isar.dart'; import 'package:path_provider/path_provider.dart'; import 'package:stadtbote/model/message.dart'; import 'package:stadtbote/model/task_info.dart'; +import 'package:stadtbote/popups/accept_jobs_popup.dart'; import 'package:stadtbote/tools/colored_safe_area.dart'; import 'package:stadtbote/model/status.dart'; import 'package:stadtbote/tools/connection_status.dart'; +import 'package:stadtbote/tools/messages/job_received_message.dart'; import 'tools/mqtt_core.dart'; import 'content_views/main_page.dart'; @@ -317,6 +319,9 @@ class _MainState extends State
with SingleTickerProviderStateMixin { BroadcastReceiver().subscribe(Constants.messageTopicConnectionStatusChanged, (ConnectionStatus connectionStatus) { _connectionStatusChanged(connectionStatus); }); + BroadcastReceiver().subscribe(Constants.messageTopicJobReceived, (JobReceivedMessage jobReceivedMessage) { + _jobReceived(jobReceivedMessage.job); + }); } void _replaceContentView(ContentViewWidget widget) async { @@ -396,4 +401,10 @@ class _MainState extends State
with SingleTickerProviderStateMixin { void _connectionStatusChanged(ConnectionStatus connectionStatus) { _connectionLostValueNotifier.value = connectionStatus.status == ConnectionStatusEnum.notConnected; } + + void _jobReceived(Job job) async { + if (job.state == 0) { + await showAcceptJobsPopup(context, await MyApp.isarInstance.jobs.filter().stateEqualTo(0).findAll()); + } + } } diff --git a/lib/tools/mqtt_core.dart b/lib/tools/mqtt_core.dart index fdda5be..7078f8e 100644 --- a/lib/tools/mqtt_core.dart +++ b/lib/tools/mqtt_core.dart @@ -227,8 +227,8 @@ class MqttCore { for (var foundJobData in payloadData) { Job newJob = Job.fromJson(foundJobData); - await MyApp.isarInstance.writeTxn(() async { - await MyApp.isarInstance.jobs.put(newJob); + MyApp.isarInstance.writeTxnSync(() async { + MyApp.isarInstance.jobs.putSync(newJob); }); BroadcastReceiver().publish(Constants.messageTopicJobReceived, arguments: JobReceivedMessage(job: newJob));