onConnectivityChanged property

  1. @override
Stream<List<String>> get onConnectivityChanged
override

Stream of connectivity status changes

Implementation

@override
Stream<List<String>> get onConnectivityChanged {
  _onConnectivityChanged ??= eventChannel
      .receiveBroadcastStream()
      .map<List<String>>((dynamic event) {
        if (event == null) {
          return ['none'];
        }

        // Handle both List and single String
        if (event is List) {
          return event.map((e) => e.toString()).toList();
        } else if (event is String) {
          return [event];
        } else {
          return ['none'];
        }
      })
      .handleError((error) {
        if (kDebugMode) {
          print('NetworkWatcher stream error: $error');
        }
        return ['none'];
      })
      .distinct() // Prevent duplicate consecutive events
      .asBroadcastStream();

  return _onConnectivityChanged!;
}