Exemplo n.º 1
0
        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;
        }