Implemented user setting for displaying allergens next to an offer

This commit is contained in:
denizk0461
2023-04-23 22:06:29 +02:00
parent 8d6a15c4d5
commit d654ba8a03
7 changed files with 94 additions and 36 deletions
@@ -91,7 +91,9 @@ class CanteenFragment : AppFragment(), CanteenOfferItemAdapter.OnClickListener {
}
// Set up the view pager's adapter
viewPagerAdapter = CanteenOfferPageAdapter(listOf(), 0, this)
viewPagerAdapter = CanteenOfferPageAdapter(
listOf(), 0, this, viewModel.preferenceAllergen
)
// Assign the adapter to the view pager
binding.viewPager.adapter = viewPagerAdapter
@@ -129,7 +131,7 @@ class CanteenFragment : AppFragment(), CanteenOfferItemAdapter.OnClickListener {
viewModel.fetchOffers(onRefreshUpdate = { status ->
// TODO refresh updates
}, onFinish = {
createTabLayoutMediator()
// createTabLayoutMediator()
// binding.swipeRefreshLayout.isRefreshing = false
// createTabLayoutMediator()
})
@@ -7,9 +7,11 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.viewModels
import com.denizk0461.studip.BuildConfig
import com.denizk0461.studip.activity.FetcherActivity
import com.denizk0461.studip.databinding.FragmentSettingsBinding
import com.denizk0461.studip.viewmodel.SettingsViewModel
/**
* User-facing fragment view that is used to change app settings.
@@ -25,6 +27,9 @@ class SettingsFragment : AppFragment() {
*/
private val binding get() = _binding!!
// View model reference for providing access to the database
private val viewModel: SettingsViewModel by viewModels()
// Click counter on the app version button
private var appVersionClick = 0
@@ -45,6 +50,13 @@ class SettingsFragment : AppFragment() {
launchWebView()
}
binding.switchAllergens.apply {
isChecked = viewModel.preferenceAllergen
setOnCheckedChangeListener { _, b ->
viewModel.preferenceAllergen = b
}
}
// Set click listener for the app version button
binding.buttonAppVersion.setOnClickListener {
when (appVersionClick) {