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 60e1a6b..d9b34dd 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 @@ -896,4 +896,11 @@ public class EditMonsterViewModel extends ViewModel { public List getSkillsArray() { return mSkills.getValue(); } + + public void addNewSkill() { + Skill newSkill = new Skill("Unnamed Skill", AbilityScore.DEXTERITY); + ArrayList newSkills = new ArrayList<>(mSkills.getValue()); + newSkills.add(newSkill); + 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 30848d1..684331e 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 @@ -3,9 +3,13 @@ package com.majinnaibu.monstercards.ui.editmonster; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; import androidx.navigation.NavBackStackEntry; @@ -31,6 +35,7 @@ public class EditSkillsFragment extends Fragment { NavController navController = Navigation.findNavController(requireActivity(), R.id.nav_host_fragment); NavBackStackEntry backStackEntry = navController.getBackStackEntry(R.id.edit_monster_navigation); mViewModel = new ViewModelProvider(backStackEntry).get(EditMonsterViewModel.class); + setHasOptionsMenu(true); // Set the adapter if (view instanceof RecyclerView) { @@ -42,4 +47,24 @@ public class EditSkillsFragment extends Fragment { return view; } -} \ No newline at end of file + + @Override + public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) { + inflater.inflate(R.menu.edit_skills_menu, menu); + super.onCreateOptionsMenu(menu, inflater); + } + + @Override + public boolean onOptionsItemSelected(@NonNull MenuItem item) { + if (item.getItemId() == R.id.menu_action_add_skill) { + 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); + return true; + } + return super.onOptionsItemSelected(item); + } +} diff --git a/app/src/main/res/drawable/ic_add_24.xml b/app/src/main/res/drawable/ic_add_24.xml new file mode 100644 index 0000000..eb23254 --- /dev/null +++ b/app/src/main/res/drawable/ic_add_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/menu/edit_skills_menu.xml b/app/src/main/res/menu/edit_skills_menu.xml new file mode 100644 index 0000000..5f8d907 --- /dev/null +++ b/app/src/main/res/menu/edit_skills_menu.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ad74cda..c1c0db3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,5 +1,6 @@ Add monster + Add Skill Edit Actions MonsterCards