public static bool ShowTraktExtMovieMenu(string title, string year, string imdbid, bool isWatched, string fanart, SearchPeople people, bool showAll)
{
var dlg = (IDialogbox)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU);
dlg.Reset();
dlg.SetHeading(GUIUtils.PluginName());
GUIListItem pItem = new GUIListItem(Translation.Comments);
dlg.Add(pItem);
pItem.ItemId = (int)TraktMenuItems.Shouts;
pItem = new GUIListItem(Translation.Rate);
dlg.Add(pItem);
pItem.ItemId = (int)TraktMenuItems.Rate;
pItem = new GUIListItem(Translation.RelatedMovies);
dlg.Add(pItem);
pItem.ItemId = (int)TraktMenuItems.Related;
pItem = new GUIListItem(Translation.AddToWatchList);
dlg.Add(pItem);
pItem.ItemId = (int)TraktMenuItems.AddToWatchList;
pItem = new GUIListItem(Translation.AddToList);
dlg.Add(pItem);
pItem.ItemId = (int)TraktMenuItems.AddToCustomList;
pItem = new GUIListItem(Translation.Cast);
dlg.Add(pItem);
pItem.ItemId = (int)TraktMenuItems.Cast;
pItem = new GUIListItem(Translation.Crew);
dlg.Add(pItem);
pItem.ItemId = (int)TraktMenuItems.Crew;
// Show Search By...
if (people != null && people.Count != 0)
{
pItem = new GUIListItem(Translation.SearchBy + "...");
dlg.Add(pItem);
pItem.ItemId = (int)TraktMenuItems.SearchBy;
}
// also show non-context sensitive items related to movies
if (showAll)
{
// might want to check your recently watched, stats etc
pItem = new GUIListItem(Translation.UserProfile);
dlg.Add(pItem);
pItem.ItemId = (int)TraktMenuItems.UserProfile;
pItem = new GUIListItem(Translation.Network);
dlg.Add(pItem);
pItem.ItemId = (int)TraktMenuItems.Network;
pItem = new GUIListItem(Translation.Recommendations);
dlg.Add(pItem);
pItem.ItemId = (int)TraktMenuItems.Recommendations;
pItem = new GUIListItem(Translation.Trending);
dlg.Add(pItem);
pItem.ItemId = (int)TraktMenuItems.Trending;
pItem = new GUIListItem(Translation.Popular);
dlg.Add(pItem);
pItem.ItemId = (int)TraktMenuItems.Popular;
pItem = new GUIListItem(Translation.Anticipated);
dlg.Add(pItem);
pItem.ItemId = (int)TraktMenuItems.Anticipated;
pItem = new GUIListItem(Translation.WatchList);
dlg.Add(pItem);
pItem.ItemId = (int)TraktMenuItems.WatchList;
pItem = new GUIListItem(Translation.Lists);
dlg.Add(pItem);
pItem.ItemId = (int)TraktMenuItems.Lists;
}
// Show Context Menu
dlg.DoModal(GUIWindowManager.ActiveWindow);
if (dlg.SelectedId < 0) return false;
switch (dlg.SelectedId)
{
case ((int)TraktMenuItems.Rate):
TraktLogger.Info("Displaying rate dialog for movie. Title = '{0}', Year = '{1}', IMDb ID = '{2}'", title, year.ToLogString(), imdbid.ToLogString());
var movie = new TraktSyncMovieRated
{
Ids = new TraktMovieId { Imdb = imdbid.ToNullIfEmpty() },
Title = title,
Year = year.ToNullableInt32()
};
int rating = GUIUtils.ShowRateDialog<TraktSyncMovieRated>(movie);
// update local databases
if (rating >= 0)
{
switch (GUIWindowManager.ActiveWindow)
{
case (int)ExternalPluginWindows.MovingPictures:
TraktHandlers.MovingPictures.SetUserRating(rating);
break;
case (int)ExternalPluginWindows.MyFilms:
TraktHandlers.MyFilmsHandler.SetUserRating(rating, title, year.ToNullableInt32(), imdbid.ToNullIfEmpty());
break;
}
if (rating == 0)
TraktCache.RemoveMovieFromRatings(movie);
else
TraktCache.AddMovieToRatings(movie, rating);
}
break;
case ((int)TraktMenuItems.Shouts):
TraktLogger.Info("Displaying Shouts for movie. Title = '{0}', Year = '{1}', IMDb ID = '{2}'", title, year.ToLogString(), imdbid.ToLogString());
TraktHelper.ShowMovieShouts(imdbid, title, year, fanart);
break;
case ((int)TraktMenuItems.Related):
TraktLogger.Info("Displaying Related Movies for. Title = '{0}', Year = '{1}', IMDb ID = '{2}'", title, year.ToLogString(), imdbid.ToLogString());
TraktHelper.ShowRelatedMovies(title, year, imdbid);
break;
case ((int)TraktMenuItems.AddToWatchList):
TraktLogger.Info("Adding movie to Watchlist. Title = '{0}', Year = '{1}', IMDb ID = '{2}'", title, year.ToLogString(), imdbid.ToLogString());
TraktHelper.AddMovieToWatchList(title, year, imdbid, true);
break;
case ((int)TraktMenuItems.AddToCustomList):
TraktLogger.Info("Adding movie to Custom List. Title = '{0}', Year = '{1}', IMDb ID = '{2}'", title, year.ToLogString(), imdbid.ToLogString());
TraktHelper.AddRemoveMovieInUserList(title, year, imdbid, false);
break;
case ((int)TraktMenuItems.Cast):
TraktLogger.Info("Displaying Cast for movie. Title = '{0}', Year = '{1}', IMDb ID = '{2}'", title, year.ToLogString(), imdbid.ToLogString());
GUICreditsMovie.Movie = null;
GUICreditsMovie.Type = GUICreditsMovie.CreditType.Cast;
GUICreditsMovie.Fanart = fanart;
GUIWindowManager.ActivateWindow((int)TraktGUIWindows.CreditsMovie, imdbid);
break;
case ((int)TraktMenuItems.Crew):
TraktLogger.Info("Displaying Crew for movie. Title = '{0}', Year = '{1}', IMDb ID = '{2}'", title, year.ToLogString(), imdbid.ToLogString());
GUICreditsMovie.Movie = null;
GUICreditsMovie.Type = GUICreditsMovie.CreditType.Crew;
GUICreditsMovie.Fanart = fanart;
GUIWindowManager.ActivateWindow((int)TraktGUIWindows.CreditsMovie, imdbid);
break;
case ((int)TraktMenuItems.SearchBy):
ShowSearchByMenu(people, title, fanart);
break;
case ((int)TraktMenuItems.UserProfile):
GUIWindowManager.ActivateWindow((int)TraktGUIWindows.UserProfile);
break;
case ((int)TraktMenuItems.Network):
GUIWindowManager.ActivateWindow((int)TraktGUIWindows.Network);
break;
case ((int)TraktMenuItems.Recommendations):
GUIWindowManager.ActivateWindow((int)TraktGUIWindows.RecommendationsMovies);
break;
case ((int)TraktMenuItems.Trending):
GUIWindowManager.ActivateWindow((int)TraktGUIWindows.TrendingMovies);
break;
case ((int)TraktMenuItems.Popular):
GUIWindowManager.ActivateWindow((int)TraktGUIWindows.PopularMovies);
break;
case ((int)TraktMenuItems.Anticipated):
GUIWindowManager.ActivateWindow((int)TraktGUIWindows.AnticipatedMovies);
break;
case ((int)TraktMenuItems.WatchList):
GUIWindowManager.ActivateWindow((int)TraktGUIWindows.WatchedListMovies);
break;
case ((int)TraktMenuItems.Lists):
GUIWindowManager.ActivateWindow((int)TraktGUIWindows.CustomLists);
break;
}
return true;
}