Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c6c25f9e authored by Svetoslav Ganov's avatar Svetoslav Ganov
Browse files

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
parent 4b972579
Loading
Loading
Loading
Loading
+16 −4
Original line number Original line Diff line number Diff line
@@ -503,26 +503,38 @@ public class AccessibilityServiceInfo implements Parcelable {
    public static String feedbackTypeToString(int feedbackType) {
    public static String feedbackTypeToString(int feedbackType) {
        StringBuilder builder = new StringBuilder();
        StringBuilder builder = new StringBuilder();
        builder.append("[");
        builder.append("[");
        while (feedbackType > 0) {
        while (feedbackType != 0) {
            final int feedbackTypeFlag = 1 << Integer.numberOfTrailingZeros(feedbackType);
            final int feedbackTypeFlag = 1 << Integer.numberOfTrailingZeros(feedbackType);
            feedbackType &= ~feedbackTypeFlag;
            feedbackType &= ~feedbackTypeFlag;
            switch (feedbackTypeFlag) {
                case FEEDBACK_AUDIBLE:
                    if (builder.length() > 1) {
                    if (builder.length() > 1) {
                        builder.append(", ");
                        builder.append(", ");
                    }
                    }
            switch (feedbackTypeFlag) {
                case FEEDBACK_AUDIBLE:
                    builder.append("FEEDBACK_AUDIBLE");
                    builder.append("FEEDBACK_AUDIBLE");
                    break;
                    break;
                case FEEDBACK_HAPTIC:
                case FEEDBACK_HAPTIC:
                    if (builder.length() > 1) {
                        builder.append(", ");
                    }
                    builder.append("FEEDBACK_HAPTIC");
                    builder.append("FEEDBACK_HAPTIC");
                    break;
                    break;
                case FEEDBACK_GENERIC:
                case FEEDBACK_GENERIC:
                    if (builder.length() > 1) {
                        builder.append(", ");
                    }
                    builder.append("FEEDBACK_GENERIC");
                    builder.append("FEEDBACK_GENERIC");
                    break;
                    break;
                case FEEDBACK_SPOKEN:
                case FEEDBACK_SPOKEN:
                    if (builder.length() > 1) {
                        builder.append(", ");
                    }
                    builder.append("FEEDBACK_SPOKEN");
                    builder.append("FEEDBACK_SPOKEN");
                    break;
                    break;
                case FEEDBACK_VISUAL:
                case FEEDBACK_VISUAL:
                    if (builder.length() > 1) {
                        builder.append(", ");
                    }
                    builder.append("FEEDBACK_VISUAL");
                    builder.append("FEEDBACK_VISUAL");
                    break;
                    break;
            }
            }