setupConnectivityListner method
dynamic
setupConnectivityListner({
- CustomNoInternetWrapper? offlineWidget,
- NoConnectivityStyle? connectivityStyle = NoConnectivityStyle.SNACKBAR,
- Widget? customAlert,
Implementation
setupConnectivityListner({
CustomNoInternetWrapper? offlineWidget,
GlobalKey<NavigatorState>? navigatorKey,
NoConnectivityStyle? connectivityStyle = NoConnectivityStyle.SNACKBAR,
Widget? customAlert,
}) async {
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");
}
}
checker.onStatusChange.listen((status) {
if (_connectivityStyle == NoConnectivityStyle.CUSTOM &&
(_contextKey.currentState?.overlay) != null) {
_overlayState = (_contextKey.currentState!.overlay);
}
switch (status) {
/// ConnectedState
case InternetConnectionStatus.connected:
try {
if (connectivityStyle != NoConnectivityStyle.NONE) {
_removeNoInternet();
}
ZoConnectivityWatcher().isInternetAvailable = true;
ZoConnectivityWatcher()
.connectivityController
.sink
.add(ConnectivityWatcherStatus.connected);
} catch (e) {
print(e);
}
break;
/// DisconnectedState
case InternetConnectionStatus.disconnected:
ZoConnectivityWatcher().isInternetAvailable = false;
ZoConnectivityWatcher()
.connectivityController
.sink
.add(ConnectivityWatcherStatus.disconnected);
if (connectivityStyle != NoConnectivityStyle.NONE) {
showNoInternet();
}
break;
}
});
}