Remove more instances of Settings.instance

Use the Provider
This commit is contained in:
Vishesh Handa
2020-08-09 01:41:11 +02:00
parent 9d55b449d3
commit 633d9f5744
5 changed files with 28 additions and 13 deletions

View File

@ -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 {

View File

@ -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<void> 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);

View File

@ -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<ExperimentalSettingsScreen> {
@override
Widget build(BuildContext context) {
var settings = Settings.instance;
var settings = Provider.of<Settings>(context);
return Scaffold(
appBar: AppBar(

View File

@ -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<GitHostSetupAutoConfigure> {
});
var userInfo = await gitHost.getUserInfo();
var settings = Provider.of<Settings>(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;

View File

@ -33,6 +33,7 @@ void main() {
viewHeader: StandardViewHeader.TitleOrFileName,
fileNameFormat: NoteFileNameFormat.Default,
folder: folder,
yamlHeaderEnabled: true,
);
await config.saveToFS();