Exemple #1
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="showService">The show service</param>
        /// <param name="subtitlesService">The subtitles service</param>
        /// <param name="showTrailerService">The show trailer service</param>
        /// <param name="cacheService">The cache service</param>
        public ShowDetailsViewModel(IShowService showService, ISubtitlesService subtitlesService,
                                    IShowTrailerService showTrailerService, ICacheService cacheService)
        {
            _showTrailerService = showTrailerService;
            _showService        = showService;
            Show = new ShowJson();
            RegisterCommands();
            RegisterMessages();
            CancellationLoadingTrailerToken = new CancellationTokenSource();
            CancellationLoadingToken        = new CancellationTokenSource();
            var downloadService = new DownloadShowService <EpisodeShowJson>(cacheService);

            DownloadShow = new DownloadShowViewModel(downloadService, subtitlesService, cacheService);
        }
Exemple #2
0
 /// <summary>
 /// Initializes a new instance of the WindowViewModel class.
 /// </summary>
 /// <param name="applicationService">Instance of Application state</param>
 /// <param name="userService">Instance of movie history service</param>
 /// <param name="subtitlesService">Instance of subtitles service</param>
 /// <param name="cacheService">Instance of cache service</param>
 /// <param name="manager">The notification manager</param>
 public WindowViewModel(IApplicationService applicationService, IUserService userService,
                        ISubtitlesService subtitlesService,
                        ICacheService cacheService, NotificationMessageManager manager)
 {
     _cacheService       = cacheService;
     _manager            = manager;
     _subtitlesService   = subtitlesService;
     _userService        = userService;
     _dialogCoordinator  = DialogCoordinator.Instance;
     _applicationService = applicationService;
     RegisterMessages();
     RegisterCommands();
     AppDomain.CurrentDomain.UnhandledException += OnUnhandledException;
 }
