Merge
This commit is contained in:
1 parent
880cdd65ff
commit
8586a23bfa
19 files changed
+179
-220
No files matched your search
@@ -11,7 +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 messageTopicUpdateBadges = "update_badges";
|
||||
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";
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
|
||||
class UpdateBadgesMessage {
|
||||
UpdateBadgesMessage();
|
||||
}
|
||||
+43
-35
@@ -9,7 +9,6 @@ import 'package:mqtt_client/mqtt_client.dart';
|
||||
import 'package:mqtt_client/mqtt_server_client.dart';
|
||||
import 'package:stadtbote/model/enqueued_message.dart';
|
||||
import 'package:stadtbote/model/log_entry.dart';
|
||||
import 'package:stadtbote/model/ranking.dart';
|
||||
import 'package:stadtbote/model/status.dart';
|
||||
import 'package:stadtbote/protocoll_messages/acknowledge_job.dart';
|
||||
import 'package:stadtbote/protocoll_messages/bootstrap_request.dart';
|
||||
@@ -28,7 +27,6 @@ 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/ranking_updated.dart';
|
||||
import 'package:stadtbote/tools/messages/session_info_update.dart';
|
||||
import 'package:stadtbote/tools/messages/status_info_update.dart';
|
||||
// ignore: depend_on_referenced_packages
|
||||
@@ -269,7 +267,7 @@ class MqttCore {
|
||||
}
|
||||
|
||||
void _rankingMessageReceived(List<dynamic> payloadData) async {
|
||||
Map<String, dynamic> rankingMap = {};
|
||||
/*Map<String, dynamic> rankingMap = {};
|
||||
rankingMap["ranks"] = payloadData;
|
||||
var ranking = Ranking.fromJson(rankingMap);
|
||||
|
||||
@@ -277,7 +275,7 @@ class MqttCore {
|
||||
await MyApp.isarInstance.rankings.put(ranking);
|
||||
});
|
||||
|
||||
MessageService().publish<RankingUpdated>(Constants.messageTopicRankingUpdated, arguments: RankingUpdated());
|
||||
MessageService().publish<RankingUpdated>(Constants.messageTopicRankingUpdated, arguments: RankingUpdated());*/
|
||||
}
|
||||
|
||||
void _jobMessageReceived(payloadData) async {
|
||||
@@ -306,17 +304,14 @@ class MqttCore {
|
||||
}
|
||||
}
|
||||
|
||||
void _jobDeleteReceived(List<dynamic> payloadData) async {
|
||||
Map<String, dynamic> map = {};
|
||||
map["jobDel"] = payloadData;
|
||||
var jobDelMessage = JobDelMessage.fromJson(map);
|
||||
|
||||
for(var jobId in jobDelMessage.jobDel) {
|
||||
void _jobDeleteReceived(payloadData) async {
|
||||
for(var jobId in payloadData) {
|
||||
await MyApp.isarInstance.writeTxn(() async {
|
||||
await MyApp.isarInstance.jobs.delete(jobId);
|
||||
});
|
||||
|
||||
MessageService().publish<JobDeletedMessage>(Constants.messageTopicJobDeleted, arguments: JobDeletedMessage(id: jobDelMessage.id));
|
||||
MessageService().publish<JobDeletedMessage>(Constants.messageTopicJobDeleted, arguments: JobDeletedMessage(id: jobId));
|
||||
}
|
||||
}
|
||||
|
||||
void _syncRequestReceived(payloadData) async {
|
||||
@@ -325,7 +320,7 @@ class MqttCore {
|
||||
_sendSyncMessage();
|
||||
}
|
||||
|
||||
void _messageMessageReceived(payloadData) async {
|
||||
void _messageMessageReceived(Map<String, dynamic> payloadData) async {
|
||||
var newMessage = await Message.mergeFromJson(payloadData);
|
||||
|
||||
await MyApp.isarInstance.writeTxn(() async {
|
||||
@@ -337,6 +332,22 @@ class MqttCore {
|
||||
MessageService().publish<MessageReceivedMessage>(Constants.messageTopicMessageReceived, arguments: MessageReceivedMessage(message: newMessage));
|
||||
}
|
||||
|
||||
void _messageUploadDeviceLogReceived(payloadData) async {
|
||||
var deviceLogRequest = DeviceLogRequest.fromJson(payloadData);
|
||||
|
||||
var logEintries = await MyApp.isarInstance.logEntrys.filter().timeGreaterThan(deviceLogRequest.startDateTime).findAll();
|
||||
|
||||
var deviceLog = DeviceLogResponse();
|
||||
deviceLog.entries = logEintries;
|
||||
|
||||
var json = jsonEncode(deviceLog.toJson());
|
||||
var stringBytes = utf8.encode(json);
|
||||
var gzipBytes = GZipEncoder().encode(stringBytes);
|
||||
|
||||
var topic = "/log/${_toServerTopic.replaceAll("/app/", "").replaceAll("/to_server", "")}";
|
||||
publishBinary(topic, gzipBytes!);
|
||||
}
|
||||
|
||||
void _startReconnectTimer() {
|
||||
connectionState = ConnectionStateEnum.notConnected;
|
||||
|
||||
@@ -390,24 +401,21 @@ class MqttCore {
|
||||
handshakeMessage.deviceObject = deviceObject;
|
||||
handshakeMessage.ver = await Util.getAppVersion();
|
||||
|
||||
//var jsonMap = handshakeMessage.toJson();
|
||||
//var json = jsonEncode(jsonMap);
|
||||
var uri = "http://test-app-server.dns.army:8080/bootstrap";
|
||||
var jsonMap = handshakeMessage.toJson();
|
||||
var json = jsonEncode(jsonMap);
|
||||
var uri = "https://init-x.assecutor.de/bootstrap?get_mqtt_broker=$json";
|
||||
Util.logInfo("Bootstrap request: $uri");
|
||||
|
||||
var response = await http.get(Uri.parse(uri));
|
||||
responseText = response.body;
|
||||
var responseText = response.body;
|
||||
|
||||
Util.logInfo("Bootstrap response: $responseText");
|
||||
var bootstrapResponsePayload = BootstrapResponse.fromJson(jsonDecode(responseText)["payload"]);
|
||||
|
||||
var bootstrapResponse = BootstrapResponse.fromJson(jsonDecode(responseText));
|
||||
|
||||
var brokerUriAndPortArray = bootstrapResponse.broker.replaceFirst("mqtt://", "").split(":");
|
||||
var brokerUriAndPortArray = bootstrapResponsePayload.broker.replaceFirst("mqtt://", "").split(":");
|
||||
_brokerUri = brokerUriAndPortArray[0];
|
||||
_brokerPort = int.parse(brokerUriAndPortArray[1]);
|
||||
_clientId = bootstrapResponse.id;
|
||||
_fromServerTopic = bootstrapResponse.fromServer;
|
||||
_toServerTopic = bootstrapResponse.toServer;
|
||||
_fromServerTopic = bootstrapResponsePayload.fromServer;
|
||||
_toServerTopic = bootstrapResponsePayload.toServer;
|
||||
|
||||
_connectToBroker();
|
||||
} catch (ex) {
|
||||
@@ -438,23 +446,23 @@ class MqttCore {
|
||||
answer.sync.jobs.add(syncJob);
|
||||
}
|
||||
|
||||
MqttCore.instance.publishText("sync", jsonEncode(answer.toJson()));
|
||||
MqttCore.instance.publishPayloadMessage("server", answer.toJson());
|
||||
}
|
||||
|
||||
void _startTrackTimer() {
|
||||
_trackTimer ??= Timer.periodic(const Duration(seconds: 60), (Timer t) {
|
||||
var answer = MyApp.currentPosition;
|
||||
if (answer != null) {
|
||||
var trackMessage = TrackMessage();
|
||||
trackMessage.pos = TrackPosition();
|
||||
trackMessage.pos!.time = position.timestamp.toIso8601String();
|
||||
trackMessage.pos!.lat = position.latitude;
|
||||
trackMessage.pos!.long = position.longitude;
|
||||
trackMessage.pos!.acc = position.accuracy.toInt();
|
||||
var position = MyApp.currentPosition;
|
||||
if (position != null) {
|
||||
var trackMessage = TrackMessage();
|
||||
trackMessage.pos = TrackPosition();
|
||||
trackMessage.pos!.time = position.timestamp.toIso8601String();
|
||||
trackMessage.pos!.lat = position.latitude;
|
||||
trackMessage.pos!.long = position.longitude;
|
||||
trackMessage.pos!.acc = position.accuracy.toInt();
|
||||
|
||||
publishPayloadMessage("track", trackMessage.toJson());
|
||||
}
|
||||
});
|
||||
publishPayloadMessage("track", trackMessage.toJson());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void _cancelTrackTimer() {
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ import 'package:audioplayers/audioplayers.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:image_picker/image_picker.dart';
|
||||
import 'package:package_info/package_info.dart';
|
||||
import 'package:package_info_plus/package_info_plus.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:stadtbote/main.dart';
|
||||
import 'package:stadtbote/model/job.dart';
|
||||
|
||||
Reference in new issue
Block a user