diff --git a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListScreen.kt b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListScreen.kt index 7f64d6db..ce8ae1b6 100644 --- a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListScreen.kt +++ b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListScreen.kt @@ -102,13 +102,16 @@ fun ExchangeListScreen( val addErrorText = stringResource(R.string.exchange_add_error) LaunchedEffect(addError) { - addError?.getIfNotConsumed()?.let { + addError?.getIfNotConsumed()?.let { error -> addInProgress = false + // say why: unreachable host, not an exchange, or not a valid address + val reason = error.userFacingMsg + val message = if (reason.isEmpty()) addErrorText else "$addErrorText: $reason" if (showAddDialog) { // Keep the dialog open so the user can correct the address. - addErrorMessage = addErrorText + addErrorMessage = message } else { - snackbarHostState.showSnackbar(addErrorText, duration = SnackbarDuration.Long) + snackbarHostState.showSnackbar(message, duration = SnackbarDuration.Long) } } } @@ -352,8 +355,8 @@ fun AddExchangeDialog( }, confirmButton = { TextButton( - onClick = { onConfirm(url) }, - enabled = !loading, + onClick = { onConfirm(url.trim()) }, + enabled = !loading && url.isNotBlank(), ) { if (loading) { CircularProgressIndicator(