Loading k9mail/src/main/java/com/fsck/k9/ui/messageview/MessageContainerView.java +30 −1 Original line number Original line Diff line number Diff line Loading @@ -163,7 +163,11 @@ public class MessageContainerView extends LinearLayout implements OnClickListene } } case HitTestResult.IMAGE_TYPE: case HitTestResult.IMAGE_TYPE: case HitTestResult.SRC_IMAGE_ANCHOR_TYPE: { case HitTestResult.SRC_IMAGE_ANCHOR_TYPE: { final String url = result.getExtra(); final String url = getUriForExternalAccess(result.getExtra()); if (url == null) { return; } final boolean externalImage = url.startsWith("http"); final boolean externalImage = url.startsWith("http"); OnMenuItemClickListener listener = new OnMenuItemClickListener() { OnMenuItemClickListener listener = new OnMenuItemClickListener() { @Override @Override Loading Loading @@ -309,6 +313,31 @@ public class MessageContainerView extends LinearLayout implements OnClickListene } } } } private String getUriForExternalAccess(String url) { if (!url.startsWith("cid:")) { return url; } String cid = Uri.parse(url).getSchemeSpecificPart(); AttachmentViewInfo attachment = getAttachmentByContentId(cid); if (attachment == null) { return null; } return attachment.uri.toString(); } private AttachmentViewInfo getAttachmentByContentId(String cid) { for (AttachmentViewInfo attachment : attachments.keySet()) { if (cid.equals(attachment.part.getContentId())) { return attachment; } } return null; } private void startActivityIfAvailable(Context context, Intent intent) { private void startActivityIfAvailable(Context context, Intent intent) { try { try { context.startActivity(intent); context.startActivity(intent); Loading Loading
k9mail/src/main/java/com/fsck/k9/ui/messageview/MessageContainerView.java +30 −1 Original line number Original line Diff line number Diff line Loading @@ -163,7 +163,11 @@ public class MessageContainerView extends LinearLayout implements OnClickListene } } case HitTestResult.IMAGE_TYPE: case HitTestResult.IMAGE_TYPE: case HitTestResult.SRC_IMAGE_ANCHOR_TYPE: { case HitTestResult.SRC_IMAGE_ANCHOR_TYPE: { final String url = result.getExtra(); final String url = getUriForExternalAccess(result.getExtra()); if (url == null) { return; } final boolean externalImage = url.startsWith("http"); final boolean externalImage = url.startsWith("http"); OnMenuItemClickListener listener = new OnMenuItemClickListener() { OnMenuItemClickListener listener = new OnMenuItemClickListener() { @Override @Override Loading Loading @@ -309,6 +313,31 @@ public class MessageContainerView extends LinearLayout implements OnClickListene } } } } private String getUriForExternalAccess(String url) { if (!url.startsWith("cid:")) { return url; } String cid = Uri.parse(url).getSchemeSpecificPart(); AttachmentViewInfo attachment = getAttachmentByContentId(cid); if (attachment == null) { return null; } return attachment.uri.toString(); } private AttachmentViewInfo getAttachmentByContentId(String cid) { for (AttachmentViewInfo attachment : attachments.keySet()) { if (cid.equals(attachment.part.getContentId())) { return attachment; } } return null; } private void startActivityIfAvailable(Context context, Intent intent) { private void startActivityIfAvailable(Context context, Intent intent) { try { try { context.startActivity(intent); context.startActivity(intent); Loading