set theme on options change

This commit is contained in:
Kyle Spearrin 2019-05-29 14:23:55 -04:00
parent 48376d0a93
commit 40484a7bf0
3 changed files with 35 additions and 29 deletions

View file

@ -1,5 +1,6 @@
using Bit.App.Abstractions; using Bit.App.Abstractions;
using Bit.App.Resources; using Bit.App.Resources;
using Bit.App.Utilities;
using Bit.Core; using Bit.Core;
using Bit.Core.Abstractions; using Bit.Core.Abstractions;
using Bit.Core.Enums; using Bit.Core.Enums;
@ -19,10 +20,10 @@ namespace Bit.App.Pages
private bool _disableFavicon; private bool _disableFavicon;
private bool _disableAutoTotpCopy; private bool _disableAutoTotpCopy;
private int _clearClipboardSelectedIndex; private int _clearClipboardSelectedIndex;
private int _themeSelectedIndex; private int _themeSelectedIndex;
private int _uriMatchSelectedIndex; private int _uriMatchSelectedIndex;
private bool _inited;
public OptionsPageViewModel() public OptionsPageViewModel()
{ {
@ -136,22 +137,29 @@ namespace Bit.App.Pages
UriMatchOptions.FindIndex(k => (int?)k.Key == defaultUriMatch); UriMatchOptions.FindIndex(k => (int?)k.Key == defaultUriMatch);
var clearClipboard = await _storageService.GetAsync<int?>(Constants.ClearClipboardKey); var clearClipboard = await _storageService.GetAsync<int?>(Constants.ClearClipboardKey);
ClearClipboardSelectedIndex = ClearClipboardOptions.FindIndex(k => k.Key == clearClipboard); ClearClipboardSelectedIndex = ClearClipboardOptions.FindIndex(k => k.Key == clearClipboard);
_inited = true;
} }
private async Task UpdateAutoTotpCopyAsync() private async Task UpdateAutoTotpCopyAsync()
{ {
await _storageService.SaveAsync(Constants.DisableAutoTotpCopyKey, DisableAutoTotpCopy); if(_inited)
{
await _storageService.SaveAsync(Constants.DisableAutoTotpCopyKey, DisableAutoTotpCopy);
}
} }
private async Task UpdateDisableFaviconAsync() private async Task UpdateDisableFaviconAsync()
{ {
await _storageService.SaveAsync(Constants.DisableFaviconKey, DisableFavicon); if(_inited)
await _stateService.SaveAsync(Constants.DisableFaviconKey, DisableFavicon); {
await _storageService.SaveAsync(Constants.DisableFaviconKey, DisableFavicon);
await _stateService.SaveAsync(Constants.DisableFaviconKey, DisableFavicon);
}
} }
private async Task SaveClipboardChangedAsync() private async Task SaveClipboardChangedAsync()
{ {
if(ClearClipboardSelectedIndex > -1) if(_inited && ClearClipboardSelectedIndex > -1)
{ {
await _storageService.SaveAsync(Constants.ClearClipboardKey, await _storageService.SaveAsync(Constants.ClearClipboardKey,
ClearClipboardOptions[ClearClipboardSelectedIndex].Key); ClearClipboardOptions[ClearClipboardSelectedIndex].Key);
@ -160,16 +168,17 @@ namespace Bit.App.Pages
private async Task SaveThemeAsync() private async Task SaveThemeAsync()
{ {
if(ThemeSelectedIndex > -1) if(_inited && ThemeSelectedIndex > -1)
{ {
await _storageService.SaveAsync(Constants.ThemeKey, ThemeOptions[ThemeSelectedIndex].Key); var theme = ThemeOptions[ThemeSelectedIndex].Key;
// TODO: change theme await _storageService.SaveAsync(Constants.ThemeKey, theme);
ThemeManager.SetThemeStyle(theme);
} }
} }
private async Task SaveDefaultUriAsync() private async Task SaveDefaultUriAsync()
{ {
if(UriMatchSelectedIndex > -1) if(_inited && UriMatchSelectedIndex > -1)
{ {
await _storageService.SaveAsync(Constants.DefaultUriMatch, UriMatchOptions[UriMatchSelectedIndex].Key); await _storageService.SaveAsync(Constants.DefaultUriMatch, UriMatchOptions[UriMatchSelectedIndex].Key);
} }

View file

@ -2,33 +2,33 @@
<ResourceDictionary xmlns="http://xamarin.com/schemas/2014/forms" <ResourceDictionary xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Bit.App.Styles.Dark"> x:Class="Bit.App.Styles.Dark">
<Color x:Key="TextColor">#5DAA00</Color> <Color x:Key="TextColor">#ffffff</Color>
<Color x:Key="PrimaryColor">#3c8dbc</Color> <Color x:Key="PrimaryColor">#52bdfb</Color>
<Color x:Key="DangerColor">#dd4b39</Color> <Color x:Key="DangerColor">#ff3e24</Color>
<Color x:Key="SuccessColor">#00a65a</Color> <Color x:Key="SuccessColor">#00a65a</Color>
<Color x:Key="InfoColor">#555555</Color> <Color x:Key="InfoColor">#555555</Color>
<Color x:Key="WarningColor">#bf7e16</Color> <Color x:Key="WarningColor">#bf7e16</Color>
<Color x:Key="MutedColor">#777777</Color> <Color x:Key="MutedColor">#a3a3a3</Color>
<Color x:Key="PasswordNumberColor">#007fde</Color> <Color x:Key="PasswordNumberColor">#52bdfb</Color>
<Color x:Key="PasswordSpecialColor">#c40800</Color> <Color x:Key="PasswordSpecialColor">#ff7c70</Color>
<Color x:Key="BorderColor">#dddddd</Color> <Color x:Key="BorderColor">#111111</Color>
<Color x:Key="DisabledIconColor">#c7c7cd</Color> <Color x:Key="DisabledIconColor">#c7c7cd</Color>
<Color x:Key="BoxBorderColor">#f0f0f0</Color> <Color x:Key="BoxBorderColor">#2f2f2f</Color>
<Color x:Key="BoxHeaderTextColor">#3c8dbc</Color> <Color x:Key="BoxHeaderTextColor">#52bdfb</Color>
<Color x:Key="HeaderTextColor">#ffffff</Color> <Color x:Key="TitleTextColor">#ffffff</Color>
<Color x:Key="HeaderEntryTextColor">#ffffff</Color> <Color x:Key="TitleEntryTextColor">#ffffff</Color>
<Color x:Key="HeaderEntryPlaceholderColor">#707070</Color> <Color x:Key="TitleEntryPlaceholderColor">#707070</Color>
<Color x:Key="ListItemBorderColor">#f0f0f0</Color> <Color x:Key="ListItemBorderColor">#2f2f2f</Color>
<Color x:Key="ListHeaderTextColor">#3c8dbc</Color> <Color x:Key="ListHeaderTextColor">#52bdfb</Color>
<Color x:Key="SliderThumbColor">#ffffff</Color> <Color x:Key="SliderThumbColor">#ffffff</Color>
<Color x:Key="SliderThumbBorderColor">#b5b5b5</Color> <Color x:Key="SliderThumbBorderColor">#b5b5b5</Color>
<Color x:Key="SliderTrackColor">#3c8dbc</Color> <Color x:Key="SliderTrackColor">#52bdfb</Color>
<Color x:Key="FabColor">#3c8dbc</Color> <Color x:Key="FabColor">#52bdfb</Color>
<Color x:Key="FabPressedColor">#3883af</Color> <Color x:Key="FabPressedColor">#52bdfb</Color>
</ResourceDictionary> </ResourceDictionary>

View file

@ -1,8 +1,5 @@
using Bit.App.Styles; using Bit.App.Styles;
using System;
using System.Reflection;
using Xamarin.Forms; using Xamarin.Forms;
using Xamarin.Forms.StyleSheets;
namespace Bit.App.Utilities namespace Bit.App.Utilities
{ {