Esempio n. 1
0
        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());
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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("ニコニコアラートへの接続を終了");
            };
        }