From a29f5047f004062a9fcee5fb8a4b90fdd56f7d0a Mon Sep 17 00:00:00 2001 From: Adam Cohen Date: Thu, 26 Sep 2013 14:29:35 -0700 Subject: Fixing overscroll with single page (issue 10937081) -> Also fixing asymmetrical assets (10951956) -> Also fixing camera distance to improve overscroll effect Change-Id: If229c7b8a0c80073f6dea89d5fb009a0e2f5845f --- res/drawable-hdpi/overscroll_glow_left.9.png | Bin 848 -> 858 bytes res/drawable-mdpi/overscroll_glow_left.9.png | Bin 547 -> 552 bytes res/drawable-xhdpi/overscroll_glow_left.9.png | Bin 1236 -> 1249 bytes res/drawable-xxhdpi/overscroll_glow_left.9.png | Bin 2800 -> 4562 bytes res/values/config.xml | 2 +- src/com/android/launcher3/Workspace.java | 17 ++++++++--------- 6 files changed, 9 insertions(+), 10 deletions(-) diff --git a/res/drawable-hdpi/overscroll_glow_left.9.png b/res/drawable-hdpi/overscroll_glow_left.9.png index 782ecf1c6..aaf43c73a 100644 Binary files a/res/drawable-hdpi/overscroll_glow_left.9.png and b/res/drawable-hdpi/overscroll_glow_left.9.png differ diff --git a/res/drawable-mdpi/overscroll_glow_left.9.png b/res/drawable-mdpi/overscroll_glow_left.9.png index 147e6a6b4..b79cdcdc2 100644 Binary files a/res/drawable-mdpi/overscroll_glow_left.9.png and b/res/drawable-mdpi/overscroll_glow_left.9.png differ diff --git a/res/drawable-xhdpi/overscroll_glow_left.9.png b/res/drawable-xhdpi/overscroll_glow_left.9.png index 8ece7f218..4f248f70b 100644 Binary files a/res/drawable-xhdpi/overscroll_glow_left.9.png and b/res/drawable-xhdpi/overscroll_glow_left.9.png differ diff --git a/res/drawable-xxhdpi/overscroll_glow_left.9.png b/res/drawable-xxhdpi/overscroll_glow_left.9.png index e188ce8ac..1a895cdc8 100644 Binary files a/res/drawable-xxhdpi/overscroll_glow_left.9.png and b/res/drawable-xxhdpi/overscroll_glow_left.9.png differ diff --git a/res/values/config.xml b/res/values/config.xml index fa84b9bc6..97408ccab 100644 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -71,7 +71,7 @@ 250 - 6500 + 8000 false 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); -- cgit v1.2.3