Erweiterungen
This commit is contained in:
1 parent
96544ca924
commit
def0f3fc2f
136 files changed
+4172
-499
No files matched your search
+106
-20
@@ -1,5 +1,6 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:dart_mq/dart_mq.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:geolocator/geolocator.dart';
|
||||
import 'package:isar/isar.dart';
|
||||
@@ -8,7 +9,7 @@ import 'package:shared_map/shared_map.dart';
|
||||
import 'package:stadtbote/messages/pop_content_view_message.dart';
|
||||
import 'package:stadtbote/model/enqueued_message.dart';
|
||||
import 'package:stadtbote/model/log_entry.dart';
|
||||
import 'package:stadtbote/model/message.dart';
|
||||
import 'package:stadtbote/model/chat_message.dart';
|
||||
import 'package:stadtbote/model/pictures.dart';
|
||||
import 'package:stadtbote/model/rank.dart';
|
||||
import 'package:stadtbote/model/location_status.dart';
|
||||
@@ -35,13 +36,32 @@ Future<void> main() async {
|
||||
runZonedGuarded(() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
|
||||
MQClient.initialize();
|
||||
MQClient.instance.declareQueue(Constants.messageTopicRemoveJob);
|
||||
MQClient.instance.declareQueue(Constants.messageTopicPublishPayload);
|
||||
MQClient.instance.declareQueue(Constants.messageTopicDisconnectClient);
|
||||
MQClient.instance.declareQueue(Constants.messageTopicConnectClient);
|
||||
MQClient.instance.declareQueue(Constants.messageTopicRequestConnectionStatus);
|
||||
MQClient.instance.declareQueue(Constants.messageTopicConnectionStatusChanged);
|
||||
MQClient.instance.declareQueue(Constants.messageTopicJobDeleted);
|
||||
MQClient.instance.declareQueue(Constants.messageTopicRankingUpdated);
|
||||
MQClient.instance.declareQueue(Constants.messageTopicSessionInfoUpdate);
|
||||
MQClient.instance.declareQueue(Constants.messageTopicSessionStatusInfoUpdate);
|
||||
MQClient.instance.declareQueue(Constants.messageTopicLocationStatusUpdated);
|
||||
MQClient.instance.declareQueue(Constants.messageTopicPushContentView);
|
||||
MQClient.instance.declareQueue(Constants.messageTopicPopContentView);
|
||||
MQClient.instance.declareQueue(Constants.messageTopicReplaceContentView);
|
||||
MQClient.instance.declareQueue(Constants.messageTopicJobReceived);
|
||||
MQClient.instance.declareQueue(Constants.messageTopicMessageReceived);
|
||||
MQClient.instance.declareQueue(Constants.messageTopicUpdateBadges);
|
||||
|
||||
final dir = await getApplicationDocumentsDirectory();
|
||||
MyApp.isarInstance = await Isar.open([
|
||||
SessionStatusSchema,
|
||||
LocationStatusSchema,
|
||||
JobSchema,
|
||||
TaskInfoSchema,
|
||||
MessageSchema,
|
||||
ChatMessageSchema,
|
||||
EnqueuedMessageSchema,
|
||||
LogEntrySchema,
|
||||
RankingSchema,
|
||||
@@ -84,7 +104,7 @@ class MyApp extends StatefulWidget {
|
||||
State<MyApp> createState() => _MyAppState();
|
||||
}
|
||||
|
||||
class _MyAppState extends State<MyApp> {
|
||||
class _MyAppState extends State<MyApp> with ConsumerMixin {
|
||||
final MqttCore mqttCore = MqttCore();
|
||||
|
||||
@override void initState() {
|
||||
@@ -161,7 +181,7 @@ class Main extends StatefulWidget {
|
||||
State<Main> createState() => _MainState();
|
||||
}
|
||||
|
||||
class _MainState extends State<Main> with SingleTickerProviderStateMixin {
|
||||
class _MainState extends State<Main> with SingleTickerProviderStateMixin, ProducerMixin, ConsumerMixin {
|
||||
late ContentViewWidget _currentContent;
|
||||
late WidgetStack<ContentViewWidget> contentStack = WidgetStack();
|
||||
|
||||
@@ -282,25 +302,75 @@ class _MainState extends State<Main> with SingleTickerProviderStateMixin {
|
||||
}
|
||||
|
||||
void _initMessages() {
|
||||
MessageService().unsubscribeAll(this);
|
||||
|
||||
MessageService().subscribe<ContentViewWidget>(Constants.messageTopicPushContentView, this, (ContentViewWidget widget) {
|
||||
subscribe(
|
||||
queueId: Constants.messageTopicPushContentView,
|
||||
callback: (message) {
|
||||
var widget = message.payload as ContentViewWidget;
|
||||
_pushContentView(widget);
|
||||
},
|
||||
);
|
||||
/*MessageService().subscribe<ContentViewWidget>(Constants.messageTopicPushContentView, this, (ContentViewWidget widget) {
|
||||
_pushContentView(widget);
|
||||
});
|
||||
});*/
|
||||
|
||||
MessageService().subscribe<PopContentViewMessage>(Constants.messageTopicPopContentView, this, (PopContentViewMessage message) {
|
||||
subscribe(
|
||||
queueId: Constants.messageTopicPopContentView,
|
||||
callback: (message) {
|
||||
var popContentViewMessage = message.payload as PopContentViewMessage;
|
||||
_popContentView(popContentViewMessage.count);
|
||||
},
|
||||
);
|
||||
/*MessageService().subscribe<PopContentViewMessage>(Constants.messageTopicPopContentView, this, (PopContentViewMessage message) {
|
||||
_popContentView(message.count);
|
||||
});
|
||||
});*/
|
||||
|
||||
MessageService().subscribe<ContentViewWidget>(Constants.messageTopicReplaceContentView, this, (ContentViewWidget widget) {
|
||||
subscribe(
|
||||
queueId: Constants.messageTopicReplaceContentView,
|
||||
callback: (message) {
|
||||
var widget = message.payload as ContentViewWidget;
|
||||
_replaceContentView(widget);
|
||||
},
|
||||
);
|
||||
/*MessageService().subscribe<ContentViewWidget>(Constants.messageTopicReplaceContentView, this, (ContentViewWidget widget) {
|
||||
_replaceContentView(widget);
|
||||
});
|
||||
});*/
|
||||
|
||||
MessageService().subscribe<ConnectionStatus>(Constants.messageTopicConnectionStatusChanged, this, (ConnectionStatus connectionStatus) {
|
||||
subscribe(
|
||||
queueId: Constants.messageTopicConnectionStatusChanged,
|
||||
callback: (message) {
|
||||
var connectionStatus = message.payload as ConnectionStatus;
|
||||
_connectionStatusChanged(connectionStatus);
|
||||
},
|
||||
);
|
||||
/*MessageService().subscribe<ConnectionStatus>(Constants.messageTopicConnectionStatusChanged, this, (ConnectionStatus connectionStatus) {
|
||||
_connectionStatusChanged(connectionStatus);
|
||||
});
|
||||
});*/
|
||||
|
||||
MessageService().subscribe<RemoveJobMessage>(Constants.messageTopicRemoveJob, this, (RemoveJobMessage job) async {
|
||||
subscribe(
|
||||
queueId: Constants.messageTopicRemoveJob,
|
||||
callback: (message) async {
|
||||
var removeJobMessage = message.payload as RemoveJobMessage;
|
||||
|
||||
await MyApp.isarInstance.writeTxn(() async {
|
||||
await MyApp.isarInstance.jobs.where().filter().idEqualTo(removeJobMessage.id).deleteAll();
|
||||
});
|
||||
|
||||
// TODO MESSAGING
|
||||
sendMessage(
|
||||
routingKey: Constants.messageTopicJobDeleted,
|
||||
payload: JobDeletedMessage(id: removeJobMessage.id),
|
||||
);
|
||||
//await MessageService().publish<JobDeletedMessage>(Constants.messageTopicJobDeleted, arguments: JobDeletedMessage(id: job.id));
|
||||
|
||||
// TODO MESSAGING
|
||||
sendMessage(
|
||||
routingKey: Constants.messageTopicUpdateBadges,
|
||||
payload: RefreshBadgesMessage,
|
||||
);
|
||||
//await MessageService().publish<RefreshBadgesMessage>(Constants.messageTopicUpdateBadges, arguments: RefreshBadgesMessage());
|
||||
},
|
||||
);
|
||||
/*MessageService().subscribe<RemoveJobMessage>(Constants.messageTopicRemoveJob, this, (RemoveJobMessage job) async {
|
||||
await MyApp.isarInstance.writeTxn(() async {
|
||||
await MyApp.isarInstance.jobs.where().filter().idEqualTo(job.id).deleteAll();
|
||||
});
|
||||
@@ -308,17 +378,33 @@ class _MainState extends State<Main> with SingleTickerProviderStateMixin {
|
||||
await MessageService().publish<JobDeletedMessage>(Constants.messageTopicJobDeleted, arguments: JobDeletedMessage(id: job.id));
|
||||
|
||||
await MessageService().publish<RefreshBadgesMessage>(Constants.messageTopicUpdateBadges, arguments: RefreshBadgesMessage());
|
||||
});
|
||||
});*/
|
||||
|
||||
MessageService().subscribe<JobReceivedMessage>(Constants.messageTopicJobReceived, this, (JobReceivedMessage jobReceivedMessage) async {
|
||||
subscribe(
|
||||
queueId: Constants.messageTopicJobReceived,
|
||||
callback: (message) async {
|
||||
var jobReceived = message.payload as JobReceivedMessage;
|
||||
if (jobReceived.job.state == 0) {
|
||||
await _jobMap!.put(jobReceived.job.id, jobReceived.job);
|
||||
}
|
||||
},
|
||||
);
|
||||
/*MessageService().subscribe<JobReceivedMessage>(Constants.messageTopicJobReceived, this, (JobReceivedMessage jobReceivedMessage) async {
|
||||
if (jobReceivedMessage.job.state == 0) {
|
||||
await _jobMap!.put(jobReceivedMessage.job.id, jobReceivedMessage.job);
|
||||
}
|
||||
});
|
||||
});*/
|
||||
|
||||
MessageService().subscribe<JobDeletedMessage>(Constants.messageTopicJobDeleted, this, (JobDeletedMessage jobDeletedMessage) async {
|
||||
subscribe(
|
||||
queueId: Constants.messageTopicJobDeleted,
|
||||
callback: (message) async {
|
||||
var jobDeleted = message.payload as JobDeletedMessage;
|
||||
await _jobMap!.remove(jobDeleted.id);
|
||||
},
|
||||
);
|
||||
/*MessageService().subscribe<JobDeletedMessage>(Constants.messageTopicJobDeleted, this, (JobDeletedMessage jobDeletedMessage) async {
|
||||
await _jobMap!.remove(jobDeletedMessage.id);
|
||||
});
|
||||
});*/
|
||||
}
|
||||
|
||||
void _replaceContentView(ContentViewWidget widget) async {
|
||||
|
||||
Reference in new issue
Block a user