Merge "camera2: Fix crop selection in LEGACY." into mnc-dev
diff --git a/core/java/android/hardware/camera2/legacy/ParameterUtils.java b/core/java/android/hardware/camera2/legacy/ParameterUtils.java
index 9e9a6fe..32bbc51 100644
--- a/core/java/android/hardware/camera2/legacy/ParameterUtils.java
+++ b/core/java/android/hardware/camera2/legacy/ParameterUtils.java
@@ -61,6 +61,8 @@
     public static final Rect RECTANGLE_EMPTY =
             new Rect(/*left*/0, /*top*/0, /*right*/0, /*bottom*/0);
 
+    private static final double ASPECT_RATIO_TOLERANCE = 0.05f;
+
     /**
      * Calculate effective/reported zoom data from a user-specified crop region.
      */
@@ -498,7 +500,10 @@
         float aspectRatioPreview = previewSize.getWidth() * 1.0f / previewSize.getHeight();
 
         float cropH, cropW;
-        if (aspectRatioPreview < aspectRatioArray) {
+        if (Math.abs(aspectRatioPreview - aspectRatioArray) < ASPECT_RATIO_TOLERANCE) {
+            cropH = activeArray.height();
+            cropW = activeArray.width();
+        } else if (aspectRatioPreview < aspectRatioArray) {
             // The new width must be smaller than the height, so scale the width by AR
             cropH = activeArray.height();
             cropW = cropH * aspectRatioPreview;