onConnectionEstablished method

  1. @override
FutureOr<void> onConnectionEstablished(
  1. ConnectionInfo connectionInfo,
  2. String serverGreeting
)

Is called after the initial connection has been established

Implementation

@override
FutureOr<void> onConnectionEstablished(
  ConnectionInfo connectionInfo,
  String serverGreeting,
) async {
  _isInIdleMode = false;
  _serverInfo = ImapServerInfo(connectionInfo);
  final startIndex = serverGreeting.indexOf('[CAPABILITY ');
  if (startIndex != -1) {
    CapabilityParser.parseCapabilities(
      serverGreeting,
      startIndex + '[CAPABILITY '.length,
      _serverInfo,
    );
  }
  if (_queue.isNotEmpty) {
    // this can happen when a connection was re-established,
    // e.g. when trying to complete an IDLE connection
    for (final task in _queue) {
      try {
        task.completer.completeError('reconnect');
      } catch (e, s) {
        print('unable to completeError for task $task $e $s');
      }
    }
    _queue.clear();
  }
}