From 74c84807e421b395211d21a7badb2a46d4a85913 Mon Sep 17 00:00:00 2001 From: 62160052 <62160052@go.buu.ac.th> Date: Mon, 19 Sep 2022 03:54:15 +0700 Subject: [PATCH] Set Lifecycle owner to observe LiveData --- app/src/main/java/com/example/cupcake/FlavorFragment.kt | 1 + app/src/main/java/com/example/cupcake/PickupFragment.kt | 1 + app/src/main/java/com/example/cupcake/SummaryFragment.kt | 1 + .../java/com/example/cupcake/model/OrderViewModel.kt | 9 ++++++++- 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/example/cupcake/FlavorFragment.kt b/app/src/main/java/com/example/cupcake/FlavorFragment.kt index e7b74d2..cae160c 100644 --- a/app/src/main/java/com/example/cupcake/FlavorFragment.kt +++ b/app/src/main/java/com/example/cupcake/FlavorFragment.kt @@ -49,6 +49,7 @@ class FlavorFragment : Fragment() { binding?.apply { viewModel = sharedViewModel + lifecycleOwner = viewLifecycleOwner nextButton.setOnClickListener { goToNextScreen() } } } diff --git a/app/src/main/java/com/example/cupcake/PickupFragment.kt b/app/src/main/java/com/example/cupcake/PickupFragment.kt index e1bb1fd..799116c 100644 --- a/app/src/main/java/com/example/cupcake/PickupFragment.kt +++ b/app/src/main/java/com/example/cupcake/PickupFragment.kt @@ -49,6 +49,7 @@ class PickupFragment : Fragment() { binding?.apply { viewModel = sharedViewModel + lifecycleOwner = viewLifecycleOwner nextButton.setOnClickListener { goToNextScreen() } } } diff --git a/app/src/main/java/com/example/cupcake/SummaryFragment.kt b/app/src/main/java/com/example/cupcake/SummaryFragment.kt index 839e377..9a9affb 100644 --- a/app/src/main/java/com/example/cupcake/SummaryFragment.kt +++ b/app/src/main/java/com/example/cupcake/SummaryFragment.kt @@ -50,6 +50,7 @@ class SummaryFragment : Fragment() { binding?.apply { viewModel = sharedViewModel + lifecycleOwner = viewLifecycleOwner sendButton.setOnClickListener { sendOrder() } } } diff --git a/app/src/main/java/com/example/cupcake/model/OrderViewModel.kt b/app/src/main/java/com/example/cupcake/model/OrderViewModel.kt index 67b4a83..3539770 100644 --- a/app/src/main/java/com/example/cupcake/model/OrderViewModel.kt +++ b/app/src/main/java/com/example/cupcake/model/OrderViewModel.kt @@ -8,6 +8,7 @@ import java.util.Calendar import java.util.Locale private const val PRICE_PER_CUPCAKE = 2.00 +private const val PRICE_FOR_SAME_DAY_PICKUP = 3.00 class OrderViewModel : ViewModel() { private val _quantity = MutableLiveData<Int>() @@ -29,7 +30,12 @@ class OrderViewModel : ViewModel() { } private fun updatePrice() { - _price.value = (quantity.value ?: 0) * PRICE_PER_CUPCAKE + var calculatedPrice = (quantity.value ?: 0) * PRICE_PER_CUPCAKE + // If the user selected the first option (today) for pickup, add the surcharge + if (dateOptions[0] == _date.value) { + calculatedPrice += PRICE_FOR_SAME_DAY_PICKUP + } + _price.value = calculatedPrice } private fun getPickupOptions(): List<String> { @@ -62,6 +68,7 @@ class OrderViewModel : ViewModel() { fun setDate(pickupDate: String) { _date.value = pickupDate + updatePrice() } fun hasNoFlavorSet(): Boolean { -- GitLab