Browse Source

Update shortcututils to use existing FolderIcon-function

Signed-off-by: Felix Nüsse <felix.nuesse@t-online.de>
Felix Nüsse 2 years ago
parent
commit
c19a256a97

+ 20 - 15
app/src/main/java/com/nextcloud/utils/ShortcutUtils.kt

@@ -21,24 +21,26 @@
 
 package com.nextcloud.utils
 
-import com.owncloud.android.datamodel.OCFile
-import android.content.pm.ShortcutManager
-import android.content.Intent
-import com.owncloud.android.ui.activity.FileDisplayActivity
-import com.owncloud.android.ui.activity.FileActivity
-import com.owncloud.android.datamodel.ThumbnailsCacheManager
-import android.content.pm.ShortcutInfo
 import android.app.PendingIntent
 import android.app.PendingIntent.FLAG_IMMUTABLE
 import android.content.Context
+import android.content.Intent
+import android.content.pm.ShortcutInfo
+import android.content.pm.ShortcutManager
 import android.graphics.Bitmap
 import android.graphics.Canvas
-import android.graphics.drawable.Drawable
 import android.graphics.drawable.BitmapDrawable
+import android.graphics.drawable.Drawable
 import android.graphics.drawable.Icon
 import android.os.Build
 import androidx.annotation.RequiresApi
+import androidx.core.graphics.drawable.toBitmap
+import com.owncloud.android.datamodel.OCFile
+import com.owncloud.android.datamodel.ThumbnailsCacheManager
+import com.owncloud.android.ui.activity.FileActivity
+import com.owncloud.android.ui.activity.FileDisplayActivity
 import com.owncloud.android.utils.MimeTypeUtil
+import com.owncloud.android.utils.theme.ViewThemeUtils
 import kotlin.math.roundToInt
 
 class ShortcutUtil(val mContext: Context) {
@@ -49,7 +51,7 @@ class ShortcutUtil(val mContext: Context) {
      * @param file The file/folder to which a pinned shortcut should be added to the home screen.
      */
     @RequiresApi(Build.VERSION_CODES.O)
-    fun addShortcutToHomescreen(file: OCFile) {
+    fun addShortcutToHomescreen(file: OCFile, viewThemeUtils: ViewThemeUtils) {
         val shortcutManager = mContext.getSystemService(ShortcutManager::class.java)
         if (shortcutManager.isRequestPinShortcutSupported) {
             val intent = Intent(mContext, FileDisplayActivity::class.java)
@@ -65,13 +67,16 @@ class ShortcutUtil(val mContext: Context) {
                 thumbnail = bitmapToAdaptiveBitmap(thumbnail)
                 icon = Icon.createWithAdaptiveBitmap(thumbnail)
             } else if (file.isFolder) {
-                icon = Icon.createWithResource(
+                val bitmapIcon = MimeTypeUtil.getFolderTypeIcon(
+                    file.isSharedWithMe || file.isSharedWithSharee,
+                    file.isSharedViaLink,
+                    file.isEncrypted,
+                    file.isGroupFolder,
+                    file.mountType,
                     mContext,
-                    MimeTypeUtil.getFolderTypeIconId(
-                        file.isSharedWithMe ||
-                            file.isSharedWithSharee, file.isSharedViaLink, file.isEncrypted, file.mountType
-                    )
-                )
+                    viewThemeUtils
+                ).toBitmap()
+                icon = Icon.createWithBitmap(bitmapIcon)
             } else {
                 icon = Icon.createWithResource(
                     mContext,

+ 1 - 1
app/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java

@@ -1150,7 +1150,7 @@ public class OCFileListFragment extends ExtendedListFragment implements
                 mContainerActivity.getFileOperationsHelper().toggleFileLock(singleFile, false);
             } else if (itemId == R.id.action_pin_to_homescreen) {
                 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
-                    new ShortcutUtil(getContext()).addShortcutToHomescreen(singleFile);
+                    new ShortcutUtil(getContext()).addShortcutToHomescreen(singleFile, viewThemeUtils);
                 }
                 return true;
             }

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

@@ -172,28 +172,6 @@ public final class MimeTypeUtil {
                                  viewThemeUtils);
     }
 
-    public static int getFolderTypeIconId(boolean isSharedViaUsers, boolean isSharedViaLink,
-                                          boolean isEncrypted, WebdavEntry.MountType mountType) {
-        int drawableId;
-
-        if (isSharedViaLink) {
-            drawableId = R.drawable.folder_external;
-        } else if (isSharedViaUsers) {
-            drawableId = R.drawable.folder_shared_link;
-        } else if (isEncrypted) {
-            drawableId = R.drawable.folder_encrypted;
-        } else if (WebdavEntry.MountType.EXTERNAL == mountType) {
-            drawableId = R.drawable.folder_external;
-        } else if (WebdavEntry.MountType.GROUP == mountType) {
-            drawableId = R.drawable.folder_group;
-        } else {
-            drawableId = R.drawable.folder;
-        }
-
-        return drawableId;
-    }
-
-
     /**
      * 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.