Exemplo n.º 1
0
        protected override Task ListPageNavigatedToAsync(CancellationToken cancelToken, NavigatedToEventArgs e, Dictionary <string, object> viewModelState)
        {
            if (e.Parameter is Guid)
            {
                var feedGroupId = (Guid)e.Parameter;

                FeedGroup = HohoemaApp.FeedManager.GetFeedGroup(feedGroupId);
            }
            else if (e.Parameter is string)
            {
                var feedGroupId = Guid.Parse(e.Parameter as string);

                FeedGroup = HohoemaApp.FeedManager.GetFeedGroup(feedGroupId);
            }

            if (FeedGroup == null)
            {
                // 削除済み?
                PageManager.OpenPage(HohoemaPageType.FeedGroupManage);
            }
            else
            {
                UpdateTitle(FeedGroup.Label);

                LastUpdate.Value = FeedGroup.UpdateTime;

                AllMarkAsReadCommand.RaiseCanExecuteChanged();
            }

            return(Task.CompletedTask);
        }
Exemplo n.º 2
0
        public async Task <bool> RemoveFeedGroup(IFeedGroup group)
        {
            var removeTarget = FeedGroups.SingleOrDefault(x => x.Id == group.Id);

            if (removeTarget != null)
            {
                _FeedGroupUpdaters.Remove(group);

                var fileAccessor = FeedGroupDict[removeTarget];

                // フィードソース一覧ファイルを同期から削除
                var file = await fileAccessor.TryGetFile();

                await HohoemaApp.RoamingDataRemoved(file);

                // ローカルのフィードソース・ファイルを削除
                await fileAccessor.Delete(StorageDeleteOption.PermanentDelete);

                // フィードの動画一覧ファイルを削除
                var feedStreamFileAccesssor = FeedStreamFileAccessors[group.Id];
                await feedStreamFileAccesssor.Delete(StorageDeleteOption.PermanentDelete);

                return(FeedGroupDict.Remove(removeTarget));
            }
            else
            {
                return(false);
            }
        }
Exemplo n.º 3
0
 public FeedVideoIncrementalSource(IFeedGroup feedGroup, HohoemaApp hohoemaApp, PageManager pageManager)
     : base(hohoemaApp, "Feed:" + feedGroup.Label)
 {
     _FeedGroup            = feedGroup;
     _FavFeedManager       = hohoemaApp.FeedManager;
     _NiconicoMediaManager = hohoemaApp.MediaManager;
     _PageManager          = pageManager;
 }
Exemplo n.º 4
0
        public FeedVideoInfoControlViewModel(FeedItem feedItem, IFeedGroup feedGroup, NicoVideo nicoVideo, PageManager pageMan)
            : base(nicoVideo, pageMan)
        {
            IsUnread = feedItem.ToReactivePropertyAsSynchronized(x => x.IsUnread)
                       .AddTo(_CompositeDisposable);

            _FafFeedItem = feedItem;
            _FeedGroup   = feedGroup;
        }
Exemplo n.º 5
0
        internal async Task RefreshOneAsync(IFeedGroup feedGroup)
        {
            if (_FeedGroupUpdaters.ContainsKey(feedGroup))
            {
                var updater = _FeedGroupUpdaters[feedGroup];
                updater.ScheduleUpdate();

                await updater.WaitUpdate();
            }
        }
Exemplo n.º 6
0
        public FeedGroupListItem(IFeedGroup feedGroup, PageManager pageManager)
        {
            FeedGroup    = feedGroup;
            _PageManager = pageManager;

            Title       = feedGroup.Label;
            Description = feedGroup.GetUnreadItemCount().ToString();
            SourceItems = FeedGroup.FeedSourceList
                          .Select(x => new FeedItemSourceViewModel()
            {
                Name     = x.Name,
                ItemType = x.FollowItemType
            })
                          .ToList();
            OptionText = FeedGroup.UpdateTime.ToString();
            NowUpdate  = new ReactiveProperty <bool>(false);
        }
Exemplo n.º 7
0
        internal async Task <bool> RenameFeedGroup(IFeedGroup group, string newLabel)
        {
            var target = FeedGroups.SingleOrDefault(x => x.Id == group.Id);

            if (target != null)
            {
                var fileAccessor = FeedGroupDict[target];

                var file = await fileAccessor.TryGetFile();

                await HohoemaApp.RoamingDataRemoved(file);

                await fileAccessor.Rename(newLabel + ".json");

                await HohoemaApp.PushToRoamingData(file);

                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemplo n.º 8
0
        public Task SaveOne(IFeedGroup group, bool isSkipSyncRoaming = false)
        {
            var target = FeedGroupDict.SingleOrDefault(x => x.Key.Id == group.Id);

            return(_Save(target, isSkipSyncRoaming));
        }