Add plugin badges
This commit is contained in:
@@ -37,6 +37,7 @@ internal class BadgeServiceImpl(private val context: Context) : BadgeService, Ko
|
||||
if (it.suspendedApps) {
|
||||
providers += SuspendedAppsBadgeProvider()
|
||||
}
|
||||
providers += PluginBadgeProvider(context)
|
||||
badgeProviders.value = providers
|
||||
}
|
||||
}
|
||||
|
||||
+21
@@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user