notifySessionStateChanged function

void notifySessionStateChanged(
  1. SessionState state, {
  2. RequiresActionDetails? details,
})

Notify listeners that session state changed.

Implementation

void notifySessionStateChanged(
  SessionState state, {
  RequiresActionDetails? details,
}) {
  _currentState = state;
  _stateListener?.call(state, details);

  if (state == SessionState.requiresAction && details != null) {
    _hasPendingAction = true;
    _metadataListener?.call(SessionExternalMetadata(pendingAction: details));
  } else if (_hasPendingAction) {
    _hasPendingAction = false;
    _metadataListener?.call(SessionExternalMetadata(pendingAction: null));
  }

  if (state == SessionState.idle) {
    _metadataListener?.call(SessionExternalMetadata(taskSummary: null));
  }
}