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.
This commit is contained in:
@@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -17,9 +17,11 @@ import java.util.List;
|
||||
public class EditSkillsRecyclerViewAdapter extends RecyclerView.Adapter<EditSkillsRecyclerViewAdapter.ViewHolder> {
|
||||
private final List<Skill> mValues;
|
||||
private final ItemCallback mOnDelete;
|
||||
private final ItemCallback mOnClick;
|
||||
|
||||
public EditSkillsRecyclerViewAdapter(List<Skill> items, ItemCallback onDelete) {
|
||||
public EditSkillsRecyclerViewAdapter(List<Skill> items, ItemCallback onClick, ItemCallback onDelete) {
|
||||
mValues = items;
|
||||
mOnClick = onClick;
|
||||
mOnDelete = onDelete;
|
||||
}
|
||||
|
||||
@@ -32,6 +34,11 @@ public class EditSkillsRecyclerViewAdapter extends RecyclerView.Adapter<EditSkil
|
||||
public void onBindViewHolder(final ViewHolder holder, int position) {
|
||||
holder.mItem = mValues.get(position);
|
||||
holder.mContentView.setText(mValues.get(position).name);
|
||||
holder.itemView.setOnClickListener(v -> {
|
||||
if (mOnClick != null) {
|
||||
mOnClick.onItemCallback(holder.mItem);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user