canTransitionTo method
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
}
}