psa: remove old event feed items
[feedingit] / psa_harmattan / feedingit / pysrc / rss_sqlite.py
index a848d5b..25c628c 100644 (file)
@@ -1160,16 +1160,23 @@ class Listing(BaseObject):
         self.cache_invalidate('feeds')
         self.updateUnread(key)
 
+        ### Update the harmattan event feed if necessary 
         from gconf import client_get_default
         enable_event_feed = client_get_default().get_bool('/apps/ControlPanel/FeedingIt/EnableFeed')
-        if enable_event_feed:
+        if enable_event_feed and (self.getFeedNumberOfUnreadItems(key)>0):
             if not client_get_default().get_bool('/apps/ControlPanel/FeedingIt/EventFeed/Hide/'+key):
                 from eventfeed import EventFeedSender, EventFeedItem
                 sender = EventFeedSender('feedingit', 'FeedingIt RSS Reader')
+                
+                oldId = client_get_default().get_int('/apps/ControlPanel/FeedingIt/EventFeed/Ids/'+key)
+                if oldId > 0:
+                    sender.remove_item(oldId)
+                
                 item = EventFeedItem('/usr/share/feedingit/qml/common/images/feedingit.png', self.getFeedTitle(key))
                 item.set_body(str(self.getFeedNumberOfUnreadItems(key)) + ' unread items')
                 item.set_action_data([key,])
-                sender.add_item(item)
+                eventId = sender.add_item(item)
+                client_get_default().set_int('/apps/ControlPanel/FeedingIt/EventFeed/Ids/'+key, eventId)
 
         update_server_object().ArticleCountUpdated()