Adds "New Skill" button.

This commit is contained in:
2021-06-10 23:45:04 -07:00
committed by Tom Hicks
parent 68348b18c2
commit 7f31d98d7e
3 changed files with 34 additions and 1 deletions

View File

@@ -896,4 +896,11 @@ public class EditMonsterViewModel extends ViewModel {
public List<Skill> getSkillsArray() { public List<Skill> getSkillsArray() {
return mSkills.getValue(); return mSkills.getValue();
} }
public void addNewSkill() {
Skill newSkill = new Skill("Unnamed Skill", AbilityScore.DEXTERITY);
ArrayList<Skill> newSkills = new ArrayList<>(mSkills.getValue());
newSkills.add(newSkill);
mSkills.setValue(newSkills);
}
} }

View File

@@ -3,9 +3,13 @@ package com.majinnaibu.monstercards.ui.editmonster;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.NavBackStackEntry; import androidx.navigation.NavBackStackEntry;
@@ -31,6 +35,7 @@ public class EditSkillsFragment extends Fragment {
NavController navController = Navigation.findNavController(requireActivity(), R.id.nav_host_fragment); NavController navController = Navigation.findNavController(requireActivity(), R.id.nav_host_fragment);
NavBackStackEntry backStackEntry = navController.getBackStackEntry(R.id.edit_monster_navigation); NavBackStackEntry backStackEntry = navController.getBackStackEntry(R.id.edit_monster_navigation);
mViewModel = new ViewModelProvider(backStackEntry).get(EditMonsterViewModel.class); mViewModel = new ViewModelProvider(backStackEntry).get(EditMonsterViewModel.class);
setHasOptionsMenu(true);
// Set the adapter // Set the adapter
if (view instanceof RecyclerView) { if (view instanceof RecyclerView) {
@@ -42,4 +47,24 @@ public class EditSkillsFragment extends Fragment {
return view; return view;
} }
@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);
}
} }

View File

@@ -1,5 +1,6 @@
<resources> <resources>
<string name="action_add_monster">Add monster</string> <string name="action_add_monster">Add monster</string>
<string name="action_add_skill">Add Skill</string>
<string name="action_edit">Edit</string> <string name="action_edit">Edit</string>
<string name="actions_label">Actions</string> <string name="actions_label">Actions</string>
<string name="app_name">MonsterCards</string> <string name="app_name">MonsterCards</string>