From 186f839569d0022e8ae9548976d807167648165d Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Mon, 27 Nov 2017 11:54:31 -0500 Subject: [PATCH] exclude search fields from password filter --- src/Android/Autofill/Field.cs | 2 ++ src/Android/Autofill/FieldCollection.cs | 14 +++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/Android/Autofill/Field.cs b/src/Android/Autofill/Field.cs index 7e53e04d0..ca23b5f8b 100644 --- a/src/Android/Autofill/Field.cs +++ b/src/Android/Autofill/Field.cs @@ -25,6 +25,7 @@ namespace Bit.Android.Autofill Visible = node.Visibility == ViewStates.Visible; Hints = FilterForSupportedHints(node.GetAutofillHints()); AutofillOptions = node.GetAutofillOptions()?.ToList(); + Node = node; if(node.AutofillValue != null) { @@ -76,6 +77,7 @@ namespace Bit.Android.Autofill public long? DateValue { get; set; } public int? ListValue { get; set; } public bool? ToggleValue { get; set; } + public ViewNode Node { get; private set; } private void UpdateSaveTypeFromHints() { diff --git a/src/Android/Autofill/FieldCollection.cs b/src/Android/Autofill/FieldCollection.cs index 6f02c713c..5b75be00c 100644 --- a/src/Android/Autofill/FieldCollection.cs +++ b/src/Android/Autofill/FieldCollection.cs @@ -59,11 +59,15 @@ namespace Bit.Android.Autofill else { _passwordFields = Fields - .Where(f => - f.InputType.HasFlag(InputTypes.TextVariationPassword) || - f.InputType.HasFlag(InputTypes.TextVariationVisiblePassword) || - f.InputType.HasFlag(InputTypes.TextVariationWebPassword)) - .ToList(); + .Where(f => + !f.IdEntry.ToLowerInvariant().Contains("search") && + (!f.Node.Hint?.ToLowerInvariant().Contains("search") ?? true) && + ( + f.InputType.HasFlag(InputTypes.TextVariationPassword) || + f.InputType.HasFlag(InputTypes.TextVariationVisiblePassword) || + f.InputType.HasFlag(InputTypes.TextVariationWebPassword) + ) + ).ToList(); if(!_passwordFields.Any()) { _passwordFields = Fields.Where(f => f.IdEntry?.ToLower().Contains("password") ?? false).ToList();