1
0
mirror of https://github.com/bitwarden/mobile synced 2025-12-11 05:43:30 +00:00

fix for bug stopping vault timeout to never (#1618)

- use nullable int on settings page and in vault service
This commit is contained in:
Jake Fink
2021-10-29 10:31:38 -04:00
committed by Matt Portune
parent 19658da65a
commit f8e7a6263f
3 changed files with 9 additions and 9 deletions

View File

@@ -57,7 +57,7 @@ namespace Bit.App.Pages
}; };
private Policy _vaultTimeoutPolicy; private Policy _vaultTimeoutPolicy;
private int _vaultTimeout; private int? _vaultTimeout;
public SettingsPageViewModel() public SettingsPageViewModel()
{ {
@@ -220,7 +220,7 @@ namespace Bit.App.Pages
await _vaultTimeoutService.LockAsync(true, true); await _vaultTimeoutService.LockAsync(true, true);
} }
public async Task VaultTimeoutAsync(bool promptOptions = true, int newTimeout = 0) public async Task VaultTimeoutAsync(bool promptOptions = true, int? newTimeout = 0)
{ {
var oldTimeout = _vaultTimeout; var oldTimeout = _vaultTimeout;
@@ -237,7 +237,7 @@ namespace Bit.App.Pages
var cleanSelection = selection.Replace("✓ ", string.Empty); var cleanSelection = selection.Replace("✓ ", string.Empty);
var selectionOption = _vaultTimeouts.FirstOrDefault(o => o.Key == cleanSelection); var selectionOption = _vaultTimeouts.FirstOrDefault(o => o.Key == cleanSelection);
_vaultTimeoutDisplayValue = selectionOption.Key; _vaultTimeoutDisplayValue = selectionOption.Key;
newTimeout = selectionOption.Value.GetValueOrDefault(); newTimeout = selectionOption.Value;
} }
if (_vaultTimeoutPolicy != null) if (_vaultTimeoutPolicy != null)
@@ -438,7 +438,7 @@ namespace Bit.App.Pages
securityItems.Insert(1, new SettingsPageListItem securityItems.Insert(1, new SettingsPageListItem
{ {
Name = AppResources.Custom, Name = AppResources.Custom,
Time = TimeSpan.FromMinutes(Math.Abs((double)_vaultTimeout)), Time = TimeSpan.FromMinutes(Math.Abs((double)_vaultTimeout.GetValueOrDefault())),
}); });
} }
if (_vaultTimeoutPolicy != null) if (_vaultTimeoutPolicy != null)

View File

@@ -17,6 +17,6 @@ namespace Bit.Core.Abstractions
Task LockAsync(bool allowSoftLock = false, bool userInitiated = false); Task LockAsync(bool allowSoftLock = false, bool userInitiated = false);
Task LogOutAsync(); Task LogOutAsync();
Task SetVaultTimeoutOptionsAsync(int? timeout, string action); Task SetVaultTimeoutOptionsAsync(int? timeout, string action);
Task<int> GetVaultTimeout(); Task<int?> GetVaultTimeout();
} }
} }

View File

@@ -86,7 +86,7 @@ namespace Bit.Core.Services
return; return;
} }
var vaultTimeoutMinutes = await GetVaultTimeout(); var vaultTimeoutMinutes = await GetVaultTimeout();
if (vaultTimeoutMinutes < 0) if (vaultTimeoutMinutes < 0 || vaultTimeoutMinutes == null)
{ {
return; return;
} }
@@ -178,8 +178,8 @@ namespace Bit.Core.Services
await _storageService.RemoveAsync(Constants.ProtectedPin); await _storageService.RemoveAsync(Constants.ProtectedPin);
} }
public async Task<int> GetVaultTimeout() { public async Task<int?> GetVaultTimeout() {
var vaultTimeout = (await _storageService.GetAsync<int?>(Constants.VaultTimeoutKey)).GetValueOrDefault(-1); var vaultTimeout = await _storageService.GetAsync<int?>(Constants.VaultTimeoutKey);
if (await _policyService.PolicyAppliesToUser(PolicyType.MaximumVaultTimeout)) { if (await _policyService.PolicyAppliesToUser(PolicyType.MaximumVaultTimeout)) {
var policy = (await _policyService.GetAll(PolicyType.MaximumVaultTimeout)).First(); var policy = (await _policyService.GetAll(PolicyType.MaximumVaultTimeout)).First();
@@ -190,7 +190,7 @@ namespace Bit.Core.Services
return vaultTimeout; return vaultTimeout;
} }
var timeout = Math.Min(vaultTimeout, policyTimeout.Value); var timeout = vaultTimeout.HasValue ? Math.Min(vaultTimeout.Value, policyTimeout.Value) : policyTimeout.Value;
if (timeout < 0) { if (timeout < 0) {
timeout = policyTimeout.Value; timeout = policyTimeout.Value;