From bfb4ea4cb03faba10d4c2a5f0ea2bd141046d519 Mon Sep 17 00:00:00 2001 From: Josiah Campbell <9521010+jocmp@users.noreply.github.com> Date: Tue, 7 Apr 2026 21:13:29 -0500 Subject: [PATCH 1/2] Hide feed icon when 'Read Later' is selected --- .../main/java/com/capyreader/app/ui/articles/ArticleList.kt | 5 ++++- .../java/com/capyreader/app/ui/articles/ArticleScreen.kt | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/capyreader/app/ui/articles/ArticleList.kt b/app/src/main/java/com/capyreader/app/ui/articles/ArticleList.kt index 873a4fec0..6c5a37709 100644 --- a/app/src/main/java/com/capyreader/app/ui/articles/ArticleList.kt +++ b/app/src/main/java/com/capyreader/app/ui/articles/ArticleList.kt @@ -49,9 +49,12 @@ fun ArticleList( refreshingAll: Boolean, enableMarkReadOnScroll: Boolean = false, dimReadArticles: Boolean = true, + showIcons: Boolean = true, ) { - val articleOptions = rememberArticleOptions().copy( + val options = rememberArticleOptions() + val articleOptions = options.copy( dim = dimReadArticles, + showIcon = options.showIcon && showIcons, ) val currentTime = rememberCurrentTime() val localDensity = LocalDensity.current diff --git a/app/src/main/java/com/capyreader/app/ui/articles/ArticleScreen.kt b/app/src/main/java/com/capyreader/app/ui/articles/ArticleScreen.kt index c84a1895e..8eaae9d07 100644 --- a/app/src/main/java/com/capyreader/app/ui/articles/ArticleScreen.kt +++ b/app/src/main/java/com/capyreader/app/ui/articles/ArticleScreen.kt @@ -603,6 +603,7 @@ fun ArticleScreen( enableMarkReadOnScroll = enableMarkReadOnScroll, refreshingAll = viewModel.refreshingAll, dimReadArticles = filter !is ArticleFilter.Starred, + showIcons = currentFeed?.isReadLater != true, onMarkAllRead = { range -> onMarkAllRead(range) }, From 3de1272f14239c9dbfa8ea489e70dbf6932173b9 Mon Sep 17 00:00:00 2001 From: Josiah Campbell <9521010+jocmp@users.noreply.github.com> Date: Tue, 7 Apr 2026 21:29:50 -0500 Subject: [PATCH 2/2] Fix Read Later sidebar and icon --- .../main/java/com/capyreader/app/ui/articles/ArticleScreen.kt | 4 ++-- .../com/capyreader/app/ui/articles/ArticleScreenViewModel.kt | 4 +--- capy/src/main/java/com/jocmp/capy/ArticleFilter.kt | 4 ++++ 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/capyreader/app/ui/articles/ArticleScreen.kt b/app/src/main/java/com/capyreader/app/ui/articles/ArticleScreen.kt index 8eaae9d07..dc345fd1e 100644 --- a/app/src/main/java/com/capyreader/app/ui/articles/ArticleScreen.kt +++ b/app/src/main/java/com/capyreader/app/ui/articles/ArticleScreen.kt @@ -76,11 +76,11 @@ import com.capyreader.app.ui.articles.media.ArticleMediaView import com.capyreader.app.ui.collectChangesWithCurrent import com.capyreader.app.ui.collectChangesWithDefault import com.capyreader.app.ui.components.ArticleSearch +import com.capyreader.app.ui.components.LocalSnackbarHost import com.capyreader.app.ui.components.SearchState import com.capyreader.app.ui.provideLinkOpener import com.capyreader.app.ui.rememberLazyListState import com.capyreader.app.ui.rememberLocalConnectivity -import com.capyreader.app.ui.components.LocalSnackbarHost import com.jocmp.capy.Article import com.jocmp.capy.ArticleFilter import com.jocmp.capy.Feed @@ -603,7 +603,7 @@ fun ArticleScreen( enableMarkReadOnScroll = enableMarkReadOnScroll, refreshingAll = viewModel.refreshingAll, dimReadArticles = filter !is ArticleFilter.Starred, - showIcons = currentFeed?.isReadLater != true, + showIcons = !filter.isReadLaterFeed(readLaterFeed), onMarkAllRead = { range -> onMarkAllRead(range) }, diff --git a/app/src/main/java/com/capyreader/app/ui/articles/ArticleScreenViewModel.kt b/app/src/main/java/com/capyreader/app/ui/articles/ArticleScreenViewModel.kt index 8b7101c2c..114cdf409 100644 --- a/app/src/main/java/com/capyreader/app/ui/articles/ArticleScreenViewModel.kt +++ b/app/src/main/java/com/capyreader/app/ui/articles/ArticleScreenViewModel.kt @@ -141,11 +141,9 @@ class ArticleScreenViewModel( val readLaterFeed: Flow = combine( account.feeds, _counts, - filter, - ) { feeds, latestCounts, filter -> + ) { feeds, latestCounts -> feeds.find { it.isReadLater } ?.let { copyFeedCounts(it, latestCounts) } - ?.takeIf { it.count > 0 || filter.status != ArticleStatus.UNREAD } } private val nextFilterListener: Flow = diff --git a/capy/src/main/java/com/jocmp/capy/ArticleFilter.kt b/capy/src/main/java/com/jocmp/capy/ArticleFilter.kt index c2d7d816b..6ff1b5142 100644 --- a/capy/src/main/java/com/jocmp/capy/ArticleFilter.kt +++ b/capy/src/main/java/com/jocmp/capy/ArticleFilter.kt @@ -28,6 +28,10 @@ sealed class ArticleFilter(open val status: ArticleStatus) { return this is Starred } + fun isReadLaterFeed(feed: Feed?): Boolean { + return feed != null && isFeedSelected(feed) + } + fun withStatus(status: ArticleStatus): ArticleFilter { return when (this) { is Articles -> copy(articleStatus = status)