Browse Source

Move getFileIcon into the MimeTypeUtil

Signed-off-by: Alper Ozturk <alperozturk@lions-macbook.local>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Alper Ozturk 1 năm trước cách đây
mục cha
commit
15f5856646

+ 2 - 1
app/src/main/java/com/nextcloud/utils/ShortcutUtil.kt

@@ -72,7 +72,8 @@ class ShortcutUtil @Inject constructor(private val mContext: Context) {
                 icon = IconCompat.createWithAdaptiveBitmap(thumbnail)
             } else if (file.isFolder) {
                 val isAutoUploadFolder = SyncedFolderProvider.isAutoUploadFolder(syncedFolderProvider, file, user)
-                val drawable = file.getFileIcon(isAutoUploadFolder, mContext, viewThemeUtils)
+                val overlayIconId = file.getFileOverlayIconId(isAutoUploadFolder)
+                val drawable = MimeTypeUtil.getFileIcon(overlayIconId, mContext, viewThemeUtils)
                 val bitmapIcon = drawable.toBitmap()
                 icon = IconCompat.createWithBitmap(bitmapIcon)
             } else {

+ 0 - 25
app/src/main/java/com/owncloud/android/datamodel/OCFile.java

@@ -668,31 +668,6 @@ public class OCFile implements Parcelable, Comparable<OCFile>, ServerFileInterfa
         }
     }
 
