From 0207c522472d7252f146f4d39efa456ca5248c6b Mon Sep 17 00:00:00 2001 From: Patrick Dubroy Date: Wed, 3 Nov 2010 22:12:02 -0700 Subject: Draw glow along screen edge when dragging in portrait. --- src/com/android/launcher2/CellLayout.java | 4 ++++ src/com/android/launcher2/Workspace.java | 32 +++++++++++++++++++++++++++---- 2 files changed, 32 insertions(+), 4 deletions(-) (limited to 'src/com') diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java index 66d5cb500..11c0c1822 100644 --- a/src/com/android/launcher2/CellLayout.java +++ b/src/com/android/launcher2/CellLayout.java @@ -327,6 +327,10 @@ public class CellLayout extends ViewGroup implements Dimmable { } } + public boolean getHover() { + return mHover; + } + public void drawChildren(Canvas canvas) { super.dispatchDraw(canvas); } diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java index 4679c645d..df3d2de52 100644 --- a/src/com/android/launcher2/Workspace.java +++ b/src/com/android/launcher2/Workspace.java @@ -605,6 +605,30 @@ public class Workspace extends SmoothPagedView } else { super.dispatchDraw(canvas); + final int width = getWidth(); + final int height = getHeight(); + + // In portrait orientation, draw the glowing edge when dragging to adjacent screens + if (mInScrollArea && (height > width)) { + final int pageHeight = getChildAt(0).getHeight(); + + // This determines the height of the glowing edge: 90% of the page height + final int padding = (int) ((height - pageHeight) * 0.5f + pageHeight * 0.1f); + + final CellLayout leftPage = (CellLayout) getChildAt(mCurrentPage - 1); + final CellLayout rightPage = (CellLayout) getChildAt(mCurrentPage + 1); + + if (leftPage != null && leftPage.getHover()) { + final Drawable d = getResources().getDrawable(R.drawable.page_hover_left); + d.setBounds(mScrollX, padding, mScrollX + d.getIntrinsicWidth(), height - padding); + d.draw(canvas); + } else if (rightPage != null && rightPage.getHover()) { + final Drawable d = getResources().getDrawable(R.drawable.page_hover_right); + d.setBounds(mScrollX + width - d.getIntrinsicWidth(), padding, mScrollX + width, height - padding); + d.draw(canvas); + } + } + if (mDropView != null) { // We are animating an item that was just dropped on the home screen. // Render its View in the current animation position. @@ -1909,11 +1933,11 @@ public class Workspace extends SmoothPagedView final int screen = getCurrentPage() + ((direction == DragController.SCROLL_LEFT) ? -1 : 1); if (0 <= screen && screen < getChildCount()) { ((CellLayout) getChildAt(screen)).setHover(true); - } - if (mDragTargetLayout != null) { - mDragTargetLayout.onDragExit(); - mDragTargetLayout = null; + if (mDragTargetLayout != null) { + mDragTargetLayout.onDragExit(); + mDragTargetLayout = null; + } } } } -- cgit v1.2.3