startSession static method

Future<Map> startSession(
  1. CameraConfig config,
  2. String license
)

Implementation

static Future<Map> startSession(
    final CameraConfig config, String license) async {
  Map<String, dynamic> parameters = {};
  parameters['License'] = license;

  /// Global options.

  if (config.allowMultipleDocuments != null) {
    parameters["AllowMultipleDocuments"] = config.allowMultipleDocuments;
  }

  if (config.defaultMultipleDocuments != null) {
    parameters["DefaultMultipleDocuments"] = config.defaultMultipleDocuments;
  }

  if (config.defaultCrop != null) {
    parameters["DefaultCrop"] = config.defaultCrop;
  }

  if (config.moveCloserMessage != null) {
    parameters["MoveCloserMessage"] = config.moveCloserMessage;
  }

  if (config.imageMovingMessage != null) {
    parameters["ImageMovingMessage"] = config.imageMovingMessage;
  }

  if (config.orientationWarningMessage != null) {
    parameters["OrientationWarningMessage"] =
        config.orientationWarningMessage;
  }

  if (config.imageMaxWidth != null) {
    parameters["ImageMaxWidth"] = config.imageMaxWidth;
  }

  if (config.imageMaxHeight != null) {
    parameters["ImageMaxHeight"] = config.imageMaxHeight;
  }

  if (config.imageMaxQuality != null) {
    parameters["ImageMaxQuality"] = config.imageMaxQuality;
  }

  if (config.previewDuration != null) {
    parameters["PreviewDuration"] = config.previewDuration;
  }

  if (config.model.fileName != null) {
    parameters["Model.fileName"] = config.model.fileName;
  }
  if (config.model.modelLabels != null) {
    parameters["Model.modelLabels"] = config.model.modelLabels;
  }

  if (config.timer.allowed != null) {
    parameters["Timer.allowed"] = config.timer.allowed;
  }
  if (config.timer.enabled != null) {
    parameters["Timer.enabled"] = config.timer.enabled;
  }
  if (config.timer.duration != null) {
    parameters["Timer.duration"] = config.timer.duration;
  }

  if (config.cropPadding.height != null) {
    parameters["CropPadding.height"] = config.cropPadding.height;
  }
  if (config.cropPadding.width != null) {
    parameters["CropPadding.width"] = config.cropPadding.width;
  }

  if (config.success.previewDuration != null) {
    parameters["Success.previewDuration"] = config.success.previewDuration;
  }
  if (config.success.message != null) {
    parameters["Success.message"] = config.success.message;
  }

  if (config.shutterButton.allowshutterButton != null) {
    parameters["ShutterButton.allowShutterButton"] =
        config.shutterButton.allowshutterButton;
  }
  if (config.shutterButton.hideShutterButton != null) {
    parameters["ShutterButton.hideShutterButton"] =
        config.shutterButton.hideShutterButton;
  }

  if (config.imageLimit != null) {
    parameters["ImageLimit"] = config.imageLimit;
  }

  if (config.imageLimitReachedMessage != null) {
    parameters["ImageLimitReachedMessage"] = config.imageLimitReachedMessage;
  }

  if (config.cancelConfirmationMessage != null) {
    parameters["CancelConfirmationMessage"] =
        config.cancelConfirmationMessage;
  }

  if (config.deleteButtonText != null) {
    parameters["DeleteButtonText"] = config.deleteButtonText;
  }

  if (config.retakeButtonText != null) {
    parameters["RetakeButtonText"] = config.retakeButtonText;
  }

  if (config.cancelButtonText != null) {
    parameters["CancelButtonText"] = config.cancelButtonText;
  }

  if (config.cancelAndDeleteImagesButtonText != null) {
    parameters["CancelAndDeleteImagesButtonText"] =
        config.cancelAndDeleteImagesButtonText;
  }

  if (config.defaultColor != null) {
    parameters["DefaultColor"] = describeEnum(config.defaultColor!);
  }

  /// Android only

  if (config.storagePath != null) {
    parameters["StoragePath"] = config.storagePath;
  }

  if (config.outputFileName != null) {
    parameters["OutputFilename"] = config.outputFileName;
  }

  if (config.imageMovingSensitivityAndroid != null) {
    parameters["ImageMovingSensitivityAndroid"] =
        config.imageMovingSensitivityAndroid;
  }

  /// iOS only

  if (config.imageTooBrightMessage != null) {
    parameters["ImageTooBrightMessage"] = config.imageTooBrightMessage;
  }

  if (config.imagetooDarkMessage != null) {
    parameters["ImageTooDarkMessage"] = config.imagetooDarkMessage;
  }

  if (config.imageColorOriginalText != null) {
    parameters["ImageColorOriginalText"] = config.imageColorOriginalText;
  }

  if (config.imageColorGrayscaleText != null) {
    parameters["ImageColorGrayscaleText"] = config.imageColorGrayscaleText;
  }

  if (config.imageColorEnhancedText != null) {
    parameters["ImageColorEnhancedText"] = config.imageColorEnhancedText;
  }

  if (config.shouldGoToReviewScreenWhenImageLimitReached != null) {
    parameters["ShouldGoToReviewScreenWhenImageLimitReached"] =
        config.shouldGoToReviewScreenWhenImageLimitReached;
  }

  if (config.userCanRotateImage != null) {
    parameters["UserCanRotateImage"] = config.userCanRotateImage;
  }

  if (config.userCanCropManually != null) {
    parameters["UserCanCropManually"] = config.userCanCropManually;
  }

  if (config.userCanChangeColorSetting != null) {
    parameters["UserCanChangeColorSetting"] =
        config.userCanChangeColorSetting;
  }

  if (config.primaryColor != null) {
    parameters["PrimaryColor"] =
        KIVHexColor.flutterColorToHex(config.primaryColor!, true);
  }

  if (config.accentColor != null) {
    parameters["AccentColor"] =
        KIVHexColor.flutterColorToHex(config.accentColor!, true);
  }

  if (config.overlayColor != null) {
    parameters["OverlayColor"] =
        KIVHexColor.flutterColorToHex(config.overlayColor!, true);
  }

  if (config.overlayColorAlpha != null) {
    parameters["OverlayColorAlpha"] = config.overlayColorAlpha;
  }

  if (config.warningBackgroundColor != null) {
    parameters["WarningBackgroundColor"] =
        KIVHexColor.flutterColorToHex(config.warningBackgroundColor!, true);
  }

  if (config.warningTextColor != null) {
    parameters["WarningTextColor"] =
        KIVHexColor.flutterColorToHex(config.warningTextColor!, true);
  }

  if (config.iconEnabledColor != null) {
    parameters["IconEnabledColor"] =
        KIVHexColor.flutterColorToHex(config.iconEnabledColor!, true);
  }

  if (config.iconDisabledColor != null) {
    parameters["IconDisabledColor"] =
        KIVHexColor.flutterColorToHex(config.iconDisabledColor!, true);
  }

  if (config.reviewIconColor != null) {
    parameters["ReviewIconColor"] =
        KIVHexColor.flutterColorToHex(config.reviewIconColor!, true);
  }

  if (config.isViewFinderEnabled != null) {
    parameters["IsViewFinderEnabled"] = config.isViewFinderEnabled;
  }

  if (config.imageMovingSensitivityiOS != null) {
    parameters["ImageMovingSensitivityiOS"] =
        config.imageMovingSensitivityiOS;
  }

  if (config.storeImagesToCameraRol != null) {
    parameters["StoreImagesToCameraRoll"] = config.storeImagesToCameraRol;
  }

  final Map startSessionResult =
      await _channel.invokeMethod('startSession', parameters);
  return startSessionResult;
}