private void SendRecentlyWatchedToFacade(IEnumerable<TraktMovieHistory> recentlyWatched)
{
// clear facade
GUIControl.ClearControl(GetID, Facade.GetID);
// protected profiles might return null
if (recentlyWatched == null || recentlyWatched.Count() == 0)
{
GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.UserHasNotWatchedMovies);
PreviousUser = CurrentUser;
CurrentUser = TraktSettings.Username;
GUIWindowManager.ShowPreviousWindow();
return;
}
int itemId = 0;
var movieImages = new List<GUITmdbImage>();
// Add each item watched
foreach (var recent in recentlyWatched)
{
// bad data in API
if (recent.Movie == null)
continue;
// add image for download
var images = new GUITmdbImage { MovieImages = new TmdbMovieImages { Id = recent.Movie.Ids.Tmdb } };
movieImages.Add(images);
var item = new GUIMovieListItem(recent.Movie.Title, (int)TraktGUIWindows.RecentWatchedMovies);
// add user watched date as second label
item.Label2 = recent.WatchedAt.ToPrettyDateTime();
item.Date = recent.WatchedAt.FromISO8601().ToLongDateString();
item.Action = recent.Action;
item.TVTag = recent.Movie;
item.Movie = recent.Movie;
item.Images = images;
item.ItemId = Int32.MaxValue - itemId;
item.IsPlayed = CurrentUser != TraktSettings.Username ? recent.Movie.IsWatched() : false;
item.IconImage = GUIImageHandler.GetDefaultPoster(false);
item.IconImageBig = GUIImageHandler.GetDefaultPoster();
item.ThumbnailImage = GUIImageHandler.GetDefaultPoster();
item.OnItemSelected += OnMovieSelected;
Utils.SetDefaultIcons(item);
Facade.Add(item);
itemId++;
}
// set Facade Layout
Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout));
GUIControl.FocusControl(GetID, Facade.GetID);
if (PreviousSelectedIndex >= recentlyWatched.Count())
Facade.SelectIndex(PreviousSelectedIndex - 1);
else
Facade.SelectIndex(PreviousSelectedIndex);
// set facade properties
GUIUtils.SetProperty("#itemcount", recentlyWatched.Count().ToString());
GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", recentlyWatched.Count().ToString(), recentlyWatched.Count() > 1 ? Translation.Movies : Translation.Movie));
// Download movie images Async and set to facade
GUIMovieListItem.GetImages(movieImages);
}