diff --git a/src/Android/Autofill/FieldCollection.cs b/src/Android/Autofill/FieldCollection.cs index a01aaad70..63d2e512b 100644 --- a/src/Android/Autofill/FieldCollection.cs +++ b/src/Android/Autofill/FieldCollection.cs @@ -12,7 +12,7 @@ namespace Bit.Droid.Autofill private List _passwordFields = null; private List _usernameFields = null; private HashSet _ignoreSearchTerms = new HashSet { "search", "find", "recipient", "edit" }; - private HashSet _usernameTerms = new HashSet { "email", "phone", "username"}; + private HashSet _usernameTerms = new HashSet { "email", "phone", "username" }; private HashSet _passwordTerms = new HashSet { "password", "pswd" }; public List AutofillIds { get; private set; } = new List(); @@ -54,15 +54,14 @@ namespace Bit.Droid.Autofill if (HintToFieldsMap.ContainsKey(View.AutofillHintPassword)) { _passwordFields.AddRange(HintToFieldsMap[View.AutofillHintPassword]); + return _passwordFields; } } - else + + _passwordFields = Fields.Where(f => FieldIsPassword(f)).ToList(); + if (!_passwordFields.Any()) { - _passwordFields = Fields.Where(f => FieldIsPassword(f)).ToList(); - if (!_passwordFields.Any()) - { - _passwordFields = Fields.Where(f => FieldHasPasswordTerms(f)).ToList(); - } + _passwordFields = Fields.Where(f => FieldHasPasswordTerms(f)).ToList(); } return _passwordFields; } @@ -87,24 +86,26 @@ namespace Bit.Droid.Autofill { _usernameFields.AddRange(HintToFieldsMap[View.AutofillHintUsername]); } + if (_usernameFields.Any()) + { + return _usernameFields; + } } - else - { - foreach (var passwordField in PasswordFields) - { - var usernameField = Fields.TakeWhile(f => f.AutofillId != passwordField.AutofillId) - .LastOrDefault(); - if (usernameField != null) - { - _usernameFields.Add(usernameField); - } - } - if (!_usernameFields.Any()) + foreach (var passwordField in PasswordFields) + { + var usernameField = Fields.TakeWhile(f => f.AutofillId != passwordField.AutofillId) + .LastOrDefault(); + if (usernameField != null) { - _usernameFields = Fields.Where(f => FieldIsUsername(f)).ToList(); + _usernameFields.Add(usernameField); } } + + if (!_usernameFields.Any()) + { + _usernameFields = Fields.Where(f => FieldIsUsername(f)).ToList(); + } return _usernameFields; } }