diff --git a/app/src/main/java/org/koitharu/kotatsu/favourites/ui/FavouritesContainerFragment.kt b/app/src/main/java/org/koitharu/kotatsu/favourites/ui/FavouritesContainerFragment.kt index 41ef1f802..22c0a957c 100644 --- a/app/src/main/java/org/koitharu/kotatsu/favourites/ui/FavouritesContainerFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/favourites/ui/FavouritesContainerFragment.kt @@ -4,6 +4,7 @@ import android.os.Bundle import android.view.* import androidx.core.graphics.Insets import androidx.core.view.updatePadding +import androidx.recyclerview.widget.RecyclerView import com.google.android.material.snackbar.Snackbar import com.google.android.material.tabs.TabLayoutMediator import org.koin.androidx.viewmodel.ext.android.viewModel @@ -14,13 +15,17 @@ import org.koitharu.kotatsu.databinding.FragmentFavouritesBinding import org.koitharu.kotatsu.favourites.ui.categories.CategoriesActivity import org.koitharu.kotatsu.favourites.ui.categories.CategoriesEditDelegate import org.koitharu.kotatsu.favourites.ui.categories.FavouritesCategoriesViewModel +import org.koitharu.kotatsu.utils.RecycledViewPoolHolder import org.koitharu.kotatsu.utils.ext.getDisplayMessage import org.koitharu.kotatsu.utils.ext.showPopupMenu import java.util.* import kotlin.collections.ArrayList class FavouritesContainerFragment : BaseFragment(), - FavouritesTabLongClickListener, CategoriesEditDelegate.CategoriesEditCallback { + FavouritesTabLongClickListener, CategoriesEditDelegate.CategoriesEditCallback, + RecycledViewPoolHolder { + + override val recycledViewPool = RecyclerView.RecycledViewPool() private val viewModel by viewModel() private val editDelegate by lazy(LazyThreadSafetyMode.NONE) { diff --git a/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaListFragment.kt b/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaListFragment.kt index 1e6bfd4c7..002050368 100644 --- a/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaListFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaListFragment.kt @@ -37,6 +37,7 @@ import org.koitharu.kotatsu.list.ui.adapter.MangaListAdapter import org.koitharu.kotatsu.list.ui.filter.FilterAdapter import org.koitharu.kotatsu.list.ui.filter.OnFilterChangedListener import org.koitharu.kotatsu.list.ui.model.ListModel +import org.koitharu.kotatsu.utils.RecycledViewPoolHolder import org.koitharu.kotatsu.utils.ext.clearItemDecorations import org.koitharu.kotatsu.utils.ext.getDisplayMessage import org.koitharu.kotatsu.utils.ext.toggleDrawer @@ -87,6 +88,10 @@ abstract class MangaListFragment : BaseFragment(), addItemDecoration(SectionItemDecoration(false, this@MangaListFragment)) } + (parentFragment as? RecycledViewPoolHolder)?.let { + binding.recyclerView.setRecycledViewPool(it.recycledViewPool) + } + viewModel.content.observe(viewLifecycleOwner, ::onListChanged) viewModel.filter.observe(viewLifecycleOwner, ::onInitFilter) viewModel.onError.observe(viewLifecycleOwner, ::onError) diff --git a/app/src/main/java/org/koitharu/kotatsu/utils/RecycledViewPoolHolder.kt b/app/src/main/java/org/koitharu/kotatsu/utils/RecycledViewPoolHolder.kt new file mode 100644 index 000000000..c21abefc8 --- /dev/null +++ b/app/src/main/java/org/koitharu/kotatsu/utils/RecycledViewPoolHolder.kt @@ -0,0 +1,8 @@ +package org.koitharu.kotatsu.utils + +import androidx.recyclerview.widget.RecyclerView + +interface RecycledViewPoolHolder { + + val recycledViewPool: RecyclerView.RecycledViewPool +} \ No newline at end of file