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/ColourAdapter.kt
T

58 lines
2.3 KiB
Kotlin
Raw Normal View History

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)
}
}