process method Null safety

void process(
  1. String methodName,
  2. List data
)

Implementation

void process(String methodName, List<dynamic> data) {
  switch (methodName) {
    case 'Warning':
      warning?.call(WarningCodeConverter.fromValue(data[0]).e);
      break;
    case 'Error':
      error?.call(ErrorCodeConverter.fromValue(data[0]).e);
      break;
    case 'ApiCallExecuted':
      apiCallExecuted?.call(
          ErrorCodeConverter.fromValue(data[0]).e, data[1], data[2]);
      break;
    case 'JoinChannelSuccess':
      joinChannelSuccess?.call(data[0], data[1], data[2]);
      break;
    case 'RejoinChannelSuccess':
      rejoinChannelSuccess?.call(data[0], data[1], data[2]);
      break;
    case 'LeaveChannel':
      leaveChannel
          ?.call(RtcStats.fromJson(Map<String, dynamic>.from(data[0])));
      break;
    case 'LocalUserRegistered':
      localUserRegistered?.call(data[0], data[1]);
      break;
    case 'UserInfoUpdated':
      userInfoUpdated?.call(
          data[0], UserInfo.fromJson(Map<String, dynamic>.from(data[1])));
      break;
    case 'ClientRoleChanged':
      clientRoleChanged?.call(ClientRoleConverter.fromValue(data[0]).e,
          ClientRoleConverter.fromValue(data[1]).e);
      break;
    case 'UserJoined':
      userJoined?.call(data[0], data[1]);
      break;
    case 'UserOffline':
      userOffline?.call(
          data[0], UserOfflineReasonConverter.fromValue(data[1]).e);
      break;
    case 'ConnectionStateChanged':
      connectionStateChanged?.call(
          ConnectionStateTypeConverter.fromValue(data[0]).e,
          ConnectionChangedReasonConverter.fromValue(data[1]).e);
      break;
    case 'NetworkTypeChanged':
      networkTypeChanged?.call(NetworkTypeConverter.fromValue(data[0]).e);
      break;
    case 'ConnectionLost':
      connectionLost?.call();
      break;
    case 'TokenPrivilegeWillExpire':
      tokenPrivilegeWillExpire?.call(data[0]);
      break;
    case 'RequestToken':
      requestToken?.call();
      break;
    case 'AudioVolumeIndication':
      final list = List<Map>.from(data[0]);
      audioVolumeIndication?.call(
          List.generate(
              list.length,
              (index) => AudioVolumeInfo.fromJson(
                  Map<String, dynamic>.from(list[index]))),
          data[1]);
      break;
    case 'ActiveSpeaker':
      activeSpeaker?.call(data[0]);
      break;
    case 'FirstLocalAudioFrame':
      firstLocalAudioFrame?.call(data[0]);
      break;
    case 'FirstLocalVideoFrame':
      firstLocalVideoFrame?.call(data[0], data[1], data[2]);
      break;
    case 'UserMuteVideo':
      userMuteVideo?.call(data[0], data[1]);
      break;
    case 'VideoSizeChanged':
      videoSizeChanged?.call(data[0], data[1], data[2], data[3]);
      break;
    case 'RemoteVideoStateChanged':
      remoteVideoStateChanged?.call(
          data[0],
          VideoRemoteStateConverter.fromValue(data[1]).e,
          VideoRemoteStateReasonConverter.fromValue(data[2]).e,
          data[3]);
      break;
    case 'LocalVideoStateChanged':
      localVideoStateChanged?.call(
          LocalVideoStreamStateConverter.fromValue(data[0]).e,
          LocalVideoStreamErrorConverter.fromValue(data[1]).e);
      break;
    case 'RemoteAudioStateChanged':
      remoteAudioStateChanged?.call(
          data[0],
          AudioRemoteStateConverter.fromValue(data[1]).e,
          AudioRemoteStateReasonConverter.fromValue(data[2]).e,
          data[3]);
      break;
    case 'LocalAudioStateChanged':
      localAudioStateChanged?.call(
          AudioLocalStateConverter.fromValue(data[0]).e,
          AudioLocalErrorConverter.fromValue(data[1]).e);
      break;
    case 'LocalPublishFallbackToAudioOnly':
      localPublishFallbackToAudioOnly?.call(data[0]);
      break;
    case 'RemoteSubscribeFallbackToAudioOnly':
      remoteSubscribeFallbackToAudioOnly?.call(data[0], data[1]);
      break;
    case 'AudioRouteChanged':
      audioRouteChanged
          ?.call(AudioOutputRoutingConverter.fromValue(data[0]).e);
      break;
    case 'CameraFocusAreaChanged':
      cameraFocusAreaChanged
          ?.call(Rect.fromJson(Map<String, dynamic>.from(data[0])));
      break;
    case 'CameraExposureAreaChanged':
      cameraExposureAreaChanged
          ?.call(Rect.fromJson(Map<String, dynamic>.from(data[0])));
      break;
    case 'FacePositionChanged':
      final list = List<Map>.from(data[2]);
      facePositionChanged?.call(
          data[0],
          data[1],
          List.generate(
              list.length,
              (index) => FacePositionInfo.fromJson(
                  Map<String, dynamic>.from(list[index]))));
      break;
    case 'RtcStats':
      rtcStats?.call(RtcStats.fromJson(Map<String, dynamic>.from(data[0])));
      break;
    case 'LastmileQuality':
      lastmileQuality?.call(NetworkQualityConverter.fromValue(data[0]).e);
      break;
    case 'NetworkQuality':
      networkQuality?.call(
          data[0],
          NetworkQualityConverter.fromValue(data[1]).e,
          NetworkQualityConverter.fromValue(data[2]).e);
      break;
    case 'LastmileProbeResult':
      lastmileProbeResult?.call(
          LastmileProbeResult.fromJson(Map<String, dynamic>.from(data[0])));
      break;
    case 'LocalVideoStats':
      localVideoStats?.call(
          LocalVideoStats.fromJson(Map<String, dynamic>.from(data[0])));
      break;
    case 'LocalAudioStats':
      localAudioStats?.call(
          LocalAudioStats.fromJson(Map<String, dynamic>.from(data[0])));
      break;
    case 'RemoteVideoStats':
      remoteVideoStats?.call(
          RemoteVideoStats.fromJson(Map<String, dynamic>.from(data[0])));
      break;
    case 'RemoteAudioStats':
      remoteAudioStats?.call(
          RemoteAudioStats.fromJson(Map<String, dynamic>.from(data[0])));
      break;
    case 'AudioMixingFinished':
      audioMixingFinished?.call();
      break;
    case 'AudioMixingStateChanged':
      audioMixingStateChanged?.call(
        AudioMixingStateCodeConverter.fromValue(data[0]).e,
        AudioMixingReasonConverter.fromValue(data[1]).e,
      );
      break;
    case 'AudioEffectFinished':
      audioEffectFinished?.call(data[0]);
      break;
    case 'RtmpStreamingStateChanged':
      rtmpStreamingStateChanged?.call(
        data[0],
        RtmpStreamingStateConverter.fromValue(data[1]).e,
        RtmpStreamingErrorCodeConverter.fromValue(data[2]).e,
      );
      break;
    case 'TranscodingUpdated':
      transcodingUpdated?.call();
      break;
    case 'StreamInjectedStatus':
      streamInjectedStatus?.call(
          data[0], data[1], InjectStreamStatusConverter.fromValue(data[2]).e);
      break;
    case 'StreamMessage':
      streamMessage?.call(data[0], data[1], data[2]);
      break;
    case 'StreamMessageError':
      streamMessageError?.call(data[0], data[1],
          ErrorCodeConverter.fromValue(data[2]).e, data[3], data[4]);
      break;
    case 'MediaEngineLoadSuccess':
      mediaEngineLoadSuccess?.call();
      break;
    case 'MediaEngineStartCallSuccess':
      mediaEngineStartCallSuccess?.call();
      break;
    case 'ChannelMediaRelayStateChanged':
      channelMediaRelayStateChanged?.call(
        ChannelMediaRelayStateConverter.fromValue(data[0]).e,
        ChannelMediaRelayErrorConverter.fromValue(data[1]).e,
      );
      break;
    case 'ChannelMediaRelayEvent':
      channelMediaRelayEvent
          ?.call(ChannelMediaRelayEventConverter.fromValue(data[0]).e);
      break;
    case 'FirstRemoteVideoFrame':
      firstRemoteVideoFrame?.call(data[0], data[1], data[2], data[3]);
      break;
    case 'FirstRemoteAudioFrame':
      firstRemoteAudioFrame?.call(data[0], data[1]);
      break;
    case 'FirstRemoteAudioDecoded':
      firstRemoteAudioDecoded?.call(data[0], data[1]);
      break;
    case 'UserMuteAudio':
      userMuteAudio?.call(data[0], data[1]);
      break;
    case 'StreamPublished':
      streamPublished?.call(data[0], ErrorCodeConverter.fromValue(data[1]).e);
      break;
    case 'StreamUnpublished':
      streamUnpublished?.call(data[0]);
      break;
    case 'RemoteAudioTransportStats':
      remoteAudioTransportStats?.call(data[0], data[1], data[2], data[3]);
      break;
    case 'RemoteVideoTransportStats':
      remoteVideoTransportStats?.call(data[0], data[1], data[2], data[3]);
      break;
    case 'UserEnableVideo':
      userEnableVideo?.call(data[0], data[1]);
      break;
    case 'UserEnableLocalVideo':
      userEnableLocalVideo?.call(data[0], data[1]);
      break;
    case 'FirstRemoteVideoDecoded':
      firstRemoteVideoDecoded?.call(data[0], data[1], data[2], data[3]);
      break;
    case 'MicrophoneEnabled':
      microphoneEnabled?.call(data[0]);
      break;
    case 'ConnectionInterrupted':
      connectionInterrupted?.call();
      break;
    case 'ConnectionBanned':
      connectionBanned?.call();
      break;
    case 'AudioQuality':
      audioQuality?.call(data[0], data[1], data[2], data[3]);
      break;
    case 'CameraReady':
      cameraReady?.call();
      break;
    case 'VideoStopped':
      videoStopped?.call();
      break;
    case 'MetadataReceived':
      metadataReceived?.call(data[0], data[1], data[2]);
      break;
    case 'FirstLocalAudioFramePublished':
      firstLocalAudioFramePublished?.call(data[0]);
      break;
    case 'FirstLocalVideoFramePublished':
      firstLocalVideoFramePublished?.call(data[0]);
      break;
    case 'AudioPublishStateChanged':
      audioPublishStateChanged?.call(
          data[0],
          StreamPublishStateConverter.fromValue(data[1]).e,
          StreamPublishStateConverter.fromValue(data[2]).e,
          data[3]);
      break;
    case 'VideoPublishStateChanged':
      videoPublishStateChanged?.call(
          data[0],
          StreamPublishStateConverter.fromValue(data[1]).e,
          StreamPublishStateConverter.fromValue(data[2]).e,
          data[3]);
      break;
    case 'AudioSubscribeStateChanged':
      audioSubscribeStateChanged?.call(
          data[0],
          data[1],
          StreamSubscribeStateConverter.fromValue(data[2]).e,
          StreamSubscribeStateConverter.fromValue(data[3]).e,
          data[4]);
      break;
    case 'VideoSubscribeStateChanged':
      videoSubscribeStateChanged?.call(
          data[0],
          data[1],
          StreamSubscribeStateConverter.fromValue(data[2]).e,
          StreamSubscribeStateConverter.fromValue(data[3]).e,
          data[4]);
      break;
    case 'RtmpStreamingEvent':
      rtmpStreamingEvent?.call(data[0], data[1]);
      break;
    case 'UserSuperResolutionEnabled':
      userSuperResolutionEnabled?.call(data[0], data[1],
          SuperResolutionStateReasonConverter.fromValue(data[2]).e);
      break;
    case 'UploadLogResult':
      uploadLogResult?.call(
          data[0], data[1], UploadErrorReasonConverter.fromValue(data[2]).e);
      break;
    case 'AirPlayIsConnected':
      airPlayIsConnected?.call();
      break;
    case 'VirtualBackgroundSourceEnabled':
      virtualBackgroundSourceEnabled?.call(data[0],
          VirtualBackgroundSourceStateReasonConverter.fromValue(data[1]).e);
      break;
  }
}