detect com.android.launcher3 as launcher (previously only com.android.systemui),
also detect launcher from root.getPackageName(), see #19 support for Samsung Browser
This commit is contained in:
@@ -58,18 +58,18 @@
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
|
||||
|
||||
Binary file not shown.
@@ -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<AccessibilityNodeInfo> 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<AccessibilityNodeInfo> urlFields = root.findAccessibilityNodeInfosByViewId("com.android.browser:id/url");
|
||||
|
||||
Reference in New Issue
Block a user