From 3e446e22d0039cf0bac3d260daec5ccdc6bb7481 Mon Sep 17 00:00:00 2001 From: Suphon Thanakornpakapong Date: Tue, 11 Jan 2022 19:21:34 +0700 Subject: [PATCH] Fix icon theming logic --- .../app/lawnchair/icons/LawnchairIconProvider.kt | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lawnchair/src/app/lawnchair/icons/LawnchairIconProvider.kt b/lawnchair/src/app/lawnchair/icons/LawnchairIconProvider.kt index 359c0b89b2..e050df17b3 100644 --- a/lawnchair/src/app/lawnchair/icons/LawnchairIconProvider.kt +++ b/lawnchair/src/app/lawnchair/icons/LawnchairIconProvider.kt @@ -71,24 +71,32 @@ class LawnchairIconProvider @JvmOverloads constructor( var iconType = ICON_TYPE_DEFAULT var themeData: ThemedIconDrawable.ThemeData? = null if (iconPack != null) { - if (iconEntry == null) { - iconEntry = iconPack.getCalendar(componentName)?.getIconEntry(getDay()) + // check if supports dynamic calendar + val calendarEntry = iconPack.getCalendar(componentName) + if (calendarEntry != null) { + iconEntry = calendarEntry.getIconEntry(getDay()) themeData = getThemeData(mCalendar.packageName, "") iconType = ICON_TYPE_CALENDAR } + // doesn't support dynamic calendar if (iconEntry == null) { iconEntry = iconPack.getIcon(componentName) val clock = iconEntry?.let { iconPack.getClock(it) } when { - !supportsIconTheme -> {} + !supportsIconTheme -> { + // theming is disable, don't populate theme data + } clock != null -> { - themeData = getThemeData(mCalendar.packageName, "") + // the icon supports dynamic clock, use dynamic themed clock + themeData = getThemeData(mClock.packageName, "") iconType = ICON_TYPE_CLOCK } packageName == mClock.packageName -> { + // is clock app but icon might not be adaptive, fallback to static themed clock themeData = ThemedIconDrawable.ThemeData(context.resources, R.drawable.themed_icon_static_clock) } else -> { + // regular app themeData = getThemeData(componentName) } }