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

Commit e04e8b2a 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: I5e08c83fe3e9cd48254fa6c8ba9cef77ab8a51a6
parent 04960cd2
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -366,6 +366,14 @@ 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();