Update file images, add new mimetypes to show: spreadsheets, impress, rar, rtf and 3gp
authormasensio <masensio@solidgear.es>
Tue, 27 May 2014 11:16:16 +0000 (13:16 +0200)
committermasensio <masensio@solidgear.es>
Tue, 27 May 2014 11:16:16 +0000 (13:16 +0200)
33 files changed:
res/drawable-hdpi/file.png
res/drawable-hdpi/file_doc.png
res/drawable-hdpi/file_image.png
res/drawable-hdpi/file_movie.png
res/drawable-hdpi/file_pdf.png
res/drawable-hdpi/file_ppt.png [new file with mode: 0644]
res/drawable-hdpi/file_sound.png
res/drawable-hdpi/file_xls.png [new file with mode: 0644]
res/drawable-hdpi/file_zip.png
res/drawable-hdpi/ic_menu_archive.png
res/drawable-ldpi/file.png
res/drawable-ldpi/file_doc.png
res/drawable-ldpi/file_image.png
res/drawable-ldpi/file_movie.png
res/drawable-ldpi/file_pdf.png
res/drawable-ldpi/file_ppt.png [new file with mode: 0644]
res/drawable-ldpi/file_sound.png
res/drawable-ldpi/file_xls.png [new file with mode: 0644]
res/drawable-ldpi/file_zip.png
res/drawable-ldpi/ic_menu_archive.png
res/drawable-mdpi/file.png
res/drawable-mdpi/file_doc.png
res/drawable-mdpi/file_image.png
res/drawable-mdpi/file_movie.png
res/drawable-mdpi/file_pdf.png
res/drawable-mdpi/file_ppt.png [new file with mode: 0644]
res/drawable-mdpi/file_sound.png
res/drawable-mdpi/file_xls.png [new file with mode: 0644]
res/drawable-mdpi/file_zip.png
res/drawable-mdpi/ic_menu_archive.png
src/com/owncloud/android/ui/adapter/FileListListAdapter.java
src/com/owncloud/android/ui/fragment/FileDetailFragment.java
src/com/owncloud/android/utils/DisplayUtils.java

