CallKeepEvent.fromMap constructor

CallKeepEvent.fromMap(
  1. Map data
)

Implementation

factory CallKeepEvent.fromMap(Map data) {
  try {
    final event = callKeepEventTypeFromName(data['event']);
    final body = Map<String, dynamic>.from(data['body']);

    switch (event) {
      case CallKeepEventType.callIncoming:
      case CallKeepEventType.callStart:
      case CallKeepEventType.callAccept:
      case CallKeepEventType.callDecline:
      case CallKeepEventType.callEnded:
      case CallKeepEventType.callTimedOut:
      case CallKeepEventType.missedCallback:
        return CallKeepCallEvent(
            type: event, data: CallKeepCallData.fromMap(body));
      case CallKeepEventType.holdToggled:
        return CallKeepHoldEvent(data: HoldToggleData.fromMap(body));
      case CallKeepEventType.muteToggled:
        return CallKeepMuteEvent(data: MuteToggleData.fromMap(body));
      case CallKeepEventType.dmtfToggled:
        return CallKeepDmtfEvent(data: DmtfToggleData.fromMap(body));
      case CallKeepEventType.callGroupToggled:
        return CallKeepCallGroupEvent(
            data: CallGroupToggleData.fromMap(body));
      case CallKeepEventType.audioSessionToggled:
        return CallKeepAudioSessionEvent(
            data: AudioSessionToggleData.fromMap(body));
      case CallKeepEventType.devicePushTokenUpdated:
        return CallKeepVoipTokenEvent(data: VoipTokenData.fromMap(body));
    }
  } catch (e) {
    rethrow;
  }
}