From 633d9f5744967408635f767dc159156cd89025c3 Mon Sep 17 00:00:00 2001 From: Vishesh Handa Date: Sun, 9 Aug 2020 01:41:11 +0200 Subject: [PATCH] Remove more instances of Settings.instance Use the Provider --- lib/core/note.dart | 2 +- lib/core/notes_folder_config.dart | 27 ++++++++++++++++++-------- lib/screens/settings_experimental.dart | 3 ++- lib/setup/autoconfigure.dart | 8 +++++--- test/notes_folder_config_test.dart | 1 + 5 files changed, 28 insertions(+), 13 deletions(-) diff --git a/lib/core/note.dart b/lib/core/note.dart index f964ad5a..22329b59 100644 --- a/lib/core/note.dart +++ b/lib/core/note.dart @@ -188,7 +188,7 @@ class Note with NotesNotifier { if (_fileFormat == NoteFileFormat.Txt) { return false; } - return Settings.instance.yamlHeaderEnabled; + return parent.config.yamlHeaderEnabled; } MdYamlDoc get data { diff --git a/lib/core/notes_folder_config.dart b/lib/core/notes_folder_config.dart index 73570100..e3f59f0c 100644 --- a/lib/core/notes_folder_config.dart +++ b/lib/core/notes_folder_config.dart @@ -26,6 +26,7 @@ class NotesFolderConfig extends Equatable { final bool showNoteSummary; final NoteFileNameFormat fileNameFormat; final NotesFolderFS folder; + final bool yamlHeaderEnabled; //int _version = 1; NotesFolderConfig({ @@ -36,6 +37,7 @@ class NotesFolderConfig extends Equatable { @required this.showNoteSummary, @required this.fileNameFormat, @required this.folder, + @required this.yamlHeaderEnabled, }); @override @@ -46,6 +48,7 @@ class NotesFolderConfig extends Equatable { viewHeader, fileNameFormat, folder, + yamlHeaderEnabled, ]; static NotesFolderConfig fromSettings(NotesFolderFS folder) { @@ -72,15 +75,17 @@ class NotesFolderConfig extends Equatable { viewHeader: viewHeader, fileNameFormat: settings.noteFileNameFormat, folder: folder, + yamlHeaderEnabled: settings.yamlHeaderEnabled, ); } Future saveToSettings() async { - Settings.instance.sortingMode = sortingMode; - Settings.instance.showNoteSummary = showNoteSummary; - Settings.instance.defaultEditor = - SettingsEditorType.fromEditorType(defaultEditor); - Settings.instance.defaultView = + var settings = Settings.instance; + + settings.sortingMode = sortingMode; + settings.showNoteSummary = showNoteSummary; + settings.defaultEditor = SettingsEditorType.fromEditorType(defaultEditor); + settings.defaultView = SettingsFolderViewType.fromFolderViewType(defaultView); String ht; @@ -95,9 +100,10 @@ class NotesFolderConfig extends Equatable { ht = "TitleOrFileName"; break; } - Settings.instance.folderViewHeaderType = ht; - Settings.instance.noteFileNameFormat = fileNameFormat; - Settings.instance.save(); + settings.folderViewHeaderType = ht; + settings.noteFileNameFormat = fileNameFormat; + settings.yamlHeaderEnabled = yamlHeaderEnabled; + settings.save(); } NotesFolderConfig copyWith({ @@ -108,6 +114,7 @@ class NotesFolderConfig extends Equatable { bool showNoteSummary, NoteFileNameFormat fileNameFormat, NotesFolderFS folder, + bool yamlHeaderEnabled, }) { return NotesFolderConfig( sortingMode: sortingMode ?? this.sortingMode, @@ -117,6 +124,7 @@ class NotesFolderConfig extends Equatable { showNoteSummary: showNoteSummary ?? this.showNoteSummary, fileNameFormat: fileNameFormat ?? this.fileNameFormat, folder: folder ?? this.folder, + yamlHeaderEnabled: yamlHeaderEnabled ?? this.yamlHeaderEnabled, ); } @@ -161,6 +169,7 @@ class NotesFolderConfig extends Equatable { } var fileNameFormat = map['noteFileNameFormat']?.toString(); + var yamlHeaderEnabled = map["yamlHeaderEnabled"].toString() != "false"; return NotesFolderConfig( defaultEditor: defaultEditor.toEditorType(), @@ -170,6 +179,7 @@ class NotesFolderConfig extends Equatable { viewHeader: viewHeader, fileNameFormat: NoteFileNameFormat.fromInternalString(fileNameFormat), folder: folder, + yamlHeaderEnabled: yamlHeaderEnabled, ); } @@ -196,6 +206,7 @@ class NotesFolderConfig extends Equatable { "showNoteSummary": showNoteSummary, "folderViewHeaderType": ht, "noteFileNameFormat": fileNameFormat.toInternalString(), + 'yamlHeaderEnabled': yamlHeaderEnabled, }; var yaml = toYAML(map); diff --git a/lib/screens/settings_experimental.dart b/lib/screens/settings_experimental.dart index 3d9fc557..27c3b372 100644 --- a/lib/screens/settings_experimental.dart +++ b/lib/screens/settings_experimental.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:easy_localization/easy_localization.dart'; +import 'package:provider/provider.dart'; import 'package:gitjournal/settings.dart'; @@ -14,7 +15,7 @@ class _ExperimentalSettingsScreenState extends State { @override Widget build(BuildContext context) { - var settings = Settings.instance; + var settings = Provider.of(context); return Scaffold( appBar: AppBar( diff --git a/lib/setup/autoconfigure.dart b/lib/setup/autoconfigure.dart index eaf71939..907b6c03 100644 --- a/lib/setup/autoconfigure.dart +++ b/lib/setup/autoconfigure.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:function_types/function_types.dart'; +import 'package:provider/provider.dart'; import 'package:gitjournal/analytics.dart'; import 'package:gitjournal/apis/githost_factory.dart'; @@ -54,13 +55,14 @@ class GitHostSetupAutoConfigureState extends State { }); var userInfo = await gitHost.getUserInfo(); + var settings = Provider.of(context, listen: false); if (userInfo.name != null && userInfo.name.isNotEmpty) { - Settings.instance.gitAuthor = userInfo.name; + settings.gitAuthor = userInfo.name; } if (userInfo.email != null && userInfo.email.isNotEmpty) { - Settings.instance.gitAuthorEmail = userInfo.email; + settings.gitAuthorEmail = userInfo.email; } - Settings.instance.save(); + settings.save(); } on Exception catch (e, stacktrace) { _handleGitHostException(e, stacktrace); return; diff --git a/test/notes_folder_config_test.dart b/test/notes_folder_config_test.dart index 55907f82..f2d74809 100644 --- a/test/notes_folder_config_test.dart +++ b/test/notes_folder_config_test.dart @@ -33,6 +33,7 @@ void main() { viewHeader: StandardViewHeader.TitleOrFileName, fileNameFormat: NoteFileNameFormat.Default, folder: folder, + yamlHeaderEnabled: true, ); await config.saveToFS();