index 08f9937..71d7390 100644 (file)
Binary files a/res/drawable-hdpi/file.png and b/res/drawable-hdpi/file.png differ
index 068ed57..e9c2323 100644 (file)
Binary files a/res/drawable-hdpi/file_doc.png and b/res/drawable-hdpi/file_doc.png differ
index dc40bae..bdb2e65 100644 (file)
Binary files a/res/drawable-hdpi/file_image.png and b/res/drawable-hdpi/file_image.png differ
index 2acfaf8..e178cce 100644 (file)
Binary files a/res/drawable-hdpi/file_movie.png and b/res/drawable-hdpi/file_movie.png differ
index a4af281..85c8953 100644 (file)
Binary files a/res/drawable-hdpi/file_pdf.png and b/res/drawable-hdpi/file_pdf.png differ
diff --git a/res/drawable-hdpi/file_ppt.png b/res/drawable-hdpi/file_ppt.png
new file mode 100644 (file)
index 0000000..4fb809e
Binary files /dev/null and b/res/drawable-hdpi/file_ppt.png differ
index 33045af..30f5367 100644 (file)
Binary files a/res/drawable-hdpi/file_sound.png and b/res/drawable-hdpi/file_sound.png differ
diff --git a/res/drawable-hdpi/file_xls.png b/res/drawable-hdpi/file_xls.png
new file mode 100644 (file)
index 0000000..f6a2cc8
Binary files /dev/null and b/res/drawable-hdpi/file_xls.png differ
index 398f601..bffacb4 100644 (file)
Binary files a/res/drawable-hdpi/file_zip.png and b/res/drawable-hdpi/file_zip.png differ
index 0bdcac5..7d25b82 100644 (file)
Binary files a/res/drawable-hdpi/ic_menu_archive.png and b/res/drawable-hdpi/ic_menu_archive.png differ
index bbe560b..b669fdf 100644 (file)
Binary files a/res/drawable-ldpi/file.png and b/res/drawable-ldpi/file.png differ
index a407043..0ea07e3 100644 (file)
Binary files a/res/drawable-ldpi/file_doc.png and b/res/drawable-ldpi/file_doc.png differ
index b3af57c..1bf2015 100644 (file)
Binary files a/res/drawable-ldpi/file_image.png and b/res/drawable-ldpi/file_image.png differ
index 53bf0e7..e50c168 100644 (file)
Binary files a/res/drawable-ldpi/file_movie.png and b/res/drawable-ldpi/file_movie.png differ
index ded8249..a05afdd 100644 (file)
Binary files a/res/drawable-ldpi/file_pdf.png and b/res/drawable-ldpi/file_pdf.png differ
diff --git a/res/drawable-ldpi/file_ppt.png b/res/drawable-ldpi/file_ppt.png
new file mode 100644 (file)
index 0000000..11a9cc9
Binary files /dev/null and b/res/drawable-ldpi/file_ppt.png differ
index 6fc963f..26e5a5f 100644 (file)
Binary files a/res/drawable-ldpi/file_sound.png and b/res/drawable-ldpi/file_sound.png differ
diff --git a/res/drawable-ldpi/file_xls.png b/res/drawable-ldpi/file_xls.png
new file mode 100644 (file)
index 0000000..9855367
Binary files /dev/null and b/res/drawable-ldpi/file_xls.png differ
index 04340f4..88d0040 100644 (file)
Binary files a/res/drawable-ldpi/file_zip.png and b/res/drawable-ldpi/file_zip.png differ
index 7818537..e4d0ee5 100644 (file)
Binary files a/res/drawable-ldpi/ic_menu_archive.png and b/res/drawable-ldpi/ic_menu_archive.png differ
index 0a1ca52..5fa8505 100644 (file)
Binary files a/res/drawable-mdpi/file.png and b/res/drawable-mdpi/file.png differ
index 95651f8..2e7628a 100644 (file)
Binary files a/res/drawable-mdpi/file_doc.png and b/res/drawable-mdpi/file_doc.png differ
index 2b2fff4..eedd41f 100644 (file)
Binary files a/res/drawable-mdpi/file_image.png and b/res/drawable-mdpi/file_image.png differ
index 4c0254c..b37e98d 100644 (file)
Binary files a/res/drawable-mdpi/file_movie.png and b/res/drawable-mdpi/file_movie.png differ
index 306ad99..07aa238 100644 (file)
Binary files a/res/drawable-mdpi/file_pdf.png and b/res/drawable-mdpi/file_pdf.png differ
diff --git a/res/drawable-mdpi/file_ppt.png b/res/drawable-mdpi/file_ppt.png
new file mode 100644 (file)
index 0000000..db7d58d
Binary files /dev/null and b/res/drawable-mdpi/file_ppt.png differ
index 8789e5c..6b8b589 100644 (file)
Binary files a/res/drawable-mdpi/file_sound.png and b/res/drawable-mdpi/file_sound.png differ
diff --git a/res/drawable-mdpi/file_xls.png b/res/drawable-mdpi/file_xls.png
new file mode 100644 (file)
index 0000000..b0264d7
Binary files /dev/null and b/res/drawable-mdpi/file_xls.png differ
index 92647b8..61974b8 100644 (file)
Binary files a/res/drawable-mdpi/file_zip.png and b/res/drawable-mdpi/file_zip.png differ
index 2c50285..7f29fbc 100644 (file)
Binary files a/res/drawable-mdpi/ic_menu_archive.png and b/res/drawable-mdpi/ic_menu_archive.png differ
index 38ade7c..656e004 100644 (file)
@@ -113,7 +113,7 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
 \r
             fileName.setText(name);\r
             ImageView fileIcon = (ImageView) view.findViewById(R.id.imageView1);\r
-            fileIcon.setImageResource(DisplayUtils.getResourceId(file.getMimetype()));\r
+            fileIcon.setImageResource(DisplayUtils.getResourceId(file.getMimetype(), file.getFileName()));\r
             ImageView localStateView = (ImageView) view.findViewById(R.id.imageView2);\r
             FileDownloaderBinder downloaderBinder = mTransferServiceGetter.getFileDownloaderBinder();\r
             FileUploaderBinder uploaderBinder = mTransferServiceGetter.getFileUploaderBinder();\r
index 76cee97..7a247b3 100644 (file)
@@ -330,7 +330,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
             
             // set file details
             setFilename(file.getFileName());
