1
0
mirror of https://github.com/bitwarden/mobile.git synced 2024-09-29 04:07:37 +02:00

check lock only if locked on all pages

This commit is contained in:
Kyle Spearrin 2018-07-16 23:14:45 -04:00
parent 19c46a472a
commit 13b9e01604
3 changed files with 12 additions and 6 deletions

View File

@ -7,8 +7,8 @@ namespace Bit.App.Abstractions
public interface ILockService public interface ILockService
{ {
void UpdateLastActivity(); void UpdateLastActivity();
Task<LockType> GetLockTypeAsync(bool forceLock); Task<LockType> GetLockTypeAsync(bool forceLock, bool onlyIfAlreadyLocked = false);
Task CheckLockAsync(bool forceLock); Task CheckLockAsync(bool forceLock, bool onlyIfAlreadyLocked = false);
bool TopPageIsLock(); bool TopPageIsLock();
} }
} }

View File

@ -30,7 +30,7 @@ namespace Bit.App.Controls
BackgroundColor = Color.FromHex("efeff4"); BackgroundColor = Color.FromHex("efeff4");
} }
protected override void OnAppearing() protected async override void OnAppearing()
{ {
if(_requireAuth && !_authService.IsAuthenticated) if(_requireAuth && !_authService.IsAuthenticated)
{ {
@ -52,6 +52,7 @@ namespace Bit.App.Controls
} }
_googleAnalyticsService.TrackPage(GetType().Name); _googleAnalyticsService.TrackPage(GetType().Name);
await _lockService.CheckLockAsync(false, true);
base.OnAppearing(); base.OnAppearing();
} }

View File

@ -37,7 +37,7 @@ namespace Bit.App.Services
_stopwatch?.Restart(); _stopwatch?.Restart();
} }
public async Task<LockType> GetLockTypeAsync(bool forceLock) public async Task<LockType> GetLockTypeAsync(bool forceLock, bool onlyIfAlreadyLocked = false)
{ {
// Only lock if they are logged in // Only lock if they are logged in
if(!_authService.IsAuthenticated) if(!_authService.IsAuthenticated)
@ -59,6 +59,11 @@ namespace Bit.App.Services
} }
} }
if(onlyIfAlreadyLocked && !_appSettings.Locked)
{
return LockType.None;
}
// What method are we using to unlock? // What method are we using to unlock?
var fingerprintUnlock = _settings.GetValueOrDefault(Constants.SettingFingerprintUnlockOn, false); var fingerprintUnlock = _settings.GetValueOrDefault(Constants.SettingFingerprintUnlockOn, false);
var pinUnlock = _settings.GetValueOrDefault(Constants.SettingPinUnlockOn, false); var pinUnlock = _settings.GetValueOrDefault(Constants.SettingPinUnlockOn, false);
@ -77,14 +82,14 @@ namespace Bit.App.Services
} }
} }
public async Task CheckLockAsync(bool forceLock) public async Task CheckLockAsync(bool forceLock, bool onlyIfAlreadyLocked = false)
{ {
if(TopPageIsLock()) if(TopPageIsLock())
{ {
return; return;
} }
var lockType = await GetLockTypeAsync(forceLock); var lockType = await GetLockTypeAsync(forceLock, onlyIfAlreadyLocked);
if(lockType == LockType.None) if(lockType == LockType.None)
{ {
return; return;