react-native-rectangle-doc-scanner 7.48.0 → 7.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -246,10 +246,9 @@ class CameraController(
246
246
  val previewSizes = streamConfigMap.getOutputSizes(SurfaceTexture::class.java)
247
247
  Log.d(TAG, "[CAMERA2] Available preview sizes: ${previewSizes?.take(10)?.joinToString { "${it.width}x${it.height}" }}")
248
248
 
249
- // Prefer 4:3 to match iOS FOV on phones; use view aspect on tablets to reduce crop.
250
- val isTablet = context.resources.configuration.smallestScreenWidthDp >= 600
251
- val targetPreviewAspect = if (isTablet) viewAspect else 4.0 / 3.0
252
- val minPreviewArea = if (isTablet) 1280 * 720 else 960 * 720
249
+ // Prefer 4:3 so height-based scaling fills the screen without stretching.
250
+ val targetPreviewAspect = 4.0 / 3.0
251
+ val minPreviewArea = 960 * 720
253
252
  previewSize = chooseBestSize(previewSizes, targetPreviewAspect, null, minPreviewArea, preferClosestAspect = true)
254
253
  ?: chooseBestSize(previewSizes, viewAspect, null, preferClosestAspect = true)
255
254
  ?: previewSizes?.maxByOrNull { it.width * it.height }
@@ -581,7 +580,15 @@ class CameraController(
581
580
  val isSwapped = rotation == Surface.ROTATION_90 || rotation == Surface.ROTATION_270
582
581
  val bufferWidth = if (isSwapped) preview.height.toFloat() else preview.width.toFloat()
583
582
  val bufferHeight = if (isSwapped) preview.width.toFloat() else preview.height.toFloat()
584
- val scale = max(viewWidth / bufferWidth, viewHeight / bufferHeight)
583
+ var scale = if (isSwapped) {
584
+ // Scale by height to preserve aspect, then ensure width fills the view.
585
+ viewHeight / bufferHeight
586
+ } else {
587
+ viewHeight / bufferHeight
588
+ }
589
+ if (bufferWidth * scale < viewWidth) {
590
+ scale = viewWidth / bufferWidth
591
+ }
585
592
  val scaledWidth = bufferWidth * scale
586
593
  val scaledHeight = bufferHeight * scale
587
594
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-rectangle-doc-scanner",
3
- "version": "7.48.0",
3
+ "version": "7.49.0",
4
4
  "description": "Native-backed document scanner for React Native with customizable overlays.",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",