diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/filter/TextItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/filter/TextItem.kt index 9873d5f03..b0dcf5818 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/filter/TextItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/filter/TextItem.kt @@ -13,6 +13,11 @@ import eu.kanade.tachiyomi.source.model.Filter import eu.kanade.tachiyomi.widget.SimpleTextWatcher open class TextItem(val filter: Filter.Text) : AbstractFlexibleItem() { + private val textWatcher = object : SimpleTextWatcher() { + override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) { + filter.state = s.toString() + } + } override fun getLayoutRes(): Int { return R.layout.navigation_view_text @@ -25,11 +30,11 @@ open class TextItem(val filter: Filter.Text) : AbstractFlexibleItem>, holder: Holder, position: Int, payloads: List?) { holder.wrapper.hint = filter.name holder.edit.setText(filter.state) - holder.edit.addTextChangedListener(object : SimpleTextWatcher() { - override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) { - filter.state = s.toString() - } - }) + holder.edit.addTextChangedListener(textWatcher) + } + + override fun unbindViewHolder(adapter: FlexibleAdapter>, holder: Holder, position: Int) { + holder.edit.removeTextChangedListener(textWatcher) } override fun equals(other: Any?): Boolean {