psa: remove old event feed items master
authorYves Marcoz <yves@marcoz.org>
Sun, 29 Jan 2012 06:34:32 +0000 (22:34 -0800)
committerYves Marcoz <yves@marcoz.org>
Sun, 29 Jan 2012 06:34:32 +0000 (22:34 -0800)
psa_harmattan/feedingit/pysrc/eventfeed.py
psa_harmattan/feedingit/pysrc/rss_sqlite.py

index 9693ad4..7ce66ea 100644 (file)
@@ -188,4 +188,8 @@ class EventFeedSender:
         """Remove all items """
         self.event_feed.removeItemsBySourceName(self.source_name)
         # No need to remember action IDs, because all items were removed
-        self.actions = {}
\ No newline at end of file
+        self.actions = {}
+        
+    def remove_item(self, id):
+        """Remove a specific item """
+        self.event_feed.removeItem(id)
\ No newline at end of file
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()