private async Task RegisterTypes() { // Models var hohoemaApp = await HohoemaApp.Create(EventAggregator); Container.RegisterInstance(hohoemaApp); Container.RegisterInstance(new PageManager(hohoemaApp, NavigationService, hohoemaApp.UserSettings.AppearanceSettings, hohoemaApp.Playlist)); Container.RegisterInstance(hohoemaApp.ContentFinder); Container.RegisterInstance(hohoemaApp.Playlist); Container.RegisterInstance(hohoemaApp.OtherOwneredMylistManager); // 非同期更新機能の同時実行タスク数を指定 var deviceFamily = Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily; BackgroundUpdater.MaxTaskSlotCount = deviceFamily.EndsWith("Mobile") ? 1u : 2u; #if DEBUG // BackgroundUpdater.MaxTaskSlotCount = 1; #endif // TODO: プレイヤーウィンドウ上で管理する // var backgroundTask = MediaBackgroundTask.Create(); // Container.RegisterInstance(backgroundTask); // ViewModels Container.RegisterType <ViewModels.MenuNavigatePageBaseViewModel>(new ContainerControlledLifetimeManager()); Container.RegisterType <ViewModels.RankingCategoryPageViewModel>(new ContainerControlledLifetimeManager()); Container.RegisterType <ViewModels.HistoryPageViewModel>(new ContainerControlledLifetimeManager()); Container.RegisterType <ViewModels.UserVideoPageViewModel>(new ContainerControlledLifetimeManager()); Container.RegisterType <ViewModels.SearchPageViewModel>(new ContainerControlledLifetimeManager()); Container.RegisterType <ViewModels.MylistPageViewModel>(new ContainerControlledLifetimeManager()); // Container.RegisterType<ViewModels.UserVideoPageViewModel>(new ContainerControlledLifetimeManager()); Container.RegisterType <ViewModels.FeedVideoListPageViewModel>(new ContainerControlledLifetimeManager()); Container.RegisterType <ViewModels.UserMylistPageViewModel>(new ContainerControlledLifetimeManager()); Container.RegisterType <ViewModels.CacheManagementPageViewModel>(new ContainerControlledLifetimeManager()); // Container.RegisterType<ViewModels.PortalPageViewModel>(new ContainerControlledLifetimeManager()); // Service Container.RegisterType <Views.Service.RankingChoiceDialogService>(); Container.RegisterInstance(new Views.Service.ToastNotificationService()); Container.RegisterInstance(new Views.Service.MylistRegistrationDialogService(hohoemaApp)); Container.RegisterInstance(new Views.Service.EditMylistGroupDialogService()); Container.RegisterInstance(new Views.Service.AcceptCacheUsaseDialogService()); Container.RegisterInstance(new Views.Service.TextInputDialogService()); Container.RegisterInstance(new Views.Service.ContentSelectDialogDefaultSet()); // return Task.CompletedTask; }
/* * private void Context_DoneDownload(NicoVideoDownloadContext sender, NiconicoDownloadEventArgs args) * { * var hohoemaApp = Container.Resolve<HohoemaApp>(); * var toastService = Container.Resolve<Views.Service.ToastNotificationService>(); * var pageManager = Container.Resolve<PageManager>(); * * try * { * var videoData = Models.Db.VideoInfoDb.Get(args.RawVideoId); * * if (videoData != null) * { * toastService.ShowText( * videoData.Title, * $"キャッシュが完了、このメッセージをタップして再生開始", * toastActivatedAction: () => * { * hohoemaApp.Playlist.DefaultPlaylist.AddVideo(args.RawVideoId, "", args.Quality); * } * ); * } * } * catch { } * } */ private async Task RegisterTypes() { // Service var dialogService = new Services.HohoemaDialogService(); Container.RegisterInstance(dialogService); Container.RegisterInstance(new Views.Service.ToastNotificationService()); // Models var secondaryViewMan = new HohoemaViewManager(); var hohoemaApp = await HohoemaApp.Create(EventAggregator, secondaryViewMan, dialogService); Container.RegisterInstance(secondaryViewMan); Container.RegisterInstance(hohoemaApp); Container.RegisterInstance(new PageManager(hohoemaApp, NavigationService, hohoemaApp.UserSettings.AppearanceSettings, hohoemaApp.Playlist, secondaryViewMan, dialogService)); Container.RegisterInstance(hohoemaApp.ContentProvider); Container.RegisterInstance(hohoemaApp.Playlist); Container.RegisterInstance(hohoemaApp.OtherOwneredMylistManager); Container.RegisterInstance(hohoemaApp.FeedManager); Container.RegisterInstance(hohoemaApp.CacheManager); Container.RegisterInstance(hohoemaApp.UserSettings); Container.RegisterInstance(new Models.Niconico.Live.NicoLiveSubscriber(hohoemaApp)); Container.RegisterInstance(new Microsoft.Toolkit.Uwp.Helpers.LocalObjectStorageHelper()); #if DEBUG // BackgroundUpdater.MaxTaskSlotCount = 1; #endif // TODO: プレイヤーウィンドウ上で管理する // var backgroundTask = MediaBackgroundTask.Create(); // Container.RegisterInstance(backgroundTask); // ViewModels Container.RegisterType <ViewModels.RankingCategoryListPageViewModel>(new ContainerControlledLifetimeManager()); /* * Container.RegisterType<ViewModels.SearchPageViewModel>(new ContainerControlledLifetimeManager()); * Container.RegisterType<ViewModels.MenuNavigatePageBaseViewModel>(new ContainerControlledLifetimeManager()); * Container.RegisterType<ViewModels.WatchHistoryPageViewModel>(new ContainerControlledLifetimeManager()); * Container.RegisterType<ViewModels.UserVideoPageViewModel>(new ContainerControlledLifetimeManager()); * Container.RegisterType<ViewModels.MylistPageViewModel>(new ContainerControlledLifetimeManager()); */ /* * Container.RegisterType<ViewModels.SearchPageViewModel>(new ContainerControlledLifetimeManager()); * // Container.RegisterType<ViewModels.UserVideoPageViewModel>(new ContainerControlledLifetimeManager()); * Container.RegisterType<ViewModels.FeedVideoListPageViewModel>(new ContainerControlledLifetimeManager()); * Container.RegisterType<ViewModels.UserMylistPageViewModel>(new ContainerControlledLifetimeManager()); * Container.RegisterType<ViewModels.CacheManagementPageViewModel>(new ContainerControlledLifetimeManager()); * // Container.RegisterType<ViewModels.PortalPageViewModel>(new ContainerControlledLifetimeManager()); */ Resources.Add("IsXbox", Helpers.DeviceTypeHelper.IsXbox); Resources.Add("IsMobile", Helpers.DeviceTypeHelper.IsMobile); Resources.Add("IsCacheEnabled", hohoemaApp.UserSettings.CacheSettings.IsEnableCache); Resources.Add("IsTVModeEnabled", Helpers.DeviceTypeHelper.IsXbox || hohoemaApp.UserSettings.AppearanceSettings.IsForceTVModeEnable); // return Task.CompletedTask; }