setupConnectivityListner method

void setupConnectivityListner({
  1. CustomNoInternetWrapper? offlineWidget,
  2. GlobalKey<NavigatorState>? navigatorKey,
  3. NoConnectivityStyle? connectivityStyle = NoConnectivityStyle.SNACKBAR,
  4. Widget? customAlert,
})

Implementation

void setupConnectivityListner({
  CustomNoInternetWrapper? offlineWidget,
  GlobalKey<NavigatorState>? navigatorKey,
  NoConnectivityStyle? connectivityStyle = NoConnectivityStyle.SNACKBAR,
  Widget? customAlert,
}) async {
  if (_subscription == null) {
    setUp();
  }
  if (connectivityStyle != NoConnectivityStyle.NONE) {
    if (navigatorKey != null) {
      _contextKey = navigatorKey;
    }
    _userWidget = offlineWidget;
    _customAlert = customAlert;
    _connectivityStyle = connectivityStyle;

    if (_connectivityStyle == NoConnectivityStyle.CUSTOM &&
        _userWidget == null) {
      throw ("widgetForNoInternet is missing");
    }

    if (_connectivityStyle == NoConnectivityStyle.CUSTOMALERT &&
        _customAlert == null) {
      throw ("customAlert  is missing");
    }
  }

  _statusController.stream.listen((status) {
    if (_connectivityStyle == NoConnectivityStyle.CUSTOM &&
        (_contextKey.currentState?.overlay) != null) {
      _overlayState = (_contextKey.currentState!.overlay);
    }

    if (status) {
      try {
        if (connectivityStyle != NoConnectivityStyle.NONE) {
          _removeNoInternet();
        }
      } catch (e) {
        print(e);
      }
    } else {
      if (connectivityStyle != NoConnectivityStyle.NONE) {
        showNoInternet();
      }
    }
  });
}