import 'package:connectivity_plus/connectivity_plus.dart'; /// Service for monitoring internet connectivity status /// /// Wraps the connectivity_plus package and provides a simple stream /// of online/offline status as boolean values. class ConnectivityService { final Connectivity _connectivity; ConnectivityService({Connectivity? connectivity}) : _connectivity = connectivity ?? Connectivity(); /// Stream that emits true when online, false when offline /// /// This stream will emit a new value whenever the connectivity status changes. /// Note: This checks for network connectivity, not actual internet access. Stream get connectivityStream { return _connectivity.onConnectivityChanged.map((results) { // connectivity_plus now returns List // Check if any result is not 'none' return results.isNotEmpty && !results.every((result) => result == ConnectivityResult.none); }); } /// Check current connectivity status (one-time check) /// /// Returns true if device has network connectivity, false otherwise. Future isConnected() async { final results = await _connectivity.checkConnectivity(); return results.isNotEmpty && !results.every((result) => result == ConnectivityResult.none); } }