stream static method
Create a stream of ConnectivityStatus based on the ConnectivityConfig
Implementation
static Stream<ConnectivityStatus> stream(ConnectivityConfig config) async* {
while (true) {
Duration? ping = await ConnectivityChecker.ping(config.pingRequest);
if (ping == null) {
// catch exception like TimeoutError
// check wifi connection
var hasConnection = await ConnectivityChecker.hasNetworkConnection();
if (hasConnection) {
yield ConnectivityStatus.hasNetworkButNoConnection(
errorMsg: errorMessage);
} else {
yield ConnectivityStatus.offline(errorMsg: errorMessage);
}
} else {
yield ConnectivityStatus.fromPing(config, ping);
}
// sleep for next round
await Future.delayed(config.checkInterval);
}
}