From 8c573eda26383b07fe80973c9ef1c973cdfdb823 Mon Sep 17 00:00:00 2001 From: Paul Hawke Date: Thu, 9 Dec 2021 08:28:45 -0600 Subject: [PATCH] Moved the PagedSearchCategoriesAdapter to use view binding (#4702) --- .../categories/PagedCategoriesAdapter.kt | 49 +++++++++---------- 1 file changed, 22 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/explore/categories/PagedCategoriesAdapter.kt b/app/src/main/java/fr/free/nrw/commons/explore/categories/PagedCategoriesAdapter.kt index 738092495..6710f8dc8 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/categories/PagedCategoriesAdapter.kt +++ b/app/src/main/java/fr/free/nrw/commons/explore/categories/PagedCategoriesAdapter.kt @@ -1,43 +1,38 @@ package fr.free.nrw.commons.explore.categories -import android.view.View +import android.view.LayoutInflater import android.view.ViewGroup import androidx.paging.PagedListAdapter import androidx.recyclerview.widget.DiffUtil -import fr.free.nrw.commons.R +import androidx.recyclerview.widget.RecyclerView import fr.free.nrw.commons.category.CATEGORY_PREFIX -import fr.free.nrw.commons.explore.paging.BaseViewHolder -import fr.free.nrw.commons.explore.paging.inflate -import kotlinx.android.synthetic.main.item_recent_searches.* +import fr.free.nrw.commons.databinding.ItemRecentSearchesBinding +class PagedSearchCategoriesAdapter(private val onCategoryClicked: (String) -> Unit) : + PagedListAdapter(PagedSearchCategoriesDiffUtilCallback) { -class PagedSearchCategoriesAdapter(val onCategoryClicked: (String) -> Unit) : - PagedListAdapter( - object : DiffUtil.ItemCallback() { - override fun areItemsTheSame(oldItem: String, newItem: String) = - oldItem == newItem - - override fun areContentsTheSame(oldItem: String, newItem: String) = - oldItem == newItem - } - ) { - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CategoryItemViewHolder { - return CategoryItemViewHolder( - parent.inflate(R.layout.item_recent_searches), - onCategoryClicked - ) - } + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = CategoryItemViewHolder( + ItemRecentSearchesBinding.inflate(LayoutInflater.from(parent.context), parent, false) + ) override fun onBindViewHolder(holder: CategoryItemViewHolder, position: Int) { - holder.bind(getItem(position)!!) + holder.bind(getItem(position)!!, onCategoryClicked) } } -class CategoryItemViewHolder(containerView: View, val onCategoryClicked: (String) -> Unit) : - BaseViewHolder(containerView) { - - override fun bind(item: String) { - containerView.setOnClickListener { onCategoryClicked(item) } +class CategoryItemViewHolder( + private val binding: ItemRecentSearchesBinding +) : RecyclerView.ViewHolder(binding.root) { + fun bind(item: String, onCategoryClicked: (String) -> Unit) = with(binding) { + root.setOnClickListener { onCategoryClicked(item) } textView1.text = item.substringAfter(CATEGORY_PREFIX) } } + +private object PagedSearchCategoriesDiffUtilCallback : DiffUtil.ItemCallback() { + override fun areItemsTheSame(oldItem: String, newItem: String) = + oldItem == newItem + + override fun areContentsTheSame(oldItem: String, newItem: String) = + oldItem == newItem +}