From f70c78142457b0e9c691f2a20ed87407c7433f5b Mon Sep 17 00:00:00 2001 From: Michael Jurka Date: Mon, 7 Mar 2011 16:53:12 -0800 Subject: Fix reported wallpaper offset in portrait mode for live wallpapers Bug # 3442622 --- src/com/android/launcher2/Workspace.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/com/android') diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java index 5a230eb90..5f70bfbeb 100644 --- a/src/com/android/launcher2/Workspace.java +++ b/src/com/android/launcher2/Workspace.java @@ -733,11 +733,15 @@ public class Workspace extends SmoothPagedView private float wallpaperOffsetForCurrentScroll() { Display display = mLauncher.getWindowManager().getDefaultDisplay(); + final boolean isStaticWallpaper = (mWallpaperManager.getWallpaperInfo() == null); // The wallpaper travel width is how far, from left to right, the wallpaper will move // at this orientation (for example, in portrait mode we don't move all the way to the // edges of the wallpaper, or otherwise the parallax effect would be too strong) int wallpaperTravelWidth = (int) (display.getWidth() * wallpaperTravelToScreenWidthRatio(display.getWidth(), display.getHeight())); + if (!isStaticWallpaper) { + wallpaperTravelWidth = mWallpaperWidth; + } // Set wallpaper offset steps (1 / (number of screens - 1)) // We have 3 vertical offset states (centered, and then top/bottom aligned @@ -751,7 +755,6 @@ public class Workspace extends SmoothPagedView // you overscroll as far as you can in landscape mode. Only do this for static wallpapers // because live wallpapers (and probably 3rd party wallpaper providers) rely on the offset // being even intervals from 0 to 1 (eg [0, 0.25, 0.5, 0.75, 1]) - final boolean isStaticWallpaper = (mWallpaperManager.getWallpaperInfo() == null); if (isStaticWallpaper) { int overscrollOffset = (int) (maxOverScroll() * display.getWidth()); scrollProgressOffset += overscrollOffset / (float) getScrollRange(); @@ -761,7 +764,7 @@ public class Workspace extends SmoothPagedView float scrollProgress = mScrollX / (float) scrollRange + scrollProgressOffset; float offsetInDips = wallpaperTravelWidth * scrollProgress + - (mWallpaperWidth - wallpaperTravelWidth) / 2; + (mWallpaperWidth - wallpaperTravelWidth) / 2; // center it float offset = offsetInDips / (float) mWallpaperWidth; return offset; } -- cgit v1.2.3