From 50619b73125f3496af0fe4a1a03c998e3b49e81a Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Tue, 10 Jan 2023 17:49:37 +0100 Subject: [PATCH] improve background filtering --- .../android/habitica/models/CustomizationFilter.kt | 14 ++++++++++++++ .../customization/AvatarCustomizationFragment.kt | 2 ++ 2 files changed, 16 insertions(+) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/CustomizationFilter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/CustomizationFilter.kt index c2a055f03..3c5a5ae69 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/CustomizationFilter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/CustomizationFilter.kt @@ -9,4 +9,18 @@ data class CustomizationFilter( get() { return onlyPurchased || months.isNotEmpty() } + + override fun equals(other: Any?): Boolean { + if (other is CustomizationFilter) { + return onlyPurchased == other.onlyPurchased && ascending == other.ascending && months.size == other.months.size && months.containsAll(other.months) + } + return super.equals(other) + } + + override fun hashCode(): Int { + var result = onlyPurchased.hashCode() + result = 31 * result + ascending.hashCode() + result = 31 * result + months.hashCode() + return result + } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt index 75c727b64..924ca94f3 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt @@ -334,6 +334,8 @@ class AvatarCustomizationFragment : button.text button.setOnCheckedChangeListener { _, isChecked -> val newFilter = filter.copy() + newFilter.months = mutableListOf() + newFilter.months.addAll(filter.months) if (!isChecked && newFilter.months.contains(identifier)) { button.typeface = Typeface.create("sans-serif", Typeface.NORMAL) newFilter.months.remove(identifier)