From a2798ddc82484ec69fb78c8a4026b7e756674a05 Mon Sep 17 00:00:00 2001 From: Tom Hicks Date: Fri, 25 Jun 2021 20:28:25 -0700 Subject: [PATCH] Replaces condition immunities, damage immunities, damage resistances, damage vulnerabilities, and senses with a unified list of strings editor. --- .../EditConditionImmunitiesFragment.java | 93 ------------- ...onditionImmunitiesRecyclerViewAdapter.java | 68 ---------- .../EditConditionImmunityFragment.java | 74 ---------- .../EditDamageImmunitiesFragment.java | 90 ------------- ...itDamageImmunitiesRecyclerViewAdapter.java | 71 ---------- .../EditDamageImmunityFragment.java | 76 ----------- .../EditDamageResistanceFragment.java | 76 ----------- .../EditDamageResistancesFragment.java | 90 ------------- ...tDamageResistancesRecyclerViewAdapter.java | 69 ---------- .../EditDamageVulnerabilitiesFragment.java | 90 ------------- ...ageVulnerabilitiesRecyclerViewAdapter.java | 69 ---------- .../EditDamageVulnerabilityFragment.java | 76 ----------- .../ui/editmonster/EditMonsterFragment.java | 11 +- .../ui/editmonster/EditMonsterViewModel.java | 92 ++++++++++++- .../ui/editmonster/EditSenseFragment.java | 76 ----------- .../ui/editmonster/EditSensesFragment.java | 90 ------------- .../EditSensesRecyclerViewAdapter.java | 69 ---------- .../ui/editmonster/EditStringFragment.java | 31 +---- .../ui/editmonster/EditStringsFragment.java | 30 +---- .../EditStringsRecyclerViewAdapter.java | 13 +- .../ui/editmonster/EditTraitFragment.java | 1 - ...ragment_edit_condition_immunities_list.xml | 33 ----- ...nt_edit_condition_immunities_list_item.xml | 13 -- .../fragment_edit_condition_immunity.xml | 18 --- .../fragment_edit_damage_immunities_list.xml | 33 ----- ...gment_edit_damage_immunities_list_item.xml | 13 -- .../layout/fragment_edit_damage_immunity.xml | 17 --- .../fragment_edit_damage_resistance.xml | 17 --- .../fragment_edit_damage_resistances_list.xml | 33 ----- ...ment_edit_damage_resistances_list_item.xml | 13 -- ...gment_edit_damage_vulnerabilities_list.xml | 33 ----- ..._edit_damage_vulnerabilities_list_item.xml | 13 -- .../fragment_edit_damage_vulnerability.xml | 17 --- .../main/res/layout/fragment_edit_sense.xml | 17 --- .../res/layout/fragment_edit_senses_list.xml | 33 ----- .../layout/fragment_edit_senses_list_item.xml | 13 -- .../main/res/layout/fragment_edit_string.xml | 24 ++-- .../fragment_edit_strings_list_item.xml | 2 +- .../main/res/layout/fragment_edit_trait.xml | 3 +- .../res/layout/fragment_edit_traits_list.xml | 4 +- .../main/res/navigation/mobile_navigation.xml | 126 ++++-------------- Android/app/src/main/res/values/strings.xml | 1 + 42 files changed, 154 insertions(+), 1677 deletions(-) delete mode 100644 Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditConditionImmunitiesFragment.java delete mode 100644 Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditConditionImmunitiesRecyclerViewAdapter.java delete mode 100644 Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditConditionImmunityFragment.java delete mode 100644 Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageImmunitiesFragment.java delete mode 100644 Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageImmunitiesRecyclerViewAdapter.java delete mode 100644 Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageImmunityFragment.java delete mode 100644 Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageResistanceFragment.java delete mode 100644 Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageResistancesFragment.java delete mode 100644 Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageResistancesRecyclerViewAdapter.java delete mode 100644 Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageVulnerabilitiesFragment.java delete mode 100644 Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageVulnerabilitiesRecyclerViewAdapter.java delete mode 100644 Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageVulnerabilityFragment.java delete mode 100644 Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSenseFragment.java delete mode 100644 Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSensesFragment.java delete mode 100644 Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSensesRecyclerViewAdapter.java delete mode 100644 Android/app/src/main/res/layout/fragment_edit_condition_immunities_list.xml delete mode 100644 Android/app/src/main/res/layout/fragment_edit_condition_immunities_list_item.xml delete mode 100644 Android/app/src/main/res/layout/fragment_edit_condition_immunity.xml delete mode 100644 Android/app/src/main/res/layout/fragment_edit_damage_immunities_list.xml delete mode 100644 Android/app/src/main/res/layout/fragment_edit_damage_immunities_list_item.xml delete mode 100644 Android/app/src/main/res/layout/fragment_edit_damage_immunity.xml delete mode 100644 Android/app/src/main/res/layout/fragment_edit_damage_resistance.xml delete mode 100644 Android/app/src/main/res/layout/fragment_edit_damage_resistances_list.xml delete mode 100644 Android/app/src/main/res/layout/fragment_edit_damage_resistances_list_item.xml delete mode 100644 Android/app/src/main/res/layout/fragment_edit_damage_vulnerabilities_list.xml delete mode 100644 Android/app/src/main/res/layout/fragment_edit_damage_vulnerabilities_list_item.xml delete mode 100644 Android/app/src/main/res/layout/fragment_edit_damage_vulnerability.xml delete mode 100644 Android/app/src/main/res/layout/fragment_edit_sense.xml delete mode 100644 Android/app/src/main/res/layout/fragment_edit_senses_list.xml delete mode 100644 Android/app/src/main/res/layout/fragment_edit_senses_list_item.xml diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditConditionImmunitiesFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditConditionImmunitiesFragment.java deleted file mode 100644 index ceb4b03..0000000 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditConditionImmunitiesFragment.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.majinnaibu.monstercards.ui.editmonster; - -import android.content.Context; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.lifecycle.ViewModelProvider; -import androidx.navigation.NavBackStackEntry; -import androidx.navigation.NavController; -import androidx.navigation.NavDirections; -import androidx.navigation.Navigation; -import androidx.recyclerview.widget.DividerItemDecoration; -import androidx.recyclerview.widget.ItemTouchHelper; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.google.android.material.floatingactionbutton.FloatingActionButton; -import com.majinnaibu.monstercards.R; -import com.majinnaibu.monstercards.ui.shared.MCFragment; -import com.majinnaibu.monstercards.ui.shared.SwipeToDeleteCallback; -import com.majinnaibu.monstercards.utils.Logger; - -import org.jetbrains.annotations.NotNull; - -/** - * A fragment representing a list of Items. - */ -public class EditConditionImmunitiesFragment extends MCFragment { - private EditMonsterViewModel mViewModel; - private ViewHolder mHolder; - - private void navigateToEditConditionImmunity(String condition) { - NavDirections action = EditConditionImmunitiesFragmentDirections.actionEditConditionImmunitiesFragmentToEditConditionImmunity(condition); - Navigation.findNavController(requireView()).navigate(action); - } - - @Nullable - @Override - public View onCreateView(@NonNull @NotNull LayoutInflater inflater, @Nullable @org.jetbrains.annotations.Nullable ViewGroup container, @Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) { - 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); - View root = inflater.inflate(R.layout.fragment_edit_condition_immunities_list, container, false); - mHolder = new ViewHolder(root); - setupRecyclerView(mHolder.list); - setupAddConditionImmunityButton(mHolder.addConditionImmunity); - return root; - } - - private void setupRecyclerView(@NonNull RecyclerView recyclerView) { - Context context = requireContext(); - LinearLayoutManager layoutManager = new LinearLayoutManager(context); - recyclerView.setLayoutManager(layoutManager); - - mViewModel.getConditionImmunities().observe(getViewLifecycleOwner(), conditionImmunities -> { - EditConditionImmunitiesRecyclerViewAdapter adapter = new EditConditionImmunitiesRecyclerViewAdapter(mViewModel.getConditionImmunitiesArray(), condition -> { - if (condition != null) { - navigateToEditConditionImmunity(condition); - } else { - Logger.logError("Can't navigate to EditConditionImmunityFragment with a null condition"); - } - }); - recyclerView.setAdapter(adapter); - }); - - DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(context, layoutManager.getOrientation()); - recyclerView.addItemDecoration(dividerItemDecoration); - - ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new SwipeToDeleteCallback(context, mViewModel::removeConditionImmunity)); - itemTouchHelper.attachToRecyclerView(recyclerView); - } - - private void setupAddConditionImmunityButton(@NonNull FloatingActionButton fab) { - fab.setOnClickListener(view -> { - String condition = mViewModel.addNewConditionImmunity(); - navigateToEditConditionImmunity(condition); - }); - } - - private static class ViewHolder { - RecyclerView list; - FloatingActionButton addConditionImmunity; - - ViewHolder(View root) { - list = root.findViewById(R.id.list); - addConditionImmunity = root.findViewById(R.id.add_condition_immunity); - } - } -} diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditConditionImmunitiesRecyclerViewAdapter.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditConditionImmunitiesRecyclerViewAdapter.java deleted file mode 100644 index a0cc370..0000000 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditConditionImmunitiesRecyclerViewAdapter.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.majinnaibu.monstercards.ui.editmonster; - -import android.view.LayoutInflater; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.recyclerview.widget.RecyclerView; - -import com.majinnaibu.monstercards.databinding.FragmentEditConditionImmunitiesListItemBinding; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -/** - * {@link RecyclerView.Adapter} that can display a {@link String}. - */ -public class EditConditionImmunitiesRecyclerViewAdapter extends RecyclerView.Adapter { - private final List mValues; - private final ItemCallback mOnClick; - - public EditConditionImmunitiesRecyclerViewAdapter(List items, ItemCallback onClick) { - mValues = items; - mOnClick = onClick; - } - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NotNull ViewGroup parent, int viewType) { - return new ViewHolder(FragmentEditConditionImmunitiesListItemBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false)); - } - - @Override - public void onBindViewHolder(final ViewHolder holder, int position) { - holder.mItem = mValues.get(position); - holder.mContentView.setText(mValues.get(position)); - holder.itemView.setOnClickListener(v -> { - if (mOnClick != null) { - mOnClick.onItemCallback(holder.mItem); - } - }); - } - - @Override - public int getItemCount() { - return mValues.size(); - } - - public interface ItemCallback { - void onItemCallback(String condition); - } - - public static class ViewHolder extends RecyclerView.ViewHolder { - public final TextView mContentView; - public String mItem; - - public ViewHolder(FragmentEditConditionImmunitiesListItemBinding binding) { - super(binding.getRoot()); - mContentView = binding.content; - } - - @NotNull - @Override - public String toString() { - return super.toString() + " '" + mContentView.getText() + "'"; - } - } -} \ No newline at end of file diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditConditionImmunityFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditConditionImmunityFragment.java deleted file mode 100644 index 7bbdc07..0000000 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditConditionImmunityFragment.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.majinnaibu.monstercards.ui.editmonster; - -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.EditText; - -import androidx.activity.OnBackPressedCallback; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.lifecycle.ViewModelProvider; -import androidx.navigation.NavBackStackEntry; -import androidx.navigation.NavController; -import androidx.navigation.Navigation; - -import com.majinnaibu.monstercards.R; -import com.majinnaibu.monstercards.ui.shared.MCFragment; -import com.majinnaibu.monstercards.utils.Logger; -import com.majinnaibu.monstercards.utils.TextChangedListener; - -public class EditConditionImmunityFragment extends MCFragment { - private EditMonsterViewModel mEditMonsterViewModel; - private EditStringViewModel mViewModel; - private ViewHolder mHolder; - private String mOldValue; - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - mViewModel = new ViewModelProvider(this).get(EditStringViewModel.class); - if (getArguments() != null) { - EditConditionImmunityFragmentArgs args = EditConditionImmunityFragmentArgs.fromBundle(getArguments()); - mOldValue = args.getCondition(); - mViewModel.resetValue(mOldValue); - } else { - Logger.logWTF("EditConditionImmunityFragment needs arguments"); - mOldValue = null; - } - - super.onCreate(savedInstanceState); - } - - @Override - public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, - @Nullable Bundle savedInstanceState) { - NavController navController = Navigation.findNavController(requireActivity(), R.id.nav_host_fragment); - NavBackStackEntry backStackEntry = navController.getBackStackEntry(R.id.edit_monster_navigation); - mEditMonsterViewModel = new ViewModelProvider(backStackEntry).get(EditMonsterViewModel.class); - View root = inflater.inflate(R.layout.fragment_edit_condition_immunity, container, false); - mHolder = new ViewHolder(root); - mHolder.description.setText(mViewModel.getValueAsString()); - mHolder.description.addTextChangedListener(new TextChangedListener((TextChangedListener.OnTextChangedCallback) (s, start, before, count) -> mViewModel.setValue(s.toString()))); - - requireActivity().getOnBackPressedDispatcher().addCallback(getViewLifecycleOwner(), new OnBackPressedCallback(true) { - @Override - public void handleOnBackPressed() { - if (mViewModel.hasChanges()) { - mEditMonsterViewModel.replaceConditionImmunity(mOldValue, mViewModel.getValueAsString()); - } - Navigation.findNavController(requireView()).navigateUp(); - } - }); - - return root; - } - - private static class ViewHolder { - EditText description; - - ViewHolder(View root) { - description = root.findViewById(R.id.description); - } - } -} diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageImmunitiesFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageImmunitiesFragment.java deleted file mode 100644 index 379aaf7..0000000 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageImmunitiesFragment.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.majinnaibu.monstercards.ui.editmonster; - -import android.content.Context; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import androidx.annotation.NonNull; -import androidx.lifecycle.ViewModelProvider; -import androidx.navigation.NavBackStackEntry; -import androidx.navigation.NavController; -import androidx.navigation.NavDirections; -import androidx.navigation.Navigation; -import androidx.recyclerview.widget.DividerItemDecoration; -import androidx.recyclerview.widget.ItemTouchHelper; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.google.android.material.floatingactionbutton.FloatingActionButton; -import com.majinnaibu.monstercards.R; -import com.majinnaibu.monstercards.ui.shared.MCFragment; -import com.majinnaibu.monstercards.ui.shared.SwipeToDeleteCallback; -import com.majinnaibu.monstercards.utils.Logger; - -/** - * A fragment representing a list of Items. - */ -public class EditDamageImmunitiesFragment extends MCFragment { - private EditMonsterViewModel mViewModel; - private ViewHolder mHolder; - - private void navigateToEditDamageImmunity(String damageImmunity) { - NavDirections action = EditDamageImmunitiesFragmentDirections.actionEditDamageImmunitiesFragmentToEditDamageImmunityFragment(damageImmunity); - Navigation.findNavController(requireView()).navigate(action); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - 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); - View root = inflater.inflate(R.layout.fragment_edit_damage_immunities_list, container, false); - mHolder = new ViewHolder(root); - setupRecyclerView(mHolder.list); - setupAddDamageImmunityButton(mHolder.addDamageImmunity); - return root; - } - - private void setupRecyclerView(@NonNull RecyclerView recyclerView) { - Context context = requireContext(); - LinearLayoutManager layoutManager = new LinearLayoutManager(context); - recyclerView.setLayoutManager(layoutManager); - - mViewModel.getDamageImmunities().observe(getViewLifecycleOwner(), damageImmunities -> { - EditDamageImmunitiesRecyclerViewAdapter adapter = new EditDamageImmunitiesRecyclerViewAdapter(mViewModel.getDamageImmunitiesArray(), damageImmunity -> { - if (damageImmunity != null) { - navigateToEditDamageImmunity(damageImmunity); - } else { - Logger.logError("Can't navigate to EditDamageImmunity with a null damageImmunity"); - } - }); - recyclerView.setAdapter(adapter); - }); - - DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(context, layoutManager.getOrientation()); - recyclerView.addItemDecoration(dividerItemDecoration); - - ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new SwipeToDeleteCallback(context, mViewModel::removeDamageImmunity)); - itemTouchHelper.attachToRecyclerView(recyclerView); - } - - private void setupAddDamageImmunityButton(@NonNull FloatingActionButton fab) { - fab.setOnClickListener(view -> { - String newDamageImmunity = mViewModel.addNewDamageImmunity(); - navigateToEditDamageImmunity(newDamageImmunity); - }); - } - - private static class ViewHolder { - RecyclerView list; - FloatingActionButton addDamageImmunity; - - ViewHolder(View root) { - list = root.findViewById(R.id.list); - addDamageImmunity = root.findViewById(R.id.add_damage_type); - } - } -} \ No newline at end of file diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageImmunitiesRecyclerViewAdapter.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageImmunitiesRecyclerViewAdapter.java deleted file mode 100644 index 018705c..0000000 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageImmunitiesRecyclerViewAdapter.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.majinnaibu.monstercards.ui.editmonster; - -import android.view.LayoutInflater; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.recyclerview.widget.RecyclerView; - -import com.majinnaibu.monstercards.databinding.FragmentEditDamageImmunitiesListItemBinding; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -/** - * x - * {@link RecyclerView.Adapter} that can display a {@link String}. - */ -public class EditDamageImmunitiesRecyclerViewAdapter extends RecyclerView.Adapter { - private final List mValues; - private final ItemCallback mOnClick; - - public EditDamageImmunitiesRecyclerViewAdapter(List items, ItemCallback onClick) { - mValues = items; - mOnClick = onClick; - } - - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NotNull ViewGroup parent, int viewType) { - return new ViewHolder(FragmentEditDamageImmunitiesListItemBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false)); - } - - @Override - public void onBindViewHolder(final ViewHolder holder, int position) { - holder.mItem = mValues.get(position); - holder.mContentView.setText(mValues.get(position)); - holder.itemView.setOnClickListener(v -> { - if (mOnClick != null) { - mOnClick.onItemCallback(holder.mItem); - } - }); - } - - @Override - public int getItemCount() { - return mValues.size(); - } - - public interface ItemCallback { - void onItemCallback(String sense); - } - - public static class ViewHolder extends RecyclerView.ViewHolder { - public final TextView mContentView; - public String mItem; - - public ViewHolder(FragmentEditDamageImmunitiesListItemBinding binding) { - super(binding.getRoot()); - mContentView = binding.content; - } - - - @NotNull - @Override - public String toString() { - return super.toString() + " '" + mContentView.getText() + "'"; - } - } -} diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageImmunityFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageImmunityFragment.java deleted file mode 100644 index e10a2b8..0000000 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageImmunityFragment.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.majinnaibu.monstercards.ui.editmonster; - -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.EditText; - -import androidx.activity.OnBackPressedCallback; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.lifecycle.ViewModelProvider; -import androidx.navigation.NavBackStackEntry; -import androidx.navigation.NavController; -import androidx.navigation.Navigation; - -import com.majinnaibu.monstercards.R; -import com.majinnaibu.monstercards.ui.shared.MCFragment; -import com.majinnaibu.monstercards.utils.Logger; -import com.majinnaibu.monstercards.utils.TextChangedListener; - -public class EditDamageImmunityFragment extends MCFragment { - private EditMonsterViewModel mEditMonsterViewModel; - private EditStringViewModel mViewModel; - private EditDamageImmunityFragment.ViewHolder mHolder; - private String mOldDamageImmunity; - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - mViewModel = new ViewModelProvider(this).get(EditStringViewModel.class); - if (getArguments() != null) { - EditDamageImmunityFragmentArgs args = EditDamageImmunityFragmentArgs.fromBundle(getArguments()); - mOldDamageImmunity = args.getDamageType(); - mViewModel.resetValue(mOldDamageImmunity); - } else { - Logger.logWTF("EditDamageImmunityFragment needs arguments"); - mOldDamageImmunity = null; - } - super.onCreate(savedInstanceState); - } - - @Override - public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, - @Nullable Bundle savedInstanceState) { - NavController navController = Navigation.findNavController(requireActivity(), R.id.nav_host_fragment); - NavBackStackEntry backStackEntry = navController.getBackStackEntry(R.id.edit_monster_navigation); - mEditMonsterViewModel = new ViewModelProvider(backStackEntry).get(EditMonsterViewModel.class); - - View root = inflater.inflate(R.layout.fragment_edit_damage_immunity, container, false); - - mHolder = new EditDamageImmunityFragment.ViewHolder(root); - - mHolder.value.setText(mViewModel.getValueAsString()); - mHolder.value.addTextChangedListener(new TextChangedListener((TextChangedListener.OnTextChangedCallback) (s, start, before, count) -> mViewModel.setValue(s.toString()))); - - requireActivity().getOnBackPressedDispatcher().addCallback(getViewLifecycleOwner(), new OnBackPressedCallback(true) { - @Override - public void handleOnBackPressed() { - if (mViewModel.hasChanges()) { - mEditMonsterViewModel.replaceDamageImmunity(mOldDamageImmunity, mViewModel.getValueAsString()); - } - Navigation.findNavController(requireView()).navigateUp(); - } - }); - - return root; - } - - private static class ViewHolder { - EditText value; - - ViewHolder(View root) { - value = root.findViewById(R.id.value); - } - } -} diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageResistanceFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageResistanceFragment.java deleted file mode 100644 index 59982ae..0000000 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageResistanceFragment.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.majinnaibu.monstercards.ui.editmonster; - -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.EditText; - -import androidx.activity.OnBackPressedCallback; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.lifecycle.ViewModelProvider; -import androidx.navigation.NavBackStackEntry; -import androidx.navigation.NavController; -import androidx.navigation.Navigation; - -import com.majinnaibu.monstercards.R; -import com.majinnaibu.monstercards.ui.shared.MCFragment; -import com.majinnaibu.monstercards.utils.Logger; -import com.majinnaibu.monstercards.utils.TextChangedListener; - -public class EditDamageResistanceFragment extends MCFragment { - private EditMonsterViewModel mEditMonsterViewModel; - private EditStringViewModel mViewModel; - private EditDamageResistanceFragment.ViewHolder mHolder; - private String mOldDamageResistance; - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - mViewModel = new ViewModelProvider(this).get(EditStringViewModel.class); - if (getArguments() != null) { - EditDamageResistanceFragmentArgs args = EditDamageResistanceFragmentArgs.fromBundle(getArguments()); - mOldDamageResistance = args.getDamageType(); - mViewModel.resetValue(mOldDamageResistance); - } else { - Logger.logWTF("EditDamageResistanceFragment needs arguments"); - mOldDamageResistance = null; - } - super.onCreate(savedInstanceState); - } - - @Override - public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, - @Nullable Bundle savedInstanceState) { - NavController navController = Navigation.findNavController(requireActivity(), R.id.nav_host_fragment); - NavBackStackEntry backStackEntry = navController.getBackStackEntry(R.id.edit_monster_navigation); - mEditMonsterViewModel = new ViewModelProvider(backStackEntry).get(EditMonsterViewModel.class); - - View root = inflater.inflate(R.layout.fragment_edit_damage_resistance, container, false); - - mHolder = new EditDamageResistanceFragment.ViewHolder(root); - - mHolder.value.setText(mViewModel.getValueAsString()); - mHolder.value.addTextChangedListener(new TextChangedListener((TextChangedListener.OnTextChangedCallback) (s, start, before, count) -> mViewModel.setValue(s.toString()))); - - requireActivity().getOnBackPressedDispatcher().addCallback(getViewLifecycleOwner(), new OnBackPressedCallback(true) { - @Override - public void handleOnBackPressed() { - if (mViewModel.hasChanges()) { - mEditMonsterViewModel.replaceDamageResistance(mOldDamageResistance, mViewModel.getValueAsString()); - } - Navigation.findNavController(requireView()).navigateUp(); - } - }); - - return root; - } - - private static class ViewHolder { - EditText value; - - ViewHolder(View root) { - value = root.findViewById(R.id.value); - } - } -} diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageResistancesFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageResistancesFragment.java deleted file mode 100644 index 6fb3bf2..0000000 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageResistancesFragment.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.majinnaibu.monstercards.ui.editmonster; - -import android.content.Context; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import androidx.annotation.NonNull; -import androidx.lifecycle.ViewModelProvider; -import androidx.navigation.NavBackStackEntry; -import androidx.navigation.NavController; -import androidx.navigation.NavDirections; -import androidx.navigation.Navigation; -import androidx.recyclerview.widget.DividerItemDecoration; -import androidx.recyclerview.widget.ItemTouchHelper; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.google.android.material.floatingactionbutton.FloatingActionButton; -import com.majinnaibu.monstercards.R; -import com.majinnaibu.monstercards.ui.shared.MCFragment; -import com.majinnaibu.monstercards.ui.shared.SwipeToDeleteCallback; -import com.majinnaibu.monstercards.utils.Logger; - -/** - * A fragment representing a list of Items. - */ -public class EditDamageResistancesFragment extends MCFragment { - private EditMonsterViewModel mViewModel; - private ViewHolder mHolder; - - private void navigateToEditDamageResistance(String damageResistance) { - NavDirections action = EditDamageResistancesFragmentDirections.actionEditDamageResistancesFragmentToEditDamageResistanceFragment(damageResistance); - Navigation.findNavController(requireView()).navigate(action); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - 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); - View root = inflater.inflate(R.layout.fragment_edit_damage_resistances_list, container, false); - mHolder = new ViewHolder(root); - setupRecyclerView(mHolder.list); - setupAddDamageResistanceButton(mHolder.addDamageResistance); - return root; - } - - private void setupRecyclerView(@NonNull RecyclerView recyclerView) { - Context context = requireContext(); - LinearLayoutManager layoutManager = new LinearLayoutManager(context); - recyclerView.setLayoutManager(layoutManager); - - mViewModel.getDamageResistances().observe(getViewLifecycleOwner(), damageResistances -> { - EditDamageResistancesRecyclerViewAdapter adapter = new EditDamageResistancesRecyclerViewAdapter(mViewModel.getDamageResistancesArray(), damageResistance -> { - if (damageResistance != null) { - navigateToEditDamageResistance(damageResistance); - } else { - Logger.logError("Can't navigate to EditDamageResistance with a null damageResistance"); - } - }); - recyclerView.setAdapter(adapter); - }); - - DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(context, layoutManager.getOrientation()); - recyclerView.addItemDecoration(dividerItemDecoration); - - ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new SwipeToDeleteCallback(context, mViewModel::removeDamageResistance)); - itemTouchHelper.attachToRecyclerView(recyclerView); - } - - private void setupAddDamageResistanceButton(@NonNull FloatingActionButton fab) { - fab.setOnClickListener(view -> { - String newDamageResistance = mViewModel.addNewDamageResistance(); - navigateToEditDamageResistance(newDamageResistance); - }); - } - - private static class ViewHolder { - RecyclerView list; - FloatingActionButton addDamageResistance; - - ViewHolder(View root) { - list = root.findViewById(R.id.list); - addDamageResistance = root.findViewById(R.id.add_damage_type); - } - } -} \ No newline at end of file diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageResistancesRecyclerViewAdapter.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageResistancesRecyclerViewAdapter.java deleted file mode 100644 index c823d20..0000000 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageResistancesRecyclerViewAdapter.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.majinnaibu.monstercards.ui.editmonster; - -import android.view.LayoutInflater; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.recyclerview.widget.RecyclerView; - -import com.majinnaibu.monstercards.databinding.FragmentEditDamageResistancesListItemBinding; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -/** - * x - * {@link RecyclerView.Adapter} that can display a {@link String}. - */ -public class EditDamageResistancesRecyclerViewAdapter extends RecyclerView.Adapter { - private final List mValues; - private final ItemCallback mOnClick; - - public EditDamageResistancesRecyclerViewAdapter(List items, ItemCallback onClick) { - mValues = items; - mOnClick = onClick; - } - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NotNull ViewGroup parent, int viewType) { - return new ViewHolder(FragmentEditDamageResistancesListItemBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false)); - } - - @Override - public void onBindViewHolder(final ViewHolder holder, int position) { - holder.mItem = mValues.get(position); - holder.mContentView.setText(mValues.get(position)); - holder.itemView.setOnClickListener(v -> { - if (mOnClick != null) { - mOnClick.onItemCallback(holder.mItem); - } - }); - } - - @Override - public int getItemCount() { - return mValues.size(); - } - - public interface ItemCallback { - void onItemCallback(String sense); - } - - public static class ViewHolder extends RecyclerView.ViewHolder { - public final TextView mContentView; - public String mItem; - - public ViewHolder(FragmentEditDamageResistancesListItemBinding binding) { - super(binding.getRoot()); - mContentView = binding.content; - } - - @NotNull - @Override - public String toString() { - return super.toString() + " '" + mContentView.getText() + "'"; - } - } -} diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageVulnerabilitiesFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageVulnerabilitiesFragment.java deleted file mode 100644 index 68f854c..0000000 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageVulnerabilitiesFragment.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.majinnaibu.monstercards.ui.editmonster; - -import android.content.Context; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import androidx.annotation.NonNull; -import androidx.lifecycle.ViewModelProvider; -import androidx.navigation.NavBackStackEntry; -import androidx.navigation.NavController; -import androidx.navigation.NavDirections; -import androidx.navigation.Navigation; -import androidx.recyclerview.widget.DividerItemDecoration; -import androidx.recyclerview.widget.ItemTouchHelper; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.google.android.material.floatingactionbutton.FloatingActionButton; -import com.majinnaibu.monstercards.R; -import com.majinnaibu.monstercards.ui.shared.MCFragment; -import com.majinnaibu.monstercards.ui.shared.SwipeToDeleteCallback; -import com.majinnaibu.monstercards.utils.Logger; - -/** - * A fragment representing a list of Items. - */ -public class EditDamageVulnerabilitiesFragment extends MCFragment { - private EditMonsterViewModel mViewModel; - private ViewHolder mHolder; - - private void navigateToEditDamageVulnerability(String damageVulnerability) { - NavDirections action = EditDamageVulnerabilitiesFragmentDirections.actionEditDamageVulnerabilitiesFragmentToEditDamageVulnerabilityFragment(damageVulnerability); - Navigation.findNavController(requireView()).navigate(action); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - 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); - View root = inflater.inflate(R.layout.fragment_edit_damage_vulnerabilities_list, container, false); - mHolder = new ViewHolder(root); - setupRecyclerView(mHolder.list); - setupAddDamageVulnerabilityButton(mHolder.addDamageVulnerability); - return root; - } - - private void setupRecyclerView(@NonNull RecyclerView recyclerView) { - Context context = requireContext(); - LinearLayoutManager layoutManager = new LinearLayoutManager(context); - recyclerView.setLayoutManager(layoutManager); - - mViewModel.getDamageVulnerabilities().observe(getViewLifecycleOwner(), damageVulnerabilities -> { - EditDamageVulnerabilitiesRecyclerViewAdapter adapter = new EditDamageVulnerabilitiesRecyclerViewAdapter(mViewModel.getDamageVulnerabilitiesArray(), damageVulnerability -> { - if (damageVulnerability != null) { - navigateToEditDamageVulnerability(damageVulnerability); - } else { - Logger.logError("Can't navigate to EditDamageVulnerability with a null damageVulnerability"); - } - }); - recyclerView.setAdapter(adapter); - }); - - DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(context, layoutManager.getOrientation()); - recyclerView.addItemDecoration(dividerItemDecoration); - - ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new SwipeToDeleteCallback(context, mViewModel::removeDamageVulnerability)); - itemTouchHelper.attachToRecyclerView(recyclerView); - } - - private void setupAddDamageVulnerabilityButton(@NonNull FloatingActionButton fab) { - fab.setOnClickListener(view -> { - String newDamageVulnerability = mViewModel.addNewDamageVulnerability(); - navigateToEditDamageVulnerability(newDamageVulnerability); - }); - } - - private static class ViewHolder { - RecyclerView list; - FloatingActionButton addDamageVulnerability; - - ViewHolder(View root) { - list = root.findViewById(R.id.list); - addDamageVulnerability = root.findViewById(R.id.add_damage_type); - } - } -} \ No newline at end of file diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageVulnerabilitiesRecyclerViewAdapter.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageVulnerabilitiesRecyclerViewAdapter.java deleted file mode 100644 index c59d2d7..0000000 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageVulnerabilitiesRecyclerViewAdapter.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.majinnaibu.monstercards.ui.editmonster; - -import android.view.LayoutInflater; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.recyclerview.widget.RecyclerView; - -import com.majinnaibu.monstercards.databinding.FragmentEditDamageVulnerabilitiesListItemBinding; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -/** - * x - * {@link RecyclerView.Adapter} that can display a {@link String}. - */ -public class EditDamageVulnerabilitiesRecyclerViewAdapter extends RecyclerView.Adapter { - private final List mValues; - private final ItemCallback mOnClick; - - public EditDamageVulnerabilitiesRecyclerViewAdapter(List items, ItemCallback onClick) { - mValues = items; - mOnClick = onClick; - } - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NotNull ViewGroup parent, int viewType) { - return new ViewHolder(FragmentEditDamageVulnerabilitiesListItemBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false)); - } - - @Override - public void onBindViewHolder(final ViewHolder holder, int position) { - holder.mItem = mValues.get(position); - holder.mContentView.setText(mValues.get(position)); - holder.itemView.setOnClickListener(v -> { - if (mOnClick != null) { - mOnClick.onItemCallback(holder.mItem); - } - }); - } - - @Override - public int getItemCount() { - return mValues.size(); - } - - public interface ItemCallback { - void onItemCallback(String sense); - } - - public static class ViewHolder extends RecyclerView.ViewHolder { - public final TextView mContentView; - public String mItem; - - public ViewHolder(FragmentEditDamageVulnerabilitiesListItemBinding binding) { - super(binding.getRoot()); - mContentView = binding.content; - } - - @NotNull - @Override - public String toString() { - return super.toString() + " '" + mContentView.getText() + "'"; - } - } -} \ No newline at end of file diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageVulnerabilityFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageVulnerabilityFragment.java deleted file mode 100644 index 4ce8238..0000000 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditDamageVulnerabilityFragment.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.majinnaibu.monstercards.ui.editmonster; - -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.EditText; - -import androidx.activity.OnBackPressedCallback; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.lifecycle.ViewModelProvider; -import androidx.navigation.NavBackStackEntry; -import androidx.navigation.NavController; -import androidx.navigation.Navigation; - -import com.majinnaibu.monstercards.R; -import com.majinnaibu.monstercards.ui.shared.MCFragment; -import com.majinnaibu.monstercards.utils.Logger; -import com.majinnaibu.monstercards.utils.TextChangedListener; - -public class EditDamageVulnerabilityFragment extends MCFragment { - private EditMonsterViewModel mEditMonsterViewModel; - private EditStringViewModel mViewModel; - private EditDamageVulnerabilityFragment.ViewHolder mHolder; - private String mOldDamageVulnerability; - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - mViewModel = new ViewModelProvider(this).get(EditStringViewModel.class); - if (getArguments() != null) { - EditDamageVulnerabilityFragmentArgs args = EditDamageVulnerabilityFragmentArgs.fromBundle(getArguments()); - mOldDamageVulnerability = args.getDamageType(); - mViewModel.resetValue(mOldDamageVulnerability); - } else { - Logger.logWTF("EditDamageVulnerabilityFragment needs arguments"); - mOldDamageVulnerability = null; - } - super.onCreate(savedInstanceState); - } - - @Override - public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, - @Nullable Bundle savedInstanceState) { - NavController navController = Navigation.findNavController(requireActivity(), R.id.nav_host_fragment); - NavBackStackEntry backStackEntry = navController.getBackStackEntry(R.id.edit_monster_navigation); - mEditMonsterViewModel = new ViewModelProvider(backStackEntry).get(EditMonsterViewModel.class); - - View root = inflater.inflate(R.layout.fragment_edit_damage_vulnerability, container, false); - - mHolder = new EditDamageVulnerabilityFragment.ViewHolder(root); - - mHolder.value.setText(mViewModel.getValueAsString()); - mHolder.value.addTextChangedListener(new TextChangedListener((TextChangedListener.OnTextChangedCallback) (s, start, before, count) -> mViewModel.setValue(s.toString()))); - - requireActivity().getOnBackPressedDispatcher().addCallback(getViewLifecycleOwner(), new OnBackPressedCallback(true) { - @Override - public void handleOnBackPressed() { - if (mViewModel.hasChanges()) { - mEditMonsterViewModel.replaceDamageVulnerability(mOldDamageVulnerability, mViewModel.getValueAsString()); - } - Navigation.findNavController(requireView()).navigateUp(); - } - }); - - return root; - } - - private static class ViewHolder { - EditText value; - - ViewHolder(View root) { - value = root.findViewById(R.id.value); - } - } -} diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditMonsterFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditMonsterFragment.java index f30614d..4d7a2ec 100644 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditMonsterFragment.java +++ b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditMonsterFragment.java @@ -19,6 +19,7 @@ import androidx.navigation.Navigation; import com.google.android.material.snackbar.Snackbar; import com.majinnaibu.monstercards.R; import com.majinnaibu.monstercards.data.MonsterRepository; +import com.majinnaibu.monstercards.data.enums.StringType; import com.majinnaibu.monstercards.data.enums.TraitType; import com.majinnaibu.monstercards.models.Monster; import com.majinnaibu.monstercards.ui.monster.MonsterDetailFragmentArgs; @@ -117,27 +118,27 @@ public class EditMonsterFragment extends MCFragment { }); mHolder.senses.setOnClickListener(v -> { - NavDirections action = EditMonsterFragmentDirections.actionEditMonsterFragmentToEditSensesFragment(); + NavDirections action = EditMonsterFragmentDirections.actionEditMonsterFragmentToEditStringsFragment(StringType.SENSE); Navigation.findNavController(requireView()).navigate(action); }); mHolder.conditionImmunities.setOnClickListener(v -> { - NavDirections action = EditMonsterFragmentDirections.actionEditMonsterFragmentToEditConditionImmunitiesFragment(); + NavDirections action = EditMonsterFragmentDirections.actionEditMonsterFragmentToEditStringsFragment(StringType.CONDITION_IMMUNITY); Navigation.findNavController(requireView()).navigate(action); }); mHolder.damageImmunities.setOnClickListener(v -> { - NavDirections action = EditMonsterFragmentDirections.actionEditMonsterFragmentToEditDamageImmunitiesFragment(); + NavDirections action = EditMonsterFragmentDirections.actionEditMonsterFragmentToEditStringsFragment(StringType.DAMAGE_IMMUNITY); Navigation.findNavController(requireView()).navigate(action); }); mHolder.damageResistances.setOnClickListener(v -> { - NavDirections action = EditMonsterFragmentDirections.actionEditMonsterFragmentToEditDamageResistancesFragment(); + NavDirections action = EditMonsterFragmentDirections.actionEditMonsterFragmentToEditStringsFragment(StringType.DAMAGE_RESISTANCE); Navigation.findNavController(requireView()).navigate(action); }); mHolder.damageVulnerabilities.setOnClickListener(v -> { - NavDirections action = EditMonsterFragmentDirections.actionEditMonsterFragmentToEditDamageVulnerabilitiesFragment(); + NavDirections action = EditMonsterFragmentDirections.actionEditMonsterFragmentToEditStringsFragment(StringType.DAMAGE_VULNERABILITY); Navigation.findNavController(requireView()).navigate(action); }); diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditMonsterViewModel.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditMonsterViewModel.java index 7cf7c32..e591526 100644 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditMonsterViewModel.java +++ b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditMonsterViewModel.java @@ -9,6 +9,7 @@ import com.majinnaibu.monstercards.data.enums.AdvantageType; import com.majinnaibu.monstercards.data.enums.ArmorType; import com.majinnaibu.monstercards.data.enums.ChallengeRating; import com.majinnaibu.monstercards.data.enums.ProficiencyType; +import com.majinnaibu.monstercards.data.enums.StringType; import com.majinnaibu.monstercards.data.enums.TraitType; import com.majinnaibu.monstercards.helpers.StringHelper; import com.majinnaibu.monstercards.models.Language; @@ -1004,7 +1005,7 @@ public class EditMonsterViewModel extends ChangeTrackedViewModel { case REGIONAL_ACTION: return mRegionalActions; default: - Logger.logWTF(String.format("Unrecognized TraitType: %s", type)); + Logger.logUnimplementedFeature(String.format("Unrecognized TraitType: %s", type)); return null; } } @@ -1030,7 +1031,8 @@ public class EditMonsterViewModel extends ChangeTrackedViewModel { Helpers.removeFromList(mRegionalActions, position); break; default: - Logger.logWTF(String.format("Unrecognized TraitType: %s", type)); + Logger.logUnimplementedFeature(String.format("Unrecognized TraitType: %s", type)); + break; } } @@ -1055,7 +1057,7 @@ public class EditMonsterViewModel extends ChangeTrackedViewModel { Helpers.replaceItemInList(mRegionalActions, oldTrait, newTrait); break; default: - Logger.logWTF(String.format("Unrecognized TraitType: %s", type)); + Logger.logUnimplementedFeature(String.format("Unrecognized TraitType: %s", type)); } } @@ -1075,11 +1077,93 @@ public class EditMonsterViewModel extends ChangeTrackedViewModel { case REGIONAL_ACTION: return Helpers.addItemToList(mRegionalActions, newAction); default: - Logger.logWTF(String.format("Unrecognized TraitType: %s", type)); + Logger.logUnimplementedFeature(String.format("Unrecognized TraitType: %s", type)); return null; } } + public LiveData> getStrings(StringType type) { + switch (type) { + case CONDITION_IMMUNITY: + return mConditionImmunities; + case DAMAGE_IMMUNITY: + return mDamageImmunities; + case DAMAGE_RESISTANCE: + return mDamageResistances; + case DAMAGE_VULNERABILITY: + return mDamageVulnerabilities; + case SENSE: + return mSenses; + default: + Logger.logUnimplementedFeature(String.format("Unrecognized StringType: %s", type)); + return null; + } + } + + public void removeString(StringType type, int position) { + switch (type) { + case CONDITION_IMMUNITY: + Helpers.removeFromList(mConditionImmunities, position); + break; + case DAMAGE_IMMUNITY: + Helpers.removeFromList(mDamageImmunities, position); + break; + case DAMAGE_RESISTANCE: + Helpers.removeFromList(mDamageResistances, position); + break; + case DAMAGE_VULNERABILITY: + Helpers.removeFromList(mDamageVulnerabilities, position); + break; + case SENSE: + Helpers.removeFromList(mSenses, position); + break; + default: + Logger.logUnimplementedFeature(String.format("Unrecognized StringType: %s", type)); + break; + } + } + + public String addNewString(StringType type) { + String newString = ""; + switch (type) { + case CONDITION_IMMUNITY: + return Helpers.addItemToList(mConditionImmunities, newString); + case DAMAGE_IMMUNITY: + return Helpers.addItemToList(mDamageImmunities, newString); + case DAMAGE_RESISTANCE: + return Helpers.addItemToList(mDamageResistances, newString); + case DAMAGE_VULNERABILITY: + return Helpers.addItemToList(mDamageVulnerabilities, newString); + case SENSE: + return Helpers.addItemToList(mSenses, newString); + default: + Logger.logUnimplementedFeature(String.format("Unrecognized StringType: %s", type)); + return null; + } + } + + public void replaceString(StringType type, String oldValue, String newValue) { + switch (type) { + case CONDITION_IMMUNITY: + Helpers.replaceItemInList(mConditionImmunities, oldValue, newValue); + break; + case DAMAGE_IMMUNITY: + Helpers.replaceItemInList(mDamageImmunities, oldValue, newValue); + break; + case DAMAGE_RESISTANCE: + Helpers.replaceItemInList(mDamageResistances, oldValue, newValue); + break; + case DAMAGE_VULNERABILITY: + Helpers.replaceItemInList(mDamageVulnerabilities, oldValue, newValue); + break; + case SENSE: + Helpers.replaceItemInList(mSenses, oldValue, newValue); + break; + default: + Logger.logUnimplementedFeature(String.format("Unrecognized StringType: %s", type)); + } + } + @SuppressWarnings("SameParameterValue") private static class Helpers { static String addStringToList(String newString, MutableLiveData> strings) { diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSenseFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSenseFragment.java deleted file mode 100644 index 2f0c969..0000000 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSenseFragment.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.majinnaibu.monstercards.ui.editmonster; - -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.EditText; - -import androidx.activity.OnBackPressedCallback; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.lifecycle.ViewModelProvider; -import androidx.navigation.NavBackStackEntry; -import androidx.navigation.NavController; -import androidx.navigation.Navigation; - -import com.majinnaibu.monstercards.R; -import com.majinnaibu.monstercards.ui.shared.MCFragment; -import com.majinnaibu.monstercards.utils.Logger; -import com.majinnaibu.monstercards.utils.TextChangedListener; - -public class EditSenseFragment extends MCFragment { - private EditMonsterViewModel mEditMonsterViewModel; - private EditStringViewModel mViewModel; - private ViewHolder mHolder; - private String mOldSense; - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - mViewModel = new ViewModelProvider(this).get(EditStringViewModel.class); - if (getArguments() != null) { - EditSenseFragmentArgs args = EditSenseFragmentArgs.fromBundle(getArguments()); - mOldSense = args.getSense(); - mViewModel.resetValue(mOldSense); - } else { - Logger.logWTF("EditSenseFragment needs arguments"); - mOldSense = null; - } - super.onCreate(savedInstanceState); - } - - @Override - public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, - @Nullable Bundle savedInstanceState) { - NavController navController = Navigation.findNavController(requireActivity(), R.id.nav_host_fragment); - NavBackStackEntry backStackEntry = navController.getBackStackEntry(R.id.edit_monster_navigation); - mEditMonsterViewModel = new ViewModelProvider(backStackEntry).get(EditMonsterViewModel.class); - - View root = inflater.inflate(R.layout.fragment_edit_sense, container, false); - - mHolder = new ViewHolder(root); - - mHolder.description.setText(mViewModel.getValueAsString()); - mHolder.description.addTextChangedListener(new TextChangedListener((TextChangedListener.OnTextChangedCallback) (s, start, before, count) -> mViewModel.setValue(s.toString()))); - - requireActivity().getOnBackPressedDispatcher().addCallback(getViewLifecycleOwner(), new OnBackPressedCallback(true) { - @Override - public void handleOnBackPressed() { - if (mViewModel.hasChanges()) { - mEditMonsterViewModel.replaceSense(mOldSense, mViewModel.getValueAsString()); - } - Navigation.findNavController(requireView()).navigateUp(); - } - }); - - return root; - } - - private static class ViewHolder { - EditText description; - - ViewHolder(View root) { - description = root.findViewById(R.id.name); - } - } -} diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSensesFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSensesFragment.java deleted file mode 100644 index 5b0d90a..0000000 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSensesFragment.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.majinnaibu.monstercards.ui.editmonster; - -import android.content.Context; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import androidx.annotation.NonNull; -import androidx.lifecycle.ViewModelProvider; -import androidx.navigation.NavBackStackEntry; -import androidx.navigation.NavController; -import androidx.navigation.NavDirections; -import androidx.navigation.Navigation; -import androidx.recyclerview.widget.DividerItemDecoration; -import androidx.recyclerview.widget.ItemTouchHelper; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.google.android.material.floatingactionbutton.FloatingActionButton; -import com.majinnaibu.monstercards.R; -import com.majinnaibu.monstercards.ui.shared.MCFragment; -import com.majinnaibu.monstercards.ui.shared.SwipeToDeleteCallback; -import com.majinnaibu.monstercards.utils.Logger; - -/** - * A fragment representing a list of Items. - */ -public class EditSensesFragment extends MCFragment { - private EditMonsterViewModel mViewModel; - private ViewHolder mHolder; - - private void navigateToEditSense(String sense) { - NavDirections action = EditSensesFragmentDirections.actionEditSensesFragmentToEditSenseFragment(sense); - Navigation.findNavController(requireView()).navigate(action); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - 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); - View root = inflater.inflate(R.layout.fragment_edit_senses_list, container, false); - mHolder = new ViewHolder(root); - setupRecyclerView(mHolder.list); - setupAddSenseButton(mHolder.addSense); - return root; - } - - private void setupRecyclerView(@NonNull RecyclerView recyclerView) { - Context context = requireContext(); - LinearLayoutManager layoutManager = new LinearLayoutManager(context); - recyclerView.setLayoutManager(layoutManager); - - mViewModel.getSenses().observe(getViewLifecycleOwner(), senses -> { - EditSensesRecyclerViewAdapter adapter = new EditSensesRecyclerViewAdapter(mViewModel.getSensesArray(), sense -> { - if (sense != null) { - navigateToEditSense(sense); - } else { - Logger.logError("Can't navigate to EditSense with a null sense"); - } - }); - recyclerView.setAdapter(adapter); - }); - - DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(context, layoutManager.getOrientation()); - recyclerView.addItemDecoration(dividerItemDecoration); - - ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new SwipeToDeleteCallback(context, mViewModel::removeSense)); - itemTouchHelper.attachToRecyclerView(recyclerView); - } - - private void setupAddSenseButton(@NonNull FloatingActionButton fab) { - fab.setOnClickListener(view -> { - String newSense = mViewModel.addNewSense(); - navigateToEditSense(newSense); - }); - } - - private static class ViewHolder { - RecyclerView list; - FloatingActionButton addSense; - - ViewHolder(View root) { - list = root.findViewById(R.id.list); - addSense = root.findViewById(R.id.add_sense); - } - } -} \ No newline at end of file diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSensesRecyclerViewAdapter.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSensesRecyclerViewAdapter.java deleted file mode 100644 index 1710bcf..0000000 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSensesRecyclerViewAdapter.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.majinnaibu.monstercards.ui.editmonster; - -import android.view.LayoutInflater; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.recyclerview.widget.RecyclerView; - -import com.majinnaibu.monstercards.databinding.FragmentEditSensesListItemBinding; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -/** - * x - * {@link RecyclerView.Adapter} that can display a {@link String}. - */ -public class EditSensesRecyclerViewAdapter extends RecyclerView.Adapter { - private final List mValues; - private final ItemCallback mOnClick; - - public EditSensesRecyclerViewAdapter(List items, ItemCallback onClick) { - mValues = items; - mOnClick = onClick; - } - - @NotNull - @Override - public ViewHolder onCreateViewHolder(@NotNull ViewGroup parent, int viewType) { - return new ViewHolder(FragmentEditSensesListItemBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false)); - } - - @Override - public void onBindViewHolder(final ViewHolder holder, int position) { - holder.mItem = mValues.get(position); - holder.mContentView.setText(mValues.get(position)); - holder.itemView.setOnClickListener(v -> { - if (mOnClick != null) { - mOnClick.onItemCallback(holder.mItem); - } - }); - } - - @Override - public int getItemCount() { - return mValues.size(); - } - - public interface ItemCallback { - void onItemCallback(String sense); - } - - public static class ViewHolder extends RecyclerView.ViewHolder { - public final TextView mContentView; - public String mItem; - - public ViewHolder(FragmentEditSensesListItemBinding binding) { - super(binding.getRoot()); - mContentView = binding.content; - } - - @NotNull - @Override - public String toString() { - return super.toString() + " '" + mContentView.getText() + "'"; - } - } -} \ No newline at end of file diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditStringFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditStringFragment.java index 54e4ee4..0610a18 100644 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditStringFragment.java +++ b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditStringFragment.java @@ -28,7 +28,7 @@ public class EditStringFragment extends MCFragment { private StringType mStringType; @Override - public void onCreate(@Nullable Bundle savedInstanceState) { + public void onCreate(@Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) { mViewModel = new ViewModelProvider(this).get(EditStringViewModel.class); if (getArguments() != null) { EditStringFragmentArgs args = EditStringFragmentArgs.fromBundle(getArguments()); @@ -43,6 +43,7 @@ public class EditStringFragment extends MCFragment { } @Nullable + @org.jetbrains.annotations.Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { NavController navController = Navigation.findNavController(requireActivity(), R.id.nav_host_fragment); @@ -50,7 +51,6 @@ public class EditStringFragment extends MCFragment { mEditMonsterViewModel = new ViewModelProvider(backStackEntry).get(EditMonsterViewModel.class); View root = inflater.inflate(R.layout.fragment_edit_string, container, false); mHolder = new ViewHolder(root); - setTitle(getTitleForStringType(mStringType)); mHolder.description.setText(mViewModel.getValueAsString()); mHolder.description.addTextChangedListener(new TextChangedListener((TextChangedListener.OnTextChangedCallback) (s, start, before, count) -> mViewModel.setValue(s.toString()))); @@ -68,35 +68,14 @@ public class EditStringFragment extends MCFragment { return root; } - @NonNull - private String getTitleForStringType(@NonNull StringType type) { - switch (type) { - case CONDITION_IMMUNITY: - return getString(R.string.title_editConditionImmunity); - case DAMAGE_IMMUNITY: - return getString(R.string.title_editDamageImmunity); - case DAMAGE_RESISTANCE: - return getString(R.string.title_editDamageResistance); - case DAMAGE_VULNERABILITY: - return getString(R.string.title_editDamageVulnerability); - case SENSE: - return getString(R.string.title_editSense); - default: - return getString(R.string.title_editString); - } - } - - @Override - public void onStart() { - super.onStart(); - mHolder.description.requestFocus(); - } private static class ViewHolder { EditText description; + EditText name; - ViewHolder(@NonNull View root) { + ViewHolder(View root) { description = root.findViewById(R.id.description); + name = root.findViewById(R.id.name); } } } diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditStringsFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditStringsFragment.java index b3bfaa5..730bc05 100644 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditStringsFragment.java +++ b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditStringsFragment.java @@ -26,6 +26,8 @@ import com.majinnaibu.monstercards.ui.shared.MCFragment; import com.majinnaibu.monstercards.ui.shared.SwipeToDeleteCallback; import com.majinnaibu.monstercards.utils.Logger; +import org.jetbrains.annotations.NotNull; + import java.util.List; public class EditStringsFragment extends MCFragment { @@ -34,7 +36,7 @@ public class EditStringsFragment extends MCFragment { private StringType mStringType; @Override - public void onCreate(@Nullable Bundle savedInstanceState) { + public void onCreate(@Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) { Bundle arguments = getArguments(); if (arguments != null) { EditStringsFragmentArgs args = EditStringsFragmentArgs.fromBundle(arguments); @@ -46,37 +48,19 @@ public class EditStringsFragment extends MCFragment { } @Nullable + @org.jetbrains.annotations.Nullable @Override - public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + public View onCreateView(@NonNull @NotNull LayoutInflater inflater, @Nullable @org.jetbrains.annotations.Nullable ViewGroup container, @Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) { 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); View root = inflater.inflate(R.layout.fragment_edit_strings_list, container, false); mHolder = new ViewHolder(root); - setTitle(getTitleForStringType(mStringType)); setupRecyclerView(mHolder.list); setupAddButton(mHolder.addItem); return root; } - @NonNull - private String getTitleForStringType(StringType type) { - switch (type) { - case CONDITION_IMMUNITY: - return getString(R.string.title_editConditionImmunities); - case DAMAGE_IMMUNITY: - return getString(R.string.title_editDamageImmunities); - case DAMAGE_RESISTANCE: - return getString(R.string.title_editDamageResistances); - case DAMAGE_VULNERABILITY: - return getString(R.string.title_editDamageVulnerabilities); - case SENSE: - return getString(R.string.title_editSenses); - default: - return getString(R.string.title_editStrings); - } - } - private void setupRecyclerView(@NonNull RecyclerView recyclerView) { Context context = requireContext(); LinearLayoutManager layoutManager = new LinearLayoutManager(context); @@ -99,7 +83,7 @@ public class EditStringsFragment extends MCFragment { DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(context, layoutManager.getOrientation()); recyclerView.addItemDecoration(dividerItemDecoration); - ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new SwipeToDeleteCallback(context, (position, direction) -> mViewModel.removeString(mStringType, position), null)); + ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new SwipeToDeleteCallback(context, position -> mViewModel.removeString(mStringType, position))); itemTouchHelper.attachToRecyclerView(recyclerView); } @@ -121,7 +105,7 @@ public class EditStringsFragment extends MCFragment { RecyclerView list; FloatingActionButton addItem; - ViewHolder(@NonNull View root) { + ViewHolder(View root) { list = root.findViewById(R.id.list); addItem = root.findViewById(R.id.add_item); } diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditStringsRecyclerViewAdapter.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditStringsRecyclerViewAdapter.java index fda532c..5c9ce7b 100644 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditStringsRecyclerViewAdapter.java +++ b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditStringsRecyclerViewAdapter.java @@ -4,11 +4,12 @@ import android.view.LayoutInflater; import android.view.ViewGroup; import android.widget.TextView; -import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.majinnaibu.monstercards.databinding.FragmentEditStringsListItemBinding; +import org.jetbrains.annotations.NotNull; + import java.util.List; public class EditStringsRecyclerViewAdapter extends RecyclerView.Adapter { @@ -20,14 +21,14 @@ public class EditStringsRecyclerViewAdapter extends RecyclerView.Adapter { @@ -50,12 +51,12 @@ public class EditStringsRecyclerViewAdapter extends RecyclerView.Adapter - - - - - - \ No newline at end of file diff --git a/Android/app/src/main/res/layout/fragment_edit_condition_immunities_list_item.xml b/Android/app/src/main/res/layout/fragment_edit_condition_immunities_list_item.xml deleted file mode 100644 index 6e9049a..0000000 --- a/Android/app/src/main/res/layout/fragment_edit_condition_immunities_list_item.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Android/app/src/main/res/layout/fragment_edit_condition_immunity.xml b/Android/app/src/main/res/layout/fragment_edit_condition_immunity.xml deleted file mode 100644 index 49aba4b..0000000 --- a/Android/app/src/main/res/layout/fragment_edit_condition_immunity.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Android/app/src/main/res/layout/fragment_edit_damage_immunities_list.xml b/Android/app/src/main/res/layout/fragment_edit_damage_immunities_list.xml deleted file mode 100644 index a80156d..0000000 --- a/Android/app/src/main/res/layout/fragment_edit_damage_immunities_list.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - diff --git a/Android/app/src/main/res/layout/fragment_edit_damage_immunities_list_item.xml b/Android/app/src/main/res/layout/fragment_edit_damage_immunities_list_item.xml deleted file mode 100644 index 6e9049a..0000000 --- a/Android/app/src/main/res/layout/fragment_edit_damage_immunities_list_item.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Android/app/src/main/res/layout/fragment_edit_damage_immunity.xml b/Android/app/src/main/res/layout/fragment_edit_damage_immunity.xml deleted file mode 100644 index a1456f2..0000000 --- a/Android/app/src/main/res/layout/fragment_edit_damage_immunity.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - diff --git a/Android/app/src/main/res/layout/fragment_edit_damage_resistance.xml b/Android/app/src/main/res/layout/fragment_edit_damage_resistance.xml deleted file mode 100644 index a1456f2..0000000 --- a/Android/app/src/main/res/layout/fragment_edit_damage_resistance.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - diff --git a/Android/app/src/main/res/layout/fragment_edit_damage_resistances_list.xml b/Android/app/src/main/res/layout/fragment_edit_damage_resistances_list.xml deleted file mode 100644 index a80156d..0000000 --- a/Android/app/src/main/res/layout/fragment_edit_damage_resistances_list.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - diff --git a/Android/app/src/main/res/layout/fragment_edit_damage_resistances_list_item.xml b/Android/app/src/main/res/layout/fragment_edit_damage_resistances_list_item.xml deleted file mode 100644 index 6e9049a..0000000 --- a/Android/app/src/main/res/layout/fragment_edit_damage_resistances_list_item.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Android/app/src/main/res/layout/fragment_edit_damage_vulnerabilities_list.xml b/Android/app/src/main/res/layout/fragment_edit_damage_vulnerabilities_list.xml deleted file mode 100644 index a80156d..0000000 --- a/Android/app/src/main/res/layout/fragment_edit_damage_vulnerabilities_list.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - diff --git a/Android/app/src/main/res/layout/fragment_edit_damage_vulnerabilities_list_item.xml b/Android/app/src/main/res/layout/fragment_edit_damage_vulnerabilities_list_item.xml deleted file mode 100644 index 6e9049a..0000000 --- a/Android/app/src/main/res/layout/fragment_edit_damage_vulnerabilities_list_item.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Android/app/src/main/res/layout/fragment_edit_damage_vulnerability.xml b/Android/app/src/main/res/layout/fragment_edit_damage_vulnerability.xml deleted file mode 100644 index a1456f2..0000000 --- a/Android/app/src/main/res/layout/fragment_edit_damage_vulnerability.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - diff --git a/Android/app/src/main/res/layout/fragment_edit_sense.xml b/Android/app/src/main/res/layout/fragment_edit_sense.xml deleted file mode 100644 index 4f26026..0000000 --- a/Android/app/src/main/res/layout/fragment_edit_sense.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - diff --git a/Android/app/src/main/res/layout/fragment_edit_senses_list.xml b/Android/app/src/main/res/layout/fragment_edit_senses_list.xml deleted file mode 100644 index 3c1ca94..0000000 --- a/Android/app/src/main/res/layout/fragment_edit_senses_list.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - diff --git a/Android/app/src/main/res/layout/fragment_edit_senses_list_item.xml b/Android/app/src/main/res/layout/fragment_edit_senses_list_item.xml deleted file mode 100644 index 6e9049a..0000000 --- a/Android/app/src/main/res/layout/fragment_edit_senses_list_item.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Android/app/src/main/res/layout/fragment_edit_string.xml b/Android/app/src/main/res/layout/fragment_edit_string.xml index 4c8ebf3..a45f2f7 100644 --- a/Android/app/src/main/res/layout/fragment_edit_string.xml +++ b/Android/app/src/main/res/layout/fragment_edit_string.xml @@ -1,22 +1,18 @@ - - + android:hint="@string/label_description" + android:importantForAutofill="no" + android:inputType="text" + tools:text="blinded" /> - - - + diff --git a/Android/app/src/main/res/layout/fragment_edit_strings_list_item.xml b/Android/app/src/main/res/layout/fragment_edit_strings_list_item.xml index ea0dc65..93d00b2 100644 --- a/Android/app/src/main/res/layout/fragment_edit_strings_list_item.xml +++ b/Android/app/src/main/res/layout/fragment_edit_strings_list_item.xml @@ -6,7 +6,7 @@ diff --git a/Android/app/src/main/res/layout/fragment_edit_trait.xml b/Android/app/src/main/res/layout/fragment_edit_trait.xml index a055046..4f637c8 100644 --- a/Android/app/src/main/res/layout/fragment_edit_trait.xml +++ b/Android/app/src/main/res/layout/fragment_edit_trait.xml @@ -3,7 +3,8 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:orientation="vertical"> + android:orientation="vertical" + tools:context=".ui.editmonster.EditTraitFragment"> + tools:context=".ui.editmonster.EditTraitListFragment"> + tools:listitem="@layout/fragment_edit_traits_list_item" /> - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + diff --git a/Android/app/src/main/res/values/strings.xml b/Android/app/src/main/res/values/strings.xml index bd8f358..9b8e778 100644 --- a/Android/app/src/main/res/values/strings.xml +++ b/Android/app/src/main/res/values/strings.xml @@ -2,6 +2,7 @@ Add Ability Add Condition Add Damage Type + Add Item Add Language Add monster Add Sense