Enable dynamic clock icons for all apps that support them
This commit is contained in:
parent
ce71784b74
commit
26fbc3c4b3
@ -19,7 +19,7 @@ import de.mm20.launcher2.icons.providers.CalendarIconProvider
|
||||
import de.mm20.launcher2.icons.providers.CompatIconProvider
|
||||
import de.mm20.launcher2.icons.providers.CustomIconPackIconProvider
|
||||
import de.mm20.launcher2.icons.providers.CustomThemedIconProvider
|
||||
import de.mm20.launcher2.icons.providers.GoogleClockIconProvider
|
||||
import de.mm20.launcher2.icons.providers.DynamicClockIconProvider
|
||||
import de.mm20.launcher2.icons.providers.IconPackIconProvider
|
||||
import de.mm20.launcher2.icons.providers.IconProvider
|
||||
import de.mm20.launcher2.icons.providers.PlaceholderIconProvider
|
||||
@ -109,7 +109,7 @@ class IconRepository(
|
||||
if (settings.themedIcons) {
|
||||
providers.add(ThemedIconProvider(iconPackManager))
|
||||
}
|
||||
providers.add(GoogleClockIconProvider(context, settings.themedIcons))
|
||||
providers.add(DynamicClockIconProvider(context, settings.themedIcons))
|
||||
providers.add(CalendarIconProvider(context, settings.themedIcons))
|
||||
if (!isAtLeastApiLevel(33)) {
|
||||
providers.add(CompatIconProvider(context, settings.themedIcons))
|
||||
|
||||
@ -176,7 +176,7 @@ fun AdaptiveIconDrawableCompat.toLauncherIcon(
|
||||
return StaticLauncherIcon(
|
||||
foregroundLayer = TintedClockLayer(
|
||||
sublayers = clockLayers,
|
||||
scale = 1f,
|
||||
scale = 1.5f,
|
||||
),
|
||||
backgroundLayer = ColorLayer(),
|
||||
)
|
||||
|
||||
@ -2,33 +2,32 @@ package de.mm20.launcher2.icons.providers
|
||||
|
||||
import android.content.Context
|
||||
import android.content.pm.PackageManager
|
||||
import android.content.res.Resources
|
||||
import android.graphics.drawable.AdaptiveIconDrawable
|
||||
import android.graphics.drawable.LayerDrawable
|
||||
import android.graphics.drawable.RotateDrawable
|
||||
import androidx.core.content.res.ResourcesCompat
|
||||
import de.mm20.launcher2.icons.*
|
||||
import de.mm20.launcher2.icons.LauncherIcon
|
||||
import de.mm20.launcher2.icons.compat.AdaptiveIconDrawableCompat
|
||||
import de.mm20.launcher2.icons.compat.ClockIconConfig
|
||||
import de.mm20.launcher2.icons.compat.toLauncherIcon
|
||||
import de.mm20.launcher2.search.SavableSearchable
|
||||
import de.mm20.launcher2.search.data.LauncherApp
|
||||
|
||||
class GoogleClockIconProvider(val context: Context, private val themed: Boolean) : IconProvider {
|
||||
class DynamicClockIconProvider(val context: Context, private val themed: Boolean) : IconProvider {
|
||||
override suspend fun getIcon(searchable: SavableSearchable, size: Int): LauncherIcon? {
|
||||
if (searchable !is LauncherApp) return null
|
||||
if (searchable.`package` != "com.google.android.deskclock") return null
|
||||
val pm = context.packageManager
|
||||
val appInfo = try {
|
||||
pm.getApplicationInfo(
|
||||
"com.google.android.deskclock",
|
||||
searchable.`package`,
|
||||
PackageManager.GET_META_DATA
|
||||
)
|
||||
} catch (e: PackageManager.NameNotFoundException) {
|
||||
return null
|
||||
}
|
||||
|
||||
if (appInfo.metaData == null) return null
|
||||
|
||||
val drawableId =
|
||||
appInfo.metaData.getInt("com.android.launcher3.LEVEL_PER_TICK_ICON_ROUND")
|
||||
|
||||
if (drawableId == 0) return null
|
||||
val resources = try {
|
||||
pm.getResourcesForApplication(appInfo)
|
||||
} catch (e: PackageManager.NameNotFoundException) {
|
||||
Loading…
x
Reference in New Issue
Block a user