diff --git a/TalerWallet1/Views/Transactions/ManualDetailsV.swift b/TalerWallet1/Views/Transactions/ManualDetailsV.swift index ea15087e..c4a8f016 100644 --- a/TalerWallet1/Views/Transactions/ManualDetailsV.swift +++ b/TalerWallet1/Views/Transactions/ManualDetailsV.swift @@ -96,7 +96,45 @@ struct WireTransferView: View { .listRowSeparator(.hidden) .accessibilityLabel(titleA11y) } - if validCount > 1 { + // A choice the user cannot read is not a choice. + // + // The chooser existed for accounts that differ -- above all + // a *conversion* account, where you wire one currency and + // receive another. It was offered whenever there was more + // than one account, which is not the same question. + // + // Measured against exchange.demo.taler.net on 2026-11-10, + // through wallet-core's own `getWithdrawalDetailsForAmount`: + // + // 0 payto://x-taler-bank/sandcastle/exchange + // ?receiver-name=Sandcastle+Echange+Inc + // transferAmount KUDOS:5 bankLabel nil priority 0 + // 1 payto://x-taler-bank/sandcastle/exchange + // ?receiver-name=Sandcastle+Exchange+Inc + // transferAmount KUDOS:5 bankLabel nil priority 0 + // + // The same account twice, differing only by a typo in + // `receiver-name` -- and `SegmentControl` labels a segment + // with the formatted transfer amount plus the bank label, + // so both segments read "KUDOS 5.00" and the user is asked + // to pick between them. The deployment's duplicate is worth + // fixing too, but the app should not offer a choice whose + // options it renders identically whatever the cause. + // + // Built from exactly what the segments show, so the test + // cannot drift from the rendering. + var renderedChoices = Set() + for i in 0.. 1 && renderedChoices.count > 1 { if validCount > 3 { // too many for SegmentControl AccountPicker(title: String(localized: "Bank"), value: $validIndex,