From: Yves Marcoz Date: Sun, 29 Jan 2012 06:34:32 +0000 (-0800) Subject: psa: remove old event feed items X-Git-Url: http://vcs.maemo.org/git/?p=feedingit;a=commitdiff_plain;h=HEAD psa: remove old event feed items --- diff --git a/psa_harmattan/feedingit/pysrc/eventfeed.py b/psa_harmattan/feedingit/pysrc/eventfeed.py index 9693ad4..7ce66ea 100644 --- a/psa_harmattan/feedingit/pysrc/eventfeed.py +++ b/psa_harmattan/feedingit/pysrc/eventfeed.py @@ -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 diff --git a/psa_harmattan/feedingit/pysrc/rss_sqlite.py b/psa_harmattan/feedingit/pysrc/rss_sqlite.py index a848d5b..25c628c 100644 --- a/psa_harmattan/feedingit/pysrc/rss_sqlite.py +++ b/psa_harmattan/feedingit/pysrc/rss_sqlite.py @@ -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()