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); }
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(); }
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; }
private void ReactOnChangeItemThatRemovedOnlyFromRoot(int position) { if (ViewModel.InTopRoot) { ViewModel.Refresh(); QuestsAdapter.NotifyItemRemoved(position); QuestsAdapter.NotifyItemRangeChanged(position, QuestsAdapter.ItemCount); } else { QuestsAdapter.NotifyItemChanged(position); } }
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; }