-    public LayerDrawable getFileIcon(boolean isAutoUploadFolder, Context context, ViewThemeUtils viewThemeUtils) {
-        Drawable folderDrawable = ContextCompat.getDrawable(context, R.drawable.folder);
-        assert(folderDrawable != null);
-
-        // TODO move getFileIcon in MimeTypeUtil
-        // TODO delete folder_ icons from project directory
-        viewThemeUtils.platform.tintDrawable(context, folderDrawable, ColorRole.PRIMARY);
-        LayerDrawable folderLayerDrawable = new LayerDrawable(new Drawable[] { folderDrawable } );
-
-        Integer overlayIconId = getFileOverlayIconId(isAutoUploadFolder);
-
-        if (overlayIconId == null) {
-            return folderLayerDrawable;
-        }
-
-        Drawable overlayDrawable = ContextCompat.getDrawable(context, overlayIconId);
-
-        if (overlayDrawable == null) {
-            return folderLayerDrawable;
-        }
-        DrawableUtil drawableUtil = new DrawableUtil();
-
-        return drawableUtil.addDrawableAsOverlay(folderDrawable, overlayDrawable, 6);
-    }
-
     public static final Parcelable.Creator<OCFile> CREATOR = new Parcelable.Creator<OCFile>() {
 
         @Override

+ 2 - 1
app/src/main/java/com/owncloud/android/ui/activity/EditorWebView.java

@@ -222,7 +222,8 @@ public abstract class EditorWebView extends ExternalSiteWebView {
         OCFile file = getFile();
         if (file.isFolder()) {
             boolean isAutoUploadFolder = SyncedFolderProvider.isAutoUploadFolder(syncedFolderProvider, file, user);
-            LayerDrawable drawable = file.getFileIcon(isAutoUploadFolder, this, viewThemeUtils);
+            Integer overlayIconId = file.getFileOverlayIconId(isAutoUploadFolder);
+            LayerDrawable drawable = MimeTypeUtil.getFileIcon(overlayIconId, this, viewThemeUtils);
             binding.thumbnail.setImageDrawable(drawable);
         } else {
             if ((MimeTypeUtil.isImage(file) || MimeTypeUtil.isVideo(file)) && file.getRemoteId() != null) {

+ 2 - 1
app/src/main/java/com/owncloud/android/ui/activity/ShareActivity.java

@@ -79,7 +79,8 @@ public class ShareActivity extends FileActivity {
         // Icon
         if (file.isFolder()) {
             boolean isAutoUploadFolder = SyncedFolderProvider.isAutoUploadFolder(syncedFolderProvider, file, optionalUser.get());
-            LayerDrawable drawable = file.getFileIcon(isAutoUploadFolder, this, viewThemeUtils);
+            Integer overlayIconId = file.getFileOverlayIconId(isAutoUploadFolder);
+            LayerDrawable drawable = MimeTypeUtil.getFileIcon(overlayIconId, this, viewThemeUtils);
             binding.shareFileIcon.setImageDrawable(drawable);
         } else {
             binding.shareFileIcon.setImageDrawable(MimeTypeUtil.getFileTypeIcon(file.getMimeType(),

+ 2 - 1
app/src/main/java/com/owncloud/android/ui/adapter/UploaderAdapter.java

@@ -106,7 +106,8 @@ public class UploaderAdapter extends SimpleAdapter {
 
         if (file.isFolder()) {
             boolean isAutoUploadFolder = SyncedFolderProvider.isAutoUploadFolder(syncedFolderProvider, file, user);
-            final LayerDrawable icon = file.getFileIcon(isAutoUploadFolder, mContext, viewThemeUtils);
+            Integer overlayIconId = file.getFileOverlayIconId(isAutoUploadFolder);
+            final LayerDrawable icon = MimeTypeUtil.getFileIcon(overlayIconId, mContext, viewThemeUtils);
             fileIcon.setImageDrawable(icon);
         } else {
             // get Thumbnail if file is image

+ 2 - 1
app/src/main/java/com/owncloud/android/utils/DisplayUtils.java

@@ -855,7 +855,8 @@ public final class DisplayUtils {
             stopShimmer(shimmerThumbnail, thumbnailView);
 
             boolean isAutoUploadFolder = SyncedFolderProvider.isAutoUploadFolder(syncedFolderProvider, file, user);
-            LayerDrawable fileIcon = file.getFileIcon(isAutoUploadFolder, context, viewThemeUtils);
+            Integer overlayIconId = file.getFileOverlayIconId(isAutoUploadFolder);
+            LayerDrawable fileIcon = MimeTypeUtil.getFileIcon(overlayIconId, context, viewThemeUtils);
             thumbnailView.setImageDrawable(fileIcon);
         } else {
             if (file.getRemoteId() != null && file.isPreviewAvailable()) {

+ 22 - 0
app/src/main/java/com/owncloud/android/utils/MimeTypeUtil.java

@@ -22,6 +22,7 @@ package com.owncloud.android.utils;
 
 import android.content.Context;
 import android.graphics.drawable.Drawable;
+import android.graphics.drawable.LayerDrawable;
 import android.net.Uri;
 import android.webkit.MimeTypeMap;
 
@@ -134,6 +135,27 @@ public final class MimeTypeUtil {
         return determineIconIdByMimeTypeList(possibleMimeTypes);
     }
 
+    public static LayerDrawable getFileIcon(Integer overlayIconId, Context context, ViewThemeUtils viewThemeUtils) {
+        Drawable folderDrawable = ContextCompat.getDrawable(context, R.drawable.folder);
+        assert(folderDrawable != null);
+
+        viewThemeUtils.platform.tintDrawable(context, folderDrawable, ColorRole.PRIMARY);
+        LayerDrawable folderLayerDrawable = new LayerDrawable(new Drawable[] { folderDrawable } );
+
+        if (overlayIconId == null) {
+            return folderLayerDrawable;
+        }
+
+        Drawable overlayDrawable = ContextCompat.getDrawable(context, overlayIconId);
+
+        if (overlayDrawable == null) {
+            return folderLayerDrawable;
+        }
+        DrawableUtil drawableUtil = new DrawableUtil();
+
+        return drawableUtil.addDrawableAsOverlay(folderDrawable, overlayDrawable, 6);
+    }
+
     /**
      * Returns a single MIME type of all the possible, by inspection of the file extension, and taking into account the
      * MIME types known by ownCloud first.