import 'observer_list.dart'; typedef VoidCallback = void Function(); class ChangeNotifier { ObserverList _listeners = ObserverList(); bool get hasListeners { return _listeners.isNotEmpty; } void addListener(VoidCallback listener) { _listeners.add(listener); } void removeListener(VoidCallback listener) { _listeners.remove(listener); } void dispose() { _listeners = null; } void notifyListeners() { if (_listeners != null) { final localListeners = List.from(_listeners); for (final listener in localListeners) { try { if (_listeners.contains(listener)) listener(); } catch (exception, stack) { print('error'); } } } } }