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");