diff options
Diffstat (limited to 'src/com/android/launcher2/Workspace.java')
-rw-r--r-- | src/com/android/launcher2/Workspace.java | 43 |
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); |