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
This commit is contained in:
@@ -366,6 +366,14 @@ public class WallpaperCropActivity extends Activity {
|
|||||||
getWindowManager());
|
getWindowManager());
|
||||||
// Get the crop
|
// Get the crop
|
||||||
RectF cropRect = mCropView.getCrop();
|
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();
|
int cropRotation = mCropView.getImageRotation();
|
||||||
float cropScale = mCropView.getWidth() / (float) cropRect.width();
|
float cropScale = mCropView.getWidth() / (float) cropRect.width();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user