canTransitionTo method

bool canTransitionTo(
  1. CallState newState
)

Validate call state transition

Implementation

bool canTransitionTo(CallState newState) {
  switch (state) {
    case CallState.initiated:
      return newState == CallState.active ||
          newState == CallState.failed ||
          newState == CallState.terminated;
    case CallState.incoming:
      return newState == CallState.active ||
          newState == CallState.terminated ||
          newState == CallState.failed;
    case CallState.active:
      return newState == CallState.held ||
          newState == CallState.terminated ||
          newState == CallState.failed;
    case CallState.held:
      return newState == CallState.active ||
          newState == CallState.terminated ||
          newState == CallState.failed;
    case CallState.terminated:
    case CallState.failed:
      return false; // Terminal states
  }
}