summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher2/Workspace.java
diff options
context:
space:
mode:
authorPatrick Dubroy <dubroy@google.com>2011-01-19 18:47:27 -0800
committerPatrick Dubroy <dubroy@google.com>2011-01-19 20:52:20 -0800
commitd0ce1ec2e21ce3bb0ba3549a01d1d06b440a8e45 (patch)
tree80d38d4a819db600ea66b7946112ab1030009eed /src/com/android/launcher2/Workspace.java
parentf4ffdc63d3d5b400174624f5bb8c41c7ed17265b (diff)
downloadpackages_apps_trebuchet-d0ce1ec2e21ce3bb0ba3549a01d1d06b440a8e45.zip
packages_apps_trebuchet-d0ce1ec2e21ce3bb0ba3549a01d1d06b440a8e45.tar.gz
packages_apps_trebuchet-d0ce1ec2e21ce3bb0ba3549a01d1d06b440a8e45.tar.bz2
Fix 3237665: Home screen should scroll on tap, not touch down
Change-Id: I61f65beaf982eec54b86668d6da94aa5c52e9355
Diffstat (limited to 'src/com/android/launcher2/Workspace.java')
-rw-r--r--src/com/android/launcher2/Workspace.java43
1 files changed, 30 insertions, 13 deletions
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index af7d080..f7ba7fb 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -467,6 +467,36 @@ public class Workspace extends SmoothPagedView
}
}
+ /**
+ * Check if the point (x, y) hits a given page.
+ */
+ private boolean hitsPage(int index, float x, float y) {
+ final View page = getChildAt(index);
+ if (page != null) {
+ float[] localXY = { x, y };
+ mapPointFromSelfToChild(page, localXY);
+ return (localXY[0] >= 0 && localXY[0] < page.getWidth()
+ && localXY[1] >= 0 && localXY[1] < page.getHeight());
+ }
+ return false;
+ }
+
+ @Override
+ protected boolean hitsPreviousPage(float x, float y) {
+ // mNextPage is set to INVALID_PAGE whenever we are stationary.
+ // Calculating "next page" this way ensures that you scroll to whatever page you tap on
+ final int current = (mNextPage == INVALID_PAGE) ? mCurrentPage : mNextPage;
+ return hitsPage(current - 1, x, y);
+ }
+
+ @Override
+ protected boolean hitsNextPage(float x, float y) {
+ // mNextPage is set to INVALID_PAGE whenever we are stationary.
+ // Calculating "next page" this way ensures that you scroll to whatever page you tap on
+ final int current = (mNextPage == INVALID_PAGE) ? mCurrentPage : mNextPage;
+ return hitsPage(current + 1, x, y);
+ }
+
public boolean onTouch(View v, MotionEvent event) {
// this is an intercepted event being forwarded from a cell layout
if (mIsSmall || mIsInUnshrinkAnimation) {
@@ -475,14 +505,6 @@ public class Workspace extends SmoothPagedView
mLauncher.onWorkspaceClick((CellLayout) v);
}
return true;
- } else if (!mPageMoving) {
- if (v == getChildAt(mCurrentPage - 1)) {
- snapToPage(mCurrentPage - 1);
- return true;
- } else if (v == getChildAt(mCurrentPage + 1)) {
- snapToPage(mCurrentPage + 1);
- return true;
- }
}
return false;
}
@@ -1396,11 +1418,6 @@ public class Workspace extends SmoothPagedView
updateWhichPagesAcceptDrops(mShrinkState);
}
- @Override
- protected boolean handlePagingClicks() {
- return true;
- }
-
// We call this when we trigger an unshrink by clicking on the CellLayout cl
public void unshrink(CellLayout clThatWasClicked) {
unshrink(clThatWasClicked, false);