diff --git a/app/src/main/java/com/owncloud/android/datamodel/ThumbnailsCacheManager.java b/app/src/main/java/com/owncloud/android/datamodel/ThumbnailsCacheManager.java index 3586f6adeba5..a79636a4ce8c 100644 --- a/app/src/main/java/com/owncloud/android/datamodel/ThumbnailsCacheManager.java +++ b/app/src/main/java/com/owncloud/android/datamodel/ThumbnailsCacheManager.java @@ -578,6 +578,9 @@ private Bitmap doThumbnailFromOCFileInBackground() { String imageKey = PREFIX_THUMBNAIL + file.getRemoteId(); boolean updateEnforced = (file instanceof OCFile && ((OCFile) file).isUpdateThumbnailNeeded()); + if (MimeTypeUtil.isZip(file)) { + return null; + } // Try to load thumbnail from disk cache if (!updateEnforced) { diff --git a/app/src/main/java/com/owncloud/android/utils/MimeTypeUtil.java b/app/src/main/java/com/owncloud/android/utils/MimeTypeUtil.java index 3fe26e7d0e63..493d1de5bd15 100644 --- a/app/src/main/java/com/owncloud/android/utils/MimeTypeUtil.java +++ b/app/src/main/java/com/owncloud/android/utils/MimeTypeUtil.java @@ -330,6 +330,27 @@ public static boolean isPDF(OCFile file) { return isPDF(file.getMimeType()) || isPDF(getMimeTypeFromPath(file.getRemotePath())); } + public static boolean isZip(String mimeType) { + if (mimeType == null) { + return false; + } + String lower = mimeType.toLowerCase(Locale.ROOT); + return lower.equals("application/zip") + || lower.equals("application/x-7z-compressed") + || lower.equals("application/x-bzip2") + || lower.equals("application/x-compressed") + || lower.equals("application/x-deb") + || lower.equals("application/gzip") + || lower.equals("application/x-gzip") + || lower.equals("application/x-rar-compressed") + || lower.equals("application/x-tar") + || lower.equals("application/vnd.android.package-archive"); + } + + public static boolean isZip(ServerFileInterface file) { + return isZip(file.getMimeType()); + } + /** * Extracts the mime type for the given file. *