mirror of
https://github.com/bitwarden/mobile
synced 2025-12-10 13:23:39 +00:00
show activity indicator while still loading
This commit is contained in:
41
src/App/Pages/BaseContentPage.cs
Normal file
41
src/App/Pages/BaseContentPage.cs
Normal file
@@ -0,0 +1,41 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace Bit.App.Pages
|
||||
{
|
||||
public class BaseContentPage : ContentPage
|
||||
{
|
||||
protected void SetActivityIndicator()
|
||||
{
|
||||
Content = new ActivityIndicator
|
||||
{
|
||||
IsRunning = true,
|
||||
VerticalOptions = LayoutOptions.CenterAndExpand,
|
||||
HorizontalOptions = LayoutOptions.Center
|
||||
};
|
||||
}
|
||||
|
||||
protected async Task LoadOnAppearedAsync(View viewToSet, bool fromModal, Func<Task> workFunction)
|
||||
{
|
||||
async Task LoadAsync()
|
||||
{
|
||||
await workFunction.Invoke();
|
||||
if(viewToSet != null)
|
||||
{
|
||||
Content = viewToSet;
|
||||
}
|
||||
}
|
||||
if(Device.RuntimePlatform == Device.iOS)
|
||||
{
|
||||
await LoadAsync();
|
||||
return;
|
||||
}
|
||||
await Task.Run(async () =>
|
||||
{
|
||||
await Task.Delay(fromModal ? 400 : 200);
|
||||
Device.BeginInvokeOnMainThread(async () => await LoadAsync());
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user