From c6c25f9e28a4de73261106a80ae098347524dd2a Mon Sep 17 00:00:00 2001 From: Svetoslav Ganov Date: Fri, 9 Mar 2012 16:01:18 -0800 Subject: [PATCH] AccessibilityServiceInfo does not convert correctly feedback type to string. 1. When the feedback type is set to TYPES_ALL_MASK the method feedbackTypeToString was not generating a string with all feedback types. Also the generated string sometimes could have a comma appended after the last feedback type name - this happens if the feedback type contains unknown type flag. Change-Id: I848c520cf7dae16dcd882f68275869c7ab656dd7 --- .../AccessibilityServiceInfo.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/core/java/android/accessibilityservice/AccessibilityServiceInfo.java b/core/java/android/accessibilityservice/AccessibilityServiceInfo.java index eae0a4c1bec8f..b55fda4af6550 100644 --- a/core/java/android/accessibilityservice/AccessibilityServiceInfo.java +++ b/core/java/android/accessibilityservice/AccessibilityServiceInfo.java @@ -503,26 +503,38 @@ public class AccessibilityServiceInfo implements Parcelable { public static String feedbackTypeToString(int feedbackType) { StringBuilder builder = new StringBuilder(); builder.append("["); - while (feedbackType > 0) { + while (feedbackType != 0) { final int feedbackTypeFlag = 1 << Integer.numberOfTrailingZeros(feedbackType); feedbackType &= ~feedbackTypeFlag; - if (builder.length() > 1) { - builder.append(", "); - } switch (feedbackTypeFlag) { case FEEDBACK_AUDIBLE: + if (builder.length() > 1) { + builder.append(", "); + } builder.append("FEEDBACK_AUDIBLE"); break; case FEEDBACK_HAPTIC: + if (builder.length() > 1) { + builder.append(", "); + } builder.append("FEEDBACK_HAPTIC"); break; case FEEDBACK_GENERIC: + if (builder.length() > 1) { + builder.append(", "); + } builder.append("FEEDBACK_GENERIC"); break; case FEEDBACK_SPOKEN: + if (builder.length() > 1) { + builder.append(", "); + } builder.append("FEEDBACK_SPOKEN"); break; case FEEDBACK_VISUAL: + if (builder.length() > 1) { + builder.append(", "); + } builder.append("FEEDBACK_VISUAL"); break; }