worldhopper/lib/services/connectivity_service.dart

34 lines
1.3 KiB
Dart

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<bool> get connectivityStream {
return _connectivity.onConnectivityChanged.map((results) {
// connectivity_plus now returns List<ConnectivityResult>
// 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<bool> isConnected() async {
final results = await _connectivity.checkConnectivity();
return results.isNotEmpty &&
!results.every((result) => result == ConnectivityResult.none);
}
}