From 1a1a802867f3d1f2c815abb364e403fffe24dd08 Mon Sep 17 00:00:00 2001 From: nebkat Date: Thu, 22 Dec 2011 19:49:22 +0000 Subject: Preferences: Scroll Wallpaper Change-Id: If20b0f45cc773f7e03565b638ae745ced3070d5c --- src/com/cyanogenmod/trebuchet/Workspace.java | 38 +++++++++++++++++----- .../trebuchet/preference/PreferencesProvider.java | 4 +++ 2 files changed, 34 insertions(+), 8 deletions(-) (limited to 'src/com/cyanogenmod/trebuchet') diff --git a/src/com/cyanogenmod/trebuchet/Workspace.java b/src/com/cyanogenmod/trebuchet/Workspace.java index 2128a764f..ae3198572 100644 --- a/src/com/cyanogenmod/trebuchet/Workspace.java +++ b/src/com/cyanogenmod/trebuchet/Workspace.java @@ -243,6 +243,7 @@ public class Workspace extends SmoothPagedView private int mDefaultHomescreen; private boolean mShowSearchBar; private boolean mResizeAnyWidget; + private boolean mScrollWallpaper; private boolean mShowScrollingIndicator; private boolean mFadeScrollingIndicator; @@ -325,6 +326,7 @@ public class Workspace extends SmoothPagedView } mShowSearchBar = PreferencesProvider.Interface.Homescreen.getShowSearchBar(context); mResizeAnyWidget = PreferencesProvider.Interface.Homescreen.getResizeAnyWidget(context); + mScrollWallpaper = PreferencesProvider.Interface.Homescreen.getScrollWallpaper(context); mShowScrollingIndicator = PreferencesProvider.Interface.Homescreen.getShowScrollingIndicator(context); mFadeScrollingIndicator = PreferencesProvider.Interface.Homescreen.getFadeScrollingIndicator(context); @@ -442,19 +444,23 @@ public class Workspace extends SmoothPagedView @Override public void onAnimationEnd(Animator animation) { mIsSwitchingState = false; - mWallpaperOffset.setOverrideHorizontalCatchupConstant(false); + if (mScrollWallpaper) { + mWallpaperOffset.setOverrideHorizontalCatchupConstant(false); + } mAnimator = null; updateChildrenLayersEnabled(); } }; mSnapVelocity = 100; - mWallpaperOffset = new WallpaperOffsetInterpolator(); Display display = mLauncher.getWindowManager().getDefaultDisplay(); mDisplayWidth = display.getWidth(); mDisplayHeight = display.getHeight(); - mWallpaperTravelWidth = (int) (mDisplayWidth * - wallpaperTravelToScreenWidthRatio(mDisplayWidth, mDisplayHeight)); + if (mScrollWallpaper) { + mWallpaperOffset = new WallpaperOffsetInterpolator(); + mWallpaperTravelWidth = (int) (mDisplayWidth * + wallpaperTravelToScreenWidthRatio(mDisplayWidth, mDisplayHeight)); + } } @Override @@ -883,6 +889,11 @@ public class Workspace extends SmoothPagedView } } + private void centerWallpaperOffset() { + mWallpaperManager.setWallpaperOffsetSteps(0.5f, 0); + mWallpaperManager.setWallpaperOffsets(getWindowToken(), 0.5f, 0); + } + public void updateWallpaperOffsetImmediately() { mUpdateWallpaperOffsetImmediately = true; } @@ -912,13 +923,17 @@ public class Workspace extends SmoothPagedView @Override protected void updateCurrentPageScroll() { super.updateCurrentPageScroll(); - computeWallpaperScrollRatio(mCurrentPage); + if (mScrollWallpaper) { + computeWallpaperScrollRatio(mCurrentPage); + } } @Override protected void snapToPage(int whichPage) { super.snapToPage(whichPage); - computeWallpaperScrollRatio(whichPage); + if (mScrollWallpaper) { + computeWallpaperScrollRatio(whichPage); + } } private void computeWallpaperScrollRatio(int page) { @@ -1051,7 +1066,9 @@ public class Workspace extends SmoothPagedView @Override public void computeScroll() { super.computeScroll(); - syncWallpaperOffsetWithScroll(); + if (mScrollWallpaper) { + syncWallpaperOffsetWithScroll(); + } } void showOutlines() { @@ -1316,7 +1333,9 @@ public class Workspace extends SmoothPagedView @Override protected void onDraw(Canvas canvas) { - updateWallpaperOffsets(); + if (mScrollWallpaper) { + updateWallpaperOffsets(); + } // Draw the background gradient if necessary if (mBackground != null && mBackgroundAlpha > 0.0f && mDrawBackground) { @@ -3192,6 +3211,9 @@ public class Workspace extends SmoothPagedView // needed updateChildrenLayersEnabled(); setWallpaperDimension(); + if (!mScrollWallpaper) { + centerWallpaperOffset(); + } } /** diff --git a/src/com/cyanogenmod/trebuchet/preference/PreferencesProvider.java b/src/com/cyanogenmod/trebuchet/preference/PreferencesProvider.java index 1144be227..3a746f85c 100644 --- a/src/com/cyanogenmod/trebuchet/preference/PreferencesProvider.java +++ b/src/com/cyanogenmod/trebuchet/preference/PreferencesProvider.java @@ -26,6 +26,10 @@ public final class PreferencesProvider { final SharedPreferences preferences = context.getSharedPreferences(PREFERENCES_KEY, 0); return preferences.getBoolean("ui_homescreen_general_resize_any_widget", false); } + public static boolean getScrollWallpaper(Context context) { + final SharedPreferences preferences = context.getSharedPreferences(PREFERENCES_KEY, 0); + return preferences.getBoolean("ui_homescreen_scrolling_scroll_wallpaper", true); + } public static boolean getShowScrollingIndicator(Context context) { final SharedPreferences preferences = context.getSharedPreferences(PREFERENCES_KEY, 0); return preferences.getBoolean("ui_homescreen_indicator_enable", true); -- cgit v1.2.3