Exemplo n.º 1
0
        void StopListenToDataRefresh()
        {
            INewsCollector newsCollector = ServiceRegistration.Get <INewsCollector>(false);

            if (newsCollector != null)
            {
                newsCollector.RefeshStarted  -= NewsDataRefeshStarted;
                newsCollector.RefeshFinished -= NewsDataRefeshFinished;
            }
        }
Exemplo n.º 2
0
        void GetFeeds()
        {
            INewsCollector newsCollector = ServiceRegistration.Get <INewsCollector>(false);

            if (newsCollector != null)
            {
                SetNewFeeds(newsCollector, false);
                StartListenToDataRefresh(newsCollector);
            }
        }
Exemplo n.º 3
0
        private void SetNewFeeds(INewsCollector newsCollector, bool fireChanged)
        {
            var allFeeds = newsCollector.GetAllFeeds();

            _feeds.Clear();
            allFeeds.ForEach(f => _feeds.Add(f));
            if (fireChanged)
            {
                _feeds.FireChange();
            }
        }
Exemplo n.º 4
0
 public void ExitModelContext(NavigationContext oldContext, NavigationContext newContext)
 {
     // If changes were made, call refresh of the feeds
     if (HasChanges)
     {
         INewsCollector newsCollector = ServiceRegistration.Get <INewsCollector>(false);
         if (newsCollector != null)
         {
             newsCollector.RefreshNow();
         }
         HasChanges = false;
     }
 }
Exemplo n.º 5
0
        public override void Save()
        {
            NewsSettings settings = SettingsManager.Load <NewsSettings>();

            settings.RefreshInterval = (int)_value;
            SettingsManager.Save(settings);
            INewsCollector newsCollector = ServiceRegistration.Get <INewsCollector>(false);

            if (newsCollector != null)
            {
                newsCollector.ChangeRefreshInterval((int)_value);
            }
        }
        protected override void Update()
        {
            INewsCollector newsCollector = ServiceRegistration.Get <INewsCollector>(false);

            if (newsCollector != null)
            {
                NewsItem newNewsItem = newsCollector.GetRandomNewsItem();
                if (newNewsItem != null)
                {
                    newNewsItem.CopyTo(CurrentNewsItem);

                    // Decrease interval once we have the first item
                    ChangeInterval(NEWSITEM_UPDATE_INTERVAL);
                }
            }
        }
Exemplo n.º 7
0
        public void Refresh()
        {
            INewsCollector newsCollector = ServiceRegistration.Get <INewsCollector>(false);

            if (newsCollector != null)
            {
                NewsItem newNewsItem = newsCollector.GetRandomNewsItem();
                if (newNewsItem != null)
                {
                    newNewsItem.CopyTo(CurrentNewsItem);

                    var feeds = newsCollector.GetAllFeeds().OrderByDescending(f => f.LastUpdated);
                    //Only update if changed
                    if (!feeds.Select(f => f.LastUpdated).SequenceEqual(_currentFeedItems.Select(f => (f as NewsFeed)?.LastUpdated ?? DateTime.Now)))
                    {
                        _currentFeedItems.Clear();
                        foreach (var feed in feeds)
                        {
                            feed.Command = new AsyncMethodDelegateCommand(() => ShowNews(feed));
                            _currentFeedItems.Add(feed);
                        }
                        _currentFeedItems.FireChange();
                    }

                    var items = newsCollector.GetAllNewsItems().OrderByDescending(i => i.PublishDate);
                    //Only update if changed
                    if (!items.Select(i => i.PublishDate).SequenceEqual(_currentNewsItems.Select(i => (i as NewsItem)?.PublishDate ?? DateTime.Now)))
                    {
                        _currentNewsItems.Clear();
                        _currentTopNewsItems.Clear();
                        foreach (var newsItem in items)
                        {
                            newsItem.Command = new AsyncMethodDelegateCommand(() => ShowNews(newsItem));
                            _currentNewsItems.Add(newsItem);
                            if (_currentTopNewsItems.Count < NEWSITEM_TOP_COUNT)
                            {
                                _currentTopNewsItems.Add(newsItem);
                            }
                        }
                        _currentNewsItems.FireChange();
                        _currentTopNewsItems.FireChange();
                    }
                }
            }
        }
Exemplo n.º 8
0
 void NewsDataRefeshFinished(INewsCollector newsCollector)
 {
     IsUpdating = false;
     SetNewFeeds(newsCollector, true);
 }
Exemplo n.º 9
0
 void StartListenToDataRefresh(INewsCollector newsCollector)
 {
     newsCollector.RefeshStarted  += NewsDataRefeshStarted;
     newsCollector.RefeshFinished += NewsDataRefeshFinished;
     IsUpdating = newsCollector.IsRefeshing;
 }
Exemplo n.º 10
0
 void NewsDataRefeshFinished(INewsCollector newsCollector)
 {
   IsUpdating = false;
   SetNewFeeds(newsCollector, true);
 }
Exemplo n.º 11
0
 void StartListenToDataRefresh(INewsCollector newsCollector)
 {
   newsCollector.RefeshStarted += NewsDataRefeshStarted;
   newsCollector.RefeshFinished += NewsDataRefeshFinished;
   IsUpdating = newsCollector.IsRefeshing;
 }
Exemplo n.º 12
0
 private void SetNewFeeds(INewsCollector newsCollector, bool fireChanged)
 {
   var allFeeds = newsCollector.GetAllFeeds();
   _feeds.Clear();
   allFeeds.ForEach(f => _feeds.Add(f));
   if (fireChanged)
     _feeds.FireChange();
 }