react-native-rectangle-doc-scanner 7.42.0 → 7.44.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.
@@ -580,12 +580,24 @@ class CameraController(
580
580
  val centerY = viewRect.centerY()
581
581
 
582
582
  if (rotation == Surface.ROTATION_90 || rotation == Surface.ROTATION_270) {
583
- val swappedBufferRect = RectF(0f, 0f, preview.height.toFloat(), preview.width.toFloat())
584
- swappedBufferRect.offset(centerX - swappedBufferRect.centerX(), centerY - swappedBufferRect.centerY())
585
- matrix.setRectToRect(viewRect, swappedBufferRect, Matrix.ScaleToFit.CENTER)
586
- val scale = max(viewHeight / preview.height.toFloat(), viewWidth / preview.width.toFloat())
587
- matrix.postScale(scale, scale, centerX, centerY)
583
+ // When rotated 90/270, preview dimensions are swapped
584
+ val swappedWidth = preview.height.toFloat()
585
+ val swappedHeight = preview.width.toFloat()
586
+
587
+ // Android: Use 85% of view height to add 15% padding (7.5% top + 7.5% bottom)
588
+ val effectiveViewHeight = viewHeight * 0.85f
589
+ val verticalPadding = (viewHeight - effectiveViewHeight) / 2f
590
+
591
+ // Calculate scale to fit within the effective area while maintaining aspect ratio
592
+ val scaleX = viewWidth / swappedWidth
593
+ val scaleY = effectiveViewHeight / swappedHeight
594
+ val scale = min(scaleX, scaleY)
595
+
596
+ // Apply transformations: first rotate, then scale
588
597
  matrix.postRotate(90f * (rotation - 2), centerX, centerY)
598
+ matrix.postScale(scale, scale, centerX, centerY)
599
+
600
+ Log.d(TAG, "[TRANSFORM] Android tablet mode: effectiveHeight=$effectiveViewHeight, padding=$verticalPadding, scale=$scale")
589
601
  } else if (rotation == Surface.ROTATION_180) {
590
602
  matrix.postRotate(180f, centerX, centerY)
591
603
  } else {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-rectangle-doc-scanner",
3
- "version": "7.42.0",
3
+ "version": "7.44.0",
4
4
  "description": "Native-backed document scanner for React Native with customizable overlays.",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",