Erweiterungen

This commit is contained in:
Sven committed 2024-01-16 14:34:14 +01:00
1 parent 3d42853f96
commit 550c11cb58
5 files changed
+31 -7

No files matched your search

+18 -5
View File
@@ -11,7 +11,8 @@ import 'package:stadtbote/content_views/utils/header_info.dart';
import 'package:stadtbote/model/job.dart'; import 'package:stadtbote/model/job.dart';
import 'package:stadtbote/model/status.dart'; import 'package:stadtbote/model/status.dart';
import 'package:stadtbote/popups/infos_popup.dart'; import 'package:stadtbote/popups/infos_popup.dart';
import 'package:stadtbote/tools/session_info_update.dart'; import 'package:stadtbote/tools/messages/job_received_message.dart';
import 'package:stadtbote/tools/messages/session_info_update.dart';
import 'package:badges/badges.dart' as badges; import 'package:badges/badges.dart' as badges;
import '../main.dart'; import '../main.dart';
@@ -85,7 +86,7 @@ class _MainPageState extends State<MainPage> {
void initState() { void initState() {
super.initState(); super.initState();
_initBadges(); _refreshBadges();
_initMessages(); _initMessages();
} }
@@ -241,13 +242,25 @@ class _MainPageState extends State<MainPage> {
}*/ }*/
_initMessages() { _initMessages() {
BroadcastReceiver().subscribe<StatusInfoUpdate>(Constants.messageTopicStatusInfoUpdate, (statusInfoUpdate) { BroadcastReceiver().subscribe<StatusInfoUpdate>(Constants.messageTopicStatusInfoUpdate, (statusInfoUpdateMessage) {
widget._sidValueNotifier.value = statusInfoUpdate.status.sid; widget._sidValueNotifier.value = statusInfoUpdateMessage.status.sid;
});
BroadcastReceiver().subscribe<JobReceivedMessage>(Constants.messageTopicJobReceived, (JobReceivedMessage jobReceivedMessage) {
_jobReceived(jobReceivedMessage.job);
}); });
} }
void _initBadges() async { void _refreshBadges() async {
_assignedJobsValueNotifier.value = await MyApp.isarInstance.jobs.filter().stateEqualTo(0).count(); _assignedJobsValueNotifier.value = await MyApp.isarInstance.jobs.filter().stateEqualTo(0).count();
_acceptedJobsValueNotifier.value = await MyApp.isarInstance.jobs.filter().stateEqualTo(1).count(); _acceptedJobsValueNotifier.value = await MyApp.isarInstance.jobs.filter().stateEqualTo(1).count();
} }
void _jobReceived(Job job) {
_refreshBadges();
if (job.state == 0) {
Util.logInfo("test");
}
}
} }
+1
View File
@@ -7,6 +7,7 @@ class Constants {
static const String messageTopicConnectionStatusChanged = "connection_status_changed"; static const String messageTopicConnectionStatusChanged = "connection_status_changed";
static const String messageTopicSessionInfoUpdate = "status_info_updated"; static const String messageTopicSessionInfoUpdate = "status_info_updated";
static const String messageTopicStatusInfoUpdate = "session_info_updated"; static const String messageTopicStatusInfoUpdate = "session_info_updated";
static const String messageTopicJobReceived = "job_received";
static const String messageTopicPushContentView = "push_content_view"; static const String messageTopicPushContentView = "push_content_view";
static const String messageTopicPopContentView = "pop_content_view"; static const String messageTopicPopContentView = "pop_content_view";
static const String messageTopicReplaceContentView = "replace_content_view"; static const String messageTopicReplaceContentView = "replace_content_view";
@@ -0,0 +1,7 @@
import 'package:stadtbote/model/job.dart';
class JobReceivedMessage {
final Job job;
JobReceivedMessage({required this.job});
}
+5 -2
View File
@@ -11,7 +11,8 @@ import 'package:stadtbote/model/device_object.dart';
import 'package:stadtbote/model/job.dart'; import 'package:stadtbote/model/job.dart';
import 'package:stadtbote/model/start_session_message.dart'; import 'package:stadtbote/model/start_session_message.dart';
import 'package:stadtbote/tools/connection_status.dart'; import 'package:stadtbote/tools/connection_status.dart';
import 'package:stadtbote/tools/session_info_update.dart'; import 'package:stadtbote/tools/messages/job_received_message.dart';
import 'package:stadtbote/tools/messages/session_info_update.dart';
import 'package:typed_data/typed_buffers.dart'; import 'package:typed_data/typed_buffers.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import 'package:uuid/uuid.dart'; import 'package:uuid/uuid.dart';
@@ -160,11 +161,13 @@ class MqttCore {
void _jobMessageReceived(payloadData) async { void _jobMessageReceived(payloadData) async {
for (var foundJobData in payloadData) { for (var foundJobData in payloadData) {
var newJob = Job.fromJson(foundJobData); Job newJob = Job.fromJson(foundJobData);
await MyApp.isarInstance.writeTxn(() async { await MyApp.isarInstance.writeTxn(() async {
await MyApp.isarInstance.jobs.put(newJob); await MyApp.isarInstance.jobs.put(newJob);
}); });
BroadcastReceiver().publish<JobReceivedMessage>(Constants.messageTopicJobReceived, arguments: JobReceivedMessage(job: newJob));
} }
} }