checkReconnection method

void checkReconnection()

Implementation

void checkReconnection() {
  // Remember to cancel the subscription when it's no longer needed
  StreamSubscription<List<ConnectivityResult>> subscription = Connectivity()
      .onConnectivityChanged
      .listen((List<ConnectivityResult> connectivityResult) {
    if (connectivityResult.contains(ConnectivityResult.mobile)) {
      _logger.i('Mobile network available.');
      if (activeCalls().isNotEmpty && !_isAttaching) {
        _reconnectToSocket();
      } // Mobile network available.
    } else if (connectivityResult.contains(ConnectivityResult.wifi)) {
      _logger.i('Wi-fi is available.');
      if (activeCalls().isNotEmpty && !_isAttaching) {
        _reconnectToSocket();
      }
      // Wi-fi is available.
      // Note for Android:
      // When both mobile and Wi-Fi are turned on system will return Wi-Fi only as active network type
    } else if (connectivityResult.contains(ConnectivityResult.ethernet)) {
      _logger.i('Ethernet connection available.');
      // Ethernet connection available.
    } else if (connectivityResult.contains(ConnectivityResult.vpn)) {
      // Vpn connection active.
      // Note for iOS and macOS:
      _logger.i('Vpn connection active.');
    } else if (connectivityResult.contains(ConnectivityResult.bluetooth)) {
      _logger.i('Bluetooth connection available.');
      // Bluetooth connection available.
    } else if (connectivityResult.contains(ConnectivityResult.other)) {
      _logger.i(
          'Connected to a network which is not in the above mentioned networks.');
      // Connected to a network which is not in the above mentioned networks.
    } else if (connectivityResult.contains(ConnectivityResult.none)) {
      _logger.i('No available network types');
      // No available network types
    }
    // Received changes in available connectivity types!
  });
}