deregisterChangeListener method
Removes a registered listener.
@param listener the listener to be removed @return the removed search criteria @throws StorageException in case of any communication or storage problem
Implementation
@override
Future<List<SearchCriteria>> deregisterChangeListener(
StorageListener listener) async {
List<SearchCriteria> remove = <SearchCriteria>[];
for (MapEntry<SearchCriteria, Set<StorageListener>> e
in listeners.entries) {
if (e.value.contains(listener)) {
remove.add(e.key);
}
}
if (remove.isEmpty) {
throw StorageException('Listener not registered');
}
for (var c in remove) {
listeners[c]!.remove(listener);
}
return remove;
}