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:
@@ -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)
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user