]> uap-core.de Git - rssreader.git/commitdiff
small item state improvements
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Wed, 3 Sep 2025 17:03:15 +0000 (19:03 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Wed, 3 Sep 2025 17:03:15 +0000 (19:03 +0200)
rss-application/src/main/kotlin/de/unixwork/rssreader/FeedList.kt
rss-application/src/main/kotlin/de/unixwork/rssreader/MainWindow.kt

index ff8e1de838628cb55340a58278c9e5010fdb4896..770e5849ec1cf7adcaf13235166d13f58a49010b 100644 (file)
@@ -25,7 +25,11 @@ class FeedList : Document() {
 
     fun loadFeed(feed: FeedCollection) {
         if(feed.itemStateMode > 0 && feed.unreadItemsCount > 0) {
-            feed.unreadItemsCount = 0
+            // Only reset the unread counter if the feed is not already opened
+            // This is necessary to have a reliable counter in the sourcelist after a sync job finishes
+            if(feed != currentFeed) {
+                feed.unreadItemsCount = 0
+            }
             GlobalScope.launch(Dispatchers.IO) {
                 Database.updateFeedReadState(feed, true)
             }
index a1c4bdae5baa76871244f150c7d73d717b0ec77e..849cf1e695c18df2f741edce3c26585bce6b0fe8 100644 (file)
@@ -36,7 +36,11 @@ class MainWindow {
                                 feed?.let {
                                     println("feed: ${feed.name}")
                                     feedList.loadFeed(feed)
-                                    sourceList.feeds.update()
+                                    // mode 1: mark all items as read when opening the feed
+                                    // update the sourcelist to remove the unread counter badge from this feed
+                                    if(feed.itemStateMode == 1) {
+                                        sourceList.groups[evt.sublistIndex].feeds.update(evt.rowIndex)
+                                    }
                                 }
                             } catch (e: Exception) {
                                 e.printStackTrace()