From d390ca2fdfdfd9e09cab65942b7191269f2235d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AE=8B=E9=A1=B5?= Date: Thu, 13 Jul 2023 09:29:47 +0800 Subject: [PATCH] Avoid using IconCompat.createFromIcon() that doesn't support bitmap icon --- .../java/com/topjohnwu/magisk/view/Shortcuts.kt | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/topjohnwu/magisk/view/Shortcuts.kt b/app/src/main/java/com/topjohnwu/magisk/view/Shortcuts.kt index a6010a241..2a8bac7a8 100644 --- a/app/src/main/java/com/topjohnwu/magisk/view/Shortcuts.kt +++ b/app/src/main/java/com/topjohnwu/magisk/view/Shortcuts.kt @@ -31,7 +31,7 @@ object Shortcuts { val info = ShortcutInfoCompat.Builder(context, Const.Nav.HOME) .setShortLabel(context.getString(R.string.magisk)) .setIntent(intent) - .setIcon(IconCompat.createFromIcon(context, context.getIcon(R.drawable.ic_launcher))) + .setIcon(context.getIconCompat(R.drawable.ic_launcher)) .build() ShortcutManagerCompat.requestPinShortcut(context, info, null) } @@ -47,6 +47,18 @@ object Shortcuts { } } + private fun Context.getIconCompat(id: Int): IconCompat { + return if (isRunningAsStub) { + val bitmap = getBitmap(id) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) + IconCompat.createWithAdaptiveBitmap(bitmap) + else + IconCompat.createWithBitmap(bitmap) + } else { + IconCompat.createWithResource(this, id) + } + } + @RequiresApi(api = 25) private fun getShortCuts(context: Context): List { val intent = context.packageManager.getLaunchIntentForPackage(context.packageName)