diff options
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/backend/WalletResponse.kt')
-rw-r--r-- | wallet/src/main/java/net/taler/wallet/backend/WalletResponse.kt | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/backend/WalletResponse.kt b/wallet/src/main/java/net/taler/wallet/backend/WalletResponse.kt index 37bf91e..3946457 100644 --- a/wallet/src/main/java/net/taler/wallet/backend/WalletResponse.kt +++ b/wallet/src/main/java/net/taler/wallet/backend/WalletResponse.kt @@ -29,6 +29,7 @@ import kotlinx.serialization.json.JsonElement import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.JsonPrimitive import kotlinx.serialization.json.buildJsonObject +import kotlinx.serialization.json.jsonObject import kotlinx.serialization.json.jsonPrimitive @Serializable @@ -75,8 +76,18 @@ data class TalerErrorInfo( val userFacingMsg: String get() { return StringBuilder().apply { - hint?.let { append(it) } - message?.let { append(" ").append(it) } + // If there's a hint in errorResponse, use it. + if (extra.containsKey("errorResponse")) { + val errorResponse = extra["errorResponse"]!!.jsonObject + if (errorResponse.containsKey("hint")) { + val hint = errorResponse["hint"]!!.jsonPrimitive.content + append(hint) + } + } else { + // Otherwise, use the standard ones + hint?.let { append(it) } + message?.let { append(" ").append(it) } + } }.toString() } |