summaryrefslogtreecommitdiffstats
path: root/src/com/cyanogenmod/trebuchet/Workspace.java
diff options
context:
space:
mode:
authornebkat <nebkat@teamhacksung.org>2012-12-18 19:20:24 +0000
committerGerrit Code Review <gerrit@review.cyanogenmod.com>2012-12-18 12:39:17 -0800
commita257f0d0f8cf83e5aa0656d16b876e3edc027009 (patch)
treed9ff9776e66675153dc869e62b14d109b2dd3743 /src/com/cyanogenmod/trebuchet/Workspace.java
parent7ec1ecc9b8cca8a8c1faa64495be0828cd3c4a2c (diff)
downloadandroid_packages_apps_Trebuchet-a257f0d0f8cf83e5aa0656d16b876e3edc027009.tar.gz
android_packages_apps_Trebuchet-a257f0d0f8cf83e5aa0656d16b876e3edc027009.tar.bz2
android_packages_apps_Trebuchet-a257f0d0f8cf83e5aa0656d16b876e3edc027009.zip
Cylinder Transition Effect
Change-Id: Id9bdd2ae83472ba0dc90527d55272463395d1aaf
Diffstat (limited to 'src/com/cyanogenmod/trebuchet/Workspace.java')
-rw-r--r--src/com/cyanogenmod/trebuchet/Workspace.java30
1 files changed, 28 insertions, 2 deletions
diff --git a/src/com/cyanogenmod/trebuchet/Workspace.java b/src/com/cyanogenmod/trebuchet/Workspace.java
index b03a1cbac..231d8ee23 100644
--- a/src/com/cyanogenmod/trebuchet/Workspace.java
+++ b/src/com/cyanogenmod/trebuchet/Workspace.java
@@ -297,7 +297,9 @@ public class Workspace extends SmoothPagedView
CubeIn,
CubeOut,
Stack,
- Accordian
+ Accordian,
+ CylinderIn,
+ CylinderOut
}
private TransitionEffect mTransitionEffect = TransitionEffect.Standard;
@@ -1493,7 +1495,7 @@ public class Workspace extends SmoothPagedView
} else {
cl.setScaleX(scale);
cl.setScaleY(scale);
- cl.setPivotX(scrollProgress * cl.getMeasuredWidth() * 0.5f + cl.getMeasuredWidth() * 0.5f);
+ cl.setPivotX((scrollProgress + 1) * cl.getMeasuredWidth() * 0.5f);
}
cl.setPivotY(cl.getMeasuredHeight() * 0.5f);
cl.setRotationY(rotation);
@@ -1607,6 +1609,23 @@ public class Workspace extends SmoothPagedView
invalidate();
}
+ private void screenScrolledCylinder(int screenScroll, boolean in) {
+ for (int i = 0; i < getChildCount(); i++) {
+ CellLayout cl = (CellLayout) getPageAt(i);
+ if (cl != null) {
+ float scrollProgress = getScrollProgress(screenScroll, cl, i);
+ float rotation = (in ? WORKSPACE_ROTATION : -WORKSPACE_ROTATION) * scrollProgress;
+
+ cl.setPivotX((scrollProgress + 1) * cl.getMeasuredWidth() * 0.5f);
+ cl.setPivotY(cl.getMeasuredHeight() * 0.5f);
+ cl.setRotationY(rotation);
+ if (mFadeInAdjacentScreens && !isSmall()) {
+ setCellLayoutFadeAdjacent(cl, scrollProgress);
+ }
+ }
+ }
+ }
+
@Override
protected void screenScrolled(int screenScroll) {
super.screenScrolled(screenScroll);
@@ -1635,6 +1654,7 @@ public class Workspace extends SmoothPagedView
// Limit the "normal" effects to mScrollX
int scroll = mScrollX;
+ // Reset transforms when we aren't in overscroll
if (mOverscrollFade != 0) {
setFadeForOverScroll(0);
}
@@ -1681,6 +1701,12 @@ public class Workspace extends SmoothPagedView
case Accordian:
screenScrolledAccordian(scroll);
break;
+ case CylinderIn:
+ screenScrolledCylinder(scroll, true);
+ break;
+ case CylinderOut:
+ screenScrolledCylinder(scroll, false);
+ break;
}
mScrollTransformsDirty = false;
}