Exemplo n.º 1
0
    /// <summary>
    /// remove current screen from stack and show preview screen
    /// </summary>
    public void ShowPreviousScreen()
    {
        //if showing/hiding animation isnt finishd
        if (UIScreenAnimationManager.Instance.isAnimating)
        {
            return;
        }

        if (_screenStack.Count == 0)
        {
            LoggingManager.AddErrorToLog("Try return to preview screen, but screen stack is empty");
            return;
        }
        IUIScreenNavigationController previousScreenNavigationController = _screenStack[_screenStack.Count - 1];

        //remove last screen it must be curren opened screen
        _screenStack.RemoveAt(_screenStack.Count - 1);

        if (_screenStack.Count == 0)
        {
            //go to main screen
            ShowNavigationOfPreviousScreen(_uiScreens[_finishScreen], previousScreenNavigationController.AnimationSettings, null);
        }
        else
        {
            //show preview screen from stack
            ShowNavigationOfPreviousScreen(_uiScreens[_screenStack[_screenStack.Count - 1].ScreenID], previousScreenNavigationController.AnimationSettings, previousScreenNavigationController.Data);
        }
    }
Exemplo n.º 2
0
 /* Navigation by stack */
 /// <summary>
 /// Chack of stack
 /// </summary>
 /// <param name="navigationController">next showing screen</param>
 private void CheckOnScreenStack(IUIScreenNavigationController navigationController)
 {
     if (navigationController.ScreenID == _finishScreen)
     {
         _screenStack.Clear();
     }
     else
     {
         _screenStack.Add(navigationController);
     }
 }
Exemplo n.º 3
0
    /// <summary>
    /// Open screen
    /// </summary>
    /// <param name="navigationController"> navigation controller, where is saved date for opening screen</param>
    public void ShowNavigationScreen(IUIScreenNavigationController navigationController)
    {
        if (CheckOfScreen(navigationController.ScreenID))
        {
            return;
        }
        //chack of screen stack
        CheckOnScreenStack(navigationController);

        _uiScreens[navigationController.ScreenID].SetData(navigationController.Data);

        UIScreenAnimationManager.Instance.StartAnimateNavigation(navigationController.AnimationSettings, _uiScreens[navigationController.ScreenID], _currentScreen);
        ChangeCurrentScreen(_uiScreens[navigationController.ScreenID]);
    }