private void SendSearchResultsToFacade(IEnumerable <TraktUser> users) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (users == null || users.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoSearchResultsFound); GUIWindowManager.ShowPreviousWindow(); Users = null; return; } int itemId = 0; var userImages = new List <TraktImage>(); // Add each user foreach (var user in users) { // add image to download var images = new TraktImage { Avatar = user.Avatar }; userImages.Add(images); var item = new GUIUserListItem(user.Username, (int)TraktGUIWindows.SearchUsers); item.Images = images; item.TVTag = user; item.ItemId = Int32.MaxValue - itemId; item.IconImage = "defaultTraktUser.png"; item.IconImageBig = "defaultTraktUserBig.png"; item.ThumbnailImage = "defaultTraktUserBig.png"; item.OnItemSelected += OnUserSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); if (SearchTermChanged) { PreviousSelectedIndex = 0; } Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", users.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", users.Count().ToString(), users.Count() > 1 ? Translation.Users : Translation.User)); // Download images Async and set to facade GUIUserListItem.GetImages(userImages); }
private void SendCommentsToFacade(IEnumerable <TraktComment> comments) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (comments == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); return; } // this should not happen for replies as we only enter if more than one if (comments.Count() == 0) { string title = string.Empty; switch (ShoutType) { case ShoutTypeEnum.movie: title = MovieInfo.Title; break; case ShoutTypeEnum.show: title = ShowInfo.Title; break; case ShoutTypeEnum.season: title = string.Format("{0} - {1} {2}", SeasonInfo.Title, Translation.Season, SeasonInfo.SeasonIdx); break; case ShoutTypeEnum.episode: title = EpisodeInfo.ToString(); break; } ClearProperties(); GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), string.Format(Translation.NoShoutsForItem, title)); if (ExitIfNoShoutsFound) { GUIWindowManager.ShowPreviousWindow(); return; } } // filter out the duplicates! var distinctComments = comments.Where(s => s.Text != null && s.User != null).Distinct(new ShoutComparer()); GUIUtils.SetProperty("#itemcount", distinctComments.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", distinctComments.Count(), distinctComments.Count() > 1 ? Translation.Comments : Translation.Shout)); int selectedParentItem = 0; int selectedItemIndex = 0; SelectedParentItems.TryGetValue(CurrentLevel, out selectedParentItem); int id = 0; var userImages = new List <GUITraktImage>(); // Add each user that shouted to the list foreach (var comment in distinctComments) { // add image to download var images = new GUITraktImage { UserImages = comment.User.Images }; userImages.Add(images); var shoutItem = new GUIUserListItem(comment.User.Username, (int)TraktGUIWindows.Shouts); shoutItem.Label2 = comment.CreatedAt.FromISO8601().ToShortDateString(); shoutItem.Images = images; shoutItem.TVTag = comment; shoutItem.User = comment.User; shoutItem.ItemId = id++; shoutItem.IconImage = "defaultTraktUser.png"; shoutItem.IconImageBig = "defaultTraktUserBig.png"; shoutItem.ThumbnailImage = "defaultTraktUserBig.png"; shoutItem.OnItemSelected += OnCommentSelected; Utils.SetDefaultIcons(shoutItem); Facade.Add(shoutItem); // check if we should select this comment when returning from replies if (selectedParentItem == (int)comment.Id) { selectedItemIndex = id - 1; } } // Enable / Disable GUI Controls EnableGUIButtons(); // Set Facade Layout if (Facade.Count > 0) { Facade.SetCurrentLayout("List"); GUIControl.FocusControl(GetID, Facade.GetID); Facade.SelectedListItemIndex = selectedItemIndex; } else { GUIControl.FocusControl(GetID, nextEpisodeButton.GetID); } // Download avatars Async and set to facade GUIUserListItem.GetImages(userImages); }
private void LoadActivityTypes(TraktUserSummaryEx user) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (user == null) { GUIUtils.ShowNotifyDialog(Translation.UserProfile, Translation.ErrorUserProfile); GUIWindowManager.ActivateWindow(GUIWindowManager.GetPreviousActiveWindow()); return; } string avatar = user.Profile.Images.Avatar.LocalImageFilename(ArtworkType.Avatar); // add each type to the list var item = new GUIUserListItem(Translation.RecentWatchedEpisodes, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityWatched.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.RecentWatchedMovies, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityWatched.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.RecentAddedEpisodes, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityCollected.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.RecentAddedMovies, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityCollected.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.RecentComments, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityShout.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.Lists, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityList.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.WatchListShows, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityWatchlist.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.WatchListMovies, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityWatchlist.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.WatchListEpisodes, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityWatchlist.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); Facade.SelectedListItemIndex = PreviousActivityTypeSelectedIndex; // Set Facade Layout Facade.SetCurrentLayout("List"); GUIControl.FocusControl(GetID, Facade.GetID); GUIUtils.SetProperty("#itemcount", Facade.Count.ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", Facade.Count.ToString(), GUILocalizeStrings.Get(507))); }
private void SendFollowerToFacade(IEnumerable<TraktNetworkUser> followers) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); ClearProperties(); if (followers == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ActivateWindow(GUIWindowManager.GetPreviousActiveWindow()); return; } int followerCount = followers.Count(); GUIUtils.SetProperty("#itemcount", followerCount.ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", followerCount.ToString(), followerCount > 1 ? Translation.Follower : Translation.Followers)); if (followerCount == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoFollowersTaunt); if (viewButton != null) { // let user select another view since there is nothing to show here GUIControl.FocusControl(GetID, viewButton.GetID); } else { GUIWindowManager.ShowPreviousWindow(); } return; } int id = 0; var userImages = new List<GUITraktImage>(); // Add each user to the list foreach (var follower in followers.OrderBy(f => f.FollowedAt.FromISO8601()).ToList()) { // add image to download var images = new GUITraktImage { UserImages = follower.User.Images }; userImages.Add(images); var userItem = new GUIUserListItem(follower.User.Username, (int)TraktGUIWindows.Network); userItem.Label2 = follower.FollowedAt.FromISO8601().ToShortDateString(); userItem.Images = images; userItem.TVTag = follower; userItem.User = follower.User; userItem.ItemId = id++; userItem.IsFollower = true; userItem.IconImage = "defaultTraktUser.png"; userItem.IconImageBig = "defaultTraktUserBig.png"; userItem.ThumbnailImage = "defaultTraktUserBig.png"; userItem.OnItemSelected += OnUserSelected; Utils.SetDefaultIcons(userItem); Facade.Add(userItem); } // restore previous selection if (Facade.Count <= PreviousUserSelectedIndex) Facade.SelectedListItemIndex = 0; else Facade.SelectedListItemIndex = PreviousUserSelectedIndex; // Set Facade Layout Facade.SetCurrentLayout("List"); GUIControl.FocusControl(GetID, Facade.GetID); // Download avatars Async and set to facade GUIUserListItem.GetImages(userImages); }
private void LoadActivityTypes() { if (CurrentSelectedUser == null) return; // signal that we are now displaying the users activity view CurrentViewLevel = ViewLevel.ActivityTypes; SetCurrentView(); // clear facade GUIControl.ClearControl(GetID, Facade.GetID); string avatar = CurrentSelectedUser.Images.Avatar.LocalImageFilename(ArtworkType.Avatar); // add each type to the list var item = new GUIUserListItem(Translation.UserProfile, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktUserProfile.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.RecentWatchedEpisodes, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityWatched.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.RecentWatchedMovies, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityWatched.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.RecentAddedEpisodes, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityCollected.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.RecentAddedMovies, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityCollected.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.RecentComments, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityShout.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.Lists, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityList.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.WatchListShows, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityWatchlist.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.WatchListMovies, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityWatchlist.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.WatchListEpisodes, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityWatchlist.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); Facade.SelectedListItemIndex = PreviousActivityTypeSelectedIndex; // Set Facade Layout Facade.SetCurrentLayout("List"); GUIControl.FocusControl(GetID, Facade.GetID); GUIUtils.SetProperty("#itemcount", Facade.Count.ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", Facade.Count.ToString(), GUILocalizeStrings.Get(507))); }
private void SendFollowingToFacade(IEnumerable <TraktNetworkUser> following) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); ClearProperties(); if (following == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ActivateWindow(GUIWindowManager.GetPreviousActiveWindow()); return; } int followingCount = following.Count(); GUIUtils.SetProperty("#itemcount", followingCount.ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", followingCount.ToString(), Translation.Followed)); if (followingCount == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoFollowingTaunt); if (viewButton != null) { // let user select another view since there is nothing to show here GUIControl.FocusControl(GetID, viewButton.GetID); } else { GUIWindowManager.ShowPreviousWindow(); } return; } int id = 0; var userImages = new List <GUITraktImage>(); // Add each user to the list foreach (var followee in following.OrderBy(f => f.FollowedAt.FromISO8601()).ToList()) { // add image to download var images = new GUITraktImage { UserImages = followee.User.Images }; userImages.Add(images); var userItem = new GUIUserListItem(followee.User.Username, (int)TraktGUIWindows.Network); userItem.Label2 = followee.FollowedAt.FromISO8601().ToShortDateString(); userItem.TVTag = followee; userItem.User = followee.User; userItem.Images = images; userItem.ItemId = id++; userItem.IsFollowed = true; userItem.IconImage = "defaultTraktUser.png"; userItem.IconImageBig = "defaultTraktUserBig.png"; userItem.ThumbnailImage = "defaultTraktUserBig.png"; userItem.OnItemSelected += OnUserSelected; Utils.SetDefaultIcons(userItem); Facade.Add(userItem); } // restore previous selection if (Facade.Count <= PreviousUserSelectedIndex) { Facade.SelectedListItemIndex = 0; } else { Facade.SelectedListItemIndex = PreviousUserSelectedIndex; } // Set Facade Layout Facade.CurrentLayout = GUIFacadeControl.Layout.List; GUIControl.FocusControl(GetID, Facade.GetID); // Download avatars Async and set to facade GUIUserListItem.GetImages(userImages); }
private void LoadActivityTypes() { if (CurrentSelectedUser == null) { return; } // signal that we are now displaying the users activity view CurrentViewLevel = ViewLevel.ActivityTypes; SetCurrentView(); // clear facade GUIControl.ClearControl(GetID, Facade.GetID); string avatar = CurrentSelectedUser.Images.Avatar.LocalImageFilename(ArtworkType.Avatar); // add each type to the list var item = new GUIUserListItem(Translation.UserProfile, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktUserProfile.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.RecentWatchedEpisodes, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityWatched.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.RecentWatchedMovies, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityWatched.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.RecentAddedEpisodes, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityCollected.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.RecentAddedMovies, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityCollected.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.RecentComments, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityShout.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.Lists, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityList.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.WatchListShows, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityWatchlist.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.WatchListMovies, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityWatchlist.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); item = new GUIUserListItem(Translation.WatchListEpisodes, (int)TraktGUIWindows.Network); item.IconImage = avatar; item.IconImageBig = avatar; item.ThumbnailImage = avatar; item.PinImage = "traktActivityWatchlist.png"; item.OnItemSelected += OnActivityTypeSelected; Utils.SetDefaultIcons(item); Facade.Add(item); Facade.SelectedListItemIndex = PreviousActivityTypeSelectedIndex; // Set Facade Layout Facade.CurrentLayout = GUIFacadeControl.Layout.List; GUIControl.FocusControl(GetID, Facade.GetID); GUIUtils.SetProperty("#itemcount", Facade.Count.ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", Facade.Count.ToString(), GUILocalizeStrings.Get(507))); }
private void SendFriendsToFacade(IEnumerable <TraktNetworkUser> friends) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); ClearProperties(); int friendCount = friends.Count(); GUIUtils.SetProperty("#itemcount", friendCount.ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", friendCount.ToString(), friendCount > 1 ? Translation.Friends : Translation.Friend)); if (friendCount == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoFriendsTaunt); if (viewButton != null) { // let user select another view since there is nothing to show here GUIControl.FocusControl(GetID, viewButton.GetID); } else { GUIWindowManager.ShowPreviousWindow(); } return; } int id = 0; var userImages = new List <TraktImage>(); // Add each friend to the list foreach (var friend in friends.OrderBy(f => f.ApprovedDate)) { // add image to download var images = new TraktImage { Avatar = friend.Avatar }; userImages.Add(images); var userItem = new GUIUserListItem(friend.Username, (int)TraktGUIWindows.Network); userItem.Label2 = friend.ApprovedDate.FromEpoch().ToShortDateString(); userItem.Images = images; userItem.TVTag = friend; userItem.ItemId = id++; userItem.IsFriend = true; userItem.IconImage = "defaultTraktUser.png"; userItem.IconImageBig = "defaultTraktUserBig.png"; userItem.ThumbnailImage = "defaultTraktUserBig.png"; userItem.OnItemSelected += OnUserSelected; Utils.SetDefaultIcons(userItem); Facade.Add(userItem); } // restore previous selection if (Facade.Count <= PreviousUserSelectedIndex) { Facade.SelectedListItemIndex = 0; } else { Facade.SelectedListItemIndex = PreviousUserSelectedIndex; } // Set Facade Layout Facade.SetCurrentLayout("List"); GUIControl.FocusControl(GetID, Facade.GetID); // Download avatars Async and set to facade GUIUserListItem.GetImages(userImages); }
private void SendSearchResultsToFacade(IEnumerable<TraktUserSummary> users) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (users == null) { GUIUtils.ShowNotifyDialog(Translation.Error, Translation.ErrorGeneral); GUIWindowManager.ShowPreviousWindow(); Users = null; return; } if (users.Count() == 0) { GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), Translation.NoSearchResultsFound); GUIWindowManager.ShowPreviousWindow(); Users = null; return; } int itemId = 0; var userImages = new List<GUITraktImage>(); // Add each user foreach (var user in users) { // add image to download var images = new GUITraktImage { UserImages = user.Images }; userImages.Add(images); var item = new GUIUserListItem(user.Username, (int)TraktGUIWindows.SearchUsers); item.Images = images; item.TVTag = user; item.ItemId = Int32.MaxValue - itemId; item.IconImage = "defaultTraktUser.png"; item.IconImageBig = "defaultTraktUserBig.png"; item.ThumbnailImage = "defaultTraktUserBig.png"; item.OnItemSelected += OnUserSelected; Utils.SetDefaultIcons(item); Facade.Add(item); itemId++; } // Set Facade Layout Facade.SetCurrentLayout(Enum.GetName(typeof(Layout), CurrentLayout)); GUIControl.FocusControl(GetID, Facade.GetID); if (SearchTermChanged) PreviousSelectedIndex = 0; Facade.SelectIndex(PreviousSelectedIndex); // set facade properties GUIUtils.SetProperty("#itemcount", users.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", users.Count().ToString(), users.Count() > 1 ? Translation.Users : Translation.User)); // Download images Async and set to facade GUIUserListItem.GetImages(userImages); }
private void LoadActivityFacade(TraktActivity activities, GUIFacadeControl facade) { if (TraktSkinSettings.DashBoardActivityWindows == null || !TraktSkinSettings.DashBoardActivityWindows.Contains(GUIWindowManager.ActiveWindow.ToString())) return; // if no activities report to user if (activities == null || activities.Activities == null || activities.Activities.Count == 0) { facade.Clear(); var item = new GUIListItem(Translation.NoActivities); facade.Add(item); facade.SetCurrentLayout(TraktSkinSettings.DashboardActivityFacadeType); ClearSelectedActivityProperties(); return; } // get the current view var view = (ActivityView)TraktSettings.ActivityStreamView; // if no new activities then nothing to do if (facade.Count > 0 && !ReloadActivityView) { var mostRecentActivity = facade[0].TVTag as TraktActivity.Activity; var lastActivity = facade[facade.Count - 1].TVTag as TraktActivity.Activity; if (mostRecentActivity != null && lastActivity != null) { // only check the timestamp if only showing yourself // check first and last because we may insert something in the middle between last load if (view == ActivityView.me && mostRecentActivity.Timestamp == activities.Activities.First().Timestamp && lastActivity.Timestamp == activities.Activities.Last().Timestamp) return; if (mostRecentActivity.Timestamp == activities.Activities.First().Timestamp && mostRecentActivity.User.Username == activities.Activities.First().User.Username) { return; } } } ReloadActivityView = false; TraktLogger.Debug("Loading Trakt Activity Facade"); // stop any existing image downloads GUIUserListItem.StopDownload = true; // clear facade GUIControl.ClearControl(GUIWindowManager.ActiveWindow, facade.GetID); int itemId = 0; int PreviousSelectedIdx = -1; var userImages = new List<GUITraktImage>(); // Add each activity item to the facade foreach (var activity in activities.Activities.Distinct().OrderByDescending(a => a.Timestamp)) { if (PreviousSelectedIdx == -1 && PreviousSelectedActivity != null && TraktSettings.RememberLastSelectedActivity) { if (activity.Equals(PreviousSelectedActivity)) PreviousSelectedIdx = itemId; } string itemLabel = GUICommon.GetActivityListItemTitle(activity, view); if (string.IsNullOrEmpty(itemLabel)) continue; var item = new GUIUserListItem(itemLabel, GUIWindowManager.ActiveWindow); string activityImage = GetActivityImage(activity); string avatarImage = GetAvatarImage(activity); // add image to download var images = new GUITraktImage { UserImages = activity.User.Images }; if (avatarImage == "defaultTraktUser.png") userImages.Add(images); item.Label2 = activity.Timestamp.ToPrettyDateTime(); item.TVTag = activity; item.User = activity.User; item.Images = images; item.ItemId = Int32.MaxValue - itemId; item.IconImage = avatarImage; item.IconImageBig = avatarImage; item.ThumbnailImage = avatarImage; item.PinImage = activityImage; item.OnItemSelected += OnActivitySelected; facade.Add(item); itemId++; } // Set Facade Layout facade.SetCurrentLayout(TraktSkinSettings.DashboardActivityFacadeType); facade.SetVisibleFromSkinCondition(); // Select previously selected item if (facade.LayoutControl.IsFocused && PreviousSelectedIdx >= 0) facade.SelectIndex(PreviousSelectedIdx); // set facade properties GUIUtils.SetProperty("#Trakt.Activity.Count", activities.Activities.Count().ToString()); GUIUtils.SetProperty("#Trakt.Activity.Items", string.Format("{0} {1}", activities.Activities.Count().ToString(), activities.Activities.Count() > 1 ? Translation.Activities : Translation.Activity)); GUIUtils.SetProperty("#Trakt.Activity.Description", GetActivityDescription((ActivityView)TraktSettings.ActivityStreamView)); // Download avatar images Async and set to facade GUIUserListItem.StopDownload = false; GUIUserListItem.GetImages(userImages); TraktLogger.Debug("Finished Loading Activity facade"); }
private void SendShoutsToFacade(IEnumerable <TraktShout> shouts) { // clear facade GUIControl.ClearControl(GetID, Facade.GetID); if (shouts == null || shouts.Count() == 0) { if (shouts != null) { string title = string.Empty; switch (ShoutType) { case ShoutTypeEnum.movie: title = MovieInfo.Title; break; case ShoutTypeEnum.show: title = ShowInfo.Title; break; case ShoutTypeEnum.episode: title = string.Format(EpisodeInfo.ToString()); break; } ClearProperties(); GUIUtils.ShowNotifyDialog(GUIUtils.PluginName(), string.Format(Translation.NoShoutsForItem, title)); } if (ExitIfNoShoutsFound) { GUIWindowManager.ShowPreviousWindow(); return; } } GUIUtils.SetProperty("#itemcount", shouts.Count().ToString()); GUIUtils.SetProperty("#Trakt.Items", string.Format("{0} {1}", shouts.Count(), shouts.Count() > 1 ? Translation.Shouts : Translation.Shout)); int id = 0; var userImages = new List <TraktImage>(); // Add each user that shouted to the list foreach (var shout in shouts) { // add image to download var images = new TraktImage { Avatar = shout.User.Avatar }; userImages.Add(images); var shoutItem = new GUIUserListItem(shout.User.Username, (int)TraktGUIWindows.Shouts); shoutItem.Label2 = shout.InsertedDate.FromEpoch().ToShortDateString(); shoutItem.Images = images; shoutItem.TVTag = shout; shoutItem.ItemId = id++; shoutItem.IconImage = "defaultTraktUser.png"; shoutItem.IconImageBig = "defaultTraktUserBig.png"; shoutItem.ThumbnailImage = "defaultTraktUserBig.png"; shoutItem.OnItemSelected += OnShoutSelected; Utils.SetDefaultIcons(shoutItem); Facade.Add(shoutItem); } // Enable / Disable GUI Controls EnableGUIButtons(); // Set Facade Layout if (Facade.Count > 0) { Facade.SetCurrentLayout("List"); GUIControl.FocusControl(GetID, Facade.GetID); Facade.SelectedListItemIndex = 0; } else { GUIControl.FocusControl(GetID, nextEpisodeButton.GetID); } // Download avatars Async and set to facade GUIUserListItem.GetImages(userImages); }