From 6f905319c365a0cbc13814612d426bea2d2e9dad Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Thu, 6 Jun 2019 08:04:54 -0400 Subject: [PATCH] prompt fignerprint on resume of lock page --- src/App/App.xaml.cs | 4 ++++ src/App/Pages/Accounts/LockPage.xaml.cs | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/App/App.xaml.cs b/src/App/App.xaml.cs index 240b6f288..43aab025f 100644 --- a/src/App/App.xaml.cs +++ b/src/App/App.xaml.cs @@ -184,6 +184,10 @@ namespace Bit.App { SyncIfNeeded(); } + if(Current.MainPage is NavigationPage navPage && navPage.CurrentPage is LockPage lockPage) + { + await lockPage.PromptFingerprintAfterResumeAsync(); + } } private void SetCulture() diff --git a/src/App/Pages/Accounts/LockPage.xaml.cs b/src/App/Pages/Accounts/LockPage.xaml.cs index 2950d6352..f8a7c2aa5 100644 --- a/src/App/Pages/Accounts/LockPage.xaml.cs +++ b/src/App/Pages/Accounts/LockPage.xaml.cs @@ -11,6 +11,9 @@ namespace Bit.App.Pages private readonly bool _autoPromptFingerprint; private readonly LockPageViewModel _vm; + private bool _promptedAfterResume; + private bool _appeared; + public LockPage(AppOptions appOptions = null, bool autoPromptFingerprint = true) { _appOptions = appOptions; @@ -42,9 +45,24 @@ namespace Bit.App.Pages public Entry MasterPasswordEntry { get; set; } public Entry PinEntry { get; set; } + public async Task PromptFingerprintAfterResumeAsync() + { + await Task.Delay(500); + if(!_promptedAfterResume) + { + _promptedAfterResume = true; + await _vm?.PromptFingerprintAsync(); + } + } + protected override async void OnAppearing() { base.OnAppearing(); + if(_appeared) + { + return; + } + _appeared = true; await _vm.InitAsync(_autoPromptFingerprint); if(!_vm.FingerprintLock) {