-            setFiletype(file.getMimetype());
+            setFiletype(file.getMimetype(), file.getFileName());
             setFilesize(file.getFileLength());
             if(ocVersionSupportsTimeCreated()){
                 setTimeCreated(file.getCreationTimestamp());
@@ -383,7 +383,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
      * Updates the MIME type in view
      * @param mimetype to set
      */
-    private void setFiletype(String mimetype) {
+    private void setFiletype(String mimetype, String filename) {
         TextView tv = (TextView) getView().findViewById(R.id.fdType);
         if (tv != null) {
             String printableMimetype = DisplayUtils.convertMIMEtoPrettyPrint(mimetype);;        
@@ -391,7 +391,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
         }
         ImageView iv = (ImageView) getView().findViewById(R.id.fdIcon);
         if (iv != null) {
-            iv.setImageResource(DisplayUtils.getResourceId(mimetype));
+            iv.setImageResource(DisplayUtils.getResourceId(mimetype, filename));
         }
     }
 
index 680107b..40bf119 100644 (file)
@@ -25,6 +25,8 @@ import java.util.HashMap;
 import java.util.HashSet;\r
 import java.util.Set;\r
 \r
+import android.util.Log;\r
+\r
 import com.owncloud.android.R;\r
 \r
 /**\r
@@ -63,14 +65,28 @@ public class DisplayUtils {
     private static final String TYPE_VIDEO = "video";\r
     \r
     private static final String SUBTYPE_PDF = "pdf";\r
-    private static final String[] SUBTYPES_DOCUMENT = { "msword", "mspowerpoint", "msexcel", \r
-                                                        "vnd.oasis.opendocument.presentation",\r
-                                                        "vnd.oasis.opendocument.spreadsheet",\r
-                                                        "vnd.oasis.opendocument.text"\r
+    private static final String[] SUBTYPES_DOCUMENT = { "msword",\r
+                                                        "vnd.openxmlformats-officedocument.wordprocessingml.document",\r
+                                                        "vnd.oasis.opendocument.text",\r
+                                                        "rtf"\r
                                                         };\r
     private static Set<String> SUBTYPES_DOCUMENT_SET = new HashSet<String>(Arrays.asList(SUBTYPES_DOCUMENT));\r
+    private static final String[] SUBTYPES_SPREADSHEET = { "msexcel",\r
+                                                           "vnd.openxmlformats-officedocument.spreadsheetml.sheet",\r
+                                                           "vnd.oasis.opendocument.spreadsheet"\r
+                                                           };\r
+    private static Set<String> SUBTYPES_SPREADSHEET_SET = new HashSet<String>(Arrays.asList(SUBTYPES_SPREADSHEET));\r
+    private static final String[] SUBTYPES_PRESENTATION = { "mspowerpoint",\r
+                                                            "vnd.openxmlformats-officedocument.presentationml.presentation",\r
+                                                            "vnd.oasis.opendocument.presentation"\r
+                                                            };\r
+    private static Set<String> SUBTYPES_PRESENTATION_SET = new HashSet<String>(Arrays.asList(SUBTYPES_PRESENTATION));\r
     private static final String[] SUBTYPES_COMPRESSED = {"x-tar", "x-gzip", "zip"};\r
     private static final Set<String> SUBTYPES_COMPRESSED_SET = new HashSet<String>(Arrays.asList(SUBTYPES_COMPRESSED));\r
+    private static final String SUBTYPE_OCTET_STREAM = "octet-stream";\r
+    private static final String EXTENSION_RAR = "rar";\r
+    private static final String EXTENSION_RTF = "rtf";\r
+    private static final String EXTENSION_3GP = "3gp";\r
     \r
     /**\r
      * Converts the file size in bytes to human readable output.\r
@@ -137,7 +153,7 @@ public class DisplayUtils {
      * @param mimetype      MIME type string.\r
      * @return              Resource identifier of an image resource.\r
      */\r
-    public static int getResourceId(String mimetype) {\r
+    public static int getResourceId(String mimetype, String filename) {\r
 \r
         if (mimetype == null || "DIR".equals(mimetype)) {\r
             return R.drawable.ic_menu_archive;\r
@@ -167,12 +183,28 @@ public class DisplayUtils {
                 } else if (SUBTYPES_DOCUMENT_SET.contains(subtype)) {\r
                     return R.drawable.file_doc;\r
 \r
+                } else if (SUBTYPES_SPREADSHEET_SET.contains(subtype)) {\r
+                    return R.drawable.file_xls;\r
+\r
+                } else if (SUBTYPES_PRESENTATION_SET.contains(subtype)) {\r
+                    return R.drawable.file_ppt;\r
+\r
                 } else if (SUBTYPES_COMPRESSED_SET.contains(subtype)) {\r
                     return R.drawable.file_zip;\r
-                }\r
-    \r
+                    \r
+                } else if (SUBTYPE_OCTET_STREAM.equals(subtype) ) {\r
+                    if (getExtension(filename).equalsIgnoreCase(EXTENSION_RAR)) {\r
+                        return R.drawable.file_zip;\r
+                        \r
+                    } else if (getExtension(filename).equalsIgnoreCase(EXTENSION_RTF)) {\r
+                        return R.drawable.file_doc;\r
+                        \r
+                    } else if (getExtension(filename).equalsIgnoreCase(EXTENSION_3GP)) {\r
+                        return R.drawable.file_movie;\r
+                        \r
+                    } \r
+                } \r
             }\r
-            // problems: RAR, RTF, 3GP are send as application/octet-stream from the server ; extension in the filename should be explicitly reviewed\r
         }\r
 \r
         // default icon\r
@@ -180,7 +212,12 @@ public class DisplayUtils {
     }\r
 \r
     \r
-\r
+    private static String getExtension(String filename) {\r
+        String extension = filename.substring(filename.lastIndexOf(".") + 1);\r
+        \r
+        return extension;\r
+    }\r
+    \r
     /**\r
      * Converts Unix time to human readable format\r
      * @param miliseconds that have passed since 01/01/1970\r