Skip to content
Snippets Groups Projects
Commit 870cf744 authored by auliamey's avatar auliamey
Browse files

feat: modal delete and fix minor

parent a1cd1c85
1 merge request!17Feat/transaction
......@@ -131,7 +131,6 @@ class MainActivity : AppCompatActivity() {
) == PackageManager.PERMISSION_GRANTED
}
// Request location permission
private fun requestLocationPermission() {
ActivityCompat.requestPermissions(
this,
......
......@@ -54,6 +54,14 @@ class TransactionAddFragment : Fragment() {
_binding = FragmentTransactionAddBinding.inflate(inflater, container, false)
val root: View = binding.root
mTransactionViewModel.transactionSubmitted.observe(viewLifecycleOwner) { success ->
if (success) {
Toast.makeText(requireContext(), "Transaction submitted successfully", Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(requireContext(), "Transaction submission failed", Toast.LENGTH_SHORT).show()
}
}
val filter = IntentFilter(TransactionAddFragment.ACTION_RANDOMIZE_TRANSACTION)
LocalBroadcastManager.getInstance(requireContext()).registerReceiver(randomizeTransactionReceiver, filter)
......
package com.example.pbd_jwr.ui.transaction
import android.app.AlertDialog
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
......@@ -50,20 +51,19 @@ class TransactionDetailFragment : Fragment(), OnMapReadyCallback {
if (transaction != null) {
displayTransactionDetails(transaction)
binding.btnBack.setOnClickListener {
findNavController().popBackStack()
}
binding.btnDelete.setOnClickListener {
transaction?.let { deleteTransaction(it) }
showDeleteConfirmationDialog(transaction)
}
binding.btnEdit.setOnClickListener {
val bundle = Bundle().apply {
putParcelable("transaction", transaction)
putLong("transactionId", transaction.id) // Pass the transaction ID
putBoolean("editMode", true) // Set edit mode to true
putLong("transactionId", transaction.id)
putBoolean("editMode", true)
}
findNavController().navigate(R.id.action_transactionDetailFragment_to_transactionAddFragment, bundle)
}
......@@ -73,7 +73,6 @@ class TransactionDetailFragment : Fragment(), OnMapReadyCallback {
findNavController().popBackStack()
}
return root
}
......@@ -102,6 +101,19 @@ class TransactionDetailFragment : Fragment(), OnMapReadyCallback {
return sdf.format(calendar.time)
}
private fun showDeleteConfirmationDialog(transaction: Transaction) {
AlertDialog.Builder(requireContext(), AlertDialog.THEME_DEVICE_DEFAULT_LIGHT)
.setTitle("Delete Transaction")
.setMessage("Are you sure you want to delete this transaction?")
.setPositiveButton("Yes") { _, _ ->
transaction?.let { deleteTransaction(it) }
}
.setNegativeButton("No") { dialog, _ ->
dialog.dismiss()
}
.show()
}
private fun deleteTransaction(transaction: Transaction) {
mTransactionViewModel.deleteTransaction(transaction)
findNavController().popBackStack()
......
......@@ -15,7 +15,6 @@ import kotlinx.coroutines.launch
class TransactionViewModel(application: Application) : AndroidViewModel(application) {
private val readAllTransactions: LiveData<List<Transaction>>
private val repository: TransactionRepository
private val _transactionSubmitted = MutableLiveData<Boolean>()
......@@ -23,7 +22,6 @@ class TransactionViewModel(application: Application) : AndroidViewModel(applicat
init {
val transactionDao = AppDatabase.getDatabase(application).transactionDao()
repository = TransactionRepository(transactionDao)
readAllTransactions = repository.getAllTransactions()
}
fun getAllTransactions(): LiveData<List<Transaction>> {
return repository.getAllTransactions()
......
......@@ -132,6 +132,8 @@
android:elevation="2dp"
android:text="Back"
android:textColor="@android:color/black"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:layout_editor_absoluteX="16dp"
tools:layout_editor_absoluteY="16dp" />
......@@ -142,20 +144,22 @@
android:elevation="2dp"
android:text="Delete"
android:textColor="@android:color/black"
tools:layout_editor_absoluteX="171dp"
tools:layout_editor_absoluteY="16dp" />
app:layout_constraintStart_toEndOf="@+id/btnBack"
app:layout_constraintTop_toTopOf="@+id/btnBack"
app:layout_constraintBottom_toBottomOf="@+id/btnBack"
android:layout_marginStart="8dp" />
<Button
android:id="@+id/btnEdit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:elevation="2dp"
android:text="Edit"
android:textColor="@android:color/black"
tools:layout_editor_absoluteX="293dp"
tools:layout_editor_absoluteY="16dp" />
app:layout_constraintStart_toEndOf="@+id/btnDelete"
app:layout_constraintTop_toTopOf="@+id/btnDelete"
app:layout_constraintBottom_toBottomOf="@+id/btnDelete"
android:layout_marginStart="8dp" />
<fragment
android:id="@+id/mapFragment"
......
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