Merge "Compare only 20 characters when find label on watch" into pie-cts-dev
diff --git a/hostsidetests/appsecurity/test-apps/UsePermissionApp23/src/com/android/cts/usepermission/BasePermissionsTest.java b/hostsidetests/appsecurity/test-apps/UsePermissionApp23/src/com/android/cts/usepermission/BasePermissionsTest.java
index eb942a3..2c412e7 100644
--- a/hostsidetests/appsecurity/test-apps/UsePermissionApp23/src/com/android/cts/usepermission/BasePermissionsTest.java
+++ b/hostsidetests/appsecurity/test-apps/UsePermissionApp23/src/com/android/cts/usepermission/BasePermissionsTest.java
@@ -474,7 +474,15 @@
}
private static AccessibilityNodeInfo findByText(AccessibilityNodeInfo root, String text) {
+ if (root == null) {
+ return null;
+ }
List<AccessibilityNodeInfo> nodes = root.findAccessibilityNodeInfosByText(text);
+ PackageManager packageManager = InstrumentationRegistry.getTargetContext().getPackageManager();
+ boolean isWatch = packageManager.hasSystemFeature(PackageManager.FEATURE_WATCH);
+ if (isWatch) {
+ return findByTextForWatch(root, text);
+ }
for (AccessibilityNodeInfo node : nodes) {
if (node.getText().toString().equals(text)) {
return node;
@@ -483,6 +491,21 @@
return null;
}
+ private static AccessibilityNodeInfo findByTextForWatch(AccessibilityNodeInfo root, String text) {
+ String trimmedText = trimText(text);
+ List<AccessibilityNodeInfo> nodes = root.findAccessibilityNodeInfosByText(trimmedText);
+ for (AccessibilityNodeInfo node : nodes) {
+ if (trimText(node.getText().toString()).equals(trimmedText)) {
+ return node;
+ }
+ }
+ return null;
+ }
+
+ private static String trimText(String text) {
+ return text != null ? text.substring(0, Math.min(text.length(), 20)) : null;
+ }
+
private static AccessibilityNodeInfo findByTextInCollection(AccessibilityNodeInfo root,
String text) throws Exception {
AccessibilityNodeInfo result;