feature: login support for Android
feature: display profile information
This commit is contained in:
@@ -73,9 +73,11 @@ namespace Pixiview.Illust
|
||||
protected readonly Command<IllustItem> commandIllustImageTapped;
|
||||
protected DateTime lastUpdated;
|
||||
protected double topOffset;
|
||||
protected string lastError;
|
||||
|
||||
private T illustData;
|
||||
private ParallelTask task;
|
||||
private bool isTrying;
|
||||
|
||||
public IllustCollectionPage()
|
||||
{
|
||||
@@ -530,15 +532,31 @@ namespace Pixiview.Illust
|
||||
illustData = DoLoadIllustData(force);
|
||||
if (illustData == null)
|
||||
{
|
||||
AppShell.Current.PushToLogin(()=>
|
||||
if (isTrying)
|
||||
{
|
||||
StartLoad(true);
|
||||
});
|
||||
MainThread.BeginInvokeOnMainThread(() =>
|
||||
{
|
||||
DisplayAlert(ResourceHelper.Title,
|
||||
ResourceHelper.FailedResponse + "\n" + lastError?.Substring(0, 40),
|
||||
ResourceHelper.Ok);
|
||||
});
|
||||
isTrying = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
isTrying = true;
|
||||
AppShell.Current.PushToLogin(() =>
|
||||
{
|
||||
Task.Run(() => AppShell.Current.DoLoginInformation(true));
|
||||
StartLoad(true);
|
||||
});
|
||||
}
|
||||
//App.DebugError("illusts.load", "failed to load illusts data.");
|
||||
IsLoading = false;
|
||||
IsBottomLoading = false;
|
||||
return;
|
||||
}
|
||||
isTrying = false;
|
||||
if (force && IsFavoriteVisible)
|
||||
{
|
||||
var now = DateTime.Now;
|
||||
|
@@ -160,7 +160,7 @@ namespace Pixiview.Illust
|
||||
|
||||
protected override IllustRankingData DoLoadIllustData(bool force)
|
||||
{
|
||||
var data = Stores.LoadIllustRankingData(lastQueryKey, queryDate, currentPage, force);
|
||||
var data = Stores.LoadIllustRankingData(lastQueryKey, queryDate, currentPage, out lastError, force);
|
||||
if (data != null)
|
||||
{
|
||||
if (int.TryParse(data.next, out int next))
|
||||
|
@@ -331,16 +331,23 @@ namespace Pixiview.Illust
|
||||
}
|
||||
|
||||
Illusts = items;
|
||||
Task.Run(DoLoadImages);
|
||||
Task.Run(() => DoLoadImages());
|
||||
}
|
||||
|
||||
private void DoLoadImages()
|
||||
private void DoLoadImages(bool force = false)
|
||||
{
|
||||
var illustItem = IllustItem;
|
||||
var pages = Stores.LoadIllustPageData(illustItem.Id);
|
||||
var pages = Stores.LoadIllustPageData(illustItem.Id, out string error, force);
|
||||
if (pages == null)
|
||||
{
|
||||
App.DebugError("illustPage.load", $"failed to load illust page data, id: {illustItem.Id}");
|
||||
if (error != null)
|
||||
{
|
||||
MainThread.BeginInvokeOnMainThread(() =>
|
||||
{
|
||||
DisplayAlert(ResourceHelper.Title, error, ResourceHelper.Ok);
|
||||
});
|
||||
}
|
||||
return;
|
||||
}
|
||||
var items = Illusts;
|
||||
@@ -385,9 +392,13 @@ namespace Pixiview.Illust
|
||||
var count = illustItem.PageCount;
|
||||
pageCount = count;
|
||||
Title = illustItem.Title;
|
||||
IsPageVisible = count > 1;
|
||||
IsAnimateSliderVisible = illustItem.IsAnimeVisible;
|
||||
ProgressVisible = count > 1;
|
||||
if (count > 1)
|
||||
{
|
||||
IsPageVisible = true;
|
||||
ProgressVisible = true;
|
||||
PagePositionText = $"1/{count}";
|
||||
}
|
||||
});
|
||||
if (preload.user.TryGetValue(illust.userId, out var user))
|
||||
{
|
||||
@@ -423,6 +434,12 @@ namespace Pixiview.Illust
|
||||
private void DoLoadImage(int index, bool force = false)
|
||||
{
|
||||
var items = Illusts;
|
||||
if (index == 0 && force)
|
||||
{
|
||||
// error, refresh all
|
||||
Task.Run(() => DoLoadImages(true));
|
||||
return;
|
||||
}
|
||||
if (index < 0 || index >= items.Length)
|
||||
{
|
||||
App.DebugPrint($"invalid index: {index}");
|
||||
|
Reference in New Issue
Block a user