private void SendPopularShowsToFacade(TraktShowsPopular PopularItems)
{
// clear facade
GUIControl.ClearControl(GetID, Facade.GetID);
if (PopularItems == null)
{
GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral);
GUIWindowManager.ShowPreviousWindow();
PopularShowPages = null;
return;
}
// filter shows
var filteredPopularList = FilterPopularShows(PopularItems.Shows).Where(s => !string.IsNullOrEmpty(s.Title)).ToList();
// sort shows
filteredPopularList.Sort(new GUIListItemShowSorter(TraktSettings.SortByPopularShows.Field, TraktSettings.SortByPopularShows.Direction));
int itemId = 0;
var showImages = new List<GUITmdbImage>();
// Add Previous Page Button
if (PopularItems.CurrentPage != 1)
{
var prevPageItem = new GUIShowListItem(Translation.PreviousPage, (int)TraktGUIWindows.PopularShows);
prevPageItem.IsPrevPageItem = true;
prevPageItem.IconImage = "traktPreviousPage.png";
prevPageItem.IconImageBig = "traktPreviousPage.png";
prevPageItem.ThumbnailImage = "traktPreviousPage.png";
prevPageItem.OnItemSelected += OnPreviousPageSelected;
prevPageItem.IsFolder = true;
Facade.Add(prevPageItem);
itemId++;
}
foreach (var popularItem in filteredPopularList)
{
var item = new GUIShowListItem(popularItem.Title, (int)TraktGUIWindows.PopularShows);
// add image for download
var image = new GUITmdbImage { ShowImages = new TmdbShowImages { Id = popularItem.Ids.Tmdb } };
showImages.Add(image);
item.Label2 = popularItem.Year.ToString();
item.TVTag = popularItem;
item.Show = popularItem;
item.Images = image;
item.ItemId = Int32.MaxValue - itemId;
item.IconImage = GUIImageHandler.GetDefaultPoster(false);
item.IconImageBig = GUIImageHandler.GetDefaultPoster();
item.ThumbnailImage = GUIImageHandler.GetDefaultPoster();
item.OnItemSelected += OnShowSelected;
Utils.SetDefaultIcons(item);
Facade.Add(item);
itemId++;
}
// Add Next Page Button
if (PopularItems.CurrentPage != PopularItems.TotalPages)
{
var nextPageItem = new GUIShowListItem(Translation.NextPage, (int)TraktGUIWindows.PopularShows);
nextPageItem.IsNextPageItem = true;
nextPageItem.IconImage = "traktNextPage.png";
nextPageItem.IconImageBig = "traktNextPage.png";
nextPageItem.ThumbnailImage = "traktNextPage.png";
nextPageItem.OnItemSelected += OnNextPageSelected;
nextPageItem.IsFolder = true;
Facade.Add(nextPageItem);
itemId++;
}
// Set Facade Layout
Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout));
GUIControl.FocusControl(GetID, Facade.GetID);
Facade.SelectIndex(PreviousSelectedIndex);
// set facade properties
GUIUtils.SetProperty("#itemcount", filteredPopularList.Count().ToString());
GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", filteredPopularList.Count(), filteredPopularList.Count() > 1 ? Translation.SeriesPlural : Translation.Series));
// Page Properties
GUIUtils.SetProperty("#Trakt.Facade.CurrentPage", PopularItems.CurrentPage.ToString());
GUIUtils.SetProperty("#Trakt.Facade.TotalPages", PopularItems.TotalPages.ToString());
GUIUtils.SetProperty("#Trakt.Facade.TotalItemsPerPage", TraktSettings.MaxPopularShowsRequest.ToString());
// Download show images Async and set to facade
GUIShowListItem.GetImages(showImages);
}