commit 0574cad9c5cdfef4775af5cbd5d9d6e5d588f2ce
parent 81853300771c80c12d28df51388aa6b2d5eeb0d4
Author: Iván Ávalos <avalos@disroot.org>
Date: Thu, 29 Feb 2024 22:11:30 -0600
[wallet] Don't show JSON errors to non-devs
bug 0008549
Diffstat:
5 files changed, 55 insertions(+), 10 deletions(-)
diff --git a/wallet/src/main/java/net/taler/wallet/balances/BalancesFragment.kt b/wallet/src/main/java/net/taler/wallet/balances/BalancesFragment.kt
@@ -29,6 +29,7 @@ import androidx.fragment.app.activityViewModels
import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.LinearLayoutManager.VERTICAL
import net.taler.common.fadeIn
+import net.taler.common.showError
import net.taler.wallet.MainViewModel
import net.taler.wallet.balances.BalanceState.Error
import net.taler.wallet.balances.BalanceState.Loading
@@ -87,7 +88,11 @@ class BalancesFragment : Fragment(),
ui.mainList.fadeIn()
}
}
- is Error -> showError(state.error)
+ is Error -> if (model.devMode.value == true) {
+ showError(state.error)
+ } else {
+ showError(state.error.userFacingMsg)
+ }
}
}
diff --git a/wallet/src/main/java/net/taler/wallet/peer/IncomingPullPaymentFragment.kt b/wallet/src/main/java/net/taler/wallet/peer/IncomingPullPaymentFragment.kt
@@ -25,6 +25,7 @@ import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
+import net.taler.common.showError
import net.taler.wallet.MainViewModel
import net.taler.wallet.R
import net.taler.wallet.compose.TalerSurface
@@ -45,7 +46,11 @@ class IncomingPullPaymentFragment : Fragment() {
if (it is IncomingAccepted) {
findNavController().navigate(R.id.action_promptPullPayment_to_nav_main)
} else if (it is IncomingError) {
- showError(it.info)
+ if (model.devMode.value == true) {
+ showError(it.info)
+ } else {
+ showError(it.info.userFacingMsg)
+ }
}
}
}
diff --git a/wallet/src/main/java/net/taler/wallet/peer/IncomingPushPaymentFragment.kt b/wallet/src/main/java/net/taler/wallet/peer/IncomingPushPaymentFragment.kt
@@ -25,6 +25,7 @@ import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
+import net.taler.common.showError
import net.taler.wallet.MainViewModel
import net.taler.wallet.R
import net.taler.wallet.compose.TalerSurface
@@ -45,7 +46,11 @@ class IncomingPushPaymentFragment : Fragment() {
if (it is IncomingAccepted) {
findNavController().navigate(R.id.action_promptPushPayment_to_nav_main)
} else if (it is IncomingError) {
- showError(it.info)
+ if (model.devMode.value == true) {
+ showError(it.info)
+ } else {
+ showError(it.info.userFacingMsg)
+ }
}
}
}
diff --git a/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt b/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt
@@ -23,6 +23,7 @@ import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.navigation.fragment.findNavController
import com.google.android.material.dialog.MaterialAlertDialogBuilder
+import net.taler.common.showError
import net.taler.wallet.MainViewModel
import net.taler.wallet.R
import net.taler.wallet.TAG
@@ -98,7 +99,11 @@ abstract class TransactionDetailFragment : Fragment() {
private fun deleteTransaction(t: Transaction) {
transactionManager.deleteTransaction(t.transactionId) {
Log.e(TAG, "Error deleteTransaction $it")
- showError(it)
+ if (model.devMode.value == true) {
+ showError(it)
+ } else {
+ showError(it.userFacingMsg)
+ }
}
findNavController().popBackStack()
}
@@ -106,35 +111,55 @@ abstract class TransactionDetailFragment : Fragment() {
private fun retryTransaction(t: Transaction) {
transactionManager.retryTransaction(t.transactionId) {
Log.e(TAG, "Error retryTransaction $it")
- showError(it)
+ if (model.devMode.value == true) {
+ showError(it)
+ } else {
+ showError(it.userFacingMsg)
+ }
}
}
private fun abortTransaction(t: Transaction) {
transactionManager.abortTransaction(t.transactionId) {
Log.e(TAG, "Error abortTransaction $it")
- showError(it)
+ if (model.devMode.value == true) {
+ showError(it)
+ } else {
+ showError(it.userFacingMsg)
+ }
}
}
private fun failTransaction(t: Transaction) {
transactionManager.failTransaction(t.transactionId) {
Log.e(TAG, "Error failTransaction $it")
- showError(it)
+ if (model.devMode.value == true) {
+ showError(it)
+ } else {
+ showError(it.userFacingMsg)
+ }
}
}
private fun suspendTransaction(t: Transaction) {
transactionManager.suspendTransaction(t.transactionId) {
Log.e(TAG, "Error suspendTransaction $it")
- showError(it)
+ if (model.devMode.value == true) {
+ showError(it)
+ } else {
+ showError(it.userFacingMsg)
+ }
}
}
private fun resumeTransaction(t: Transaction) {
transactionManager.resumeTransaction(t.transactionId) {
Log.e(TAG, "Error resumeTransaction $it")
- showError(it)
+ if (model.devMode.value == true) {
+ showError(it)
+ } else {
+ showError(it.userFacingMsg)
+ }
}
}
}
diff --git a/wallet/src/main/java/net/taler/wallet/transactions/TransactionsFragment.kt b/wallet/src/main/java/net/taler/wallet/transactions/TransactionsFragment.kt
@@ -40,6 +40,7 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder
import net.taler.common.Amount
import net.taler.common.fadeIn
import net.taler.common.fadeOut
+import net.taler.common.showError
import net.taler.wallet.MainViewModel
import net.taler.wallet.R
import net.taler.wallet.TAG
@@ -240,7 +241,11 @@ class TransactionsFragment : Fragment(), OnTransactionClickListener, ActionMode.
.setNegativeButton(R.string.transactions_delete) { dialog, _ ->
transactionManager.deleteTransactions(transactionIds) {
Log.e(TAG, "Error deleteTransaction $it")
- showError(it)
+ if (model.devMode.value == true) {
+ showError(it)
+ } else {
+ showError(it.userFacingMsg)
+ }
}
dialog.dismiss()
}