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

Commit 718264a3 authored by Phil Weaver's avatar Phil Weaver Committed by Android (Google) Code Review
Browse files

Merge "Make a11y node info parceling more robust"

parents d15484d1 687bb44b
Loading
Loading
Loading
Loading
+12 −11
Original line number Original line Diff line number Diff line
@@ -3073,16 +3073,19 @@ public class AccessibilityNodeInfo implements Parcelable {


        if (mActions != null && !mActions.isEmpty()) {
        if (mActions != null && !mActions.isEmpty()) {
            final int actionCount = mActions.size();
            final int actionCount = mActions.size();
            parcel.writeInt(actionCount);


            int nonLegacyActionCount = 0;
            int defaultLegacyStandardActions = 0;
            int defaultLegacyStandardActions = 0;
            for (int i = 0; i < actionCount; i++) {
            for (int i = 0; i < actionCount; i++) {
                AccessibilityAction action = mActions.get(i);
                AccessibilityAction action = mActions.get(i);
                if (isDefaultLegacyStandardAction(action)) {
                if (isDefaultLegacyStandardAction(action)) {
                    defaultLegacyStandardActions |= action.getId();
                    defaultLegacyStandardActions |= action.getId();
                } else {
                    nonLegacyActionCount++;
                }
                }
            }
            }
            parcel.writeInt(defaultLegacyStandardActions);
            parcel.writeInt(defaultLegacyStandardActions);
            parcel.writeInt(nonLegacyActionCount);


            for (int i = 0; i < actionCount; i++) {
            for (int i = 0; i < actionCount; i++) {
                AccessibilityAction action = mActions.get(i);
                AccessibilityAction action = mActions.get(i);
@@ -3093,6 +3096,7 @@ public class AccessibilityNodeInfo implements Parcelable {
            }
            }
        } else {
        } else {
            parcel.writeInt(0);
            parcel.writeInt(0);
            parcel.writeInt(0);
        }
        }


        parcel.writeInt(mMaxTextLength);
        parcel.writeInt(mMaxTextLength);
@@ -3270,17 +3274,14 @@ public class AccessibilityNodeInfo implements Parcelable {
        mBoundsInScreen.left = parcel.readInt();
        mBoundsInScreen.left = parcel.readInt();
        mBoundsInScreen.right = parcel.readInt();
        mBoundsInScreen.right = parcel.readInt();


        final int actionCount = parcel.readInt();
        if (actionCount > 0) {
        final int legacyStandardActions = parcel.readInt();
        final int legacyStandardActions = parcel.readInt();
        addLegacyStandardActions(legacyStandardActions);
        addLegacyStandardActions(legacyStandardActions);
            final int nonLegacyActionCount = actionCount - Integer.bitCount(legacyStandardActions);
        final int nonLegacyActionCount = parcel.readInt();
        for (int i = 0; i < nonLegacyActionCount; i++) {
        for (int i = 0; i < nonLegacyActionCount; i++) {
            final AccessibilityAction action = new AccessibilityAction(
            final AccessibilityAction action = new AccessibilityAction(
                    parcel.readInt(), parcel.readCharSequence());
                    parcel.readInt(), parcel.readCharSequence());
            addActionUnchecked(action);
            addActionUnchecked(action);
        }
        }
        }


        mMaxTextLength = parcel.readInt();
        mMaxTextLength = parcel.readInt();
        mMovementGranularities = parcel.readInt();
        mMovementGranularities = parcel.readInt();