app: ArticlesList show unread starred articles
authorDa Risk <da_risk@geekorum.com>
Thu, 07 Dec 2023 17:21:16 -0400
changeset 1162 b7343c329ec8
parent 1161 491d6b763c7e
child 1163 8d856a0b80fc
app: ArticlesList show unread starred articles Fix #32
app/src/main/java/com/geekorum/ttrss/articles_list/ArticlesViewModel.kt
--- a/app/src/main/java/com/geekorum/ttrss/articles_list/ArticlesViewModel.kt	Thu Dec 07 17:08:46 2023 -0400
+++ b/app/src/main/java/com/geekorum/ttrss/articles_list/ArticlesViewModel.kt	Thu Dec 07 17:21:16 2023 -0400
@@ -22,7 +22,10 @@
 
 import android.accounts.Account
 import androidx.core.text.parseAsHtml
-import androidx.lifecycle.*
+import androidx.lifecycle.SavedStateHandle
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.asFlow
+import androidx.lifecycle.viewModelScope
 import androidx.paging.*
 import com.geekorum.geekdroid.accounts.SyncInProgressLiveData
 import com.geekorum.ttrss.background_job.BackgroundJobManager
@@ -260,10 +263,10 @@
             backgroundJobManager.isRefreshingStatus(state.get<Long>(STATE_FEED_ID)!!).asFlow()
     }.stateIn(viewModelScope, SharingStarted.WhileSubscribed(5000), false)
 
-    @OptIn(ExperimentalCoroutinesApi::class)
     private fun getArticlesForFeed(feed: Feed): Flow<PagingData<ArticleWithFeed>> {
         val isMostRecentOrderFlow = state.getStateFlow(STATE_ORDER_MOST_RECENT_FIRST, false)
-        val needUnreadFlow = state.getStateFlow(STATE_NEED_UNREAD, false)
+        val needUnreadFlow = if (feed.isStarredFeed) flowOf(false) else
+            state.getStateFlow(STATE_NEED_UNREAD, false)
         return isMostRecentOrderFlow.combine(needUnreadFlow) { mostRecentFirst, needUnread ->
             getArticleAccess(mostRecentFirst, needUnread)
         }.flatMapLatest { access ->
@@ -307,7 +310,7 @@
     componentFactory: SessionActivityComponent.Factory
 ) : BaseArticlesViewModel(state, componentFactory) {
 
-    val tag = state.getStateFlow<String>(STATE_TAG, "")
+    val tag = state.getStateFlow(STATE_TAG, "")
     override val isMultiFeed: StateFlow<Boolean> = MutableStateFlow(true)
 
     private val account: Account = component.account