]> uap-core.de Git - rssreader.git/commitdiff
add status bar for showing the last feed update (and potentially other stuff) main
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Thu, 4 Jun 2026 15:51:29 +0000 (17:51 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Thu, 4 Jun 2026 15:51:29 +0000 (17:51 +0200)
rss-application/src/main/kotlin/de/unixwork/rssreader/Database.kt
rss-application/src/main/kotlin/de/unixwork/rssreader/FeedList.kt
rss-application/src/main/kotlin/de/unixwork/rssreader/MainWindow.kt

index ade37050bc56407d0a7472073287267081810b2f..9aaed185652bf80ea7591fdee4a435387ca0d85e 100644 (file)
@@ -118,6 +118,7 @@ object Database {
                     f.item_state_mode,
                     f.internal_browser,
                     f.add_url_param,
                     f.item_state_mode,
                     f.internal_browser,
                     f.add_url_param,
+                    f.last_update,
                     c.unread_count
                 from groups g
                 left join feeds f on g.group_id = f.group_id
                     c.unread_count
                 from groups g
                 left join feeds f on g.group_id = f.group_id
@@ -140,6 +141,7 @@ object Database {
                     val internalBrowser = rs.getBoolean("internal_browser")
                     val addUrlParam = rs.getString("add_url_param")
                     val itemStateMode = rs.getInt("item_state_mode")
                     val internalBrowser = rs.getBoolean("internal_browser")
                     val addUrlParam = rs.getString("add_url_param")
                     val itemStateMode = rs.getInt("item_state_mode")
+                    val lastUpdate = rs.getTimestamp("last_update")?.toInstant()
                     val unreadCount = rs.getInt("unread_count")
 
                     if(currentGroup == null || currentGroup.id != groupId) {
                     val unreadCount = rs.getInt("unread_count")
 
                     if(currentGroup == null || currentGroup.id != groupId) {
@@ -157,6 +159,7 @@ object Database {
                         feed.internalBrowser = internalBrowser
                         feed.unreadItemsCount = unreadCount
                         feed.addUrlParam = addUrlParam
                         feed.internalBrowser = internalBrowser
                         feed.unreadItemsCount = unreadCount
                         feed.addUrlParam = addUrlParam
+                        feed.lastUpdate = lastUpdate
                         currentGroup.feeds.add(feed)
                     }
 
                         currentGroup.feeds.add(feed)
                     }
 
index 70c5940d6362dca33eb89768af0d1bc71bc66886..aa4e7618c8a2fdbcd9d153596703f8006a923c4c 100644 (file)
@@ -7,6 +7,10 @@ import de.unixwork.ui.kotlin.ToolkitDispatcher
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.GlobalScope
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.GlobalScope
 import kotlinx.coroutines.launch
+import java.time.ZoneId
+import java.time.format.DateTimeFormatter
+
+
 
 class FeedList(window: MainWindow) : Document() {
     val window = window
 
 class FeedList(window: MainWindow) : Document() {
     val window = window
@@ -21,6 +25,9 @@ class FeedList(window: MainWindow) : Document() {
     val starred = integer("starred")
     val browser = integer("browser")
 
     val starred = integer("starred")
     val browser = integer("browser")
 
+    val feed_info = string("feed_info")
+    val item_info = string("item_info")
+
     // 1: use feed settings
     // 2: load item description
     // 3: load item link in internal browser
     // 1: use feed settings
     // 2: load item description
     // 3: load item link in internal browser
@@ -78,6 +85,14 @@ class FeedList(window: MainWindow) : Document() {
 
         currentFeed = feed
 
 
         currentFeed = feed
 
+        feed.lastUpdate?.let {
+            val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
+                .withZone(ZoneId.systemDefault())
+            feed_info.setString("Last update: ${formatter.format(it)}");
+        } ?: {
+            feed_info.setString("");
+        }
+
         // Update item list
         items.clear()
         feed.items.forEach { item ->
         // Update item list
         items.clear()
         feed.items.forEach { item ->
index 60c4f03447797e93873894edcad4f92f4551c327..7badc9ed74bc7c01a87b17a37920e9d256e8acd1 100644 (file)
@@ -306,6 +306,10 @@ class MainWindow() {
                         }
                         result
                     }
                         }
                         result
                     }
+
+                    hbox(margin = 2) {
+                        label(varname = "feed_info")
+                    }
                 }
             }
 
                 }
             }
 
@@ -340,6 +344,10 @@ class MainWindow() {
                     }
                 }
                 g.setVisibilityStates(ITEM_SELETED)
                     }
                 }
                 g.setVisibilityStates(ITEM_SELETED)
+
+                hbox(margin = 2) {
+                    label(varname = "item_info")
+                }
             }
         }
 
             }
         }