diff --git a/app/src/main/java/com/example/pbd_jwr/MainActivity.kt b/app/src/main/java/com/example/pbd_jwr/MainActivity.kt index d6f63f836bca279b93e90bfb9404a03bf4bd1c57..e497547cac8c4c2920292536c1dddec481018849 100644 --- a/app/src/main/java/com/example/pbd_jwr/MainActivity.kt +++ b/app/src/main/java/com/example/pbd_jwr/MainActivity.kt @@ -131,7 +131,6 @@ class MainActivity : AppCompatActivity() { ) == PackageManager.PERMISSION_GRANTED } -// Request location permission private fun requestLocationPermission() { ActivityCompat.requestPermissions( this, diff --git a/app/src/main/java/com/example/pbd_jwr/ui/transaction/TransactionAddFragment.kt b/app/src/main/java/com/example/pbd_jwr/ui/transaction/TransactionAddFragment.kt index 66c8b15388e0b6598337ad7892c50677c3a15810..a07051e37a0fccb9d521bbc3925585609484c9a9 100644 --- a/app/src/main/java/com/example/pbd_jwr/ui/transaction/TransactionAddFragment.kt +++ b/app/src/main/java/com/example/pbd_jwr/ui/transaction/TransactionAddFragment.kt @@ -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) diff --git a/app/src/main/java/com/example/pbd_jwr/ui/transaction/TransactionDetailFragment.kt b/app/src/main/java/com/example/pbd_jwr/ui/transaction/TransactionDetailFragment.kt index c6fc790375b7510d5839679df3967e15815ccc36..1b2932d412dc1d5708d35e4aa8a1d680b8dbb87b 100644 --- a/app/src/main/java/com/example/pbd_jwr/ui/transaction/TransactionDetailFragment.kt +++ b/app/src/main/java/com/example/pbd_jwr/ui/transaction/TransactionDetailFragment.kt @@ -1,5 +1,6 @@ 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() diff --git a/app/src/main/java/com/example/pbd_jwr/ui/transaction/TransactionViewModel.kt b/app/src/main/java/com/example/pbd_jwr/ui/transaction/TransactionViewModel.kt index 7928d1090c3a0789db9f6cac8669801109b71c7d..083fc41341d6043e708d336ce6aa126b4ab20c2c 100644 --- a/app/src/main/java/com/example/pbd_jwr/ui/transaction/TransactionViewModel.kt +++ b/app/src/main/java/com/example/pbd_jwr/ui/transaction/TransactionViewModel.kt @@ -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() diff --git a/app/src/main/res/layout/fragment_transaction_detail.xml b/app/src/main/res/layout/fragment_transaction_detail.xml index 8d3cf514701a814c11f86d094e9bbc35ee32fba9..a0273d26eef8e15c209ce6b00d1ff06ad5addfb6 100644 --- a/app/src/main/res/layout/fragment_transaction_detail.xml +++ b/app/src/main/res/layout/fragment_transaction_detail.xml @@ -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"