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

Commit 31f25696 authored by Christopher Tate's avatar Christopher Tate
Browse files

Adjust wallpaper-restore acceptance criteria

Previously the dimension check had implicit orientation sensitivity.
We now make sure to compare the candidate image's width to the smallest
screen dimension for acceptance purposes; this fixes cases when we would
e.g. get a restored image of (1680x2560) but believe that we needed it
to have a max width of 2048, even though it had originated on that same
device -- due to current-orientation issues.

Bug 18448052

Change-Id: I64ca6a4ed91ce1ccc04f5a9a6851e5cfe511b7c7
parent b13c12f5
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -102,9 +102,8 @@ public class WallpaperBackupHelper extends FileBackupHelperBase implements Backu
        final Display d = wm.getDefaultDisplay();
        final Point size = new Point();
        d.getSize(size);
        mDesiredMinWidth = size.x;
        mDesiredMinWidth = Math.min(size.x, size.y);
        mDesiredMinHeight = (double) wpm.getDesiredMinimumHeight();

        if (mDesiredMinHeight <= 0) {
            mDesiredMinHeight = size.y;
        }
@@ -149,9 +148,13 @@ public class WallpaperBackupHelper extends FileBackupHelperBase implements Backu
                        // We accept any wallpaper that is at least as wide as our preference
                        // (i.e. wide enough to fill the screen), and is within a comfortable
                        // factor of the target height, to avoid significant clipping/scaling/
                        // letterboxing.
                        // letterboxing.  At this point we know that mDesiredMinWidth is the
                        // smallest dimension, regardless of current orientation, so we can
                        // safely require that the candidate's width and height both exceed
                        // that hard minimum.
                        final double heightRatio = mDesiredMinHeight / options.outHeight;
                        if (options.outWidth < mDesiredMinWidth
                                || options.outHeight < mDesiredMinWidth
                                || heightRatio >= MAX_HEIGHT_RATIO
                                || heightRatio <= MIN_HEIGHT_RATIO) {
                            // Not wide enough for the screen, or too short/tall to be a good fit