/// <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); }
/// <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; }
/// <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; } }
/// <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(); }
/// <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(); }
public HomeController(ISubtitlesService subtitlesService) { this.subtitlesService = subtitlesService; }
/// <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(); }); } }); }