private void SetupSaveWithPropertyChanged() { NGSettings.PropertyChangedAsObservable() .Throttle(TimeSpan.FromSeconds(1)) .Subscribe(e => _ = RankingSettings.Save()); RankingSettings.PropertyChangedAsObservable() .Throttle(TimeSpan.FromSeconds(1)) .Subscribe(e => _ = RankingSettings.Save()); CacheSettings.PropertyChangedAsObservable() .Throttle(TimeSpan.FromSeconds(1)) .Subscribe(e => _ = CacheSettings.Save()); AppearanceSettings.PropertyChangedAsObservable() .Throttle(TimeSpan.FromSeconds(1)) .Subscribe(e => _ = AppearanceSettings.Save()); ActivityFeedSettings.PropertyChangedAsObservable() .Throttle(TimeSpan.FromSeconds(1)) .Subscribe(e => _ = ActivityFeedSettings.Save()); PlayerSettings.PropertyChangedAsObservable() .Throttle(TimeSpan.FromSeconds(1)) .Subscribe(e => _ = PlayerSettings.Save()); new[] { PinSettings.PropertyChangedAsObservable().ToUnit(), PinSettings.Pins.CollectionChangedAsObservable().ToUnit(), PinSettings.Pins.ObserveElementPropertyChanged().ToUnit() } .Merge() .Throttle(TimeSpan.FromSeconds(1)) .Subscribe(pair => _ = PinSettings.Save()); }
public async Task Save() { await RankingSettings.Save(); await PlayerSettings.Save(); await NGSettings.Save(); await CacheSettings.Save(); await PlaylistSettings.Save(); await AppearanceSettings.Save(); await ActivityFeedSettings.Save(); await PinSettings.Save(); }
public HohoemaAlertClient(ActivityFeedSettings feedSettings) { feedSettings.ObserveProperty(x => x.IsLiveAlertEnabled) .Subscribe(x => { IsLiveAlertEnabled = x; if (IsLiveAlertEnabled) { StartAlert(NiconicoAlertServiceType.Live); } else { EndAlert(); } }); AlertClient.VideoRecieved += (sender, args) => { Debug.WriteLine("new video recieved!: " + args.Id); var toastService = App.Current.Container.Resolve <ToastNotificationService>(); /* * var nicoInfo = await ContentProvider.GetNicoVideoInfo(args.Id); * if (nicoInfo != null) * { * toastService.ShowText($"ニコニコ新着動画", $"{nicoInfo.Title} が投稿されました", * luanchContent: "niconico://" + nicoInfo.RawVideoId * ); * } */ }; AlertClient.LiveRecieved += async(sender, args) => { var liveId = $"lv{args.Id}"; Debug.WriteLine("new live recieved!: " + liveId); var toastService = App.Current.Container.Resolve <ToastNotificationService>(); if (CurrentUserFollows.GetFollowCommunities().Any(x => x == args.CommunityId)) { var hohoemaApp = App.Current.Container.Resolve <HohoemaApp>(); var liveStatus = await hohoemaApp.NiconicoContext.Live.GetPlayerStatusAsync(liveId); toastService.ShowText($"{liveStatus.Program.BroadcasterName} さんのニコ生開始", $"{liveStatus.Program.Title}", luanchContent: "niconico://" + liveId ); } }; AlertClient.Connected += (sender, _) => { Debug.WriteLine("ニコニコアラートへの接続を開始"); }; AlertClient.Disconnected += (sender, _) => { Debug.WriteLine("ニコニコアラートへの接続を終了"); }; }