Archived
58 lines
2.3 KiB
Kotlin
58 lines
2.3 KiB
Kotlin
package com.denizd.substitutionplan
|
|
|
|
import android.preference.PreferenceManager
|
|
import android.view.LayoutInflater
|
|
import android.view.View
|
|
import android.view.ViewGroup
|
|
import android.widget.ImageView
|
|
import android.widget.LinearLayout
|
|
import android.widget.TextView
|
|
import androidx.appcompat.app.AlertDialog
|
|
import androidx.core.content.ContextCompat
|
|
import androidx.recyclerview.widget.RecyclerView
|
|
import com.google.android.material.button.MaterialButton
|
|
import com.google.android.material.card.MaterialCardView
|
|
|
|
class ColourAdapter(private var mColours: List<Colour>, onClickListener: OnClickListener) : RecyclerView.Adapter<ColourAdapter.ColourViewHolder>() {
|
|
|
|
val mOnClickListener = onClickListener
|
|
|
|
class ColourViewHolder(view: View, clickListener: OnClickListener) : RecyclerView.ViewHolder(view), View.OnClickListener {
|
|
val title: TextView = view.findViewById(R.id.item_text)
|
|
var image: ImageView = view.findViewById(R.id.item_image)
|
|
val titleNoLang: TextView = view.findViewById(R.id.item_text_no_lang)
|
|
val mClickListener = clickListener
|
|
init { view.setOnClickListener(this) }
|
|
|
|
override fun onClick(v: View?) { mClickListener.onClick(adapterPosition, title.text.toString(), titleNoLang.text.toString()) }
|
|
|
|
}
|
|
|
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ColourViewHolder {
|
|
val v = LayoutInflater.from(parent.context).inflate(R.layout.list_item, parent, false)
|
|
return ColourViewHolder(v, mOnClickListener)
|
|
}
|
|
|
|
override fun onBindViewHolder(holder: ColourViewHolder, position: Int) {
|
|
val currentItem = mColours[position]
|
|
val prefs = PreferenceManager.getDefaultSharedPreferences(holder.image.context)
|
|
|
|
holder.title.text = currentItem.title
|
|
holder.titleNoLang.text = currentItem.titleNoLang
|
|
holder.image.setImageDrawable(ContextCompat.getDrawable(holder.image.context, currentItem.icon))
|
|
if (currentItem.colour != 0) {
|
|
holder.image.drawable.setTint(ContextCompat.getColor(holder.image.context, currentItem.colour))
|
|
}
|
|
}
|
|
|
|
override fun getItemCount(): Int = mColours.size
|
|
|
|
fun setColours(colours: List<Colour>) {
|
|
mColours = colours
|
|
notifyDataSetChanged()
|
|
}
|
|
|
|
public interface OnClickListener {
|
|
fun onClick(position: Int, title: String, titleNolang: String)
|
|
}
|
|
} |