Erweiterungen

This commit is contained in:
Sven committed 2024-02-10 09:12:51 +01:00
1 parent 20a1309946
commit 25a2455ce1
18 files changed
+2272 -1261

No files matched your search

+26 -11
View File
@@ -10,6 +10,7 @@ import 'package:stadtbote/content_views/utils/content_view_widget.dart';
import 'package:stadtbote/content_views/utils/header_info.dart';
import 'package:stadtbote/model/job.dart';
import 'package:stadtbote/model/message.dart';
import 'package:stadtbote/model/session_status.dart';
import 'package:stadtbote/model/status.dart';
import 'package:stadtbote/popups/accept_jobs_popup.dart';
import 'package:stadtbote/popups/infos_popup.dart';
@@ -19,6 +20,7 @@ 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';
import 'package:badges/badges.dart' as badges;
import 'package:stadtbote/tools/messages/status_info_update.dart';
import '../main.dart';
import '../tools/constants.dart';
@@ -28,13 +30,7 @@ class MainPage extends ContentViewWidget {
final ValueNotifier<String> _zipValueNotifier = ValueNotifier("----");
final ValueNotifier<String> sidValueNotifier = ValueNotifier("----");
MainPage({super.key}) {
Status? status = MyApp.isarInstance.status.where().findFirstSync();
if (status != null) {
_zipValueNotifier.value = status.locZip;
sidValueNotifier.value = status.sid;
}
}
MainPage({super.key});
@override
State<MainPage> createState() => _MainPageState();
@@ -77,7 +73,7 @@ class MainPage extends ContentViewWidget {
rightButtonVisible: true,
rightButtonImage: Util.fetchFutureIcon(const Icon(Icons.info_outline, size: 20.0, color: Colors.white)),
rightButtonOnPressed: () async {
showInfosPopup(context, await MyApp.isarInstance.status.where().findFirst());
showInfosPopup(context, await MyApp.isarInstance.sessionStatus.where().findFirst());
});
}
}
@@ -91,6 +87,8 @@ class _MainPageState extends State<MainPage> {
void initState() {
super.initState();
_updateHeader();
_refreshBadges();
_initMessages();
@@ -240,8 +238,12 @@ class _MainPageState extends State<MainPage> {
}
_initMessages() {
MessageService().subscribe<SessionStatusInfoUpdate>(Constants.messageTopicSessionStatusInfoUpdate, this, (sessionStatusInfoUpdateMessage) {
widget.sidValueNotifier.value = sessionStatusInfoUpdateMessage.status.sid;
});
MessageService().subscribe<StatusInfoUpdate>(Constants.messageTopicStatusInfoUpdate, this, (statusInfoUpdateMessage) {
widget.sidValueNotifier.value = statusInfoUpdateMessage.status.sid;
_updateHeader();
});
MessageService().subscribe<JobReceivedMessage>(Constants.messageTopicJobReceived, this, (JobReceivedMessage jobReceivedMessage) {
@@ -258,9 +260,9 @@ class _MainPageState extends State<MainPage> {
}
void _exitMessages() {
MessageService().unsubscribe<StatusInfoUpdate>(Constants.messageTopicStatusInfoUpdate, this);
MessageService().unsubscribe<SessionStatusInfoUpdate>(Constants.messageTopicSessionStatusInfoUpdate, this);
MessageService().unsubscribe<StatusInfoUpdate>(Constants.messageTopicJobReceived, this);
MessageService().unsubscribe<SessionStatusInfoUpdate>(Constants.messageTopicJobReceived, this);
}
void _refreshBadges() async {
@@ -272,4 +274,17 @@ class _MainPageState extends State<MainPage> {
void _jobReceived(Job job) {
_refreshBadges();
}
void _updateHeader() async {
var status = await MyApp.isarInstance.status.where().findFirst();
var sessionStatus = await MyApp.isarInstance.sessionStatus.where().findFirst();
if (status != null) {
widget._zipValueNotifier.value = '${status.pos.zip} (${status.pos.zipReal})';
} else if (sessionStatus != null) {
widget._zipValueNotifier.value = sessionStatus.sid;
} else {
widget._zipValueNotifier.value = "---";
}
}
}