Note.load: Reload note if modified in the file system

This commit is contained in:
Vishesh Handa
2019-10-06 12:03:19 +02:00
parent 674655b5a8
commit 6c21f82d3a

View File

@ -15,6 +15,8 @@ class Note implements Comparable<Note> {
DateTime created;
NoteData data = NoteData();
DateTime _fileLastModified;
var _loadState = NoteLoadState.None;
var _serializer = MarkdownYAMLSerializer();
@ -36,12 +38,18 @@ class Note implements Comparable<Note> {
}
Future<NoteLoadState> load() async {
if (_loadState == NoteLoadState.Loading ||
_loadState == NoteLoadState.Loaded) {
if (_loadState == NoteLoadState.Loading) {
return _loadState;
}
final file = File(filePath);
if (_loadState == NoteLoadState.Loaded) {
var fileLastModified = file.lastModifiedSync();
if (fileLastModified == _fileLastModified) {
return _loadState;
}
}
if (!file.existsSync()) {
_loadState = NoteLoadState.NotExists;
return _loadState;
@ -73,7 +81,9 @@ class Note implements Comparable<Note> {
created = DateTime(0, 0, 0, 0, 0, 0, 0, 0);
}
_fileLastModified = file.lastModifiedSync();
_loadState = NoteLoadState.Loaded;
return _loadState;
}