Restore wallpaper parallax

Gives us a 7-10fps drop
This commit is contained in:
Michael Jurka
2010-10-21 16:49:19 -07:00
parent ecb4838531
commit 340c5f3a70
2 changed files with 19 additions and 13 deletions
+6 -6
View File
@@ -550,12 +550,12 @@ public final class Launcher extends Activity
WallpaperManager wpm = (WallpaperManager)getSystemService(WALLPAPER_SERVICE);
Display display = getWindowManager().getDefaultDisplay();
// TODO: Put back when we decide about scrolling the wallpaper
// boolean isPortrait = display.getWidth() < display.getHeight();
// final int width = isPortrait ? display.getWidth() : display.getHeight();
// final int height = isPortrait ? display.getHeight() : display.getWidth();
wpm.suggestDesiredDimensions(Math.max(display.getWidth(), display.getHeight()),
Math.max(display.getWidth(), display.getHeight()));
boolean isPortrait = display.getWidth() < display.getHeight();
// find width and height when in portrait mode
final int width = isPortrait ? display.getWidth() : display.getHeight();
final int height = isPortrait ? display.getHeight() : display.getWidth();
wpm.suggestDesiredDimensions((int) (Math.max(width, height) * 1.5f),
Math.max(width, height));
}
// Note: This doesn't do all the client-id magic that BrowserProvider does
+13 -7
View File
@@ -394,7 +394,7 @@ public class Workspace extends SmoothPagedView
@Override
void setCurrentPage(int currentPage) {
super.setCurrentPage(currentPage);
updateWallpaperOffset(mScrollX);
updateWallpaperOffset();
}
/**
@@ -558,19 +558,25 @@ public class Workspace extends SmoothPagedView
Launcher.setScreen(mCurrentPage);
};
private void updateWallpaperOffset(int scrollRange) {
final boolean isStaticWallpaper = (mWallpaperManager != null) &&
(mWallpaperManager.getWallpaperInfo() == null);
if (LauncherApplication.isScreenXLarge() && !isStaticWallpaper) {
private void updateWallpaperOffset() {
if (LauncherApplication.isScreenXLarge()) {
IBinder token = getWindowToken();
int scrollRange = getChildOffset(getChildCount() - 1) - getChildOffset(0);
if (token != null) {
mWallpaperManager.setWallpaperOffsetSteps(1.0f / (getChildCount() - 1), 0 );
mWallpaperManager.setWallpaperOffsetSteps(1.0f / (getChildCount() - 1), 0);
float offset = mScrollX / (float) scrollRange;
mWallpaperManager.setWallpaperOffsets(getWindowToken(),
Math.max(0.f, Math.min(mScrollX/(float)scrollRange, 1.f)), 0);
Math.max(0.f, Math.min(offset, 1.0f)), 0);
}
}
}
@Override
public void computeScroll() {
super.computeScroll();
updateWallpaperOffset();
}
public void showOutlines() {
if (!mIsSmall && !mIsInUnshrinkAnimation) {
if (mChildrenOutlineFadeOutAnimation != null) mChildrenOutlineFadeOutAnimation.cancel();