Ejemplo n.º 1
0
        void MoveToScreen(AppScreen nextScreen, bool resetCurrentOnTransitionEnd)
        {
            if (isTransitioningScreens || nextScreen == currentScreen || (appMenu && appMenu.BeganValidDrag))
            {
                return;
            }

            isTransitioningScreens = true;

            navigationHistory.Push(nextScreen);

            Sequence hideSequence = currentScreen.Hide();
            Sequence showSequence = nextScreen.Show();

            previousScreen = currentScreen;
            currentScreen  = nextScreen;

            Action <bool> onCompleteAction = (resetScreen) =>
            {
                isTransitioningScreens = false;
                if (resetScreen)
                {
                    previousScreen.ResetAnimations();
                }
            };

            showSequence.OnComplete(() => onCompleteAction(resetCurrentOnTransitionEnd));

            CheckAppMenuAvailability(hideSequence);
            CheckBackHeaderAvailability(showSequence, hideSequence);
            CheckAppHeaderAvailability(showSequence, hideSequence);
            CheckAppFooterAvailability(showSequence, hideSequence);
        }