@@ -722,14 +722,32 @@ class TransactionRepository @Inject constructor(
722722
723723 sealed class ErrorSubmitIntent (val value : Int ) {
724724 data class Denied (val reasons : List <DeniedReason > = emptyList()): ErrorSubmitIntent(0 )
725- data object InvalidIntent : ErrorSubmitIntent (1 )
725+ data class InvalidIntent ( val reasons : List < String >) : ErrorSubmitIntent(1 )
726726 data object SignatureError : ErrorSubmitIntent (2 )
727- data object StaleState : ErrorSubmitIntent (3 )
727+ data class StaleState ( val reasons : List < String >) : ErrorSubmitIntent(3 )
728728 data object Unknown : ErrorSubmitIntent (-1 )
729729 data object DeviceTokenUnavailable : ErrorSubmitIntent (-2 )
730730
731+ override fun toString (): String {
732+ return when (this ) {
733+ is Denied -> " denied(${reasons.joinToString()} )"
734+ DeviceTokenUnavailable -> " deviceTokenUnavailable"
735+ is InvalidIntent -> " invalidIntent(${reasons.joinToString()} )"
736+ SignatureError -> " signatureError"
737+ is StaleState -> " staleState(${reasons.joinToString()} )"
738+ Unknown -> " unknown"
739+ }
740+ }
741+
731742 companion object {
732743 operator fun invoke (proto : SubmitIntentResponse .Error ): ErrorSubmitIntent {
744+ val reasonStrings = proto.errorDetailsList.mapNotNull {
745+ when (it.typeCase) {
746+ TransactionService .ErrorDetails .TypeCase .REASON_STRING ->
747+ it.reasonString.reason.takeIf { reason -> reason.isNotEmpty() }
748+ else -> null
749+ }
750+ }
733751 return when (proto.code) {
734752 SubmitIntentResponse .Error .Code .DENIED -> {
735753 val reasons = proto.errorDetailsList.mapNotNull {
@@ -739,9 +757,9 @@ class TransactionRepository @Inject constructor(
739757
740758 Denied (reasons)
741759 }
742- SubmitIntentResponse .Error .Code .INVALID_INTENT -> InvalidIntent
760+ SubmitIntentResponse .Error .Code .INVALID_INTENT -> InvalidIntent (reasonStrings)
743761 SubmitIntentResponse .Error .Code .SIGNATURE_ERROR -> SignatureError
744- SubmitIntentResponse .Error .Code .STALE_STATE -> StaleState
762+ SubmitIntentResponse .Error .Code .STALE_STATE -> StaleState (reasonStrings)
745763 SubmitIntentResponse .Error .Code .UNRECOGNIZED -> Unknown
746764 else -> return Unknown
747765 }
0 commit comments