Exemple #3
0
 /// <summary>
 /// Initializes a new instance of the MovieDetailsViewModel class.
 /// </summary>
 /// <param name="movieService">Service used to interact with movies</param>
 /// <param name="movieTrailerService">The movie trailer service</param>
 /// <param name="subtitlesService">The subtitles service</param>
 public MovieDetailsViewModel(IMovieService movieService, IMovieTrailerService movieTrailerService,
                              ISubtitlesService subtitlesService)
 {
     _movieTrailerService = movieTrailerService;
     _movieService        = movieService;
     Movie                           = new MovieJson();
     SimilarMovies                   = new ObservableCollection <MovieLightJson>();
     SubtitlesService                = subtitlesService;
     CancellationLoadingToken        = new CancellationTokenSource();
     CancellationLoadingTrailerToken = new CancellationTokenSource();
     DownloadMovie                   = new DownloadMovieViewModel(subtitlesService, new DownloadMovieService <MovieJson>());
     RegisterMessages();
     RegisterCommands();
 }
        /// <summary>
        /// Initializes a new instance of the ApplicationSettingsViewModel class.
        /// </summary>
        /// <param name="userService">User service</param>
        /// <param name="subtitlesService">Subtitles service</param>
        public ApplicationSettingsViewModel(IUserService userService, ISubtitlesService subtitlesService)
        {
            _userService = userService;
            Version      = Constants.AppVersion;

            RefreshCacheSize();
            RegisterCommands();
            SubtitlesColor = Color.FromRgb(255, 255, 255);

            Task.Run(async() =>
            {
                DownloadLimit = await _userService.GetDownloadLimit();
                UploadLimit   = await _userService.GetUploadLimit();
                var defaultSubtitleLanguage = await _userService.GetDefaultSubtitleLanguage();
                DefaultHdQuality            = await _userService.GetDefaultHdQuality();
                try
                {
                    AvailableSubtitlesLanguages = new ObservableRangeCollection <string>();
                    var languages = (await subtitlesService.GetSubLanguages()).Select(a => a.LanguageName)
                                    .OrderBy(a => a)
                                    .ToList();
                    DispatcherHelper.CheckBeginInvokeOnUI(() =>
                    {
                        languages.Insert(0,
                                         LocalizationProviderHelper.GetLocalizedValue <string>("NoneLabel"));
                        AvailableSubtitlesLanguages.AddRange(
                            new ObservableRangeCollection <string>(languages));
                        DefaultSubtitleLanguage = AvailableSubtitlesLanguages.Any(a => a == defaultSubtitleLanguage)
                            ? defaultSubtitleLanguage
                            : LocalizationProviderHelper.GetLocalizedValue <string>("NoneLabel");
                    });
                }
                catch (Exception ex)
                {
                    Logger.Error(ex);
                }
            });
        }
        /// <summary>
        /// Initializes a new instance of the MediaPlayerViewModel class.
        /// </summary>
        /// <param name="chromecastService">The Chromecast service</param>
        /// <param name="subtitlesService"></param>
        /// <param name="cacheService">Caching service</param>
        /// <param name="mediaPath">Media path</param>
        /// <param name="mediaName">Media name</param>
        /// <param name="type">Media type</param>
        /// <param name="mediaStoppedAction">Media action to execute when media has been stopped</param>
        /// <param name="mediaEndedAction">Media action to execute when media has ended</param>
        /// <param name="playingProgress">Media playing progress</param>
        /// <param name="bufferProgress">The buffer progress</param>
        /// <param name="pieceAvailability">The piece availability</param>
        /// <param name="bandwidthRate">THe bandwidth rate</param>
        /// <param name="currentSubtitle">Subtitle</param>
        /// <param name="subtitles">Subtitles</param>
        public MediaPlayerViewModel(IChromecastService chromecastService, ISubtitlesService subtitlesService,
                                    ICacheService cacheService,
                                    string mediaPath,
                                    string mediaName, MediaType type, Action mediaStoppedAction,
                                    Action mediaEndedAction, IProgress <double> playingProgress = null, Progress <double> bufferProgress = null,
                                    Progress <PieceAvailability> pieceAvailability = null,
                                    Progress <BandwidthRate> bandwidthRate         = null, Subtitle currentSubtitle = null,
                                    IEnumerable <Subtitle> subtitles = null)
        {
            Logger.Info(
                $"Loading media : {mediaPath}.");
            RegisterCommands();
            _chromecastService = chromecastService;
            _chromecastService.StatusChanged += OnCastMediaStatusChanged;
            _subtitlesService   = subtitlesService;
            _cacheService       = cacheService;
            MediaPath           = mediaPath;
            MediaName           = mediaName;
            MediaType           = type;
            PieceAvailability   = pieceAvailability;
            _mediaStoppedAction = mediaStoppedAction;
            _mediaEndedAction   = mediaEndedAction;
            SubtitleFilePath    = currentSubtitle?.FilePath;
            BufferProgress      = bufferProgress;
            BandwidthRate       = bandwidthRate;
            ShowSubtitleButton  = MediaType != MediaType.Trailer;
            _subtitles          = subtitles;
            _playingProgress    = playingProgress;

            if (currentSubtitle != null && currentSubtitle.Sub.SubtitleId != "none" &&
                !string.IsNullOrEmpty(currentSubtitle.FilePath))
            {
                IsSubtitleChosen = true;
                CurrentSubtitle  = currentSubtitle.Sub;
                SubtitleItems    = _subtitlesService.LoadCaptions(currentSubtitle.FilePath);
            }
        }
        /// <summary>
        /// Initializes a new instance of the MediaPlayerViewModel class.
        /// </summary>
        /// <param name="chromecastService">The Chromecast service</param>
        /// <param name="subtitlesService"></param>
        /// <param name="cacheService">Caching service</param>
        /// <param name="mediaPath">Media path</param>
        /// <param name="mediaName">Media name</param>
        /// <param name="type">Media type</param>
        /// <param name="mediaStoppedAction">Media action to execute when media has been stopped</param>
        /// <param name="mediaEndedAction">Media action to execute when media has ended</param>
        /// <param name="playingProgress">Media playing progress</param>
        /// <param name="bufferProgress">The buffer progress</param>
        /// <param name="bandwidthRate">THe bandwidth rate</param>
        /// <param name="currentSubtitle">Subtitle</param>
        /// <param name="subtitles">Subtitles</param>
        public MediaPlayerViewModel(IChromecastService chromecastService, ISubtitlesService subtitlesService,
                                    ICacheService cacheService,
                                    string mediaPath,
                                    string mediaName, MediaType type, Action mediaStoppedAction,
                                    Action mediaEndedAction, IProgress <double> playingProgress = null, Progress <double> bufferProgress = null,
                                    Progress <BandwidthRate> bandwidthRate = null, Subtitle currentSubtitle = null,
                                    IEnumerable <Subtitle> subtitles       = null)
        {
            Logger.Info(
                $"Loading media : {mediaPath}.");
            RegisterCommands();
            _chromecastService = chromecastService;
            _chromecastService.StatusChanged += OnCastMediaStatusChanged;
            _subtitlesService   = subtitlesService;
            _cacheService       = cacheService;
            MediaPath           = mediaPath;
            MediaName           = mediaName;
            MediaType           = type;
            _mediaStoppedAction = mediaStoppedAction;
            _mediaEndedAction   = mediaEndedAction;
            BufferProgress      = bufferProgress;
            BandwidthRate       = bandwidthRate;
            ShowSubtitleButton  = MediaType != MediaType.Trailer;
            Volume           = 1d;
            _playingProgress = playingProgress;
            _subtitles       = new ObservableCollection <Subtitle>();
            if (subtitles != null)
            {
                _subtitles = new ObservableCollection <Subtitle>(subtitles);
            }

            if (currentSubtitle != null && currentSubtitle.LanguageName != LocalizationProviderHelper.GetLocalizedValue <string>("NoneLabel") &&
                !string.IsNullOrEmpty(currentSubtitle.FilePath))
            {
                CurrentSubtitle = currentSubtitle;
            }
        }
