various settings

This commit is contained in:
Kyle Spearrin 2019-05-15 13:26:55 -04:00
parent 264028b623
commit 547cd4e828
4 changed files with 124 additions and 0 deletions

View file

@ -56,6 +56,34 @@ namespace Bit.App.Pages
{ {
_vm.Rate(); _vm.Rate();
} }
else if(item.Name == AppResources.ImportItems)
{
_vm.Import();
}
else if(item.Name == AppResources.ExportVault)
{
_vm.Export();
}
else if(item.Name == AppResources.ShareVault)
{
await _vm.ShareAsync();
}
else if(item.Name == AppResources.WebVault)
{
_vm.WebVault();
}
else if(item.Name == AppResources.ChangeMasterPassword)
{
await _vm.ChangePasswordAsync();
}
else if(item.Name == AppResources.TwoStepLogin)
{
await _vm.TwoStepAsync();
}
else if(item.Name == AppResources.LogOut)
{
await _vm.LogOutAsync();
}
} }
} }
} }

View file

@ -15,6 +15,8 @@ namespace Bit.App.Pages
private readonly ICryptoService _cryptoService; private readonly ICryptoService _cryptoService;
private readonly IUserService _userService; private readonly IUserService _userService;
private readonly IDeviceActionService _deviceActionService; private readonly IDeviceActionService _deviceActionService;
private readonly IEnvironmentService _environmentService;
private readonly IMessagingService _messagingService;
public SettingsPageViewModel() public SettingsPageViewModel()
{ {
@ -22,6 +24,8 @@ namespace Bit.App.Pages
_cryptoService = ServiceContainer.Resolve<ICryptoService>("cryptoService"); _cryptoService = ServiceContainer.Resolve<ICryptoService>("cryptoService");
_userService = ServiceContainer.Resolve<IUserService>("userService"); _userService = ServiceContainer.Resolve<IUserService>("userService");
_deviceActionService = ServiceContainer.Resolve<IDeviceActionService>("deviceActionService"); _deviceActionService = ServiceContainer.Resolve<IDeviceActionService>("deviceActionService");
_environmentService = ServiceContainer.Resolve<IEnvironmentService>("environmentService");
_messagingService = ServiceContainer.Resolve<IMessagingService>("messagingService");
PageTitle = AppResources.Settings; PageTitle = AppResources.Settings;
BuildList(); BuildList();
@ -65,6 +69,66 @@ namespace Bit.App.Pages
_deviceActionService.RateApp(); _deviceActionService.RateApp();
} }
public void Import()
{
_platformUtilsService.LaunchUri("https://help.bitwarden.com/article/import-data/");
}
public void Export()
{
_platformUtilsService.LaunchUri("https://help.bitwarden.com/article/export-your-data/");
}
public void WebVault()
{
var url = _environmentService.GetWebVaultUrl();
if(url == null)
{
url = "https://vault.bitwarden.com";
}
_platformUtilsService.LaunchUri(url);
}
public async Task ShareAsync()
{
var confirmed = await _platformUtilsService.ShowDialogAsync(AppResources.ShareVaultConfirmation,
AppResources.ShareVault, AppResources.Yes, AppResources.Cancel);
if(confirmed)
{
_platformUtilsService.LaunchUri("https://help.bitwarden.com/article/what-is-an-organization/");
}
}
public async Task TwoStepAsync()
{
var confirmed = await _platformUtilsService.ShowDialogAsync(AppResources.TwoStepLoginConfirmation,
AppResources.TwoStepLogin, AppResources.Yes, AppResources.Cancel);
if(confirmed)
{
_platformUtilsService.LaunchUri("https://help.bitwarden.com/article/setup-two-step-login/");
}
}
public async Task ChangePasswordAsync()
{
var confirmed = await _platformUtilsService.ShowDialogAsync(AppResources.ChangePasswordConfirmation,
AppResources.ChangeMasterPassword, AppResources.Yes, AppResources.Cancel);
if(confirmed)
{
_platformUtilsService.LaunchUri("https://help.bitwarden.com/article/change-your-master-password/");
}
}
public async Task LogOutAsync()
{
var confirmed = await _platformUtilsService.ShowDialogAsync(AppResources.LogoutConfirmation,
AppResources.LogOut, AppResources.Yes, AppResources.Cancel);
if(confirmed)
{
_messagingService.Send("logout");
}
}
private void BuildList() private void BuildList()
{ {
var doUpper = Device.RuntimePlatform != Device.Android; var doUpper = Device.RuntimePlatform != Device.Android;
@ -87,6 +151,13 @@ namespace Bit.App.Pages
new SettingsPageListItem { Name = AppResources.FingerprintPhrase }, new SettingsPageListItem { Name = AppResources.FingerprintPhrase },
new SettingsPageListItem { Name = AppResources.LogOut } new SettingsPageListItem { Name = AppResources.LogOut }
}; };
var toolsItems = new List<SettingsPageListItem>
{
new SettingsPageListItem { Name = AppResources.ImportItems },
new SettingsPageListItem { Name = AppResources.ExportVault },
new SettingsPageListItem { Name = AppResources.ShareVault },
new SettingsPageListItem { Name = AppResources.WebVault }
};
var otherItems = new List<SettingsPageListItem> var otherItems = new List<SettingsPageListItem>
{ {
new SettingsPageListItem { Name = AppResources.Options }, new SettingsPageListItem { Name = AppResources.Options },
@ -99,6 +170,7 @@ namespace Bit.App.Pages
new SettingsPageListGroup(manageItems, AppResources.Manage, doUpper), new SettingsPageListGroup(manageItems, AppResources.Manage, doUpper),
new SettingsPageListGroup(securityItems, AppResources.Security, doUpper), new SettingsPageListGroup(securityItems, AppResources.Security, doUpper),
new SettingsPageListGroup(accountItems, AppResources.Account, doUpper), new SettingsPageListGroup(accountItems, AppResources.Account, doUpper),
new SettingsPageListGroup(toolsItems, AppResources.Tools, doUpper),
new SettingsPageListGroup(otherItems, AppResources.Other, doUpper) new SettingsPageListGroup(otherItems, AppResources.Other, doUpper)
}; };
} }

View file

@ -1383,6 +1383,15 @@ namespace Bit.App.Resources {
} }
} }
/// <summary>
/// Looks up a localized string similar to Export Vault.
/// </summary>
public static string ExportVault {
get {
return ResourceManager.GetString("ExportVault", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to Extension Activated!. /// Looks up a localized string similar to Extension Activated!.
/// </summary> /// </summary>
@ -3192,6 +3201,15 @@ namespace Bit.App.Resources {
} }
} }
/// <summary>
/// Looks up a localized string similar to Bitwarden allows you to share your vault with others by using an organization account. Would you like to visit the bitwarden.com website to learn more?.
/// </summary>
public static string ShareVaultConfirmation {
get {
return ResourceManager.GetString("ShareVaultConfirmation", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to Create an organization to securely share your items with other users.. /// Looks up a localized string similar to Create an organization to securely share your items with other users..
/// </summary> /// </summary>

View file

@ -1475,4 +1475,10 @@
<value>Your account's fingerprint phrase</value> <value>Your account's fingerprint phrase</value>
<comment>A '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.</comment> <comment>A '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.</comment>
</data> </data>
<data name="ShareVaultConfirmation" xml:space="preserve">
<value>Bitwarden allows you to share your vault with others by using an organization account. Would you like to visit the bitwarden.com website to learn more?</value>
</data>
<data name="ExportVault" xml:space="preserve">
<value>Export Vault</value>
</data>
</root> </root>