View Issue Details

IDProjectCategoryView StatusLast Update
0011621Talerwallet (Android App)public2026-11-11 02:05
Reportervecirex Assigned ToResolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PrioritynormalSeverityminorReproducibilityalways
Status implementingResolutionopen 
Target Version1.7 
Summary0011621: taler-uri-action "add-exchange" missing
DescriptionIn Android, taler://add-exchange/$EXCHANGE_DOMAIN/ doesn't seem to work, claims to be unsupported URI.

See this described in https://lsd.gnunet.org/lsd0006 and https://docs.taler.net/wallet/wallet-core.html#addexchangeop to exist; cf. screenshot.
Tagsandroid, quality, ux
Attached Files

Required notifications

Address or linkRemarkAdded byNotifiedActions

Relationships

related to 0012106 new iOS: taler://add-exchange link hangs on "Scanning..." for ever (ExchangeListView clears URLSheet's URL binding) 

Activities

vecirex

2026-07-10 10:17

administrator   ~0029131

Last edited: 2026-07-10 10:17

Acc. to marc, fixed to be supported already in iOS; not visible in git (afaics), probably local.

bot-cg [agent]

2026-11-11 02:05

updater   ~0030401

Still the case on Android master (4c483527, 2026-11-11); fresh screenshots and a patch attached.

taler://add-exchange/tripwire.taler.net:8445/ on Android: error sheet "Error / Unsupported URI: taler://add-exchange/tripwire.taler.net:8445/" (before-android-1.png). HandleUriScreen.kt:85-152 has branches for pay, withdraw, withdraw-exchange, refund, pay-pull, pay-push, pay-template, dev-experiment and add-contact only; the else branch builds the untranslated "Unsupported URI" text (:149-151).

WebExtension: "Add exchange / Add https://tripwire.taler.net:8445/ as a wallet exchange." -> Continue -> exchange details (before-web-1.png, before-web-2.png).
iOS: on current master the same link hangs on "Scanning..." (before-ios-1.png); filed separately with a fix as 0012106.

Patch (android-add-exchange-uri.patch, 6 lines in HandleUriScreen.kt): an "add-exchange/" branch that calls ExchangeManager.add(uri) (wallet-core's addExchange parses taler://add-exchange URIs itself) and opens Settings > Payment services, which already reports add failures in a snackbar. Built with :wallet:assembleFdroidSim; the link now adds the exchange and shows it in the list (after-android-1.png).

Assisted by LLM
before-android-1.png (136,989 bytes)   
before-android-1.png (136,989 bytes)   
before-web-1.png (59,128 bytes)   
before-web-1.png (59,128 bytes)   
before-web-2.png (108,884 bytes)   
before-web-2.png (108,884 bytes)   
before-ios-1.png (126,695 bytes)   
before-ios-1.png (126,695 bytes)   
after-android-1.png (77,348 bytes)   
after-android-1.png (77,348 bytes)   
android-add-exchange-uri.patch (1,066 bytes)   
diff --git a/wallet/src/main/java/net/taler/wallet/HandleUriScreen.kt b/wallet/src/main/java/net/taler/wallet/HandleUriScreen.kt
index 03a3c56a..56c005e1 100644
--- a/wallet/src/main/java/net/taler/wallet/HandleUriScreen.kt
+++ b/wallet/src/main/java/net/taler/wallet/HandleUriScreen.kt
@@ -100,6 +100,12 @@ fun HandleUriScreen(
                             editableCurrency = false
                         ), true)
                     }
+                    action.startsWith("add-exchange/", ignoreCase = true) -> {
+                        // wallet-core parses the taler://add-exchange URI itself;
+                        // the list reports a failure (snackbar) and shows the new entry
+                        model.exchangeManager.add(u2)
+                        onNavigate(WalletDestination.ExchangeList, true)
+                    }
                     action.startsWith("withdraw-exchange/", ignoreCase = true) -> {
                         model.withdrawManager.resetWithdrawal()
                         onNavigate(WalletDestination.PromptWithdraw(
android-add-exchange-uri.patch (1,066 bytes)   

Issue History

Date ModifiedUsernameFieldChange
2026-07-09 09:07vecirexNew Issue
2026-07-09 09:07vecirexFile Added: android-without-add-exchange-taler-uri-action.jpg
2026-07-09 09:07vecirexTag Attached: android
2026-07-09 09:07vecirexTag Attached: quality
2026-07-09 09:07vecirexTag Attached: ux
2026-07-09 09:11vecirexTag Attached: compliance
2026-07-09 09:11vecirexTag Detached: compliance
2026-07-10 09:37Christian GrothoffStatusnew => implementing
2026-07-10 10:17vecirexNote Added: 0029131
2026-07-10 10:17vecirexNote Edited: 0029131
2026-08-29 19:37Florian DoldTarget Version => 1.7
2026-11-11 02:05bot-cgNote Added: 0030401
2026-11-11 02:05bot-cgFile Added: before-android-1.png
2026-11-11 02:05bot-cgFile Added: before-web-1.png
2026-11-11 02:05bot-cgFile Added: before-web-2.png
2026-11-11 02:05bot-cgFile Added: before-ios-1.png
2026-11-11 02:05bot-cgFile Added: after-android-1.png
2026-11-11 02:05bot-cgFile Added: android-add-exchange-uri.patch