summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/Workspace.java
diff options
context:
space:
mode:
authorAdam Cohen <adamcohen@google.com>2014-08-18 13:12:16 -0700
committerAdam Cohen <adamcohen@google.com>2014-08-18 13:45:36 -0700
commit1e4359c54e82910e3c8bfba3d520ed27c91367b9 (patch)
tree04dd0b6f6991cabc7ebaffe907e2775f5da59dfe /src/com/android/launcher3/Workspace.java
parentac11d41686e38cb6e0f70f320e81d861ff9bedcb (diff)
downloadandroid_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.java35
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() {