Save zenMode in settings

That way we don't need to toggle it each time.

Maybe it would be nice to have this exposed via the settings as well,
per editor. So I could enable it / disable it per editor.
This commit is contained in:
Vishesh Handa
2020-07-27 10:08:17 +02:00
parent 9ca19077e7
commit 175bf85531
2 changed files with 15 additions and 6 deletions

View File

@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:gitjournal/core/notes_folder_fs.dart'; import 'package:gitjournal/core/notes_folder_fs.dart';
import 'package:gitjournal/editors/common.dart'; import 'package:gitjournal/editors/common.dart';
import 'package:gitjournal/settings.dart';
class EditorScaffold extends StatefulWidget { class EditorScaffold extends StatefulWidget {
final Editor editor; final Editor editor;
@ -27,13 +28,13 @@ class EditorScaffold extends StatefulWidget {
} }
class _EditorScaffoldState extends State<EditorScaffold> { class _EditorScaffoldState extends State<EditorScaffold> {
var zenMode = false;
var hideUIElements = false; var hideUIElements = false;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
hideUIElements = Settings.instance.zenMode;
widget.editorState.addListener(_editorChanged); widget.editorState.addListener(_editorChanged);
} }
@ -45,7 +46,7 @@ class _EditorScaffoldState extends State<EditorScaffold> {
} }
void _editorChanged() { void _editorChanged() {
if (zenMode && !hideUIElements) { if (Settings.instance.zenMode && !hideUIElements) {
setState(() { setState(() {
hideUIElements = true; hideUIElements = true;
}); });
@ -71,7 +72,7 @@ class _EditorScaffoldState extends State<EditorScaffold> {
child: GestureDetector( child: GestureDetector(
child: widget.body, child: widget.body,
onTap: () { onTap: () {
if (zenMode) { if (Settings.instance.zenMode) {
setState(() { setState(() {
hideUIElements = false; hideUIElements = false;
}); });
@ -88,11 +89,13 @@ class _EditorScaffoldState extends State<EditorScaffold> {
editorState: widget.editorState, editorState: widget.editorState,
parentFolder: widget.parentFolder, parentFolder: widget.parentFolder,
allowEdits: widget.allowEdits, allowEdits: widget.allowEdits,
zenMode: zenMode, zenMode: Settings.instance.zenMode,
onZenModeChanged: () { onZenModeChanged: () {
setState(() { setState(() {
zenMode = !zenMode; Settings.instance.zenMode = !Settings.instance.zenMode;
if (zenMode) { Settings.instance.save();
if (Settings.instance.zenMode) {
hideUIElements = true; hideUIElements = true;
} }
}); });

View File

@ -52,6 +52,8 @@ class Settings {
bool experimentalBacklinks = true; bool experimentalBacklinks = true;
bool experimentalFs = false; bool experimentalFs = false;
bool zenMode = false;
void load(SharedPreferences pref) { void load(SharedPreferences pref) {
gitAuthor = pref.getString("gitAuthor") ?? gitAuthor; gitAuthor = pref.getString("gitAuthor") ?? gitAuthor;
gitAuthorEmail = pref.getString("gitAuthorEmail") ?? gitAuthorEmail; gitAuthorEmail = pref.getString("gitAuthorEmail") ?? gitAuthorEmail;
@ -114,6 +116,8 @@ class Settings {
experimentalBacklinks = experimentalBacklinks =
pref.getBool("experimentalBacklinks") ?? experimentalBacklinks; pref.getBool("experimentalBacklinks") ?? experimentalBacklinks;
experimentalFs = pref.getBool("experimentalFs") ?? experimentalFs; experimentalFs = pref.getBool("experimentalFs") ?? experimentalFs;
zenMode = pref.getBool("zenMode") ?? zenMode;
} }
Future save() async { Future save() async {
@ -179,6 +183,7 @@ class Settings {
_setBool(pref, "experimentalBacklinks", experimentalBacklinks, _setBool(pref, "experimentalBacklinks", experimentalBacklinks,
defaultSet.experimentalBacklinks); defaultSet.experimentalBacklinks);
_setBool(pref, "experimentalFs", experimentalFs, defaultSet.experimentalFs); _setBool(pref, "experimentalFs", experimentalFs, defaultSet.experimentalFs);
_setBool(pref, "zenMode", zenMode, defaultSet.zenMode);
pref.setInt("settingsVersion", version); pref.setInt("settingsVersion", version);
} }
@ -238,6 +243,7 @@ class Settings {
'debugLogLevel': debugLogLevel, 'debugLogLevel': debugLogLevel,
'experimentalBacklinks': experimentalBacklinks.toString(), 'experimentalBacklinks': experimentalBacklinks.toString(),
'experimentalFs': experimentalFs.toString(), 'experimentalFs': experimentalFs.toString(),
'zenMode': zenMode.toString(),
}; };
} }