mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-28 09:47:35 +08:00
Note.load: Reload note if modified in the file system
This commit is contained in:
@ -15,6 +15,8 @@ class Note implements Comparable<Note> {
|
|||||||
DateTime created;
|
DateTime created;
|
||||||
NoteData data = NoteData();
|
NoteData data = NoteData();
|
||||||
|
|
||||||
|
DateTime _fileLastModified;
|
||||||
|
|
||||||
var _loadState = NoteLoadState.None;
|
var _loadState = NoteLoadState.None;
|
||||||
var _serializer = MarkdownYAMLSerializer();
|
var _serializer = MarkdownYAMLSerializer();
|
||||||
|
|
||||||
@ -36,12 +38,18 @@ class Note implements Comparable<Note> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<NoteLoadState> load() async {
|
Future<NoteLoadState> load() async {
|
||||||
if (_loadState == NoteLoadState.Loading ||
|
if (_loadState == NoteLoadState.Loading) {
|
||||||
_loadState == NoteLoadState.Loaded) {
|
|
||||||
return _loadState;
|
return _loadState;
|
||||||
}
|
}
|
||||||
|
|
||||||
final file = File(filePath);
|
final file = File(filePath);
|
||||||
|
if (_loadState == NoteLoadState.Loaded) {
|
||||||
|
var fileLastModified = file.lastModifiedSync();
|
||||||
|
if (fileLastModified == _fileLastModified) {
|
||||||
|
return _loadState;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!file.existsSync()) {
|
if (!file.existsSync()) {
|
||||||
_loadState = NoteLoadState.NotExists;
|
_loadState = NoteLoadState.NotExists;
|
||||||
return _loadState;
|
return _loadState;
|
||||||
@ -73,7 +81,9 @@ class Note implements Comparable<Note> {
|
|||||||
created = DateTime(0, 0, 0, 0, 0, 0, 0, 0);
|
created = DateTime(0, 0, 0, 0, 0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_fileLastModified = file.lastModifiedSync();
|
||||||
_loadState = NoteLoadState.Loaded;
|
_loadState = NoteLoadState.Loaded;
|
||||||
|
|
||||||
return _loadState;
|
return _loadState;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user