From e9b76b6aa53f26808dfdae18c1832abc10d9e54d Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Mon, 10 Apr 2023 19:29:13 -0700 Subject: [PATCH] Add monochrome adaptive icon support Close #6867 --- .../com/topjohnwu/magisk/view/Shortcuts.kt | 20 +++++++++++-------- app/src/main/res/drawable-v26/ic_launcher.xml | 3 ++- .../main/res/drawable-v26/sc_extension.xml | 7 ++++++- .../main/res/drawable-v26/sc_superuser.xml | 7 ++++++- 4 files changed, 26 insertions(+), 11 deletions(-) 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 718d4ebc8..a6010a241 100644 --- a/app/src/main/java/com/topjohnwu/magisk/view/Shortcuts.kt +++ b/app/src/main/java/com/topjohnwu/magisk/view/Shortcuts.kt @@ -4,6 +4,7 @@ import android.content.Context import android.content.Intent import android.content.pm.ShortcutInfo import android.content.pm.ShortcutManager +import android.graphics.drawable.Icon import android.os.Build import androidx.annotation.RequiresApi import androidx.core.content.getSystemService @@ -13,6 +14,7 @@ import androidx.core.graphics.drawable.IconCompat import com.topjohnwu.magisk.R import com.topjohnwu.magisk.core.Const import com.topjohnwu.magisk.core.Info +import com.topjohnwu.magisk.core.isRunningAsStub import com.topjohnwu.magisk.core.ktx.getBitmap object Shortcuts { @@ -29,20 +31,22 @@ object Shortcuts { val info = ShortcutInfoCompat.Builder(context, Const.Nav.HOME) .setShortLabel(context.getString(R.string.magisk)) .setIntent(intent) - .setIcon(context.getIconCompat(R.drawable.ic_launcher)) + .setIcon(IconCompat.createFromIcon(context, context.getIcon(R.drawable.ic_launcher))) .build() ShortcutManagerCompat.requestPinShortcut(context, info, null) } - private fun Context.getIconCompat(id: Int): IconCompat { - return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) - IconCompat.createWithAdaptiveBitmap(getBitmap(id)) - else - IconCompat.createWithBitmap(getBitmap(id)) + private fun Context.getIcon(id: Int): Icon { + return if (isRunningAsStub) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) + Icon.createWithAdaptiveBitmap(getBitmap(id)) + else + Icon.createWithBitmap(getBitmap(id)) + } else { + Icon.createWithResource(this, id) + } } - private fun Context.getIcon(id: Int) = getIconCompat(id).toIcon(this) - @RequiresApi(api = 25) private fun getShortCuts(context: Context): List { val intent = context.packageManager.getLaunchIntentForPackage(context.packageName) diff --git a/app/src/main/res/drawable-v26/ic_launcher.xml b/app/src/main/res/drawable-v26/ic_launcher.xml index 29421e133..435180aff 100644 --- a/app/src/main/res/drawable-v26/ic_launcher.xml +++ b/app/src/main/res/drawable-v26/ic_launcher.xml @@ -2,4 +2,5 @@ - \ No newline at end of file + + diff --git a/app/src/main/res/drawable-v26/sc_extension.xml b/app/src/main/res/drawable-v26/sc_extension.xml index 19c6fabde..9d17af57b 100644 --- a/app/src/main/res/drawable-v26/sc_extension.xml +++ b/app/src/main/res/drawable-v26/sc_extension.xml @@ -6,4 +6,9 @@ android:drawable="@drawable/ic_extension" android:inset="30%" /> - \ No newline at end of file + + + + diff --git a/app/src/main/res/drawable-v26/sc_superuser.xml b/app/src/main/res/drawable-v26/sc_superuser.xml index ac4ee986e..f1aa73f25 100644 --- a/app/src/main/res/drawable-v26/sc_superuser.xml +++ b/app/src/main/res/drawable-v26/sc_superuser.xml @@ -6,4 +6,9 @@ android:drawable="@drawable/ic_superuser" android:inset="30%" /> - \ No newline at end of file + + + +