From 0381e75c3ab001e40ccc958ac6eee9237d4284f1 Mon Sep 17 00:00:00 2001 From: luigihenrick Date: Thu, 30 Jan 2025 13:57:38 +0000 Subject: [PATCH] Fix to use icons on groups as well --- .../reader/data/repository/RssRepository.kt | 28 +++++++++---------- .../rss/reader/data/database/FeedGroup.sq | 12 ++++---- .../rss/reader/data/database/Source.sq | 8 +++--- .../rss/reader/core/model/local/FeedGroup.kt | 20 ++++++------- .../reader/feeds/ui/FeedGroupBottomBarItem.kt | 6 ++-- .../rss/reader/feeds/ui/FeedGroupItem.kt | 6 ++-- .../rss/reader/home/ui/HomeTopAppBar.kt | 6 ++-- 7 files changed, 43 insertions(+), 43 deletions(-) diff --git a/core/data/src/commonMain/kotlin/dev/sasikanth/rss/reader/data/repository/RssRepository.kt b/core/data/src/commonMain/kotlin/dev/sasikanth/rss/reader/data/repository/RssRepository.kt index 65a2d580..d883c9c3 100644 --- a/core/data/src/commonMain/kotlin/dev/sasikanth/rss/reader/data/repository/RssRepository.kt +++ b/core/data/src/commonMain/kotlin/dev/sasikanth/rss/reader/data/repository/RssRepository.kt @@ -280,7 +280,7 @@ class RssRepository( id: String, name: String, feedIds: List, - feedHomepageLinks: String, + feedIconLinks: String, createdAt: Instant, updatedAt: Instant, pinnedAt: Instant?, @@ -289,7 +289,7 @@ class RssRepository( id = id, name = name, feedIds = feedIds.filterNot { it.isBlank() }, - feedHomepageLinks = feedHomepageLinks.split(",").filterNot { it.isBlank() }, + feedIconLinks = feedIconLinks.split(",").filterNot { it.isBlank() }, createdAt = createdAt, updatedAt = updatedAt, pinnedAt = pinnedAt, @@ -626,7 +626,7 @@ class RssRepository( lastCleanUpAt: Instant?, numberOfUnreadPosts: Long, feedIds: List?, - feedHomepageLinks: String?, + feedIconLinks: String?, updatedAt: Instant?, pinnedPosition: Double -> if (type == "group") { @@ -634,8 +634,8 @@ class RssRepository( id = id, name = name, feedIds = feedIds?.filterNot { it.isBlank() }.orEmpty(), - feedHomepageLinks = - feedHomepageLinks?.split(",")?.filterNot { it.isBlank() }.orEmpty(), + feedIconLinks = + feedIconLinks?.split(",")?.filterNot { it.isBlank() }.orEmpty(), createdAt = createdAt!!, updatedAt = updatedAt!!, pinnedAt = pinnedAt, @@ -690,15 +690,15 @@ class RssRepository( lastCleanUpAt: Instant?, numberOfUnreadPosts: Long, feedIds: List?, - feedHomepageLinks: String?, + feedIconLinks: String?, updatedAt: Instant? -> if (type == "group") { FeedGroup( id = id, name = name, feedIds = feedIds?.filterNot { it.isBlank() }.orEmpty(), - feedHomepageLinks = - feedHomepageLinks?.split(",")?.filterNot { it.isBlank() }.orEmpty(), + feedIconLinks = + feedIconLinks?.split(",")?.filterNot { it.isBlank() }.orEmpty(), createdAt = createdAt, updatedAt = updatedAt!!, pinnedAt = pinnedAt, @@ -737,7 +737,7 @@ class RssRepository( id: String, name: String, feedIds: List, - feedHomepageLinks: String, + feedIconLinks: String, createdAt: Instant, updatedAt: Instant, pinnedAt: Instant?, @@ -746,7 +746,7 @@ class RssRepository( id = id, name = name, feedIds = feedIds.filterNot { it.isBlank() }, - feedHomepageLinks = feedHomepageLinks.split(",").filterNot { it.isBlank() }, + feedIconLinks = feedIconLinks.split(",").filterNot { it.isBlank() }, createdAt = createdAt, updatedAt = updatedAt, pinnedAt = pinnedAt, @@ -771,7 +771,7 @@ class RssRepository( id: String, name: String, feedIds: List, - feedHomepageLinks: String, + feedIconLinks: String, createdAt: Instant, updatedAt: Instant, pinnedAt: Instant? -> @@ -779,7 +779,7 @@ class RssRepository( id = id, name = name, feedIds = feedIds.filterNot { it.isBlank() }, - feedHomepageLinks = feedHomepageLinks.split(",").filterNot { it.isBlank() }, + feedIconLinks = feedIconLinks.split(",").filterNot { it.isBlank() }, createdAt = createdAt, updatedAt = updatedAt, pinnedAt = pinnedAt, @@ -798,7 +798,7 @@ class RssRepository( id: String, name: String, feedIds: List, - feedHomepageLinks: String, + feedIconLinks: String, createdAt: Instant, updatedAt: Instant, pinnedAt: Instant? -> @@ -806,7 +806,7 @@ class RssRepository( id = id, name = name, feedIds = feedIds.filterNot { it.isBlank() }, - feedHomepageLinks = feedHomepageLinks.split(",").filterNot { it.isBlank() }, + feedIconLinks = feedIconLinks.split(",").filterNot { it.isBlank() }, createdAt = createdAt, updatedAt = updatedAt, pinnedAt = pinnedAt, diff --git a/core/data/src/commonMain/sqldelight/dev/sasikanth/rss/reader/data/database/FeedGroup.sq b/core/data/src/commonMain/sqldelight/dev/sasikanth/rss/reader/data/database/FeedGroup.sq index 2a4fb242..73824466 100644 --- a/core/data/src/commonMain/sqldelight/dev/sasikanth/rss/reader/data/database/FeedGroup.sq +++ b/core/data/src/commonMain/sqldelight/dev/sasikanth/rss/reader/data/database/FeedGroup.sq @@ -26,10 +26,10 @@ SELECT id, name, feedIds, - COALESCE((SELECT GROUP_CONCAT(feed.homepageLink) + COALESCE((SELECT GROUP_CONCAT(feed.icon) FROM feed WHERE INSTR(feedGroup.feedIds, feed.id) - LIMIT 4), '') AS feedHomepageLinks, + LIMIT 4), '') AS feedIconLinks, createdAt, updatedAt, pinnedAt, @@ -42,10 +42,10 @@ SELECT id, name, feedIds, - COALESCE((SELECT GROUP_CONCAT(feed.homepageLink) + COALESCE((SELECT GROUP_CONCAT(feed.icon) FROM feed WHERE INSTR(feedGroup.feedIds, feed.id) - LIMIT 4), '') AS feedHomepageLinks, + LIMIT 4), '') AS feedIconLinks, createdAt, updatedAt, pinnedAt, @@ -79,10 +79,10 @@ SELECT id, name, feedIds, - COALESCE((SELECT GROUP_CONCAT(feed.homepageLink) + COALESCE((SELECT GROUP_CONCAT(feed.icon) FROM feed WHERE INSTR(feedGroup.feedIds, feed.id) - LIMIT 4), '') AS feedHomepageLinks, + LIMIT 4), '') AS feedIconLinks, createdAt, updatedAt, pinnedAt diff --git a/core/data/src/commonMain/sqldelight/dev/sasikanth/rss/reader/data/database/Source.sq b/core/data/src/commonMain/sqldelight/dev/sasikanth/rss/reader/data/database/Source.sq index 3b16d562..dfc1de00 100644 --- a/core/data/src/commonMain/sqldelight/dev/sasikanth/rss/reader/data/database/Source.sq +++ b/core/data/src/commonMain/sqldelight/dev/sasikanth/rss/reader/data/database/Source.sq @@ -59,10 +59,10 @@ FROM ( NULL AS lastCleanUpAt, COUNT(CASE WHEN p.read == 0 THEN 1 ELSE NULL END) AS numberOfUnreadPosts, fg.feedIds, - COALESCE((SELECT GROUP_CONCAT(feed.homepageLink) + COALESCE((SELECT GROUP_CONCAT(feed.icon) FROM feed WHERE INSTR(fg.feedIds, feed.id) - LIMIT 4), '') AS feedHomepageLinks, + LIMIT 4), '') AS feedIconLinks, fg.createdAt, fg.pinnedAt, fg.updatedAt, @@ -123,10 +123,10 @@ FROM ( NULL AS lastCleanUpAt, COUNT(CASE WHEN p.read == 0 THEN 1 ELSE NULL END) AS numberOfUnreadPosts, fg.feedIds, - COALESCE((SELECT GROUP_CONCAT(feed.homepageLink) + COALESCE((SELECT GROUP_CONCAT(feed.icon) FROM feed WHERE INSTR(fg.feedIds, feed.id) - LIMIT 4), '') AS feedHomepageLinks, + LIMIT 4), '') AS feedIconLinks, fg.createdAt, fg.pinnedAt, fg.updatedAt diff --git a/core/model/src/commonMain/kotlin/dev/sasikanth/rss/reader/core/model/local/FeedGroup.kt b/core/model/src/commonMain/kotlin/dev/sasikanth/rss/reader/core/model/local/FeedGroup.kt index 58a8f74b..7d782682 100644 --- a/core/model/src/commonMain/kotlin/dev/sasikanth/rss/reader/core/model/local/FeedGroup.kt +++ b/core/model/src/commonMain/kotlin/dev/sasikanth/rss/reader/core/model/local/FeedGroup.kt @@ -19,14 +19,14 @@ package dev.sasikanth.rss.reader.core.model.local import kotlinx.datetime.Instant data class FeedGroup( - override val id: String, - val name: String, - val feedIds: List, - val feedHomepageLinks: List, - val numberOfUnreadPosts: Long = 0, - val createdAt: Instant, - val updatedAt: Instant, - override val pinnedAt: Instant?, - override val sourceType: SourceType = SourceType.FeedGroup, - override val pinnedPosition: Double = 0.0, + override val id: String, + val name: String, + val feedIds: List, + val feedIconLinks: List, + val numberOfUnreadPosts: Long = 0, + val createdAt: Instant, + val updatedAt: Instant, + override val pinnedAt: Instant?, + override val sourceType: SourceType = SourceType.FeedGroup, + override val pinnedPosition: Double = 0.0, ) : Source diff --git a/shared/src/commonMain/kotlin/dev/sasikanth/rss/reader/feeds/ui/FeedGroupBottomBarItem.kt b/shared/src/commonMain/kotlin/dev/sasikanth/rss/reader/feeds/ui/FeedGroupBottomBarItem.kt index 7b9f0d28..a80bae11 100644 --- a/shared/src/commonMain/kotlin/dev/sasikanth/rss/reader/feeds/ui/FeedGroupBottomBarItem.kt +++ b/shared/src/commonMain/kotlin/dev/sasikanth/rss/reader/feeds/ui/FeedGroupBottomBarItem.kt @@ -58,21 +58,21 @@ internal fun FeedGroupBottomBarItem( contentAlignment = Alignment.Center ) { val iconSize = - if (feedGroup.feedHomepageLinks.size > 2) { + if (feedGroup.feedIconLinks.size > 2) { 18.dp } else { 20.dp } val iconSpacing = - if (feedGroup.feedHomepageLinks.size > 2) { + if (feedGroup.feedIconLinks.size > 2) { 4.dp } else { 0.dp } FeedGroupIconGrid( - icons = feedGroup.feedHomepageLinks, + icons = feedGroup.feedIconLinks, iconSize = iconSize, iconShape = CircleShape, verticalArrangement = Arrangement.spacedBy(iconSpacing), diff --git a/shared/src/commonMain/kotlin/dev/sasikanth/rss/reader/feeds/ui/FeedGroupItem.kt b/shared/src/commonMain/kotlin/dev/sasikanth/rss/reader/feeds/ui/FeedGroupItem.kt index 13229567..9433267d 100644 --- a/shared/src/commonMain/kotlin/dev/sasikanth/rss/reader/feeds/ui/FeedGroupItem.kt +++ b/shared/src/commonMain/kotlin/dev/sasikanth/rss/reader/feeds/ui/FeedGroupItem.kt @@ -99,14 +99,14 @@ internal fun FeedGroupItem( ) { Row(verticalAlignment = Alignment.CenterVertically) { val iconSize = - if (feedGroup.feedHomepageLinks.size > 2) { + if (feedGroup.feedIconLinks.size > 2) { 17.dp } else { 19.dp } val iconSpacing = - if (feedGroup.feedHomepageLinks.size > 2) { + if (feedGroup.feedIconLinks.size > 2) { 2.dp } else { 0.dp @@ -114,7 +114,7 @@ internal fun FeedGroupItem( FeedGroupIconGrid( modifier = Modifier.requiredSize(36.dp), - icons = feedGroup.feedHomepageLinks, + icons = feedGroup.feedIconLinks, iconSize = iconSize, iconShape = CircleShape, verticalArrangement = Arrangement.spacedBy(iconSpacing), diff --git a/shared/src/commonMain/kotlin/dev/sasikanth/rss/reader/home/ui/HomeTopAppBar.kt b/shared/src/commonMain/kotlin/dev/sasikanth/rss/reader/home/ui/HomeTopAppBar.kt index 003c1d16..816b3b6f 100644 --- a/shared/src/commonMain/kotlin/dev/sasikanth/rss/reader/home/ui/HomeTopAppBar.kt +++ b/shared/src/commonMain/kotlin/dev/sasikanth/rss/reader/home/ui/HomeTopAppBar.kt @@ -192,21 +192,21 @@ private fun SourceIcon(source: Source?, modifier: Modifier = Modifier) { when (source) { is FeedGroup -> { val iconSize = - if (source.feedHomepageLinks.size > 2) { + if (source.feedIconLinks.size > 2) { 18.dp } else { 20.dp } val iconSpacing = - if (source.feedHomepageLinks.size > 2) { + if (source.feedIconLinks.size > 2) { 4.dp } else { 0.dp } FeedGroupIconGrid( - icons = source.feedHomepageLinks, + icons = source.feedIconLinks, iconSize = iconSize, iconShape = RoundedCornerShape(percent = 30), horizontalArrangement = Arrangement.spacedBy(iconSpacing),