handlerMethodCalls method

  1. @visibleForTesting
Future handlerMethodCalls(
  1. MethodCall call
)

Implementation

@visibleForTesting
Future<dynamic> handlerMethodCalls(MethodCall call) async {
  switch (call.method) {
    case 'onSurveyDisplayed':
      if (onSurveyDisplayedListener == null) {
        return false;
      }

      if (call.arguments == null) {
        return false;
      }

      if (!call.arguments.containsKey('surveyId')) {
        return false;
      }

      String? surveyId = call.arguments['surveyId'];

      onSurveyDisplayedListener!(surveyId);
      return true;

    case 'onQuestionAnswered':
      if (onQuestionAnsweredListener == null) {
        return false;
      }

      if (call.arguments == null) {
        return false;
      }

      if (!call.arguments.containsKey('surveyId') ||
          !call.arguments.containsKey('questionId') ||
          !call.arguments.containsKey('answer')) {
        return false;
      }

      String? surveyId = call.arguments['surveyId'];
      num? questionId = call.arguments['questionId'];
      SurvicateAnswerModel answer =
          SurvicateAnswerModel.fromMap(call.arguments['answer']);

      onQuestionAnsweredListener!(surveyId, questionId, answer);
      return true;

    case 'onSurveyClosed':
      if (onSurveyClosedListener == null) {
        return false;
      }

      if (call.arguments == null) {
        return false;
      }

      if (!call.arguments.containsKey('surveyId')) {
        return false;
      }

      String? surveyId = call.arguments['surveyId'];

      onSurveyClosedListener!(surveyId);
      return true;

    case 'onSurveyCompleted':
      if (onSurveyCompletedListener == null) {
        return false;
      }

      if (call.arguments == null) {
        return false;
      }

      if (!call.arguments.containsKey('surveyId')) {
        return false;
      }

      String? surveyId = call.arguments['surveyId'];

      onSurveyCompletedListener!(surveyId);
      return true;

    default:
      throw MissingPluginException();
  }
}