diff --git a/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionInputFragment.kt b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionInputFragment.kt index cc2709cbd1508dd8460dad2e4163949c8a07aa4e..6ce3208cacdb38620ac5815d16b9eb77cde8c090 100644 --- a/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionInputFragment.kt +++ b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionInputFragment.kt @@ -9,8 +9,10 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.ArrayAdapter import android.widget.Button import android.widget.EditText +import android.widget.Spinner import android.widget.Toast import androidx.annotation.RequiresApi import androidx.fragment.app.Fragment @@ -22,7 +24,9 @@ import java.time.LocalDateTime class TransactionInputFragment : Fragment() { private lateinit var nama_transaksi: EditText private lateinit var nominal_transaksi: EditText - private lateinit var kategori_transaksi: EditText +// private lateinit var kategori_transaksi: EditText + private lateinit var kategori_transaksi: Spinner + private lateinit var lokasi_transaksi: EditText private lateinit var btnSave: Button private lateinit var database: AppDatabase @@ -47,6 +51,11 @@ class TransactionInputFragment : Fragment() { database = AppDatabase.getInstance(requireContext()) + val categories = arrayOf("pemasukan", "pengeluaran") + val adapter = ArrayAdapter(requireContext(), android.R.layout.simple_spinner_item, categories) + adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) + kategori_transaksi.adapter = adapter + val args = arguments if (args != null) { val id = args.getInt("id", 0) @@ -54,37 +63,40 @@ class TransactionInputFragment : Fragment() { nama_transaksi.setText(transaction.nama) nominal_transaksi.setText(transaction.nominal.toString()) - kategori_transaksi.setText(transaction.kategori) + kategori_transaksi.setSelection(categories.indexOf(transaction.kategori)) lokasi_transaksi.setText(transaction.lokasi) } btnSave.setOnClickListener { - if (nama_transaksi.text.isNotEmpty() && nominal_transaksi.text.isNotEmpty() && kategori_transaksi.text.isNotEmpty() && lokasi_transaksi.text.isNotEmpty()) { - if (args != null) { - database.transactionDao().update( - TransactionEntity( - args.getInt("id", 0), - LocalDateTime.now(), - nama_transaksi.text.toString(), - kategori_transaksi.text.toString(), - nominal_transaksi.text.toString().toDouble(), - lokasi_transaksi.text.toString() - ) + if (nama_transaksi.text.isNotEmpty() && nominal_transaksi.text.isNotEmpty() && lokasi_transaksi.text.isNotEmpty()) { + val category = kategori_transaksi.selectedItem.toString() + val transactionEntity = if (args != null) { + TransactionEntity( + args.getInt("id", 0), + LocalDateTime.now(), + nama_transaksi.text.toString(), + category, + nominal_transaksi.text.toString().toDouble(), + lokasi_transaksi.text.toString() ) - listener.onTransactionSubmitted() } else { - database.transactionDao().insertAll( - TransactionEntity( - null, - LocalDateTime.now(), - nama_transaksi.text.toString(), - kategori_transaksi.text.toString(), - nominal_transaksi.text.toString().toDouble(), - lokasi_transaksi.text.toString() - ) + TransactionEntity( + null, + LocalDateTime.now(), + nama_transaksi.text.toString(), + category, + nominal_transaksi.text.toString().toDouble(), + lokasi_transaksi.text.toString() ) - listener.onTransactionSubmitted() } + + if (args != null) { + database.transactionDao().update(transactionEntity) + } else { + database.transactionDao().insertAll(transactionEntity) + } + + listener.onTransactionSubmitted() } else { Toast.makeText(requireContext(), "Input invalid", Toast.LENGTH_SHORT).show() } diff --git a/app/src/main/res/layout/fragment_transaction_input.xml b/app/src/main/res/layout/fragment_transaction_input.xml index 865f4347455d620558a4971929679d507d2a9c5c..35219c2f5c8b46f3153c93c901c455a5190ce29f 100644 --- a/app/src/main/res/layout/fragment_transaction_input.xml +++ b/app/src/main/res/layout/fragment_transaction_input.xml @@ -63,14 +63,16 @@ android:layout_marginTop="5dp" android:layout_marginRight="30dp" android:layout_marginLeft="30dp"> - <EditText + <Spinner android:id="@+id/kategori_transaksi" android:layout_width="match_parent" android:layout_height="wrap_content" - android:inputType="text" - android:hint="Kategori (pengeluaran/pemasukan)"/> + android:layout_marginTop="16dp"/> + </com.google.android.material.textfield.TextInputLayout> + + <com.google.android.material.textfield.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content"