Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 912e0df8 authored by Selim Cinek's avatar Selim Cinek
Browse files

Fixed a crash when an image with an odd width/height was selected

Due to an internal rounding in the renderer, the calculations
for the cropping area could be slightly offset, getting out
of the image boundaries. I sanitized the rect by ensuring they
are inside the image.

Bug: 12174629
Change-Id: Icc37790732ddd479631b898b23c05501d2dcd5be
parent fc558d56
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -340,6 +340,13 @@ public class WallpaperCropActivity extends Activity {
                getWindowManager());
        // Get the crop
        RectF cropRect = mCropView.getCrop();

        // Due to rounding errors in the cropview renderer the edges can be slightly offset
        // therefore we ensure that the boundaries are sanely defined
        cropRect.left = Math.max(0, cropRect.left);
        cropRect.right = Math.min(mCropView.getWidth(), cropRect.right);
        cropRect.top = Math.max(0, cropRect.top);
        cropRect.bottom = Math.min(mCropView.getHeight(), cropRect.bottom);
        int cropRotation = mCropView.getImageRotation();
        float cropScale = mCropView.getWidth() / (float) cropRect.width();