taler-ios

iOS apps for GNU Taler (wallet)
Log | Files | Refs | README | LICENSE

commit cc52a4996167a5f482a43c1fd59c9fc5728f8b98
parent 5449667134a736a87fb76c4394d86ff1e88895d1
Author: Marc Stibane <marc@taler.net>
Date:   Tue, 17 Feb 2026 23:08:20 +0100

sort + reduce minor states

Diffstat:
MTalerWallet1/Model/Transaction.swift | 121++++++++++++++++++++++++++++---------------------------------------------------
1 file changed, 43 insertions(+), 78 deletions(-)

diff --git a/TalerWallet1/Model/Transaction.swift b/TalerWallet1/Model/Transaction.swift @@ -20,89 +20,55 @@ enum TransactionDecodingError: Error { } enum TransactionMinorState: String, Codable { - // Placeholder until D37 is fully implemented - case unknown - case deposit - case aml // AmlRequired - case kyc // KycRequired - case kycInit = "kyc-init" - case kycAuthRequired = "kyc-auth" - case balanceKyc = "balance-kyc" // show kycUrl - case balanceKycInit = "balance-kyc-init" // kycUrl not yet ready - case mergeKycRequired = "merge-kyc" // same as KYC but for P2P - case track - case submitPayment = "submit-payment" - case rebindSession = "rebind-session" - case refresh - case refreshExpired = "refresh-expired" - case pickup - case autoRefund = "auto-refund" - case user - case bank - case exchange - case claimProposal = "claim-proposal" + case abortingBank = "aborting-bank" // failed + case acceptRefund = "accept-refund" + case autoRefund = "auto-refund" // TODO: finalizing + case balanceKyc = "balance-kyc" // pending - exceeds balance limit + case bank // aborting in withdrawal + case bankConfirmTransfer = "bank-confirm-transfer" + case bankRegisterReserve = "bank-register-reserve" case checkRefund = "check-refund" + case claimProposal = "claim-proposal" + case completedByOtherWallet = "completed-by-other-wallet" // aborted case createPurse = "create-purse" - case deletePurse = "delete-purse" - case ready - case merge - case repurchase - case bankRegisterReserve = "bank-register-reserve" - case bankConfirmTransfer = "bank-confirm-transfer" - case withdrawCoins = "withdraw-coins" + case deletePurse = "delete-purse" // aborting + case deposit // exchange wire-transfers to bank + case exchange // aborted case exchangeWaitReserve = "exchange-wait-reserve" - case abortingBank = "aborting-bank" - case aborting - case refused + case kyc // KycRequired + case kycAuthRequired = "kyc-auth" + case kycInit = "kyc-init" + case merge // peerPushCredit + case paidByOther = "paid-by-other" // failed webEx -> mobile + case proposed // dialog + case ready // P2P + case rebindSession = "rebind-session" + case refresh // aborting + case refused // aborted + case repurchase // failed + case submitPayment = "submit-payment" + case track // finalizing deposit - late KYC / failure case withdraw - case merchantOrderProposed = "merchant-order-proposed" - case proposed - case refundAvailable = "refund-available" - case acceptRefund = "accept-refund" - case paidByOther = "paid-by-other" - case completedByOtherWallet = "completed-by-other-wallet" + // Placeholder until D37 is fully implemented + case unknown var localizedDbgState: String { self.rawValue } var localizedState: String? { switch self { - case .unknown: return self.rawValue - case .deposit: return self.rawValue - case .aml: return String(localized: "MinorState.aml", defaultValue: "AML required", comment: "TxMinorState heading") - case .balanceKyc, .balanceKycInit, - .kycAuthRequired, .kycInit, - .kyc, .mergeKycRequired: return String(localized: "MinorState.kyc", defaultValue: "Legitimization required", comment: "TxMinorState heading") - case .track: return self.rawValue - case .submitPayment: return self.rawValue - case .rebindSession: return self.rawValue - case .refresh: return self.rawValue - case .refreshExpired: return self.rawValue - case .pickup: return self.rawValue - case .autoRefund: return self.rawValue - case .user: return self.rawValue - case .bank: return self.rawValue - case .exchange: return self.rawValue // in aborted - case .claimProposal: return self.rawValue - case .checkRefund: return self.rawValue - case .createPurse: return self.rawValue - case .deletePurse: return self.rawValue - case .ready: return self.rawValue - case .merge: return self.rawValue - case .repurchase: return self.rawValue - case .bankRegisterReserve: return self.rawValue - case .bankConfirmTransfer: return String(localized: "MinorState.bankConfirmTransfer", defaultValue: "Waiting for bank transfer", comment: "TxMinorState heading") - case .withdrawCoins: return self.rawValue - case .exchangeWaitReserve: return self.rawValue - case .abortingBank: return self.rawValue - case .aborting: return self.rawValue - case .refused: return self.rawValue - case .withdraw: return self.rawValue - case .merchantOrderProposed: return self.rawValue - case .proposed: return self.rawValue - case .refundAvailable: return self.rawValue - case .acceptRefund: return self.rawValue - case .paidByOther: return self.rawValue - case .completedByOtherWallet: return self.rawValue -// default: return nil + case .kycInit: return String(localized: "MinorState.kycInit", defaultValue: "Preparing Legitimization", comment: "TxMinorState heading") + case .kycAuthRequired: return String(localized: "MinorState.kycAuth", defaultValue: "Verify bank account", comment: "TxMinorState heading") + case .balanceKyc, + .kyc: return String(localized: "MinorState.kyc", defaultValue: "Legitimization required", comment: "TxMinorState heading") + case .acceptRefund, + .checkRefund: return String(localized: "MinorState.acceptRefund", defaultValue: "Checking for refund", comment: "TxMinorState heading") + case .bankConfirmTransfer:return String(localized: "MinorState.bankConfirmTransfer", defaultValue: "Waiting for bank transfer", comment: "TxMinorState heading") + case .completedByOtherWallet:return String(localized: "MinorState.completedByOther", defaultValue: "Completed by other wallet", comment: "TxMinorState heading") +// case .exchange: return self.rawValue // TODO: mention that money will come back + case .proposed: return self.rawValue // TODO: discuss + case .ready: return String(localized: "MinorState.ready", defaultValue: "Ready", comment: "TxMinorState heading") + case .rebindSession: return String(localized: "MinorState.rebindSession", defaultValue: "Restoring access", comment: "TxMinorState heading") +// case .track: return self.rawValue + default: return nil } } } @@ -192,9 +158,8 @@ struct TransactionState: Codable, Hashable { || major == .finalizing } var isReady: Bool { minor == .ready } var isKYC: Bool { minor == .kyc - || minor == .kycInit - || minor == .balanceKyc - || minor == .mergeKycRequired } +// || minor == .kycInit + || minor == .balanceKyc } var isKYCauth: Bool { minor == .kycAuthRequired } }