diff --git a/src/App/Pages/Settings/SettingsPage/SettingsPageViewModel.cs b/src/App/Pages/Settings/SettingsPage/SettingsPageViewModel.cs index 36d603d28..b93325774 100644 --- a/src/App/Pages/Settings/SettingsPage/SettingsPageViewModel.cs +++ b/src/App/Pages/Settings/SettingsPage/SettingsPageViewModel.cs @@ -57,7 +57,7 @@ namespace Bit.App.Pages }; private Policy _vaultTimeoutPolicy; - private int _vaultTimeout; + private int? _vaultTimeout; public SettingsPageViewModel() { @@ -220,7 +220,7 @@ namespace Bit.App.Pages 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; @@ -237,7 +237,7 @@ namespace Bit.App.Pages var cleanSelection = selection.Replace("✓ ", string.Empty); var selectionOption = _vaultTimeouts.FirstOrDefault(o => o.Key == cleanSelection); _vaultTimeoutDisplayValue = selectionOption.Key; - newTimeout = selectionOption.Value.GetValueOrDefault(); + newTimeout = selectionOption.Value; } if (_vaultTimeoutPolicy != null) @@ -438,7 +438,7 @@ namespace Bit.App.Pages securityItems.Insert(1, new SettingsPageListItem { Name = AppResources.Custom, - Time = TimeSpan.FromMinutes(Math.Abs((double)_vaultTimeout)), + Time = TimeSpan.FromMinutes(Math.Abs((double)_vaultTimeout.GetValueOrDefault())), }); } if (_vaultTimeoutPolicy != null) diff --git a/src/Core/Abstractions/IVaultTimeoutService.cs b/src/Core/Abstractions/IVaultTimeoutService.cs index 49168e17c..1c780a169 100644 --- a/src/Core/Abstractions/IVaultTimeoutService.cs +++ b/src/Core/Abstractions/IVaultTimeoutService.cs @@ -17,6 +17,6 @@ namespace Bit.Core.Abstractions Task LockAsync(bool allowSoftLock = false, bool userInitiated = false); Task LogOutAsync(); Task SetVaultTimeoutOptionsAsync(int? timeout, string action); - Task GetVaultTimeout(); + Task GetVaultTimeout(); } } diff --git a/src/Core/Services/VaultTimeoutService.cs b/src/Core/Services/VaultTimeoutService.cs index 3d29611c9..f7d9a5b6a 100644 --- a/src/Core/Services/VaultTimeoutService.cs +++ b/src/Core/Services/VaultTimeoutService.cs @@ -86,7 +86,7 @@ namespace Bit.Core.Services return; } var vaultTimeoutMinutes = await GetVaultTimeout(); - if (vaultTimeoutMinutes < 0) + if (vaultTimeoutMinutes < 0 || vaultTimeoutMinutes == null) { return; } @@ -178,8 +178,8 @@ namespace Bit.Core.Services await _storageService.RemoveAsync(Constants.ProtectedPin); } - public async Task GetVaultTimeout() { - var vaultTimeout = (await _storageService.GetAsync(Constants.VaultTimeoutKey)).GetValueOrDefault(-1); + public async Task GetVaultTimeout() { + var vaultTimeout = await _storageService.GetAsync(Constants.VaultTimeoutKey); if (await _policyService.PolicyAppliesToUser(PolicyType.MaximumVaultTimeout)) { var policy = (await _policyService.GetAll(PolicyType.MaximumVaultTimeout)).First(); @@ -190,7 +190,7 @@ namespace Bit.Core.Services return vaultTimeout; } - var timeout = Math.Min(vaultTimeout, policyTimeout.Value); + var timeout = vaultTimeout.HasValue ? Math.Min(vaultTimeout.Value, policyTimeout.Value) : policyTimeout.Value; if (timeout < 0) { timeout = policyTimeout.Value;