diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditAbilityScoresFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditAbilityScoresFragment.java index c1eea6e..3c77867 100644 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditAbilityScoresFragment.java +++ b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditAbilityScoresFragment.java @@ -30,11 +30,9 @@ public class EditAbilityScoresFragment extends Fragment { 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)); @@ -80,4 +78,4 @@ public class EditAbilityScoresFragment extends Fragment { charisma = root.findViewById(R.id.charisma); } } -} \ No newline at end of file +} diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditArmorFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditArmorFragment.java index 75b159a..ec94c9e 100644 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditArmorFragment.java +++ b/Android/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/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditBasicInfoFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditBasicInfoFragment.java index 1ccf3e1..17a9657 100644 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditBasicInfoFragment.java +++ b/Android/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/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditChallengeRatingFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditChallengeRatingFragment.java index c2b0008..f37f630 100644 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditChallengeRatingFragment.java +++ b/Android/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/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditLanguageFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditLanguageFragment.java index 3039241..369b18c 100644 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditLanguageFragment.java +++ b/Android/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/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditLanguagesFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditLanguagesFragment.java index 53740f9..dfc4453 100644 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditLanguagesFragment.java +++ b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditLanguagesFragment.java @@ -40,10 +40,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/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 46ebc38..1e79b48 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 @@ -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/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSavingThrowsFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSavingThrowsFragment.java index e66fe9d..259666d 100644 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSavingThrowsFragment.java +++ b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSavingThrowsFragment.java @@ -26,11 +26,10 @@ public class EditSavingThrowsFragment extends Fragment { 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()); @@ -93,4 +92,4 @@ public class EditSavingThrowsFragment extends Fragment { charismaProficiency = root.findViewById(R.id.charismaProficiency); } } -} \ No newline at end of file +} diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSkillFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSkillFragment.java index c744460..8d086c3 100644 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSkillFragment.java +++ b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSkillFragment.java @@ -9,7 +9,6 @@ import android.widget.EditText; import androidx.activity.OnBackPressedCallback; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; import androidx.navigation.NavBackStackEntry; import androidx.navigation.NavController; @@ -24,19 +23,19 @@ import com.majinnaibu.monstercards.ui.shared.MCFragment; import com.majinnaibu.monstercards.utils.Logger; import com.majinnaibu.monstercards.utils.TextChangedListener; -public class EditSkillFragment extends Fragment { +public class EditSkillFragment extends MCFragment { private EditMonsterViewModel mEditMonsterViewModel; private EditSkillViewModel mViewModel; private ViewHolder mHolder; private Skill mOldSkill; @Override - public void onCreate(@Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) { + public void onCreate(@Nullable Bundle savedInstanceState) { mViewModel = new ViewModelProvider(this).get(EditSkillViewModel.class); if (getArguments() != null) { EditSkillFragmentArgs args = EditSkillFragmentArgs.fromBundle(getArguments()); - mViewModel.copyFromSkill(args.getName(), args.getAbilityScore(), args.getProficiency(), args.getAdvantage()); mOldSkill = new Skill(args.getName(), args.getAbilityScore(), args.getAdvantage(), args.getProficiency()); + mViewModel.copyFromSkill(mOldSkill); } else { Logger.logWTF("EditSkillFragment needs arguments."); mOldSkill = null; @@ -50,11 +49,9 @@ public class EditSkillFragment extends Fragment { 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 Fragment { return root; } + @Override + public void onStart() { + super.onStart(); + mHolder.name.requestFocus(); + } + private static class ViewHolder { AbilityScorePicker abilityScore; AdvantagePicker advantage; diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSkillsFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSkillsFragment.java index 608896f..a4f0785 100644 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSkillsFragment.java +++ b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSkillsFragment.java @@ -44,10 +44,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/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSpeedFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSpeedFragment.java index 8d53f8a..611fc57 100644 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSpeedFragment.java +++ b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditSpeedFragment.java @@ -28,11 +28,9 @@ public class EditSpeedFragment extends Fragment { 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)); @@ -90,4 +88,4 @@ public class EditSpeedFragment extends Fragment { } } -} \ 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 0610a18..a3385ad 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 @@ -51,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()))); @@ -68,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/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 6ee2b80..16794a9 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 @@ -78,11 +78,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/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditTraitFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditTraitFragment.java index f315d95..1c69d04 100644 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditTraitFragment.java +++ b/Android/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/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditTraitsFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditTraitsFragment.java index 71803d9..4ff2c86 100644 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/editmonster/EditTraitsFragment.java +++ b/Android/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/Android/app/src/main/java/com/majinnaibu/monstercards/ui/search/SearchResultsRecyclerViewAdapter.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/search/SearchResultsRecyclerViewAdapter.java index c9f62e2..e28dea6 100644 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/search/SearchResultsRecyclerViewAdapter.java +++ b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/search/SearchResultsRecyclerViewAdapter.java @@ -62,7 +62,6 @@ public class SearchResultsRecyclerViewAdapter extends RecyclerView.Adapter { @@ -82,12 +81,10 @@ public class SearchResultsRecyclerViewAdapter extends RecyclerView.Adapter + - \ No newline at end of file + diff --git a/Android/app/src/main/res/layout/component_advantage_picker.xml b/Android/app/src/main/res/layout/component_advantage_picker.xml index a3ee953..ad1339b 100644 --- a/Android/app/src/main/res/layout/component_advantage_picker.xml +++ b/Android/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/Android/app/src/main/res/layout/component_proficiency_picker.xml b/Android/app/src/main/res/layout/component_proficiency_picker.xml index bda8251..390b27e 100644 --- a/Android/app/src/main/res/layout/component_proficiency_picker.xml +++ b/Android/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/Android/app/src/main/res/layout/component_stepper.xml b/Android/app/src/main/res/layout/component_stepper.xml index d8535c7..34aa568 100644 --- a/Android/app/src/main/res/layout/component_stepper.xml +++ b/Android/app/src/main/res/layout/component_stepper.xml @@ -7,13 +7,19 @@ android:layout_margin="@dimen/text_margin" tools:context=".ui.components.Stepper"> + + +