/* * Copyright (c) 2023 Samson Achiaga * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.certified.audionote.adapter import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import com.certified.audionote.databinding.ItemSliderBinding import com.certified.audionote.model.SliderItem class ViewPagerAdapter() : ListAdapter(DIFF_CALLBACK) { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { val binding = ItemSliderBinding.inflate(LayoutInflater.from(parent.context), parent, false) return ViewHolder(binding) } override fun onBindViewHolder(holder: ViewHolder, position: Int) { val currentItem = getItem(position) holder.bind(currentItem) } inner class ViewHolder(val binding: ItemSliderBinding) : RecyclerView.ViewHolder(binding.root) { fun bind(sliderItem: SliderItem) { binding.sliderItem = sliderItem } } companion object { val DIFF_CALLBACK = object : DiffUtil.ItemCallback() { override fun areItemsTheSame(oldItem: SliderItem, newItem: SliderItem) = oldItem.title == newItem.title override fun areContentsTheSame(oldItem: SliderItem, newItem: SliderItem) = oldItem == newItem } } }