mirror of
https://github.com/null2264/yokai.git
synced 2025-06-21 10:44:42 +00:00
fix(browse): Recycle on adapter clear
This commit is contained in:
parent
fcaff92db1
commit
0d205f4a6d
3 changed files with 29 additions and 1 deletions
|
@ -0,0 +1,24 @@
|
||||||
|
package eu.kanade.tachiyomi.ui.source.browse
|
||||||
|
|
||||||
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
|
import eu.davidea.flexibleadapter.FlexibleAdapter
|
||||||
|
import eu.davidea.flexibleadapter.items.IFlexible
|
||||||
|
|
||||||
|
class BrowseSourceAdapter : FlexibleAdapter<IFlexible<*>>(null, null) {
|
||||||
|
private fun clearItems() {
|
||||||
|
allBoundViewHolders.forEach { holder ->
|
||||||
|
val item = getItem(holder.flexibleAdapterPosition) as? BrowseSourceItem ?: return@forEach
|
||||||
|
item.recycle()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun clear() {
|
||||||
|
clearItems()
|
||||||
|
super.clear()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onDetachedFromRecyclerView(recyclerView: RecyclerView) {
|
||||||
|
clearItems()
|
||||||
|
super.onDetachedFromRecyclerView(recyclerView)
|
||||||
|
}
|
||||||
|
}
|
|
@ -165,7 +165,7 @@ open class BrowseSourceController(bundle: Bundle) :
|
||||||
super.onViewCreated(view)
|
super.onViewCreated(view)
|
||||||
|
|
||||||
// Initialize adapter, scroll listener and recycler views
|
// Initialize adapter, scroll listener and recycler views
|
||||||
adapter = FlexibleAdapter(null, this)
|
adapter = BrowseSourceAdapter()
|
||||||
setupRecycler(view)
|
setupRecycler(view)
|
||||||
|
|
||||||
binding.fab.isVisible = presenter.sourceFilters.isNotEmpty()
|
binding.fab.isVisible = presenter.sourceFilters.isNotEmpty()
|
||||||
|
|
|
@ -104,6 +104,10 @@ class BrowseSourceItem(
|
||||||
holder: BrowseSourceHolder?,
|
holder: BrowseSourceHolder?,
|
||||||
position: Int
|
position: Int
|
||||||
) {
|
) {
|
||||||
|
recycle()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun recycle() {
|
||||||
job?.cancel()
|
job?.cancel()
|
||||||
job = null
|
job = null
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue