From a06f8661e2e0293f1796a4c10987b7b3fc8ce301 Mon Sep 17 00:00:00 2001 From: Iván Ávalos Date: Tue, 2 Apr 2024 11:51:10 -0600 Subject: [wallet] Add support for taler://dev-experiment URI bug 0008697 --- wallet/src/main/java/net/taler/wallet/HandleUriFragment.kt | 6 ++++++ wallet/src/main/java/net/taler/wallet/MainViewModel.kt | 11 +++++++++++ .../main/java/net/taler/wallet/backend/WalletBackendApi.kt | 2 ++ 3 files changed, 19 insertions(+) (limited to 'wallet') diff --git a/wallet/src/main/java/net/taler/wallet/HandleUriFragment.kt b/wallet/src/main/java/net/taler/wallet/HandleUriFragment.kt index f0b502b..6b8db78 100644 --- a/wallet/src/main/java/net/taler/wallet/HandleUriFragment.kt +++ b/wallet/src/main/java/net/taler/wallet/HandleUriFragment.kt @@ -143,6 +143,12 @@ class HandleUriFragment: Fragment() { val bundle = bundleOf("uri" to u2) findNavController().navigate(R.id.action_handleUri_to_promptPayTemplate, bundle) } + action.startsWith("dev-experiment/", ignoreCase = true) -> { + model.applyDevExperiment(u2) { error -> + showError(error) + } + findNavController().navigate(R.id.nav_main) + } else -> { showError(R.string.error_unsupported_uri, "From: $from\nURI: $u2") findNavController().popBackStack() diff --git a/wallet/src/main/java/net/taler/wallet/MainViewModel.kt b/wallet/src/main/java/net/taler/wallet/MainViewModel.kt index 0f4b94a..2534120 100644 --- a/wallet/src/main/java/net/taler/wallet/MainViewModel.kt +++ b/wallet/src/main/java/net/taler/wallet/MainViewModel.kt @@ -37,6 +37,7 @@ import net.taler.wallet.accounts.AccountManager import net.taler.wallet.backend.BackendManager import net.taler.wallet.backend.NotificationPayload import net.taler.wallet.backend.NotificationReceiver +import net.taler.wallet.backend.TalerErrorInfo import net.taler.wallet.backend.VersionReceiver import net.taler.wallet.backend.WalletBackendApi import net.taler.wallet.backend.WalletCoreVersion @@ -213,6 +214,16 @@ class MainViewModel( } } + fun applyDevExperiment(uri: String, onError: (e: TalerErrorInfo) -> Unit) { + viewModelScope.launch { + api.request("applyDevExperiment") { + put("devExperimentUri", uri) + }.onError { + onError(it) + } + } + } + } sealed class AmountResult { diff --git a/wallet/src/main/java/net/taler/wallet/backend/WalletBackendApi.kt b/wallet/src/main/java/net/taler/wallet/backend/WalletBackendApi.kt index 0619a4e..35d4cc0 100644 --- a/wallet/src/main/java/net/taler/wallet/backend/WalletBackendApi.kt +++ b/wallet/src/main/java/net/taler/wallet/backend/WalletBackendApi.kt @@ -59,6 +59,8 @@ class WalletBackendApi( val config = WalletRunConfig(testing = Testing( emitObservabilityEvents = true, + // TODO: enable conditionally and allow runtime toggling + devModeActive = true, )) request("init", InitResponse.serializer()) { -- cgit v1.2.3