@Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.startsWith("mailto:")) { final Activity activity = mActivityRef.get(); if (activity != null) { MailTo mt = MailTo.parse(url); Intent i = newEmailIntent(activity, mt.getTo(), mt.getSubject(), mt.getBody(), mt.getCc()); activity.startActivity(i); view.reload(); return true; } } else { view.loadUrl(url); } return true; }
private static Address extractAddress(String headerValue) { if (headerValue == null || headerValue.isEmpty()) { return null; } Matcher matcher = MAILTO_CONTAINER_PATTERN.matcher(headerValue); if (!matcher.find()) { return null; } String mailToUri = matcher.group(1); String emailAddress = MailTo.parse(mailToUri).getTo(); return new Address(emailAddress); }
@Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // Check if configured proxy is available if (mBrowserController.proxyIsNotReady()) { // User has been notified return true; } if (mIsIncognitoTab) { return super.shouldOverrideUrlLoading(view, url); } if (url.startsWith("about:")) { return super.shouldOverrideUrlLoading(view, url); } if (url.contains("mailto:")) { MailTo mailTo = MailTo.parse(url); Intent i = Utils.newEmailIntent(mailTo.getTo(), mailTo.getSubject(), mailTo.getBody(), mailTo.getCc()); mActivity.startActivity(i); view.reload(); return true; } else if (url.startsWith("intent://")) { Intent intent; try { intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME); } catch (URISyntaxException ex) { return false; } if (intent != null) { try { mActivity.startActivity(intent); } catch (ActivityNotFoundException e) { Log.e(Constants.TAG, "ActivityNotFoundException"); } return true; } } return mIntentUtils.startActivityForUrl(mWebView, url); }
@Override public void onAddToContacts(String url) { Intent intent = new Intent(Intent.ACTION_INSERT); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setType(ContactsContract.Contacts.CONTENT_TYPE); if (MailTo.isMailTo(url)) { intent.putExtra( ContactsContract.Intents.Insert.EMAIL, MailTo.parse(url).getTo().split(",")[0]); } else if (UrlUtilities.isTelScheme(url)) { intent.putExtra(ContactsContract.Intents.Insert.PHONE, UrlUtilities.getTelNumber(url)); } IntentUtils.safeStartActivity(mTab.getActivity(), intent); }
public static Intent getEmailIntent(MailTo mailTo) { Intent intent = new Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_EMAIL, new String[] { mailTo.getTo() }); intent.putExtra(Intent.EXTRA_TEXT, mailTo.getBody()); intent.putExtra(Intent.EXTRA_SUBJECT, mailTo.getSubject()); intent.putExtra(Intent.EXTRA_CC, mailTo.getCc()); intent.setType(INTENT_TYPE_MESSAGE_RFC822); return intent; }
public static void showMailDialg(Context context, String url) { MailTo mt = MailTo.parse(url); Intent i = new Intent(Intent.ACTION_SEND); i.setType("text/plain"); i.putExtra(Intent.EXTRA_EMAIL, new String[] { mt.getTo() }); i.putExtra(Intent.EXTRA_SUBJECT, mt.getSubject()); i.putExtra(Intent.EXTRA_CC, mt.getCc()); i.putExtra(Intent.EXTRA_TEXT, mt.getBody()); context.startActivity(i); }
@Override public boolean shouldOverrideUrlLoading(WebView view, String url) { logger.d("webLoading:shouldOverrideUrlLoading"); // Check if configured proxy is available // if (!mBrowserController.isProxyReady()) { // // User has been notified // return true; // } // if (mBrowserController.isIncognito()) { // return super.shouldOverrideUrlLoading(view, url); // } if (url.startsWith("about:")) { return super.shouldOverrideUrlLoading(view, url); } if (url.contains("mailto:")) { MailTo mailTo = MailTo.parse(url); Intent i = XmWebUtils.newEmailIntent(mailTo.getTo(), mailTo.getSubject(), mailTo.getBody(), mailTo.getCc()); mContext.startActivity(i); view.reload(); return true; } else if (url.startsWith("intent://")) { Intent intent; try { intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME); } catch (URISyntaxException ex) { return false; } if (intent != null) { try { mContext.startActivity(intent); } catch (ActivityNotFoundException e) { logger.e("ActivityNotFoundException"); } return true; } } return mIntentUtils.startActivityForUrl(XmWebView.this, url); }