@@ -16,13 +16,18 @@ import 'package:taskwarrior/app/utils/taskfunctions/add_task_dialog_utils.dart';
1616import 'package:taskwarrior/app/utils/taskfunctions/tags.dart' ;
1717import 'package:taskwarrior/app/utils/taskfunctions/taskparser.dart' ;
1818import 'package:taskwarrior/app/utils/themes/theme_extension.dart' ;
19+ import 'package:taskwarrior/app/v3/champion/Replica.dart' ;
1920import 'package:taskwarrior/app/v3/models/task.dart' ;
2021
2122class AddTaskBottomSheet extends StatelessWidget {
2223 final HomeController homeController;
2324 final bool forTaskC;
25+ final bool forReplica;
2426 const AddTaskBottomSheet (
25- {required this .homeController, super .key, this .forTaskC = false });
27+ {required this .homeController,
28+ super .key,
29+ this .forTaskC = false ,
30+ this .forReplica = false });
2631
2732 @override
2833 Widget build (BuildContext context) {
@@ -66,6 +71,8 @@ class AddTaskBottomSheet extends StatelessWidget {
6671 onPressed: () {
6772 if (forTaskC) {
6873 onSaveButtonClickedTaskC (context);
74+ } else if (forReplica) {
75+ onSaveButtonClickedForReplica (context);
6976 } else {
7077 onSaveButtonClicked (context);
7178 }
@@ -354,7 +361,6 @@ class AddTaskBottomSheet extends StatelessWidget {
354361 }
355362
356363 void onSaveButtonClicked (BuildContext context) async {
357- // print(homeController.formKey.currentState);
358364 if (homeController.formKey.currentState! .validate ()) {
359365 try {
360366 var task = taskParser (homeController.namecontroller.text)
@@ -432,4 +438,83 @@ class AddTaskBottomSheet extends StatelessWidget {
432438 }
433439 }
434440 }
441+
442+ void onSaveButtonClickedForReplica (BuildContext context) async {
443+ if (homeController.formKey.currentState! .validate ()) {
444+ try {
445+ var task = taskParser (homeController.namecontroller.text)
446+ .rebuild ((b) =>
447+ b..due = getDueDate (homeController.selectedDates)? .toUtc ())
448+ .rebuild ((p) => p..priority = homeController.priority.value)
449+ .rebuild ((t) => t..project = homeController.projectcontroller.text)
450+ .rebuild ((t) =>
451+ t..wait = getWaitDate (homeController.selectedDates)? .toUtc ())
452+ .rebuild ((t) =>
453+ t..until = getUntilDate (homeController.selectedDates)? .toUtc ())
454+ .rebuild ((t) => t
455+ ..scheduled =
456+ getSchedDate (homeController.selectedDates)? .toUtc ());
457+ if (homeController.tags.isNotEmpty) {
458+ task = task.rebuild ((t) => t..tags.replace (homeController.tags));
459+ }
460+ await Replica .addTaskToReplica (task);
461+ homeController.namecontroller.text = '' ;
462+ homeController.projectcontroller.text = '' ;
463+ homeController.dueString.value = "" ;
464+ homeController.priority.value = 'X' ;
465+ homeController.tagcontroller.text = '' ;
466+ homeController.tags.value = [];
467+ homeController.update ();
468+ Get .back ();
469+ if (Platform .isAndroid) {
470+ WidgetController widgetController = Get .put (WidgetController ());
471+ widgetController.fetchAllData ();
472+ widgetController.update ();
473+ }
474+
475+ homeController.update ();
476+
477+ ScaffoldMessenger .of (context).showSnackBar (SnackBar (
478+ content: Text (
479+ SentenceManager (
480+ currentLanguage: homeController.selectedLanguage.value)
481+ .sentences
482+ .addTaskTaskAddedSuccessfully,
483+ style: TextStyle (
484+ color: AppSettings .isDarkMode
485+ ? TaskWarriorColors .kprimaryTextColor
486+ : TaskWarriorColors .kLightPrimaryTextColor,
487+ ),
488+ ),
489+ backgroundColor: AppSettings .isDarkMode
490+ ? TaskWarriorColors .ksecondaryBackgroundColor
491+ : TaskWarriorColors .kLightSecondaryBackgroundColor,
492+ duration: const Duration (seconds: 2 )));
493+
494+ final SharedPreferences prefs = await SharedPreferences .getInstance ();
495+ bool ? value;
496+ value = prefs.getBool ('sync-OnTaskCreate' ) ?? false ;
497+ // late InheritedStorage storageWidget;
498+ // storageWidget = StorageWidget.of(context);
499+ var storageWidget = Get .find <HomeController >();
500+ if (value) {
501+ storageWidget.synchronize (context, true );
502+ }
503+ } on FormatException catch (e) {
504+ ScaffoldMessenger .of (context).showSnackBar (SnackBar (
505+ content: Text (
506+ e.message,
507+ style: TextStyle (
508+ color: AppSettings .isDarkMode
509+ ? TaskWarriorColors .kprimaryTextColor
510+ : TaskWarriorColors .kLightPrimaryTextColor,
511+ ),
512+ ),
513+ backgroundColor: AppSettings .isDarkMode
514+ ? TaskWarriorColors .ksecondaryBackgroundColor
515+ : TaskWarriorColors .kLightSecondaryBackgroundColor,
516+ duration: const Duration (seconds: 2 )));
517+ }
518+ }
519+ }
435520}
0 commit comments