Makes use of class compareTo methods when sorting skills and languages.

Fixes dirty state of skills when modifying them.
This commit is contained in:
Tom Hicks
2021-06-25 10:56:42 -07:00
parent 7408b9b139
commit 47d67861e2
2 changed files with 4 additions and 3 deletions

View File

@@ -203,7 +203,7 @@ public class EditMonsterViewModel extends ChangeTrackedViewModel {
mUnderstandsButDescription.resetValue(monster.understandsButDescription); mUnderstandsButDescription.resetValue(monster.understandsButDescription);
ArrayList<Skill> skills = new ArrayList<>(monster.skills); ArrayList<Skill> skills = new ArrayList<>(monster.skills);
Collections.sort(skills, (skill1, skill2) -> skill1.name.compareToIgnoreCase(skill2.name)); Collections.sort(skills, Skill::compareTo);
mSkills.resetValue(skills); mSkills.resetValue(skills);
ArrayList<String> senses = new ArrayList<>(monster.senses); ArrayList<String> senses = new ArrayList<>(monster.senses);
Collections.sort(senses, String::compareToIgnoreCase); Collections.sort(senses, String::compareToIgnoreCase);
@@ -221,7 +221,7 @@ public class EditMonsterViewModel extends ChangeTrackedViewModel {
Collections.sort(conditionImmunities, String::compareToIgnoreCase); Collections.sort(conditionImmunities, String::compareToIgnoreCase);
mConditionImmunities.resetValue(conditionImmunities); mConditionImmunities.resetValue(conditionImmunities);
ArrayList<Language> languages = new ArrayList<>(monster.languages); ArrayList<Language> languages = new ArrayList<>(monster.languages);
Collections.sort(languages, (lang1, lang2) -> lang1.getName().compareToIgnoreCase(lang2.getName())); Collections.sort(languages, Language::compareTo);
mLanguages.resetValue(languages); mLanguages.resetValue(languages);
mAbilities.resetValue(new ArrayList<>(monster.abilities)); mAbilities.resetValue(new ArrayList<>(monster.abilities));
mActions.resetValue(new ArrayList<>(monster.actions)); mActions.resetValue(new ArrayList<>(monster.actions));

View File

@@ -21,7 +21,7 @@ public class EditSkillViewModel extends ChangeTrackedViewModel {
mAbilityScore = new ChangeTrackedLiveData<>(AbilityScore.STRENGTH, this::makeDirty); mAbilityScore = new ChangeTrackedLiveData<>(AbilityScore.STRENGTH, this::makeDirty);
mAdvantageType = new ChangeTrackedLiveData<>(AdvantageType.NONE, this::makeDirty); mAdvantageType = new ChangeTrackedLiveData<>(AdvantageType.NONE, this::makeDirty);
mProficiencyType = new ChangeTrackedLiveData<>(ProficiencyType.NONE, this::makeDirty); mProficiencyType = new ChangeTrackedLiveData<>(ProficiencyType.NONE, this::makeDirty);
mName = new ChangeTrackedLiveData<>("Unknown Skill", this::makeDirty); mName = new ChangeTrackedLiveData<>("New Skill", this::makeDirty);
mSkill = new ChangeTrackedLiveData<>(makeSkill(), this::makeDirty); mSkill = new ChangeTrackedLiveData<>(makeSkill(), this::makeDirty);
} }
@@ -30,6 +30,7 @@ public class EditSkillViewModel extends ChangeTrackedViewModel {
mAdvantageType.resetValue(skill.advantageType); mAdvantageType.resetValue(skill.advantageType);
mProficiencyType.resetValue(skill.proficiencyType); mProficiencyType.resetValue(skill.proficiencyType);
mName.resetValue(skill.name); mName.resetValue(skill.name);
makeClean();
} }
public LiveData<Skill> getSkill() { public LiveData<Skill> getSkill() {