Compare commits

..

1 Commits

5 changed files with 26 additions and 11 deletions

View File

@@ -937,10 +937,9 @@ namespace keepass2android
iv.SetImageDrawable(Resources.GetDrawable(Resource.Drawable.ic00));
}
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);
PopulateGroupText (Resource.Id.entry_group_name, Resource.Id.entryfield_group_container, KeyGroupFullPath);

View File

@@ -31,8 +31,17 @@ namespace PluginTOTP
_muteWarnings = muteWarnings;
}
internal bool HasSeed(IDictionary<string, string> entryFields)
/// <summary>
/// Check if specified Entry contains Settings that are not null.
/// </summary>
internal bool SettingsCheck(IDictionary<string, string> entryFields)
{
string settings;
entryFields.TryGetValue(SettingsFieldName, out settings);
return !String.IsNullOrEmpty(settings);
}
internal bool SeedCheck(IDictionary<string, string> entryFields)
{
string seed;
entryFields.TryGetValue(SeedFieldName, out seed);
@@ -91,15 +100,15 @@ namespace PluginTOTP
}
private string[] SettingsGet(IDictionary<string, string> entryFields)
{
return entryFields.TryGetValue(SettingsFieldName, out var settings) ? settings.Split(';') : new[] { "30", "6" };
}
{
return entryFields[SettingsFieldName].Split(';');
}
public TotpData GetTotpData(IDictionary<string, string> entryFields)
{
TotpData res = new TotpData();
if (HasSeed(entryFields))
if (SettingsCheck(entryFields) && SeedCheck(entryFields))
{
bool ValidInterval; bool ValidLength; bool ValidUrl;
if (SettingsValidate(entryFields, out ValidInterval, out ValidLength, out ValidUrl))

View File

@@ -30,6 +30,7 @@ using KeePassLib;
using KeePassLib.Utility;
using System.Threading;
using System.Collections.Generic;
using KeePass.Util.Spr;
namespace keepass2android.search
{
@@ -294,7 +295,10 @@ namespace keepass2android.search
return Position.ToString(CultureInfo.InvariantCulture);
case 1: // SuggestColumnText1
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
return Internationalise(_entriesWithContexts[Position].resultContext);
case 3: // SuggestColumnIcon1

View File

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

View File

@@ -125,7 +125,8 @@ namespace keepass2android.view
}
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)
{