From f42063810cca82d0beef501510cb0a6f2a732541 Mon Sep 17 00:00:00 2001 From: Jorge Ruesga Date: Fri, 21 Jun 2013 22:12:21 +0200 Subject: Trebuchet: Fix stack effect Actually stack effect is broken. Dragging an item from the current page to other fails, because the page has an alpha value of 0, and the dragged icon falls into a hidden state. Patchset 2: Fixed the overlap of views of stack effect on tablets Change-Id: I7c607eee29fbd82542b49d2c6bd50d7554e6d673 Signed-off-by: Jorge Ruesga --- src/com/cyanogenmod/trebuchet/Workspace.java | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/com/cyanogenmod/trebuchet/Workspace.java b/src/com/cyanogenmod/trebuchet/Workspace.java index a6f9154..20b9953 100644 --- a/src/com/cyanogenmod/trebuchet/Workspace.java +++ b/src/com/cyanogenmod/trebuchet/Workspace.java @@ -1566,16 +1566,17 @@ public class Workspace extends PagedView // On large screens we need to fade the page as it nears its leftmost position alpha = mLeftScreenAlphaInterpolator.getInterpolation(1 - scrollProgress); } - cl.setTranslationX(translationX); cl.setScaleX(scale); cl.setScaleY(scale); cl.setAlpha(alpha); // If the view has 0 alpha, we set it to be invisible so as to prevent - // it from accepting touches + // it from accepting touches. Move the view to its original position to + // prevent overlap between views if (alpha <= 0) { cl.setVisibility(INVISIBLE); + cl.setTranslationX(0); } else if (cl.getVisibility() != VISIBLE) { cl.setVisibility(VISIBLE); } @@ -2231,8 +2232,16 @@ public class Workspace extends PagedView if (mTransitionEffect == TransitionEffect.Stack) { if (i <= mCurrentPage) { cl.setVisibility(VISIBLE); + cl.setAlpha(1.0f); + if (mFadeInAdjacentScreens) { + setCellLayoutFadeAdjacent(cl, 0.0f); + } } else { cl.setVisibility(INVISIBLE); + cl.setAlpha(0.0f); + if (mFadeInAdjacentScreens) { + setCellLayoutFadeAdjacent(cl, 1.0f); + } } } @@ -2294,6 +2303,14 @@ public class Workspace extends PagedView cl.setPivotX(cl.getMeasuredWidth() * 0.5f); cl.setPivotY(cl.getMeasuredHeight() * 0.5f); cl.setVisibility(VISIBLE); + + // Stack Effect + if (mTransitionEffect == TransitionEffect.Stack) { + cl.setAlpha(1.0f); + if (mFadeInAdjacentScreens) { + setCellLayoutFadeAdjacent(cl, 0.0f); + } + } } // Determine the pages alpha during the state transition -- cgit v1.1