diff --git a/app/src/main/java/com/example/cupcake/FlavorFragment.kt b/app/src/main/java/com/example/cupcake/FlavorFragment.kt index 928148455e56b623c66ad230426c1229b88d4c83..35f2bf25193ea75124850e8053e607e06e5cf12f 100644 --- a/app/src/main/java/com/example/cupcake/FlavorFragment.kt +++ b/app/src/main/java/com/example/cupcake/FlavorFragment.kt @@ -54,6 +54,11 @@ class FlavorFragment : Fragment() { } } + fun cancelOrder() { + sharedViewModel.resetOrder() + findNavController().navigate(R.id.action_flavorFragment_to_startFragment) + } + /** * Navigate to the next screen to choose pickup date. */ diff --git a/app/src/main/java/com/example/cupcake/PickupFragment.kt b/app/src/main/java/com/example/cupcake/PickupFragment.kt index 0a7f09f40c507b27af567990cfcc05e12b4e2457..47831c4a4c1f39b3037d0970fc177512accec558 100644 --- a/app/src/main/java/com/example/cupcake/PickupFragment.kt +++ b/app/src/main/java/com/example/cupcake/PickupFragment.kt @@ -54,6 +54,11 @@ class PickupFragment : Fragment() { } } + fun cancelOrder() { + sharedViewModel.resetOrder() + findNavController().navigate(R.id.action_pickupFragment_to_startFragment) + } + /** * Navigate to the next screen to see the order summary. */ diff --git a/app/src/main/java/com/example/cupcake/SummaryFragment.kt b/app/src/main/java/com/example/cupcake/SummaryFragment.kt index dcdf4a72e7557c8dbfdd39af9a779e1f0aad95c5..a68fb73d0177745cd2fbe1fb2d0dcbe83cd31c03 100644 --- a/app/src/main/java/com/example/cupcake/SummaryFragment.kt +++ b/app/src/main/java/com/example/cupcake/SummaryFragment.kt @@ -23,6 +23,7 @@ import android.view.ViewGroup import android.widget.Toast import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels +import androidx.navigation.fragment.findNavController import com.example.cupcake.databinding.FragmentSummaryBinding /** @@ -55,6 +56,11 @@ class SummaryFragment : Fragment() { } } + fun cancelOrder() { + sharedViewModel.resetOrder() + findNavController().navigate(R.id.action_summaryFragment_to_startFragment) + } + /** * Submit the order by sharing out the order details to another app via an implicit intent. */ diff --git a/app/src/main/res/layout/fragment_flavor.xml b/app/src/main/res/layout/fragment_flavor.xml index e3816eb5ef5c19e10da9531f3bbe54f5073cb0e7..c1f62200f8f4ce09b086e0737014e10afe686f2e 100644 --- a/app/src/main/res/layout/fragment_flavor.xml +++ b/app/src/main/res/layout/fragment_flavor.xml @@ -114,6 +114,7 @@ android:id="@+id/cancel_button" android:layout_width="0dp" android:layout_height="wrap_content" + android:onClick="@{() -> flavorFragment.cancelOrder()}" android:text="@string/cancel" android:layout_marginEnd="@dimen/side_margin" style="?attr/materialButtonOutlinedStyle" diff --git a/app/src/main/res/layout/fragment_pickup.xml b/app/src/main/res/layout/fragment_pickup.xml index fbba9bab8ad0742fc0868b2be99ee622d713d80c..15bac555e40746f6a9575aaad6f2030e1fce194b 100644 --- a/app/src/main/res/layout/fragment_pickup.xml +++ b/app/src/main/res/layout/fragment_pickup.xml @@ -109,6 +109,7 @@ <Button android:id="@+id/cancel_button" style="?attr/materialButtonOutlinedStyle" + android:onClick="@{() -> pickupFragment.cancelOrder()}" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginEnd="@dimen/side_margin" diff --git a/app/src/main/res/layout/fragment_summary.xml b/app/src/main/res/layout/fragment_summary.xml index b7ad9e47582fc78c4ea39e337fb04c5ef8a65d27..7dac7af231919878e3beaa03e3c587a70678a109 100644 --- a/app/src/main/res/layout/fragment_summary.xml +++ b/app/src/main/res/layout/fragment_summary.xml @@ -144,6 +144,7 @@ <Button android:id="@+id/cancel_button" style="?attr/materialButtonOutlinedStyle" + android:onClick="@{() -> summaryFragment.cancelOrder()}" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/margin_between_elements" diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml index 99c61b10698cbadf21ce0df89d54f3a7da2c00bb..4a6b71ba6ee9478d3097cc5c822c1b5104457ab9 100644 --- a/app/src/main/res/navigation/nav_graph.xml +++ b/app/src/main/res/navigation/nav_graph.xml @@ -37,7 +37,9 @@ app:destination="@id/pickupFragment" /> <action android:id="@+id/action_flavorFragment_to_startFragment" - app:destination="@id/startFragment" /> + app:destination="@id/startFragment" + app:popUpTo="@id/startFragment" + app:popUpToInclusive="true" /> </fragment> <fragment android:id="@+id/pickupFragment" @@ -49,7 +51,9 @@ app:destination="@id/summaryFragment" /> <action android:id="@+id/action_pickupFragment_to_startFragment" - app:destination="@id/startFragment" /> + app:destination="@id/startFragment" + app:popUpTo="@id/startFragment" + app:popUpToInclusive="true" /> </fragment> <fragment android:id="@+id/summaryFragment" @@ -58,6 +62,8 @@ tools:layout="@layout/fragment_summary" > <action android:id="@+id/action_summaryFragment_to_startFragment" - app:destination="@id/startFragment" /> + app:destination="@id/startFragment" + app:popUpTo="@id/startFragment" + app:popUpToInclusive="true" /> </fragment> </navigation> \ No newline at end of file