mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-07-13 06:30:51 +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 {
|
class NotesFolderNotifier implements ChangeNotifier {
|
||||||
var _folderAddedListeners = ObserverList<FolderNotificationCallback>();
|
var _folderAddedListeners = ObserverList<FolderNotificationCallback>();
|
||||||
var _folderRemovedListeners = ObserverList<FolderNotificationCallback>();
|
var _folderRemovedListeners = ObserverList<FolderNotificationCallback>();
|
||||||
var _folderModifiedListeners = ObserverList<FolderNotificationCallback>();
|
|
||||||
|
|
||||||
var _noteAddedListeners = ObserverList<NoteNotificationCallback>();
|
var _noteAddedListeners = ObserverList<NoteNotificationCallback>();
|
||||||
var _noteRemovedListeners = ObserverList<NoteNotificationCallback>();
|
var _noteRemovedListeners = ObserverList<NoteNotificationCallback>();
|
||||||
var _noteModifiedListeners = ObserverList<NoteNotificationCallback>();
|
|
||||||
|
|
||||||
void addFolderRemovedListener(FolderNotificationCallback listener) {
|
void addFolderRemovedListener(FolderNotificationCallback listener) {
|
||||||
_folderRemovedListeners.add(listener);
|
_folderRemovedListeners.add(listener);
|
||||||
@ -33,14 +31,6 @@ class NotesFolderNotifier implements ChangeNotifier {
|
|||||||
_folderAddedListeners.remove(listener);
|
_folderAddedListeners.remove(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
void addFolderModifiedListener(FolderNotificationCallback listener) {
|
|
||||||
_folderModifiedListeners.add(listener);
|
|
||||||
}
|
|
||||||
|
|
||||||
void removeFolderModifiedListener(FolderNotificationCallback listener) {
|
|
||||||
_folderModifiedListeners.remove(listener);
|
|
||||||
}
|
|
||||||
|
|
||||||
void addNoteAddedListener(NoteNotificationCallback listener) {
|
void addNoteAddedListener(NoteNotificationCallback listener) {
|
||||||
_noteAddedListeners.add(listener);
|
_noteAddedListeners.add(listener);
|
||||||
}
|
}
|
||||||
@ -57,23 +47,13 @@ class NotesFolderNotifier implements ChangeNotifier {
|
|||||||
_noteRemovedListeners.remove(listener);
|
_noteRemovedListeners.remove(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
void addNoteModifiedListener(NoteNotificationCallback listener) {
|
|
||||||
_noteModifiedListeners.add(listener);
|
|
||||||
}
|
|
||||||
|
|
||||||
void removeNoteModifiedListener(NoteNotificationCallback listener) {
|
|
||||||
_noteModifiedListeners.remove(listener);
|
|
||||||
}
|
|
||||||
|
|
||||||
@mustCallSuper
|
@mustCallSuper
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
_folderAddedListeners = null;
|
_folderAddedListeners = null;
|
||||||
_folderRemovedListeners = null;
|
_folderRemovedListeners = null;
|
||||||
_folderModifiedListeners = null;
|
|
||||||
_noteAddedListeners = null;
|
_noteAddedListeners = null;
|
||||||
_noteRemovedListeners = null;
|
_noteRemovedListeners = null;
|
||||||
_noteModifiedListeners = null;
|
|
||||||
|
|
||||||
assert(_debugAssertNotDisposed());
|
assert(_debugAssertNotDisposed());
|
||||||
_listeners = null;
|
_listeners = null;
|
||||||
@ -163,10 +143,6 @@ class NotesFolderNotifier implements ChangeNotifier {
|
|||||||
_notifyNoteCallback(_noteRemovedListeners, index, note);
|
_notifyNoteCallback(_noteRemovedListeners, index, note);
|
||||||
}
|
}
|
||||||
|
|
||||||
void notifyNoteModified(int index, Note note) {
|
|
||||||
_notifyNoteCallback(_noteModifiedListeners, index, note);
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// ChangeNotifier implementation - How to not duplicate this?
|
// ChangeNotifier implementation - How to not duplicate this?
|
||||||
//
|
//
|
||||||
|
@ -12,7 +12,6 @@ class SortedNotesFolder
|
|||||||
SortingMode sortingMode;
|
SortingMode sortingMode;
|
||||||
|
|
||||||
List<Note> _notes = [];
|
List<Note> _notes = [];
|
||||||
var noteListeners = <Note, Function>{};
|
|
||||||
|
|
||||||
SortedNotesFolder({
|
SortedNotesFolder({
|
||||||
@required this.folder,
|
@required this.folder,
|
||||||
@ -20,13 +19,6 @@ class SortedNotesFolder
|
|||||||
}) {
|
}) {
|
||||||
_notes = List<Note>.from(folder.notes);
|
_notes = List<Note>.from(folder.notes);
|
||||||
_notes.sort(_compare);
|
_notes.sort(_compare);
|
||||||
_notes.forEach((note) {
|
|
||||||
var listener = () {
|
|
||||||
_noteModified(note);
|
|
||||||
};
|
|
||||||
note.addListener(listener);
|
|
||||||
noteListeners[note] = listener;
|
|
||||||
});
|
|
||||||
|
|
||||||
folder.addFolderAddedListener(_folderAddedListener);
|
folder.addFolderAddedListener(_folderAddedListener);
|
||||||
folder.addFolderRemovedListener(_folderRemovedListener);
|
folder.addFolderRemovedListener(_folderRemovedListener);
|
||||||
@ -39,11 +31,6 @@ class SortedNotesFolder
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
_notes.forEach((note) {
|
|
||||||
var listener = noteListeners[note];
|
|
||||||
note.removeListener(listener);
|
|
||||||
});
|
|
||||||
|
|
||||||
folder.removeFolderAddedListener(_folderAddedListener);
|
folder.removeFolderAddedListener(_folderAddedListener);
|
||||||
folder.removeFolderRemovedListener(_folderRemovedListener);
|
folder.removeFolderRemovedListener(_folderRemovedListener);
|
||||||
|
|
||||||
@ -74,13 +61,6 @@ class SortedNotesFolder
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
_notes.insert(i, note);
|
_notes.insert(i, note);
|
||||||
|
|
||||||
var listener = () {
|
|
||||||
_noteModified(note);
|
|
||||||
};
|
|
||||||
note.addListener(listener);
|
|
||||||
noteListeners[note] = listener;
|
|
||||||
|
|
||||||
notifyNoteAdded(i, note);
|
notifyNoteAdded(i, note);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,34 +71,9 @@ class SortedNotesFolder
|
|||||||
assert(index != -1);
|
assert(index != -1);
|
||||||
_notes.removeAt(index);
|
_notes.removeAt(index);
|
||||||
|
|
||||||
var listener = noteListeners[note];
|
|
||||||
note.removeListener(listener);
|
|
||||||
|
|
||||||
notifyNoteRemoved(index, note);
|
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() {
|
void _entityChanged() {
|
||||||
_notes.sort(_compare);
|
_notes.sort(_compare);
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
|
Reference in New Issue
Block a user