CallEvent.fromMap constructor
Factory method to translate dictionary to CallEvent
Implementation
factory CallEvent.fromMap({required Map<Object?, Object?> event}) {
final callMap = event["call"] as Map<Object?, Object?>;
final call = Call.fromMap(callMap);
switch (event["event"] as String?) {
case 'NEW':
return CallNewEvent(call);
case 'CONNECTED':
return CallConnectedEvent(call);
case 'ON_HOLD':
return CallOnHoldEvent(call);
case 'RESUMED':
return CallResumedEvent(call);
case 'ERROR':
final err = CallError.fromString(event["error"] as String?);
final msg = event["message"] as String?;
return CallErrorEvent(call, error: err, message: msg ?? "");
case 'DISCONNECTED':
return CallDisconnectedEvent(call);
case 'LOST_CONNECTION':
return CallConnectionLostEvent(call);
case 'CONFERENCE':
return CallConferenceEvent(call);
case 'MUTE':
return CallMuteEvent(call);
case 'USER_ACTION_REQUIRED':
final callPendingEvent = CallPendingEvent.fromString(event["callPendingEvent"] as String?);
final callUserAction = CallUserAction.fromString(event["callUserAction"] as String?);
return CallUserActionRequiredEvent(call, pendingEvent: callPendingEvent, userAction: callUserAction);
default: // fall through
}
return CallErrorEvent(call,
error: CallError.other, message: "Unknown error id");
}