Erweiterungen

This commit is contained in:
Sven committed 2024-02-12 12:08:45 +01:00
1 parent e41008147f
commit b0dd1afb43
4 files changed
+34 -45

No files matched your search

+5 -4
View File
@@ -3,8 +3,10 @@ import 'package:flutter/services.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:isar/isar.dart'; import 'package:isar/isar.dart';
import 'package:kumi_popup_window/kumi_popup_window.dart'; import 'package:kumi_popup_window/kumi_popup_window.dart';
import 'package:stadtbote/content_views/tour_list_page.dart';
import 'package:stadtbote/content_views/utils/content_view_widget.dart'; import 'package:stadtbote/content_views/utils/content_view_widget.dart';
import 'package:stadtbote/content_views/utils/header_info.dart'; import 'package:stadtbote/content_views/utils/header_info.dart';
import 'package:stadtbote/messages/PopContentViewMessage.dart';
import 'package:stadtbote/model/job.dart'; import 'package:stadtbote/model/job.dart';
import 'package:stadtbote/model/job_tour.dart'; import 'package:stadtbote/model/job_tour.dart';
import 'package:stadtbote/popups/tasks_popups/arrived_popup.dart'; import 'package:stadtbote/popups/tasks_popups/arrived_popup.dart';
@@ -19,6 +21,7 @@ import 'package:stadtbote/protocoll_messages/accept_job_message.dart';
import 'package:stadtbote/protocoll_messages/fin_task_message.dart'; import 'package:stadtbote/protocoll_messages/fin_task_message.dart';
import 'package:stadtbote/protocoll_messages/fin_tour_message.dart'; import 'package:stadtbote/protocoll_messages/fin_tour_message.dart';
import 'package:stadtbote/tools/constants.dart'; import 'package:stadtbote/tools/constants.dart';
import 'package:stadtbote/tools/message_service.dart';
import 'package:stadtbote/tools/mqtt_core.dart'; import 'package:stadtbote/tools/mqtt_core.dart';
import '../main.dart'; import '../main.dart';
@@ -337,7 +340,7 @@ class _TaskListPageState extends State<TaskListPage> {
SystemChrome.setPreferredOrientations([DeviceOrientation.landscapeLeft]); SystemChrome.setPreferredOrientations([DeviceOrientation.landscapeLeft]);
Future.delayed(const Duration(seconds: 1), () async { Future.delayed(const Duration(seconds: 1), () async {
_popup = showSignaturePopup(context, taskInfo, () { showSignaturePopup(context, taskInfo, () {
taskInfo.completed = true; taskInfo.completed = true;
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
@@ -346,7 +349,7 @@ class _TaskListPageState extends State<TaskListPage> {
_finishTaskProcessing(taskInfo); _finishTaskProcessing(taskInfo);
_popup.dismiss(context); MessageService().publish<PopContentViewMessage>(Constants.messageTopicPopContentView, arguments: PopContentViewMessage(count: 2));
}); });
}); });
} }
@@ -425,7 +428,5 @@ class _TaskListPageState extends State<TaskListPage> {
await MyApp.isarInstance.writeTxn(() async { await MyApp.isarInstance.writeTxn(() async {
await MyApp.isarInstance.jobs.put(widget.job); await MyApp.isarInstance.jobs.put(widget.job);
}); });
Navigator.of(context).popUntil((route) => route.isFirst);
} }
} }
+10 -5
View File
@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart'; import 'package:geolocator/geolocator.dart';
import 'package:isar/isar.dart'; import 'package:isar/isar.dart';
import 'package:path_provider/path_provider.dart'; import 'package:path_provider/path_provider.dart';
import 'package:stadtbote/messages/PopContentViewMessage.dart';
import 'package:stadtbote/model/message.dart'; import 'package:stadtbote/model/message.dart';
import 'package:stadtbote/model/status.dart'; import 'package:stadtbote/model/status.dart';
import 'package:stadtbote/model/task_info.dart'; import 'package:stadtbote/model/task_info.dart';
@@ -165,7 +166,7 @@ class _MainState extends State<Main> with SingleTickerProviderStateMixin {
_leftButtonVisible = false; _leftButtonVisible = false;
_leftIconButton = const Icon(Icons.arrow_back, size: 20.0, color: Colors.white); _leftIconButton = const Icon(Icons.arrow_back, size: 20.0, color: Colors.white);
_leftButtonOnPressed = () { _leftButtonOnPressed = () {
_popContentView(); _popContentView(1);
}; };
_rightButtonVisible = headerInfo.rightButtonVisible; _rightButtonVisible = headerInfo.rightButtonVisible;
@@ -191,7 +192,7 @@ class _MainState extends State<Main> with SingleTickerProviderStateMixin {
child: WillPopScope( child: WillPopScope(
onWillPop: () async { onWillPop: () async {
if (contentStack.isNotEmpty) { if (contentStack.isNotEmpty) {
_popContentView(); _popContentView(1);
return false; return false;
} else { } else {
@@ -314,8 +315,8 @@ class _MainState extends State<Main> with SingleTickerProviderStateMixin {
MessageService().subscribe<ContentViewWidget>(Constants.messageTopicPushContentView, this, (ContentViewWidget widget) { MessageService().subscribe<ContentViewWidget>(Constants.messageTopicPushContentView, this, (ContentViewWidget widget) {
_pushContentView(widget); _pushContentView(widget);
}); });
MessageService().subscribe<ContentViewWidget>(Constants.messageTopicPopContentView, this, (ContentViewWidget widget) { MessageService().subscribe<PopContentViewMessage>(Constants.messageTopicPopContentView, this, (PopContentViewMessage message) {
_popContentView(); _popContentView(message.count);
}); });
MessageService().subscribe<ContentViewWidget>(Constants.messageTopicReplaceContentView, this, (ContentViewWidget widget) { MessageService().subscribe<ContentViewWidget>(Constants.messageTopicReplaceContentView, this, (ContentViewWidget widget) {
_replaceContentView(widget); _replaceContentView(widget);
@@ -354,8 +355,12 @@ class _MainState extends State<Main> with SingleTickerProviderStateMixin {
}); });
} }
void _popContentView() { void _popContentView(int count) {
Future.delayed(const Duration(seconds: 0), () async { Future.delayed(const Duration(seconds: 0), () async {
for (int i = 0; i < count - 1; i++) {
contentStack.pop();
}
var previousContentView = contentStack.pop(); var previousContentView = contentStack.pop();
_currentContent = previousContentView; _currentContent = previousContentView;
+5
View File
@@ -0,0 +1,5 @@
class PopContentViewMessage {
late int count;
PopContentViewMessage({required this.count});
}
+14 -36
View File
@@ -4,32 +4,16 @@ import 'package:signature/signature.dart';
import 'package:stadtbote/model/task_info.dart'; import 'package:stadtbote/model/task_info.dart';
import 'package:stadtbote/tools/util.dart'; import 'package:stadtbote/tools/util.dart';
KumiPopupWindow showSignaturePopup(BuildContext context, TaskInfo taskInfo, Function() onFinished) { showSignaturePopup(BuildContext context, TaskInfo taskInfo, Function() onFinished) async {
return showPopupWindow( await showDialog<void>(
context, context: context,
//childSize:Size(240, MediaQuery.of(context).size.width * 0.8), builder: (BuildContext context) {
gravity: KumiPopupGravity.center, return AlertDialog(
//curve: Curves.elasticOut, contentPadding: EdgeInsets.zero,
bgColor: Colors.grey.withOpacity(0.5), shadowColor: Colors.transparent,
clickOutDismiss: false, backgroundColor: Colors.white,
clickBackDismiss: true, content: StatefulBuilder(
customAnimation: false, builder: (BuildContext context, StateSetter setState) {
customPop: false,
customPage: false,
// targetRenderBox: (btnKey.currentContext.findRenderObject() as RenderBox),
//needSafeDisplay: true,
underStatusBar: false,
underAppBar: false,
//offsetX: -180,
//offsetY: 50,
duration: const Duration(milliseconds: 200),
onShowStart: (pop) {},
onShowFinish: (pop) {},
onDismissStart: (pop) {},
onDismissFinish: (pop) {},
onClickOut: (pop) {},
onClickBack: (pop) {},
childFun: (pop) {
final SignatureController controller = SignatureController(); final SignatureController controller = SignatureController();
var popupHeight = MediaQuery.of(context).size.height * 0.85; var popupHeight = MediaQuery.of(context).size.height * 0.85;
@@ -62,18 +46,12 @@ KumiPopupWindow showSignaturePopup(BuildContext context, TaskInfo taskInfo, Func
backgroundColor: Colors.lightBlueAccent, backgroundColor: Colors.lightBlueAccent,
), ),
), ),
getDefaultButton('Übernehmen', buttonHeight: 50, () => { getDefaultButton('Übernehmen', buttonHeight: 50, () => {Navigator.of(context).pop(), onFinished()})
onFinished()
})
], ],
), ),
), ),
) ));
);
}, },
); ));
});
} }
/*
*/