View cleanup.
Makes more numeric fields Steppers. Sets titles for fragments. Sets focus on the first EditText on most edit pages. Makes Checkbox be a SwitchCompat Fixes monster list item view.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<ArmorType>(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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<ChallengeRating>(requireContext(), R.layout.dropdown_list_item, ChallengeRating.values()) {
|
||||
@NonNull
|
||||
@@ -90,4 +89,4 @@ public class EditChallengeRatingFragment extends MCFragment {
|
||||
customProficiencyBonus = root.findViewById(R.id.customProficiencyBonus);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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<String> getCustomArmor() {
|
||||
return mCustomArmor;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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 {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -60,7 +60,6 @@ public class MonsterListRecyclerViewAdapter extends RecyclerView.Adapter<Monster
|
||||
@Override
|
||||
public void onBindViewHolder(final @NonNull ViewHolder holder, int position) {
|
||||
Monster monster = mValues.get(position);
|
||||
holder.mIdView.setText(monster.id.toString().substring(0, 6));
|
||||
holder.mContentView.setText(monster.name);
|
||||
holder.itemView.setTag(monster);
|
||||
holder.itemView.setOnClickListener(mOnClickListener);
|
||||
@@ -106,12 +105,10 @@ public class MonsterListRecyclerViewAdapter extends RecyclerView.Adapter<Monster
|
||||
}
|
||||
|
||||
static class ViewHolder extends RecyclerView.ViewHolder {
|
||||
final TextView mIdView;
|
||||
final TextView mContentView;
|
||||
|
||||
ViewHolder(View view) {
|
||||
super(view);
|
||||
mIdView = view.findViewById(R.id.id_text);
|
||||
mContentView = view.findViewById(R.id.content);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,7 +63,6 @@ public class SearchResultsRecyclerViewAdapter extends RecyclerView.Adapter<Searc
|
||||
@Override
|
||||
public void onBindViewHolder(final ViewHolder holder, int position) {
|
||||
Monster monster = mValues.get(position);
|
||||
holder.mIdView.setText(monster.id.toString().substring(0, 6));
|
||||
holder.mContentView.setText(monster.name);
|
||||
holder.itemView.setTag(monster);
|
||||
holder.itemView.setOnClickListener(view -> {
|
||||
@@ -83,12 +82,10 @@ public class SearchResultsRecyclerViewAdapter extends RecyclerView.Adapter<Searc
|
||||
}
|
||||
|
||||
public static class ViewHolder extends RecyclerView.ViewHolder {
|
||||
final TextView mIdView;
|
||||
final TextView mContentView;
|
||||
|
||||
ViewHolder(View view) {
|
||||
super(view);
|
||||
mIdView = view.findViewById(R.id.id_text);
|
||||
mContentView = view.findViewById(R.id.content);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user