make settings field for TrayTotp style otp entries optional

closes https://github.com/PhilippC/keepass2android/issues/2458
This commit is contained in:
Philipp Crocoll
2024-01-03 08:06:20 +01:00
parent 2e9400cf4d
commit c934755e1c

View File

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