From 547b20292f2fee78f2b62b0ce2284dc5bd89c765 Mon Sep 17 00:00:00 2001 From: Tom Hicks Date: Sun, 20 Jun 2021 00:49:41 -0700 Subject: [PATCH] Adds stubbed out method to navigate to the edit skill fragment. Adds a click handler to the edit skills recycler view adapter. Makes tapping a skill in the edit skills view navigate to the editor for that skill. Makes adding a new skill immediately edit the skill. --- .../ui/editmonster/EditSkillsFragment.java | 22 +++++++++++++------ .../EditSkillsRecyclerViewAdapter.java | 9 +++++++- 2 files changed, 23 insertions(+), 8 deletions(-) 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 fac3340..ab8a03f 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 @@ -19,7 +19,9 @@ import androidx.recyclerview.widget.RecyclerView; import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.majinnaibu.monstercards.R; +import com.majinnaibu.monstercards.models.Skill; import com.majinnaibu.monstercards.ui.shared.SwipeToDeleteCallback; +import com.majinnaibu.monstercards.utils.Logger; /** * A fragment representing a list of Items. @@ -29,6 +31,10 @@ public class EditSkillsFragment extends Fragment { private EditMonsterViewModel mViewModel; private ViewHolder mHolder; + private void navigateToEditSkill(Skill skill) { + Logger.logUnimplementedFeature("Navigate to the edit skill fragment."); + } + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -51,7 +57,13 @@ public class EditSkillsFragment extends Fragment { recyclerView.setLayoutManager(layoutManager); mViewModel.getSkills().observe(getViewLifecycleOwner(), skills -> { - EditSkillsRecyclerViewAdapter adapter = new EditSkillsRecyclerViewAdapter(mViewModel.getSkillsArray(), null); + EditSkillsRecyclerViewAdapter adapter = new EditSkillsRecyclerViewAdapter(mViewModel.getSkillsArray(), skill -> { + if (skill != null) { + navigateToEditSkill(skill); + } else { + Logger.logError("Can't navigate to EditSkill with a null skill"); + } + }, null); recyclerView.setAdapter(adapter); }); @@ -64,12 +76,8 @@ public class EditSkillsFragment extends Fragment { private void setupAddSkillButton(@NonNull FloatingActionButton fab) { fab.setOnClickListener(view -> { - mViewModel.addNewSkill(); - // TODO: navigate to editing the new skill -// NavDirections action = MonsterDetailFragmentDirections.actionNavigationMonsterToEditMonsterFragment(monsterDetailViewModel.getId().getValue().toString()); -// View view = getView(); -// assert view != null; -// Navigation.findNavController(view).navigate(action); + Skill newSkill = mViewModel.addNewSkill(); + navigateToEditSkill(newSkill); }); } 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 5f6773d..b85f1ce 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 @@ -17,9 +17,11 @@ import java.util.List; public class EditSkillsRecyclerViewAdapter extends RecyclerView.Adapter { private final List mValues; private final ItemCallback mOnDelete; + private final ItemCallback mOnClick; - public EditSkillsRecyclerViewAdapter(List items, ItemCallback onDelete) { + public EditSkillsRecyclerViewAdapter(List items, ItemCallback onClick, ItemCallback onDelete) { mValues = items; + mOnClick = onClick; mOnDelete = onDelete; } @@ -32,6 +34,11 @@ public class EditSkillsRecyclerViewAdapter extends RecyclerView.Adapter { + if (mOnClick != null) { + mOnClick.onItemCallback(holder.mItem); + } + }); } @Override