Archived
Canteen content can now be displayed
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
package com.denizk0461.studip.adapter
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.denizk0461.studip.databinding.ItemCanteenBinding
|
||||
import com.denizk0461.studip.model.CanteenOffer
|
||||
|
||||
class CanteenOfferItemAdapter(private val offers: List<CanteenOffer>) : RecyclerView.Adapter<CanteenOfferItemAdapter.OfferViewHolder>() {
|
||||
|
||||
class OfferViewHolder(val binding: ItemCanteenBinding) : RecyclerView.ViewHolder(binding.root)
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): OfferViewHolder {
|
||||
return OfferViewHolder(
|
||||
ItemCanteenBinding.inflate(
|
||||
LayoutInflater.from(parent.context),
|
||||
parent,
|
||||
false
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
override fun getItemCount(): Int = offers.size
|
||||
|
||||
override fun onBindViewHolder(holder: OfferViewHolder, position: Int) {
|
||||
val currentItem = offers[position]
|
||||
|
||||
holder.binding.textCategory.text = currentItem.category
|
||||
holder.binding.tempContent.text = "${currentItem.title} • ${currentItem.price}"
|
||||
|
||||
// TODO inflate view saying "no offers!" or sth
|
||||
}
|
||||
|
||||
// interface OnClickListener {
|
||||
// fun onClick(event: StudIPEvent)
|
||||
// fun onLongClick(event: StudIPEvent)
|
||||
// }
|
||||
}
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -9,9 +9,9 @@ import com.denizk0461.studip.model.StudIPEvent
|
||||
import com.denizk0461.studip.databinding.ItemEventBinding
|
||||
import java.util.*
|
||||
|
||||
class StudIPEventAdapter(
|
||||
class StudIPEventItemAdapter(
|
||||
events: List<StudIPEvent>, private val currentDay: Int, private val onClickListener: OnClickListener
|
||||
) : RecyclerView.Adapter<StudIPEventAdapter.EventViewHolder>() {
|
||||
) : RecyclerView.Adapter<StudIPEventItemAdapter.EventViewHolder>() {
|
||||
|
||||
private val filteredEvents: List<StudIPEvent> = events.filter { it.day == currentDay }
|
||||
private val currentCalendar = Calendar.getInstance()
|
||||
@@ -5,14 +5,14 @@ import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.denizk0461.studip.model.StudIPEvent
|
||||
import com.denizk0461.studip.databinding.ItemEventPageBinding
|
||||
import com.denizk0461.studip.databinding.ItemScrollablePageBinding
|
||||
|
||||
class StudIPEventPageAdapter(private var events: List<StudIPEvent>, private val onClickListener: StudIPEventAdapter.OnClickListener) : RecyclerView.Adapter<StudIPEventPageAdapter.EventPageViewHolder>() {
|
||||
class StudIPEventPageAdapter(private var events: List<StudIPEvent>, private val onClickListener: StudIPEventItemAdapter.OnClickListener) : RecyclerView.Adapter<StudIPEventPageAdapter.EventPageViewHolder>() {
|
||||
|
||||
class EventPageViewHolder(val binding: ItemEventPageBinding) : RecyclerView.ViewHolder(binding.root)
|
||||
class EventPageViewHolder(val binding: ItemScrollablePageBinding) : RecyclerView.ViewHolder(binding.root)
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): EventPageViewHolder = EventPageViewHolder(
|
||||
ItemEventPageBinding.inflate(
|
||||
ItemScrollablePageBinding.inflate(
|
||||
LayoutInflater.from(parent.context),
|
||||
parent,
|
||||
false
|
||||
@@ -25,7 +25,7 @@ class StudIPEventPageAdapter(private var events: List<StudIPEvent>, private val
|
||||
|
||||
holder.binding.pageRecyclerView.apply {
|
||||
layoutManager = LinearLayoutManager(holder.binding.root.context, LinearLayoutManager.VERTICAL, false)
|
||||
adapter = StudIPEventAdapter(events, currentDay = position, onClickListener) // TODO check if empty
|
||||
adapter = StudIPEventItemAdapter(events, currentDay = position, onClickListener) // TODO check if empty
|
||||
scheduleLayoutAnimation()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user