From 463311b94974aaea2816554b52661b5b46abda53 Mon Sep 17 00:00:00 2001 From: Tom Hicks Date: Sat, 12 Jun 2021 22:16:16 -0700 Subject: [PATCH] Adds ability to remove a skill. --- .../ui/editmonster/EditMonsterViewModel.java | 6 ++++++ .../ui/editmonster/EditSkillsFragment.java | 5 +++++ .../EditSkillsRecyclerViewAdapter.java | 15 ++++++++++++++- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditMonsterViewModel.java b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditMonsterViewModel.java index 8f7540b..8493b70 100644 --- a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditMonsterViewModel.java +++ b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditMonsterViewModel.java @@ -903,6 +903,12 @@ public class EditMonsterViewModel extends ViewModel { newSkills.add(newSkill); Collections.sort(newSkills, (skill1, skill2) -> skill1.name.compareToIgnoreCase(skill2.name)); mSkills.setValue(newSkills); + } + + public void removeSkill(int position) { + List skills = mSkills.getValue(); + ArrayList newSkills = new ArrayList<>(skills); + newSkills.remove(position); mSkills.setValue(newSkills); } } diff --git a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSkillsFragment.java b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSkillsFragment.java index 797bde8..9d01145 100644 --- a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSkillsFragment.java +++ b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSkillsFragment.java @@ -13,11 +13,13 @@ import androidx.navigation.NavBackStackEntry; import androidx.navigation.NavController; import androidx.navigation.Navigation; import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.ItemTouchHelper; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.majinnaibu.monstercards.R; +import com.majinnaibu.monstercards.ui.shared.SwipeToDeleteCallback; /** * A fragment representing a list of Items. @@ -54,6 +56,9 @@ public class EditSkillsFragment extends Fragment { DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(context, layoutManager.getOrientation()); recyclerView.addItemDecoration(dividerItemDecoration); + + ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new SwipeToDeleteCallback(context, mViewModel::removeSkill)); + itemTouchHelper.attachToRecyclerView(recyclerView); } private void setupAddSkillButton(@NonNull FloatingActionButton fab) { diff --git a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSkillsRecyclerViewAdapter.java b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSkillsRecyclerViewAdapter.java index 32f891b..5f6773d 100644 --- a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSkillsRecyclerViewAdapter.java +++ b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSkillsRecyclerViewAdapter.java @@ -16,9 +16,11 @@ import java.util.List; */ public class EditSkillsRecyclerViewAdapter extends RecyclerView.Adapter { private final List mValues; + private final ItemCallback mOnDelete; - public EditSkillsRecyclerViewAdapter(List items) { + public EditSkillsRecyclerViewAdapter(List items, ItemCallback onDelete) { mValues = items; + mOnDelete = onDelete; } @Override @@ -37,6 +39,17 @@ public class EditSkillsRecyclerViewAdapter extends RecyclerView.Adapter