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
@@ -6,8 +6,10 @@ import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import com.denizk0461.studip.adapter.CanteenOfferPageAdapter
import com.denizk0461.studip.databinding.FragmentCanteenBinding
import com.denizk0461.studip.viewmodel.CanteenViewModel
import com.google.android.material.tabs.TabLayoutMediator
class CanteenFragment : Fragment() {
@@ -17,6 +19,9 @@ class CanteenFragment : Fragment() {
// onDestroyView.
private val binding get() = _binding!!
private var dates = listOf<String>()
private lateinit var viewPagerAdapter: CanteenOfferPageAdapter
private val viewModel: CanteenViewModel by viewModels()
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
@@ -27,7 +32,18 @@ class CanteenFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
viewPagerAdapter = CanteenOfferPageAdapter(listOf(), 0)
binding.viewPager.adapter = viewPagerAdapter
createTabLayoutMediator()
viewModel.allOffers.observe(viewLifecycleOwner) { offers ->
dates = offers.map { it.date }.distinct()
createTabLayoutMediator()
viewPagerAdapter.setNewItems(offers, dates.size)
// TODO this must be changed. if an exception is raised, then this will not fire
binding.swipeRefreshLayout.isRefreshing = false
}
@@ -39,6 +55,14 @@ class CanteenFragment : Fragment() {
}
}
private fun createTabLayoutMediator() {
if (dates.isNotEmpty()) {
TabLayoutMediator(binding.dayTabLayout, binding.viewPager) { tab, position ->
tab.text = dates[position]
}.attach()
}
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
@@ -7,7 +7,7 @@ import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.viewModels
import com.denizk0461.studip.R
import com.denizk0461.studip.adapter.StudIPEventAdapter
import com.denizk0461.studip.adapter.StudIPEventItemAdapter
import com.denizk0461.studip.adapter.StudIPEventPageAdapter
import com.denizk0461.studip.databinding.FragmentEventBinding
import com.denizk0461.studip.model.StudIPEvent
@@ -26,7 +26,6 @@ class EventFragment : Fragment() {
// onDestroyView.
private val binding get() = _binding!!
private lateinit var viewPagerAdapter: StudIPEventPageAdapter
private var dayOfWeek: Int = 0
private val dayStrings = listOf(
R.string.monday,
@@ -36,6 +35,7 @@ class EventFragment : Fragment() {
R.string.friday,
)
private lateinit var viewPagerAdapter: StudIPEventPageAdapter
private val viewModel: EventViewModel by viewModels()
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
@@ -54,7 +54,7 @@ class EventFragment : Fragment() {
else -> 0
}
viewPagerAdapter = StudIPEventPageAdapter(listOf(), object : StudIPEventAdapter.OnClickListener {
viewPagerAdapter = StudIPEventPageAdapter(listOf(), object : StudIPEventItemAdapter.OnClickListener {
override fun onClick(event: StudIPEvent) {
}