From d1163e31e904ac59d0739169257a8e3fdc7986a7 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Wed, 17 Aug 2022 15:40:16 -0300 Subject: [wallet] Add ability to cancel/delete transactions --- .../transactions/TransactionDetailFragment.kt | 31 +++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt') diff --git a/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt b/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt index 128ca04..f21818f 100644 --- a/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt +++ b/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt @@ -23,8 +23,11 @@ import android.view.Menu import android.view.MenuInflater import android.view.MenuItem import android.widget.TextView +import androidx.annotation.StringRes +import androidx.appcompat.app.AlertDialog import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels +import androidx.navigation.fragment.findNavController import net.taler.common.Amount import net.taler.common.startActivitySafe import net.taler.wallet.MainViewModel @@ -67,7 +70,7 @@ abstract class TransactionDetailFragment : Fragment() { feeView: TextView, info: TransactionInfo, raw: Amount, - fee: Amount + fee: Amount, ) { orderAmountView.text = raw.toString() feeView.text = getString(R.string.amount_negative, fee.toString()) @@ -85,4 +88,30 @@ abstract class TransactionDetailFragment : Fragment() { orderIdView.text = getString(R.string.transaction_order_id, info.orderId) } + @StringRes + protected open val deleteDialogTitle = R.string.transactions_delete + @StringRes + protected open val deleteDialogMessage = R.string.transactions_delete_dialog_message + @StringRes + protected open val deleteDialogButton = R.string.transactions_delete + + protected fun onDeleteButtonClicked(t: Transaction) { + AlertDialog.Builder(requireContext(), R.style.DialogTheme) + .setTitle(deleteDialogTitle) + .setMessage(deleteDialogMessage) + .setPositiveButton(R.string.cancel) { dialog, _ -> + dialog.cancel() + } + .setNegativeButton(deleteDialogButton) { dialog, _ -> + deleteTransaction(t) + dialog.dismiss() + } + .show() + } + + private fun deleteTransaction(t: Transaction) { + transactionManager.deleteTransaction(t.transactionId) + findNavController().popBackStack() + } + } -- cgit v1.2.3