ItemChapters.xaml.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using MediaBrowser.Model.Dto;
  2. using MediaBrowser.UI.Controller;
  3. using MediaBrowser.UI.Controls;
  4. using MediaBrowser.UI.Playback;
  5. using MediaBrowser.UI.ViewModels;
  6. using System.Collections.Generic;
  7. using System.Collections.ObjectModel;
  8. using System.Linq;
  9. namespace MediaBrowser.Plugins.DefaultTheme.Controls.Details
  10. {
  11. /// <summary>
  12. /// Interaction logic for ItemChapters.xaml
  13. /// </summary>
  14. public partial class ItemChapters : BaseDetailsControl
  15. {
  16. /// <summary>
  17. /// Initializes a new instance of the <see cref="ItemChapters" /> class.
  18. /// </summary>
  19. public ItemChapters()
  20. {
  21. InitializeComponent();
  22. lstItems.ItemInvoked += lstItems_ItemInvoked;
  23. }
  24. /// <summary>
  25. /// LSTs the items_ item invoked.
  26. /// </summary>
  27. /// <param name="sender">The sender.</param>
  28. /// <param name="e">The e.</param>
  29. void lstItems_ItemInvoked(object sender, ItemEventArgs<object> e)
  30. {
  31. var chapterViewModel = (ChapterInfoDtoViewModel) e.Argument;
  32. UIKernel.Instance.PlaybackManager.Play(new PlayOptions
  33. {
  34. Items = new List<BaseItemDto> { Item },
  35. StartPositionTicks = chapterViewModel.Chapter.StartPositionTicks
  36. });
  37. }
  38. /// <summary>
  39. /// Called when [item changed].
  40. /// </summary>
  41. protected override void OnItemChanged()
  42. {
  43. const double height = 297;
  44. var width = ChapterInfoDtoViewModel.GetChapterImageWidth(Item, height, 528);
  45. var chapters = Item.Chapters ?? new List<ChapterInfoDto> { };
  46. lstItems.ItemsSource = new ObservableCollection<ChapterInfoDtoViewModel>(chapters.Select(i => new ChapterInfoDtoViewModel
  47. {
  48. Item = Item,
  49. Chapter = i,
  50. ImageWidth = width,
  51. ImageHeight = height,
  52. ImageDownloadOptions = new ImageOptions
  53. {
  54. MaxHeight = 400
  55. }
  56. }));
  57. }
  58. }
  59. }