Erweiterungen
This commit is contained in:
1 parent
a39991bb63
commit
8e5462bc91
30 files changed
+173
-2664
No files matched your search
@@ -8,6 +8,7 @@ class Constants {
|
||||
static const String messageTopicSessionInfoUpdate = "status_info_updated";
|
||||
static const String messageTopicStatusInfoUpdate = "session_info_updated";
|
||||
static const String messageTopicJobReceived = "job_received";
|
||||
static const String messageTopicJobDeleted = "job_deleted";
|
||||
static const String messageTopicMessageReceived = "message_received";
|
||||
static const String messageTopicPushContentView = "push_content_view";
|
||||
static const String messageTopicPopContentView = "pop_content_view";
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
import 'package:stadtbote/model/job.dart';
|
||||
|
||||
class JobDeletedMessage {
|
||||
final int jobId;
|
||||
|
||||
JobDeletedMessage({required this.jobId});
|
||||
}
|
||||
+38
-13
@@ -3,16 +3,20 @@ import 'dart:convert';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:flutter_broadcast_receiver/flutter_broadcast_receiver.dart';
|
||||
import 'package:isar/isar.dart';
|
||||
import 'package:mqtt_client/mqtt_client.dart';
|
||||
import 'package:mqtt_client/mqtt_server_client.dart';
|
||||
import 'package:stadtbote/model/bootstrap_request.dart';
|
||||
import 'package:stadtbote/model/bootstrap_response_payload.dart';
|
||||
import 'package:stadtbote/model/device_object.dart';
|
||||
import 'package:stadtbote/protocoll_messages/bootstrap_request.dart';
|
||||
import 'package:stadtbote/protocoll_messages/bootstrap_response_payload.dart';
|
||||
import 'package:stadtbote/protocoll_messages/device_object.dart';
|
||||
import 'package:stadtbote/model/job.dart';
|
||||
import 'package:stadtbote/model/message.dart';
|
||||
import 'package:stadtbote/model/payload_container.dart';
|
||||
import 'package:stadtbote/model/start_session_message.dart';
|
||||
import 'package:stadtbote/protocoll_messages/job_del_message.dart';
|
||||
import 'package:stadtbote/protocoll_messages/payload_container.dart';
|
||||
import 'package:stadtbote/protocoll_messages/start_session_message.dart';
|
||||
import 'package:stadtbote/protocoll_messages/sync_jobs_message.dart';
|
||||
import 'package:stadtbote/tools/connection_status.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/session_info_update.dart';
|
||||
@@ -186,6 +190,8 @@ class MqttCore {
|
||||
}
|
||||
|
||||
void _sessionMessageReceived(payloadData) async {
|
||||
await _sendSyncMessage();
|
||||
|
||||
var statusMessage = Status.fromJson(payloadData['status']);
|
||||
|
||||
await MyApp.isarInstance.writeTxn(() async {
|
||||
@@ -219,18 +225,18 @@ class MqttCore {
|
||||
}
|
||||
}
|
||||
|
||||
void _jobDeleteReceived(payloadData) async {
|
||||
Util.logInfo('_jobDeleteReceived');
|
||||
|
||||
/*for (var foundJobData in payloadData) {
|
||||
Job newJob = Job.fromJson(foundJobData);
|
||||
void _jobDeleteReceived(List<dynamic> payloadData) async {
|
||||
Map<String, dynamic> map = {};
|
||||
map["jobDel"] = payloadData;
|
||||
var jobDelMessage = JobDelMessage.fromJson(map);
|
||||
|
||||
for(var jobId in jobDelMessage.jobDel) {
|
||||
await MyApp.isarInstance.writeTxn(() async {
|
||||
await MyApp.isarInstance.jobs.put(newJob);
|
||||
await MyApp.isarInstance.jobs.delete(jobId);
|
||||
});
|
||||
|
||||
BroadcastReceiver().publish<JobReceivedMessage>(Constants.messageTopicJobReceived, arguments: JobReceivedMessage(job: newJob));
|
||||
}*/
|
||||
BroadcastReceiver().publish<JobDeletedMessage>(Constants.messageTopicJobDeleted, arguments: JobDeletedMessage(jobId: jobId));
|
||||
}
|
||||
}
|
||||
|
||||
void _syncRequestReceived(payloadData) async {
|
||||
@@ -335,4 +341,23 @@ class MqttCore {
|
||||
var messageId = _mqttClient.publishMessage(topic, MqttQos.exactlyOnce, payload!);
|
||||
Util.logInfo("send start session json with messageId: $messageId");
|
||||
}
|
||||
|
||||
_sendSyncMessage() async
|
||||
{
|
||||
var jobs = await MyApp.isarInstance.jobs.filter().stateGreaterThan(-1).findAll();
|
||||
|
||||
var answer = SyncJobsMessage();
|
||||
answer.sync = SyncJobMessageSync();
|
||||
answer.sync.jobs = [];
|
||||
answer.sync.utcUnixTime = DateTime.now().toUtc().millisecondsSinceEpoch ~/ 1000;
|
||||
for (var job in jobs) {
|
||||
SyncJobMessageJob syncJob = SyncJobMessageJob();
|
||||
syncJob.state = job.state;
|
||||
syncJob.id = job.id;
|
||||
syncJob.ver = job.ver;
|
||||
answer.sync.jobs.add(syncJob);
|
||||
}
|
||||
|
||||
MqttCore.instance.publishPayloadMessage("server", answer.toJson());
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user