diff options
| author | Christopher Tate <ctate@google.com> | 2014-10-02 21:32:47 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-10-02 21:32:48 +0000 |
| commit | cdf7961f73f7ee313cbcd2f16750228cc57bcb5e (patch) | |
| tree | 0514026714c58ae6ad4997c341c75e94ae25d2b0 /core/java/android | |
| parent | 81e3e4724d2c506bf9e920fd253c54a0bbd38706 (diff) | |
| parent | 004c16654f2f86ff3055f3c88b5498eb3254f2e1 (diff) | |
Merge "Tweak wallpaper restore acceptance heuristics" into lmp-dev
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/app/backup/WallpaperBackupHelper.java | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/core/java/android/app/backup/WallpaperBackupHelper.java b/core/java/android/app/backup/WallpaperBackupHelper.java index 056750043776..b8575d7c3c3a 100644 --- a/core/java/android/app/backup/WallpaperBackupHelper.java +++ b/core/java/android/app/backup/WallpaperBackupHelper.java @@ -80,17 +80,17 @@ public class WallpaperBackupHelper extends FileBackupHelperBase implements Backu mFiles = files; mKeys = keys; - WallpaperManager wpm; - wpm = (WallpaperManager) context.getSystemService(Context.WALLPAPER_SERVICE); - mDesiredMinWidth = (double) wpm.getDesiredMinimumWidth(); + final WindowManager wm = + (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); + final WallpaperManager wpm = + (WallpaperManager) context.getSystemService(Context.WALLPAPER_SERVICE); + final Display d = wm.getDefaultDisplay(); + final Point size = new Point(); + d.getSize(size); + mDesiredMinWidth = size.x; mDesiredMinHeight = (double) wpm.getDesiredMinimumHeight(); - if (mDesiredMinWidth <= 0 || mDesiredMinHeight <= 0) { - WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); - Display d = wm.getDefaultDisplay(); - Point size = new Point(); - d.getSize(size); - mDesiredMinWidth = size.x; + if (mDesiredMinHeight <= 0) { mDesiredMinHeight = size.y; } @@ -130,15 +130,12 @@ public class WallpaperBackupHelper extends FileBackupHelperBase implements Backu if (DEBUG) Slog.d(TAG, "Restoring wallpaper image w=" + options.outWidth + " h=" + options.outHeight); - // How much does the image differ from our preference? The threshold - // here is set to accept any image larger than our target, because - // scaling down is acceptable; but to reject images that are deemed - // "too small" to scale up attractively. The value 1.33 is just barely - // too low to pass Nexus 1 or Droid wallpapers for use on a Xoom, but - // will pass anything relatively larger. - double widthRatio = mDesiredMinWidth / options.outWidth; - double heightRatio = mDesiredMinHeight / options.outHeight; - if (widthRatio > 0 && widthRatio < 1.33 + // 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. + final double heightRatio = mDesiredMinHeight / options.outHeight; + if (options.outWidth >= mDesiredMinWidth && heightRatio > 0 && heightRatio < 1.33) { // sufficiently close to our resolution; go ahead and use it Slog.d(TAG, "Applying restored wallpaper image."); @@ -147,8 +144,11 @@ public class WallpaperBackupHelper extends FileBackupHelperBase implements Backu // since it does not exist anywhere other than the private wallpaper // file. } else { - Slog.i(TAG, "Dimensions too far off; using default wallpaper. wr=" + widthRatio - + " hr=" + heightRatio); + Slog.i(TAG, "Restored image dimensions (w=" + + options.outWidth + ", h=" + options.outHeight + + ") too far off target (tw=" + + mDesiredMinWidth + ", th=" + mDesiredMinHeight + + "); falling back to default wallpaper."); f.delete(); } } |
