Пример #1
0
        private async void StartHandler(int itemPosition)
        {
            await ViewModel.StartQuest(itemPosition);

            //Staring quest won't removing it from sequence, so we just notifying adapter about changes.
            QuestsAdapter.NotifyItemChanged(itemPosition);
        }
Пример #2
0
        private async void StartHandler(int itemPosition)
        {
            ViewModel.IsBusy = true;
            await ViewModel.StartQuest(itemPosition);

            ViewModel.Refresh();
            QuestsAdapter.NotifyItemRemoved(itemPosition);
            QuestsAdapter.NotifyItemRangeChanged(itemPosition, QuestsAdapter.ItemCount);
            ViewModel.IsBusy = false;
        }
        /// <summary>
        /// Handles deleting quest from list.
        /// </summary>
        /// <param name="position"></param>
        protected virtual async void DeleteHandler(int position)
        {
            ViewModel.IsBusy = true;
            await ViewModel.DeleteQuest(position);

            ViewModel.Refresh();
            QuestsAdapter.NotifyItemRemoved(position);
            QuestsAdapter.NotifyItemRangeChanged(position, QuestsAdapter.ItemCount);
            ViewModel.IsBusy = false;
            Toast.MakeText(this.Context, $"Quest in {position} position was deleted.", ToastLength.Short).Show();
        }
Пример #4
0
        private async void RestartHandler(int position)
        {
            ViewModel.IsBusy = true;
            await ViewModel.RestartQuest(position);

            ViewModel.Refresh();
            //Only top level quests can be restarted, so they will be removed from Result category.
            QuestsAdapter.NotifyItemRemoved(position);
            QuestsAdapter.NotifyItemRangeChanged(position, QuestsAdapter.ItemCount);
            //RedrawQuests();
            ViewModel.IsBusy = false;
        }
Пример #5
0
 private void ReactOnChangeItemThatRemovedOnlyFromRoot(int position)
 {
     if (ViewModel.InTopRoot)
     {
         ViewModel.Refresh();
         QuestsAdapter.NotifyItemRemoved(position);
         QuestsAdapter.NotifyItemRangeChanged(position, QuestsAdapter.ItemCount);
     }
     else
     {
         QuestsAdapter.NotifyItemChanged(position);
     }
 }
Пример #6
0
        protected override async void DeleteHandler(int position)
        {
            ViewModel.IsBusy = true;
            await ViewModel.DeleteQuest(position);

            ViewModel.Refresh();
            QuestsAdapter.NotifyItemRemoved(position);
            QuestsAdapter.NotifyItemRangeChanged(position, QuestsAdapter.ItemCount);
            while (ViewModel.IsRootHasState(State.Failed) || ViewModel.IsRootHasState(State.Done))
            {
                TraverseToParent();
            }
            ViewModel.IsBusy = false;
        }