Wallpaper: Fix letterboxing if wallpaper is scaled but not cropped
Fixes a bug where the wrong part of an image was decoded if the image needed to be scaled but not cropped. Change-Id: I011e59d85b526097ef1daabd63805c7cdc74c17b Fixes: 31112957
This commit is contained in:
@@ -352,9 +352,17 @@ public class WallpaperManagerService extends IWallpaperManager.Stub {
|
|||||||
(cropHint.right > options.outWidth ? options.outWidth - cropHint.right : 0),
|
(cropHint.right > options.outWidth ? options.outWidth - cropHint.right : 0),
|
||||||
(cropHint.bottom > options.outHeight ? options.outHeight - cropHint.bottom : 0));
|
(cropHint.bottom > options.outHeight ? options.outHeight - cropHint.bottom : 0));
|
||||||
|
|
||||||
|
// If the crop hint was larger than the image we just overshot. Patch things up.
|
||||||
|
if (cropHint.left < 0) {
|
||||||
|
cropHint.left = 0;
|
||||||
|
}
|
||||||
|
if (cropHint.top < 0) {
|
||||||
|
cropHint.top = 0;
|
||||||
|
}
|
||||||
|
|
||||||
// Don't bother cropping if what we're left with is identity
|
// Don't bother cropping if what we're left with is identity
|
||||||
needCrop = (options.outHeight > cropHint.height()
|
needCrop = (options.outHeight > cropHint.height()
|
||||||
&& options.outWidth > cropHint.width());
|
|| options.outWidth > cropHint.width());
|
||||||
}
|
}
|
||||||
|
|
||||||
// scale if the crop height winds up not matching the recommended metrics
|
// scale if the crop height winds up not matching the recommended metrics
|
||||||
|
|||||||
Reference in New Issue
Block a user