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

Commit dabec9ef authored by Zeyin Wu's avatar Zeyin Wu Committed by Android (Google) Code Review
Browse files

Merge "Add accessibility expand/collapse action to node info"

parents 4dcb337e 1d59f48e
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.SoundEffectConstants;
import android.view.View;
import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.ExpandableListConnector.PositionMetadata;

import com.android.internal.R;
@@ -1144,6 +1145,24 @@ public class ExpandableListView extends ListView {
        return new ExpandableListContextMenuInfo(view, packedPosition, id);
    }

    /** @hide */
    @Override
    public void onInitializeAccessibilityNodeInfoForItem(
            View view, int position, AccessibilityNodeInfo info) {
        super.onInitializeAccessibilityNodeInfoForItem(view, position, info);

        final PositionMetadata metadata = mConnector.getUnflattenedPos(position);
        if (metadata.position.type == ExpandableListPosition.GROUP) {
            if (isGroupExpanded(metadata.position.groupPos)) {
                info.addAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_COLLAPSE);
            } else {
                info.addAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_EXPAND);
            }
        }

        metadata.recycle();
    }

    /**
     * Gets the ID of the group or child at the given <code>position</code>.
     * This is useful since there is no ListAdapter ID -> ExpandableListAdapter