Shared RecycledViewPool
This commit is contained in:
@@ -4,6 +4,7 @@ import android.os.Bundle
|
|||||||
import android.view.*
|
import android.view.*
|
||||||
import androidx.core.graphics.Insets
|
import androidx.core.graphics.Insets
|
||||||
import androidx.core.view.updatePadding
|
import androidx.core.view.updatePadding
|
||||||
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import com.google.android.material.snackbar.Snackbar
|
import com.google.android.material.snackbar.Snackbar
|
||||||
import com.google.android.material.tabs.TabLayoutMediator
|
import com.google.android.material.tabs.TabLayoutMediator
|
||||||
import org.koin.androidx.viewmodel.ext.android.viewModel
|
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.CategoriesActivity
|
||||||
import org.koitharu.kotatsu.favourites.ui.categories.CategoriesEditDelegate
|
import org.koitharu.kotatsu.favourites.ui.categories.CategoriesEditDelegate
|
||||||
import org.koitharu.kotatsu.favourites.ui.categories.FavouritesCategoriesViewModel
|
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.getDisplayMessage
|
||||||
import org.koitharu.kotatsu.utils.ext.showPopupMenu
|
import org.koitharu.kotatsu.utils.ext.showPopupMenu
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import kotlin.collections.ArrayList
|
import kotlin.collections.ArrayList
|
||||||
|
|
||||||
class FavouritesContainerFragment : BaseFragment<FragmentFavouritesBinding>(),
|
class FavouritesContainerFragment : BaseFragment<FragmentFavouritesBinding>(),
|
||||||
FavouritesTabLongClickListener, CategoriesEditDelegate.CategoriesEditCallback {
|
FavouritesTabLongClickListener, CategoriesEditDelegate.CategoriesEditCallback,
|
||||||
|
RecycledViewPoolHolder {
|
||||||
|
|
||||||
|
override val recycledViewPool = RecyclerView.RecycledViewPool()
|
||||||
|
|
||||||
private val viewModel by viewModel<FavouritesCategoriesViewModel>()
|
private val viewModel by viewModel<FavouritesCategoriesViewModel>()
|
||||||
private val editDelegate by lazy(LazyThreadSafetyMode.NONE) {
|
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.FilterAdapter
|
||||||
import org.koitharu.kotatsu.list.ui.filter.OnFilterChangedListener
|
import org.koitharu.kotatsu.list.ui.filter.OnFilterChangedListener
|
||||||
import org.koitharu.kotatsu.list.ui.model.ListModel
|
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.clearItemDecorations
|
||||||
import org.koitharu.kotatsu.utils.ext.getDisplayMessage
|
import org.koitharu.kotatsu.utils.ext.getDisplayMessage
|
||||||
import org.koitharu.kotatsu.utils.ext.toggleDrawer
|
import org.koitharu.kotatsu.utils.ext.toggleDrawer
|
||||||
@@ -87,6 +88,10 @@ abstract class MangaListFragment : BaseFragment<FragmentListBinding>(),
|
|||||||
addItemDecoration(SectionItemDecoration(false, this@MangaListFragment))
|
addItemDecoration(SectionItemDecoration(false, this@MangaListFragment))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
(parentFragment as? RecycledViewPoolHolder)?.let {
|
||||||
|
binding.recyclerView.setRecycledViewPool(it.recycledViewPool)
|
||||||
|
}
|
||||||
|
|
||||||
viewModel.content.observe(viewLifecycleOwner, ::onListChanged)
|
viewModel.content.observe(viewLifecycleOwner, ::onListChanged)
|
||||||
viewModel.filter.observe(viewLifecycleOwner, ::onInitFilter)
|
viewModel.filter.observe(viewLifecycleOwner, ::onInitFilter)
|
||||||
viewModel.onError.observe(viewLifecycleOwner, ::onError)
|
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