summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdam Cohen <adamcohen@google.com>2013-10-09 14:47:32 -0700
committerAdam Cohen <adamcohen@google.com>2013-10-09 14:48:01 -0700
commit564a2e7116b026c1d73829e65d47b660b03a3c72 (patch)
treefc754c1b446bc29bc4acefd73ab07f219522aa02 /src
parentfbdf42703c02f27105e67776a022db2c080dd5db (diff)
downloadandroid_packages_apps_Trebuchet-564a2e7116b026c1d73829e65d47b660b03a3c72.tar.gz
android_packages_apps_Trebuchet-564a2e7116b026c1d73829e65d47b660b03a3c72.tar.bz2
android_packages_apps_Trebuchet-564a2e7116b026c1d73829e65d47b660b03a3c72.zip
Fix custom content state for scroll in RTL (issue 11068877)
Change-Id: I731c55e3e4e01ef42eba94c002d0fde296dd9540
Diffstat (limited to 'src')
-rw-r--r--src/com/android/launcher3/PagedView.java13
-rw-r--r--src/com/android/launcher3/Workspace.java4
2 files changed, 16 insertions, 1 deletions
diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java
index c6cf3a3d0..2a339c039 100644
--- a/src/com/android/launcher3/PagedView.java
+++ b/src/com/android/launcher3/PagedView.java
@@ -1528,6 +1528,19 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
}
}
+ // While layout transitions are occurring, a child's position may stray from its baseline
+ // position. This method returns the magnitude of this stray at any given time.
+ public int getLayoutTransitionOffsetForPage(int index) {
+ if (mPageScrolls == null || index >= mPageScrolls.length || index < 0) {
+ return 0;
+ } else {
+ View child = getChildAt(index);
+ int scrollOffset = (getViewportWidth() - child.getMeasuredWidth()) / 2;
+ int baselineX = mPageScrolls[index] + scrollOffset + getViewportOffsetX();
+ return (int) (child.getX() - baselineX);
+ }
+ }
+
// This curve determines how the effect of scrolling over the limits of the page dimishes
// as the user pulls further and further from the bounds
private float overScrollInfluenceCurve(float f) {
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index a23d7d0b8..4515b03ab 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -1387,7 +1387,9 @@ public class Workspace extends SmoothPagedView
float progress = 0;
if (hasCustomContent()) {
int index = mScreenOrder.indexOf(CUSTOM_CONTENT_SCREEN_ID);
- int scrollDelta = getScrollForPage(index + 1) - getScrollX();
+
+ int scrollDelta = getScrollForPage(index + 1) - getScrollX() +
+ getLayoutTransitionOffsetForPage(index + 1);
translationX = scrollDelta;
progress = (1.0f * scrollDelta) /
(getScrollForPage(index + 1) - getScrollForPage(index));