more do once checks

This commit is contained in:
Kyle Spearrin 2019-05-06 23:07:47 -04:00
parent 5ef4c96ee7
commit 2816e72aa9
4 changed files with 26 additions and 14 deletions

View file

@ -11,6 +11,18 @@ namespace Bit.App.Pages
public DateTime? LastPageAction { get; set; } public DateTime? LastPageAction { get; set; }
public bool DoOnce(Action action = null, int milliseconds = 1000)
{
if(LastPageAction.HasValue && (DateTime.UtcNow - LastPageAction.Value).TotalMilliseconds < milliseconds)
{
// Last action occurred recently.
return false;
}
LastPageAction = DateTime.UtcNow;
action?.Invoke();
return true;
}
protected void SetActivityIndicator() protected void SetActivityIndicator()
{ {
Content = new ActivityIndicator Content = new ActivityIndicator
@ -56,17 +68,5 @@ namespace Bit.App.Pages
Device.BeginInvokeOnMainThread(() => input.Focus()); Device.BeginInvokeOnMainThread(() => input.Focus());
}); });
} }
protected bool DoOnce(Action action = null, int milliseconds = 1000)
{
if(LastPageAction.HasValue && (DateTime.UtcNow - LastPageAction.Value).TotalMilliseconds < milliseconds)
{
// Last action occurred recently.
return false;
}
LastPageAction = DateTime.UtcNow;
action?.Invoke();
return true;
}
} }
} }

View file

@ -106,6 +106,10 @@ namespace Bit.App.Pages
private async void CipherOptionsAsync(CipherView cipher) private async void CipherOptionsAsync(CipherView cipher)
{ {
if(!(Page as BaseContentPage).DoOnce())
{
return;
}
var option = await Page.DisplayActionSheet(cipher.Name, AppResources.Cancel, null, "1", "2"); var option = await Page.DisplayActionSheet(cipher.Name, AppResources.Cancel, null, "1", "2");
if(option == AppResources.Cancel) if(option == AppResources.Cancel)
{ {

View file

@ -104,8 +104,12 @@ namespace Bit.App.Pages
private async void Search_Clicked(object sender, System.EventArgs e) private async void Search_Clicked(object sender, System.EventArgs e)
{ {
await Navigation.PushModalAsync(new NavigationPage( if(DoOnce())
new CiphersPage(_vm.Filter,_vm.FolderId != null, _vm.CollectionId != null, _vm.Type != null)), false); {
var page = new CiphersPage(_vm.Filter, _vm.FolderId != null, _vm.CollectionId != null,
_vm.Type != null);
await Navigation.PushModalAsync(new NavigationPage(page), false);
}
} }
} }
} }

View file

@ -369,6 +369,10 @@ namespace Bit.App.Pages
private async void CipherOptionsAsync(CipherView cipher) private async void CipherOptionsAsync(CipherView cipher)
{ {
if(!(Page as BaseContentPage).DoOnce())
{
return;
}
var option = await Page.DisplayActionSheet(cipher.Name, AppResources.Cancel, null, "1", "2"); var option = await Page.DisplayActionSheet(cipher.Name, AppResources.Cancel, null, "1", "2");
if(option == AppResources.Cancel) if(option == AppResources.Cancel)
{ {