Exemple #7
0
 /// <summary>
 /// Initializes a new instance of the WindowViewModel class.
 /// </summary>
 /// <param name="applicationService">Instance of Application state</param>
 /// <param name="userService">Instance of movie history service</param>
 /// <param name="subtitlesService">Instance of subtitles service</param>
 public WindowViewModel(IApplicationService applicationService, IUserService userService, ISubtitlesService subtitlesService)
 {
     _subtitlesService   = subtitlesService;
     _userService        = userService;
     _dialogCoordinator  = DialogCoordinator.Instance;
     _applicationService = applicationService;
     RegisterMessages();
     RegisterCommands();
     AppDomain.CurrentDomain.UnhandledException += OnUnhandledException;
     ClearFolders();
 }
Exemple #8
0
 /// <summary>
 /// Initializes a new instance of the MovieDetailsViewModel class.
 /// </summary>
 /// <param name="movieService">Service used to interact with movies</param>
 /// <param name="languageService">Language service</param>
 /// <param name="movieTrailerService">The movie trailer service</param>
 /// <param name="subtitlesService">The subtitles service</param>
 public MovieDetailsViewModel(IMovieService movieService, ILanguageService languageService, IMovieTrailerService movieTrailerService, ISubtitlesService subtitlesService)
 {
     _movieTrailerService             = movieTrailerService;
     _movieService                    = movieService;
     _subtitlesService                = subtitlesService;
     _cancellationLoadingToken        = new CancellationTokenSource();
     _cancellationLoadingTrailerToken = new CancellationTokenSource();
     DownloadMovie                    = new DownloadMovieViewModel(subtitlesService, languageService);
     RegisterMessages();
     RegisterCommands();
 }
Exemple #9
0
 public HomeController(ISubtitlesService subtitlesService)
 {
     this.subtitlesService = subtitlesService;
 }
Exemple #10
0
        /// <summary>
        /// Initializes a new instance of the ApplicationSettingsViewModel class.
        /// </summary>
        /// <param name="userService">User service</param>
        /// <param name="subtitlesService">Subtitles service</param>
        public ApplicationSettingsViewModel(IUserService userService, ISubtitlesService subtitlesService)
        {
            _userService = userService;
            Version      = Constants.AppVersion;

            RefreshCacheSize();
            RegisterCommands();
            SubtitlesColor         = Color.FromRgb(255, 255, 255);
            ShowTraktDialogCommand = new RelayCommand(async() =>
            {
                await Messenger.Default.SendAsync(new ShowTraktDialogMessage());
            });

            Task.Run(async() =>
            {
                try
                {
                    SubtitleSizes = new ObservableCollection <SubtitleSize>
                    {
                        new SubtitleSize
                        {
                            Label = LocalizationProviderHelper.GetLocalizedValue <string>("Bigger"),
                            Size  = 6
                        },
                        new SubtitleSize
                        {
                            Label = LocalizationProviderHelper.GetLocalizedValue <string>("Big"),
                            Size  = 12
                        },
                        new SubtitleSize
                        {
                            Label = LocalizationProviderHelper.GetLocalizedValue <string>("Normal"),
                            Size  = 16
                        },
                        new SubtitleSize
                        {
                            Label = LocalizationProviderHelper.GetLocalizedValue <string>("Small"),
                            Size  = 18
                        },
                        new SubtitleSize
                        {
                            Label = LocalizationProviderHelper.GetLocalizedValue <string>("Smaller"),
                            Size  = 20
                        }
                    };

                    SelectedSubtitleSize        = SubtitleSizes.FirstOrDefault(a => a.Size == 16);
                    DownloadLimit               = await _userService.GetDownloadLimit();
                    UploadLimit                 = await _userService.GetUploadLimit();
                    var defaultSubtitleLanguage = await _userService.GetDefaultSubtitleLanguage();
                    DefaultHdQuality            = await _userService.GetDefaultHdQuality();
                    LoadingSubtitles            = true;
                    AvailableSubtitlesLanguages = new ObservableRangeCollection <string>();
                    var languages               = (await subtitlesService.GetSubLanguages()).Select(a => a.LanguageName)
                                                  .OrderBy(a => a)
                                                  .ToList();
                    DispatcherHelper.CheckBeginInvokeOnUI(() =>
                    {
                        languages.Insert(0,
                                         LocalizationProviderHelper.GetLocalizedValue <string>("NoneLabel"));
                        AvailableSubtitlesLanguages.AddRange(
                            new ObservableRangeCollection <string>(languages));
                        DefaultSubtitleLanguage = AvailableSubtitlesLanguages.Any(a => a == defaultSubtitleLanguage)
                            ? defaultSubtitleLanguage
                            : LocalizationProviderHelper.GetLocalizedValue <string>("NoneLabel");
                        LoadingSubtitles = false;
                    });
                }
                catch (Exception ex)
                {
                    Logger.Error(ex);
                    DispatcherHelper.CheckBeginInvokeOnUI(() =>
                    {
                        LoadingSubtitles = false;
                        AvailableSubtitlesLanguages.Insert(0,
                                                           LocalizationProviderHelper.GetLocalizedValue <string>("NoneLabel"));
                        DefaultSubtitleLanguage = AvailableSubtitlesLanguages.FirstOrDefault();
                    });
                }
            });
        }