import 'package:core/utils/app_logger.dart'; typedef BeforeReconnectListener = Future Function(); class BeforeReconnectManager { static final BeforeReconnectManager _instance = BeforeReconnectManager._(); factory BeforeReconnectManager() => _instance; BeforeReconnectManager._(); final _listeners = []; void addListener(BeforeReconnectListener listener) { _listeners.add(listener); } void removeListener(BeforeReconnectListener listener) { _listeners.remove(listener); } Future executeBeforeReconnectListeners() async { await Future.wait(_listeners.map((listener) => listener.call())) .onError((error, stackTrace) => [logWarning(error.toString())]); } }