Improve icon pack icon search
This commit is contained in:
parent
6407d0577f
commit
af858bfbbe
@ -19,8 +19,8 @@ interface IconDao {
|
|||||||
@Query("SELECT * FROM Icons WHERE componentName = :componentName AND (type = 'app' OR type = 'calendar')")
|
@Query("SELECT * FROM Icons WHERE componentName = :componentName AND (type = 'app' OR type = 'calendar')")
|
||||||
suspend fun getIconsFromAllPacks(componentName: String): List<IconEntity>
|
suspend fun getIconsFromAllPacks(componentName: String): List<IconEntity>
|
||||||
|
|
||||||
@Query("SELECT * FROM Icons WHERE (type = 'app' OR type = 'calendar') AND (drawable LIKE :query OR componentName LIKE :query) ORDER BY iconPack, drawable LIMIT :limit")
|
@Query("SELECT * FROM Icons WHERE (type = 'app' OR type = 'calendar') AND (drawable LIKE :drawableQuery OR componentName LIKE :componentQuery OR name LIKE :nameQuery) ORDER BY iconPack, drawable LIMIT :limit")
|
||||||
suspend fun searchIconPackIcons(query: String, limit: Int = 100): List<IconEntity>
|
suspend fun searchIconPackIcons(componentQuery: String, nameQuery: String, drawableQuery: String, limit: Int = 100): List<IconEntity>
|
||||||
|
|
||||||
@Query("SELECT * FROM Icons WHERE (type = 'greyscale_icon') AND componentName LIKE :query GROUP BY componentName ORDER BY drawable LIMIT :limit")
|
@Query("SELECT * FROM Icons WHERE (type = 'greyscale_icon') AND componentName LIKE :query GROUP BY componentName ORDER BY drawable LIMIT :limit")
|
||||||
suspend fun searchGreyscaleIcons(query: String, limit: Int = 100): List<IconEntity>
|
suspend fun searchGreyscaleIcons(query: String, limit: Int = 100): List<IconEntity>
|
||||||
|
|||||||
@ -394,7 +394,12 @@ class IconPackManager(
|
|||||||
|
|
||||||
suspend fun searchIconPackIcon(query: String): List<IconPackIcon> {
|
suspend fun searchIconPackIcon(query: String): List<IconPackIcon> {
|
||||||
val iconDao = appDatabase.iconDao()
|
val iconDao = appDatabase.iconDao()
|
||||||
return iconDao.searchIconPackIcons("%$query%").map {
|
val drawableQuery = query.replace(" ", "_").lowercase()
|
||||||
|
return iconDao.searchIconPackIcons(
|
||||||
|
drawableQuery = "%$drawableQuery%",
|
||||||
|
componentQuery = "%$query%",
|
||||||
|
nameQuery = "%$query%",
|
||||||
|
).map {
|
||||||
IconPackIcon(it)
|
IconPackIcon(it)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -529,10 +534,14 @@ class UpdateIconPacksWorker(val context: Context) {
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
?: continue@loop
|
?: continue@loop
|
||||||
|
|
||||||
|
val name = parser.getAttributeValue(null, "name")
|
||||||
|
|
||||||
val icon = IconPackIcon(
|
val icon = IconPackIcon(
|
||||||
componentName = componentName,
|
componentName = componentName,
|
||||||
drawable = drawable,
|
drawable = drawable,
|
||||||
iconPack = pkgName,
|
iconPack = pkgName,
|
||||||
|
name = name,
|
||||||
type = "app"
|
type = "app"
|
||||||
)
|
)
|
||||||
icons.add(icon)
|
icons.add(icon)
|
||||||
@ -551,11 +560,14 @@ class UpdateIconPacksWorker(val context: Context) {
|
|||||||
)
|
)
|
||||||
?: continue@loop
|
?: continue@loop
|
||||||
|
|
||||||
|
val name = parser.getAttributeValue(null, "name")
|
||||||
|
|
||||||
val icon = IconPackIcon(
|
val icon = IconPackIcon(
|
||||||
componentName = componentName,
|
componentName = componentName,
|
||||||
drawable = drawable,
|
drawable = drawable,
|
||||||
iconPack = pkgName,
|
iconPack = pkgName,
|
||||||
type = "calendar"
|
type = "calendar",
|
||||||
|
name = name,
|
||||||
)
|
)
|
||||||
icons.add(icon)
|
icons.add(icon)
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user