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