From e7839bc00246d95ed63b35cc67798932f8143663 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sat, 4 May 2019 16:45:10 +0200 Subject: [PATCH] allow creating shortcuts of files too --- app/build.gradle | 2 +- .../filemanager/pro/adapters/ItemsAdapter.kt | 112 ++++++++++++------ 2 files changed, 76 insertions(+), 38 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 7ec0178b..b74b4d06 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -51,7 +51,7 @@ android { } dependencies { - implementation 'com.simplemobiletools:commons:5.12.11' + implementation 'com.simplemobiletools:commons:5.12.12' implementation 'com.github.Stericson:RootTools:df729dcb13' implementation 'com.github.Stericson:RootShell:1.6' implementation 'com.alexvasilkov:gesture-views:2.5.2' diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/adapters/ItemsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/adapters/ItemsAdapter.kt index f71ed6b9..31b95555 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/adapters/ItemsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/adapters/ItemsAdapter.kt @@ -17,6 +17,7 @@ import android.view.Menu import android.view.View import android.view.ViewGroup import com.bumptech.glide.Glide +import com.bumptech.glide.load.DecodeFormat import com.bumptech.glide.load.engine.DiskCacheStrategy import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions import com.bumptech.glide.request.RequestOptions @@ -233,29 +234,63 @@ class ItemsAdapter(activity: SimpleActivity, var listItems: MutableList Unit) { + val appIconColor = baseConfig.appIconColor + (drawable as LayerDrawable).findDrawableByLayerId(R.id.shortcut_folder_background).applyColorFilter(appIconColor) + if (File(path).isDirectory) { + callback() + } else { + Thread { + val options = RequestOptions() + .format(DecodeFormat.PREFER_ARGB_8888) + .skipMemoryCache(true) + .diskCacheStrategy(DiskCacheStrategy.NONE) + .fitCenter() - val successCallback = PendingIntent.getBroadcast(activity, 0, pinnedShortcutCallbackIntent, 0) - manager.requestPinShortcut(pinShortcutInfo, successCallback.intentSender) + val size = activity.resources.getDimension(R.dimen.shortcut_size).toInt() + val builder = Glide.with(activity) + .asDrawable() + .load(getImagePathToLoad(path)) + .apply(options) + .centerCrop() + .into(size, size) + + try { + val bitmap = builder.get() + drawable.findDrawableByLayerId(R.id.shortcut_folder_background).applyColorFilter(0) + drawable.setDrawableByLayerId(R.id.shortcut_folder_image, bitmap) + } catch (e: Exception) { + val fileIcon = activity.resources.getDrawable(R.drawable.ic_file) + drawable.setDrawableByLayerId(R.id.shortcut_folder_image, fileIcon) + } + + activity.runOnUiThread { + callback() + } + }.start() } } @@ -632,31 +667,12 @@ class ItemsAdapter(activity: SimpleActivity, var listItems: MutableList