private void OnMovieSelected(GUIListItem item, GUIControl parent) { TraktTrendingMovie movie = item.TVTag as TraktTrendingMovie; PublishMovieSkinProperties(movie); GUIImageHandler.LoadFanart(backdrop, movie.Images.FanartImageFilename); }
private void CheckAndPlayMovie(bool jumpTo) { GUIListItem selectedItem = this.Facade.SelectedListItem; if (selectedItem == null) { return; } TraktTrendingMovie selectedMovie = selectedItem.TVTag as TraktTrendingMovie; if (selectedMovie == null) { return; } GUICommon.CheckAndPlayMovie(jumpTo, selectedMovie); }
public override async Task <ITraktTrendingMovie> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktTrendingMovie))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var movieObjectReader = new MovieObjectJsonReader(); ITraktTrendingMovie traktTrendingMovie = new TraktTrendingMovie(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.TRENDING_MOVIE_PROPERTY_NAME_WATCHERS: traktTrendingMovie.Watchers = await jsonReader.ReadAsInt32Async(cancellationToken); break; case JsonProperties.TRENDING_MOVIE_PROPERTY_NAME_MOVIE: traktTrendingMovie.Movie = await movieObjectReader.ReadObjectAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(traktTrendingMovie); } return(await Task.FromResult(default(ITraktTrendingMovie))); }
private void PublishMovieSkinProperties(TraktTrendingMovie movie) { GUICommon.SetProperty("#Trakt.Movie.Watchers", movie.Watchers.ToString()); GUICommon.SetProperty("#Trakt.Movie.Watchers.Extra", movie.Watchers > 1 ? string.Format(Translation.PeopleWatching, movie.Watchers) : Translation.PersonWatching); GUICommon.SetMovieProperties(movie); }
/// <summary> /// Loads an Image from memory into a facade item /// </summary> /// <param name="imageFilePath">Filename of image</param> protected void SetImageToGui(string imageFilePath) { if (string.IsNullOrEmpty(imageFilePath)) { return; } // determine the overlay to add to poster TraktTrendingMovie movie = TVTag as TraktTrendingMovie; MainOverlayImage mainOverlay = MainOverlayImage.None; if (movie.InWatchList) { mainOverlay = MainOverlayImage.Watchlist; } else if (movie.Watched) { mainOverlay = MainOverlayImage.Seenit; } // add additional overlay if applicable if (movie.InCollection) { mainOverlay |= MainOverlayImage.Library; } RatingOverlayImage ratingOverlay = GUIImageHandler.GetRatingOverlay(movie.RatingAdvanced); // get a reference to a MediaPortal Texture Identifier string suffix = mainOverlay.ToString().Replace(", ", string.Empty) + Enum.GetName(typeof(RatingOverlayImage), ratingOverlay); string texture = GUIImageHandler.GetTextureIdentFromFile(imageFilePath, suffix); // build memory image Image memoryImage = null; if (mainOverlay != MainOverlayImage.None || ratingOverlay != RatingOverlayImage.None) { memoryImage = GUIImageHandler.DrawOverlayOnPoster(imageFilePath, mainOverlay, ratingOverlay); if (memoryImage == null) { return; } // load texture into facade item if (GUITextureManager.LoadFromMemory(memoryImage, texture, 0, 0, 0) > 0) { ThumbnailImage = texture; IconImage = texture; IconImageBig = texture; } } else { ThumbnailImage = imageFilePath; IconImage = imageFilePath; IconImageBig = imageFilePath; } // if selected and is current window force an update of thumbnail this.UpdateItemIfSelected((int)TraktGUIWindows.TrendingMovies, ItemId); }
protected override void OnShowContextMenu() { GUIListItem selectedItem = this.Facade.SelectedListItem; if (selectedItem == null) { return; } TraktTrendingMovie selectedMovie = (TraktTrendingMovie)selectedItem.TVTag; IDialogbox dlg = (IDialogbox)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); if (dlg == null) { return; } dlg.Reset(); dlg.SetHeading(GUIUtils.PluginName()); GUICommon.CreateTrendingMoviesContextMenu(ref dlg, selectedMovie, false); // Show Context Menu dlg.DoModal(GUIWindowManager.ActiveWindow); if (dlg.SelectedId < 0) { return; } switch (dlg.SelectedId) { case ((int)TrendingContextMenuItem.MarkAsWatched): TraktHelper.MarkMovieAsWatched(selectedMovie); if (selectedMovie.Plays == 0) { selectedMovie.Plays = 1; } selectedMovie.Watched = true; selectedItem.IsPlayed = true; OnMovieSelected(selectedItem, Facade); selectedMovie.Images.NotifyPropertyChanged("PosterImageFilename"); if (TraktSettings.TrendingMoviesHideWatched) { LoadTrendingMovies(); } break; case ((int)TrendingContextMenuItem.MarkAsUnWatched): TraktHelper.MarkMovieAsUnWatched(selectedMovie); selectedMovie.Watched = false; selectedItem.IsPlayed = false; OnMovieSelected(selectedItem, Facade); selectedMovie.Images.NotifyPropertyChanged("PosterImageFilename"); break; case ((int)TrendingContextMenuItem.AddToWatchList): TraktHelper.AddMovieToWatchList(selectedMovie, true); selectedMovie.InWatchList = true; OnMovieSelected(selectedItem, Facade); selectedMovie.Images.NotifyPropertyChanged("PosterImageFilename"); if (TraktSettings.TrendingMoviesHideWatchlisted) { LoadTrendingMovies(); } break; case ((int)TrendingContextMenuItem.RemoveFromWatchList): TraktHelper.RemoveMovieFromWatchList(selectedMovie, true); selectedMovie.InWatchList = false; OnMovieSelected(selectedItem, Facade); selectedMovie.Images.NotifyPropertyChanged("PosterImageFilename"); break; case ((int)TrendingContextMenuItem.AddToList): TraktHelper.AddRemoveMovieInUserList(selectedMovie, false); break; case ((int)TrendingContextMenuItem.AddToLibrary): TraktHelper.AddMovieToLibrary(selectedMovie); selectedMovie.InCollection = true; OnMovieSelected(selectedItem, Facade); selectedMovie.Images.NotifyPropertyChanged("PosterImageFilename"); if (TraktSettings.TrendingMoviesHideCollected) { LoadTrendingMovies(); } break; case ((int)TrendingContextMenuItem.RemoveFromLibrary): TraktHelper.RemoveMovieFromLibrary(selectedMovie); selectedMovie.InCollection = false; OnMovieSelected(selectedItem, Facade); selectedMovie.Images.NotifyPropertyChanged("PosterImageFilename"); break; case ((int)TrendingContextMenuItem.Related): TraktHelper.ShowRelatedMovies(selectedMovie); break; case ((int)TrendingContextMenuItem.Rate): GUICommon.RateMovie(selectedMovie); OnMovieSelected(selectedItem, Facade); selectedMovie.Images.NotifyPropertyChanged("PosterImageFilename"); if (TraktSettings.TrendingMoviesHideRated) { LoadTrendingMovies(); } break; case ((int)TrendingContextMenuItem.Filters): if (GUICommon.ShowMovieFiltersMenu()) { UpdateButtonState(); LoadTrendingMovies(); } break; case ((int)TrendingContextMenuItem.Shouts): TraktHelper.ShowMovieShouts(selectedMovie); break; case ((int)TrendingContextMenuItem.Trailers): GUICommon.ShowMovieTrailersMenu(selectedMovie); break; case ((int)TrendingContextMenuItem.ChangeLayout): CurrentLayout = GUICommon.ShowLayoutMenu(CurrentLayout); break; case ((int)TrendingContextMenuItem.SearchWithMpNZB): string loadingParam = string.Format("search:{0}", selectedMovie.Title); GUIWindowManager.ActivateWindow((int)ExternalPluginWindows.MpNZB, loadingParam); break; case ((int)TrendingContextMenuItem.SearchTorrent): string loadPar = selectedMovie.Title; GUIWindowManager.ActivateWindow((int)ExternalPluginWindows.MyTorrents, loadPar); break; default: break; } base.OnShowContextMenu(); }