/*private void OnFeedAddedHandler (object sender, FeedEventArgs args)
         * {
         *  lock (sync) {
         *      source.FeedModel.Add (args.Feed);
         *  }
         * }
         *
         * private void OnFeedRemovedHandler (object sender, FeedEventArgs args)
         * {
         *  lock (sync) {
         *      source.FeedModel.Remove (args.Feed);
         *      args.Feed.Delete ();
         *  }
         * }
         *
         * private void OnFeedRenamedHandler (object sender, FeedEventArgs args)
         * {
         *  lock (sync) {
         *      source.FeedModel.Sort ();
         *  }
         * }
         *
         * private void OnFeedUpdatingHandler (object sender, FeedEventArgs args)
         * {
         *  lock (sync) {
         *      source.FeedModel.Reload ();
         *  }
         * }
         *
         * private void OnFeedDownloadCountChangedHandler (object sender, FeedDownloadCountChangedEventArgs args)
         * {
         *  lock (sync) {
         *      source.FeedModel.Reload ();
         *  }
         * }*/

        /*private void OnFeedItemAddedHandler (object sender, FeedItemEventArgs args)
         * {
         *  lock (sync) {
         *      if (args.Item != null) {
         *          AddFeedItem (args.Item);
         *      } else if (args.Items != null) {
         *          foreach (FeedItem item in args.Items) {
         *              AddFeedItem (item);
         *          }
         *      }
         *  }
         * }*/

        public void AddFeedItem(FeedItem item)
        {
            if (item.Enclosure != null)
            {
                PodcastTrackInfo pi = new PodcastTrackInfo(new DatabaseTrackInfo(), item);
                pi.Track.PrimarySource = source;
                pi.Track.Save(true);
                source.NotifyUser();
            }
            else
            {
                item.Delete(false);
            }
        }
 private void OnItemAdded(FeedItem item)
 {
     if (item.Enclosure != null)
     {
         DatabaseTrackInfo track = new DatabaseTrackInfo();
         track.ExternalId    = item.DbId;
         track.PrimarySource = source;
         (track.ExternalObject as PodcastTrackInfo).SyncWithFeedItem();
         track.Save(false);
         RefreshArtworkFor(item.Feed);
     }
     else
     {
         // We're only interested in items that have enclosures
         item.Delete(false);
     }
 }
        /*private void OnFeedAddedHandler (object sender, FeedEventArgs args)
        {
            lock (sync) {
                source.FeedModel.Add (args.Feed);
            }
        }

        private void OnFeedRemovedHandler (object sender, FeedEventArgs args)
        {
            lock (sync) {
                source.FeedModel.Remove (args.Feed);
                args.Feed.Delete ();
            }
        }

        private void OnFeedRenamedHandler (object sender, FeedEventArgs args)
        {
            lock (sync) {
                source.FeedModel.Sort ();
            }
        }

        private void OnFeedUpdatingHandler (object sender, FeedEventArgs args)
        {
            lock (sync) {
                source.FeedModel.Reload ();
            }
        }

        private void OnFeedDownloadCountChangedHandler (object sender, FeedDownloadCountChangedEventArgs args)
        {
            lock (sync) {
                source.FeedModel.Reload ();
            }
        }*/

        /*private void OnFeedItemAddedHandler (object sender, FeedItemEventArgs args)
        {
            lock (sync) {
                if (args.Item != null) {
                    AddFeedItem (args.Item);
                } else if (args.Items != null) {
                    foreach (FeedItem item in args.Items) {
                        AddFeedItem (item);
                    }
                }
            }
        }*/

        public void AddFeedItem (FeedItem item)
        {
            if (item.Enclosure != null) {
                PodcastTrackInfo pi = new PodcastTrackInfo (new DatabaseTrackInfo (), item);
                pi.Track.PrimarySource = source;
                pi.Track.Save (true);
                source.NotifyUser ();
            } else {
                item.Delete (false);
            }
        }
 private void OnItemAdded (FeedItem item)
 {
     if (item.Enclosure != null) {
         DatabaseTrackInfo track = new DatabaseTrackInfo ();
         track.ExternalId = item.DbId;
         track.PrimarySource = source;
         (track.ExternalObject as PodcastTrackInfo).SyncWithFeedItem ();
         track.Save (false);
         RefreshArtworkFor (item.Feed);
     } else {
         // We're only interested in items that have enclosures
         item.Delete (false);
     }
 }