diff --git a/lib/core/note.dart b/lib/core/note.dart index 68dc6480..1e157301 100644 --- a/lib/core/note.dart +++ b/lib/core/note.dart @@ -16,7 +16,7 @@ enum NoteLoadState { NotExists, } -class Note with ChangeNotifier { +class Note with ChangeNotifier implements Comparable { NotesFolder parent; String _filePath; @@ -204,4 +204,19 @@ class Note with ChangeNotifier { String toString() { return 'Note{filePath: $_filePath, created: $created, modified: $modified, data: $_data}'; } + + @override + int compareTo(Note other) { + if (other == null) { + return -1; + } + + var dt = modified ?? created ?? _fileLastModified; + var otherDt = other.modified ?? other.created ?? other._fileLastModified; + if (dt == null || otherDt == null) { + return _filePath.compareTo(other._filePath); + } + + return dt.compareTo(otherDt); + } }