diff --git a/lib/screens/folder_listing.dart b/lib/screens/folder_listing.dart index c883c455..b1d0105f 100644 --- a/lib/screens/folder_listing.dart +++ b/lib/screens/folder_listing.dart @@ -15,6 +15,7 @@ class FolderListingScreen extends StatefulWidget { } class _FolderListingScreenState extends State { + final _folderTreeViewKey = GlobalKey(); NotesFolder selectedFolder; @override @@ -22,6 +23,7 @@ class _FolderListingScreenState extends State { final notesFolder = Provider.of(context); var treeView = FolderTreeView( + key: _folderTreeViewKey, rootFolder: notesFolder, onFolderEntered: (NotesFolder folder) { var route = MaterialPageRoute( @@ -62,15 +64,28 @@ class _FolderListingScreenState extends State { if (folderName is String) { final container = StateContainer.of(context); container.renameFolder(selectedFolder, folderName); + _folderTreeViewKey.currentState.resetSelection(); } }, ); } + var backButton = IconButton( + icon: Icon(Icons.arrow_back), + onPressed: () { + _folderTreeViewKey.currentState.resetSelection(); + }, + ); + + var title = const Text("Folder"); + if (selectedFolder != null) { + title = const Text("Folder Selected"); + } + return Scaffold( appBar: AppBar( - title: const Text('Folders'), - leading: GJAppBarMenuButton(), + title: title, + leading: selectedFolder == null ? GJAppBarMenuButton() : backButton, actions: [ if (selectedFolder != null) action, ], diff --git a/lib/widgets/folder_tree_view.dart b/lib/widgets/folder_tree_view.dart index a35b9b87..74233b03 100644 --- a/lib/widgets/folder_tree_view.dart +++ b/lib/widgets/folder_tree_view.dart @@ -12,17 +12,18 @@ class FolderTreeView extends StatefulWidget { final FolderSelectedCallback onFolderEntered; FolderTreeView({ + Key key, @required this.rootFolder, @required this.onFolderSelected, @required this.onFolderUnselected, @required this.onFolderEntered, - }); + }) : super(key: key); @override - _FolderTreeViewState createState() => _FolderTreeViewState(); + FolderTreeViewState createState() => FolderTreeViewState(); } -class _FolderTreeViewState extends State { +class FolderTreeViewState extends State { bool inSelectionMode = false; NotesFolder selectedFolder; @@ -55,6 +56,13 @@ class _FolderTreeViewState extends State { children: [tile], ); } + + void resetSelection() { + setState(() { + selectedFolder = null; + }); + widget.onFolderUnselected(); + } } class FolderTile extends StatefulWidget {