Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dbdd23be authored by Nebojsa Cvetkovic's avatar Nebojsa Cvetkovic
Browse files

Workspace: Change state animation cleanup

Change-Id: I3c0ef9b6378c10b3e7d92643abd7ececc4431cb0
parent fa9e38bd
Loading
Loading
Loading
Loading
+60 −60
Original line number Diff line number Diff line
@@ -81,6 +81,8 @@ public class Workspace extends PagedView
        DragController.DragListener, LauncherTransitionable, ViewGroup.OnHierarchyChangeListener {
    private static final String TAG = "Trebuchet.Workspace";

    private static final boolean DEBUG_CHANGE_STATE_ANIMATIONS = false;

    // Y rotation to apply to the workspace screens
    private static final float WORKSPACE_ROTATION = 12.5f;
    private static final float WORKSPACE_OVERSCROLL_ROTATION = 24f;
@@ -2212,9 +2214,9 @@ public class Workspace extends PagedView
                }
            }

            if (stateIsNormal) {
                // Zoom Effects
            if ((mTransitionEffect == TransitionEffect.ZoomIn ||
                    mTransitionEffect == TransitionEffect.ZoomOut) && stateIsNormal) {
                if ((mTransitionEffect == TransitionEffect.ZoomIn || mTransitionEffect == TransitionEffect.ZoomOut)) {
                    if (i != mCurrentPage) {
                        scale = (mTransitionEffect == TransitionEffect.ZoomIn ? 0.5f : 1.1f);
                    }
@@ -2222,34 +2224,25 @@ public class Workspace extends PagedView

                // Stack Effect
                if (mTransitionEffect == TransitionEffect.Stack) {
                if (stateIsSpringLoaded) {
                    cl.setVisibility(VISIBLE);
                } else if (stateIsNormal) {
                    if (i <= mCurrentPage) {
                        cl.setVisibility(VISIBLE);
                    } else {
                        cl.setVisibility(INVISIBLE);
                    }
                }
            }


                // Flip Effect
            if (mTransitionEffect == TransitionEffect.Flip) {
                if (stateIsSpringLoaded) {
                    cl.setVisibility(VISIBLE);
                } else if (stateIsNormal) {
                if (mTransitionEffect == TransitionEffect.Flip || mTransitionEffect == TransitionEffect.Accordion) {
                    if (i == mCurrentPage) {
                        cl.setVisibility(VISIBLE);
                    } else {
                        cl.setVisibility(INVISIBLE);
                    }
                }
            }

                // Rotate Effects
            if ((mTransitionEffect == TransitionEffect.RotateUp ||
                    mTransitionEffect == TransitionEffect.RotateDown) && stateIsNormal) {
                if ((mTransitionEffect == TransitionEffect.RotateUp || mTransitionEffect == TransitionEffect.RotateDown)) {
                    boolean up = mTransitionEffect == TransitionEffect.RotateUp;
                    rotation = (up ? WORKSPACE_ROTATION : -WORKSPACE_ROTATION) * Math.max(-1.0f, Math.min(1.0f , mCurrentPage - i));
                    translationX = cl.getMeasuredWidth() * (Math.max(-1.0f, Math.min(1.0f, i - mCurrentPage))) +
@@ -2260,7 +2253,7 @@ public class Workspace extends PagedView
                }

                // Cube Effects
            if ((mTransitionEffect == TransitionEffect.CubeIn || mTransitionEffect == TransitionEffect.CubeOut) && stateIsNormal) {
                if ((mTransitionEffect == TransitionEffect.CubeIn || mTransitionEffect == TransitionEffect.CubeOut)) {
                    if (i < mCurrentPage) {
                        rotationY = mTransitionEffect == TransitionEffect.CubeOut ? -90.0f : 90.0f;
                    } else if (i > mCurrentPage) {
@@ -2269,40 +2262,33 @@ public class Workspace extends PagedView
                }

                // Cylinder Effects
            if ((mTransitionEffect == TransitionEffect.CylinderIn || mTransitionEffect == TransitionEffect.CylinderOut) && stateIsNormal) {
                if ((mTransitionEffect == TransitionEffect.CylinderIn || mTransitionEffect == TransitionEffect.CylinderOut)) {
                    if (i < mCurrentPage) {
                        rotationY = mTransitionEffect == TransitionEffect.CylinderOut ? -WORKSPACE_ROTATION : WORKSPACE_ROTATION;
                        cl.setPivotX(cl.getMeasuredWidth());
                        cl.setTranslationX(0);
                    } else if (i > mCurrentPage) {
                        rotationY = mTransitionEffect == TransitionEffect.CylinderOut ? WORKSPACE_ROTATION : -WORKSPACE_ROTATION;
                        cl.setPivotX(0);
                        cl.setTranslationX(0);
                    }
                }

                // Carousel Effects
            if (mTransitionEffect == TransitionEffect.CarouselLeft || mTransitionEffect == TransitionEffect.CarouselRight && stateIsNormal) {
                if (mTransitionEffect == TransitionEffect.CarouselLeft || mTransitionEffect == TransitionEffect.CarouselRight) {
                    if (i < mCurrentPage) {
                        rotationY = 90.0f;
                    } else if (i > mCurrentPage) {
                        rotationY = -90.0f;
                    }
                }

            // Accordion Effect
            if (mTransitionEffect == TransitionEffect.Accordion) {
                if (stateIsSpringLoaded) {
                    cl.setVisibility(VISIBLE);
                } else if (stateIsNormal) {
                    if (i == mCurrentPage) {
                        cl.setVisibility(VISIBLE);
                    } else {
                        cl.setVisibility(INVISIBLE);
                    }
                }
            }

            if (stateIsSmall || stateIsSpringLoaded) {
                cl.setCameraDistance(1280 * mDensity);
                cl.setPivotX(cl.getMeasuredWidth() * 0.5f);
                cl.setPivotY(cl.getMeasuredHeight() * 0.5f);
                cl.setVisibility(VISIBLE);
            }

            // Determine the pages alpha during the state transition
@@ -2350,8 +2336,22 @@ public class Workspace extends PagedView
        }

        if (animated) {
            if (DEBUG_CHANGE_STATE_ANIMATIONS) Log.d(TAG, oldState + " > " + state);
            for (int index = 0; index < getChildCount(); index++) {
                final int i = index;

                if (DEBUG_CHANGE_STATE_ANIMATIONS) {
                    Log.d(TAG, i + " alpha: " + mOldAlphas[i] + " > " + mNewAlphas[i]);
                    Log.d(TAG, i + " translationX: " + mOldTranslationXs[i] + " > " + mNewTranslationXs[i]);
                    Log.d(TAG, i + " translationY: " + mOldTranslationYs[i] + " > " + mNewTranslationYs[i]);
                    Log.d(TAG, i + " scaleX: " + mOldScaleXs[i] + " > " + mNewScaleXs[i]);
                    Log.d(TAG, i + " scaleY: " + mOldScaleYs[i] + " > " + mNewScaleYs[i]);
                    Log.d(TAG, i + " alpha: " + mOldAlphas[i] + " > " + mNewAlphas[i]);
                    Log.d(TAG, i + " backgroundAlpha: " + mOldBackgroundAlphas[i] + " > " + mNewBackgroundAlphas[i]);
                    Log.d(TAG, i + " rotation: " + mOldRotations[i] + " > " + mNewRotations[i]);
                    Log.d(TAG, i + " rotationY: " + mOldRotationYs[i] + " > " + mNewRotationYs[i]);
                }

                final CellLayout cl = (CellLayout) getChildAt(i);
                float currentAlpha = cl.getShortcutsAndWidgets().getAlpha();
                if (mOldAlphas[i] == 0 && mNewAlphas[i] == 0) {