private void ConfigureViewModelMappings() { _container = Globals.Instance.Container; ILogManager logManager = _container.Resolve <ILogManager>(); IMovieService movieService = _container.Resolve <IMovieService>(); ITvShowService tvShowService = _container.Resolve <ITvShowService>(); IPlaybackInfoService playbackInfoService = _container.Resolve <IPlaybackInfoService>(); ILoginService loginService = _container.Resolve <ILoginService>(); ISettingsService settingsService = _container.Resolve <ISettingsService>(); IJellyfinNavigationService navigationService = _container.Resolve <IJellyfinNavigationService>(); IReportProgressService reportProgressService = _container.Resolve <IReportProgressService>(); IPersonalizeService personalizeService = _container.Resolve <IPersonalizeService>(); _container.RegisterInstance(new MainViewModel(settingsService, navigationService)); _container.RegisterInstance(new MovieListViewModel(movieService, personalizeService, logManager)); _container.RegisterInstance(new MovieDetailViewModel(movieService, playbackInfoService, personalizeService, logManager)); _container.RegisterInstance(new TvShowListViewModel(tvShowService, personalizeService, logManager)); _container.RegisterInstance(new TvShowDetailViewModel(tvShowService, playbackInfoService, personalizeService, logManager)); _container.RegisterInstance(new TvShowEpisodeDetailViewModel(tvShowService, playbackInfoService, personalizeService, logManager)); _container.RegisterInstance(new MediaPlaybackViewModel(reportProgressService, logManager)); _container.RegisterInstance(new PlaybackConfirmationViewModel(playbackInfoService, personalizeService, logManager)); _container.RegisterInstance(new LoginViewModel(loginService, settingsService)); }
public MediaPlaybackViewModel(IReportProgressService reportProgressService, ILogManager logManager) { OSDUpdateTimer = new Timer(); OSDUpdateTimer.Interval = 1000; OSDUpdateTimer.AutoReset = true; OSDUpdateTimer.Elapsed += OsdUpdateTimerOnElapsed; OSDUpdateTimer.Start(); _reportProgressService = reportProgressService ?? throw new ArgumentNullException(nameof(reportProgressService)); _logManager = logManager ?? throw new ArgumentNullException(nameof(logManager)); ReportPlaybackStatusTimer = new Timer(); ReportPlaybackStatusTimer.Interval = 60 * 1000; ReportPlaybackStatusTimer.AutoReset = true; ReportPlaybackStatusTimer.Elapsed += ReportPlaybackStatusTimer_Elapsed; ReportPlaybackStatusTimer.Start(); IsPlaying = true; }