HomeAdapter.kt 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package com.sduduzog.slimlauncher.adapters
  2. import android.view.LayoutInflater
  3. import android.view.View
  4. import android.view.ViewGroup
  5. import android.widget.TextView
  6. import androidx.recyclerview.widget.RecyclerView
  7. import com.sduduzog.slimlauncher.R
  8. import com.sduduzog.slimlauncher.data.model.HomeApp
  9. import com.sduduzog.slimlauncher.utils.OnLaunchAppListener
  10. class HomeAdapter(private val listener: OnLaunchAppListener)
  11. : RecyclerView.Adapter<HomeAdapter.ViewHolder>() {
  12. private val apps: MutableList<HomeApp> = mutableListOf()
  13. override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
  14. val view = LayoutInflater.from(parent.context)
  15. .inflate(R.layout.main_fragment_list_item, parent, false)
  16. return ViewHolder(view)
  17. }
  18. override fun onBindViewHolder(holder: ViewHolder, position: Int) {
  19. val item = apps[position]
  20. holder.mLabelView.text = item.appName
  21. holder.mLabelView.setOnClickListener {
  22. listener.onLaunch(item, it)
  23. }
  24. }
  25. override fun getItemCount(): Int = apps.size
  26. fun setItems(list: List<HomeApp>) {
  27. apps.addAll(list)
  28. notifyDataSetChanged()
  29. }
  30. inner class ViewHolder(mView: View) : RecyclerView.ViewHolder(mView) {
  31. val mLabelView: TextView = mView.findViewById(R.id.home_fragment_list_item_app_name)
  32. override fun toString(): String = "${super.toString()} '${mLabelView.text}'"
  33. }
  34. }