Erweiterungen
This commit is contained in:
1 parent
96544ca924
commit
def0f3fc2f
136 files changed
+4172
-499
No files matched your search
@@ -1,3 +1,4 @@
|
||||
import 'package:dart_mq/dart_mq.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:isar/isar.dart';
|
||||
import 'package:mqtt5_client/mqtt5_client.dart';
|
||||
@@ -10,7 +11,7 @@ import 'package:stadtbote/content_views/utils/content_view_widget.dart';
|
||||
import 'package:stadtbote/main.dart';
|
||||
import 'package:stadtbote/model/job.dart';
|
||||
import 'package:stadtbote/model/location_status.dart';
|
||||
import 'package:stadtbote/model/message.dart';
|
||||
import 'package:stadtbote/model/chat_message.dart';
|
||||
import 'package:stadtbote/model/session_status.dart';
|
||||
import 'package:stadtbote/popups/infos_popup.dart';
|
||||
import 'package:stadtbote/protocoll_messages/logout_message.dart';
|
||||
@@ -42,7 +43,7 @@ class MainPage extends ContentViewWidget {
|
||||
}
|
||||
}
|
||||
|
||||
class _MainPageState extends State<MainPage> {
|
||||
class _MainPageState extends State<MainPage> with ConsumerMixin, ProducerMixin {
|
||||
final ValueNotifier<int> _assignedJobsValueNotifier = ValueNotifier<int>(0);
|
||||
final ValueNotifier<int> _acceptedJobsValueNotifier = ValueNotifier<int>(0);
|
||||
final ValueNotifier<int> _messagesValueNotifier = ValueNotifier<int>(0);
|
||||
@@ -61,8 +62,6 @@ class _MainPageState extends State<MainPage> {
|
||||
@override
|
||||
void dispose() {
|
||||
super.dispose();
|
||||
|
||||
_exitMessages();
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -102,9 +101,15 @@ class _MainPageState extends State<MainPage> {
|
||||
'Zugewiesene Aufträge',
|
||||
image: Image.asset('assets/zugewiesene_auftraege.png', width: 30, height: 30),
|
||||
() async => {
|
||||
await MessageService()
|
||||
.publish<ContentViewWidget>(Constants.messageTopicPushContentView, arguments: const AssignedJobsPage())
|
||||
}),
|
||||
// TODO MESSAGING
|
||||
sendMessage(
|
||||
routingKey: Constants.messageTopicPushContentView,
|
||||
payload: const AssignedJobsPage(),
|
||||
)
|
||||
|
||||
//await MessageService().publish<ContentViewWidget>(Constants.messageTopicPushContentView, arguments: const AssignedJobsPage())
|
||||
}
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
@@ -136,9 +141,16 @@ class _MainPageState extends State<MainPage> {
|
||||
'Angenommene Aufträge',
|
||||
image: Image.asset('assets/angenommene_auftraege.png', width: 30, height: 30),
|
||||
() async => {
|
||||
await MessageService()
|
||||
.publish<ContentViewWidget>(Constants.messageTopicPushContentView, arguments: const AcceptedJobsPage())
|
||||
}));
|
||||
// TODO MESSAGING
|
||||
sendMessage(
|
||||
routingKey: Constants.messageTopicPushContentView,
|
||||
payload: const AcceptedJobsPage(),
|
||||
)
|
||||
|
||||
//await MessageService().publish<ContentViewWidget>(Constants.messageTopicPushContentView, arguments: const AcceptedJobsPage())
|
||||
}
|
||||
)
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
@@ -149,9 +161,15 @@ class _MainPageState extends State<MainPage> {
|
||||
'Erledigte Aufträge',
|
||||
image: Image.asset('assets/erledigte_auftraege.png', width: 30, height: 30),
|
||||
() async => {
|
||||
await MessageService()
|
||||
.publish<ContentViewWidget>(Constants.messageTopicPushContentView, arguments: const FinishedJobsPage())
|
||||
}),
|
||||
// TODO MESSAGING
|
||||
sendMessage(
|
||||
routingKey: Constants.messageTopicPushContentView,
|
||||
payload: const FinishedJobsPage(),
|
||||
)
|
||||
|
||||
//await MessageService().publish<ContentViewWidget>(Constants.messageTopicPushContentView, arguments: const FinishedJobsPage())
|
||||
}
|
||||
),
|
||||
),
|
||||
SizedBox(height: _loggedOut == true ? 0 : 20),
|
||||
Visibility(
|
||||
@@ -180,9 +198,16 @@ class _MainPageState extends State<MainPage> {
|
||||
'Nachrichten',
|
||||
image: Image.asset('assets/nachrichten.png', width: 30, height: 30),
|
||||
() async => {
|
||||
await MessageService()
|
||||
.publish<ContentViewWidget>(Constants.messageTopicPushContentView, arguments: const MessagesPage())
|
||||
}));
|
||||
// TODO MESSAGING
|
||||
sendMessage(
|
||||
routingKey: Constants.messageTopicPushContentView,
|
||||
payload: const MessagesPage(),
|
||||
)
|
||||
|
||||
//await MessageService().publish<ContentViewWidget>(Constants.messageTopicPushContentView, arguments: const MessagesPage())
|
||||
}
|
||||
)
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
@@ -193,8 +218,12 @@ class _MainPageState extends State<MainPage> {
|
||||
'Anfahrtsbereich',
|
||||
image: Image.asset('assets/anfahrtsbereich.png', width: 30, height: 30),
|
||||
() async => {
|
||||
await MessageService()
|
||||
.publish<ContentViewWidget>(Constants.messageTopicPushContentView, arguments: const ApproachAreaPage())
|
||||
// TODO MESSAGING
|
||||
sendMessage(
|
||||
routingKey: Constants.messageTopicPushContentView,
|
||||
payload: const ApproachAreaPage(),
|
||||
)
|
||||
//await MessageService().publish<ContentViewWidget>(Constants.messageTopicPushContentView, arguments: const ApproachAreaPage())
|
||||
}),
|
||||
),
|
||||
SizedBox(height: _loggedOut == true ? 0 : 20),
|
||||
@@ -226,31 +255,58 @@ class _MainPageState extends State<MainPage> {
|
||||
}
|
||||
|
||||
_initMessages() {
|
||||
MessageService().subscribe<JobReceivedMessage>(Constants.messageTopicJobReceived, this, (JobReceivedMessage jobReceivedMessage) {
|
||||
subscribe(
|
||||
queueId: Constants.messageTopicRemoveJob,
|
||||
callback: (message) {
|
||||
_refreshBadges();
|
||||
},
|
||||
);
|
||||
|
||||
subscribe(
|
||||
queueId: Constants.messageTopicJobReceived,
|
||||
callback: (message) {
|
||||
_jobReceived((message.payload as JobReceivedMessage).job);
|
||||
},
|
||||
);
|
||||
/*MessageService().subscribe<JobReceivedMessage>(Constants.messageTopicJobReceived, this, (JobReceivedMessage jobReceivedMessage) {
|
||||
_jobReceived(jobReceivedMessage.job);
|
||||
});
|
||||
});*/
|
||||
|
||||
MessageService().subscribe<MessageReceivedMessage>(Constants.messageTopicMessageReceived, this, (MessageReceivedMessage mesage) {
|
||||
subscribe(
|
||||
queueId: Constants.messageTopicMessageReceived,
|
||||
callback: (message) {
|
||||
_refreshBadges();
|
||||
},
|
||||
);
|
||||
/*MessageService().subscribe<MessageReceivedMessage>(Constants.messageTopicMessageReceived, this, (MessageReceivedMessage mesage) {
|
||||
_refreshBadges();
|
||||
});
|
||||
});*/
|
||||
|
||||
MessageService().subscribe<JobDeletedMessage>(Constants.messageTopicJobDeleted, this, (JobDeletedMessage job) {
|
||||
subscribe(
|
||||
queueId: Constants.messageTopicJobDeleted,
|
||||
callback: (message) {
|
||||
_refreshBadges();
|
||||
},
|
||||
);
|
||||
/*MessageService().subscribe<JobDeletedMessage>(Constants.messageTopicJobDeleted, this, (JobDeletedMessage job) {
|
||||
_refreshBadges();
|
||||
});
|
||||
});*/
|
||||
|
||||
MessageService().subscribe<RefreshBadgesMessage>(Constants.messageTopicUpdateBadges, this, (RefreshBadgesMessage message) {
|
||||
subscribe(
|
||||
queueId: Constants.messageTopicUpdateBadges,
|
||||
callback: (message) {
|
||||
_refreshBadges();
|
||||
},
|
||||
);
|
||||
/*MessageService().subscribe<RefreshBadgesMessage>(Constants.messageTopicUpdateBadges, this, (RefreshBadgesMessage message) {
|
||||
_refreshBadges();
|
||||
});
|
||||
}
|
||||
|
||||
void _exitMessages() {
|
||||
MessageService().unsubscribeAll(this);
|
||||
});*/
|
||||
}
|
||||
|
||||
void _refreshBadges() async {
|
||||
_assignedJobsValueNotifier.value = await MyApp.isarInstance.jobs.filter().stateEqualTo(0).count();
|
||||
_acceptedJobsValueNotifier.value = await MyApp.isarInstance.jobs.filter().stateEqualTo(1).count();
|
||||
_messagesValueNotifier.value = await MyApp.isarInstance.messages.filter().readEqualTo(false).count();
|
||||
_messagesValueNotifier.value = await MyApp.isarInstance.chatMessages.filter().readEqualTo(false).count();
|
||||
}
|
||||
|
||||
void _jobReceived(Job job) {
|
||||
@@ -261,7 +317,13 @@ class _MainPageState extends State<MainPage> {
|
||||
if (!_loggedOut) {
|
||||
showLogoutAlertDialog(context);
|
||||
} else {
|
||||
await MessageService().publish<ConnectClientMessage>(Constants.messageTopicConnectClient, arguments: ConnectClientMessage());
|
||||
// TODO MESSAGING
|
||||
sendMessage(
|
||||
routingKey: Constants.messageTopicConnectClient,
|
||||
payload: ConnectClientMessage(),
|
||||
);
|
||||
|
||||
//await MessageService().publish<ConnectClientMessage>(Constants.messageTopicConnectClient, arguments: ConnectClientMessage());
|
||||
|
||||
_loggedOut = false;
|
||||
|
||||
@@ -281,12 +343,28 @@ class _MainPageState extends State<MainPage> {
|
||||
|
||||
_loggedOut = true;
|
||||
|
||||
await MessageService().publish<DisconnectClientMessage>(Constants.messageTopicDisconnectClient, arguments: DisconnectClientMessage());
|
||||
Future.delayed(const Duration(seconds: 2), () async {
|
||||
// TODO MESSAGING
|
||||
sendMessage(
|
||||
routingKey: Constants.messageTopicDisconnectClient,
|
||||
payload: DisconnectClientMessage(),
|
||||
);
|
||||
|
||||
Future.delayed(const Duration(seconds: 5), () async {
|
||||
Navigator.of(context).pop();
|
||||
//await MessageService().publish<DisconnectClientMessage>(Constants.messageTopicDisconnectClient, arguments: DisconnectClientMessage());
|
||||
|
||||
setState(() {});
|
||||
Future.delayed(const Duration(seconds: 3), () async {
|
||||
// TODO MESSAGING
|
||||
sendMessage(
|
||||
routingKey: Constants.messageTopicDisconnectClient,
|
||||
payload: DisconnectClientMessage(),
|
||||
);
|
||||
|
||||
//await MessageService().publish<DisconnectClientMessage>(Constants.messageTopicDisconnectClient, arguments: DisconnectClientMessage());
|
||||
|
||||
Navigator.of(MyApp.appNavigatorKey.currentContext!).pop();
|
||||
|
||||
setState(() {});
|
||||
});
|
||||
});
|
||||
},
|
||||
);
|
||||
@@ -329,8 +407,13 @@ class _MainPageState extends State<MainPage> {
|
||||
logoutMessage.pos!.acc = position.accuracy.toInt();
|
||||
}
|
||||
|
||||
await MessageService().publish<PublishPayloadMessage>(Constants.messageTopicPublishPayload,
|
||||
arguments: PublishPayloadMessage(topic: "logout", message: logoutMessage.toJson(), qos: MqttQos.exactlyOnce));
|
||||
// TODO MESSAGING
|
||||
sendMessage(
|
||||
routingKey: Constants.messageTopicPublishPayload,
|
||||
payload: PublishPayloadMessage(topic: "logout", message: logoutMessage.toJson(), qos: MqttQos.exactlyOnce),
|
||||
);
|
||||
|
||||
//await MessageService().publish<PublishPayloadMessage>(Constants.messageTopicPublishPayload, arguments: PublishPayloadMessage(topic: "logout", message: logoutMessage.toJson(), qos: MqttQos.exactlyOnce));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -339,7 +422,7 @@ class _HeaderWidget extends StatefulWidget {
|
||||
State<_HeaderWidget> createState() => _HeaderWidgetState();
|
||||
}
|
||||
|
||||
class _HeaderWidgetState extends State<_HeaderWidget> {
|
||||
class _HeaderWidgetState extends State<_HeaderWidget> with ConsumerMixin {
|
||||
final ValueNotifier<String> _zipValueNotifier = ValueNotifier("-----");
|
||||
final ValueNotifier<String> _zipRealValueNotifier = ValueNotifier("-----");
|
||||
final ValueNotifier<String> _sidValueNotifier = ValueNotifier("-----");
|
||||
@@ -498,13 +581,27 @@ class _HeaderWidgetState extends State<_HeaderWidget> {
|
||||
}
|
||||
|
||||
_initMessages() {
|
||||
MessageService().subscribe<SessionStatusInfoUpdate>(Constants.messageTopicSessionStatusInfoUpdate, this, (sessionStatusInfoUpdateMessage) {
|
||||
_updateHeader();
|
||||
});
|
||||
subscribe(
|
||||
queueId: Constants.messageTopicSessionStatusInfoUpdate,
|
||||
callback: (message) {
|
||||
_updateHeader();
|
||||
},
|
||||
);
|
||||
|
||||
MessageService().subscribe<LocationStatusUpdate>(Constants.messageTopicLocationStatusUpdated, this, (statusInfoUpdateMessage) {
|
||||
/*MessageService().subscribe<SessionStatusInfoUpdate>(Constants.messageTopicSessionStatusInfoUpdate, this, (sessionStatusInfoUpdateMessage) {
|
||||
_updateHeader();
|
||||
});
|
||||
});*/
|
||||
|
||||
subscribe(
|
||||
queueId: Constants.messageTopicLocationStatusUpdated,
|
||||
callback: (message) {
|
||||
_updateHeader();
|
||||
},
|
||||
);
|
||||
|
||||
/*MessageService().subscribe<LocationStatusUpdate>(Constants.messageTopicLocationStatusUpdated, this, (statusInfoUpdateMessage) {
|
||||
_updateHeader();
|
||||
});*/
|
||||
}
|
||||
|
||||
_updateHeader() async {
|
||||
|
||||
Reference in new issue
Block a user