mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-25 16:19:58 +08:00
Revert "NotesFolder: Add a notification for when a note changes"
This reverts commit f583d181c6c21f2e332a2468b19de47bca72b848. This causes way too many rebuilds.
This commit is contained in:
@ -11,11 +11,9 @@ typedef NoteNotificationCallback = void Function(int index, Note note);
|
||||
class NotesFolderNotifier implements ChangeNotifier {
|
||||
var _folderAddedListeners = ObserverList<FolderNotificationCallback>();
|
||||
var _folderRemovedListeners = ObserverList<FolderNotificationCallback>();
|
||||
var _folderModifiedListeners = ObserverList<FolderNotificationCallback>();
|
||||
|
||||
var _noteAddedListeners = ObserverList<NoteNotificationCallback>();
|
||||
var _noteRemovedListeners = ObserverList<NoteNotificationCallback>();
|
||||
var _noteModifiedListeners = ObserverList<NoteNotificationCallback>();
|
||||
|
||||
void addFolderRemovedListener(FolderNotificationCallback listener) {
|
||||
_folderRemovedListeners.add(listener);
|
||||
@ -33,14 +31,6 @@ class NotesFolderNotifier implements ChangeNotifier {
|
||||
_folderAddedListeners.remove(listener);
|
||||
}
|
||||
|
||||
void addFolderModifiedListener(FolderNotificationCallback listener) {
|
||||
_folderModifiedListeners.add(listener);
|
||||
}
|
||||
|
||||
void removeFolderModifiedListener(FolderNotificationCallback listener) {
|
||||
_folderModifiedListeners.remove(listener);
|
||||
}
|
||||
|
||||
void addNoteAddedListener(NoteNotificationCallback listener) {
|
||||
_noteAddedListeners.add(listener);
|
||||
}
|
||||
@ -57,23 +47,13 @@ class NotesFolderNotifier implements ChangeNotifier {
|
||||
_noteRemovedListeners.remove(listener);
|
||||
}
|
||||
|
||||
void addNoteModifiedListener(NoteNotificationCallback listener) {
|
||||
_noteModifiedListeners.add(listener);
|
||||
}
|
||||
|
||||
void removeNoteModifiedListener(NoteNotificationCallback listener) {
|
||||
_noteModifiedListeners.remove(listener);
|
||||
}
|
||||
|
||||
@mustCallSuper
|
||||
@override
|
||||
void dispose() {
|
||||
_folderAddedListeners = null;
|
||||
_folderRemovedListeners = null;
|
||||
_folderModifiedListeners = null;
|
||||
_noteAddedListeners = null;
|
||||
_noteRemovedListeners = null;
|
||||
_noteModifiedListeners = null;
|
||||
|
||||
assert(_debugAssertNotDisposed());
|
||||
_listeners = null;
|
||||
@ -163,10 +143,6 @@ class NotesFolderNotifier implements ChangeNotifier {
|
||||
_notifyNoteCallback(_noteRemovedListeners, index, note);
|
||||
}
|
||||
|
||||
void notifyNoteModified(int index, Note note) {
|
||||
_notifyNoteCallback(_noteModifiedListeners, index, note);
|
||||
}
|
||||
|
||||
//
|
||||
// ChangeNotifier implementation - How to not duplicate this?
|
||||
//
|
||||
|
@ -12,7 +12,6 @@ class SortedNotesFolder
|
||||
SortingMode sortingMode;
|
||||
|
||||
List<Note> _notes = [];
|
||||
var noteListeners = <Note, Function>{};
|
||||
|
||||
SortedNotesFolder({
|
||||
@required this.folder,
|
||||
@ -20,13 +19,6 @@ class SortedNotesFolder
|
||||
}) {
|
||||
_notes = List<Note>.from(folder.notes);
|
||||
_notes.sort(_compare);
|
||||
_notes.forEach((note) {
|
||||
var listener = () {
|
||||
_noteModified(note);
|
||||
};
|
||||
note.addListener(listener);
|
||||
noteListeners[note] = listener;
|
||||
});
|
||||
|
||||
folder.addFolderAddedListener(_folderAddedListener);
|
||||
folder.addFolderRemovedListener(_folderRemovedListener);
|
||||
@ -39,11 +31,6 @@ class SortedNotesFolder
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_notes.forEach((note) {
|
||||
var listener = noteListeners[note];
|
||||
note.removeListener(listener);
|
||||
});
|
||||
|
||||
folder.removeFolderAddedListener(_folderAddedListener);
|
||||
folder.removeFolderRemovedListener(_folderRemovedListener);
|
||||
|
||||
@ -74,13 +61,6 @@ class SortedNotesFolder
|
||||
}
|
||||
}
|
||||
_notes.insert(i, note);
|
||||
|
||||
var listener = () {
|
||||
_noteModified(note);
|
||||
};
|
||||
note.addListener(listener);
|
||||
noteListeners[note] = listener;
|
||||
|
||||
notifyNoteAdded(i, note);
|
||||
}
|
||||
|
||||
@ -91,34 +71,9 @@ class SortedNotesFolder
|
||||
assert(index != -1);
|
||||
_notes.removeAt(index);
|
||||
|
||||
var listener = noteListeners[note];
|
||||
note.removeListener(listener);
|
||||
|
||||
notifyNoteRemoved(index, note);
|
||||
}
|
||||
|
||||
void _noteModified(Note note) {
|
||||
notifyNoteModified(-1, note);
|
||||
|
||||
// And insert it in the right location
|
||||
var index = _notes.indexWhere((n) => n.filePath == note.filePath);
|
||||
assert(index != -1);
|
||||
_notes.removeAt(index);
|
||||
|
||||
notifyNoteRemoved(index, note);
|
||||
|
||||
var i = 0;
|
||||
for (; i < _notes.length; i++) {
|
||||
var n = _notes[i];
|
||||
if (_compare(n, note) > 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
_notes.insert(i, note);
|
||||
|
||||
notifyNoteAdded(i, note);
|
||||
}
|
||||
|
||||
void _entityChanged() {
|
||||
_notes.sort(_compare);
|
||||
notifyListeners();
|
||||
|
Reference in New Issue
Block a user