package com.dynamsoft.reactnativelib.dce import com.dynamsoft.dce.CameraView import com.dynamsoft.dce.DrawingLayer import com.dynamsoft.reactnativelib.basicutils.setCameraToggleButtonState import com.dynamsoft.reactnativelib.basicutils.setTorchButtonState import com.dynamsoft.reactnativelib.basicutils.toCameraToggleButtonState import com.dynamsoft.reactnativelib.basicutils.toTorchButtonState import com.facebook.react.bridge.ReadableArray import com.facebook.react.bridge.ReadableMap import com.facebook.react.uimanager.ThemedReactContext import com.facebook.react.uimanager.annotations.ReactProp class CameraViewManagerImpl { companion object { const val TAG = "DynamsoftCameraView" } fun getName() = TAG fun createViewInstance(context: ThemedReactContext): CameraView { return RNCameraView(context) } fun receiveCommand(root: CameraView, commandId: String, args: ReadableArray?) { } @ReactProp(name = "scanRegionMaskVisible") fun setScanRegionMaskVisible(view: CameraView, isVisible: Boolean) { view.isScanRegionMaskVisible = isVisible } @ReactProp(name = "scanLaserVisible") fun setScanLaserVisible(view: CameraView, isVisible: Boolean) { view.isScanLaserVisible = isVisible } @ReactProp(name = "VisibleLayerIds") fun setVisibleLayerIds(view: CameraView, invisibleLayerIds: ReadableArray) { val ids = IntArray(invisibleLayerIds.size()) for (i in ids.indices) { ids[i] = invisibleLayerIds.getInt(i) } intArrayOf(DrawingLayer.DBR_LAYER_ID, DrawingLayer.DDN_LAYER_ID, DrawingLayer.DLR_LAYER_ID).forEach { view.getDrawingLayer(it).isVisible = ids.contains(it) } } @ReactProp(name = "torchButton") fun setTorchButton(view: CameraView, torchButton: ReadableMap) { view.setTorchButtonState(torchButton.toTorchButtonState()) } @ReactProp(name = "torchButtonVisible") fun setTorchButtonVisible(view: CameraView, isVisible: Boolean) { view.torchButtonVisible = isVisible } @ReactProp(name = "cameraToggleButton") fun setCameraToggleButton(view: CameraView, cameraToggleButton: ReadableMap) { view.setCameraToggleButtonState(cameraToggleButton.toCameraToggleButtonState()) } @ReactProp(name = "cameraToggleButtonVisible") fun setCameraToggleButtonVisible(view: CameraView, isVisible: Boolean) { view.cameraToggleButtonVisible = isVisible } // private fun View.manuallyMeasureAndLayout() { // measure( // View.MeasureSpec.makeMeasureSpec(measuredWidth, View.MeasureSpec.EXACTLY), // View.MeasureSpec.makeMeasureSpec(measuredHeight, View.MeasureSpec.EXACTLY) // ) // layout(0, 0, measuredWidth, measuredHeight) // } }