From 0f9e61f11597356951edb52f7ea56a2ea73f9b6f Mon Sep 17 00:00:00 2001
From: Vieri Firdaus <13521099@std.stei.itb.ac.id>
Date: Thu, 4 Apr 2024 22:32:22 +0700
Subject: [PATCH] feat : input data

---
 .idea/deploymentTargetDropDown.xml            | 15 +-----------
 .../pbd/psi/repository/SettingsRepository.kt  |  4 ++++
 .../pbd/psi/ui/settings/SettingsFragment.kt   | 23 +++++++++++++------
 .../pbd/psi/ui/settings/SettingsViewModel.kt  | 17 ++++++++------
 4 files changed, 31 insertions(+), 28 deletions(-)

diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index 378b848..0c0c338 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -3,20 +3,7 @@
   <component name="deploymentTargetDropDown">
     <value>
       <entry key="app">
-        <State>
-          <runningDeviceTargetSelectedWithDropDown>
-            <Target>
-              <type value="RUNNING_DEVICE_TARGET" />
-              <deviceKey>
-                <Key>
-                  <type value="SERIAL_NUMBER" />
-                  <value value="adb-RRCT400LBLA-VDbMwR._adb-tls-connect._tcp" />
-                </Key>
-              </deviceKey>
-            </Target>
-          </runningDeviceTargetSelectedWithDropDown>
-          <timeTargetWasSelectedWithDropDown value="2024-04-04T14:49:11.687308500Z" />
-        </State>
+        <State />
       </entry>
     </value>
   </component>
diff --git a/app/src/main/java/com/pbd/psi/repository/SettingsRepository.kt b/app/src/main/java/com/pbd/psi/repository/SettingsRepository.kt
index eb50ed4..0d1a7a2 100644
--- a/app/src/main/java/com/pbd/psi/repository/SettingsRepository.kt
+++ b/app/src/main/java/com/pbd/psi/repository/SettingsRepository.kt
@@ -1,6 +1,7 @@
 package com.pbd.psi.repository
 
 import android.util.Log
+import androidx.lifecycle.LiveData
 import com.pbd.psi.room.AppDatabase
 import com.pbd.psi.room.TransactionEntity
 import kotlinx.coroutines.Dispatchers
@@ -8,9 +9,12 @@ import kotlinx.coroutines.withContext
 import javax.inject.Inject
 
 class SettingsRepository @Inject constructor(private val database: AppDatabase) {
+    val transactionList: LiveData<List<TransactionEntity>> = database.transactionDao().getAllTrans()
+
     suspend fun getAllTrans(): List<TransactionEntity> {
         return withContext(Dispatchers.IO) {
             Log.d("button_export", "Repo1")
+            Log.d("ResponseString", "Response: ${database.transactionDao().getAllTransactions()}")
             database.transactionDao().getAllTransactions()
         }
     }
diff --git a/app/src/main/java/com/pbd/psi/ui/settings/SettingsFragment.kt b/app/src/main/java/com/pbd/psi/ui/settings/SettingsFragment.kt
index a6976d8..5055c86 100644
--- a/app/src/main/java/com/pbd/psi/ui/settings/SettingsFragment.kt
+++ b/app/src/main/java/com/pbd/psi/ui/settings/SettingsFragment.kt
@@ -78,14 +78,23 @@ class SettingsFragment : Fragment() {
 
         binding.btnSettings.setOnClickListener {
             Log.d("button_export", "MASUKKK")
-            lifecycleScope.launch {
-                    Log.d("button_export", "DALEMM")
-                    val transactions = viewModel.fetchAllTransactions()
-                    Log.d("button_export", "DALEM1")
-                    exportTransactionsToExcel(transactions)
-                    Log.d("button_export", "DALEM2")
-                    Log.d("button_export", "KELUAR")
+//            lifecycleScope.launch {
+//                    Log.d("button_export", "DALEMM")
+//                    val transactions = viewModel.fetchAllTransactions()
+//                    Log.d("button_export", "DALEM1")
+//                    exportTransactionsToExcel(transactions)
+//                    Log.d("button_export", "DALEM2")
+//                    Log.d("button_export", "KELUAR")
+//            }
+            viewModel.transactionList.observe(viewLifecycleOwner) { transItems ->
+                Log.d("button_export", "MASUKKK")
+                val transactions = requireNotNull(transItems) { "Transaction list is null" }
+                val transList = ArrayList(transactions)
+                Log.d("button_export", "MASUKKK")
+                Log.d("TransactionList", "TransactionList: $transList")
+                exportTransactionsToExcel(transList)
             }
+
         }
     }
 
diff --git a/app/src/main/java/com/pbd/psi/ui/settings/SettingsViewModel.kt b/app/src/main/java/com/pbd/psi/ui/settings/SettingsViewModel.kt
index baf6bf3..ab496e3 100644
--- a/app/src/main/java/com/pbd/psi/ui/settings/SettingsViewModel.kt
+++ b/app/src/main/java/com/pbd/psi/ui/settings/SettingsViewModel.kt
@@ -1,9 +1,12 @@
 package com.pbd.psi.ui.transaction
 
 import android.util.Log
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.ViewModel
 import androidx.lifecycle.viewModelScope
 import com.pbd.psi.repository.SettingsRepository
+import com.pbd.psi.room.Category
 import com.pbd.psi.room.TransactionEntity
 import dagger.hilt.android.lifecycle.HiltViewModel
 import kotlinx.coroutines.CompletableDeferred
@@ -16,13 +19,13 @@ import javax.inject.Inject
 class SettingsViewModel @Inject constructor(
     private val repository: SettingsRepository,
 ) : ViewModel() {
-    var transactionList: List<TransactionEntity> = emptyList()
+    var transactionList: LiveData<List<TransactionEntity>> = repository.transactionList
 
-    suspend fun fetchAllTransactions(): List<TransactionEntity> {
-        return withContext(Dispatchers.IO) {
-            Log.d("button_export", "Repo1")
-            repository.getAllTrans()
-        }
-    }
+//    fun fetchData() {
+//        viewModelScope.launch {
+//            _data = repository.getAllTrans()
+//            Log.d("SettingsViewModel", "fetchData: $_data")
+//        }
+//    }
 }
 
-- 
GitLab