From eba1a2de3e0ece8cc278886d2fe19ff11c6fc365 Mon Sep 17 00:00:00 2001
From: 62160052 <62160052@go.buu.ac.th>
Date: Mon, 19 Sep 2022 04:29:36 +0700
Subject: [PATCH] Setup click listeners using listener binding

---
 app/src/main/java/com/example/cupcake/FlavorFragment.kt  | 4 ++--
 app/src/main/java/com/example/cupcake/PickupFragment.kt  | 4 ++--
 app/src/main/java/com/example/cupcake/StartFragment.kt   | 8 +-------
 app/src/main/java/com/example/cupcake/SummaryFragment.kt | 4 ++--
 app/src/main/res/layout/fragment_flavor.xml              | 6 ++++++
 app/src/main/res/layout/fragment_pickup.xml              | 5 +++++
 app/src/main/res/layout/fragment_start.xml               | 9 +++++++++
 app/src/main/res/layout/fragment_summary.xml             | 5 +++++
 8 files changed, 32 insertions(+), 13 deletions(-)

diff --git a/app/src/main/java/com/example/cupcake/FlavorFragment.kt b/app/src/main/java/com/example/cupcake/FlavorFragment.kt
index cae160c..9281484 100644
--- a/app/src/main/java/com/example/cupcake/FlavorFragment.kt
+++ b/app/src/main/java/com/example/cupcake/FlavorFragment.kt
@@ -48,9 +48,9 @@ class FlavorFragment : Fragment() {
         super.onViewCreated(view, savedInstanceState)
 
         binding?.apply {
-            viewModel = sharedViewModel
             lifecycleOwner = viewLifecycleOwner
-            nextButton.setOnClickListener { goToNextScreen() }
+            viewModel = sharedViewModel
+            flavorFragment = this@FlavorFragment
         }
     }
 
diff --git a/app/src/main/java/com/example/cupcake/PickupFragment.kt b/app/src/main/java/com/example/cupcake/PickupFragment.kt
index 799116c..0a7f09f 100644
--- a/app/src/main/java/com/example/cupcake/PickupFragment.kt
+++ b/app/src/main/java/com/example/cupcake/PickupFragment.kt
@@ -48,9 +48,9 @@ class PickupFragment : Fragment() {
         super.onViewCreated(view, savedInstanceState)
 
         binding?.apply {
-            viewModel = sharedViewModel
             lifecycleOwner = viewLifecycleOwner
-            nextButton.setOnClickListener { goToNextScreen() }
+            viewModel = sharedViewModel
+            pickupFragment = this@PickupFragment
         }
     }
 
