Compare commits
1 Commits
2449--igno
...
2488-fix-c
Author | SHA1 | Date | |
---|---|---|---|
![]() |
f4b5eee171 |
@@ -434,7 +434,7 @@ namespace Kp2aAutofillParser
|
||||
public static List<string> ConvertToCanonicalLowerCaseHints(string[] supportedHints)
|
||||
{
|
||||
List<string> result = new List<string>();
|
||||
foreach (string hint in supportedHints)
|
||||
foreach (string hint in supportedHints.Where(h => h != null))
|
||||
{
|
||||
var canonicalHint = ToCanonicalHint(hint);
|
||||
result.Add(canonicalHint.ToLower());
|
||||
@@ -829,7 +829,7 @@ namespace Kp2aAutofillParser
|
||||
// * if there is no such autofill hint, we use IsPassword to
|
||||
|
||||
HashSet<string> autofillHintsOfAllFields = autofillView.InputFields.Where(f => f.AutofillHints != null)
|
||||
.SelectMany(f => f.AutofillHints).Select(AutofillHintsHelper.ToCanonicalHint).ToHashSet();
|
||||
.SelectMany(f => f.AutofillHints).Where(x => x != null).Select(AutofillHintsHelper.ToCanonicalHint).ToHashSet();
|
||||
bool hasLoginAutofillHints = autofillHintsOfAllFields.Intersect(_autofillHintsForLogin).Any();
|
||||
|
||||
if (hasLoginAutofillHints)
|
||||
@@ -839,9 +839,9 @@ namespace Kp2aAutofillParser
|
||||
string[] viewHints = viewNode.AutofillHints;
|
||||
if (viewHints == null)
|
||||
continue;
|
||||
if (viewHints.Select(AutofillHintsHelper.ToCanonicalHint).Intersect(_autofillHintsForLogin).Any())
|
||||
if (viewHints.Where(h => h != null).Select(AutofillHintsHelper.ToCanonicalHint).Intersect(_autofillHintsForLogin).Any())
|
||||
{
|
||||
AddFieldToHintMap(viewNode, viewHints.Select(AutofillHintsHelper.ToCanonicalHint).ToHashSet().ToArray());
|
||||
AddFieldToHintMap(viewNode, viewHints.Where(h => h != null).Select(AutofillHintsHelper.ToCanonicalHint).ToHashSet().ToArray());
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -71,12 +71,6 @@ namespace Kp2aAutofillParserTest
|
||||
var resourceName = "Kp2aAutofillParserTest.com-expressvpn-vpn-android13.json";
|
||||
RunTestFromAutofillInput(resourceName, "com.expressvpn.vpn", null);
|
||||
}
|
||||
[Fact]
|
||||
public void TestIgnoresAndroidSettings()
|
||||
{
|
||||
var resourceName = "Kp2aAutofillParserTest.android14-settings.json";
|
||||
RunTestFromAutofillInput(resourceName, "com.android.settings", null);
|
||||
}
|
||||
|
||||
private void RunTestFromAutofillInput(string resourceName, string expectedPackageName = null, string expectedWebDomain = null)
|
||||
{
|
||||
|
@@ -9,7 +9,6 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Remove="android14-settings.json" />
|
||||
<None Remove="chrome-android10-amazon-it.json" />
|
||||
<None Remove="com-expressvpn-vpn-android13.json" />
|
||||
<None Remove="com-ifs-banking-fiid3364-android13.json" />
|
||||
@@ -55,9 +54,6 @@
|
||||
<EmbeddedResource Include="com-servicenet-mobile-no-focus.json">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="android14-settings.json">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="imdb.json">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</EmbeddedResource>
|
||||
|
@@ -1,99 +0,0 @@
|
||||
{
|
||||
"InputFields": [
|
||||
{
|
||||
"IdEntry": null,
|
||||
"Hint": null,
|
||||
"ClassName": "android.widget.FrameLayout",
|
||||
"AutofillHints": null,
|
||||
"IsFocused": false,
|
||||
"InputType": 0,
|
||||
"HtmlInfoTag": null,
|
||||
"HtmlInfoTypeAttribute": null
|
||||
},
|
||||
{
|
||||
"IdEntry": "content_parent",
|
||||
"Hint": null,
|
||||
"ClassName": "android.widget.LinearLayout",
|
||||
"AutofillHints": null,
|
||||
"IsFocused": false,
|
||||
"InputType": 0,
|
||||
"HtmlInfoTag": null,
|
||||
"HtmlInfoTypeAttribute": null
|
||||
},
|
||||
{
|
||||
"IdEntry": "content_frame",
|
||||
"Hint": null,
|
||||
"ClassName": "android.widget.FrameLayout",
|
||||
"AutofillHints": null,
|
||||
"IsFocused": false,
|
||||
"InputType": 0,
|
||||
"HtmlInfoTag": null,
|
||||
"HtmlInfoTypeAttribute": null
|
||||
},
|
||||
{
|
||||
"IdEntry": "main_content",
|
||||
"Hint": null,
|
||||
"ClassName": "android.widget.FrameLayout",
|
||||
"AutofillHints": null,
|
||||
"IsFocused": false,
|
||||
"InputType": 0,
|
||||
"HtmlInfoTag": null,
|
||||
"HtmlInfoTypeAttribute": null
|
||||
},
|
||||
{
|
||||
"IdEntry": "password_entry",
|
||||
"Hint": null,
|
||||
"ClassName": "android.widget.EditText",
|
||||
"AutofillHints": [
|
||||
"passwordAuto"
|
||||
],
|
||||
"IsFocused": true,
|
||||
"InputType": 18,
|
||||
"HtmlInfoTag": null,
|
||||
"HtmlInfoTypeAttribute": null,
|
||||
"ExpectedAssignedHints": [ "password" ]
|
||||
},
|
||||
{
|
||||
"IdEntry": "checkbox",
|
||||
"Hint": null,
|
||||
"ClassName": "android.widget.CheckBox",
|
||||
"AutofillHints": null,
|
||||
"IsFocused": false,
|
||||
"InputType": 0,
|
||||
"HtmlInfoTag": null,
|
||||
"HtmlInfoTypeAttribute": null
|
||||
},
|
||||
{
|
||||
"IdEntry": "button_bar",
|
||||
"Hint": null,
|
||||
"ClassName": "android.widget.RelativeLayout",
|
||||
"AutofillHints": null,
|
||||
"IsFocused": false,
|
||||
"InputType": 0,
|
||||
"HtmlInfoTag": null,
|
||||
"HtmlInfoTypeAttribute": null
|
||||
},
|
||||
{
|
||||
"IdEntry": "switch_bar",
|
||||
"Hint": null,
|
||||
"ClassName": "android.widget.LinearLayout",
|
||||
"AutofillHints": null,
|
||||
"IsFocused": false,
|
||||
"InputType": 0,
|
||||
"HtmlInfoTag": null,
|
||||
"HtmlInfoTypeAttribute": null
|
||||
},
|
||||
{
|
||||
"IdEntry": "action_bar",
|
||||
"Hint": null,
|
||||
"ClassName": "android.view.ViewGroup",
|
||||
"AutofillHints": null,
|
||||
"IsFocused": false,
|
||||
"InputType": 0,
|
||||
"HtmlInfoTag": null,
|
||||
"HtmlInfoTypeAttribute": null
|
||||
}
|
||||
],
|
||||
"PackageId": "com.android.settings",
|
||||
"WebDomain": null
|
||||
}
|
@@ -40,26 +40,6 @@ namespace keepass2android.services.AutofillBase
|
||||
|
||||
public abstract class AutofillServiceBase: AutofillService
|
||||
{
|
||||
private HashSet<string> _internal_blacklistedUris = null;
|
||||
|
||||
public HashSet<string> BlacklistedUris
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_internal_blacklistedUris == null)
|
||||
{
|
||||
_internal_blacklistedUris = new HashSet<string>()
|
||||
{
|
||||
KeePass.AndroidAppScheme + "android",
|
||||
KeePass.AndroidAppScheme + "com.android.settings",
|
||||
KeePass.AndroidAppScheme + this.PackageName
|
||||
};
|
||||
}
|
||||
|
||||
return _internal_blacklistedUris;
|
||||
|
||||
}
|
||||
}
|
||||
protected override void AttachBaseContext(Context baseContext)
|
||||
{
|
||||
base.AttachBaseContext(LocaleManager.setLocale(baseContext));
|
||||
@@ -406,7 +386,7 @@ namespace keepass2android.services.AutofillBase
|
||||
|
||||
private bool CanAutofill(StructureParser.AutofillTargetId query, bool isManual)
|
||||
{
|
||||
if (BlacklistedUris.Contains(query.PackageNameWithPseudoSchema))
|
||||
if (query.PackageNameWithPseudoSchema == KeePass.AndroidAppScheme+"android" || query.PackageNameWithPseudoSchema == KeePass.AndroidAppScheme + this.PackageName)
|
||||
return false;
|
||||
if (!isManual)
|
||||
{
|
||||
|
Reference in New Issue
Block a user