diff --git a/lib/screens/folder_view.dart b/lib/screens/folder_view.dart index e9e047d3..a0c151f9 100644 --- a/lib/screens/folder_view.dart +++ b/lib/screens/folder_view.dart @@ -10,7 +10,6 @@ import 'package:gitjournal/core/sorting_mode.dart'; import 'package:gitjournal/folder_views/standard_view.dart'; import 'package:gitjournal/screens/note_editor.dart'; import 'package:gitjournal/screens/settings_screen.dart'; -import 'package:gitjournal/settings.dart'; import 'package:gitjournal/state_container.dart'; import 'package:gitjournal/utils.dart'; import 'package:gitjournal/widgets/app_drawer.dart'; @@ -209,19 +208,12 @@ class _FolderViewState extends State { } void _newPost(BuildContext context, EditorType editorType) async { - NotesFolderFS fsFolder = widget.notesFolder.fsFolder; - if (widget.notesFolder.name != fsFolder.name) { - var spec = Settings.instance.defaultNewNoteFolderSpec; - var journalSpec = Settings.instance.journalEditordefaultNewNoteFolderSpec; - - switch (editorType) { - case EditorType.Journal: - fsFolder = fsFolder.getFolderWithSpec(journalSpec); - break; - default: - fsFolder = fsFolder.getFolderWithSpec(spec); - break; - } + var folder = widget.notesFolder; + NotesFolderFS fsFolder = folder.fsFolder; + var isVirtualFolder = folder.name != folder.fsFolder.name; + if (isVirtualFolder) { + var rootFolder = Provider.of(context); + fsFolder = getFolderForEditor(rootFolder, editorType); } var route = MaterialPageRoute( diff --git a/lib/utils.dart b/lib/utils.dart index 25f2a49a..45706983 100644 --- a/lib/utils.dart +++ b/lib/utils.dart @@ -1,4 +1,7 @@ import 'package:flutter/material.dart'; +import 'package:gitjournal/core/notes_folder_fs.dart'; +import 'package:gitjournal/screens/note_editor.dart'; +import 'package:gitjournal/settings.dart'; import 'package:package_info/package_info.dart'; import 'package:provider/provider.dart'; @@ -43,3 +46,18 @@ void showSnackbar(BuildContext context, String message) { ..removeCurrentSnackBar() ..showSnackBar(snackBar); } + +NotesFolderFS getFolderForEditor( + NotesFolderFS rootFolder, + EditorType editorType, +) { + var spec = Settings.instance.defaultNewNoteFolderSpec; + var journalSpec = Settings.instance.journalEditordefaultNewNoteFolderSpec; + + switch (editorType) { + case EditorType.Journal: + return rootFolder.getFolderWithSpec(journalSpec); + default: + return rootFolder.getFolderWithSpec(spec); + } +}