/**
* 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;

@SuppressWarnings("deprecation")
public class ScanbotBarcodeScannerViewManagerDelegate<T extends View, U extends BaseViewManager<T, ? extends LayoutShadowNode> & ScanbotBarcodeScannerViewManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
  public ScanbotBarcodeScannerViewManagerDelegate(U viewManager) {
    super(viewManager);
  }
  @Override
  public void setProperty(T view, String propName, @Nullable Object value) {
    switch (propName) {
      case "flashEnabled":
        mViewManager.setFlashEnabled(view, value == null ? false : (boolean) value);
        break;
      case "finderEnabled":
        mViewManager.setFinderEnabled(view, value == null ? false : (boolean) value);
        break;
      case "finderStrokeWidth":
        mViewManager.setFinderStrokeWidth(view, value == null ? 2 : ((Double) value).intValue());
        break;
      case "finderStrokeColor":
        mViewManager.setFinderStrokeColor(view, ColorPropConverter.getColor(value, view.getContext()));
        break;
      case "finderOverlayColor":
        mViewManager.setFinderOverlayColor(view, ColorPropConverter.getColor(value, view.getContext()));
        break;
      case "finderMinPadding":
        mViewManager.setFinderMinPadding(view, value == null ? 0 : ((Double) value).intValue());
        break;
      case "finderInset":
        mViewManager.setFinderInset(view, (ReadableMap) value);
        break;
      case "finderRequiredAspectRatios":
        mViewManager.setFinderRequiredAspectRatios(view, (ReadableMap) value);
        break;
      case "cameraZoomFactor":
        mViewManager.setCameraZoomFactor(view, value == null ? 0f : ((Double) value).floatValue());
        break;
      case "cameraZoomRange":
        mViewManager.setCameraZoomRange(view, (ReadableMap) value);
        break;
      case "cameraModule":
        mViewManager.setCameraModule(view, value == null ? "BACK" : (String) value);
        break;
      case "hardwareButtonsEnabled":
        mViewManager.setHardwareButtonsEnabled(view, value == null ? true : (boolean) value);
        break;
      case "scanningEnabled":
        mViewManager.setScanningEnabled(view, value == null ? true : (boolean) value);
        break;
      case "minFocusDistanceLock":
        mViewManager.setMinFocusDistanceLock(view, value == null ? false : (boolean) value);
        break;
      case "overlayEnabled":
        mViewManager.setOverlayEnabled(view, value == null ? false : (boolean) value);
        break;
      case "overlayPolygonColor":
        mViewManager.setOverlayPolygonColor(view, ColorPropConverter.getColor(value, view.getContext()));
        break;
      case "overlayStrokeColor":
        mViewManager.setOverlayStrokeColor(view, ColorPropConverter.getColor(value, view.getContext()));
        break;
      case "overlayTextColor":
        mViewManager.setOverlayTextColor(view, ColorPropConverter.getColor(value, view.getContext()));
        break;
      case "overlayTextContainerColor":
        mViewManager.setOverlayTextContainerColor(view, ColorPropConverter.getColor(value, view.getContext()));
        break;
      case "overlayTextFormat":
        mViewManager.setOverlayTextFormat(view, value == null ? "CODE_AND_TYPE" : (String) value);
        break;
      case "overlayLoadingTextValue":
        mViewManager.setOverlayLoadingTextValue(view, value == null ? null : (String) value);
        break;
      case "overlayBarcodeItemOverlayViewBinder":
        mViewManager.setOverlayBarcodeItemOverlayViewBinder(view, value == null ? false : (boolean) value);
        break;
      case "configFormatConfigurations":
        mViewManager.setConfigFormatConfigurations(view, (ReadableArray) value);
        break;
      case "configExtractedDocumentFormats":
        mViewManager.setConfigExtractedDocumentFormats(view, (ReadableArray) value);
        break;
      case "configOnlyAcceptDocuments":
        mViewManager.setConfigOnlyAcceptDocuments(view, value == null ? false : (boolean) value);
        break;
      case "configReturnBarcodeImage":
        mViewManager.setConfigReturnBarcodeImage(view, value == null ? false : (boolean) value);
        break;
      case "configEngineMode":
        mViewManager.setConfigEngineMode(view, value == null ? "NEXT_GEN" : (String) value);
        break;
      case "configAccumulation":
        mViewManager.setConfigAccumulation(view, (ReadableMap) value);
        break;
      case "configOptimizedForOverlays":
        mViewManager.setConfigOptimizedForOverlays(view, value == null ? false : (boolean) value);
        break;
      default:
        super.setProperty(view, propName, value);
    }
  }

  @Override
  public void receiveCommand(T view, String commandName, ReadableArray args) {
    switch (commandName) {
      case "freezeCamera":
        mViewManager.freezeCamera(view);
        break;
      case "unfreezeCamera":
        mViewManager.unfreezeCamera(view);
        break;
      case "bindBarcodeItemOverlayView":
        mViewManager.bindBarcodeItemOverlayView(view, args.getString(0), args.getString(1));
        break;
    }
  }
}
