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

Commit 3b86707f authored by Eugene Susla's avatar Eugene Susla
Browse files

Prune repetetive code in A11yEvent toString

Test: Enable debug mode and ensure event toString looks the same
Change-Id: I15b7b3e0a86bf68875c94b42599a7655e40a1fbe
parent 957bdf0e
Loading
Loading
Loading
Loading
+43 −176
Original line number Diff line number Diff line
@@ -1240,190 +1240,57 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par
        while (eventType != 0) {
            final int eventTypeFlag = 1 << Integer.numberOfTrailingZeros(eventType);
            eventType &= ~eventTypeFlag;
            switch (eventTypeFlag) {
                case TYPE_VIEW_CLICKED: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
                    }
                    builder.append("TYPE_VIEW_CLICKED");
                    eventTypeCount++;
                } break;
                case TYPE_VIEW_LONG_CLICKED: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
                    }
                    builder.append("TYPE_VIEW_LONG_CLICKED");
                    eventTypeCount++;
                } break;
                case TYPE_VIEW_SELECTED: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
                    }
                    builder.append("TYPE_VIEW_SELECTED");
                    eventTypeCount++;
                } break;
                case TYPE_VIEW_FOCUSED: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
                    }
                    builder.append("TYPE_VIEW_FOCUSED");
                    eventTypeCount++;
                } break;
                case TYPE_VIEW_TEXT_CHANGED: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
                    }
                    builder.append("TYPE_VIEW_TEXT_CHANGED");
                    eventTypeCount++;
                } break;
                case TYPE_WINDOW_STATE_CHANGED: {

            if (eventTypeCount > 0) {
                builder.append(", ");
            }
                    builder.append("TYPE_WINDOW_STATE_CHANGED");
            builder.append(singleEventTypeToString(eventTypeFlag));

            eventTypeCount++;
                } break;
                case TYPE_VIEW_HOVER_ENTER: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
        }
                    builder.append("TYPE_VIEW_HOVER_ENTER");
                    eventTypeCount++;
                } break;
                case TYPE_VIEW_HOVER_EXIT: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
        if (eventTypeCount > 1) {
            builder.insert(0, '[');
            builder.append(']');
        }
                    builder.append("TYPE_VIEW_HOVER_EXIT");
                    eventTypeCount++;
                } break;
                case TYPE_NOTIFICATION_STATE_CHANGED: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
        return builder.toString();
    }
                    builder.append("TYPE_NOTIFICATION_STATE_CHANGED");
                    eventTypeCount++;
                } break;

    private static String singleEventTypeToString(int eventType) {
        switch (eventType) {
            case TYPE_VIEW_CLICKED: return "TYPE_VIEW_CLICKED";
            case TYPE_VIEW_LONG_CLICKED: return "TYPE_VIEW_LONG_CLICKED";
            case TYPE_VIEW_SELECTED: return "TYPE_VIEW_SELECTED";
            case TYPE_VIEW_FOCUSED: return "TYPE_VIEW_FOCUSED";
            case TYPE_VIEW_TEXT_CHANGED: return "TYPE_VIEW_TEXT_CHANGED";
            case TYPE_WINDOW_STATE_CHANGED: return "TYPE_WINDOW_STATE_CHANGED";
            case TYPE_VIEW_HOVER_ENTER: return "TYPE_VIEW_HOVER_ENTER";
            case TYPE_VIEW_HOVER_EXIT: return "TYPE_VIEW_HOVER_EXIT";
            case TYPE_NOTIFICATION_STATE_CHANGED: return "TYPE_NOTIFICATION_STATE_CHANGED";
            case TYPE_TOUCH_EXPLORATION_GESTURE_START: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
                    }
                    builder.append("TYPE_TOUCH_EXPLORATION_GESTURE_START");
                    eventTypeCount++;
                } break;
                case TYPE_TOUCH_EXPLORATION_GESTURE_END: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
                    }
                    builder.append("TYPE_TOUCH_EXPLORATION_GESTURE_END");
                    eventTypeCount++;
                } break;
                case TYPE_WINDOW_CONTENT_CHANGED: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
                    }
                    builder.append("TYPE_WINDOW_CONTENT_CHANGED");
                    eventTypeCount++;
                } break;
                case TYPE_VIEW_TEXT_SELECTION_CHANGED: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
                    }
                    builder.append("TYPE_VIEW_TEXT_SELECTION_CHANGED");
                    eventTypeCount++;
                } break;
                case TYPE_VIEW_SCROLLED: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
                    }
                    builder.append("TYPE_VIEW_SCROLLED");
                    eventTypeCount++;
                } break;
                case TYPE_ANNOUNCEMENT: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
                    }
                    builder.append("TYPE_ANNOUNCEMENT");
                    eventTypeCount++;
                } break;
                case TYPE_VIEW_ACCESSIBILITY_FOCUSED: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
                    }
                    builder.append("TYPE_VIEW_ACCESSIBILITY_FOCUSED");
                    eventTypeCount++;
                } break;
                return "TYPE_TOUCH_EXPLORATION_GESTURE_START";
            }
            case TYPE_TOUCH_EXPLORATION_GESTURE_END: return "TYPE_TOUCH_EXPLORATION_GESTURE_END";
            case TYPE_WINDOW_CONTENT_CHANGED: return "TYPE_WINDOW_CONTENT_CHANGED";
            case TYPE_VIEW_TEXT_SELECTION_CHANGED: return "TYPE_VIEW_TEXT_SELECTION_CHANGED";
            case TYPE_VIEW_SCROLLED: return "TYPE_VIEW_SCROLLED";
            case TYPE_ANNOUNCEMENT: return "TYPE_ANNOUNCEMENT";
            case TYPE_VIEW_ACCESSIBILITY_FOCUSED: return "TYPE_VIEW_ACCESSIBILITY_FOCUSED";
            case TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
                return "TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED";
            }
                    builder.append("TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED");
                    eventTypeCount++;
                } break;
            case TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
                    }
                    builder.append("TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY");
                    eventTypeCount++;
                } break;
                case TYPE_GESTURE_DETECTION_START: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
                    }
                    builder.append("TYPE_GESTURE_DETECTION_START");
                    eventTypeCount++;
                } break;
                case TYPE_GESTURE_DETECTION_END: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
                    }
                    builder.append("TYPE_GESTURE_DETECTION_END");
                    eventTypeCount++;
                } break;
                case TYPE_TOUCH_INTERACTION_START: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
                    }
                    builder.append("TYPE_TOUCH_INTERACTION_START");
                    eventTypeCount++;
                } break;
                case TYPE_TOUCH_INTERACTION_END: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
                    }
                    builder.append("TYPE_TOUCH_INTERACTION_END");
                    eventTypeCount++;
                } break;
                case TYPE_WINDOWS_CHANGED: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
                    }
                    builder.append("TYPE_WINDOWS_CHANGED");
                    eventTypeCount++;
                } break;
                case TYPE_VIEW_CONTEXT_CLICKED: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
                return "TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY";
            }
                    builder.append("TYPE_VIEW_CONTEXT_CLICKED");
                    eventTypeCount++;
                } break;
                case TYPE_ASSIST_READING_CONTEXT: {
                    if (eventTypeCount > 0) {
                        builder.append(", ");
                    }
                    builder.append("TYPE_ASSIST_READING_CONTEXT");
                    eventTypeCount++;
                } break;
            case TYPE_GESTURE_DETECTION_START: return "TYPE_GESTURE_DETECTION_START";
            case TYPE_GESTURE_DETECTION_END: return "TYPE_GESTURE_DETECTION_END";
            case TYPE_TOUCH_INTERACTION_START: return "TYPE_TOUCH_INTERACTION_START";
            case TYPE_TOUCH_INTERACTION_END: return "TYPE_TOUCH_INTERACTION_END";
            case TYPE_WINDOWS_CHANGED: return "TYPE_WINDOWS_CHANGED";
            case TYPE_VIEW_CONTEXT_CLICKED: return "TYPE_VIEW_CONTEXT_CLICKED";
            case TYPE_ASSIST_READING_CONTEXT: return "TYPE_ASSIST_READING_CONTEXT";
            default: return Integer.toHexString(eventType);
        }
    }
        if (eventTypeCount > 1) {
            builder.insert(0, '[');
            builder.append(']');
        }
        return builder.toString();
    }

    /**
     * @see Parcelable.Creator