From 118bd4f6ee511f3cfa01d810b7983ad2d6b77d8e Mon Sep 17 00:00:00 2001 From: Philipp Crocoll Date: Mon, 15 Feb 2016 22:22:48 +0100 Subject: [PATCH] resolve field references when displaying in EntryActivity or username in grouplist --- src/keepass2android/EntryActivity.cs | 8 +++++--- src/keepass2android/views/PwEntryView.cs | 2 ++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/keepass2android/EntryActivity.cs b/src/keepass2android/EntryActivity.cs index 1bb359dd..434d70cf 100644 --- a/src/keepass2android/EntryActivity.cs +++ b/src/keepass2android/EntryActivity.cs @@ -39,6 +39,7 @@ using KeePassLib.Security; using KeePassLib.Utility; using Keepass2android.Pluginsdk; using keepass2android.Io; +using KeePass.Util.Spr; using Uri = Android.Net.Uri; namespace keepass2android @@ -341,8 +342,7 @@ namespace keepass2android _appTask = AppTask.GetTaskInOnCreate(savedInstanceState, Intent); Entry = db.Entries[uuid]; - Android.Util.Log.Debug("KP2A", "Notes: " + Entry.Strings.ReadSafe(PwDefs.NotesField)); - + // Refresh Menu contents in case onCreateMenuOptions was called before Entry was set ActivityCompat.InvalidateOptionsMenu(this); @@ -836,7 +836,9 @@ namespace keepass2android private void PopulateStandardText(int viewId, int containerViewId, String key) { - PopulateText(viewId, containerViewId, Entry.Strings.ReadSafe(key)); + String value = Entry.Strings.ReadSafe(key); + value = SprEngine.Compile(value, new SprContext(Entry, App.Kp2a.GetDb().KpDatabase, SprCompileFlags.All)); + PopulateText(viewId, containerViewId, value); _stringViews.Add(key, new StandardStringView(viewId, containerViewId, this)); } diff --git a/src/keepass2android/views/PwEntryView.cs b/src/keepass2android/views/PwEntryView.cs index 611263b6..81e40c75 100644 --- a/src/keepass2android/views/PwEntryView.cs +++ b/src/keepass2android/views/PwEntryView.cs @@ -24,6 +24,7 @@ using KeePassLib; using Android.Text; using Android.Text.Style; using Android.Preferences; +using KeePass.Util.Spr; namespace keepass2android.view @@ -134,6 +135,7 @@ namespace keepass2android.view _textView.SetTextColor(new Color((int)_defaultTextColor)); String detail = pw.Strings.ReadSafe(PwDefs.UserNameField); + detail = SprEngine.Compile(detail, new SprContext(_entry, App.Kp2a.GetDb().KpDatabase, SprCompileFlags.All)); if ((_showDetail == false) || (String.IsNullOrEmpty(detail))) {