fix: show error when no app can handle cryptocurrency address #81
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Solution
The reason this happens is because
LinkAnnotation.Urlautomatically handles clicksProblem
In the
Infoapp, clicking on a crypto address does not do anything if an app that can handle the link is not installed. Ideally, an error message or toast should be shown to the user.Solution
The reason this happens is because
LinkAnnotation.Urlwithout alinkInteractionListeneruses the defaultUriHandler, which silently fails when no app can handle theURI. I've added a customlinkInteractionListenerthat handlesIllegalArgumentExceptions and shows a snackbar error. This also replaces the deprecatedClickableTextwith the modernwithLinkAPI.Additionally, the error message grammar was improved from "Couldn't find an app to open donation address with!" to "No wallet app installed to open this address". This could be further improved if desired :)
Screenshot that shows the snackbar error when no app that can handle the link is installed