public void Navigate(Item item) { Application.UIDeferredInvokeIfRequired(() => { Logger.ReportVerbose("Navigating to {0} item type {1}", item.Name, item.GetType()); currentContextMenu = null; //any sort of navigation should reset our context menu so it will properly re-evaluate on next ref if (item.BaseItem is Person) { NavigateToActor(item); return; } if (item.BaseItem is Show) { if ((item.HasDataForDetailPage) || this.Config.AlwaysShowDetailsPage) { item.NavigatingInto(); if (Config.EnableThemeBackgrounds && (currentPlaybackController == null || !currentPlaybackController.IsPlaying)) { BackdropController.PlayAsync(item.BaseItem); } // go to details screen var properties = new Dictionary<string, object>(); properties["Application"] = this; properties["Item"] = item; properties["ThemeConfig"] = CurrentTheme.Config; OpenMCMLPage(item.BaseItem.CustomUI ?? CurrentTheme.DetailPage, properties); return; } } var folder = item as MediaBrowser.Library.FolderModel; if (folder != null) { if (!Config.Instance.RememberIndexing) { folder.DisplayPrefs.IndexBy = MediaBrowser.Library.Localization.LocalizedStrings.Instance.GetString("NoneDispPref"); } if (Config.Instance.AutoEnterSingleDirs && (folder.Folder.Children.Count == 1)) { if (folder.IsRoot) //special breadcrumb if we are going from a single item root session.AddBreadcrumb("DIRECTENTRY"); else session.AddBreadcrumb(folder.Name); folder.NavigatingInto(); //make sure we validate CurrentFolder = folder; Navigate(folder.Children[0]); } else { OpenFolderPage(folder); } } else { Resume(item); } } ); }
public void Navigate(Item item) { currentContextMenu = null; //any sort of navigation should reset our context menu so it will properly re-evaluate on next ref if (item.BaseItem is Person) { NavigateToActor(item); return; } if (item.BaseItem is Show) { if ((item.HasDataForDetailPage) || this.Config.AlwaysShowDetailsPage) { item.NavigatingInto(); // go to details screen var properties = new Dictionary<string, object>(); properties["Application"] = this; properties["Item"] = item; properties["ThemeConfig"] = CurrentTheme.Config; session.GoToPage(item.BaseItem.CustomUI ?? CurrentTheme.DetailPage, properties); return; } } var folder = item as MediaBrowser.Library.FolderModel; if (folder != null) { if (!Config.Instance.RememberIndexing) { folder.DisplayPrefs.IndexBy = MediaBrowser.Library.Localization.LocalizedStrings.Instance.GetString("NoneDispPref"); } if (Config.Instance.AutoEnterSingleDirs && (folder.Folder.Children.Count == 1)) { if (folder.IsRoot) //special breadcrumb if we are going from a single item root session.AddBreadcrumb("DIRECTENTRY"); else session.AddBreadcrumb(folder.Name); folder.NavigatingInto(); //make sure we validate Navigate(folder.Children[0]); } else { OpenFolderPage(folder); } } else { Resume(item); } }