From 6c21f82d3a1eb71593d25067bbee8b6a81ff8b8b Mon Sep 17 00:00:00 2001 From: Vishesh Handa Date: Sun, 6 Oct 2019 12:03:19 +0200 Subject: [PATCH] Note.load: Reload note if modified in the file system --- lib/note.dart | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/note.dart b/lib/note.dart index 995460d3..178c8856 100644 --- a/lib/note.dart +++ b/lib/note.dart @@ -15,6 +15,8 @@ class Note implements Comparable { DateTime created; NoteData data = NoteData(); + DateTime _fileLastModified; + var _loadState = NoteLoadState.None; var _serializer = MarkdownYAMLSerializer(); @@ -36,12 +38,18 @@ class Note implements Comparable { } Future 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 { created = DateTime(0, 0, 0, 0, 0, 0, 0, 0); } + _fileLastModified = file.lastModifiedSync(); _loadState = NoteLoadState.Loaded; + return _loadState; }