From 9650e4407856ac4d3fb2f5880b24c2b055556b10 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Mon, 29 Apr 2019 13:51:05 -0400 Subject: [PATCH] field logic --- src/App/Models/ViewFieldViewModel.cs | 34 ++++++++++++++++++++- src/App/Pages/Vault/ViewPage.xaml | 35 ++++++++++++++++++++-- src/App/Pages/Vault/ViewPageViewModel.cs | 11 +++++++ src/App/Resources/AppResources.Designer.cs | 9 ++++++ src/App/Resources/AppResources.resx | 3 ++ 5 files changed, 88 insertions(+), 4 deletions(-) diff --git a/src/App/Models/ViewFieldViewModel.cs b/src/App/Models/ViewFieldViewModel.cs index e3bd62961..8bba95145 100644 --- a/src/App/Models/ViewFieldViewModel.cs +++ b/src/App/Models/ViewFieldViewModel.cs @@ -1,15 +1,18 @@ using Bit.App.Pages; using Bit.Core.Models.View; +using Xamarin.Forms; namespace Bit.App.Models { public class ViewFieldViewModel : BaseViewModel { private FieldView _field; + private bool _showHiddenValue; public ViewFieldViewModel(FieldView field) { Field = field; + ToggleHiddenValueCommand = new Command(ToggleHiddenValue); } public FieldView Field @@ -18,8 +21,37 @@ namespace Bit.App.Models set => SetProperty(ref _field, value, additionalPropertyNames: new string[] { - + nameof(ValueText), + nameof(IsBooleanType), + nameof(IsHiddenType), + nameof(IsTextType), + nameof(ShowCopyButton), }); } + + public bool ShowHiddenValue + { + get => _showHiddenValue; + set => SetProperty(ref _showHiddenValue, value, + additionalPropertyNames: new string[] + { + nameof(ShowHiddenValueIcon) + }); + } + + public Command ToggleHiddenValueCommand { get; set; } + + public string ValueText => IsBooleanType ? (_field.Value == "true" ? "" : "") : _field.Value; + public string ShowHiddenValueIcon => _showHiddenValue ? "" : ""; + public bool IsTextType => _field.Type == Core.Enums.FieldType.Text; + public bool IsBooleanType => _field.Type == Core.Enums.FieldType.Boolean; + public bool IsHiddenType => _field.Type == Core.Enums.FieldType.Hidden; + public bool ShowCopyButton => _field.Type != Core.Enums.FieldType.Boolean && + !string.IsNullOrWhiteSpace(_field.Value); + + public void ToggleHiddenValue() + { + ShowHiddenValue = !ShowHiddenValue; + } } } diff --git a/src/App/Pages/Vault/ViewPage.xaml b/src/App/Pages/Vault/ViewPage.xaml index 21e7818ac..2f955b61b 100644 --- a/src/App/Pages/Vault/ViewPage.xaml +++ b/src/App/Pages/Vault/ViewPage.xaml @@ -490,6 +490,7 @@ +