From 97209503ffbfa6c2d80386fc2bc2dd031d09a03b Mon Sep 17 00:00:00 2001 From: Suphon Thanakornpakapong Date: Wed, 13 Oct 2021 12:04:04 +0700 Subject: [PATCH] Use custom adaptive icon class --- build.gradle | 2 +- .../app/lawnchair/icons/LawnchairIconProvider.kt | 15 +++++++++++++++ platform_frameworks_libs_systemui | 2 +- src/com/android/launcher3/Utilities.java | 1 + src/com/android/launcher3/dragndrop/DragView.java | 4 +++- .../launcher3/dragndrop/FolderAdaptiveIcon.java | 4 +++- src/com/android/launcher3/graphics/IconShape.java | 4 +++- .../graphics/LauncherPreviewRenderer.java | 3 ++- .../launcher3/icons/ShortcutCachingLogic.java | 5 ++++- 9 files changed, 33 insertions(+), 7 deletions(-) diff --git a/build.gradle b/build.gradle index e5c4e53aed..bc06a27a4a 100644 --- a/build.gradle +++ b/build.gradle @@ -74,7 +74,7 @@ android { } defaultConfig { - minSdkVersion 25 + minSdkVersion 26 targetSdkVersion 30 versionCode 7 def versionDisplayName = "12.0 Alpha 6.1" diff --git a/lawnchair/src/app/lawnchair/icons/LawnchairIconProvider.kt b/lawnchair/src/app/lawnchair/icons/LawnchairIconProvider.kt index dffe5a4d87..3c728c610b 100644 --- a/lawnchair/src/app/lawnchair/icons/LawnchairIconProvider.kt +++ b/lawnchair/src/app/lawnchair/icons/LawnchairIconProvider.kt @@ -2,6 +2,9 @@ package app.lawnchair.icons import android.content.* import android.content.Intent.* +import android.content.pm.ActivityInfo +import android.content.pm.LauncherActivityInfo +import android.graphics.drawable.AdaptiveIconDrawable import android.graphics.drawable.Drawable import android.os.Handler import android.os.Process @@ -46,6 +49,18 @@ class LawnchairIconProvider @JvmOverloads constructor( return icon ?: super.getIconWithOverrides(packageName, component, user, iconDpi, fallback) } + override fun getIcon(info: ActivityInfo?): Drawable { + return CustomAdaptiveIconDrawable.wrapNonNull(super.getIcon(info)) + } + + override fun getIcon(info: ActivityInfo?, iconDpi: Int): Drawable { + return CustomAdaptiveIconDrawable.wrapNonNull(super.getIcon(info, iconDpi)) + } + + override fun getIcon(info: LauncherActivityInfo?, iconDpi: Int): Drawable { + return CustomAdaptiveIconDrawable.wrapNonNull(super.getIcon(info, iconDpi)) + } + override fun getSystemStateForPackage(systemState: String, packageName: String): String { return super.getSystemStateForPackage(systemState, packageName) } diff --git a/platform_frameworks_libs_systemui b/platform_frameworks_libs_systemui index 355f582efd..c7456f2f15 160000 --- a/platform_frameworks_libs_systemui +++ b/platform_frameworks_libs_systemui @@ -1 +1 @@ -Subproject commit 355f582efdf4b124a889d08cc37346545b049eff +Subproject commit c7456f2f15685b3ffe347acecbff70a923682b93 diff --git a/src/com/android/launcher3/Utilities.java b/src/com/android/launcher3/Utilities.java index 36f59b79ec..d99cfb4a6f 100644 --- a/src/com/android/launcher3/Utilities.java +++ b/src/com/android/launcher3/Utilities.java @@ -96,6 +96,7 @@ import java.util.function.Consumer; import java.util.regex.Matcher; import java.util.regex.Pattern; +import app.lawnchair.icons.CustomAdaptiveIconDrawable; import app.lawnchair.preferences.PreferenceManager; /** diff --git a/src/com/android/launcher3/dragndrop/DragView.java b/src/com/android/launcher3/dragndrop/DragView.java index 5b97e67155..f9ba4b4fde 100644 --- a/src/com/android/launcher3/dragndrop/DragView.java +++ b/src/com/android/launcher3/dragndrop/DragView.java @@ -68,6 +68,8 @@ import com.android.launcher3.util.Thunk; import com.android.launcher3.views.BaseDragLayer; import com.android.launcher3.widget.LauncherAppWidgetHostView; +import app.lawnchair.icons.CustomAdaptiveIconDrawable; + /** A custom view for rendering an icon, folder, shortcut or widget during drag-n-drop. */ public class DragView extends FrameLayout implements StateListener { @@ -245,7 +247,7 @@ public class DragView extends FrameLayout implements StateListener { return null; } try { - return context.getSystemService(LauncherApps.class) + Drawable icon = context.getSystemService(LauncherApps.class) .getShortcutIconDrawable(shortcutInfo, density); + return CustomAdaptiveIconDrawable.wrap(icon); } catch (SecurityException | IllegalStateException e) { Log.e(TAG, "Failed to get shortcut icon", e); return null;