Do not record LastActivityDate on sleep if currently viewing a lock page on android

This commit is contained in:
Kyle Spearrin 2016-08-24 00:15:13 -04:00
parent d4f52bce2b
commit 6cec61dc42

View file

@ -94,7 +94,7 @@ namespace Bit.App
// Handle when your app sleeps // Handle when your app sleeps
Debug.WriteLine("OnSleep"); Debug.WriteLine("OnSleep");
if(Device.OS == TargetPlatform.Android) if(Device.OS == TargetPlatform.Android && !TopPageIsLock())
{ {
_settings.AddOrUpdateValue(Constants.LastActivityDate, DateTime.UtcNow); _settings.AddOrUpdateValue(Constants.LastActivityDate, DateTime.UtcNow);
} }
@ -214,15 +214,18 @@ namespace Bit.App
private async Task CheckLockAsync(bool forceLock) private async Task CheckLockAsync(bool forceLock)
{ {
if(TopPageIsLock())
{
// already locked
return;
}
var lockType = _lockService.GetLockType(forceLock); var lockType = _lockService.GetLockType(forceLock);
var currentPage = Current.MainPage.Navigation.ModalStack.LastOrDefault() as ExtendedNavigationPage; var currentPage = Current.MainPage.Navigation.ModalStack.LastOrDefault() as ExtendedNavigationPage;
switch(lockType) switch(lockType)
{ {
case Enums.LockType.Fingerprint: case Enums.LockType.Fingerprint:
if((currentPage?.CurrentPage as LockFingerprintPage) == null)
{
await Current.MainPage.Navigation.PushModalAsync(new ExtendedNavigationPage(new LockFingerprintPage(!forceLock)), false); await Current.MainPage.Navigation.PushModalAsync(new ExtendedNavigationPage(new LockFingerprintPage(!forceLock)), false);
}
break; break;
case Enums.LockType.PIN: case Enums.LockType.PIN:
var lockPinPage = (currentPage?.CurrentPage as LockPinPage); var lockPinPage = (currentPage?.CurrentPage as LockPinPage);
@ -234,16 +237,32 @@ namespace Bit.App
} }
break; break;
case Enums.LockType.Password: case Enums.LockType.Password:
if((currentPage?.CurrentPage as LockPasswordPage) == null)
{
await Current.MainPage.Navigation.PushModalAsync(new ExtendedNavigationPage(new LockPasswordPage()), false); await Current.MainPage.Navigation.PushModalAsync(new ExtendedNavigationPage(new LockPasswordPage()), false);
}
break; break;
default: default:
break; break;
} }
} }
private bool TopPageIsLock()
{
var currentPage = Current.MainPage.Navigation.ModalStack.LastOrDefault() as ExtendedNavigationPage;
if((currentPage?.CurrentPage as LockFingerprintPage) != null)
{
return true;
}
if((currentPage?.CurrentPage as LockPinPage) != null)
{
return true;
}
if((currentPage?.CurrentPage as LockPasswordPage) != null)
{
return true;
}
return false;
}
private void SetStyles() private void SetStyles()
{ {
var gray = Color.FromHex("333333"); var gray = Color.FromHex("333333");