diff options
author | Adam Cohen <adamcohen@google.com> | 2014-08-18 13:12:16 -0700 |
---|---|---|
committer | Adam Cohen <adamcohen@google.com> | 2014-08-18 13:45:36 -0700 |
commit | 1e4359c54e82910e3c8bfba3d520ed27c91367b9 (patch) | |
tree | 04dd0b6f6991cabc7ebaffe907e2775f5da59dfe /src/com/android/launcher3/Workspace.java | |
parent | ac11d41686e38cb6e0f70f320e81d861ff9bedcb (diff) | |
download | android_packages_apps_Trebuchet-1e4359c54e82910e3c8bfba3d520ed27c91367b9.tar.gz android_packages_apps_Trebuchet-1e4359c54e82910e3c8bfba3d520ed27c91367b9.tar.bz2 android_packages_apps_Trebuchet-1e4359c54e82910e3c8bfba3d520ed27c91367b9.zip |
Adding dampened snap back overscroll to Workspace and AppsCustomizePagedView
issue 15475254
Change-Id: I5eb9fc480167faf4be16bd17bf18e2d103f40f47
Diffstat (limited to 'src/com/android/launcher3/Workspace.java')
-rw-r--r-- | src/com/android/launcher3/Workspace.java | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index 733923d24..53a3f948d 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -215,7 +215,7 @@ public class Workspace extends SmoothPagedView private final Rect mTempRect = new Rect(); private final int[] mTempXY = new int[2]; private int[] mTempVisiblePagesRange = new int[2]; - private boolean mOverscrollTransformsSet; + private boolean mOverscrollEffectSet; public static final int DRAG_BITMAP_PADDING = 2; private boolean mWorkspaceFadeInAdjacentScreens; @@ -281,6 +281,8 @@ public class Workspace extends SmoothPagedView private int mLastChildCount = -1; private float mTransitionProgress; + float mOverScrollEffect = 0f; + private Runnable mDeferredAction; private boolean mDeferDropAfterUninstall; private boolean mUninstallSuccessful; @@ -1683,14 +1685,11 @@ public class Workspace extends SmoothPagedView updateStateForCustomContent(screenCenter); enableHwLayersOnVisiblePages(); - boolean shouldOverScroll = (mOverScrollX < 0 && (!hasCustomContent() || isLayoutRtl())) || - (mOverScrollX > mMaxScrollX && (!hasCustomContent() || !isLayoutRtl())); + boolean shouldOverScroll = (mOverScrollEffect < 0 && (!hasCustomContent() || isLayoutRtl())) || + (mOverScrollEffect > 0 && (!hasCustomContent() || !isLayoutRtl())); if (shouldOverScroll) { int index = 0; - float pivotX = 0f; - final float leftBiasedPivot = 0.25f; - final float rightBiasedPivot = 0.75f; final int lowerIndex = 0; final int upperIndex = getChildCount() - 1; @@ -1698,25 +1697,27 @@ public class Workspace extends SmoothPagedView index = (!isRtl && isLeftPage) || (isRtl && !isLeftPage) ? lowerIndex : upperIndex; CellLayout cl = (CellLayout) getChildAt(index); - float scrollProgress = getScrollProgress(screenCenter, cl, index); - cl.setOverScrollAmount(Math.abs(scrollProgress), isLeftPage); + float effect = Math.abs(mOverScrollEffect); + cl.setOverScrollAmount(Math.abs(effect), isLeftPage); - if (!mOverscrollTransformsSet) { - mOverscrollTransformsSet = true; - cl.setOverscrollTransformsDirty(true); - } + mOverscrollEffectSet = true; } else { - if (mOverscrollTransformsSet && getChildCount() > 0) { - mOverscrollTransformsSet = false; - ((CellLayout) getChildAt(0)).resetOverscrollTransforms(); - ((CellLayout) getChildAt(getChildCount() - 1)).resetOverscrollTransforms(); + if (mOverscrollEffectSet && getChildCount() > 0) { + mOverscrollEffectSet = false; + ((CellLayout) getChildAt(0)).setOverScrollAmount(0, false); + ((CellLayout) getChildAt(getChildCount() - 1)).setOverScrollAmount(0, false); } } } + private void computeOverScrollEffect(float amount) { + mOverScrollEffect = acceleratedOverFactor(amount); + } + @Override protected void overScroll(float amount) { - acceleratedOverScroll(amount); + computeOverScrollEffect(amount); + dampedOverScroll(amount); } protected void onAttachedToWindow() { |