fix display issue with dynamic fields and visible passwords (related to #96)

This commit is contained in:
Philipp Crocoll
2018-01-23 19:52:33 +01:00
parent 9fe1a904c8
commit cf21684916
2 changed files with 24 additions and 18 deletions

View File

@@ -494,7 +494,6 @@ namespace keepass2android
if (isProtected)
{
RegisterProtectedTextView(valueView, valueViewVisible);
//valueView.TransformationMethod = PasswordTransformationMethod.Instance;
}
else
@@ -503,7 +502,7 @@ namespace keepass2android
}
layout.AddView(valueViewContainer);
var stringView = new ExtraStringView(layout, valueView, keyView);
var stringView = new ExtraStringView(layout, valueView, valueViewVisible, keyView);
_stringViews.Add(key, stringView);
RegisterTextPopup(valueViewContainer, valueViewContainer.FindViewById(Resource.Id.extra_vdots), key, isProtected);
@@ -618,7 +617,9 @@ namespace keepass2android
private void RegisterProtectedTextView(TextView protectedTextView, TextView visibleTextView)
{
_protectedTextViews.Add(new ProtectedTextviewGroup { ProtectedField = protectedTextView, VisibleProtectedField = visibleTextView});
var protectedTextviewGroup = new ProtectedTextviewGroup { ProtectedField = protectedTextView, VisibleProtectedField = visibleTextView};
_protectedTextViews.Add(protectedTextviewGroup);
SetPasswordStyle(protectedTextviewGroup);
}
@@ -965,18 +966,22 @@ namespace keepass2android
private void SetPasswordStyle()
{
foreach (ProtectedTextviewGroup group in _protectedTextViews)
{
{
SetPasswordStyle(group);
}
}
group.VisibleProtectedField.Visibility = _showPassword ? ViewStates.Visible : ViewStates.Gone;
group.ProtectedField.Visibility = !_showPassword ? ViewStates.Visible : ViewStates.Gone;
private void SetPasswordStyle(ProtectedTextviewGroup group)
{
group.VisibleProtectedField.Visibility = _showPassword ? ViewStates.Visible : ViewStates.Gone;
group.ProtectedField.Visibility = !_showPassword ? ViewStates.Visible : ViewStates.Gone;
SetPasswordTypeface(group.VisibleProtectedField);
SetPasswordTypeface(group.VisibleProtectedField);
group.ProtectedField.InputType = InputTypes.ClassText | InputTypes.TextVariationPassword;
}
}
group.ProtectedField.InputType = InputTypes.ClassText | InputTypes.TextVariationPassword;
}
protected override void OnResume()
protected override void OnResume()
{
ClearCache();
base.OnResume();

View File

@@ -8,13 +8,15 @@ namespace keepass2android
{
private readonly View _container;
private readonly TextView _valueView;
private readonly TextView _keyView;
private readonly TextView _visibleValueView;
private readonly TextView _keyView;
public ExtraStringView(LinearLayout container, TextView valueView, TextView keyView)
public ExtraStringView(LinearLayout container, TextView valueView, TextView visibleValueView, TextView keyView)
{
_container = container;
_valueView = valueView;
_keyView = keyView;
_visibleValueView = visibleValueView;
_keyView = keyView;
}
public View View
@@ -29,16 +31,15 @@ namespace keepass2android
{
if (String.IsNullOrEmpty(value))
{
_valueView.Visibility = ViewStates.Gone;
_keyView.Visibility = ViewStates.Gone;
_container.Visibility = ViewStates.Gone;
}
else
{
_valueView.Visibility = ViewStates.Visible;
_keyView.Visibility = ViewStates.Visible;
_container.Visibility = ViewStates.Visible;
_valueView.Text = value;
if (_visibleValueView != null)
_visibleValueView.Text = value;
}
}
}