From 1f10a9cec12c2febc693079123406ef57f689456 Mon Sep 17 00:00:00 2001 From: Prashik-Sasane Date: Tue, 6 Jan 2026 20:47:35 +0530 Subject: [PATCH 1/2] feat: Improvement in Navigation Bar --- lib/app/modules/home/views/home_view.dart | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/app/modules/home/views/home_view.dart b/lib/app/modules/home/views/home_view.dart index e2f62bb1..e22e889a 100644 --- a/lib/app/modules/home/views/home_view.dart +++ b/lib/app/modules/home/views/home_view.dart @@ -44,6 +44,10 @@ class HomeView extends GetView { ? TaskWarriorColors.kprimaryBackgroundColor : TaskWarriorColors.kLightPrimaryBackgroundColor, drawer: NavDrawer(homeController: controller), + + drawerEnableOpenDragGesture: true, + drawerEdgeDragWidth: 80, + body: HomePageBody( controller: controller, ), From 9ecbc4d68ae6511be7b9ea5677791cef67414869 Mon Sep 17 00:00:00 2001 From: Prashik-Sasane Date: Thu, 15 Jan 2026 14:48:56 +0530 Subject: [PATCH 2/2] feat: Show success theme SnackBar after updating tasks --- .../detailRoute/views/detail_route_view.dart | 57 ++++++++++++------- lib/app/utils/language/bengali_sentences.dart | 4 +- lib/app/utils/language/english_sentences.dart | 3 + lib/app/utils/language/french_sentences.dart | 4 +- lib/app/utils/language/hindi_sentences.dart | 2 + lib/app/utils/language/marathi_sentences.dart | 4 +- lib/app/utils/language/sentences.dart | 1 + lib/app/utils/language/spanish_sentences.dart | 4 +- .../language/bengali_sentences_test.dart | 1 + .../language/english_sentences_test.dart | 2 + .../utils/language/french_sentences_test.dart | 1 + test/utils/language/hindi_sentences_test.dart | 2 + .../language/marathi_sentences_test.dart | 1 + test/utils/language/sentences_test.dart | 1 + .../language/spanish_sentences_test.dart | 1 + 15 files changed, 64 insertions(+), 24 deletions(-) diff --git a/lib/app/modules/detailRoute/views/detail_route_view.dart b/lib/app/modules/detailRoute/views/detail_route_view.dart index f62c48a7..aab082fc 100644 --- a/lib/app/modules/detailRoute/views/detail_route_view.dart +++ b/lib/app/modules/detailRoute/views/detail_route_view.dart @@ -28,12 +28,12 @@ class DetailRouteView extends GetView { return WillPopScope( onWillPop: () async { if (!controller.onEdit.value) { - debugPrint( - 'DetailRouteView: No edits made, navigating back without prompt.'); + // debugPrint( + // 'DetailRouteView: No edits made, navigating back without prompt.'); // Get.offAll(() => const HomeView()); - Navigator.of(context).pop(); + // Navigator.of(context).pop(); // Get.toNamed(Routes.HOME); - return false; + return true; } debugPrint( 'DetailRouteView: Unsaved edits detected, prompting user for action.'); @@ -54,16 +54,15 @@ class DetailRouteView extends GetView { actions: [ // YES → save and pop TextButton( - onPressed: () { - // Get.back(); // Close the dialog first - // // Wait for dialog to fully close before showing snackbar - // Future.delayed(const Duration(milliseconds: 100), () { - // controller.saveChanges(); - // }); + onPressed: () => + // Get.back(); // Close the dialog first + // // Wait for dialog to fully close before showing snackbar + // Future.delayed(const Duration(milliseconds: 100), () { + // controller.saveChanges(); + // }); - controller.saveChanges(); - Navigator.of(context).pop(true); - }, + // controller.saveChanges(); + Navigator.pop(context, true), child: Text( SentenceManager( currentLanguage: AppSettings.selectedLanguage) @@ -77,10 +76,9 @@ class DetailRouteView extends GetView { // NO → discard and pop TextButton( - onPressed: () { - // Get.offAll(() => const HomeView()); - Navigator.of(context).pop(false); - }, + onPressed: () => + // Get.offAll(() => const HomeView()); + Navigator.pop(context, false), child: Text( SentenceManager( currentLanguage: AppSettings.selectedLanguage) @@ -94,9 +92,7 @@ class DetailRouteView extends GetView { // CANCEL → stay on page TextButton( - onPressed: () { - Navigator.of(context).pop(null); - }, + onPressed: () => Navigator.pop(context, null), child: Text( SentenceManager( currentLanguage: AppSettings.selectedLanguage) @@ -115,6 +111,27 @@ class DetailRouteView extends GetView { // Cancel → stay return false; } + if (save == true) { + controller.saveChanges(); + controller.onEdit.value = false; + + Future.microtask(() { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + backgroundColor: tColors.secondaryBackgroundColor, + content: Text( + SentenceManager( + currentLanguage: + AppSettings.selectedLanguage, + ).sentences + .taskUpdatedSuccessfully, + style: TextStyle( + color: tColors.primaryTextColor, + )), + ), + ); + }); + } // Yes (true) or No (false) → both allow popping the screen return true; }, diff --git a/lib/app/utils/language/bengali_sentences.dart b/lib/app/utils/language/bengali_sentences.dart index 4768b418..958c959b 100644 --- a/lib/app/utils/language/bengali_sentences.dart +++ b/lib/app/utils/language/bengali_sentences.dart @@ -383,7 +383,9 @@ class BengaliSentences extends Sentences { String get oldChanges => 'পুরানো'; @override String get newChanges => 'নতুন'; - + @override + String get taskUpdatedSuccessfully => 'কাজটি সফলভাবে আপডেট হয়েছে'; + @override String get tags => 'ট্যাগ'; @override diff --git a/lib/app/utils/language/english_sentences.dart b/lib/app/utils/language/english_sentences.dart index 6e631539..f11ffc2e 100644 --- a/lib/app/utils/language/english_sentences.dart +++ b/lib/app/utils/language/english_sentences.dart @@ -367,6 +367,9 @@ class EnglishSentences extends Sentences { String get yes => 'Yes'; @override String get no => 'No'; + @override + String get taskUpdatedSuccessfully => 'Task updated Successfully'; + @override String get reviewChanges => 'Review Changes'; @override diff --git a/lib/app/utils/language/french_sentences.dart b/lib/app/utils/language/french_sentences.dart index 6558fc35..9e993ac0 100644 --- a/lib/app/utils/language/french_sentences.dart +++ b/lib/app/utils/language/french_sentences.dart @@ -385,7 +385,9 @@ class FrenchSentences extends Sentences { String get oldChanges => 'Ancien'; @override String get newChanges => 'Nouveau'; - + @override + String get taskUpdatedSuccessfully => 'La tâche a été mise à jour avec succès'; + @override String get tags => 'Tags'; @override diff --git a/lib/app/utils/language/hindi_sentences.dart b/lib/app/utils/language/hindi_sentences.dart index fd148096..faaafd00 100644 --- a/lib/app/utils/language/hindi_sentences.dart +++ b/lib/app/utils/language/hindi_sentences.dart @@ -378,6 +378,8 @@ class HindiSentences extends Sentences { String get oldChanges => 'पुराना'; @override String get newChanges => 'नया'; + @override + String get taskUpdatedSuccessfully => 'कार्य सफलतापूर्वक अपडेट हो गया है'; @override String get tags => 'टैग'; diff --git a/lib/app/utils/language/marathi_sentences.dart b/lib/app/utils/language/marathi_sentences.dart index c4abf2d9..9102a0d1 100644 --- a/lib/app/utils/language/marathi_sentences.dart +++ b/lib/app/utils/language/marathi_sentences.dart @@ -383,7 +383,9 @@ class MarathiSentences extends Sentences { String get oldChanges => 'जुने'; @override String get newChanges => 'नवीन'; - + @override + String get taskUpdatedSuccessfully => 'कार्य यशस्वीपणे अद्ययावत झाले आहे'; + @override String get tags => 'टॅग्स'; @override diff --git a/lib/app/utils/language/sentences.dart b/lib/app/utils/language/sentences.dart index 77cb1877..3993eefd 100644 --- a/lib/app/utils/language/sentences.dart +++ b/lib/app/utils/language/sentences.dart @@ -189,6 +189,7 @@ abstract class Sentences { String get saveChangesConfirmation; String get yes; String get no; + String get taskUpdatedSuccessfully; String get reviewChanges; String get oldChanges; String get newChanges; diff --git a/lib/app/utils/language/spanish_sentences.dart b/lib/app/utils/language/spanish_sentences.dart index 17d73340..62efa98c 100644 --- a/lib/app/utils/language/spanish_sentences.dart +++ b/lib/app/utils/language/spanish_sentences.dart @@ -383,7 +383,9 @@ class SpanishSentences extends Sentences { String get oldChanges => 'Antiguo'; @override String get newChanges => 'Nuevo'; - + @override + String get taskUpdatedSuccessfully => 'La tarea se actualizó correctamente'; + @override String get tags => 'Etiquetas'; @override diff --git a/test/utils/language/bengali_sentences_test.dart b/test/utils/language/bengali_sentences_test.dart index 413c587c..9022652c 100644 --- a/test/utils/language/bengali_sentences_test.dart +++ b/test/utils/language/bengali_sentences_test.dart @@ -11,6 +11,7 @@ void main() { expect(bengali.homePageDue, 'জরুরি'); expect(bengali.homePageTaskWarriorNotConfigured, 'TaskServer কনফিগার করা হয়নি'); + expect(bengali.taskUpdatedSuccessfully, 'কাজটি সফলভাবে আপডেট হয়েছে'); expect(bengali.homePageSetup, 'সেটআপ'); expect(bengali.homePageFilter, 'ফিল্টার'); expect(bengali.homePageMenu, 'মেনু'); diff --git a/test/utils/language/english_sentences_test.dart b/test/utils/language/english_sentences_test.dart index a2e14071..4c8e8d6f 100644 --- a/test/utils/language/english_sentences_test.dart +++ b/test/utils/language/english_sentences_test.dart @@ -11,6 +11,8 @@ void main() { expect(english.homePageDue, 'Due'); expect(english.homePageTaskWarriorNotConfigured, 'TaskServer is not configured'); + expect(english.taskUpdatedSuccessfully, + 'TaskServer is not configured'); expect(english.homePageSetup, 'Setup'); expect(english.homePageFilter, 'Filter'); expect(english.homePageMenu, 'Menu'); diff --git a/test/utils/language/french_sentences_test.dart b/test/utils/language/french_sentences_test.dart index 023647ac..4cd8d46e 100644 --- a/test/utils/language/french_sentences_test.dart +++ b/test/utils/language/french_sentences_test.dart @@ -10,6 +10,7 @@ void main() { expect(french.homePageLastModified, 'Dernière modification'); expect(french.homePageDue, 'Échéance'); expect(french.homePageTaskWarriorNotConfigured, 'TaskServer non configuré'); + expect(french.taskUpdatedSuccessfully, 'La tâche a été mise à jour avec succès'); expect(french.homePageSetup, 'Configuration'); expect(french.homePageFilter, 'Filtre'); expect(french.homePageMenu, 'Menu'); diff --git a/test/utils/language/hindi_sentences_test.dart b/test/utils/language/hindi_sentences_test.dart index 45c41702..7e8703dc 100644 --- a/test/utils/language/hindi_sentences_test.dart +++ b/test/utils/language/hindi_sentences_test.dart @@ -11,6 +11,8 @@ void main() { expect(hindi.homePageDue, 'देय'); expect( hindi.homePageTaskWarriorNotConfigured, 'TaskServer कॉन्फ़िगर नहीं है'); + expect( + hindi.taskUpdatedSuccessfully, 'कार्य सफलतापूर्वक अपडेट हो गया है'); expect(hindi.homePageSetup, 'सेटअप'); expect(hindi.homePageFilter, 'फ़िल्टर'); expect(hindi.homePageMenu, 'मेन्यू'); diff --git a/test/utils/language/marathi_sentences_test.dart b/test/utils/language/marathi_sentences_test.dart index 57e8104c..26c47d44 100644 --- a/test/utils/language/marathi_sentences_test.dart +++ b/test/utils/language/marathi_sentences_test.dart @@ -10,6 +10,7 @@ void main() { expect(marathi.homePageLastModified, 'शेवटचा बदल'); expect(marathi.homePageDue, 'द्यावे'); expect(marathi.homePageTaskWarriorNotConfigured, 'TaskServer संरचीत नाही'); + expect(marathi.taskUpdatedSuccessfully, 'कार्य यशस्वीपणे अद्ययावत झाले आहे'); expect(marathi.homePageSetup, 'सेटअप'); expect(marathi.homePageFilter, 'फिल्टर'); expect(marathi.homePageMenu, 'मेनू'); diff --git a/test/utils/language/sentences_test.dart b/test/utils/language/sentences_test.dart index 7c073bdf..6fc44b2c 100644 --- a/test/utils/language/sentences_test.dart +++ b/test/utils/language/sentences_test.dart @@ -24,6 +24,7 @@ void main() { expect(sentences.homePageLastModified, isA()); expect(sentences.homePageDue, isA()); expect(sentences.homePageTaskWarriorNotConfigured, isA()); + expect(sentences.taskUpdatedSuccessfully, isA()); expect(sentences.homePageSetup, isA()); expect(sentences.homePageFilter, isA()); expect(sentences.homePageMenu, isA()); diff --git a/test/utils/language/spanish_sentences_test.dart b/test/utils/language/spanish_sentences_test.dart index f51722c4..20b06792 100644 --- a/test/utils/language/spanish_sentences_test.dart +++ b/test/utils/language/spanish_sentences_test.dart @@ -11,6 +11,7 @@ void main() { expect(spanish.homePageDue, 'Vencimiento'); expect( spanish.homePageTaskWarriorNotConfigured, 'TaskServer no configurado'); + expect(spanish.taskUpdatedSuccessfully, 'La tarea se actualizó correctamente'); expect(spanish.homePageSetup, 'Configuración'); expect(spanish.homePageFilter, 'Filtro'); expect(spanish.homePageMenu, 'Menú');