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
	 Philipp Crocoll
					Philipp Crocoll