diff --git a/src/App/Pages/Settings/OptionsPage.xaml b/src/App/Pages/Settings/OptionsPage.xaml
index 7858de044..f1e5a7874 100644
--- a/src/App/Pages/Settings/OptionsPage.xaml
+++ b/src/App/Pages/Settings/OptionsPage.xaml
@@ -7,10 +7,42 @@
xmlns:u="clr-namespace:Bit.App.Utilities"
x:DataType="pages:OptionsPageViewModel"
Title="{Binding PageTitle}">
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/App/Pages/Settings/OptionsPage.xaml.cs b/src/App/Pages/Settings/OptionsPage.xaml.cs
index 1ac7f67dd..56f1a8b8c 100644
--- a/src/App/Pages/Settings/OptionsPage.xaml.cs
+++ b/src/App/Pages/Settings/OptionsPage.xaml.cs
@@ -13,9 +13,10 @@ namespace Bit.App.Pages
_vm.Page = this;
}
- protected override void OnAppearing()
+ protected async override void OnAppearing()
{
base.OnAppearing();
+ await _vm.InitAsync();
}
}
}
diff --git a/src/App/Pages/Settings/OptionsPageViewModel.cs b/src/App/Pages/Settings/OptionsPageViewModel.cs
index 9ff0a8f01..d9eafc654 100644
--- a/src/App/Pages/Settings/OptionsPageViewModel.cs
+++ b/src/App/Pages/Settings/OptionsPageViewModel.cs
@@ -1,7 +1,7 @@
using Bit.App.Abstractions;
using Bit.App.Resources;
+using Bit.Core;
using Bit.Core.Abstractions;
-using Bit.Core.Exceptions;
using Bit.Core.Utilities;
using System.Threading.Tasks;
@@ -11,13 +11,63 @@ namespace Bit.App.Pages
{
private readonly IDeviceActionService _deviceActionService;
private readonly IPlatformUtilsService _platformUtilsService;
+ private readonly IStorageService _storageService;
+ private readonly ITotpService _totpService;
+ private readonly IStateService _stateService;
+
+ private bool _disableFavicon;
+ private bool _disableAutoTotpCopy;
public OptionsPageViewModel()
{
_deviceActionService = ServiceContainer.Resolve("deviceActionService");
_platformUtilsService = ServiceContainer.Resolve("platformUtilsService");
+ _storageService = ServiceContainer.Resolve("storageService");
+ _totpService = ServiceContainer.Resolve("totpService");
+ _stateService = ServiceContainer.Resolve("stateService");
PageTitle = AppResources.Options;
}
+
+ public bool DisableFavicon
+ {
+ get => _disableFavicon;
+ set
+ {
+ if(SetProperty(ref _disableFavicon, value))
+ {
+ var task = UpdateDisableFaviconAsync();
+ }
+ }
+ }
+
+ public bool DisableAutoTotpCopy
+ {
+ get => _disableAutoTotpCopy;
+ set
+ {
+ if(SetProperty(ref _disableAutoTotpCopy, value))
+ {
+ var task = UpdateAutoTotpCopyAsync();
+ }
+ }
+ }
+
+ public async Task InitAsync()
+ {
+ DisableAutoTotpCopy = !(await _totpService.IsAutoCopyEnabledAsync());
+ DisableFavicon = await _storageService.GetAsync(Constants.DisableFaviconKey);
+ }
+
+ private async Task UpdateAutoTotpCopyAsync()
+ {
+ await _storageService.SaveAsync(Constants.DisableAutoTotpCopyKey, DisableAutoTotpCopy);
+ }
+
+ private async Task UpdateDisableFaviconAsync()
+ {
+ await _storageService.SaveAsync(Constants.DisableFaviconKey, DisableFavicon);
+ await _stateService.SaveAsync(Constants.DisableFaviconKey, DisableFavicon);
+ }
}
}