Shared RecycledViewPool
This commit is contained in:
@@ -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<FragmentFavouritesBinding>(),
|
||||
FavouritesTabLongClickListener, CategoriesEditDelegate.CategoriesEditCallback {
|
||||
FavouritesTabLongClickListener, CategoriesEditDelegate.CategoriesEditCallback,
|
||||
RecycledViewPoolHolder {
|
||||
|
||||
override val recycledViewPool = RecyclerView.RecycledViewPool()
|
||||
|
||||
private val viewModel by viewModel<FavouritesCategoriesViewModel>()
|
||||
private val editDelegate by lazy(LazyThreadSafetyMode.NONE) {
|
||||
|
||||
@@ -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<FragmentListBinding>(),
|
||||
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)
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
package org.koitharu.kotatsu.utils
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
|
||||
interface RecycledViewPoolHolder {
|
||||
|
||||
val recycledViewPool: RecyclerView.RecycledViewPool
|
||||
}
|
||||
Reference in New Issue
Block a user