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
|
2023-04-20 08:17:23 +02:00
|
|
|
import com.denizk0461.studip.model.CanteenOfferGroup
|
2023-04-16 21:41:46 +02:00
|
|
|
|
2023-04-20 08:17:23 +02:00
|
|
|
class CanteenOfferPageAdapter(private var offers: List<CanteenOfferGroup>, private var daysCovered: Int, private var prefsRegex: Regex) : RecyclerView.Adapter<CanteenOfferPageAdapter.CanteenOfferPageViewHolder>() {
|
2023-04-16 21:41:46 +02:00
|
|
|
|
|
|
|
|
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-20 08:17:23 +02:00
|
|
|
adapter = CanteenOfferItemAdapter(offers.filter { it.dateId == position }) // TODO check if empty
|
2023-04-16 21:41:46 +02:00
|
|
|
scheduleLayoutAnimation()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-04-20 08:17:23 +02:00
|
|
|
fun setNewItems(items: List<CanteenOfferGroup>, daysCovered: Int) {
|
2023-04-16 21:41:46 +02:00
|
|
|
this.daysCovered = daysCovered
|
|
|
|
|
offers = items
|
|
|
|
|
notifyDataSetChanged()
|
|
|
|
|
}
|
|
|
|
|
}
|