Skip to content

Instantly share code, notes, and snippets.

@snapsl
Last active March 21, 2024 14:15
Show Gist options
  • Save snapsl/504db09696c394cf961b420a701d505f to your computer and use it in GitHub Desktop.
Save snapsl/504db09696c394cf961b420a701d505f to your computer and use it in GitHub Desktop.
Use connectivity plus with riverpod
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'connectivity_status_provider.g.dart';
@riverpod
Stream<List<ConnectivityResult>> connectivityStatus(
ConnectivityStatusRef ref,
) async* {
final Connectivity connectivity = Connectivity();
// yield first connectivity result
yield await connectivity.checkConnectivity();
// yield on change stream
await for (final connectivityResults in connectivity.onConnectivityChanged) {
yield connectivityResults;
}
}
/// only listen to changes
@riverpod
Stream<List<ConnectivityResult>> connectivityChanged(
ConnectivityChangedRef ref,
) => Connectivity().onConnectivityChanged;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment