Compare commits

..

1 Commits

5 changed files with 15 additions and 9 deletions

View File

@@ -434,7 +434,7 @@ namespace Kp2aAutofillParser
public static List<string> ConvertToCanonicalLowerCaseHints(string[] supportedHints) public static List<string> ConvertToCanonicalLowerCaseHints(string[] supportedHints)
{ {
List<string> result = new List<string>(); List<string> result = new List<string>();
foreach (string hint in supportedHints.Where(h => h != null)) foreach (string hint in supportedHints)
{ {
var canonicalHint = ToCanonicalHint(hint); var canonicalHint = ToCanonicalHint(hint);
result.Add(canonicalHint.ToLower()); result.Add(canonicalHint.ToLower());
@@ -829,7 +829,7 @@ namespace Kp2aAutofillParser
// * if there is no such autofill hint, we use IsPassword to // * if there is no such autofill hint, we use IsPassword to
HashSet<string> autofillHintsOfAllFields = autofillView.InputFields.Where(f => f.AutofillHints != null) HashSet<string> autofillHintsOfAllFields = autofillView.InputFields.Where(f => f.AutofillHints != null)
.SelectMany(f => f.AutofillHints).Where(x => x != null).Select(AutofillHintsHelper.ToCanonicalHint).ToHashSet(); .SelectMany(f => f.AutofillHints).Select(AutofillHintsHelper.ToCanonicalHint).ToHashSet();
bool hasLoginAutofillHints = autofillHintsOfAllFields.Intersect(_autofillHintsForLogin).Any(); bool hasLoginAutofillHints = autofillHintsOfAllFields.Intersect(_autofillHintsForLogin).Any();
if (hasLoginAutofillHints) if (hasLoginAutofillHints)
@@ -839,9 +839,9 @@ namespace Kp2aAutofillParser
string[] viewHints = viewNode.AutofillHints; string[] viewHints = viewNode.AutofillHints;
if (viewHints == null) if (viewHints == null)
continue; continue;
if (viewHints.Where(h => h != null).Select(AutofillHintsHelper.ToCanonicalHint).Intersect(_autofillHintsForLogin).Any()) if (viewHints.Select(AutofillHintsHelper.ToCanonicalHint).Intersect(_autofillHintsForLogin).Any())
{ {
AddFieldToHintMap(viewNode, viewHints.Where(h => h != null).Select(AutofillHintsHelper.ToCanonicalHint).ToHashSet().ToArray()); AddFieldToHintMap(viewNode, viewHints.Select(AutofillHintsHelper.ToCanonicalHint).ToHashSet().ToArray());
} }
} }

View File

@@ -937,10 +937,9 @@ namespace keepass2android
iv.SetImageDrawable(Resources.GetDrawable(Resource.Drawable.ic00)); iv.SetImageDrawable(Resources.GetDrawable(Resource.Drawable.ic00));
} }
SupportActionBar.Title = Entry.Strings.ReadSafe(PwDefs.TitleField); SupportActionBar.Title = Entry.Strings.ReadSafe(PwDefs.TitleField);
SupportActionBar.SetDisplayHomeAsUpEnabled(true); SupportActionBar.Title = SprEngine.Compile(SupportActionBar.Title, new SprContext(Entry, App.Kp2a.CurrentDb.KpDatabase, SprCompileFlags.All));
SupportActionBar.SetDisplayHomeAsUpEnabled(true);
SupportActionBar.SetHomeButtonEnabled(true); SupportActionBar.SetHomeButtonEnabled(true);
PopulateGroupText (Resource.Id.entry_group_name, Resource.Id.entryfield_group_container, KeyGroupFullPath); PopulateGroupText (Resource.Id.entry_group_name, Resource.Id.entryfield_group_container, KeyGroupFullPath);

View File

@@ -30,6 +30,7 @@ using KeePassLib;
using KeePassLib.Utility; using KeePassLib.Utility;
using System.Threading; using System.Threading;
using System.Collections.Generic; using System.Collections.Generic;
using KeePass.Util.Spr;
namespace keepass2android.search namespace keepass2android.search
{ {
@@ -294,7 +295,10 @@ namespace keepass2android.search
return Position.ToString(CultureInfo.InvariantCulture); return Position.ToString(CultureInfo.InvariantCulture);
case 1: // SuggestColumnText1 case 1: // SuggestColumnText1
string username = CurrentEntry.Strings.ReadSafe(PwDefs.UserNameField); string username = CurrentEntry.Strings.ReadSafe(PwDefs.UserNameField);
return CurrentEntry.Strings.ReadSafe(PwDefs.TitleField) + (string.IsNullOrWhiteSpace(username) ? "" : " ("+username+")"); username = SprEngine.Compile(username, new SprContext(CurrentEntry, App.Kp2a.CurrentDb.KpDatabase, SprCompileFlags.All));
var title = CurrentEntry.Strings.ReadSafe(PwDefs.TitleField);
title = SprEngine.Compile(title, new SprContext(CurrentEntry, App.Kp2a.CurrentDb.KpDatabase, SprCompileFlags.All));
return title + (string.IsNullOrWhiteSpace(username) ? "" : " ("+username+")");
case 2: // SuggestColumnText2 case 2: // SuggestColumnText2
return Internationalise(_entriesWithContexts[Position].resultContext); return Internationalise(_entriesWithContexts[Position].resultContext);
case 3: // SuggestColumnIcon1 case 3: // SuggestColumnIcon1

View File

@@ -10,6 +10,7 @@ using Android.OS;
using Android.Runtime; using Android.Runtime;
using Android.Views; using Android.Views;
using Android.Widget; using Android.Widget;
using KeePass.Util.Spr;
using keepass2android.services.AutofillBase; using keepass2android.services.AutofillBase;
using keepass2android.services.AutofillBase.model; using keepass2android.services.AutofillBase.model;
using Keepass2android.Pluginsdk; using Keepass2android.Pluginsdk;
@@ -108,6 +109,7 @@ namespace keepass2android.services.Kp2aAutofill
fieldCollection.DatasetName = pwEntry.Strings.ReadSafe(PwDefs.TitleField); fieldCollection.DatasetName = pwEntry.Strings.ReadSafe(PwDefs.TitleField);
fieldCollection.DatasetName = SprEngine.Compile(fieldCollection.DatasetName, new SprContext(pwEntry, App.Kp2a.CurrentDb.KpDatabase, SprCompileFlags.All));
return fieldCollection; return fieldCollection;
} }

View File

@@ -125,7 +125,8 @@ namespace keepass2android.view
} }
String title = pw.Strings.ReadSafe(PwDefs.TitleField); String title = pw.Strings.ReadSafe(PwDefs.TitleField);
var str = new SpannableString(title); title = SprEngine.Compile(title, new SprContext(_entry, db.KpDatabase, SprCompileFlags.All));
var str = new SpannableString(title);
if (isExpired) if (isExpired)
{ {