From 9e28b78571dbdedae108347060b8a2f91de06832 Mon Sep 17 00:00:00 2001 From: Sven Carstensen Date: Mon, 6 May 2024 09:35:48 +0200 Subject: [PATCH] Refactoring --- lib/content_views/main_page.dart | 4 +-- lib/main.dart | 3 --- .../messages/disconnect_client_message.dart | 3 +++ lib/tools/mqtt_core.dart | 26 +++++++++++++++++-- 4 files changed, 28 insertions(+), 8 deletions(-) create mode 100644 lib/tools/messages/disconnect_client_message.dart diff --git a/lib/content_views/main_page.dart b/lib/content_views/main_page.dart index 2d51c45..cbc6018 100644 --- a/lib/content_views/main_page.dart +++ b/lib/content_views/main_page.dart @@ -1,5 +1,3 @@ -import 'dart:convert'; - import 'package:flutter/material.dart'; import 'package:isar/isar.dart'; import 'package:stadtbote/content_views/accepted_jobs_page.dart'; @@ -18,6 +16,7 @@ import 'package:stadtbote/protocoll_messages/logout_message.dart'; import 'package:stadtbote/tools/message_service.dart'; import 'package:stadtbote/tools/messages/PublishPayloadMessage.dart'; import 'package:stadtbote/tools/messages/connect_client_message.dart'; +import 'package:stadtbote/tools/messages/disconnect_client_message.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'; @@ -25,7 +24,6 @@ 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'; import 'package:stadtbote/tools/messages/refresh_badges_message.dart'; -import 'package:stadtbote/tools/mqtt_core.dart'; import '../main.dart'; import '../tools/constants.dart'; diff --git a/lib/main.dart b/lib/main.dart index 3a4c866..9699e03 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -18,7 +18,6 @@ import 'package:stadtbote/tools/connection_status.dart'; import 'package:stadtbote/tools/message_service.dart'; import 'package:stadtbote/tools/messages/job_received_message.dart'; import 'package:stadtbote/tools/messages/refresh_badges_message.dart'; -import 'package:stadtbote/tools/mqtt_core.dart'; import 'content_views/main_page.dart'; import 'content_views/utils/content_view_widget.dart'; @@ -72,8 +71,6 @@ class _MyAppState extends State with WidgetsBindingObserver { void initState() { WidgetsBinding.instance.addObserver(this); - MqttCore.setup(); - _startLocationService(); super.initState(); diff --git a/lib/tools/messages/disconnect_client_message.dart b/lib/tools/messages/disconnect_client_message.dart new file mode 100644 index 0000000..5d81a75 --- /dev/null +++ b/lib/tools/messages/disconnect_client_message.dart @@ -0,0 +1,3 @@ +class DisconnectClientMessage { + DisconnectClientMessage(); +} \ No newline at end of file diff --git a/lib/tools/mqtt_core.dart b/lib/tools/mqtt_core.dart index c63e588..279c735 100644 --- a/lib/tools/mqtt_core.dart +++ b/lib/tools/mqtt_core.dart @@ -25,14 +25,20 @@ import 'package:stadtbote/protocoll_messages/sync_jobs_message.dart'; import 'package:stadtbote/protocoll_messages/track_message.dart'; import 'package:stadtbote/tools/connection_status.dart'; import 'package:stadtbote/tools/message_service.dart'; +import 'package:stadtbote/tools/messages/PublishPayloadMessage.dart'; +import 'package:stadtbote/tools/messages/connect_client_message.dart'; +import 'package:stadtbote/tools/messages/current_connection_status_message.dart'; +import 'package:stadtbote/tools/messages/disconnect_client_message.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/ranking_updated.dart'; +import 'package:stadtbote/tools/messages/request_connection_status_message.dart'; import 'package:stadtbote/tools/messages/session_info_update.dart'; import 'package:stadtbote/tools/messages/status_info_update.dart'; // ignore: depend_on_referenced_packages import 'package:typed_data/typed_buffers.dart'; +import 'package:uuid/uuid.dart'; import '../main.dart'; import '../model/session_status.dart'; @@ -153,6 +159,22 @@ class MqttCore { } } + publishPayloadMessage(String topic, Map payload) { + var payloadContainer = PayloadContainer(); + payloadContainer.id = const Uuid().v4().toString(); + payloadContainer.recv = topic; + payloadContainer.store = true; + payloadContainer.payload = payload; + + var json = jsonEncode(payloadContainer.toJson()); + + try { + publishText(_toServerTopic, json); + } catch (e) { + _enqueueMessage(_toServerTopic, jsonEncode(payloadContainer.toJson())); + } + } + void _setupMqtt() async { Util.logInfo('_setupMqtt called'); @@ -433,7 +455,7 @@ class MqttCore { var startSessionMessage = StartSessionMessage(); var jsonMap = startSessionMessage.toJson(); var json = jsonEncode(jsonMap); - publishMessage("session", json); + publishText("session", json); } _sendSyncMessage() async @@ -452,7 +474,7 @@ class MqttCore { answer.sync.jobs.add(syncJob); } - MqttCore.instance.publishMessage("sync_request_response", jsonEncode(answer.toJson())); + publishPayloadMessage("sync_request_response", jsonEncode(answer.toJson())); } void _startTrackTimer() {