From 8e642120cd2db50ded7ba775dfe192bc06a8698b Mon Sep 17 00:00:00 2001
From: rayhanp1402 <rayhan.hanif14maulana@gmail.com>
Date: Fri, 5 Apr 2024 06:22:54 +0700
Subject: [PATCH] feat: Reset/delete all transactions

---
 .../com/example/bondoyap/ui/settings/SettingsFragment.kt     | 4 ++--
 .../bondoyap/ui/transactions/TransactionsViewModel.kt        | 4 ++++
 .../example/bondoyap/ui/transactions/data/TransactionsDao.kt | 3 +++
 .../bondoyap/ui/transactions/data/TransactionsRepository.kt  | 5 +++++
 4 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/app/src/main/java/com/example/bondoyap/ui/settings/SettingsFragment.kt b/app/src/main/java/com/example/bondoyap/ui/settings/SettingsFragment.kt
index 34f65dd..52b6305 100644
--- a/app/src/main/java/com/example/bondoyap/ui/settings/SettingsFragment.kt
+++ b/app/src/main/java/com/example/bondoyap/ui/settings/SettingsFragment.kt
@@ -130,8 +130,8 @@ class SettingsFragment : Fragment() {
         resetButton.setOnClickListener{
             Toast.makeText(appContext, "Transaksi di-reset ...", Toast.LENGTH_SHORT).show()
             showConfirmationDialog("Reset", "Apakah Anda yakin ingin me-reset data transaksi?") {
-                //todo
-
+                transactionsViewModel.deleteAllTransactions()
+                Toast.makeText(appContext, "Transaksi berhasil di-reset ...", Toast.LENGTH_SHORT).show()
             }
         }
 
diff --git a/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsViewModel.kt b/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsViewModel.kt
index 3f5582d..e5d26b6 100644
--- a/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsViewModel.kt
+++ b/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsViewModel.kt
@@ -32,6 +32,10 @@ class TransactionsViewModel(
     suspend fun getAllTransactionsList(): List<Transactions> {
         return repository.getAllTransactionsList()
     }
+
+    fun deleteAllTransactions() = viewModelScope.launch {
+        repository.deleteAllTransactions()
+    }
 }
 
 class TransactionsViewModelFactory(private val repository: TransactionsRepository): ViewModelProvider.Factory {
diff --git a/app/src/main/java/com/example/bondoyap/ui/transactions/data/TransactionsDao.kt b/app/src/main/java/com/example/bondoyap/ui/transactions/data/TransactionsDao.kt
index 00dd1fc..a670187 100644
--- a/app/src/main/java/com/example/bondoyap/ui/transactions/data/TransactionsDao.kt
+++ b/app/src/main/java/com/example/bondoyap/ui/transactions/data/TransactionsDao.kt
@@ -23,4 +23,7 @@ interface TransactionsDao {
 
     @Query("SELECT * FROM transactions WHERE transactions.id == :transactionsId")
     suspend fun getTransactionById(transactionsId: Int?): Transactions
+
+    @Query("DELETE FROM transactions")
+    suspend fun deleteAllTransactions()
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/example/bondoyap/ui/transactions/data/TransactionsRepository.kt b/app/src/main/java/com/example/bondoyap/ui/transactions/data/TransactionsRepository.kt
index c376411..752e4e9 100644
--- a/app/src/main/java/com/example/bondoyap/ui/transactions/data/TransactionsRepository.kt
+++ b/app/src/main/java/com/example/bondoyap/ui/transactions/data/TransactionsRepository.kt
@@ -23,4 +23,9 @@ class TransactionsRepository(private val transactionsDao: TransactionsDao) {
     suspend fun getAllTransactionsList(): List<Transactions> {
         return transactionsDao.getTransactionsList()
     }
+
+    @WorkerThread
+    suspend fun deleteAllTransactions() {
+        transactionsDao.deleteAllTransactions()
+    }
 }
\ No newline at end of file
-- 
GitLab