From ce9a72676b8540c5ada82e00899c75827056372f Mon Sep 17 00:00:00 2001 From: Vishesh Handa Date: Sun, 22 Dec 2019 15:38:04 +0100 Subject: [PATCH] Fix Folders navigation Clicking on Folders in AppBar when inside a Folder wouldn't take you back to the Folder Listing. --- lib/widgets/app_drawer.dart | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/lib/widgets/app_drawer.dart b/lib/widgets/app_drawer.dart index a4c3b286..177eb395 100644 --- a/lib/widgets/app_drawer.dart +++ b/lib/widgets/app_drawer.dart @@ -84,19 +84,38 @@ class AppDrawer extends StatelessWidget { title: "Folders", onTap: () { var m = ModalRoute.of(context); - // FIXME: This is a terrible hack, I should figure out how to make - // transitions work with named routes - if (m.settings.name == null) { - Navigator.pop(context); - } else { + if (m.settings.name == '/') { Navigator.pop(context); Navigator.push( context, PageTransition( type: PageTransitionType.fade, child: FolderListingScreen(), + settings: const RouteSettings(name: '/folders'), ), ); + } else if (m.settings.name == '/folders') { + Navigator.pop(context); + } else { + // Check if '/folders' is a parent + var wasParent = false; + Navigator.popUntil( + context, + (route) { + wasParent = route.settings.name == '/folders'; + return wasParent; + }, + ); + if (!wasParent) { + Navigator.push( + context, + PageTransition( + type: PageTransitionType.fade, + child: FolderListingScreen(), + settings: const RouteSettings(name: '/folders'), + ), + ); + } } }, selected: currentRoute == null,