From 21bdbb2f0abe30b59c7d8400cdd2109eb5da4f21 Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Sat, 24 Sep 2022 19:37:03 +0200 Subject: [PATCH] Exclude tags in clock widget favorites part --- .../favorites/FavoritesRepository.kt | 58 ------------------- .../clock/parts/FavoritesPartProvider.kt | 8 ++- 2 files changed, 5 insertions(+), 61 deletions(-) diff --git a/favorites/src/main/java/de/mm20/launcher2/favorites/FavoritesRepository.kt b/favorites/src/main/java/de/mm20/launcher2/favorites/FavoritesRepository.kt index 3a70fd24..62692de1 100644 --- a/favorites/src/main/java/de/mm20/launcher2/favorites/FavoritesRepository.kt +++ b/favorites/src/main/java/de/mm20/launcher2/favorites/FavoritesRepository.kt @@ -18,13 +18,6 @@ import org.koin.core.component.KoinComponent import java.io.File interface FavoritesRepository { - @Deprecated("Use getFavorites(java.util.List, java.util.List, boolean, boolean, boolean, java.lang.Integer) instead.") - fun getFavorites( - columns: Int, - maxRows: Int? = null, - excludeCalendarEvents: Boolean = false - ): Flow> - /** * Get favorites * @param includeTypes Include only items of these types. Cannot be used together with excludeTypes. @@ -101,57 +94,6 @@ internal class FavoritesRepositoryImpl( private val scope = CoroutineScope(Job() + Dispatchers.Default) - override fun getFavorites( - columns: Int, - maxRows: Int?, - excludeCalendarEvents: Boolean - ): Flow> = - channelFlow { - withContext(Dispatchers.IO) { - val dao = database.searchDao() - val pinnedFavorites = - if (excludeCalendarEvents) { - dao.getFavoritesWithoutTypes( - excludeTypes = listOf("calendar"), - manuallySorted = true, - automaticallySorted = true, - frequentlyUsed = false, - limit = columns * (maxRows ?: 20) - ) - } else { - dao.getFavorites( - manuallySorted = true, - automaticallySorted = true, - frequentlyUsed = false, - limit = columns * (maxRows ?: 20) - ) - }.map { - it.mapNotNull { - val item = fromDatabaseEntity(it).searchable - return@mapNotNull item - } - } - - pinnedFavorites.collectLatest { pinned -> - var favCount = (pinned.size.toDouble() / columns).ceilToInt() * columns - if (pinned.size < columns) favCount += columns - val autoFavs = dao.getFavorites( - manuallySorted = false, - automaticallySorted = false, - frequentlyUsed = true, - limit = favCount.coerceAtMost((maxRows ?: 20) * columns) - pinned.size - ).first().mapNotNull { - val item = fromDatabaseEntity(it).searchable - if (item == null) { - dao.deleteByKey(it.key) - } - return@mapNotNull item - } - send(pinned + autoFavs) - } - } - } - override fun getFavorites( includeTypes: List?, excludeTypes: List?, diff --git a/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/parts/FavoritesPartProvider.kt b/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/parts/FavoritesPartProvider.kt index d3e22558..2ef2724c 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/parts/FavoritesPartProvider.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/parts/FavoritesPartProvider.kt @@ -47,9 +47,11 @@ class FavoritesPartProvider : PartProvider, KoinComponent { val favorites by remember(columns, excludeCalendar, layout) { favoritesRepository.getFavorites( - columns = columns, - maxRows = 1, - excludeCalendarEvents = excludeCalendar + excludeTypes = if (excludeCalendar) listOf("calendar", "tag") else listOf("tag"), + manuallySorted = true, + automaticallySorted = true, + frequentlyUsed = true, + limit = columns ) }.collectAsState(emptyList())