diff --git a/customattrs/src/main/java/de/mm20/launcher2/customattrs/CustomAttribute.kt b/customattrs/src/main/java/de/mm20/launcher2/customattrs/CustomAttribute.kt index 759dfefe..f2cae363 100644 --- a/customattrs/src/main/java/de/mm20/launcher2/customattrs/CustomAttribute.kt +++ b/customattrs/src/main/java/de/mm20/launcher2/customattrs/CustomAttribute.kt @@ -94,6 +94,7 @@ sealed class CustomIcon : CustomAttribute { ) } "force_themed_icon" -> ForceThemedIcon + "default_placeholder_icon" -> DefaultPlaceholderIcon else -> null } } @@ -171,4 +172,15 @@ object UnmodifiedSystemDefaultIcon: CustomIcon() { ).toString() } +} + +/** + * Use the default placeholder icon + */ +object DefaultPlaceholderIcon: CustomIcon() { + override fun toDatabaseValue(): String { + return jsonObjectOf( + "type" to "default_placeholder_icon" + ).toString() + } } \ No newline at end of file diff --git a/icons/src/main/java/de/mm20/launcher2/icons/IconRepository.kt b/icons/src/main/java/de/mm20/launcher2/icons/IconRepository.kt index aff83272..8680869e 100644 --- a/icons/src/main/java/de/mm20/launcher2/icons/IconRepository.kt +++ b/icons/src/main/java/de/mm20/launcher2/icons/IconRepository.kt @@ -150,6 +150,9 @@ class IconRepository( ) ) } + if (customIcon is DefaultPlaceholderIcon) { + return placeholderProvider?.let { listOf(it) } ?: emptyList() + } return emptyList() } @@ -263,6 +266,8 @@ class IconRepository( ) } + providerOptions.add(DefaultPlaceholderIcon) + suggestions.addAll( transformationOptions.map { val transformations = getTransformations(it) ?: defaultTransformations