diff --git a/src/App/Pages/Settings/OptionsPage.xaml b/src/App/Pages/Settings/OptionsPage.xaml
index 8d37074c6..8c4e3081b 100644
--- a/src/App/Pages/Settings/OptionsPage.xaml
+++ b/src/App/Pages/Settings/OptionsPage.xaml
@@ -83,31 +83,31 @@
@@ -117,16 +117,16 @@
diff --git a/src/App/Pages/Settings/OptionsPageViewModel.cs b/src/App/Pages/Settings/OptionsPageViewModel.cs
index c28e57701..2cdb2b157 100644
--- a/src/App/Pages/Settings/OptionsPageViewModel.cs
+++ b/src/App/Pages/Settings/OptionsPageViewModel.cs
@@ -12,15 +12,14 @@ namespace Bit.App.Pages
{
public class OptionsPageViewModel : BaseViewModel
{
- private readonly ITotpService _totpService;
private readonly IStateService _stateService;
private readonly IMessagingService _messagingService;
- private bool _autofillDisableSavePrompt;
+ private bool _autofillSavePrompt;
private string _autofillBlacklistedUris;
- private bool _disableFavicon;
- private bool _disableAutoTotpCopy;
+ private bool _favicon;
+ private bool _autoTotpCopy;
private int _clearClipboardSelectedIndex;
private int _themeSelectedIndex;
private int _autoDarkThemeSelectedIndex;
@@ -31,7 +30,6 @@ namespace Bit.App.Pages
public OptionsPageViewModel()
{
- _totpService = ServiceContainer.Resolve("totpService");
_stateService = ServiceContainer.Resolve("stateService");
_messagingService = ServiceContainer.Resolve("messagingService");
@@ -133,38 +131,38 @@ namespace Bit.App.Pages
}
}
- public bool DisableFavicon
+ public bool Favicon
{
- get => _disableFavicon;
+ get => _favicon;
set
{
- if (SetProperty(ref _disableFavicon, value))
+ if (SetProperty(ref _favicon, value))
{
- UpdateDisableFaviconAsync().FireAndForget();
+ UpdateFaviconAsync().FireAndForget();
}
}
}
- public bool DisableAutoTotpCopy
+ public bool AutoTotpCopy
{
- get => _disableAutoTotpCopy;
+ get => _autoTotpCopy;
set
{
- if (SetProperty(ref _disableAutoTotpCopy, value))
+ if (SetProperty(ref _autoTotpCopy, value))
{
UpdateAutoTotpCopyAsync().FireAndForget();
}
}
}
- public bool AutofillDisableSavePrompt
+ public bool AutofillSavePrompt
{
- get => _autofillDisableSavePrompt;
+ get => _autofillSavePrompt;
set
{
- if (SetProperty(ref _autofillDisableSavePrompt, value))
+ if (SetProperty(ref _autofillSavePrompt, value))
{
- UpdateAutofillDisableSavePromptAsync().FireAndForget();
+ UpdateAutofillSavePromptAsync().FireAndForget();
}
}
}
@@ -183,11 +181,11 @@ namespace Bit.App.Pages
public async Task InitAsync()
{
- AutofillDisableSavePrompt = (await _stateService.GetAutofillDisableSavePromptAsync()).GetValueOrDefault();
+ AutofillSavePrompt = !(await _stateService.GetAutofillDisableSavePromptAsync()).GetValueOrDefault();
var blacklistedUrisList = await _stateService.GetAutofillBlacklistedUrisAsync();
AutofillBlacklistedUris = blacklistedUrisList != null ? string.Join(", ", blacklistedUrisList) : null;
- DisableAutoTotpCopy = !(await _totpService.IsAutoCopyEnabledAsync());
- DisableFavicon = (await _stateService.GetDisableFaviconAsync()).GetValueOrDefault();
+ AutoTotpCopy = !(await _stateService.GetDisableAutoTotpCopyAsync() ?? false);
+ Favicon = !(await _stateService.GetDisableFaviconAsync()).GetValueOrDefault();
var theme = await _stateService.GetThemeAsync();
ThemeSelectedIndex = ThemeOptions.FindIndex(k => k.Key == theme);
var autoDarkTheme = await _stateService.GetAutoDarkThemeAsync() ?? "dark";
@@ -204,15 +202,17 @@ namespace Bit.App.Pages
{
if (_inited)
{
- await _stateService.SetDisableAutoTotpCopyAsync(DisableAutoTotpCopy);
+ // TODO: [PS-961] Fix negative function names
+ await _stateService.SetDisableAutoTotpCopyAsync(!AutoTotpCopy);
}
}
- private async Task UpdateDisableFaviconAsync()
+ private async Task UpdateFaviconAsync()
{
if (_inited)
{
- await _stateService.SetDisableFaviconAsync(DisableFavicon);
+ // TODO: [PS-961] Fix negative function names
+ await _stateService.SetDisableFaviconAsync(!Favicon);
}
}
@@ -243,11 +243,12 @@ namespace Bit.App.Pages
}
}
- private async Task UpdateAutofillDisableSavePromptAsync()
+ private async Task UpdateAutofillSavePromptAsync()
{
if (_inited)
{
- await _stateService.SetAutofillDisableSavePromptAsync(AutofillDisableSavePrompt);
+ // TODO: [PS-961] Fix negative function names
+ await _stateService.SetAutofillDisableSavePromptAsync(!AutofillSavePrompt);
}
}
diff --git a/src/App/Resources/AppResources.Designer.cs b/src/App/Resources/AppResources.Designer.cs
index 3e1ac1c0a..e25fcdcdb 100644
--- a/src/App/Resources/AppResources.Designer.cs
+++ b/src/App/Resources/AppResources.Designer.cs
@@ -1,6 +1,7 @@
//------------------------------------------------------------------------------
//
// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@@ -9,9 +10,10 @@
namespace Bit.App.Resources {
using System;
+ using System.Reflection;
- [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.1.0.0")]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
public class AppResources {
@@ -1479,15 +1481,15 @@ namespace Bit.App.Resources {
}
}
- public static string DisableAutoTotpCopyDescription {
+ public static string CopyTotpAutomaticallyDescription {
get {
- return ResourceManager.GetString("DisableAutoTotpCopyDescription", resourceCulture);
+ return ResourceManager.GetString("CopyTotpAutomaticallyDescription", resourceCulture);
}
}
- public static string DisableAutoTotpCopy {
+ public static string CopyTotpAutomatically {
get {
- return ResourceManager.GetString("DisableAutoTotpCopy", resourceCulture);
+ return ResourceManager.GetString("CopyTotpAutomatically", resourceCulture);
}
}
@@ -1917,15 +1919,15 @@ namespace Bit.App.Resources {
}
}
- public static string DisableWebsiteIcons {
+ public static string ShowWebsiteIcons {
get {
- return ResourceManager.GetString("DisableWebsiteIcons", resourceCulture);
+ return ResourceManager.GetString("ShowWebsiteIcons", resourceCulture);
}
}
- public static string DisableWebsiteIconsDescription {
+ public static string ShowWebsiteIconsDescription {
get {
- return ResourceManager.GetString("DisableWebsiteIconsDescription", resourceCulture);
+ return ResourceManager.GetString("ShowWebsiteIconsDescription", resourceCulture);
}
}
@@ -2757,15 +2759,15 @@ namespace Bit.App.Resources {
}
}
- public static string DisableSavePrompt {
+ public static string AskToAddLogin {
get {
- return ResourceManager.GetString("DisableSavePrompt", resourceCulture);
+ return ResourceManager.GetString("AskToAddLogin", resourceCulture);
}
}
- public static string DisableSavePromptDescription {
+ public static string AskToAddLoginDescription {
get {
- return ResourceManager.GetString("DisableSavePromptDescription", resourceCulture);
+ return ResourceManager.GetString("AskToAddLoginDescription", resourceCulture);
}
}
diff --git a/src/App/Resources/AppResources.resx b/src/App/Resources/AppResources.resx
index 8cd72b63f..a04488167 100644
--- a/src/App/Resources/AppResources.resx
+++ b/src/App/Resources/AppResources.resx
@@ -236,7 +236,7 @@
The button text that allows user to launch the website to their web browser.
- Help and Feedback
+ Help and feedbackHide
@@ -269,7 +269,7 @@
Title for login page. (noun)
- Log Out
+ Log outThe log out button text (verb).
@@ -412,7 +412,7 @@
Add an Item
- App Extension
+ App extensionUse the Bitwarden accessibility service to auto-fill your logins across apps and the web.
@@ -516,7 +516,7 @@
Get your master password hint
- Import Items
+ Import itemsYou can bulk import items from the bitwarden.com web vault. Do you want to visit the website now?
@@ -549,10 +549,10 @@
Immediately
- Vault Timeout
+ Vault timeout
- Vault Timeout Action
+ Vault timeout actionLogging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?
@@ -647,7 +647,7 @@
Push notifications for apple products
- Rate the App
+ Rate the appPlease consider helping us out with a good review!
@@ -701,7 +701,7 @@
What Apple calls their fingerprint reader.
- Two-step Login
+ Two-step loginTwo-step login makes your account more secure by requiring you to verify your login with another device such as a security key, authenticator app, SMS, phone call, or email. Two-step login can be enabled on the bitwarden.com web vault. Do you want to visit the website now?
@@ -710,7 +710,7 @@
Unlock with {0}
- Unlock with PIN Code
+ Unlock with PIN codeValidating
@@ -907,11 +907,11 @@
Copy TOTP
-
- If your login has an authenticator key attached to it, the TOTP verification code is automatically copied to your clipboard whenever you auto-fill the login.
+
+ If a login has an authenticator key, copy the TOTP verification code to your clip-board when you auto-fill the login.
-
- Disable Automatic TOTP Copy
+
+ Copy TOTP automaticallyA premium membership is required to use this feature.
@@ -1128,11 +1128,11 @@
Expiration
-
- Disable Website Icons
+
+ Show website icons
-
- Website Icons provide a recognizable image next to each login item in your vault.
+
+ Show a recognizable image next to each login.Icons Server URL
@@ -1311,7 +1311,7 @@
5. Select "Bitwarden"
- Password AutoFill
+ Password auto-fillThe easiest way to add new logins to your vault is by using the Bitwarden Password AutoFill extension. Learn more about using the Bitwarden Password AutoFill extension by navigating to the "Settings" screen.
@@ -1449,7 +1449,7 @@
There are no folders to list.
- Fingerprint Phrase
+ Fingerprint phraseA 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing.
@@ -1460,10 +1460,10 @@
Bitwarden allows you to share your vault items with others by using an organization account. Would you like to visit the bitwarden.com website to learn more?
- Export Vault
+ Export vault
- Lock Now
+ Lock nowPIN
@@ -1517,7 +1517,7 @@
2 minutes
- Clear Clipboard
+ Clear clipboardClipboard is the operating system thing where you copy/paste data to on your device.
@@ -1525,7 +1525,7 @@
Clipboard is the operating system thing where you copy/paste data to on your device.
- Default URI Match Detection
+ Default URI match detectionDefault URI match detection for auto-fill.
@@ -1573,14 +1573,14 @@
URIs that are blacklisted will not offer auto-fill. The list should be comma separated. Ex: "https://twitter.com, androidapp://com.twitter.android".
-
- Disable Save Prompt
+
+ Ask to add login
-
- The "Save Prompt" automatically prompts you to save new items to your vault whenever you enter them for the first time.
+
+ Ask to add an item if one isn't found in your vault.
- On App Restart
+ On app restartAuto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not enabled an auto-fill service for Bitwarden. Enable auto-fill for Bitwarden from the "Settings" screen.
@@ -2159,7 +2159,7 @@
Account removed successfully
- Delete Account
+ Delete accountDeleting your account is permanent
diff --git a/src/Core/Abstractions/ITotpService.cs b/src/Core/Abstractions/ITotpService.cs
index e0aff3c2f..717791b3a 100644
--- a/src/Core/Abstractions/ITotpService.cs
+++ b/src/Core/Abstractions/ITotpService.cs
@@ -6,6 +6,5 @@ namespace Bit.Core.Abstractions
{
Task GetCodeAsync(string key);
int GetTimeInterval(string key);
- Task IsAutoCopyEnabledAsync();
}
}
diff --git a/src/Core/Services/TotpService.cs b/src/Core/Services/TotpService.cs
index df74920d7..358dfeb51 100644
--- a/src/Core/Services/TotpService.cs
+++ b/src/Core/Services/TotpService.cs
@@ -10,14 +10,11 @@ namespace Bit.Core.Services
{
private const string SteamChars = "23456789BCDFGHJKMNPQRTVWXY";
- private readonly IStateService _stateService;
private readonly ICryptoFunctionService _cryptoFunctionService;
public TotpService(
- IStateService stateService,
ICryptoFunctionService cryptoFunctionService)
{
- _stateService = stateService;
_cryptoFunctionService = cryptoFunctionService;
}
@@ -132,11 +129,5 @@ namespace Bit.Core.Services
}
return period;
}
-
- public async Task IsAutoCopyEnabledAsync()
- {
- var disabled = await _stateService.GetDisableAutoTotpCopyAsync();
- return !disabled.GetValueOrDefault();
- }
}
}
diff --git a/src/Core/Utilities/ServiceContainer.cs b/src/Core/Utilities/ServiceContainer.cs
index 84dda33bd..dedb7e551 100644
--- a/src/Core/Utilities/ServiceContainer.cs
+++ b/src/Core/Utilities/ServiceContainer.cs
@@ -74,7 +74,7 @@ namespace Bit.Core.Utilities
});
var passwordGenerationService = new PasswordGenerationService(cryptoService, stateService,
cryptoFunctionService, policyService);
- var totpService = new TotpService(stateService, cryptoFunctionService);
+ var totpService = new TotpService(cryptoFunctionService);
var authService = new AuthService(cryptoService, cryptoFunctionService, apiService, stateService,
tokenService, appIdService, i18nService, platformUtilsService, messagingService, vaultTimeoutService,
keyConnectorService);