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); }
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); } }
public FeedVideoIncrementalSource(IFeedGroup feedGroup, HohoemaApp hohoemaApp, PageManager pageManager) : base(hohoemaApp, "Feed:" + feedGroup.Label) { _FeedGroup = feedGroup; _FavFeedManager = hohoemaApp.FeedManager; _NiconicoMediaManager = hohoemaApp.MediaManager; _PageManager = pageManager; }
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; }
internal async Task RefreshOneAsync(IFeedGroup feedGroup) { if (_FeedGroupUpdaters.ContainsKey(feedGroup)) { var updater = _FeedGroupUpdaters[feedGroup]; updater.ScheduleUpdate(); await updater.WaitUpdate(); } }
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); }
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); } }
public Task SaveOne(IFeedGroup group, bool isSkipSyncRoaming = false) { var target = FeedGroupDict.SingleOrDefault(x => x.Key.Id == group.Id); return(_Save(target, isSkipSyncRoaming)); }