787a6e9f48
UI navigation framework Related Work Items: #408, #414, #416
50 lines
1.2 KiB
C#
50 lines
1.2 KiB
C#
using System;
|
|
using System.Threading.Tasks;
|
|
using Windows.UI.Xaml.Data;
|
|
using FoxTube.Services;
|
|
using FoxTube.Utils;
|
|
using Google.Apis.Blogger.v3;
|
|
using Google.Apis.Blogger.v3.Data;
|
|
|
|
namespace FoxTube.Models.Collections
|
|
{
|
|
public class InboxCollection : ViewCollection<Post>
|
|
{
|
|
private string nextPageToken;
|
|
|
|
public override async Task<LoadMoreItemsResult> LoadItems()
|
|
{
|
|
try
|
|
{
|
|
PostsResource.ListRequest request = InboxService.Service.Posts.List(SecretConstants.BlogId);
|
|
request.FetchImages = false;
|
|
request.PageToken = nextPageToken;
|
|
request.Labels = "FoxTube";
|
|
request.MaxResults = ItemsPerRequest;
|
|
request.OrderBy = PostsResource.ListRequest.OrderByEnum.UPDATED;
|
|
|
|
PostList response = await request.ExecuteAsync();
|
|
|
|
foreach (Post post in response.Items)
|
|
Items.Add(post);
|
|
|
|
HasMoreItems = !string.IsNullOrWhiteSpace(nextPageToken = response.NextPageToken);
|
|
|
|
return new LoadMoreItemsResult
|
|
{
|
|
Count = (uint)response.Items.Count
|
|
};
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Metrics.SendReport(new Exception("Unable to load inbox", e));
|
|
HasMoreItems = false;
|
|
return new LoadMoreItemsResult
|
|
{
|
|
Count = 0
|
|
};
|
|
}
|
|
}
|
|
}
|
|
}
|