diff --git a/k9mail/src/main/java/com/fsck/k9/ui/messageview/DownloadImageTask.java b/k9mail/src/main/java/com/fsck/k9/ui/messageview/DownloadImageTask.java index 148eab1e6..da6122219 100644 --- a/k9mail/src/main/java/com/fsck/k9/ui/messageview/DownloadImageTask.java +++ b/k9mail/src/main/java/com/fsck/k9/ui/messageview/DownloadImageTask.java @@ -97,19 +97,7 @@ class DownloadImageTask extends AsyncTask { in = contentResolver.openInputStream(uri); } - // Do we still need an extension? - if (filename.indexOf('.') == -1) { - // Use JPEG as fallback - String extension = "jpeg"; - if (mimeType != null) { - // Try to find an extension for the given MIME type - String ext = MimeUtility.getExtensionByMimeType(mimeType); - if (ext != null) { - extension = ext; - } - } - filename += "." + extension; - } + filename = getFileNameWithExtension(filename, mimeType); String sanitized = FileHelper.sanitizeFilename(filename); @@ -136,6 +124,23 @@ class DownloadImageTask extends AsyncTask { } } + private String getFileNameWithExtension(String filename, String mimeType) { + if (filename.indexOf('.') != -1) { + return filename; + } + + // Use JPEG as fallback + String extension = "jpeg"; + if (mimeType != null) { + String extensionFromMimeType = MimeUtility.getExtensionByMimeType(mimeType); + if (extensionFromMimeType != null) { + extension = extensionFromMimeType; + } + } + + return filename + "." + extension; + } + @Override protected void onPostExecute(String filename) { String text;