Guess mime type (when not specified) of attachments of received messages using file name extension so that we can open them
This commit is contained in:
parent
f965417479
commit
11b7157772
5 changed files with 229 additions and 223 deletions
|
@ -191,203 +191,6 @@ public class K9 extends Application
|
|||
public static final int FETCHING_EMAIL_NOTIFICATION_NO_ACCOUNT = -2;
|
||||
public static final int CONNECTIVITY_ID = -3;
|
||||
|
||||
/*
|
||||
* http://www.w3schools.com/media/media_mimeref.asp
|
||||
* + png
|
||||
*/
|
||||
public static final String[][] CONTENT_TYPE_BY_EXTENSION_MAP = new String[][]
|
||||
{
|
||||
{ "", "application/octet-stream" },
|
||||
{ "323", "text/h323"},
|
||||
{ "acx", "application/internet-property-stream"},
|
||||
{ "ai", "application/postscript"},
|
||||
{ "aif", "audio/x-aiff"},
|
||||
{ "aifc", "audio/x-aiff"},
|
||||
{ "aiff", "audio/x-aiff"},
|
||||
{ "asf", "video/x-ms-asf"},
|
||||
{ "asr", "video/x-ms-asf"},
|
||||
{ "asx", "video/x-ms-asf"},
|
||||
{ "au", "audio/basic"},
|
||||
{ "avi", "video/x-msvideo"},
|
||||
{ "axs", "application/olescript"},
|
||||
{ "bas", "text/plain"},
|
||||
{ "bcpio", "application/x-bcpio"},
|
||||
{ "bin", "application/octet-stream"},
|
||||
{ "bmp", "image/bmp"},
|
||||
{ "c", "text/plain"},
|
||||
{ "cat", "application/vnd.ms-pkiseccat"},
|
||||
{ "cdf", "application/x-cdf"},
|
||||
{ "cer", "application/x-x509-ca-cert"},
|
||||
{ "class", "application/octet-stream"},
|
||||
{ "clp", "application/x-msclip"},
|
||||
{ "cmx", "image/x-cmx"},
|
||||
{ "cod", "image/cis-cod"},
|
||||
{ "cpio", "application/x-cpio"},
|
||||
{ "crd", "application/x-mscardfile"},
|
||||
{ "crl", "application/pkix-crl"},
|
||||
{ "crt", "application/x-x509-ca-cert"},
|
||||
{ "csh", "application/x-csh"},
|
||||
{ "css", "text/css"},
|
||||
{ "dcr", "application/x-director"},
|
||||
{ "der", "application/x-x509-ca-cert"},
|
||||
{ "dir", "application/x-director"},
|
||||
{ "dll", "application/x-msdownload"},
|
||||
{ "dms", "application/octet-stream"},
|
||||
{ "doc", "application/msword"},
|
||||
{ "dot", "application/msword"},
|
||||
{ "dvi", "application/x-dvi"},
|
||||
{ "dxr", "application/x-director"},
|
||||
{ "eps", "application/postscript"},
|
||||
{ "etx", "text/x-setext"},
|
||||
{ "evy", "application/envoy"},
|
||||
{ "exe", "application/octet-stream"},
|
||||
{ "fif", "application/fractals"},
|
||||
{ "flr", "x-world/x-vrml"},
|
||||
{ "gif", "image/gif"},
|
||||
{ "gtar", "application/x-gtar"},
|
||||
{ "gz", "application/x-gzip"},
|
||||
{ "h", "text/plain"},
|
||||
{ "hdf", "application/x-hdf"},
|
||||
{ "hlp", "application/winhlp"},
|
||||
{ "hqx", "application/mac-binhex40"},
|
||||
{ "hta", "application/hta"},
|
||||
{ "htc", "text/x-component"},
|
||||
{ "htm", "text/html"},
|
||||
{ "html", "text/html"},
|
||||
{ "htt", "text/webviewhtml"},
|
||||
{ "ico", "image/x-icon"},
|
||||
{ "ief", "image/ief"},
|
||||
{ "iii", "application/x-iphone"},
|
||||
{ "ins", "application/x-internet-signup"},
|
||||
{ "isp", "application/x-internet-signup"},
|
||||
{ "jfif", "image/pipeg"},
|
||||
{ "jpe", "image/jpeg"},
|
||||
{ "jpeg", "image/jpeg"},
|
||||
{ "jpg", "image/jpeg"},
|
||||
{ "js", "application/x-javascript"},
|
||||
{ "latex", "application/x-latex"},
|
||||
{ "lha", "application/octet-stream"},
|
||||
{ "lsf", "video/x-la-asf"},
|
||||
{ "lsx", "video/x-la-asf"},
|
||||
{ "lzh", "application/octet-stream"},
|
||||
{ "m13", "application/x-msmediaview"},
|
||||
{ "m14", "application/x-msmediaview"},
|
||||
{ "m3u", "audio/x-mpegurl"},
|
||||
{ "man", "application/x-troff-man"},
|
||||
{ "mdb", "application/x-msaccess"},
|
||||
{ "me", "application/x-troff-me"},
|
||||
{ "mht", "message/rfc822"},
|
||||
{ "mhtml", "message/rfc822"},
|
||||
{ "mid", "audio/mid"},
|
||||
{ "mny", "application/x-msmoney"},
|
||||
{ "mov", "video/quicktime"},
|
||||
{ "movie", "video/x-sgi-movie"},
|
||||
{ "mp2", "video/mpeg"},
|
||||
{ "mp3", "audio/mpeg"},
|
||||
{ "mpa", "video/mpeg"},
|
||||
{ "mpe", "video/mpeg"},
|
||||
{ "mpeg", "video/mpeg"},
|
||||
{ "mpg", "video/mpeg"},
|
||||
{ "mpp", "application/vnd.ms-project"},
|
||||
{ "mpv2", "video/mpeg"},
|
||||
{ "ms", "application/x-troff-ms"},
|
||||
{ "mvb", "application/x-msmediaview"},
|
||||
{ "nws", "message/rfc822"},
|
||||
{ "oda", "application/oda"},
|
||||
{ "p10", "application/pkcs10"},
|
||||
{ "p12", "application/x-pkcs12"},
|
||||
{ "p7b", "application/x-pkcs7-certificates"},
|
||||
{ "p7c", "application/x-pkcs7-mime"},
|
||||
{ "p7m", "application/x-pkcs7-mime"},
|
||||
{ "p7r", "application/x-pkcs7-certreqresp"},
|
||||
{ "p7s", "application/x-pkcs7-signature"},
|
||||
{ "pbm", "image/x-portable-bitmap"},
|
||||
{ "pdf", "application/pdf"},
|
||||
{ "pfx", "application/x-pkcs12"},
|
||||
{ "pgm", "image/x-portable-graymap"},
|
||||
{ "pko", "application/ynd.ms-pkipko"},
|
||||
{ "pma", "application/x-perfmon"},
|
||||
{ "pmc", "application/x-perfmon"},
|
||||
{ "pml", "application/x-perfmon"},
|
||||
{ "pmr", "application/x-perfmon"},
|
||||
{ "pmw", "application/x-perfmon"},
|
||||
{ "png", "image/png"},
|
||||
{ "pnm", "image/x-portable-anymap"},
|
||||
{ "pot,", "application/vnd.ms-powerpoint"},
|
||||
{ "ppm", "image/x-portable-pixmap"},
|
||||
{ "pps", "application/vnd.ms-powerpoint"},
|
||||
{ "ppt", "application/vnd.ms-powerpoint"},
|
||||
{ "prf", "application/pics-rules"},
|
||||
{ "ps", "application/postscript"},
|
||||
{ "pub", "application/x-mspublisher"},
|
||||
{ "qt", "video/quicktime"},
|
||||
{ "ra", "audio/x-pn-realaudio"},
|
||||
{ "ram", "audio/x-pn-realaudio"},
|
||||
{ "ras", "image/x-cmu-raster"},
|
||||
{ "rgb", "image/x-rgb"},
|
||||
{ "rmi", "audio/mid"},
|
||||
{ "roff", "application/x-troff"},
|
||||
{ "rtf", "application/rtf"},
|
||||
{ "rtx", "text/richtext"},
|
||||
{ "scd", "application/x-msschedule"},
|
||||
{ "sct", "text/scriptlet"},
|
||||
{ "setpay", "application/set-payment-initiation"},
|
||||
{ "setreg", "application/set-registration-initiation"},
|
||||
{ "sh", "application/x-sh"},
|
||||
{ "shar", "application/x-shar"},
|
||||
{ "sit", "application/x-stuffit"},
|
||||
{ "snd", "audio/basic"},
|
||||
{ "spc", "application/x-pkcs7-certificates"},
|
||||
{ "spl", "application/futuresplash"},
|
||||
{ "src", "application/x-wais-source"},
|
||||
{ "sst", "application/vnd.ms-pkicertstore"},
|
||||
{ "stl", "application/vnd.ms-pkistl"},
|
||||
{ "stm", "text/html"},
|
||||
{ "svg", "image/svg+xml"},
|
||||
{ "sv4cpio","application/x-sv4cpio"},
|
||||
{ "sv4crc", "application/x-sv4crc"},
|
||||
{ "swf", "application/x-shockwave-flash"},
|
||||
{ "t", "application/x-troff"},
|
||||
{ "tar", "application/x-tar"},
|
||||
{ "tcl", "application/x-tcl"},
|
||||
{ "tex", "application/x-tex"},
|
||||
{ "texi", "application/x-texinfo"},
|
||||
{ "texinfo","application/x-texinfo"},
|
||||
{ "tgz", "application/x-compressed"},
|
||||
{ "tif", "image/tiff"},
|
||||
{ "tiff", "image/tiff"},
|
||||
{ "tr", "application/x-troff"},
|
||||
{ "trm", "application/x-msterminal"},
|
||||
{ "tsv", "text/tab-separated-values"},
|
||||
{ "txt", "text/plain"},
|
||||
{ "uls", "text/iuls"},
|
||||
{ "ustar", "application/x-ustar"},
|
||||
{ "vcf", "text/x-vcard"},
|
||||
{ "vrml", "x-world/x-vrml"},
|
||||
{ "wav", "audio/x-wav"},
|
||||
{ "wcm", "application/vnd.ms-works"},
|
||||
{ "wdb", "application/vnd.ms-works"},
|
||||
{ "wks", "application/vnd.ms-works"},
|
||||
{ "wmf", "application/x-msmetafile"},
|
||||
{ "wps", "application/vnd.ms-works"},
|
||||
{ "wri", "application/x-mswrite"},
|
||||
{ "wrl", "x-world/x-vrml"},
|
||||
{ "wrz", "x-world/x-vrml"},
|
||||
{ "xaf", "x-world/x-vrml"},
|
||||
{ "xbm", "image/x-xbitmap"},
|
||||
{ "xla", "application/vnd.ms-excel"},
|
||||
{ "xlc", "application/vnd.ms-excel"},
|
||||
{ "xlm", "application/vnd.ms-excel"},
|
||||
{ "xls", "application/vnd.ms-excel"},
|
||||
{ "xlt", "application/vnd.ms-excel"},
|
||||
{ "xlw", "application/vnd.ms-excel"},
|
||||
{ "xof", "x-world/x-vrml"},
|
||||
{ "xpm", "image/x-xpixmap"},
|
||||
{ "xwd", "image/x-xwindowdump"},
|
||||
{ "z", "application/x-compress"},
|
||||
{ "zip", "application/zip"}
|
||||
};
|
||||
|
||||
public static final int[] COLOR_CHIP_RES_IDS = new int[]
|
||||
{
|
||||
R.drawable.appointment_indicator_leftside_1,
|
||||
|
|
|
@ -954,28 +954,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
|||
|
||||
if (contentType == null)
|
||||
{
|
||||
boolean found = false;
|
||||
if (attachment.name!=null)
|
||||
{
|
||||
int index = attachment.name.lastIndexOf('.');
|
||||
if (index!=-1)
|
||||
{
|
||||
String extension = attachment.name.substring(index+1).toLowerCase();
|
||||
for (int i=0; i<K9.CONTENT_TYPE_BY_EXTENSION_MAP.length; i++)
|
||||
{
|
||||
if (K9.CONTENT_TYPE_BY_EXTENSION_MAP[i][0].equals(extension))
|
||||
{
|
||||
contentType = K9.CONTENT_TYPE_BY_EXTENSION_MAP[i][1];
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!found)
|
||||
{
|
||||
contentType = "application/octet-stream";
|
||||
}
|
||||
contentType = MimeUtility.getMimeTypeByExtension(attachment.name);
|
||||
}
|
||||
|
||||
attachment.contentType = contentType;
|
||||
|
|
|
@ -1278,7 +1278,12 @@ public class MessageView extends K9Activity
|
|||
|
||||
Attachment attachment = new Attachment();
|
||||
attachment.size = size;
|
||||
attachment.contentType = part.getMimeType();
|
||||
String mimeType = part.getMimeType();
|
||||
if (MimeUtility.DEFAULT_ATTACHMENT_MIME_TYPE.equals(mimeType))
|
||||
{
|
||||
mimeType = MimeUtility.getMimeTypeByExtension(name);
|
||||
}
|
||||
attachment.contentType = mimeType;
|
||||
attachment.name = name;
|
||||
attachment.part = (LocalAttachmentBodyPart) part;
|
||||
|
||||
|
|
|
@ -19,7 +19,204 @@ import java.util.regex.Pattern;
|
|||
|
||||
public class MimeUtility
|
||||
{
|
||||
|
||||
public static final String DEFAULT_ATTACHMENT_MIME_TYPE = "application/octet-stream";
|
||||
|
||||
/*
|
||||
* http://www.w3schools.com/media/media_mimeref.asp
|
||||
* + png
|
||||
*/
|
||||
public static final String[][] MIME_TYPE_BY_EXTENSION_MAP = new String[][]
|
||||
{
|
||||
{ "", "application/octet-stream" },
|
||||
{ "323", "text/h323"},
|
||||
{ "acx", "application/internet-property-stream"},
|
||||
{ "ai", "application/postscript"},
|
||||
{ "aif", "audio/x-aiff"},
|
||||
{ "aifc", "audio/x-aiff"},
|
||||
{ "aiff", "audio/x-aiff"},
|
||||
{ "asf", "video/x-ms-asf"},
|
||||
{ "asr", "video/x-ms-asf"},
|
||||
{ "asx", "video/x-ms-asf"},
|
||||
{ "au", "audio/basic"},
|
||||
{ "avi", "video/x-msvideo"},
|
||||
{ "axs", "application/olescript"},
|
||||
{ "bas", "text/plain"},
|
||||
{ "bcpio", "application/x-bcpio"},
|
||||
{ "bin", "application/octet-stream"},
|
||||
{ "bmp", "image/bmp"},
|
||||
{ "c", "text/plain"},
|
||||
{ "cat", "application/vnd.ms-pkiseccat"},
|
||||
{ "cdf", "application/x-cdf"},
|
||||
{ "cer", "application/x-x509-ca-cert"},
|
||||
{ "class", "application/octet-stream"},
|
||||
{ "clp", "application/x-msclip"},
|
||||
{ "cmx", "image/x-cmx"},
|
||||
{ "cod", "image/cis-cod"},
|
||||
{ "cpio", "application/x-cpio"},
|
||||
{ "crd", "application/x-mscardfile"},
|
||||
{ "crl", "application/pkix-crl"},
|
||||
{ "crt", "application/x-x509-ca-cert"},
|
||||
{ "csh", "application/x-csh"},
|
||||
{ "css", "text/css"},
|
||||
{ "dcr", "application/x-director"},
|
||||
{ "der", "application/x-x509-ca-cert"},
|
||||
{ "dir", "application/x-director"},
|
||||
{ "dll", "application/x-msdownload"},
|
||||
{ "dms", "application/octet-stream"},
|
||||
{ "doc", "application/msword"},
|
||||
{ "dot", "application/msword"},
|
||||
{ "dvi", "application/x-dvi"},
|
||||
{ "dxr", "application/x-director"},
|
||||
{ "eps", "application/postscript"},
|
||||
{ "etx", "text/x-setext"},
|
||||
{ "evy", "application/envoy"},
|
||||
{ "exe", "application/octet-stream"},
|
||||
{ "fif", "application/fractals"},
|
||||
{ "flr", "x-world/x-vrml"},
|
||||
{ "gif", "image/gif"},
|
||||
{ "gtar", "application/x-gtar"},
|
||||
{ "gz", "application/x-gzip"},
|
||||
{ "h", "text/plain"},
|
||||
{ "hdf", "application/x-hdf"},
|
||||
{ "hlp", "application/winhlp"},
|
||||
{ "hqx", "application/mac-binhex40"},
|
||||
{ "hta", "application/hta"},
|
||||
{ "htc", "text/x-component"},
|
||||
{ "htm", "text/html"},
|
||||
{ "html", "text/html"},
|
||||
{ "htt", "text/webviewhtml"},
|
||||
{ "ico", "image/x-icon"},
|
||||
{ "ief", "image/ief"},
|
||||
{ "iii", "application/x-iphone"},
|
||||
{ "ins", "application/x-internet-signup"},
|
||||
{ "isp", "application/x-internet-signup"},
|
||||
{ "jfif", "image/pipeg"},
|
||||
{ "jpe", "image/jpeg"},
|
||||
{ "jpeg", "image/jpeg"},
|
||||
{ "jpg", "image/jpeg"},
|
||||
{ "js", "application/x-javascript"},
|
||||
{ "latex", "application/x-latex"},
|
||||
{ "lha", "application/octet-stream"},
|
||||
{ "lsf", "video/x-la-asf"},
|
||||
{ "lsx", "video/x-la-asf"},
|
||||
{ "lzh", "application/octet-stream"},
|
||||
{ "m13", "application/x-msmediaview"},
|
||||
{ "m14", "application/x-msmediaview"},
|
||||
{ "m3u", "audio/x-mpegurl"},
|
||||
{ "man", "application/x-troff-man"},
|
||||
{ "mdb", "application/x-msaccess"},
|
||||
{ "me", "application/x-troff-me"},
|
||||
{ "mht", "message/rfc822"},
|
||||
{ "mhtml", "message/rfc822"},
|
||||
{ "mid", "audio/mid"},
|
||||
{ "mny", "application/x-msmoney"},
|
||||
{ "mov", "video/quicktime"},
|
||||
{ "movie", "video/x-sgi-movie"},
|
||||
{ "mp2", "video/mpeg"},
|
||||
{ "mp3", "audio/mpeg"},
|
||||
{ "mpa", "video/mpeg"},
|
||||
{ "mpe", "video/mpeg"},
|
||||
{ "mpeg", "video/mpeg"},
|
||||
{ "mpg", "video/mpeg"},
|
||||
{ "mpp", "application/vnd.ms-project"},
|
||||
{ "mpv2", "video/mpeg"},
|
||||
{ "ms", "application/x-troff-ms"},
|
||||
{ "mvb", "application/x-msmediaview"},
|
||||
{ "nws", "message/rfc822"},
|
||||
{ "oda", "application/oda"},
|
||||
{ "p10", "application/pkcs10"},
|
||||
{ "p12", "application/x-pkcs12"},
|
||||
{ "p7b", "application/x-pkcs7-certificates"},
|
||||
{ "p7c", "application/x-pkcs7-mime"},
|
||||
{ "p7m", "application/x-pkcs7-mime"},
|
||||
{ "p7r", "application/x-pkcs7-certreqresp"},
|
||||
{ "p7s", "application/x-pkcs7-signature"},
|
||||
{ "pbm", "image/x-portable-bitmap"},
|
||||
{ "pdf", "application/pdf"},
|
||||
{ "pfx", "application/x-pkcs12"},
|
||||
{ "pgm", "image/x-portable-graymap"},
|
||||
{ "pko", "application/ynd.ms-pkipko"},
|
||||
{ "pma", "application/x-perfmon"},
|
||||
{ "pmc", "application/x-perfmon"},
|
||||
{ "pml", "application/x-perfmon"},
|
||||
{ "pmr", "application/x-perfmon"},
|
||||
{ "pmw", "application/x-perfmon"},
|
||||
{ "png", "image/png"},
|
||||
{ "pnm", "image/x-portable-anymap"},
|
||||
{ "pot,", "application/vnd.ms-powerpoint"},
|
||||
{ "ppm", "image/x-portable-pixmap"},
|
||||
{ "pps", "application/vnd.ms-powerpoint"},
|
||||
{ "ppt", "application/vnd.ms-powerpoint"},
|
||||
{ "prf", "application/pics-rules"},
|
||||
{ "ps", "application/postscript"},
|
||||
{ "pub", "application/x-mspublisher"},
|
||||
{ "qt", "video/quicktime"},
|
||||
{ "ra", "audio/x-pn-realaudio"},
|
||||
{ "ram", "audio/x-pn-realaudio"},
|
||||
{ "ras", "image/x-cmu-raster"},
|
||||
{ "rgb", "image/x-rgb"},
|
||||
{ "rmi", "audio/mid"},
|
||||
{ "roff", "application/x-troff"},
|
||||
{ "rtf", "application/rtf"},
|
||||
{ "rtx", "text/richtext"},
|
||||
{ "scd", "application/x-msschedule"},
|
||||
{ "sct", "text/scriptlet"},
|
||||
{ "setpay", "application/set-payment-initiation"},
|
||||
{ "setreg", "application/set-registration-initiation"},
|
||||
{ "sh", "application/x-sh"},
|
||||
{ "shar", "application/x-shar"},
|
||||
{ "sit", "application/x-stuffit"},
|
||||
{ "snd", "audio/basic"},
|
||||
{ "spc", "application/x-pkcs7-certificates"},
|
||||
{ "spl", "application/futuresplash"},
|
||||
{ "src", "application/x-wais-source"},
|
||||
{ "sst", "application/vnd.ms-pkicertstore"},
|
||||
{ "stl", "application/vnd.ms-pkistl"},
|
||||
{ "stm", "text/html"},
|
||||
{ "svg", "image/svg+xml"},
|
||||
{ "sv4cpio","application/x-sv4cpio"},
|
||||
{ "sv4crc", "application/x-sv4crc"},
|
||||
{ "swf", "application/x-shockwave-flash"},
|
||||
{ "t", "application/x-troff"},
|
||||
{ "tar", "application/x-tar"},
|
||||
{ "tcl", "application/x-tcl"},
|
||||
{ "tex", "application/x-tex"},
|
||||
{ "texi", "application/x-texinfo"},
|
||||
{ "texinfo","application/x-texinfo"},
|
||||
{ "tgz", "application/x-compressed"},
|
||||
{ "tif", "image/tiff"},
|
||||
{ "tiff", "image/tiff"},
|
||||
{ "tr", "application/x-troff"},
|
||||
{ "trm", "application/x-msterminal"},
|
||||
{ "tsv", "text/tab-separated-values"},
|
||||
{ "txt", "text/plain"},
|
||||
{ "uls", "text/iuls"},
|
||||
{ "ustar", "application/x-ustar"},
|
||||
{ "vcf", "text/x-vcard"},
|
||||
{ "vrml", "x-world/x-vrml"},
|
||||
{ "wav", "audio/x-wav"},
|
||||
{ "wcm", "application/vnd.ms-works"},
|
||||
{ "wdb", "application/vnd.ms-works"},
|
||||
{ "wks", "application/vnd.ms-works"},
|
||||
{ "wmf", "application/x-msmetafile"},
|
||||
{ "wps", "application/vnd.ms-works"},
|
||||
{ "wri", "application/x-mswrite"},
|
||||
{ "wrl", "x-world/x-vrml"},
|
||||
{ "wrz", "x-world/x-vrml"},
|
||||
{ "xaf", "x-world/x-vrml"},
|
||||
{ "xbm", "image/x-xbitmap"},
|
||||
{ "xla", "application/vnd.ms-excel"},
|
||||
{ "xlc", "application/vnd.ms-excel"},
|
||||
{ "xlm", "application/vnd.ms-excel"},
|
||||
{ "xls", "application/vnd.ms-excel"},
|
||||
{ "xlt", "application/vnd.ms-excel"},
|
||||
{ "xlw", "application/vnd.ms-excel"},
|
||||
{ "xof", "x-world/x-vrml"},
|
||||
{ "xpm", "image/x-xpixmap"},
|
||||
{ "xwd", "image/x-xwindowdump"},
|
||||
{ "z", "application/x-compress"},
|
||||
{ "zip", "application/zip"}
|
||||
};
|
||||
|
||||
public static String unfold(String s)
|
||||
{
|
||||
|
@ -359,4 +556,21 @@ public class MimeUtility
|
|||
attachments.add(part);
|
||||
}
|
||||
}
|
||||
|
||||
public static String getMimeTypeByExtension(String filename)
|
||||
{
|
||||
if (filename!=null
|
||||
&& filename.lastIndexOf('.')!=-1)
|
||||
{
|
||||
String extension = filename.substring(filename.lastIndexOf('.')+1).toLowerCase();
|
||||
for (String[] contentTypeMapEntry : MIME_TYPE_BY_EXTENSION_MAP)
|
||||
{
|
||||
if (contentTypeMapEntry[0].equals(extension))
|
||||
{
|
||||
return contentTypeMapEntry[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
return DEFAULT_ATTACHMENT_MIME_TYPE;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -123,7 +123,7 @@ public class AttachmentProvider extends ContentProvider
|
|||
db = SQLiteDatabase.openDatabase(path, null, 0);
|
||||
cursor = db.query(
|
||||
"attachments",
|
||||
new String[] { "mime_type" },
|
||||
new String[] { "mime_type", "name" },
|
||||
"id = ?",
|
||||
new String[] { id },
|
||||
null,
|
||||
|
@ -131,10 +131,15 @@ public class AttachmentProvider extends ContentProvider
|
|||
null);
|
||||
cursor.moveToFirst();
|
||||
String type = cursor.getString(0);
|
||||
String name = cursor.getString(1);
|
||||
cursor.close();
|
||||
db.close();
|
||||
return type;
|
||||
|
||||
if (MimeUtility.DEFAULT_ATTACHMENT_MIME_TYPE.equals(type))
|
||||
{
|
||||
type = MimeUtility.getMimeTypeByExtension(name);
|
||||
}
|
||||
return type;
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue