X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/30d231b6316f3015b3dc0ff96888b740546a6bbc..ec19a11a385ff21d3e85a94e618d48d8be9ef20d:/src/com/owncloud/android/utils/DisplayUtils.java diff --git a/src/com/owncloud/android/utils/DisplayUtils.java b/src/com/owncloud/android/utils/DisplayUtils.java index e4bdd999..682d2be0 100644 --- a/src/com/owncloud/android/utils/DisplayUtils.java +++ b/src/com/owncloud/android/utils/DisplayUtils.java @@ -19,13 +19,13 @@ package com.owncloud.android.utils; import java.util.Arrays; +import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.Set; import com.owncloud.android.R; -import com.owncloud.android.R.drawable; /** * A helper class for some string operations. @@ -63,14 +63,28 @@ public class DisplayUtils { private static final String TYPE_VIDEO = "video"; private static final String SUBTYPE_PDF = "pdf"; - private static final String[] SUBTYPES_DOCUMENT = { "msword", "mspowerpoint", "msexcel", - "vnd.oasis.opendocument.presentation", - "vnd.oasis.opendocument.spreadsheet", - "vnd.oasis.opendocument.text" + private static final String[] SUBTYPES_DOCUMENT = { "msword", + "vnd.openxmlformats-officedocument.wordprocessingml.document", + "vnd.oasis.opendocument.text", + "rtf" }; private static Set SUBTYPES_DOCUMENT_SET = new HashSet(Arrays.asList(SUBTYPES_DOCUMENT)); + private static final String[] SUBTYPES_SPREADSHEET = { "msexcel", + "vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "vnd.oasis.opendocument.spreadsheet" + }; + private static Set SUBTYPES_SPREADSHEET_SET = new HashSet(Arrays.asList(SUBTYPES_SPREADSHEET)); + private static final String[] SUBTYPES_PRESENTATION = { "mspowerpoint", + "vnd.openxmlformats-officedocument.presentationml.presentation", + "vnd.oasis.opendocument.presentation" + }; + private static Set SUBTYPES_PRESENTATION_SET = new HashSet(Arrays.asList(SUBTYPES_PRESENTATION)); private static final String[] SUBTYPES_COMPRESSED = {"x-tar", "x-gzip", "zip"}; private static final Set SUBTYPES_COMPRESSED_SET = new HashSet(Arrays.asList(SUBTYPES_COMPRESSED)); + private static final String SUBTYPE_OCTET_STREAM = "octet-stream"; + private static final String EXTENSION_RAR = "rar"; + private static final String EXTENSION_RTF = "rtf"; + private static final String EXTENSION_3GP = "3gp"; /** * Converts the file size in bytes to human readable output. @@ -135,9 +149,10 @@ public class DisplayUtils { * known MIME type. * * @param mimetype MIME type string. + * @param filename name, with extension * @return Resource identifier of an image resource. */ - public static int getResourceId(String mimetype) { + public static int getResourceId(String mimetype, String filename) { if (mimetype == null || "DIR".equals(mimetype)) { return R.drawable.ic_menu_archive; @@ -167,12 +182,28 @@ public class DisplayUtils { } else if (SUBTYPES_DOCUMENT_SET.contains(subtype)) { return R.drawable.file_doc; + } else if (SUBTYPES_SPREADSHEET_SET.contains(subtype)) { + return R.drawable.file_xls; + + } else if (SUBTYPES_PRESENTATION_SET.contains(subtype)) { + return R.drawable.file_ppt; + } else if (SUBTYPES_COMPRESSED_SET.contains(subtype)) { return R.drawable.file_zip; - } - + + } else if (SUBTYPE_OCTET_STREAM.equals(subtype) ) { + if (getExtension(filename).equalsIgnoreCase(EXTENSION_RAR)) { + return R.drawable.file_zip; + + } else if (getExtension(filename).equalsIgnoreCase(EXTENSION_RTF)) { + return R.drawable.file_doc; + + } else if (getExtension(filename).equalsIgnoreCase(EXTENSION_3GP)) { + return R.drawable.file_movie; + + } + } } - // problems: RAR, RTF, 3GP are send as application/octet-stream from the server ; extension in the filename should be explicitly reviewed } // default icon @@ -180,7 +211,12 @@ public class DisplayUtils { } - + private static String getExtension(String filename) { + String extension = filename.substring(filename.lastIndexOf(".") + 1); + + return extension; + } + /** * Converts Unix time to human readable format * @param miliseconds that have passed since 01/01/1970 @@ -190,4 +226,13 @@ public class DisplayUtils { Date date = new Date(milliseconds); return date.toLocaleString(); } + + + public static int getSeasonalIconId() { + if (Calendar.getInstance().get(Calendar.DAY_OF_YEAR) >= 354) { + return R.drawable.winter_holidays_icon; + } else { + return R.drawable.icon; + } + } }