diff --git a/lib/core/notes_cache.dart b/lib/core/notes_cache.dart index 98437556..0d40052e 100644 --- a/lib/core/notes_cache.dart +++ b/lib/core/notes_cache.dart @@ -1,5 +1,3 @@ -// @dart=2.9 - import 'dart:convert'; import 'dart:io'; @@ -24,9 +22,9 @@ class NotesCache { static const CACHE_SIZE = 20; NotesCache({ - @required this.filePath, - @required this.notesBasePath, - @required this.settings, + required this.filePath, + required this.notesBasePath, + required this.settings, }); Future load(NotesFolderFS rootFolder) async { @@ -74,7 +72,7 @@ class NotesCache { Future clear() async { if (!enabled) return; - return File(filePath).delete(); + await File(filePath).delete(); } Future buildCache(NotesFolderFS rootFolder) async { @@ -120,7 +118,7 @@ class NotesCache { try { contents = await File(filePath).readAsString(); } on FileSystemException catch (ex) { - if (ex.osError.errorCode == 2 /* file not found */) { + if (ex.osError?.errorCode == 2 /* file not found */) { return []; } rethrow; diff --git a/lib/core/notes_folder.dart b/lib/core/notes_folder.dart index 7f3b030f..afd9bf09 100644 --- a/lib/core/notes_folder.dart +++ b/lib/core/notes_folder.dart @@ -1,5 +1,3 @@ -// @dart=2.9 - import 'note.dart'; import 'notes_folder_config.dart'; import 'notes_folder_notifier.dart'; @@ -14,8 +12,8 @@ abstract class NotesFolder implements NotesFolderNotifier { List get notes; List get subFolders; - NotesFolder get parent; - NotesFolder get fsFolder; + NotesFolder? get parent; + NotesFolder? get fsFolder; NotesFolderConfig get config; diff --git a/lib/core/notes_folder_config.dart b/lib/core/notes_folder_config.dart index a69bbda6..0cb990e6 100644 --- a/lib/core/notes_folder_config.dart +++ b/lib/core/notes_folder_config.dart @@ -1,5 +1,3 @@ -// @dart=2.9 - import 'dart:io'; import 'package:equatable/equatable.dart'; @@ -41,21 +39,21 @@ class NotesFolderConfig extends Equatable { final String imageLocationSpec; NotesFolderConfig({ - @required this.sortingMode, - @required this.defaultEditor, - @required this.defaultView, - @required this.viewHeader, - @required this.showNoteSummary, - @required this.fileNameFormat, - @required this.journalFileNameFormat, - @required this.folder, - @required this.yamlHeaderEnabled, - @required this.yamlModifiedKey, - @required this.yamlCreatedKey, - @required this.yamlTagsKey, - @required this.titleSettings, - @required this.inlineTagPrefixes, - @required this.imageLocationSpec, + required this.sortingMode, + required this.defaultEditor, + required this.defaultView, + required this.viewHeader, + required this.showNoteSummary, + required this.fileNameFormat, + required this.journalFileNameFormat, + required this.folder, + required this.yamlHeaderEnabled, + required this.yamlModifiedKey, + required this.yamlCreatedKey, + required this.yamlTagsKey, + required this.titleSettings, + required this.inlineTagPrefixes, + required this.imageLocationSpec, }); @override @@ -77,8 +75,8 @@ class NotesFolderConfig extends Equatable { ]; static NotesFolderConfig fromSettings( - NotesFolderFS folder, Settings settings) { - StandardViewHeader viewHeader; + NotesFolderFS? folder, Settings settings) { + late StandardViewHeader viewHeader; switch (settings.folderViewHeaderType) { case "TitleGenerated": viewHeader = StandardViewHeader.TitleGenerated; @@ -87,6 +85,7 @@ class NotesFolderConfig extends Equatable { viewHeader = StandardViewHeader.FileName; break; case "TitleOrFileName": + default: viewHeader = StandardViewHeader.TitleOrFileName; break; } @@ -99,7 +98,7 @@ class NotesFolderConfig extends Equatable { viewHeader: viewHeader, fileNameFormat: settings.noteFileNameFormat, journalFileNameFormat: settings.journalNoteFileNameFormat, - folder: folder, + folder: folder!, yamlHeaderEnabled: settings.yamlHeaderEnabled, yamlCreatedKey: settings.yamlCreatedKey, yamlModifiedKey: settings.yamlModifiedKey, @@ -118,7 +117,7 @@ class NotesFolderConfig extends Equatable { settings.defaultView = SettingsFolderViewType.fromFolderViewType(defaultView); - String ht; + String? ht; switch (viewHeader) { case StandardViewHeader.FileName: ht = "FileName"; @@ -144,21 +143,21 @@ class NotesFolderConfig extends Equatable { } NotesFolderConfig copyWith({ - SortingMode sortingMode, - EditorType defaultEditor, - FolderViewType defaultView, - StandardViewHeader viewHeader, - bool showNoteSummary, - NoteFileNameFormat fileNameFormat, - NoteFileNameFormat journalFileNameFormat, - NotesFolderFS folder, - bool yamlHeaderEnabled, - String yamlCreatedKey, - String yamlModifiedKey, - String yamlTagsKey, - SettingsTitle titleSettings, - Set inlineTagPrefixes, - String imageLocationSpec, + SortingMode? sortingMode, + EditorType? defaultEditor, + FolderViewType? defaultView, + StandardViewHeader? viewHeader, + bool? showNoteSummary, + NoteFileNameFormat? fileNameFormat, + NoteFileNameFormat? journalFileNameFormat, + NotesFolderFS? folder, + bool? yamlHeaderEnabled, + String? yamlCreatedKey, + String? yamlModifiedKey, + String? yamlTagsKey, + SettingsTitle? titleSettings, + Set? inlineTagPrefixes, + String? imageLocationSpec, }) { return NotesFolderConfig( sortingMode: sortingMode ?? this.sortingMode, @@ -180,7 +179,7 @@ class NotesFolderConfig extends Equatable { ); } - static Future fromFS(NotesFolderFS folder) async { + static Future fromFS(NotesFolderFS folder) async { var file = File(p.join(folder.folderPath, FILENAME)); if (!file.existsSync()) { return null; @@ -198,9 +197,9 @@ class NotesFolderConfig extends Equatable { } var sortingField = - SortingField.fromInternalString(map["sortingField"]?.toString()); + SortingField.fromInternalString(map["sortingField"]!.toString()); var sortingOrder = - SortingOrder.fromInternalString(map["sortingOrder"]?.toString()); + SortingOrder.fromInternalString(map["sortingOrder"]!.toString()); var sortingMode = SortingMode(sortingField, sortingOrder); var defaultEditor = @@ -211,7 +210,7 @@ class NotesFolderConfig extends Equatable { var showNoteSummary = map["showNoteSummary"].toString() != "false"; var folderViewHeaderType = map["folderViewHeaderType"]?.toString(); - StandardViewHeader viewHeader; + late StandardViewHeader viewHeader; switch (folderViewHeaderType) { case "TitleGenerated": viewHeader = StandardViewHeader.TitleGenerated; @@ -220,6 +219,7 @@ class NotesFolderConfig extends Equatable { viewHeader = StandardViewHeader.FileName; break; case "TitleOrFileName": + default: viewHeader = StandardViewHeader.TitleOrFileName; break; } @@ -228,9 +228,9 @@ class NotesFolderConfig extends Equatable { var journalFileNameFormat = map['journalFileNameFormat'].toString(); var yamlHeaderEnabled = map["yamlHeaderEnabled"]?.toString() != "false"; - var yamlCreatedKey = map['yamlCreatedKey']?.toString(); - var yamlModifiedKey = map['yamlModifiedKey']?.toString(); - var yamlTagsKey = map['yamlTagsKey']?.toString(); + var yamlCreatedKey = map['yamlCreatedKey']!.toString(); + var yamlModifiedKey = map['yamlModifiedKey']!.toString(); + var yamlTagsKey = map['yamlTagsKey']!.toString(); var titleSettings = map['titleSettings']?.toString(); // FIXME: What about inlineTagPrefixes? @@ -256,7 +256,7 @@ class NotesFolderConfig extends Equatable { } Future saveToFS() async { - String ht; + String? ht; switch (viewHeader) { case StandardViewHeader.FileName: ht = "FileName"; diff --git a/lib/core/virtual_notes_folder.dart b/lib/core/virtual_notes_folder.dart index e6e4d9f1..cd73b7d0 100644 --- a/lib/core/virtual_notes_folder.dart +++ b/lib/core/virtual_notes_folder.dart @@ -1,5 +1,3 @@ -// @dart=2.9 - import 'package:gitjournal/settings.dart'; import 'note.dart'; import 'notes_folder.dart'; @@ -24,7 +22,7 @@ class VirtualNotesFolder with NotesFolderNotifier implements NotesFolder { bool get hasNotes => _notes.isNotEmpty; @override - NotesFolder get parent => null; + NotesFolder? get parent => null; @override String pathSpec() => ""; @@ -36,12 +34,13 @@ class VirtualNotesFolder with NotesFolderNotifier implements NotesFolder { String get publicName => ""; @override - NotesFolder get fsFolder { + NotesFolder? get fsFolder { return null; } @override NotesFolderConfig get config { + // fixme: This isn't expecting null! return NotesFolderConfig.fromSettings(null, settings); } }