Add plugin badges

This commit is contained in:
MM20
2023-12-07 20:56:57 +01:00
parent a94cc2ae01
commit 0f6d636ca0
4 changed files with 32 additions and 0 deletions
@@ -37,6 +37,7 @@ internal class BadgeServiceImpl(private val context: Context) : BadgeService, Ko
if (it.suspendedApps) {
providers += SuspendedAppsBadgeProvider()
}
providers += PluginBadgeProvider(context)
badgeProviders.value = providers
}
}
@@ -0,0 +1,21 @@
package de.mm20.launcher2.badges.providers
import android.content.Context
import de.mm20.launcher2.badges.Badge
import de.mm20.launcher2.search.SavableSearchable
import de.mm20.launcher2.search.Searchable
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.flow.flowOf
class PluginBadgeProvider(private val context: Context): BadgeProvider {
override fun getBadge(searchable: Searchable): Flow<Badge?> {
if (searchable !is SavableSearchable) return flowOf(null)
return flow {
val icon = searchable.getProviderIcon(context)
if (icon != null) {
emit(Badge(icon = icon))
}
}
}
}