Merge "Accessibility API in the compat lib should return empty lists and NPE in AccessibilityDelegateCompat." into ics-mr0
diff --git a/v4/java/android/support/v4/android/accessibilityservice/AccessibilityServiceInfoCompat.java b/v4/java/android/support/v4/android/accessibilityservice/AccessibilityServiceInfoCompat.java
index 4e52a39..11a28bb 100644
--- a/v4/java/android/support/v4/android/accessibilityservice/AccessibilityServiceInfoCompat.java
+++ b/v4/java/android/support/v4/android/accessibilityservice/AccessibilityServiceInfoCompat.java
@@ -185,22 +185,34 @@
      * @return The string representation.
      */
     public static String feedbackTypeToString(int feedbackType) {
-        switch (feedbackType) {
-            case AccessibilityServiceInfo.FEEDBACK_AUDIBLE:
-                return "FEEDBACK_AUDIBLE";
-            case AccessibilityServiceInfo.FEEDBACK_HAPTIC:
-                return "FEEDBACK_HAPTIC";
-            case AccessibilityServiceInfo.FEEDBACK_GENERIC:
-                return "FEEDBACK_GENERIC";
-            case AccessibilityServiceInfo.FEEDBACK_SPOKEN:
-                return "FEEDBACK_SPOKEN";
-            case AccessibilityServiceInfo.FEEDBACK_VISUAL:
-                return "FEEDBACK_VISUAL";
-            case AccessibilityServiceInfoCompat.FEEDBACK_ALL_MASK:
-                return "FEEDBACK_ALL";
-            default:
-                return null;
+        StringBuilder builder = new StringBuilder();
+        builder.append("[");
+        while (feedbackType > 0) {
+            final int feedbackTypeFlag = 1 << Integer.numberOfTrailingZeros(feedbackType);
+            feedbackType &= ~feedbackTypeFlag;
+            if (builder.length() > 1) {
+                builder.append(", ");
+            }
+            switch (feedbackTypeFlag) {
+                case AccessibilityServiceInfo.FEEDBACK_AUDIBLE:
+                    builder.append("FEEDBACK_AUDIBLE");
+                    break;
+                case AccessibilityServiceInfo.FEEDBACK_HAPTIC:
+                    builder.append("FEEDBACK_HAPTIC");
+                    break;
+                case AccessibilityServiceInfo.FEEDBACK_GENERIC:
+                    builder.append("FEEDBACK_GENERIC");
+                    break;
+                case AccessibilityServiceInfo.FEEDBACK_SPOKEN:
+                    builder.append("FEEDBACK_SPOKEN");
+                    break;
+                case AccessibilityServiceInfo.FEEDBACK_VISUAL:
+                    builder.append("FEEDBACK_VISUAL");
+                    break;
+            }
         }
+        builder.append("]");
+        return builder.toString();
     }
 
     /**