Exemplo n.º 1
0
        public override PopOperation AsSpecificPopOperation(int count)
        {
            var result = new FragmentPopOperation <TViewModel>(this);

            for (int i = 0, index = FragmentStack.Count - 1; i < count; ++i, index--)
            {
                switch (FragmentStack[index])
                {
                case DialogFragmentInnerStack <TViewModel> dialogFragmentInnerStack:
                    result.FragmentStacksToPop.Add(dialogFragmentInnerStack);
                    break;

                case FragmentInnerStack <TViewModel> fragmentInnerStack:
                    result.FragmentStacksToPop.Add(fragmentInnerStack);
                    break;

                default:
                    throw new InvalidOperationException("Specific pop operation on unsupported child type");
                }
            }

            FragmentStack.RemoveRange(FragmentStack.Count - count, count);

            return(result);
        }
Exemplo n.º 2
0
        public override PopOperation AsSpecificPopOperation(InnerStack <TViewModel> child)
        {
            if (child is FragmentInnerStack <TViewModel> fragmentInnerStack)
            {
                FragmentStack.RemoveAt(FragmentStack.Count - 1);
                return(new FragmentPopOperation <TViewModel>(this)
                {
                    FragmentStacksToPop =
                    {
                        fragmentInnerStack
                    }
                });
            }

            throw new InvalidOperationException("Specific pop operation on unsupported child type");
        }
Exemplo n.º 3
0
 public override PopOperation AsPopOperation()
 {
     FragmentStack.Clear();
     //TODO: do we really want to finish the activity if it's the last one of the app ?
     return(new ActivityPopOperation <TViewModel>(this));
 }