diff --git a/fastlane/metadata/en-US/images/conduit-demo.gif b/fastlane/metadata/en-US/images/conduit-demo.gif index 2030ccb..1877310 100644 Binary files a/fastlane/metadata/en-US/images/conduit-demo.gif and b/fastlane/metadata/en-US/images/conduit-demo.gif differ diff --git a/fastlane/metadata/en-US/images/phoneScreenshots/1.png b/fastlane/metadata/en-US/images/phoneScreenshots/1.png index 0dbf0b7..a491bd6 100644 Binary files a/fastlane/metadata/en-US/images/phoneScreenshots/1.png and b/fastlane/metadata/en-US/images/phoneScreenshots/1.png differ diff --git a/fastlane/metadata/en-US/images/phoneScreenshots/2.png b/fastlane/metadata/en-US/images/phoneScreenshots/2.png index ee8af58..968f087 100644 Binary files a/fastlane/metadata/en-US/images/phoneScreenshots/2.png and b/fastlane/metadata/en-US/images/phoneScreenshots/2.png differ diff --git a/fastlane/metadata/en-US/images/phoneScreenshots/3.png b/fastlane/metadata/en-US/images/phoneScreenshots/3.png index 68f1afe..802f15e 100644 Binary files a/fastlane/metadata/en-US/images/phoneScreenshots/3.png and b/fastlane/metadata/en-US/images/phoneScreenshots/3.png differ diff --git a/fastlane/metadata/en-US/images/phoneScreenshots/4.png b/fastlane/metadata/en-US/images/phoneScreenshots/4.png index 60944bc..4bb1727 100644 Binary files a/fastlane/metadata/en-US/images/phoneScreenshots/4.png and b/fastlane/metadata/en-US/images/phoneScreenshots/4.png differ diff --git a/fastlane/metadata/en-US/images/phoneScreenshots/5.png b/fastlane/metadata/en-US/images/phoneScreenshots/5.png index 4401e5e..a54f8c9 100644 Binary files a/fastlane/metadata/en-US/images/phoneScreenshots/5.png and b/fastlane/metadata/en-US/images/phoneScreenshots/5.png differ diff --git a/lib/core/services/connectivity_service.dart b/lib/core/services/connectivity_service.dart index 5587955..b5519be 100644 --- a/lib/core/services/connectivity_service.dart +++ b/lib/core/services/connectivity_service.dart @@ -50,6 +50,9 @@ class ConnectivityService { } Future _checkConnectivity() async { + // Don't check connectivity if service is disposed + if (_connectivityController.isClosed) return; + final serverReachability = await _probeActiveServer(); if (serverReachability != null) { if (serverReachability) { @@ -80,7 +83,10 @@ class ConnectivityService { void _updateStatus(ConnectivityStatus status) { if (_lastStatus != status) { _lastStatus = status; - _connectivityController.add(status); + // Only add to stream if controller is not closed + if (!_connectivityController.isClosed) { + _connectivityController.add(status); + } } // Adapt polling interval based on recent failures to reduce battery/CPU @@ -99,10 +105,13 @@ class ConnectivityService { if (newInterval != _interval) { _interval = newInterval; _connectivityTimer?.cancel(); - _connectivityTimer = Timer.periodic( - _interval, - (_) => _checkConnectivity(), - ); + // Only create new timer if service is not disposed + if (!_connectivityController.isClosed) { + _connectivityTimer = Timer.periodic( + _interval, + (_) => _checkConnectivity(), + ); + } } } @@ -113,7 +122,10 @@ class ConnectivityService { void dispose() { _connectivityTimer?.cancel(); - _connectivityController.close(); + _connectivityTimer = null; + if (!_connectivityController.isClosed) { + _connectivityController.close(); + } } Future _probeActiveServer() async {