diff --git a/app/src/main/java/fr/free/nrw/commons/explore/media/PageableMediaFragment.kt b/app/src/main/java/fr/free/nrw/commons/explore/media/PageableMediaFragment.kt index 321a5812d..b14588669 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/media/PageableMediaFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/explore/media/PageableMediaFragment.kt @@ -2,17 +2,24 @@ package fr.free.nrw.commons.explore.media import android.content.Context import android.os.Bundle +import android.view.LayoutInflater import android.view.View +import android.view.ViewGroup import fr.free.nrw.commons.Media import fr.free.nrw.commons.R import fr.free.nrw.commons.category.CategoryImagesCallback +import fr.free.nrw.commons.databinding.FragmentSearchPaginatedBinding import fr.free.nrw.commons.explore.paging.BasePagingFragment import fr.free.nrw.commons.media.MediaDetailPagerFragment.MediaDetailProvider -import kotlinx.android.synthetic.main.fragment_search_paginated.* - abstract class PageableMediaFragment : BasePagingFragment(), MediaDetailProvider { + /** + * ViewBinding + */ + private var _binding: FragmentSearchPaginatedBinding? = null + private val binding get() = _binding + override val pagedListAdapter by lazy { PagedMediaAdapter(categoryImagesCallback::onMediaClicked) } @@ -32,6 +39,15 @@ abstract class PageableMediaFragment : BasePagingFragment(), MediaDetailP } } + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + _binding = FragmentSearchPaginatedBinding.inflate(inflater, container, false) + return binding?.root + } + private val simpleDataObserver = SimpleDataObserver { categoryImagesCallback.viewPagerNotifyDataSetChanged() } @@ -41,6 +57,7 @@ abstract class PageableMediaFragment : BasePagingFragment(), MediaDetailP } override fun onDestroyView() { + _binding = null super.onDestroyView() pagedListAdapter.unregisterAdapterDataObserver(simpleDataObserver) } @@ -49,7 +66,7 @@ abstract class PageableMediaFragment : BasePagingFragment(), MediaDetailP pagedListAdapter.currentList?.get(position)?.takeIf { it.filename != null } .also { pagedListAdapter.currentList?.loadAround(position) - paginatedSearchResultsList.scrollToPosition(position) + binding?.paginatedSearchResultsList?.scrollToPosition(position) } override fun getTotalMediaCount(): Int = pagedListAdapter.itemCount