2023-04-16 21:41:46 +02:00
|
|
|
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)
|
|
|
|
|
|
2023-04-17 14:32:07 +02:00
|
|
|
val filtered = offers.filter { it.dateId == position }
|
2023-04-16 21:41:46 +02:00
|
|
|
adapter = CanteenOfferItemAdapter(filtered) // TODO check if empty
|
|
|
|
|
scheduleLayoutAnimation()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fun setNewItems(items: List<CanteenOffer>, daysCovered: Int) {
|
|
|
|
|
this.daysCovered = daysCovered
|
|
|
|
|
offers = items
|
|
|
|
|
notifyDataSetChanged()
|
|
|
|
|
}
|
|
|
|
|
}
|