Fehlerkorrekturen
This commit is contained in:
1 parent
c1ffecbe44
commit
4eef0fa119
9 files changed
+47
-17
No files matched your search
@@ -1,3 +1,5 @@
|
||||
import 'dart:collection';
|
||||
|
||||
import 'package:expandable/expandable.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
@@ -14,7 +16,8 @@ import 'package:stadtbote/tools/util.dart';
|
||||
import 'package:badges/badges.dart' as badges;
|
||||
|
||||
Future<void> showAcceptJobsPopup(BuildContext context, List<Job> jobs, Function onFinished) async {
|
||||
var jobsSet = jobs.toSet();
|
||||
var jobsMap = HashMap<int, Job>();
|
||||
for (var job in jobs) { jobsMap[job.id] = job; }
|
||||
|
||||
await showDialog<void>(
|
||||
context: context,
|
||||
@@ -32,23 +35,27 @@ Future<void> showAcceptJobsPopup(BuildContext context, List<Job> jobs, Function
|
||||
shadowColor: Colors.transparent,
|
||||
backgroundColor: Colors.white,
|
||||
content: StatefulBuilder(builder: (BuildContext context, StateSetter setState) {
|
||||
if (jobsSet.isEmpty) {
|
||||
if (jobsMap.isEmpty) {
|
||||
Navigator.of(context).pop();
|
||||
|
||||
onFinished();
|
||||
}
|
||||
|
||||
MessageService().unsubscribe(Constants.messageTopicJobDeleted, jobsSet);
|
||||
MessageService().unsubscribe(Constants.messageTopicJobReceived, jobsSet);
|
||||
MessageService().unsubscribe(Constants.messageTopicJobDeleted, jobsMap);
|
||||
MessageService().unsubscribe(Constants.messageTopicJobReceived, jobsMap);
|
||||
|
||||
MessageService().subscribe<JobDeletedMessage>(Constants.messageTopicJobDeleted, jobsSet, (jobDeletedMessage) async {
|
||||
jobsSet.removeWhere((element) => element.id == jobDeletedMessage.jobId);
|
||||
MessageService().subscribe<JobDeletedMessage>(Constants.messageTopicJobDeleted, jobsMap, (jobDeletedMessage) async {
|
||||
jobsMap.removeWhere((key, value) => key == jobDeletedMessage.jobId);
|
||||
|
||||
setState(() {});
|
||||
});
|
||||
|
||||
MessageService().subscribe<JobReceivedMessage>(Constants.messageTopicJobReceived, jobsSet, (jobdMessage) async {
|
||||
jobsSet.add(jobdMessage.job);
|
||||
MessageService().subscribe<JobReceivedMessage>(Constants.messageTopicJobReceived, jobsMap, (jobdMessage) async {
|
||||
if (jobsMap.containsKey(jobdMessage.job.id)) {
|
||||
jobsMap.removeWhere((key, value) => key == jobdMessage.job.id);
|
||||
}
|
||||
|
||||
jobsMap[jobdMessage.job.id] = jobdMessage.job;
|
||||
|
||||
setState(() {});
|
||||
});
|
||||
@@ -61,9 +68,9 @@ Future<void> showAcceptJobsPopup(BuildContext context, List<Job> jobs, Function
|
||||
height: 100,
|
||||
padding: const EdgeInsets.all(5),
|
||||
child: ListView.builder(
|
||||
itemCount: jobsSet.length,
|
||||
itemCount: jobsMap.length,
|
||||
itemBuilder: (_, i) {
|
||||
var job = jobsSet.toList()[i];
|
||||
var job = jobsMap.values.toList()[i];
|
||||
|
||||
String remarkString = '';
|
||||
for (var remark in job.rem) {
|
||||
@@ -164,11 +171,17 @@ Future<void> showAcceptJobsPopup(BuildContext context, List<Job> jobs, Function
|
||||
Row(children: [
|
||||
Expanded(
|
||||
child: getDefaultButton(!job.global ? 'Ablehnen' : 'Ignorieren',
|
||||
() => {_sendAnswer(job, !job.global ? 2 : 3), jobsSet.remove(job), setState(() {})}),
|
||||
() {
|
||||
_sendAnswer(job, !job.global ? 2 : 3);
|
||||
|
||||
jobsMap.removeWhere((key, value) => key == job.id);
|
||||
|
||||
setState(() {});
|
||||
}),
|
||||
),
|
||||
const SizedBox(width: 20),
|
||||
Expanded(
|
||||
child: getDefaultButton('Annehmen', () => {_sendAnswer(job, 1), jobsSet.remove(job), setState(() {})}),
|
||||
child: getDefaultButton('Annehmen', () => {_sendAnswer(job, 1), jobsMap.remove(job), setState(() {})}),
|
||||
)
|
||||
])
|
||||
],
|
||||
|
||||
Reference in new issue
Block a user