From b1a114987cec6634645f7ee2b5962a9e3131a64c Mon Sep 17 00:00:00 2001 From: Iván Ávalos Date: Thu, 9 Mar 2023 23:51:08 -0600 Subject: [wallet] Expand JSON error in XML transaction detail fragments bug 0007606 --- .../transactions/TransactionDetailFragment.kt | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) (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 1905a05..46d605c 100644 --- a/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt +++ b/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt @@ -28,9 +28,12 @@ import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.navigation.fragment.findNavController import com.google.android.material.dialog.MaterialAlertDialogBuilder +import kotlinx.serialization.json.Json import net.taler.common.Amount import net.taler.wallet.MainViewModel import net.taler.wallet.R +import net.taler.wallet.backend.TalerErrorInfo +import net.taler.wallet.compose.copyToClipBoard import net.taler.wallet.getAttrColor import net.taler.wallet.launchInAppBrowser @@ -38,6 +41,7 @@ abstract class TransactionDetailFragment : Fragment() { private val model: MainViewModel by activityViewModels() val transactionManager by lazy { model.transactionManager } + val devMode by lazy { model.devMode } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -122,4 +126,26 @@ abstract class TransactionDetailFragment : Fragment() { findNavController().popBackStack() } + private val json = Json { prettyPrint = true } + + protected fun onShowErrorButtonClicked(t: Transaction) { + t.error?.let { err -> + val message = json.encodeToString(TalerErrorInfo.serializer(), err) + MaterialAlertDialogBuilder(requireContext(), R.style.MaterialAlertDialog_Material3) + .setTitle(getString(R.string.nav_error)) + .setMessage(message) + .setNeutralButton(R.string.close) { dialog, _ -> + dialog.cancel() + } + .setPositiveButton(R.string.copy) { _, _ -> + copyToClipBoard( + requireContext(), + getString(R.string.nav_error), + message, + ) + } + .show() + } + } + } -- cgit v1.2.3