diff options
author | Adam Cohen <adamcohen@google.com> | 2013-09-26 22:53:05 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-09-26 22:53:05 +0000 |
commit | 88cc3f5aa2e9ac3ae0b24e563a44d320cc089cd8 (patch) | |
tree | d252c24c91da329e8df4bf91b1e84f439dd4a220 /src/com/android/launcher3 | |
parent | 4042c3a31492d772dfc6fd2f39fdfef2eea87d91 (diff) | |
parent | a29f5047f004062a9fcee5fb8a4b90fdd56f7d0a (diff) | |
download | android_packages_apps_Trebuchet-88cc3f5aa2e9ac3ae0b24e563a44d320cc089cd8.tar.gz android_packages_apps_Trebuchet-88cc3f5aa2e9ac3ae0b24e563a44d320cc089cd8.tar.bz2 android_packages_apps_Trebuchet-88cc3f5aa2e9ac3ae0b24e563a44d320cc089cd8.zip |
Merge "Fixing overscroll with single page (issue 10937081)" into jb-ub-now-indigo-rose
Diffstat (limited to 'src/com/android/launcher3')
-rw-r--r-- | src/com/android/launcher3/Workspace.java | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index dcf10697e..1425f7ff5 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -194,6 +194,7 @@ public class Workspace extends SmoothPagedView private final int[] mTempXY = new int[2]; private int[] mTempVisiblePagesRange = new int[2]; private boolean mOverscrollTransformsSet; + private float mLastOverscrollPivotX; public static final int DRAG_BITMAP_PADDING = 2; private boolean mWorkspaceFadeInAdjacentScreens; @@ -1413,22 +1414,20 @@ public class Workspace extends SmoothPagedView final float rightBiasedPivot = 0.75f; final int lowerIndex = 0; final int upperIndex = getChildCount() - 1; - if (isRtl) { - index = mOverScrollX < 0 ? upperIndex : lowerIndex; - pivotX = (index == 0 ? leftBiasedPivot : rightBiasedPivot); - } else { - index = mOverScrollX < 0 ? lowerIndex : upperIndex; - pivotX = (index == 0 ? rightBiasedPivot : leftBiasedPivot); - } + + final boolean isLeftPage = mOverScrollX < 0; + index = (!isRtl && isLeftPage) || (isRtl && !isLeftPage) ? lowerIndex : upperIndex; + pivotX = isLeftPage ? rightBiasedPivot : leftBiasedPivot; CellLayout cl = (CellLayout) getChildAt(index); float scrollProgress = getScrollProgress(screenCenter, cl, index); - final boolean isLeftPage = (isRtl ? index > 0 : index == 0); cl.setOverScrollAmount(Math.abs(scrollProgress), isLeftPage); float rotation = -WORKSPACE_OVERSCROLL_ROTATION * scrollProgress; cl.setRotationY(rotation); - if (!mOverscrollTransformsSet) { + + if (!mOverscrollTransformsSet || Float.compare(mLastOverscrollPivotX, pivotX) != 0) { mOverscrollTransformsSet = true; + mLastOverscrollPivotX = pivotX; cl.setCameraDistance(mDensity * mCameraDistance); cl.setPivotX(cl.getMeasuredWidth() * pivotX); cl.setPivotY(cl.getMeasuredHeight() * 0.5f); |