/**
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
*
* Do not edit this file as changes may cause incorrect behavior and will be lost
* once the code is regenerated.
*
* @generated by codegen project: GeneratePropsJavaDelegate.js
*/

package com.facebook.react.viewmanagers;

import android.view.View;
import androidx.annotation.Nullable;
import com.facebook.react.bridge.ColorPropConverter;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.uimanager.BaseViewManager;
import com.facebook.react.uimanager.BaseViewManagerDelegate;
import com.facebook.react.uimanager.LayoutShadowNode;

public class CKCameraManagerDelegate<T extends View, U extends BaseViewManager<T, ? extends LayoutShadowNode> & CKCameraManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
  public CKCameraManagerDelegate(U viewManager) {
    super(viewManager);
  }
  @Override
  public void setProperty(T view, String propName, @Nullable Object value) {
    switch (propName) {
      case "flashMode":
        mViewManager.setFlashMode(view, value == null ? null : (String) value);
        break;
      case "focusMode":
        mViewManager.setFocusMode(view, value == null ? null : (String) value);
        break;
      case "maxPhotoQualityPrioritization":
        mViewManager.setMaxPhotoQualityPrioritization(view, value == null ? null : (String) value);
        break;
      case "zoomMode":
        mViewManager.setZoomMode(view, value == null ? null : (String) value);
        break;
      case "zoom":
        mViewManager.setZoom(view, value == null ? -1f : ((Double) value).doubleValue());
        break;
      case "maxZoom":
        mViewManager.setMaxZoom(view, value == null ? -1f : ((Double) value).doubleValue());
        break;
      case "torchMode":
        mViewManager.setTorchMode(view, value == null ? null : (String) value);
        break;
      case "cameraType":
        mViewManager.setCameraType(view, value == null ? null : (String) value);
        break;
      case "scanBarcode":
        mViewManager.setScanBarcode(view, value == null ? false : (boolean) value);
        break;
      case "showFrame":
        mViewManager.setShowFrame(view, value == null ? false : (boolean) value);
        break;
      case "laserColor":
        mViewManager.setLaserColor(view, ColorPropConverter.getColor(value, view.getContext()));
        break;
      case "frameColor":
        mViewManager.setFrameColor(view, ColorPropConverter.getColor(value, view.getContext()));
        break;
      case "ratioOverlay":
        mViewManager.setRatioOverlay(view, value == null ? null : (String) value);
        break;
      case "ratioOverlayColor":
        mViewManager.setRatioOverlayColor(view, ColorPropConverter.getColor(value, view.getContext()));
        break;
      case "resetFocusTimeout":
        mViewManager.setResetFocusTimeout(view, value == null ? -1 : ((Double) value).intValue());
        break;
      case "resetFocusWhenMotionDetected":
        mViewManager.setResetFocusWhenMotionDetected(view, value == null ? false : (boolean) value);
        break;
      case "resizeMode":
        mViewManager.setResizeMode(view, value == null ? null : (String) value);
        break;
      case "scanThrottleDelay":
        mViewManager.setScanThrottleDelay(view, value == null ? -1 : ((Double) value).intValue());
        break;
      case "iOsDeferredStart":
        mViewManager.setIOsDeferredStart(view, value == null ? false : (boolean) value);
        break;
      case "barcodeFrameSize":
        mViewManager.setBarcodeFrameSize(view, (ReadableMap) value);
        break;
      case "shutterPhotoSound":
        mViewManager.setShutterPhotoSound(view, value == null ? false : (boolean) value);
        break;
      case "allowedBarcodeTypes":
        mViewManager.setAllowedBarcodeTypes(view, (ReadableArray) value);
        break;
      case "shutterAnimationDuration":
        mViewManager.setShutterAnimationDuration(view, value == null ? -1 : ((Double) value).intValue());
        break;
      case "outputPath":
        mViewManager.setOutputPath(view, value == null ? null : (String) value);
        break;
      default:
        super.setProperty(view, propName, value);
    }
  }
}
