internetStatusStreamProvider top-level property

StreamProvider<ConnectionStatus> internetStatusStreamProvider
final

Provides the current internet connection status as a stream. Uses Connectivity plus InternetConnectionChecker for accurate status.

Implementation

final internetStatusStreamProvider = StreamProvider<ConnectionStatus>((ref) {
  final controller = StreamController<ConnectionStatus>();
  final checker = InternetConnectionChecker.instance;

  Future<void> updateStatus() async {
    final hasInternet = await checker.hasConnection;
    controller.add(
      hasInternet ? ConnectionStatus.connected : ConnectionStatus.disconnected,
    );
  }

  // Initial check
  updateStatus();

  // Listen to connectivity changes and update status accordingly
  final sub = Connectivity().onConnectivityChanged.listen((_) {
    updateStatus();
  });

  ref.onDispose(() {
    sub.cancel();
    controller.close();
  });

  return controller.stream;
});