diff --git a/app/src/main/java/com/example/myapplication/repository/TransactionRepository.kt b/app/src/main/java/com/example/myapplication/repository/TransactionRepository.kt index 7d089e64f8d103162513767bf89ae119c33be083..cf800c2867b434244e2524015994c91bc30ceb0d 100644 --- a/app/src/main/java/com/example/myapplication/repository/TransactionRepository.kt +++ b/app/src/main/java/com/example/myapplication/repository/TransactionRepository.kt @@ -6,6 +6,8 @@ import androidx.lifecycle.MutableLiveData import com.example.myapplication.dao.TransactionDao import com.example.myapplication.database.TransactionDatabase import com.example.myapplication.entities.TransactionEntity +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext class TransactionRepository(context: Context) { @@ -18,17 +20,29 @@ class TransactionRepository(context: Context) { allTransactions = transactionDao.getAllTransactions() } - fun insertTransaction(title: String, nominal: String, kategori: String, lokasi: String, tanggal: String) { - val transaction = TransactionEntity(title = title, nominal = nominal, kategori = kategori, lokasi = lokasi, tanggal = tanggal) - transactionDao.insertTransaction(transaction) + suspend fun insertTransaction(title: String, nominal: String, kategori: String, lokasi: String, tanggal: String){ + withContext(Dispatchers.IO) { + val transaction = TransactionEntity( + title = title, + nominal = nominal, + kategori = kategori, + lokasi = lokasi, + tanggal = tanggal + ) + transactionDao.insertTransaction(transaction) + } } - fun updateTransaction(title: String, nominal: String, kategori: String, id: Int) { - // id buat yang mau diupdate data yang mana - transactionDao.update(title, nominal, kategori, id) + suspend fun updateTransaction(title: String, nominal: String, kategori: String, id: Int) { + withContext(Dispatchers.IO) { + // id buat yang mau diupdate data yang mana + transactionDao.update(title, nominal, kategori, id) + } } - fun deleteTransaction(id: Int) { - transactionDao.delete(id) + suspend fun deleteTransaction(id: Int) { + withContext(Dispatchers.IO) { + transactionDao.delete(id) + } } } \ No newline at end of file diff --git a/app/src/main/java/com/example/myapplication/ui/transactions/TransactionViewModel.kt b/app/src/main/java/com/example/myapplication/ui/transactions/TransactionViewModel.kt index 0f59214503d5d4e76197f7c1e63d086d13b10da9..99710846c56602cc65d147b722f92f28c5121e22 100644 --- a/app/src/main/java/com/example/myapplication/ui/transactions/TransactionViewModel.kt +++ b/app/src/main/java/com/example/myapplication/ui/transactions/TransactionViewModel.kt @@ -22,17 +22,17 @@ class TransactionViewModel(application : Application) : ViewModel() { // //TODO("Implement kalau transaksi berubah di viewnya juga langsung berubah") // Log.i("Development", "Transaction changed, transaction: $it") // } - fun addTransaction(title: String, nominal: String, kategori: String, lokasi: String, tanggal: String) { + suspend fun addTransaction(title: String, nominal: String, kategori: String, lokasi: String, tanggal: String) { repository.insertTransaction(title, nominal , kategori, lokasi, tanggal) } -// -// fun updateTransaction() { -// TODO("implement update transaction") -// } -// -// fun deleteTransaction() { -// TODO("implement delete transaction") -// } + + suspend fun updateTransaction() { + TODO("implement update transaction") + } + + suspend fun deleteTransaction() { + TODO("implement delete transaction") + } private val _text = MutableLiveData<String>().apply { value = ""