Added app language support (I think); fragments rely on Bundles instead of constructor parameters to get data, mitigating a source of crashes

This commit is contained in:
denizk0461
2023-04-30 22:47:59 +02:00
parent 7243df0f06
commit 079e66ad50
23 changed files with 619 additions and 472 deletions
@@ -1,19 +1,22 @@
package com.denizk0461.studip.adapter
import android.os.Bundle
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import androidx.fragment.app.FragmentManager
import androidx.lifecycle.Lifecycle
import androidx.viewpager2.adapter.FragmentStateAdapter
import com.denizk0461.studip.fragment.CanteenPageFragment
/**
* Custom ViewPager adapter for managing multiple pages of canteen offers.
*
* @param fragmentActivity parent fragment activity
* @param childFragmentManager child fragment manager of the parent fragment
* @param lifecycle parent fragment lifecycle
*/
class CanteenOfferPageAdapter(
fragmentActivity: FragmentActivity,
) : FragmentStateAdapter(fragmentActivity) {
childFragmentManager: FragmentManager,
lifecycle: Lifecycle,
) : FragmentStateAdapter(childFragmentManager, lifecycle) {
private var count: Int = 0
@@ -21,9 +24,11 @@ class CanteenOfferPageAdapter(
override fun getItemCount(): Int = count
override fun createFragment(position: Int): Fragment =
CanteenPageFragment(
position,
)
CanteenPageFragment().also { f ->
val bundle = Bundle()
bundle.putInt("currentDay", position)
f.arguments = bundle
}
fun setItemCount(newCount: Int) {
count = newCount