diff --git a/lib/editors/markdown_editor.dart b/lib/editors/markdown_editor.dart index c6d57fc6..f1c86e47 100644 --- a/lib/editors/markdown_editor.dart +++ b/lib/editors/markdown_editor.dart @@ -67,8 +67,14 @@ class MarkdownEditorState extends State implements EditorState { _titleTextController = TextEditingController(text: note.title); _oldText = note.body; - editingMode = Settings.instance.markdownDefaultView == - SettingsMarkdownDefaultView.Edit; + var settings = Settings.instance; + if (settings.markdownDefaultView == SettingsMarkdownDefaultView.LastUsed) { + editingMode = + settings.markdownLastUsedView == SettingsMarkdownDefaultView.Edit; + } else { + editingMode = + settings.markdownDefaultView == SettingsMarkdownDefaultView.Edit; + } } @override @@ -138,6 +144,17 @@ class MarkdownEditorState extends State implements EditorState { void _switchMode() { setState(() { editingMode = !editingMode; + switch (editingMode) { + case true: + Settings.instance.markdownLastUsedView = + SettingsMarkdownDefaultView.Edit; + break; + case false: + Settings.instance.markdownLastUsedView = + SettingsMarkdownDefaultView.View; + break; + } + Settings.instance.save(); _updateNote(); }); } diff --git a/lib/settings.dart b/lib/settings.dart index 32a47af6..a94abfd9 100644 --- a/lib/settings.dart +++ b/lib/settings.dart @@ -45,6 +45,8 @@ class Settings { SettingsMarkdownDefaultView markdownDefaultView = SettingsMarkdownDefaultView.Default; + SettingsMarkdownDefaultView markdownLastUsedView = + SettingsMarkdownDefaultView.Edit; String imageLocationSpec = "."; // . means the same folder String debugLogLevel = 'v'; @@ -79,8 +81,11 @@ class Settings { SettingsEditorType.fromInternalString(pref.getString("defaultEditor")); defaultView = SettingsFolderViewType.fromInternalString( pref.getString("defaultView")); + markdownDefaultView = SettingsMarkdownDefaultView.fromInternalString( pref.getString("markdownDefaultView")); + markdownLastUsedView = SettingsMarkdownDefaultView.fromInternalString( + pref.getString("markdownLastUsedView")); showNoteSummary = pref.getBool("showNoteSummary") ?? showNoteSummary; folderViewHeaderType = @@ -151,6 +156,11 @@ class Settings { "markdownDefaultView", markdownDefaultView.toInternalString(), defaultSet.markdownDefaultView.toInternalString()); + _setString( + pref, + "markdownLastUsedView", + markdownLastUsedView.toInternalString(), + defaultSet.markdownLastUsedView.toInternalString()); _setBool( pref, "showNoteSummary", showNoteSummary, defaultSet.showNoteSummary); _setString(pref, "folderViewHeaderType", folderViewHeaderType, @@ -223,6 +233,7 @@ class Settings { 'proExpirationDate': proExpirationDate, 'pseudoId': pseudoId, 'markdownDefaultView': markdownDefaultView.toInternalString(), + 'markdownLastUsedView': markdownLastUsedView.toInternalString(), 'homeScreen': homeScreen.toInternalString(), 'imageLocationSpec': imageLocationSpec, 'debugLogLevel': debugLogLevel, @@ -508,7 +519,8 @@ class SettingsFolderViewType { class SettingsMarkdownDefaultView { static const Edit = SettingsMarkdownDefaultView("Edit"); static const View = SettingsMarkdownDefaultView("View"); - static const Default = Edit; + static const LastUsed = SettingsMarkdownDefaultView("Last Used"); + static const Default = LastUsed; final String _str; const SettingsMarkdownDefaultView(this._str); @@ -524,6 +536,7 @@ class SettingsMarkdownDefaultView { static const options = [ Edit, View, + LastUsed, ]; static SettingsMarkdownDefaultView fromInternalString(String str) {