Avoid crash when no app can open an external article link#214
Closed
jim-daf wants to merge 1 commit into
Closed
Conversation
When an article links to an external URL, shouldOverrideUrlLoading sends it out with startActivity(ACTION_VIEW). On a device with no app able to handle the URI that call throws ActivityNotFoundException and the article view crashes. Wrap the launch in a try/catch and show a short toast, mirroring the existing msg_no_activity_to_get_content handling.
Author
|
Closing this, the external link guard is already handled in #211. Sorry for the duplicate. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What
When an article links to an external URL,
ArticleWebView.shouldOverrideUrlLoadinghands it off with a rawgetContext().startActivity(new Intent(Intent.ACTION_VIEW, uri)). On a device with no app able to handle the URI that call throwsActivityNotFoundExceptionand the article view crashes.This wraps the launch in a try/catch and shows a short toast when nothing can open the link, mirroring the existing
msg_no_activity_to_get_contenthandling for the open-file case. Links that resolve behave exactly as before.Changes
if (isExternal(uri)) { Intent browserIntent = new Intent(Intent.ACTION_VIEW, uri); - getContext().startActivity(browserIntent); + try { + getContext().startActivity(browserIntent); + } catch (ActivityNotFoundException e) { + Toast.makeText(getContext(), R.string.msg_no_activity_to_open_link, + Toast.LENGTH_SHORT).show(); + } return true; }A
msg_no_activity_to_open_linkstring is added next to the existingmsg_no_activity_to_get_contententry.Closes #213