protected override async Task PrepareAsync() { await base.PrepareAsync(); AbstractItemsScreenData.PlayableItemCreatorDelegate picd = mi => new RecordingItem(mi) { Command = new MethodDelegateCommand(() => PlayItemsModel.CheckQueryPlayAction(mi)) }; _defaultScreen = new RecordingsShowItemsScreenData(picd); _availableScreens = new List <AbstractScreenData> { _defaultScreen, new RecordingsFilterByChannelScreenData(), //new VideosFilterByActorScreenData(), //new VideosFilterByDirectorScreenData(), //new VideosFilterByWriterScreenData(), //new VideosFilterByGenreScreenData(), //new VideosFilterByYearScreenData(), //new VideosFilterBySystemScreenData(), new RecordingsSimpleSearchScreenData(picd), }; _defaultSorting = new SortByRecordingDateDesc(); _availableSortings = new List <Sorting> { _defaultSorting, new SortByTitle(), //new VideoSortByFirstGenre(), //new VideoSortByDuration(), //new VideoSortByFirstActor(), //new VideoSortByFirstDirector(), //new VideoSortByFirstWriter(), //new VideoSortBySize(), //new VideoSortByAspectRatio(), //new SortBySystem(), }; var optionalMias = new[] { MovieAspect.ASPECT_ID, EpisodeAspect.ASPECT_ID, AudioAspect.ASPECT_ID, VideoAspect.ASPECT_ID, VideoStreamAspect.ASPECT_ID, VideoAudioStreamAspect.ASPECT_ID, ImageAspect.ASPECT_ID, GenreAspect.ASPECT_ID }.Union(MediaNavigationModel.GetMediaSkinOptionalMIATypes(MediaNavigationMode)); IFilterTree filterTree = new SimpleFilterTree(); if (_filter != null) { filterTree.AddFilter(_filter); } if (_applyUserFilter) { var userFilter = UserHelper.GetUserRestrictionFilter(_necessaryMias.ToList()); if (userFilter != null) { filterTree.AddFilter(userFilter); } } _customRootViewSpecification = new StackingViewSpecification(_viewName, filterTree, _necessaryMias, optionalMias, true) { MaxNumItems = Consts.MAX_NUM_ITEMS_VISIBLE }; }