From ea3b8767de8bdbb89a6fbd4c84d7727b05655d89 Mon Sep 17 00:00:00 2001 From: arkon Date: Sun, 2 Aug 2020 12:52:40 -0400 Subject: [PATCH] Fix crash when filter groups contain items with identical names (closes #3568) --- .../ui/browse/source/filter/SectionItems.kt | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/filter/SectionItems.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/filter/SectionItems.kt index 12e1eb4aff..06d1b8a5d7 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/filter/SectionItems.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/filter/SectionItems.kt @@ -16,11 +16,14 @@ class TriStateSectionItem(filter: Filter.TriState) : TriStateItem(filter), ISect override fun equals(other: Any?): Boolean { if (this === other) return true if (javaClass != other?.javaClass) return false - return filter == (other as TriStateSectionItem).filter + + other as TriStateSectionItem + if (head != other.head) return false + return filter == other.filter } override fun hashCode(): Int { - return filter.hashCode() + return filter.hashCode() + (head?.hashCode() ?: 0) } } @@ -37,11 +40,14 @@ class TextSectionItem(filter: Filter.Text) : TextItem(filter), ISectionable) : SelectItem(filter), ISection override fun equals(other: Any?): Boolean { if (this === other) return true if (javaClass != other?.javaClass) return false - return filter == (other as SelectSectionItem).filter + + other as SelectSectionItem + if (head != other.head) return false + return filter == other.filter } override fun hashCode(): Int { - return filter.hashCode() + return filter.hashCode() + (head?.hashCode() ?: 0) } }