diff --git a/src/java/KP2ASoftkeyboard_AS/app/app.iml b/src/java/KP2ASoftkeyboard_AS/app/app.iml
index 68bc961f..8850bf9e 100644
--- a/src/java/KP2ASoftkeyboard_AS/app/app.iml
+++ b/src/java/KP2ASoftkeyboard_AS/app/app.iml
@@ -58,18 +58,18 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/src/java/KP2ASoftkeyboard_AS/app/build/outputs/aar/app-debug.aar b/src/java/KP2ASoftkeyboard_AS/app/build/outputs/aar/app-debug.aar
index 01958164..2018c3c6 100644
Binary files a/src/java/KP2ASoftkeyboard_AS/app/build/outputs/aar/app-debug.aar and b/src/java/KP2ASoftkeyboard_AS/app/build/outputs/aar/app-debug.aar differ
diff --git a/src/java/KP2ASoftkeyboard_AS/app/src/main/java/keepass2android/autofill/AutoFillService.java b/src/java/KP2ASoftkeyboard_AS/app/src/main/java/keepass2android/autofill/AutoFillService.java
index 32cc7713..f6ede194 100644
--- a/src/java/KP2ASoftkeyboard_AS/app/src/main/java/keepass2android/autofill/AutoFillService.java
+++ b/src/java/KP2ASoftkeyboard_AS/app/src/main/java/keepass2android/autofill/AutoFillService.java
@@ -69,12 +69,19 @@ public class AutoFillService extends AccessibilityService {
}
}
+ boolean isLauncherPackage(CharSequence packageName)
+ {
+ return "com.android.systemui".equals(packageName)
+ || "com.android.launcher3".equals(packageName);
+ }
+
@TargetApi(21)
class SystemUiCondition implements NodeCondition
{
@Override
public boolean check(AccessibilityNodeInfo n) {
- return (n.getViewIdResourceName() != null) && (n.getViewIdResourceName().startsWith("com.android.systemui"));
+ return (n.getViewIdResourceName() != null) && (
+ (n.getViewIdResourceName().startsWith("com.android.systemui")) || (n.getViewIdResourceName().startsWith("com.android.launcher3")));
}
}
@@ -127,14 +134,14 @@ public class AutoFillService extends AccessibilityService {
{
CharSequence packageName = event.getPackageName();
android.util.Log.d(_logTag, "event: " + event.getEventType() + ", package = " + packageName);
- if ( "com.android.systemui".equals(event.getPackageName()) )
+ if ( isLauncherPackage(event.getPackageName()) )
{
android.util.Log.d(_logTag, "return.");
return; //avoid that the notification is cancelled when pulling down notif drawer
}
else
{
- android.util.Log.d(_logTag, "no com.android.systemui");
+ android.util.Log.d(_logTag, "event package is no launcher");
}
if ((packageName != null)
@@ -145,6 +152,17 @@ public class AutoFillService extends AccessibilityService {
}
AccessibilityNodeInfo root = getRootInActiveWindow();
+
+ if ( isLauncherPackage(root.getPackageName()) )
+ {
+ android.util.Log.d(_logTag, "return, root is from launcher.");
+ return; //avoid that the notification is cancelled when pulling down notif drawer
+ }
+ else
+ {
+ android.util.Log.d(_logTag, "root package is no launcher");
+ }
+
int eventWindowId = event.getWindowId();
if ((ExistsNodeOrChildren(root, new WindowIdCondition(eventWindowId)) && !ExistsNodeOrChildren(root, new SystemUiCondition())))
{
@@ -158,6 +176,11 @@ public class AutoFillService extends AccessibilityService {
url = urlFromAddressFields(urlFields, url);
}
+ else if (packageName == "com.sec.android.app.sbrowser")
+ {
+ List urlFields = root.findAccessibilityNodeInfosByViewId("com.sec.android.app.sbrowser:id/location_bar_edit_text");
+ url = urlFromAddressFields(urlFields, url);
+ }
else if ("com.android.browser".equals(root.getPackageName()))
{
List urlFields = root.findAccessibilityNodeInfosByViewId("com.android.browser:id/url");