diff --git a/app/src/main/java/com/example/cupcake/StartFragment.kt b/app/src/main/java/com/example/cupcake/StartFragment.kt
index 5c9e353..fdb0c10 100644
--- a/app/src/main/java/com/example/cupcake/StartFragment.kt
+++ b/app/src/main/java/com/example/cupcake/StartFragment.kt
@@ -46,13 +46,7 @@ class StartFragment : Fragment() {
 
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         super.onViewCreated(view, savedInstanceState)
-
-        binding?.apply {
-            // Set up the button click listeners
-            orderOneCupcake.setOnClickListener { orderCupcake(1) }
-            orderSixCupcakes.setOnClickListener { orderCupcake(6) }
-            orderTwelveCupcakes.setOnClickListener { orderCupcake(12) }
-        }
+        binding?.startFragment = this
     }
 
     /**
diff --git a/app/src/main/java/com/example/cupcake/SummaryFragment.kt b/app/src/main/java/com/example/cupcake/SummaryFragment.kt
index 9a9affb..dcdf4a7 100644
--- a/app/src/main/java/com/example/cupcake/SummaryFragment.kt
+++ b/app/src/main/java/com/example/cupcake/SummaryFragment.kt
@@ -49,9 +49,9 @@ class SummaryFragment : Fragment() {
         super.onViewCreated(view, savedInstanceState)
 
         binding?.apply {
-            viewModel = sharedViewModel
             lifecycleOwner = viewLifecycleOwner
-            sendButton.setOnClickListener { sendOrder() }
+            viewModel = sharedViewModel
+            summaryFragment = this@SummaryFragment
         }
     }
 
diff --git a/app/src/main/res/layout/fragment_flavor.xml b/app/src/main/res/layout/fragment_flavor.xml
index c5e6d4c..1f5abdd 100644
--- a/app/src/main/res/layout/fragment_flavor.xml
+++ b/app/src/main/res/layout/fragment_flavor.xml
@@ -24,6 +24,11 @@
         <variable
             name="viewModel"
             type="com.example.cupcake.model.OrderViewModel" />
+
+        <variable
+            name="flavorFragment"
+            type="com.example.cupcake.FlavorFragment" />
+
     </data>
 
     <ScrollView
@@ -107,6 +112,7 @@
 
             <Button
                 android:id="@+id/next_button"
+                android:onClick="@{() -> flavorFragment.goToNextScreen()}"
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="@dimen/side_margin"
diff --git a/app/src/main/res/layout/fragment_pickup.xml b/app/src/main/res/layout/fragment_pickup.xml
index bc7cd44..20459e9 100644
--- a/app/src/main/res/layout/fragment_pickup.xml
+++ b/app/src/main/res/layout/fragment_pickup.xml
@@ -24,6 +24,10 @@
         <variable
             name="viewModel"
             type="com.example.cupcake.model.OrderViewModel" />
+
+        <variable
+            name="pickupFragment"
+            type="com.example.cupcake.PickupFragment" />
     </data>
 
     <ScrollView
@@ -104,6 +108,7 @@
 
             <Button
                 android:id="@+id/next_button"
+                android:onClick="@{() -> pickupFragment.goToNextScreen()}"
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="@dimen/side_margin"
diff --git a/app/src/main/res/layout/fragment_start.xml b/app/src/main/res/layout/fragment_start.xml
index 25b11c9..d584155 100644
--- a/app/src/main/res/layout/fragment_start.xml
+++ b/app/src/main/res/layout/fragment_start.xml
@@ -20,6 +20,12 @@
     xmlns:tools="http://schemas.android.com/tools"
     tools:context=".StartFragment">
 
+    <data>
+        <variable
+            name="startFragment"
+            type="com.example.cupcake.StartFragment" />
+    </data>
+
     <ScrollView
         android:layout_width="match_parent"
         android:layout_height="match_parent">
@@ -50,6 +56,7 @@
 
             <Button
                 android:id="@+id/order_one_cupcake"
+                android:onClick="@{() -> startFragment.orderCupcake(1)}"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_gravity="center_horizontal"
@@ -59,6 +66,7 @@
 
             <Button
                 android:id="@+id/order_six_cupcakes"
+                android:onClick="@{() -> startFragment.orderCupcake(6)}"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_gravity="center_horizontal"
@@ -68,6 +76,7 @@
 
             <Button
                 android:id="@+id/order_twelve_cupcakes"
+                android:onClick="@{() -> startFragment.orderCupcake(12)}"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_gravity="center_horizontal"
diff --git a/app/src/main/res/layout/fragment_summary.xml b/app/src/main/res/layout/fragment_summary.xml
index c9702b5..720a3d0 100644
--- a/app/src/main/res/layout/fragment_summary.xml
+++ b/app/src/main/res/layout/fragment_summary.xml
@@ -23,6 +23,10 @@
         <variable
             name="viewModel"
             type="com.example.cupcake.model.OrderViewModel" />
+
+        <variable
+            name="summaryFragment"
+            type="com.example.cupcake.SummaryFragment" />
     </data>
 
     <ScrollView
@@ -131,6 +135,7 @@
 
             <Button
                 android:id="@+id/send_button"
+                android:onClick="@{() -> summaryFragment.sendOrder()}"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="@dimen/side_margin"
-- 
GitLab