diff --git a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditAbilityScoresFragment.java b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditAbilityScoresFragment.java index e6f129d..9ed54e4 100644 --- a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditAbilityScoresFragment.java +++ b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditAbilityScoresFragment.java @@ -29,11 +29,9 @@ public class EditAbilityScoresFragment extends MCFragment { 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); - - // Inflate the layout for this fragment View root = inflater.inflate(R.layout.fragment_edit_ability_scores, container, false); - mHolder = new ViewHolder(root); + setTitle(getString(R.string.title_edit_ability_scores)); mViewModel.getStrength().observe(getViewLifecycleOwner(), value -> mHolder.strength.setValue(value)); mHolder.strength.setOnValueChangeListener((newValue, oldValue) -> mViewModel.setStrength(newValue)); @@ -79,4 +77,4 @@ public class EditAbilityScoresFragment extends MCFragment { charisma = root.findViewById(R.id.charisma); } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditArmorFragment.java b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditArmorFragment.java index 75b159a..ec94c9e 100644 --- a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditArmorFragment.java +++ b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditArmorFragment.java @@ -21,6 +21,7 @@ import androidx.navigation.Navigation; import com.majinnaibu.monstercards.R; import com.majinnaibu.monstercards.data.enums.ArmorType; import com.majinnaibu.monstercards.helpers.ArrayHelper; +import com.majinnaibu.monstercards.ui.components.Stepper; import com.majinnaibu.monstercards.ui.shared.MCFragment; import com.majinnaibu.monstercards.utils.TextChangedListener; @@ -34,11 +35,9 @@ public class EditArmorFragment extends MCFragment { 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); - - // Inflate the layout for this fragment View root = inflater.inflate(R.layout.fragment_edit_armor, container, false); - mHolder = new ViewHolder(root); + setTitle(getString(R.string.title_edit_armor)); mHolder.armorType.setAdapter(new ArrayAdapter(requireContext(), R.layout.dropdown_list_item, ArmorType.values()) { @NonNull @@ -73,14 +72,14 @@ public class EditArmorFragment extends MCFragment { }); mHolder.armorType.setSelection(ArrayHelper.indexOf(ArmorType.values(), mViewModel.getArmorType().getValue())); - mHolder.naturalArmorBonus.setText(mViewModel.getNaturalArmorBonusValueAsString()); - mHolder.naturalArmorBonus.addTextChangedListener((new TextChangedListener((TextChangedListener.OnTextChangedCallback) (s, start, before, count) -> mViewModel.setNaturalArmorBonus(s.toString())))); + mHolder.naturalArmorBonus.setValue(mViewModel.getNaturalArmorBonusUnboxed()); + mHolder.naturalArmorBonus.setOnValueChangeListener((newValue, oldValue) -> mViewModel.setNaturalArmorBonus(newValue)); mHolder.hasShield.setChecked(mViewModel.getHasShieldValueAsBoolean()); mHolder.hasShield.setOnCheckedChangeListener((buttonView, isChecked) -> mViewModel.setHasShield(isChecked)); - mHolder.shieldBonus.setText(mViewModel.getShieldBonusValueAsString()); - mHolder.shieldBonus.addTextChangedListener((new TextChangedListener((TextChangedListener.OnTextChangedCallback) (s, start, before, count) -> mViewModel.setShieldBonus(s.toString())))); + mHolder.shieldBonus.setValue(mViewModel.getShieldBonusUnboxed()); + mHolder.shieldBonus.setOnValueChangeListener((newValue, oldValue) -> mViewModel.setShieldBonus(newValue)); mHolder.customArmor.setText(mViewModel.getCustomArmor().getValue()); mHolder.customArmor.addTextChangedListener((new TextChangedListener((TextChangedListener.OnTextChangedCallback) (s, start, before, count) -> mViewModel.setCustomArmor(s.toString())))); @@ -90,9 +89,9 @@ public class EditArmorFragment extends MCFragment { private static class ViewHolder { private final Spinner armorType; - private final EditText naturalArmorBonus; + private final Stepper naturalArmorBonus; private final SwitchCompat hasShield; - private final EditText shieldBonus; + private final Stepper shieldBonus; private final EditText customArmor; ViewHolder(View root) { @@ -103,4 +102,4 @@ public class EditArmorFragment extends MCFragment { customArmor = root.findViewById(R.id.customArmor); } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditBasicInfoFragment.java b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditBasicInfoFragment.java index 1ccf3e1..17a9657 100644 --- a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditBasicInfoFragment.java +++ b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditBasicInfoFragment.java @@ -13,6 +13,7 @@ import androidx.navigation.Navigation; import com.google.android.material.switchmaterial.SwitchMaterial; import com.majinnaibu.monstercards.R; +import com.majinnaibu.monstercards.ui.components.Stepper; import com.majinnaibu.monstercards.ui.shared.MCFragment; import com.majinnaibu.monstercards.utils.TextChangedListener; @@ -20,17 +21,22 @@ public class EditBasicInfoFragment extends MCFragment { private EditMonsterViewModel mViewModel; private ViewHolder mHolder; + @Override + public void onStart() { + super.onStart(); + mHolder.name.requestFocus(); + } + @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); - - // Inflate the layout for this fragment View root = inflater.inflate(R.layout.fragment_edit_basic_info, container, false); - + setTitle(getString(R.string.title_edit_basic_info)); mHolder = new ViewHolder(root); + mHolder.name.setText(mViewModel.getName().getValue()); mHolder.name.addTextChangedListener(new TextChangedListener((TextChangedListener.OnTextChangedCallback) (s, start, before, count) -> mViewModel.setName(s.toString()))); @@ -49,8 +55,8 @@ public class EditBasicInfoFragment extends MCFragment { mHolder.customHitPoints.setText(mViewModel.getCustomHitPoints().getValue()); mHolder.customHitPoints.addTextChangedListener((new TextChangedListener((TextChangedListener.OnTextChangedCallback) (s, start, before, count) -> mViewModel.setCustomHitPoints(s.toString())))); - mHolder.hitDice.setText(mViewModel.getHitDiceValueAsString()); - mHolder.hitDice.addTextChangedListener((new TextChangedListener((TextChangedListener.OnTextChangedCallback) (s, start, before, count) -> mViewModel.setHitDice(s.toString())))); + mHolder.hitDice.setValue(mViewModel.getHitDiceUnboxed()); + mHolder.hitDice.setOnValueChangeListener((newValue, oldValue) -> mViewModel.setHitDice(newValue)); mHolder.hasCustomHitPoints.setChecked(mViewModel.getHasCustomHitPointsValueAsBoolean()); mHolder.hasCustomHitPoints.setOnCheckedChangeListener((button, isChecked) -> mViewModel.setHasCustomHitPoints(isChecked)); @@ -65,7 +71,7 @@ public class EditBasicInfoFragment extends MCFragment { private final EditText subtype; private final EditText alignment; private final EditText customHitPoints; - private final EditText hitDice; + private final Stepper hitDice; private final SwitchMaterial hasCustomHitPoints; ViewHolder(View root) { @@ -79,4 +85,4 @@ public class EditBasicInfoFragment extends MCFragment { hasCustomHitPoints = root.findViewById(R.id.hasCustomHitPoints); } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditChallengeRatingFragment.java b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditChallengeRatingFragment.java index c2b0008..f37f630 100644 --- a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditChallengeRatingFragment.java +++ b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditChallengeRatingFragment.java @@ -33,10 +33,9 @@ public class EditChallengeRatingFragment extends MCFragment { 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); - - // Inflate the layout for this fragment View root = inflater.inflate(R.layout.fragment_edit_challenge_rating, container, false); mHolder = new ViewHolder(root); + setTitle(getString(R.string.title_edit_challenge_rating)); mHolder.challengeRating.setAdapter(new ArrayAdapter(requireContext(), R.layout.dropdown_list_item, ChallengeRating.values()) { @NonNull @@ -90,4 +89,4 @@ public class EditChallengeRatingFragment extends MCFragment { customProficiencyBonus = root.findViewById(R.id.customProficiencyBonus); } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditLanguageFragment.java b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditLanguageFragment.java index 3039241..369b18c 100644 --- a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditLanguageFragment.java +++ b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditLanguageFragment.java @@ -4,12 +4,12 @@ import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.CheckBox; import android.widget.EditText; import androidx.activity.OnBackPressedCallback; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.appcompat.widget.SwitchCompat; import androidx.lifecycle.ViewModelProvider; import androidx.navigation.NavBackStackEntry; import androidx.navigation.NavController; @@ -48,11 +48,9 @@ public class EditLanguageFragment extends MCFragment { 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_language, container, false); - - mHolder = new ViewHolder(root); + setTitle(getString(R.string.title_edit_language)); mHolder.name.setText(mViewModel.getName().getValue()); mHolder.name.addTextChangedListener(new TextChangedListener((TextChangedListener.OnTextChangedCallback) (s, start, before, count) -> mViewModel.setName(s.toString()))); @@ -73,9 +71,15 @@ public class EditLanguageFragment extends MCFragment { return root; } + @Override + public void onStart() { + super.onStart(); + mHolder.name.requestFocus(); + } + private static class ViewHolder { EditText name; - CheckBox canSpeak; + SwitchCompat canSpeak; ViewHolder(View root) { name = root.findViewById(R.id.name); diff --git a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditLanguagesFragment.java b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditLanguagesFragment.java index 155dc66..d22e66d 100644 --- a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditLanguagesFragment.java +++ b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditLanguagesFragment.java @@ -41,10 +41,9 @@ public class EditLanguagesFragment extends MCFragment { 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_languages_list, container, false); - mHolder = new ViewHolder(root); + setTitle(getString(R.string.title_edit_languages)); setupRecyclerView(mHolder.list); setupAddLanguageButton(mHolder.addLanguage); 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 e591526..47a727c 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 @@ -332,6 +332,10 @@ public class EditMonsterViewModel extends ChangeTrackedViewModel { this.setHitDice(parsedHitDice != null ? parsedHitDice : 0); } + public int getHitDiceUnboxed() { + return Helpers.unboxInteger(mHitDice.getValue(), 1); + } + public String getHitDiceValueAsString() { return mHitDice.getValue().toString(); } @@ -349,6 +353,10 @@ public class EditMonsterViewModel extends ChangeTrackedViewModel { this.setNaturalArmorBonus(parsedValue != null ? parsedValue : 0); } + public int getNaturalArmorBonusUnboxed() { + return Helpers.unboxInteger(mNaturalArmorBonus.getValue(), 0); + } + public String getNaturalArmorBonusValueAsString() { return mNaturalArmorBonus.getValue().toString(); } @@ -398,6 +406,10 @@ public class EditMonsterViewModel extends ChangeTrackedViewModel { this.setShieldBonus(parsedValue != null ? parsedValue : 0); } + public int getShieldBonusUnboxed() { + return Helpers.unboxInteger(mShieldBonus.getValue(), 0); + } + public LiveData getCustomArmor() { return mCustomArmor; } diff --git a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSavingThrowsFragment.java b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSavingThrowsFragment.java index 1e5699e..1138696 100644 --- a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSavingThrowsFragment.java +++ b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSavingThrowsFragment.java @@ -25,11 +25,10 @@ public class EditSavingThrowsFragment extends MCFragment { 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); - - // Inflate the layout for this fragment View root = inflater.inflate(R.layout.fragment_edit_saving_throws, container, false); - mViewHolder = new ViewHolder(root); + setTitle(getString(R.string.title_edit_saving_throws)); + mViewHolder.strengthProficiency.setValue(mViewModel.getStrengthProficiency().getValue()); mViewHolder.strengthProficiency.setOnValueChangedListener(value -> mViewModel.setStrengthProficiency(value)); mViewHolder.strengthAdvantage.setValue(mViewModel.getStrengthAdvantage().getValue()); @@ -92,4 +91,4 @@ public class EditSavingThrowsFragment extends MCFragment { charismaProficiency = root.findViewById(R.id.charismaProficiency); } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSkillFragment.java b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSkillFragment.java index 99c6152..8d086c3 100644 --- a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSkillFragment.java +++ b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSkillFragment.java @@ -24,7 +24,6 @@ import com.majinnaibu.monstercards.utils.Logger; import com.majinnaibu.monstercards.utils.TextChangedListener; public class EditSkillFragment extends MCFragment { - // TODO: when this view is shown select focus on the name edit text and select it's contents private EditMonsterViewModel mEditMonsterViewModel; private EditSkillViewModel mViewModel; private ViewHolder mHolder; @@ -50,11 +49,9 @@ public class EditSkillFragment extends MCFragment { 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); - - // Inflate the layout for this fragment View root = inflater.inflate(R.layout.fragment_edit_skill, container, false); - mHolder = new ViewHolder(root); + setTitle(getString(R.string.title_edit_skill)); mHolder.abilityScore.setValue(mViewModel.getAbilityScore().getValue()); mHolder.abilityScore.setOnValueChangedListener(value -> mViewModel.setAbilityScore(value)); @@ -81,6 +78,12 @@ public class EditSkillFragment extends MCFragment { return root; } + @Override + public void onStart() { + super.onStart(); + mHolder.name.requestFocus(); + } + private static class ViewHolder { AbilityScorePicker abilityScore; AdvantagePicker advantage; 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 579c357..269ca30 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 @@ -42,10 +42,9 @@ public class EditSkillsFragment extends MCFragment { 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_skills_list, container, false); - mHolder = new ViewHolder(root); + setTitle(getString(R.string.title_edit_skills)); setupRecyclerView(mHolder.list); setupAddSkillButton(mHolder.addSkill); diff --git a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSpeedFragment.java b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSpeedFragment.java index 2708e01..cc94e84 100644 --- a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSpeedFragment.java +++ b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSpeedFragment.java @@ -27,11 +27,9 @@ public class EditSpeedFragment extends MCFragment { 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); - - // Inflate the layout for this fragment View root = inflater.inflate(R.layout.fragment_edit_speed, container, false); - mHolder = new ViewHolder(root); + setTitle(getString(R.string.title_edit_speed)); mHolder.baseSpeed.setOnValueChangeListener((newValue, oldValue) -> mViewModel.setWalkSpeed(newValue)); mHolder.baseSpeed.setOnFormatValueCallback(value -> String.format(getString(R.string.format_distance_in_feet), value)); @@ -89,4 +87,4 @@ public class EditSpeedFragment extends MCFragment { } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditStringFragment.java b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditStringFragment.java index e331c95..a3385ad 100644 --- a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditStringFragment.java +++ b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditStringFragment.java @@ -21,7 +21,6 @@ import com.majinnaibu.monstercards.utils.Logger; import com.majinnaibu.monstercards.utils.TextChangedListener; public class EditStringFragment extends MCFragment { - // TODO: when this fragment is shown focus on the edit text and select it's contents private EditMonsterViewModel mEditMonsterViewModel; private EditStringViewModel mViewModel; private ViewHolder mHolder; @@ -52,6 +51,7 @@ 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()))); @@ -69,14 +69,34 @@ public class EditStringFragment extends MCFragment { return root; } + private String getTitleForStringType(StringType type) { + switch (type) { + case CONDITION_IMMUNITY: + return getString(R.string.title_edit_condition_immunity); + case DAMAGE_IMMUNITY: + return getString(R.string.title_edit_damage_immunity); + case DAMAGE_RESISTANCE: + return getString(R.string.title_edit_damage_resistance); + case DAMAGE_VULNERABILITY: + return getString(R.string.title_edit_damage_vulnerability); + case SENSE: + return getString(R.string.title_edit_sense); + default: + return ""; + } + } + + @Override + public void onStart() { + super.onStart(); + mHolder.description.requestFocus(); + } private static class ViewHolder { EditText description; - EditText name; ViewHolder(View root) { description = root.findViewById(R.id.description); - name = root.findViewById(R.id.name); } } } diff --git a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditStringsFragment.java b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditStringsFragment.java index 730bc05..33927b9 100644 --- a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditStringsFragment.java +++ b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditStringsFragment.java @@ -56,11 +56,29 @@ public class EditStringsFragment extends MCFragment { 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; } + private String getTitleForStringType(StringType type) { + switch (type) { + case CONDITION_IMMUNITY: + return getString(R.string.title_edit_condition_immunities); + case DAMAGE_IMMUNITY: + return getString(R.string.title_edit_damage_immunities); + case DAMAGE_RESISTANCE: + return getString(R.string.title_edit_damage_resistances); + case DAMAGE_VULNERABILITY: + return getString(R.string.title_edit_damage_vulnerabilities); + case SENSE: + return getString(R.string.title_edit_senses); + default: + return ""; + } + } + private void setupRecyclerView(@NonNull RecyclerView recyclerView) { Context context = requireContext(); LinearLayoutManager layoutManager = new LinearLayoutManager(context); diff --git a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditTraitFragment.java b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditTraitFragment.java index f315d95..1c69d04 100644 --- a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditTraitFragment.java +++ b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditTraitFragment.java @@ -52,6 +52,7 @@ public class EditTraitFragment extends MCFragment { mEditMonsterViewModel = new ViewModelProvider(backStackEntry).get(EditMonsterViewModel.class); View root = inflater.inflate(R.layout.fragment_edit_trait, container, false); mHolder = new EditTraitFragment.ViewHolder(root); + setTitle(getTitleForTraitType(mTraitType)); mHolder.name.setText(mViewModel.getNameAsString()); mHolder.name.addTextChangedListener(new TextChangedListener((TextChangedListener.OnTextChangedCallback) (s, start, before, count) -> mViewModel.setName(s.toString()))); @@ -72,6 +73,31 @@ public class EditTraitFragment extends MCFragment { return root; } + @Override + public void onStart() { + super.onStart(); + mHolder.name.requestFocus(); + } + + private String getTitleForTraitType(TraitType type) { + switch (type) { + case ABILITY: + return getString(R.string.title_edit_ability); + case ACTION: + return getString(R.string.title_edit_action); + case LAIR_ACTION: + return getString(R.string.title_edit_lair_action); + case LEGENDARY_ACTION: + return getString(R.string.title_edit_legendary_action); + case REACTIONS: + return getString(R.string.title_edit_reaction); + case REGIONAL_ACTION: + return getString(R.string.title_edit_regional_action); + default: + return ""; + } + } + private static class ViewHolder { EditText description; EditText name; diff --git a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditTraitsFragment.java b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditTraitsFragment.java index 71803d9..4ff2c86 100644 --- a/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditTraitsFragment.java +++ b/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditTraitsFragment.java @@ -57,11 +57,31 @@ public class EditTraitsFragment extends MCFragment { mViewModel = new ViewModelProvider(backStackEntry).get(EditMonsterViewModel.class); View root = inflater.inflate(R.layout.fragment_edit_traits_list, container, false); mHolder = new ViewHolder(root); + setTitle(getTitleForTraitType(mTraitType)); setupRecyclerView(mHolder.list); setupAddButton(mHolder.addTrait); return root; } + private String getTitleForTraitType(TraitType type) { + switch (type) { + case ABILITY: + return getString(R.string.title_edit_abilities); + case ACTION: + return getString(R.string.title_edit_actions); + case LAIR_ACTION: + return getString(R.string.title_edit_lair_actions); + case LEGENDARY_ACTION: + return getString(R.string.title_edit_legendary_actions); + case REACTIONS: + return getString(R.string.title_edit_reactions); + case REGIONAL_ACTION: + return getString(R.string.title_edit_regional_actions); + default: + return ""; + } + } + private void setupRecyclerView(@NonNull RecyclerView recyclerView) { Context context = requireContext(); LinearLayoutManager layoutManager = new LinearLayoutManager(context); diff --git a/app/src/main/java/com/majinnaibu/monstercards/ui/library/MonsterListRecyclerViewAdapter.java b/app/src/main/java/com/majinnaibu/monstercards/ui/library/MonsterListRecyclerViewAdapter.java index 1d157a4..ca0bab0 100644 --- a/app/src/main/java/com/majinnaibu/monstercards/ui/library/MonsterListRecyclerViewAdapter.java +++ b/app/src/main/java/com/majinnaibu/monstercards/ui/library/MonsterListRecyclerViewAdapter.java @@ -60,7 +60,6 @@ public class MonsterListRecyclerViewAdapter extends RecyclerView.Adapter { @@ -83,12 +82,10 @@ public class SearchResultsRecyclerViewAdapter extends RecyclerView.Adapter + - \ No newline at end of file + diff --git a/app/src/main/res/layout/component_advantage_picker.xml b/app/src/main/res/layout/component_advantage_picker.xml index 54f2cbd..55473c4 100644 --- a/app/src/main/res/layout/component_advantage_picker.xml +++ b/app/src/main/res/layout/component_advantage_picker.xml @@ -6,6 +6,7 @@ android:layout_height="wrap_content" android:layout_margin="@dimen/text_margin" tools:context=".ui.components.AdvantagePicker"> + - \ No newline at end of file + diff --git a/app/src/main/res/layout/component_proficiency_picker.xml b/app/src/main/res/layout/component_proficiency_picker.xml index bda8251..390b27e 100644 --- a/app/src/main/res/layout/component_proficiency_picker.xml +++ b/app/src/main/res/layout/component_proficiency_picker.xml @@ -6,6 +6,7 @@ android:layout_height="wrap_content" android:layout_margin="@dimen/text_margin" tools:context=".ui.components.ProficiencyPicker"> + - \ No newline at end of file + diff --git a/app/src/main/res/layout/component_stepper.xml b/app/src/main/res/layout/component_stepper.xml index d8535c7..34aa568 100644 --- a/app/src/main/res/layout/component_stepper.xml +++ b/app/src/main/res/layout/component_stepper.xml @@ -7,13 +7,19 @@ android:layout_margin="@dimen/text_margin" tools:context=".ui.components.Stepper"> + + +