コード例 #1
0
        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
            };
        }