From 2b1b8e1c5d48047ecaaa961b03ba669978aca3a1 Mon Sep 17 00:00:00 2001
From: shidqizh <shidqizh@gmail.com>
Date: Thu, 4 Apr 2024 01:17:15 +0700
Subject: [PATCH] feat: confirmation dialog on deletion

---
 .../ui/transaction/TransactionFragment.kt     | 24 +++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

diff --git a/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionFragment.kt b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionFragment.kt
index d1dc00f..9296f9c 100644
--- a/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionFragment.kt
+++ b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionFragment.kt
@@ -61,8 +61,9 @@ class TransactionFragment : Fragment() {
                         intent.putExtra("id", list[position].id)
                         startActivity(intent)
                     } else if (which == 1) {
-                        database.transactionDao().delete(list[position])
-                        getData()
+//                        database.transactionDao().delete(list[position])
+//                        getData()
+                        showDeleteConfirmationDialog(position)
                     } else if (which == 2) {
                         list[position].id?.let {
                             GoogleMapsUtil.openGoogleMaps(
@@ -102,4 +103,23 @@ class TransactionFragment : Fragment() {
         list.addAll(database.transactionDao().getAll())
         adapter.notifyDataSetChanged()
     }
+
+    private fun showDeleteConfirmationDialog(position: Int) {
+        val builder = AlertDialog.Builder(requireContext())
+        builder.setTitle("Delete Transaction")
+            .setMessage("Apakah anda ingin menghapus transaksi ini?")
+            .setPositiveButton("Yes") { dialog, which ->
+                deleteTransaction(position)
+            }
+            .setNegativeButton("No") { dialog, which ->
+                dialog.dismiss()
+            }
+            .create()
+            .show()
+    }
+
+    private fun deleteTransaction(position: Int) {
+        database.transactionDao().delete(list[position])
+        getData()
+    }
 }
-- 
GitLab