Fehlerkorrekturen
This commit is contained in:
1 parent
c1ffecbe44
commit
4eef0fa119
9 files changed
+47
-17
No files matched your search
@@ -55,8 +55,8 @@ android {
|
|||||||
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
|
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
|
||||||
minSdkVersion flutter.minSdkVersion
|
minSdkVersion flutter.minSdkVersion
|
||||||
targetSdkVersion flutter.targetSdkVersion
|
targetSdkVersion flutter.targetSdkVersion
|
||||||
versionCode flutterVersionCode.toInteger()
|
versionCode 2
|
||||||
versionName flutterVersionName
|
versionName 'A212'
|
||||||
minSdkVersion 28
|
minSdkVersion 28
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import 'package:stadtbote/tools/messages/message_message.dart';
|
|||||||
import 'package:stadtbote/tools/messages/session_info_update.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 'package:stadtbote/tools/messages/status_info_update.dart';
|
import 'package:stadtbote/tools/messages/status_info_update.dart';
|
||||||
|
import 'package:stadtbote/tools/messages/update_badges_message.dart';
|
||||||
import 'package:stadtbote/tools/mqtt_core.dart';
|
import 'package:stadtbote/tools/mqtt_core.dart';
|
||||||
|
|
||||||
import '../main.dart';
|
import '../main.dart';
|
||||||
@@ -274,6 +275,10 @@ class _MainPageState extends State<MainPage> {
|
|||||||
MessageService().subscribe<JobDeletedMessage>(Constants.messageTopicJobDeleted, this, (JobDeletedMessage job) {
|
MessageService().subscribe<JobDeletedMessage>(Constants.messageTopicJobDeleted, this, (JobDeletedMessage job) {
|
||||||
_refreshBadges();
|
_refreshBadges();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
MessageService().subscribe<UpdateBadgesMessage>(Constants.messageTopicUpdateBadges, this, (UpdateBadgesMessage message) {
|
||||||
|
_refreshBadges();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void _exitMessages() {
|
void _exitMessages() {
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import 'package:stadtbote/model/session_status.dart';
|
|||||||
import 'package:stadtbote/tools/connection_status.dart';
|
import 'package:stadtbote/tools/connection_status.dart';
|
||||||
import 'package:stadtbote/tools/message_service.dart';
|
import 'package:stadtbote/tools/message_service.dart';
|
||||||
import 'package:stadtbote/tools/messages/job_received_message.dart';
|
import 'package:stadtbote/tools/messages/job_received_message.dart';
|
||||||
|
import 'package:stadtbote/tools/messages/update_badges_message.dart';
|
||||||
|
|
||||||
import 'tools/mqtt_core.dart';
|
import 'tools/mqtt_core.dart';
|
||||||
import 'content_views/main_page.dart';
|
import 'content_views/main_page.dart';
|
||||||
@@ -430,6 +431,8 @@ class _MainState extends State<Main> with SingleTickerProviderStateMixin {
|
|||||||
|
|
||||||
await showAcceptJobsPopup(context, await MyApp.isarInstance.jobs.filter().stateEqualTo(0).findAll(), () {
|
await showAcceptJobsPopup(context, await MyApp.isarInstance.jobs.filter().stateEqualTo(0).findAll(), () {
|
||||||
_dialogOpened = false;
|
_dialogOpened = false;
|
||||||
|
|
||||||
|
MessageService().publish(Constants.messageTopicUpdateBadges, arguments: UpdateBadgesMessage());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import 'dart:collection';
|
||||||
|
|
||||||
import 'package:expandable/expandable.dart';
|
import 'package:expandable/expandable.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
@@ -14,7 +16,8 @@ import 'package:stadtbote/tools/util.dart';
|
|||||||
import 'package:badges/badges.dart' as badges;
|
import 'package:badges/badges.dart' as badges;
|
||||||
|
|
||||||
Future<void> showAcceptJobsPopup(BuildContext context, List<Job> jobs, Function onFinished) async {
|
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>(
|
await showDialog<void>(
|
||||||
context: context,
|
context: context,
|
||||||
@@ -32,23 +35,27 @@ Future<void> showAcceptJobsPopup(BuildContext context, List<Job> jobs, Function
|
|||||||
shadowColor: Colors.transparent,
|
shadowColor: Colors.transparent,
|
||||||
backgroundColor: Colors.white,
|
backgroundColor: Colors.white,
|
||||||
content: StatefulBuilder(builder: (BuildContext context, StateSetter setState) {
|
content: StatefulBuilder(builder: (BuildContext context, StateSetter setState) {
|
||||||
if (jobsSet.isEmpty) {
|
if (jobsMap.isEmpty) {
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
|
|
||||||
onFinished();
|
onFinished();
|
||||||
}
|
}
|
||||||
|
|
||||||
MessageService().unsubscribe(Constants.messageTopicJobDeleted, jobsSet);
|
MessageService().unsubscribe(Constants.messageTopicJobDeleted, jobsMap);
|
||||||
MessageService().unsubscribe(Constants.messageTopicJobReceived, jobsSet);
|
MessageService().unsubscribe(Constants.messageTopicJobReceived, jobsMap);
|
||||||
|
|
||||||
MessageService().subscribe<JobDeletedMessage>(Constants.messageTopicJobDeleted, jobsSet, (jobDeletedMessage) async {
|
MessageService().subscribe<JobDeletedMessage>(Constants.messageTopicJobDeleted, jobsMap, (jobDeletedMessage) async {
|
||||||
jobsSet.removeWhere((element) => element.id == jobDeletedMessage.jobId);
|
jobsMap.removeWhere((key, value) => key == jobDeletedMessage.jobId);
|
||||||
|
|
||||||
setState(() {});
|
setState(() {});
|
||||||
});
|
});
|
||||||
|
|
||||||
MessageService().subscribe<JobReceivedMessage>(Constants.messageTopicJobReceived, jobsSet, (jobdMessage) async {
|
MessageService().subscribe<JobReceivedMessage>(Constants.messageTopicJobReceived, jobsMap, (jobdMessage) async {
|
||||||
jobsSet.add(jobdMessage.job);
|
if (jobsMap.containsKey(jobdMessage.job.id)) {
|
||||||
|
jobsMap.removeWhere((key, value) => key == jobdMessage.job.id);
|
||||||
|
}
|
||||||
|
|
||||||
|
jobsMap[jobdMessage.job.id] = jobdMessage.job;
|
||||||
|
|
||||||
setState(() {});
|
setState(() {});
|
||||||
});
|
});
|
||||||
@@ -61,9 +68,9 @@ Future<void> showAcceptJobsPopup(BuildContext context, List<Job> jobs, Function
|
|||||||
height: 100,
|
height: 100,
|
||||||
padding: const EdgeInsets.all(5),
|
padding: const EdgeInsets.all(5),
|
||||||
child: ListView.builder(
|
child: ListView.builder(
|
||||||
itemCount: jobsSet.length,
|
itemCount: jobsMap.length,
|
||||||
itemBuilder: (_, i) {
|
itemBuilder: (_, i) {
|
||||||
var job = jobsSet.toList()[i];
|
var job = jobsMap.values.toList()[i];
|
||||||
|
|
||||||
String remarkString = '';
|
String remarkString = '';
|
||||||
for (var remark in job.rem) {
|
for (var remark in job.rem) {
|
||||||
@@ -164,11 +171,17 @@ Future<void> showAcceptJobsPopup(BuildContext context, List<Job> jobs, Function
|
|||||||
Row(children: [
|
Row(children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
child: getDefaultButton(!job.global ? 'Ablehnen' : 'Ignorieren',
|
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),
|
const SizedBox(width: 20),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: getDefaultButton('Annehmen', () => {_sendAnswer(job, 1), jobsSet.remove(job), setState(() {})}),
|
child: getDefaultButton('Annehmen', () => {_sendAnswer(job, 1), jobsMap.remove(job), setState(() {})}),
|
||||||
)
|
)
|
||||||
])
|
])
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import 'package:stadtbote/tools/mqtt_core.dart';
|
|||||||
import 'package:stadtbote/tools/util.dart';
|
import 'package:stadtbote/tools/util.dart';
|
||||||
|
|
||||||
void showInfosPopup(BuildContext context, SessionStatus? status) async {
|
void showInfosPopup(BuildContext context, SessionStatus? status) async {
|
||||||
var text = "Versionsnummer: a211\n";
|
var text = "Versionsnummer: a212\n";
|
||||||
text += "Verbindungsstatus: ${MqttCore.instance.connectionState == ConnectionStateEnum.connected ? "Verbunden" : "NICHT verbunden"}\n";
|
text += "Verbindungsstatus: ${MqttCore.instance.connectionState == ConnectionStateEnum.connected ? "Verbunden" : "NICHT verbunden"}\n";
|
||||||
text += "GPS-Status: ${MyApp.currentPosition != null ? MyApp.currentPosition!.timestamp.toString() : "Unbekannt"}\n";
|
text += "GPS-Status: ${MyApp.currentPosition != null ? MyApp.currentPosition!.timestamp.toString() : "Unbekannt"}\n";
|
||||||
text += "\n";
|
text += "\n";
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ class Constants {
|
|||||||
static const String messageTopicRankingUpdated = "ranking_updated";
|
static const String messageTopicRankingUpdated = "ranking_updated";
|
||||||
static const String messageTopicJobReceived = "job_received";
|
static const String messageTopicJobReceived = "job_received";
|
||||||
static const String messageTopicJobDeleted = "job_deleted";
|
static const String messageTopicJobDeleted = "job_deleted";
|
||||||
|
static const String messageTopicUpdateBadges = "update_badges";
|
||||||
static const String messageTopicMessageReceived = "message_received";
|
static const String messageTopicMessageReceived = "message_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";
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
class UpdateBadgesMessage {
|
||||||
|
UpdateBadgesMessage();
|
||||||
|
}
|
||||||
@@ -283,7 +283,11 @@ class MqttCore {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MessageService().publish<JobReceivedMessage>(Constants.messageTopicJobReceived, arguments: JobReceivedMessage(job: newJob));
|
try {
|
||||||
|
MessageService().publish<JobReceivedMessage>(Constants.messageTopicJobReceived, arguments: JobReceivedMessage(job: newJob));
|
||||||
|
} catch (ex) {
|
||||||
|
Util.logException("publish messageTopicJobReceived failed!");
|
||||||
|
}
|
||||||
|
|
||||||
_acknowlegdeJob(newJob);
|
_acknowlegdeJob(newJob);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
|||||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||||
# In Windows, build-name is used as the major, minor, and patch parts
|
# In Windows, build-name is used as the major, minor, and patch parts
|
||||||
# of the product and file versions while build-number is used as the build suffix.
|
# of the product and file versions while build-number is used as the build suffix.
|
||||||
version: 5.0.0+1
|
version: 1.0.0+1
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=2.19.6 <3.0.0'
|
sdk: '>=2.19.6 <3.0.0'
|
||||||
|
|||||||
Reference in new issue
Block a user