Skip to content
Snippets Groups Projects
Commit f3875674 authored by Muhammad Rifko Favian's avatar Muhammad Rifko Favian
Browse files

feat: add enum for transaction category

parent 88c407a4
2 merge requests!8Merge dev into main,!4feat: Excel
......@@ -4,9 +4,11 @@ import android.content.Intent
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.RadioGroup
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.ViewModelProvider
import com.onionsquad.bondoman.repository.TransactionRepository
import com.onionsquad.bondoman.room.TransactionCategory
import com.onionsquad.bondoman.room.TransactionDatabase
import com.onionsquad.bondoman.room.TransactionEntity
import com.onionsquad.bondoman.ui.transaction.TransactionViewModel
......@@ -24,7 +26,7 @@ class AddTransactionActivity : AppCompatActivity() {
val titleEditText: EditText = findViewById(R.id.titleEditText)
val amountEditText: EditText = findViewById(R.id.amountEditText)
val categoryEditText: EditText = findViewById(R.id.categoryEditText)
val categoryRadioGroup: RadioGroup = findViewById(R.id.categoryRadioGroup)
val locationEditText: EditText = findViewById(R.id.locationEditText)
val factory = TransactionViewModelFactory(repository)
......@@ -34,10 +36,14 @@ class AddTransactionActivity : AppCompatActivity() {
saveButton.setOnClickListener {
val title = titleEditText.text.toString()
val amount = amountEditText.text.toString().toDoubleOrNull() ?: 0.0
val category = categoryEditText.text.toString()
val selectedCategoryId = categoryRadioGroup.checkedRadioButtonId
val category = when (selectedCategoryId) {
R.id.incomeRadioButton -> TransactionCategory.INCOME
R.id.outcomeRadioButton -> TransactionCategory.OUTCOME
else -> TransactionCategory.OUTCOME
}
val location = locationEditText.text.toString()
// Dapatkan tanggal saat ini
val currentDate = Date()
val transaction = TransactionEntity(
......@@ -51,7 +57,6 @@ class AddTransactionActivity : AppCompatActivity() {
viewModel.insertTransaction(transaction)
// Navigasi kembali ke halaman daftar transaksi
Intent(this@AddTransactionActivity, MainActivity::class.java).also {
startActivity(it)
}
......
package com.onionsquad.bondoman.room
enum class TransactionCategory {
INCOME,
OUTCOME
}
\ No newline at end of file
......@@ -4,11 +4,11 @@ import androidx.room.Entity
import androidx.room.PrimaryKey
import androidx.room.ColumnInfo
import androidx.room.TypeConverters
import com.onionsquad.bondoman.util.DateConverter
import com.onionsquad.bondoman.util.Converters
import java.util.Date
@Entity(tableName = "transactions")
@TypeConverters(DateConverter::class)
@TypeConverters(Converters::class)
data class TransactionEntity(
@PrimaryKey(autoGenerate = true)
val id: Int = 0,
......@@ -20,7 +20,7 @@ data class TransactionEntity(
val amount: Double,
@ColumnInfo(name = "category")
val category: String,
val category: TransactionCategory,
@ColumnInfo(name = "date", defaultValue = "CURRENT_TIMESTAMP")
val date: Date,
......
package com.onionsquad.bondoman.util
import androidx.room.TypeConverter
import com.onionsquad.bondoman.room.TransactionCategory
import java.util.Date
object DateConverter {
object Converters {
@TypeConverter
@JvmStatic
......@@ -16,4 +17,14 @@ object DateConverter {
fun dateToTimestamp(value: Date?): Long? {
return value?.time
}
@TypeConverter
fun fromTransactionCategory(category: TransactionCategory): String {
return category.name
}
@TypeConverter
fun toTransactionCategory(categoryString: String): TransactionCategory {
return TransactionCategory.valueOf(categoryString)
}
}
\ No newline at end of file
......@@ -28,13 +28,26 @@
android:hint="Nominal"
android:inputType="numberDecimal" />
<EditText
android:id="@+id/categoryEditText"
<RadioGroup
android:id="@+id/categoryRadioGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:hint="Kategori"
android:inputType="text" />
android:orientation="horizontal">
<RadioButton
android:id="@+id/incomeRadioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pemasukan" />
<RadioButton
android:id="@+id/outcomeRadioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pengeluaran" />
</RadioGroup>
<EditText
android:id="@+id/locationEditText"
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment