Canteen content can now be displayed

This commit is contained in:
denizk0461
2023-04-16 21:41:46 +02:00
parent 5543eb4e32
commit 61822f1f45
12 changed files with 171 additions and 16 deletions
@@ -0,0 +1,42 @@
package com.denizk0461.studip.adapter
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.denizk0461.studip.databinding.ItemScrollablePageBinding
import com.denizk0461.studip.model.CanteenOffer
class CanteenOfferPageAdapter(private var offers: List<CanteenOffer>, private var daysCovered: Int) : RecyclerView.Adapter<CanteenOfferPageAdapter.CanteenOfferPageViewHolder>() {
class CanteenOfferPageViewHolder(val binding: ItemScrollablePageBinding) : RecyclerView.ViewHolder(binding.root)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CanteenOfferPageViewHolder =
CanteenOfferPageViewHolder(
ItemScrollablePageBinding.inflate(
LayoutInflater.from(parent.context),
parent,
false
)
)
override fun getItemCount(): Int = daysCovered
override fun onBindViewHolder(holder: CanteenOfferPageViewHolder, position: Int) {
holder.binding.pageRecyclerView.apply {
layoutManager = LinearLayoutManager(holder.binding.root.context, LinearLayoutManager.VERTICAL, false)
val filtered = offers.filter { it.dateId == position + 1 }
adapter = CanteenOfferItemAdapter(filtered) // TODO check if empty
scheduleLayoutAnimation()
}
}
fun setNewItems(items: List<CanteenOffer>, daysCovered: Int) {
this.daysCovered = daysCovered
offers = items
notifyDataSetChanged()
}
}