Refactoring
This commit is contained in:
1 parent
0d647b76d0
commit
e97194fa70
2 files changed
+29
-36
No files matched your search
+6
-18
@@ -18,6 +18,7 @@ import 'package:stadtbote/tools/connection_status.dart';
|
|||||||
import 'package:stadtbote/tools/message_service.dart';
|
import 'package:stadtbote/tools/message_service.dart';
|
||||||
import 'package:stadtbote/tools/messages/job_received_message.dart';
|
import 'package:stadtbote/tools/messages/job_received_message.dart';
|
||||||
import 'package:stadtbote/tools/messages/refresh_badges_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/main_page.dart';
|
||||||
import 'content_views/utils/content_view_widget.dart';
|
import 'content_views/utils/content_view_widget.dart';
|
||||||
@@ -66,26 +67,13 @@ class MyApp extends StatefulWidget {
|
|||||||
State<MyApp> createState() => _MyAppState();
|
State<MyApp> createState() => _MyAppState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _MyAppState extends State<MyApp> with WidgetsBindingObserver {
|
class _MyAppState extends State<MyApp> {
|
||||||
@override
|
final MqttCore mqttCore = MqttCore();
|
||||||
void initState() {
|
|
||||||
WidgetsBinding.instance.addObserver(this);
|
@override void initState() {
|
||||||
|
super.initState();
|
||||||
|
|
||||||
_startLocationService();
|
_startLocationService();
|
||||||
|
|
||||||
super.initState();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {
|
|
||||||
WidgetsBinding.instance.removeObserver(this);
|
|
||||||
super.dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void didChangeAppLifecycleState(AppLifecycleState state) async {
|
|
||||||
super.didChangeAppLifecycleState(state);
|
|
||||||
Util.logInfo('Lifecylcle changes: $state');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
+23
-18
@@ -180,31 +180,28 @@ class MqttCore {
|
|||||||
Util.logInfo('_setupMqtt called');
|
Util.logInfo('_setupMqtt called');
|
||||||
|
|
||||||
_mqttClient!.updates?.listen((List<MqttReceivedMessage<MqttMessage>> c) {
|
_mqttClient!.updates?.listen((List<MqttReceivedMessage<MqttMessage>> c) {
|
||||||
|
for (var message in c) {
|
||||||
try {
|
try {
|
||||||
final MqttPublishMessage message = c[0].payload as MqttPublishMessage;
|
if (message.topic.endsWith(_clientId)) {
|
||||||
String payload = utf8.decode(MqttPublishPayload.bytesToStringAsString(message.payload.message).codeUnits);
|
var messageBytes = message.payload.;
|
||||||
var topic = message.variableHeader?.topicName;
|
String payload = utf8.decode(GZipDecoder().decodeBytes(messageBytes));
|
||||||
|
|
||||||
|
var topicArray = message.variableHeader?.topicName;
|
||||||
|
var topicArraySplited = topicArray!.split("/");
|
||||||
|
var topic = topicArraySplited[3];
|
||||||
|
|
||||||
Util.logInfo('message received\ntopic: $topic\nmessage: $payload');
|
Util.logInfo('message received\ntopic: $topic\nmessage: $payload');
|
||||||
|
|
||||||
Map<String, dynamic> messageData = jsonDecode(payload);
|
switch(topic) {
|
||||||
|
|
||||||
for (var entry in messageData.keys) {
|
|
||||||
if (entry == 'payload') {
|
|
||||||
var payload = messageData[entry];
|
|
||||||
for (var payloadEntry in payload.keys) {
|
|
||||||
var payloadData = payload[payloadEntry];
|
|
||||||
|
|
||||||
switch (payloadEntry) {
|
|
||||||
case 'session':
|
case 'session':
|
||||||
_sessionMessageReceived(payloadData);
|
_sessionMessageReceived(jsonDecode(payload));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'location_status':
|
case 'status':
|
||||||
_locationSatusMessageReceived(jsonDecode(payload));
|
_statusMessageReceived(jsonDecode(payload));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'ranking':
|
case 'ranks':
|
||||||
_rankingMessageReceived(jsonDecode(payload));
|
_rankingMessageReceived(jsonDecode(payload));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -233,8 +230,6 @@ class MqttCore {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch(ex) {
|
} catch(ex) {
|
||||||
Util.logException(ex.toString());
|
Util.logException(ex.toString());
|
||||||
}
|
}
|
||||||
@@ -277,6 +272,16 @@ class MqttCore {
|
|||||||
|
|
||||||
_startTrackTimer();
|
_startTrackTimer();
|
||||||
}
|
}
|
||||||
|
void _statusMessageReceived(payloadData) async {
|
||||||
|
var statusMessage = Status.fromJson(payloadData);
|
||||||
|
|
||||||
|
await MyApp.isarInstance.writeTxn(() async {
|
||||||
|
await MyApp.isarInstance.status.clear();
|
||||||
|
await MyApp.isarInstance.status.put(statusMessage);
|
||||||
|
});
|
||||||
|
|
||||||
|
MessageService().publish<StatusInfoUpdate>(Constants.messageTopicStatusInfoUpdated, arguments: StatusInfoUpdate(status: statusMessage));
|
||||||
|
}
|
||||||
|
|
||||||
void _locationSatusMessageReceived(payloadData) async {
|
void _locationSatusMessageReceived(payloadData) async {
|
||||||
var locationStatus = LocationStatus.fromJson(payloadData);
|
var locationStatus = LocationStatus.fromJson(payloadData);
|
||||||
|
|||||||
Reference in new issue
Block a user