Include unthemed icon variant in icon picker for icon packs that support themed icons
This commit is contained in:
parent
6353b38a70
commit
8ae3d74512
@ -82,13 +82,15 @@ sealed class CustomIcon : CustomAttribute {
|
|||||||
CustomIconPackIcon(
|
CustomIconPackIcon(
|
||||||
iconPackageName = legacyComponentName.packageName,
|
iconPackageName = legacyComponentName.packageName,
|
||||||
iconActivityName = legacyComponentName.className,
|
iconActivityName = legacyComponentName.className,
|
||||||
iconPackPackage = payload.getString("icon_pack")
|
iconPackPackage = payload.getString("icon_pack"),
|
||||||
|
allowThemed = payload.optBoolean("allow_themed", true),
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
CustomIconPackIcon(
|
CustomIconPackIcon(
|
||||||
iconPackageName = payload.optString("package").takeIf { it.isNotEmpty() } ?: return null,
|
iconPackageName = payload.optString("package").takeIf { it.isNotEmpty() } ?: return null,
|
||||||
iconActivityName = payload.optString("activity").takeIf { it.isNotEmpty() },
|
iconActivityName = payload.optString("activity").takeIf { it.isNotEmpty() },
|
||||||
iconPackPackage = payload.getString("icon_pack")
|
iconPackPackage = payload.getString("icon_pack"),
|
||||||
|
allowThemed = payload.optBoolean("allow_themed", true),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -118,6 +120,7 @@ data class CustomIconPackIcon(
|
|||||||
val iconPackPackage: String,
|
val iconPackPackage: String,
|
||||||
val iconPackageName: String,
|
val iconPackageName: String,
|
||||||
val iconActivityName: String?,
|
val iconActivityName: String?,
|
||||||
|
val allowThemed: Boolean = true,
|
||||||
) : CustomIcon() {
|
) : CustomIcon() {
|
||||||
override fun toDatabaseValue(): String {
|
override fun toDatabaseValue(): String {
|
||||||
return jsonObjectOf(
|
return jsonObjectOf(
|
||||||
@ -125,6 +128,7 @@ data class CustomIconPackIcon(
|
|||||||
"package" to iconPackageName,
|
"package" to iconPackageName,
|
||||||
"activity" to iconActivityName,
|
"activity" to iconActivityName,
|
||||||
"icon_pack" to iconPackPackage,
|
"icon_pack" to iconPackPackage,
|
||||||
|
"allow_themed" to allowThemed,
|
||||||
).toString()
|
).toString()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -359,16 +359,38 @@ class IconRepository(
|
|||||||
|
|
||||||
suspend fun searchCustomIcons(query: String, iconPack: IconPack?): List<CustomIconWithPreview> {
|
suspend fun searchCustomIcons(query: String, iconPack: IconPack?): List<CustomIconWithPreview> {
|
||||||
val transformations = this.transformations.first()
|
val transformations = this.transformations.first()
|
||||||
val iconPackIcons = iconPackManager.searchIconPackIcon(query, iconPack).mapNotNull {
|
val iconPackIcons = iconPackManager.searchIconPackIcon(query, iconPack).flatMap {
|
||||||
CustomIconWithPreview(
|
val unthemedIcon = if (it.themed) {
|
||||||
customIcon = CustomIconPackIcon(
|
iconPackManager.getIcon(it.iconPack, it.packageName, it.activityName, false)
|
||||||
iconPackPackage = it.iconPack,
|
?.transform(transformations)
|
||||||
iconActivityName = it.activityName,
|
} else null
|
||||||
iconPackageName = it.packageName,
|
val icon = iconPackManager.getIcon(it.iconPack, it.packageName, it.activityName, true)
|
||||||
),
|
?.transform(transformations)
|
||||||
preview = iconPackManager.getIcon(it.iconPack, it.packageName, it.activityName)
|
|
||||||
?.transform(transformations) ?: return@mapNotNull null
|
buildList<CustomIconWithPreview> {
|
||||||
)
|
if (icon != null) {
|
||||||
|
add(CustomIconWithPreview(
|
||||||
|
customIcon = CustomIconPackIcon(
|
||||||
|
iconPackPackage = it.iconPack,
|
||||||
|
iconActivityName = it.activityName,
|
||||||
|
iconPackageName = it.packageName,
|
||||||
|
allowThemed = true
|
||||||
|
),
|
||||||
|
preview = icon
|
||||||
|
))
|
||||||
|
}
|
||||||
|
if (unthemedIcon != null) {
|
||||||
|
add(CustomIconWithPreview(
|
||||||
|
customIcon = CustomIconPackIcon(
|
||||||
|
iconPackPackage = it.iconPack,
|
||||||
|
iconActivityName = it.activityName,
|
||||||
|
iconPackageName = it.packageName,
|
||||||
|
allowThemed = false
|
||||||
|
),
|
||||||
|
preview = unthemedIcon
|
||||||
|
))
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return iconPackIcons
|
return iconPackIcons
|
||||||
|
|||||||
@ -15,6 +15,7 @@ class CustomIconPackIconProvider(
|
|||||||
customIcon.iconPackPackage,
|
customIcon.iconPackPackage,
|
||||||
customIcon.iconPackageName,
|
customIcon.iconPackageName,
|
||||||
customIcon.iconActivityName,
|
customIcon.iconActivityName,
|
||||||
|
customIcon.allowThemed,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user