This repository has been archived on 2026-05-26. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
avh-plan-android/app/src/main/java/com/denizd/substitutionplan/adapters/RingtoneAdapter.kt
T

56 lines
2.1 KiB
Kotlin
Raw Normal View History

package com.denizd.substitutionplan.adapters
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import com.denizd.substitutionplan.R
import com.denizd.substitutionplan.models.Ringtone
import com.google.android.material.card.MaterialCardView
internal class RingtoneAdapter(private var _ringtones: List<Ringtone>, onClickListener: OnClickListener) : RecyclerView.Adapter<RingtoneAdapter.RingtoneViewHolder>() {
private val _onClickListener = onClickListener
class RingtoneViewHolder(view: View, clickListener: OnClickListener) : RecyclerView.ViewHolder(view), View.OnClickListener {
val name: TextView = view.findViewById(R.id.item_text)
val uri: TextView = view.findViewById(R.id.item_text_no_lang)
val cardView: MaterialCardView = view.findViewById(R.id.cardView)
private val _clickListener = clickListener
init { view.setOnClickListener(this) }
override fun onClick(v: View?) { _clickListener.onRingtoneClick(adapterPosition, name.text.toString(), uri.text.toString()) }
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RingtoneViewHolder {
val v = LayoutInflater.from(parent.context).inflate(R.layout.list_item, parent, false)
return RingtoneViewHolder(
v,
_onClickListener
)
}
override fun onBindViewHolder(holder: RingtoneViewHolder, position: Int) {
val currentItem = _ringtones[position]
holder.name.text = currentItem.name
holder.uri.text = currentItem.uri
holder.cardView.setCardBackgroundColor(ContextCompat.getColor(holder.cardView.context,
R.color.colorBackground
))
}
override fun getItemCount(): Int = _ringtones.size
fun setRingtones(ringtones: List<Ringtone>) {
_ringtones = ringtones
notifyDataSetChanged()
}
public interface OnClickListener {
fun onRingtoneClick(position: Int, name: String, uri: String)
}
}