Moves DiffCallback methods into Monster class.

This commit is contained in:
2021-08-28 21:16:26 -07:00
parent 87ef892fef
commit 11dc71b424
2 changed files with 66 additions and 2 deletions

View File

@@ -21,6 +21,7 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.UUID;
@@ -268,6 +269,69 @@ public class Monster {
regionalActions = new ArrayList<>();
}
public static boolean areItemsTheSame(@NonNull Monster oldItem, @NonNull Monster newItem) {
return Objects.equals(oldItem.id, newItem.id);
}
public static boolean areContentsTheSame(@NonNull Monster oldItem, @NonNull Monster newItem) {
return Objects.equals(oldItem.abilities, newItem.abilities) &&
Objects.equals(oldItem.actions, newItem.actions) &&
Objects.equals(oldItem.alignment, newItem.alignment) &&
Objects.equals(oldItem.armorType, newItem.armorType) &&
Objects.equals(oldItem.burrowSpeed, newItem.burrowSpeed) &&
Objects.equals(oldItem.canHover, newItem.canHover) &&
Objects.equals(oldItem.challengeRating, newItem.challengeRating) &&
Objects.equals(oldItem.charismaSavingThrowAdvantage, newItem.charismaSavingThrowAdvantage) &&
Objects.equals(oldItem.charismaSavingThrowProficiency, newItem.charismaSavingThrowProficiency) &&
Objects.equals(oldItem.charismaScore, newItem.charismaScore) &&
Objects.equals(oldItem.climbSpeed, newItem.climbSpeed) &&
Objects.equals(oldItem.conditionImmunities, newItem.conditionImmunities) &&
Objects.equals(oldItem.constitutionSavingThrowAdvantage, newItem.constitutionSavingThrowAdvantage) &&
Objects.equals(oldItem.constitutionSavingThrowProficiency, newItem.constitutionSavingThrowProficiency) &&
Objects.equals(oldItem.constitutionScore, newItem.constitutionScore) &&
Objects.equals(oldItem.customChallengeRatingDescription, newItem.customChallengeRatingDescription) &&
Objects.equals(oldItem.customHPDescription, newItem.customHPDescription) &&
Objects.equals(oldItem.customProficiencyBonus, newItem.customProficiencyBonus) &&
Objects.equals(oldItem.customSpeedDescription, newItem.customSpeedDescription) &&
Objects.equals(oldItem.damageImmunities, newItem.damageImmunities) &&
Objects.equals(oldItem.damageResistances, newItem.damageResistances) &&
Objects.equals(oldItem.damageVulnerabilities, newItem.damageVulnerabilities) &&
Objects.equals(oldItem.dexteritySavingThrowAdvantage, newItem.dexteritySavingThrowAdvantage) &&
Objects.equals(oldItem.dexteritySavingThrowProficiency, newItem.dexteritySavingThrowProficiency) &&
Objects.equals(oldItem.dexterityScore, newItem.dexterityScore) &&
Objects.equals(oldItem.flySpeed, newItem.flySpeed) &&
Objects.equals(oldItem.hasCustomHP, newItem.hasCustomHP) &&
Objects.equals(oldItem.hasCustomSpeed, newItem.hasCustomSpeed) &&
Objects.equals(oldItem.hitDice, newItem.hitDice) &&
Objects.equals(oldItem.intelligenceSavingThrowAdvantage, newItem.intelligenceSavingThrowAdvantage) &&
Objects.equals(oldItem.intelligenceSavingThrowProficiency, newItem.intelligenceSavingThrowProficiency) &&
Objects.equals(oldItem.intelligenceScore, newItem.intelligenceScore) &&
Objects.equals(oldItem.lairActions, newItem.lairActions) &&
Objects.equals(oldItem.languages, newItem.languages) &&
Objects.equals(oldItem.legendaryActions, newItem.legendaryActions) &&
Objects.equals(oldItem.name, newItem.name) &&
Objects.equals(oldItem.naturalArmorBonus, newItem.naturalArmorBonus) &&
Objects.equals(oldItem.otherArmorDescription, newItem.otherArmorDescription) &&
Objects.equals(oldItem.reactions, newItem.reactions) &&
Objects.equals(oldItem.regionalActions, newItem.regionalActions) &&
Objects.equals(oldItem.senses, newItem.senses) &&
Objects.equals(oldItem.shieldBonus, newItem.shieldBonus) &&
Objects.equals(oldItem.size, newItem.size) &&
Objects.equals(oldItem.skills, newItem.skills) &&
Objects.equals(oldItem.strengthSavingThrowAdvantage, newItem.strengthSavingThrowAdvantage) &&
Objects.equals(oldItem.strengthSavingThrowProficiency, newItem.strengthSavingThrowProficiency) &&
Objects.equals(oldItem.strengthScore, newItem.strengthScore) &&
Objects.equals(oldItem.subtype, newItem.subtype) &&
Objects.equals(oldItem.swimSpeed, newItem.swimSpeed) &&
Objects.equals(oldItem.telepathyRange, newItem.telepathyRange) &&
Objects.equals(oldItem.type, newItem.type) &&
Objects.equals(oldItem.understandsButDescription, newItem.understandsButDescription) &&
Objects.equals(oldItem.wisdomSavingThrowAdvantage, newItem.wisdomSavingThrowAdvantage) &&
Objects.equals(oldItem.wisdomSavingThrowProficiency, newItem.wisdomSavingThrowProficiency) &&
Objects.equals(oldItem.wisdomScore, newItem.wisdomScore) &&
Objects.equals(oldItem.walkSpeed, newItem.walkSpeed);
}
public String getMeta() {
StringBuilder sb = new StringBuilder();
boolean isFirstOutput = true;

View File

@@ -28,12 +28,12 @@ public class DashboardRecyclerViewAdapter extends ListAdapter<Monster, Dashboard
private static final DiffUtil.ItemCallback<Monster> DIFF_CALLBACK = new DiffUtil.ItemCallback<Monster>() {
@Override
public boolean areItemsTheSame(@NonNull Monster oldItem, @NonNull Monster newItem) {
return oldItem.id.equals(newItem.id);
return Monster.areItemsTheSame(oldItem, newItem);
}
@Override
public boolean areContentsTheSame(@NonNull Monster oldItem, @NonNull Monster newItem) {
return oldItem.equals(newItem);
return Monster.areContentsTheSame(oldItem, newItem);
}
};
private final ItemCallback mOnClick;