19648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov/*
29648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Copyright (C) 2011 The Android Open Source Project
39648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov *
49648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Licensed under the Apache License, Version 2.0 (the "License");
59648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * you may not use this file except in compliance with the License.
69648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * You may obtain a copy of the License at
79648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov *
89648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov *      http://www.apache.org/licenses/LICENSE-2.0
99648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov *
109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Unless required by applicable law or agreed to in writing, software
119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * distributed under the License is distributed on an "AS IS" BASIS,
129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * See the License for the specific language governing permissions and
149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * limitations under the License.
159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */
169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovpackage android.support.v4.view.accessibility;
189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport android.graphics.Rect;
209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport android.os.Build;
2170e96ebf69f91da84681a6263b3862c63d53ab11alanvimport android.os.Bundle;
22f0d984600125413628899bfc849bab102bc2228eSteven Daoimport android.support.annotation.Nullable;
230fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslavimport android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat;
24086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viveretteimport android.support.v4.view.ViewCompat;
258aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatovimport android.text.InputType;
269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport android.view.View;
27a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport java.util.ArrayList;
29f9c2277244722eca88c784b9cfdcc78df7f94781Svetoslav Ganovimport java.util.Collections;
309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport java.util.List;
319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov/**
330574ca37da4619afe4e26753f5a1b4de314b6565Svetoslav Ganov * Helper for accessing {@link android.view.accessibility.AccessibilityNodeInfo}
340574ca37da4619afe4e26753f5a1b4de314b6565Svetoslav Ganov * introduced after API level 4 in a backwards compatible fashion.
359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */
369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovpublic class AccessibilityNodeInfoCompat {
379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
38389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen    public static class AccessibilityActionCompat {
3987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
4087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        /**
4187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * Action that gives input focus to the node.
4287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         */
4387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        public static final AccessibilityActionCompat ACTION_FOCUS =
4487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                new AccessibilityActionCompat(
4587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                        AccessibilityNodeInfoCompat.ACTION_FOCUS, null);
4687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
4787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        /**
4887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * Action that clears input focus of the node.
4987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         */
5087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        public static final AccessibilityActionCompat ACTION_CLEAR_FOCUS =
5187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                new AccessibilityActionCompat(
5287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                        AccessibilityNodeInfoCompat.ACTION_CLEAR_FOCUS, null);
5387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
5487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        /**
5587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  Action that selects the node.
5687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         */
5787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        public static final AccessibilityActionCompat ACTION_SELECT =
5887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                new AccessibilityActionCompat(
5987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                        AccessibilityNodeInfoCompat.ACTION_SELECT, null);
6087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
6187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        /**
6287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * Action that deselects the node.
6387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         */
6487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        public static final AccessibilityActionCompat ACTION_CLEAR_SELECTION =
6587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                new AccessibilityActionCompat(
6687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                        AccessibilityNodeInfoCompat.ACTION_CLEAR_SELECTION, null);
6787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
6887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        /**
6987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * Action that clicks on the node info.
7087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         */
7187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        public static final AccessibilityActionCompat ACTION_CLICK =
7287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                new AccessibilityActionCompat(
7387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                        AccessibilityNodeInfoCompat.ACTION_CLICK, null);
7487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
7587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        /**
7687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * Action that long clicks on the node.
7787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         */
7887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        public static final AccessibilityActionCompat ACTION_LONG_CLICK =
7987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                new AccessibilityActionCompat(
8087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                        AccessibilityNodeInfoCompat.ACTION_LONG_CLICK, null);
8187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
8287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        /**
8387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * Action that gives accessibility focus to the node.
8487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         */
8587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        public static final AccessibilityActionCompat ACTION_ACCESSIBILITY_FOCUS =
8687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                new AccessibilityActionCompat(
8787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                        AccessibilityNodeInfoCompat.ACTION_ACCESSIBILITY_FOCUS, null);
8887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
8987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        /**
9087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * Action that clears accessibility focus of the node.
9187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         */
9287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        public static final AccessibilityActionCompat ACTION_CLEAR_ACCESSIBILITY_FOCUS =
9387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                new AccessibilityActionCompat(
9487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                        AccessibilityNodeInfoCompat.ACTION_CLEAR_ACCESSIBILITY_FOCUS, null);
9587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
9687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        /**
9787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * Action that requests to go to the next entity in this node's text
9887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * at a given movement granularity. For example, move to the next character,
9987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * word, etc.
10087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <p>
10187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <strong>Arguments:</strong>
10287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * {@link AccessibilityNodeInfoCompat#ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT
10387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT},
10487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * {@link AccessibilityNodeInfoCompat#ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN
10587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN}<br>
10687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <strong>Example:</strong> Move to the previous character and do not extend selection.
10787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <code><pre><p>
10887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *   Bundle arguments = new Bundle();
10987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *   arguments.putInt(AccessibilityNodeInfoCompat.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT,
11087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *           AccessibilityNodeInfoCompat.MOVEMENT_GRANULARITY_CHARACTER);
11187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *   arguments.putBoolean(
11287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *           AccessibilityNodeInfoCompat.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN, false);
11387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *   info.performAction(
11487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *           AccessibilityActionCompat.ACTION_NEXT_AT_MOVEMENT_GRANULARITY.getId(),
11587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *           arguments);
11687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * </code></pre></p>
11787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * </p>
11887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *
11987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * @see AccessibilityNodeInfoCompat#ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT
12087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT
12187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * @see AccessibilityNodeInfoCompat#ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN
12287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN
12387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *
12487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * @see AccessibilityNodeInfoCompat#setMovementGranularities(int)
12587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN
12687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * @see AccessibilityNodeInfoCompat#getMovementGranularities()
12787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.getMovementGranularities()
12887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *
12987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * @see AccessibilityNodeInfoCompat#MOVEMENT_GRANULARITY_CHARACTER
13087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.MOVEMENT_GRANULARITY_CHARACTER
13187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * @see AccessibilityNodeInfoCompat#MOVEMENT_GRANULARITY_WORD
13287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.MOVEMENT_GRANULARITY_WORD
13387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * @see AccessibilityNodeInfoCompat#MOVEMENT_GRANULARITY_LINE
13487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.MOVEMENT_GRANULARITY_LINE
13587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * @see AccessibilityNodeInfoCompat#MOVEMENT_GRANULARITY_PARAGRAPH
13687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.MOVEMENT_GRANULARITY_PARAGRAPH
13787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * @see AccessibilityNodeInfoCompat#MOVEMENT_GRANULARITY_PAGE
13887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.MOVEMENT_GRANULARITY_PAGE
13987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         */
14087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        public static final AccessibilityActionCompat ACTION_NEXT_AT_MOVEMENT_GRANULARITY =
14187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                new AccessibilityActionCompat(
14287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                        AccessibilityNodeInfoCompat.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, null);
14387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
14487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        /**
14587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * Action that requests to go to the previous entity in this node's text
14687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * at a given movement granularity. For example, move to the next character,
14787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * word, etc.
14887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <p>
14987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <strong>Arguments:</strong>
15087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * {@link AccessibilityNodeInfoCompat#ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT
15187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT},
15287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * {@link AccessibilityNodeInfoCompat#ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN
15387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN}<br>
15487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <strong>Example:</strong> Move to the next character and do not extend selection.
15587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <code><pre><p>
15687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *   Bundle arguments = new Bundle();
15787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *   arguments.putInt(AccessibilityNodeInfoCompat.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT,
15887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *           AccessibilityNodeInfoCompat.MOVEMENT_GRANULARITY_CHARACTER);
15987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *   arguments.putBoolean(
16087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *           AccessibilityNodeInfoCompat.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN, false);
16187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *   info.performAction(
16287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *           AccessibilityActionCompat.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY.getId(),
16387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *           arguments);
16487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * </code></pre></p>
16587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * </p>
16687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *
16787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * @see AccessibilityNodeInfoCompat#ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT
16887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT
16987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * @see AccessibilityNodeInfoCompat#ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN
17087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN
17187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *
17287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * @see AccessibilityNodeInfoCompat#setMovementGranularities(int)
17387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *   AccessibilityNodeInfoCompat.setMovementGranularities(int)
17487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * @see AccessibilityNodeInfoCompat#getMovementGranularities()
17587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.getMovementGranularities()
17687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *
17787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * @see AccessibilityNodeInfoCompat#MOVEMENT_GRANULARITY_CHARACTER
17887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.MOVEMENT_GRANULARITY_CHARACTER
17987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * @see AccessibilityNodeInfoCompat#MOVEMENT_GRANULARITY_WORD
18087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.MOVEMENT_GRANULARITY_WORD
18187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * @see AccessibilityNodeInfoCompat#MOVEMENT_GRANULARITY_LINE
18287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.MOVEMENT_GRANULARITY_LINE
18387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * @see AccessibilityNodeInfoCompat#MOVEMENT_GRANULARITY_PARAGRAPH
18487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.MOVEMENT_GRANULARITY_PARAGRAPH
18587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * @see AccessibilityNodeInfoCompat#MOVEMENT_GRANULARITY_PAGE
18687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.MOVEMENT_GRANULARITY_PAGE
18787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         */
18887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        public static final AccessibilityActionCompat ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY =
18987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                new AccessibilityActionCompat(
19087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                        AccessibilityNodeInfoCompat.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, null);
19187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
19287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        /**
19387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * Action to move to the next HTML element of a given type. For example, move
19487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * to the BUTTON, INPUT, TABLE, etc.
19587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <p>
19687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <strong>Arguments:</strong>
19787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * {@link AccessibilityNodeInfoCompat#ACTION_ARGUMENT_HTML_ELEMENT_STRING
19887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.ACTION_ARGUMENT_HTML_ELEMENT_STRING}<br>
19987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <strong>Example:</strong>
20087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <code><pre><p>
20187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *   Bundle arguments = new Bundle();
20287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *   arguments.putString(
20387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *           AccessibilityNodeInfoCompat.ACTION_ARGUMENT_HTML_ELEMENT_STRING, "BUTTON");
20487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *   info.performAction(
20587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *           AccessibilityActionCompat.ACTION_NEXT_HTML_ELEMENT.getId(), arguments);
20687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * </code></pre></p>
20787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * </p>
20887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         */
20987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        public static final AccessibilityActionCompat ACTION_NEXT_HTML_ELEMENT =
21087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                new AccessibilityActionCompat(
21187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                        AccessibilityNodeInfoCompat.ACTION_NEXT_HTML_ELEMENT, null);
21287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
21387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        /**
21487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * Action to move to the previous HTML element of a given type. For example, move
21587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * to the BUTTON, INPUT, TABLE, etc.
21687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <p>
21787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <strong>Arguments:</strong>
21887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * {@link AccessibilityNodeInfoCompat#ACTION_ARGUMENT_HTML_ELEMENT_STRING
21987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.ACTION_ARGUMENT_HTML_ELEMENT_STRING}<br>
22087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <strong>Example:</strong>
22187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <code><pre><p>
22287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *   Bundle arguments = new Bundle();
22387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *   arguments.putString(
22487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *           AccessibilityNodeInfoCompat.ACTION_ARGUMENT_HTML_ELEMENT_STRING, "BUTTON");
22587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *   info.performAction(
22687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *           AccessibilityActionCompat.ACTION_PREVIOUS_HTML_ELEMENT.getId(), arguments);
22787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * </code></pre></p>
22887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * </p>
22987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         */
23087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        public static final AccessibilityActionCompat ACTION_PREVIOUS_HTML_ELEMENT =
23187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                new AccessibilityActionCompat(
23287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                        AccessibilityNodeInfoCompat.ACTION_PREVIOUS_HTML_ELEMENT, null);
23387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
23487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        /**
23587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * Action to scroll the node content forward.
23687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         */
23787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        public static final AccessibilityActionCompat ACTION_SCROLL_FORWARD =
23887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                new AccessibilityActionCompat(
23987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                        AccessibilityNodeInfoCompat.ACTION_SCROLL_FORWARD, null);
24087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
24187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        /**
24287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * Action to scroll the node content backward.
24387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         */
24487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        public static final AccessibilityActionCompat ACTION_SCROLL_BACKWARD =
24587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                new AccessibilityActionCompat(
24687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                        AccessibilityNodeInfoCompat.ACTION_SCROLL_BACKWARD, null);
24787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
24887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        /**
24987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * Action to copy the current selection to the clipboard.
25087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         */
25187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        public static final AccessibilityActionCompat ACTION_COPY =
25287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                new AccessibilityActionCompat(
25387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                        AccessibilityNodeInfoCompat.ACTION_COPY, null);
25487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
25587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        /**
25687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * Action to paste the current clipboard content.
25787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         */
25887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        public static final AccessibilityActionCompat ACTION_PASTE =
25987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                new AccessibilityActionCompat(
26087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                        AccessibilityNodeInfoCompat.ACTION_PASTE, null);
26187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
26287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        /**
26387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * Action to cut the current selection and place it to the clipboard.
26487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         */
26587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        public static final AccessibilityActionCompat ACTION_CUT =
26687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                new AccessibilityActionCompat(
26787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                        AccessibilityNodeInfoCompat.ACTION_CUT, null);
26887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
26987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        /**
27087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * Action to set the selection. Performing this action with no arguments
27187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * clears the selection.
27287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <p>
27387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <strong>Arguments:</strong>
27487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * {@link AccessibilityNodeInfoCompat#ACTION_ARGUMENT_SELECTION_START_INT
27587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.ACTION_ARGUMENT_SELECTION_START_INT},
27687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * {@link AccessibilityNodeInfoCompat#ACTION_ARGUMENT_SELECTION_END_INT
27787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.ACTION_ARGUMENT_SELECTION_END_INT}<br>
27887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <strong>Example:</strong>
27987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <code><pre><p>
28087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *   Bundle arguments = new Bundle();
28187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *   arguments.putInt(AccessibilityNodeInfoCompat.ACTION_ARGUMENT_SELECTION_START_INT, 1);
28287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *   arguments.putInt(AccessibilityNodeInfoCompat.ACTION_ARGUMENT_SELECTION_END_INT, 2);
28387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *   info.performAction(AccessibilityActionCompat.ACTION_SET_SELECTION.getId(), arguments);
28487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * </code></pre></p>
28587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * </p>
28687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *
28787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * @see AccessibilityNodeInfoCompat#ACTION_ARGUMENT_SELECTION_START_INT
28887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.ACTION_ARGUMENT_SELECTION_START_INT
28987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * @see AccessibilityNodeInfoCompat#ACTION_ARGUMENT_SELECTION_END_INT
29087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.ACTION_ARGUMENT_SELECTION_END_INT
29187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         */
29287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        public static final AccessibilityActionCompat ACTION_SET_SELECTION =
29387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                new AccessibilityActionCompat(
29487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                        AccessibilityNodeInfoCompat.ACTION_SET_SELECTION, null);
29587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
29687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        /**
29787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * Action to expand an expandable node.
29887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         */
29987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        public static final AccessibilityActionCompat ACTION_EXPAND =
30087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                new AccessibilityActionCompat(
30187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                        AccessibilityNodeInfoCompat.ACTION_EXPAND, null);
30287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
30387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        /**
30487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * Action to collapse an expandable node.
30587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         */
30687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        public static final AccessibilityActionCompat ACTION_COLLAPSE =
30787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                new AccessibilityActionCompat(
30887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                        AccessibilityNodeInfoCompat.ACTION_COLLAPSE, null);
30987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
31087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        /**
31187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * Action to dismiss a dismissable node.
31287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         */
31387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        public static final AccessibilityActionCompat ACTION_DISMISS =
31487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                new AccessibilityActionCompat(
31587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                        AccessibilityNodeInfoCompat.ACTION_DISMISS, null);
31687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
31787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        /**
31887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * Action that sets the text of the node. Performing the action without argument,
31987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * using <code> null</code> or empty {@link CharSequence} will clear the text. This
32087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * action will also put the cursor at the end of text.
32187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <p>
32287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <strong>Arguments:</strong>
32387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * {@link AccessibilityNodeInfoCompat#ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE
32487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *  AccessibilityNodeInfoCompat.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE}<br>
32587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <strong>Example:</strong>
32687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * <code><pre><p>
32787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *   Bundle arguments = new Bundle();
32887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *   arguments.putCharSequence(AccessibilityNodeInfoCompat.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE,
32987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *       "android");
33087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         *   info.performAction(AccessibilityActionCompat.ACTION_SET_TEXT.getId(), arguments);
33187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         * </code></pre></p>
33287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette         */
33387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette        public static final AccessibilityActionCompat ACTION_SET_TEXT =
33487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                new AccessibilityActionCompat(
33587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette                        AccessibilityNodeInfoCompat.ACTION_SET_TEXT, null);
33687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
33777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        /**
33877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         * Action that requests the node make its bounding rectangle visible
33977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         * on the screen, scrolling if necessary just enough.
34077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         *
34177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         * @see View#requestRectangleOnScreen(Rect)
34277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         */
34377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public static final AccessibilityActionCompat ACTION_SHOW_ON_SCREEN =
34477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid                new AccessibilityActionCompat(IMPL.getActionShowOnScreen());
34577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
34677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        /**
34777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         * Action that scrolls the node to make the specified collection
34877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         * position visible on screen.
34977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         * <p>
35077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         * <strong>Arguments:</strong>
35177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         * <ul>
35277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         *     <li>{@link AccessibilityNodeInfoCompat#ACTION_ARGUMENT_ROW_INT}</li>
35377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         *     <li>{@link AccessibilityNodeInfoCompat#ACTION_ARGUMENT_COLUMN_INT}</li>
35477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         * <ul>
35577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         *
35677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         * @see AccessibilityNodeInfoCompat#getCollectionInfo()
35777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         */
35877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public static final AccessibilityActionCompat ACTION_SCROLL_TO_POSITION =
35977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid                new AccessibilityActionCompat(IMPL.getActionScrollToPosition());
36077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
36177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        /**
36277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         * Action to scroll the node content up.
36377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         */
36477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public static final AccessibilityActionCompat ACTION_SCROLL_UP =
36577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid                new AccessibilityActionCompat(IMPL.getActionScrollUp());
36677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
36777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        /**
36877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         * Action to scroll the node content left.
36977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         */
37077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public static final AccessibilityActionCompat ACTION_SCROLL_LEFT =
37177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid                new AccessibilityActionCompat(IMPL.getActionScrollLeft());
37277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
37377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        /**
37477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         * Action to scroll the node content down.
37577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         */
37677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public static final AccessibilityActionCompat ACTION_SCROLL_DOWN =
37777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid                new AccessibilityActionCompat(IMPL.getActionScrollDown());
37877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
37977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        /**
38077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         * Action to scroll the node content right.
38177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         */
38277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public static final AccessibilityActionCompat ACTION_SCROLL_RIGHT =
38377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid                new AccessibilityActionCompat(IMPL.getActionScrollRight());
38477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
38577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        /**
38677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         * Action that context clicks the node.
38777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         */
38877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public static final AccessibilityActionCompat ACTION_CONTEXT_CLICK =
38977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid                new AccessibilityActionCompat(IMPL.getActionContextClick());
39077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
39177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        /**
39277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         * Action that sets progress between {@link  RangeInfoCompat#getMin() RangeInfo.getMin()} and
39377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         * {@link  RangeInfoCompat#getMax() RangeInfo.getMax()}. It should use the same value type as
39477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         * {@link RangeInfoCompat#getType() RangeInfo.getType()}
39577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         * <p>
39677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         * <strong>Arguments:</strong>
39777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         * {@link AccessibilityNodeInfoCompat#ACTION_ARGUMENT_PROGRESS_VALUE}
39877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         *
39977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         * @see RangeInfoCompat
40077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid         */
40177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public static final AccessibilityActionCompat ACTION_SET_PROGRESS =
40277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid                new AccessibilityActionCompat(IMPL.getActionSetProgress());
40377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
404552766fa685c63ad760c92239faaba12e6ad51f1Aurimas Liutikas        final Object mAction;
405389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen
40684ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        /**
40784ef4490e42b960ea375630f9cc37246af9c571bSvetoslav         * Creates a new instance.
40884ef4490e42b960ea375630f9cc37246af9c571bSvetoslav         *
40984ef4490e42b960ea375630f9cc37246af9c571bSvetoslav         * @param actionId The action id.
41084ef4490e42b960ea375630f9cc37246af9c571bSvetoslav         * @param label The action label.
41184ef4490e42b960ea375630f9cc37246af9c571bSvetoslav         */
41284ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        public AccessibilityActionCompat(int actionId, CharSequence label) {
41384ef4490e42b960ea375630f9cc37246af9c571bSvetoslav            this(IMPL.newAccessibilityAction(actionId, label));
41484ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        }
41584ef4490e42b960ea375630f9cc37246af9c571bSvetoslav
416552766fa685c63ad760c92239faaba12e6ad51f1Aurimas Liutikas        AccessibilityActionCompat(Object action) {
417389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen            mAction = action;
418389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen        }
419389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen
420389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen        /**
421389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen         * Gets the id for this action.
422389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen         *
423389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen         * @return The action id.
424389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen         */
425389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen        public int getId() {
42684ef4490e42b960ea375630f9cc37246af9c571bSvetoslav            return IMPL.getAccessibilityActionId(mAction);
427389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen        }
428389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen
429389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen        /**
430389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen         * Gets the label for this action. Its purpose is to describe the
431389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen         * action to user.
432389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen         *
433389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen         * @return The label.
434389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen         */
435389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen        public CharSequence getLabel() {
43684ef4490e42b960ea375630f9cc37246af9c571bSvetoslav            return IMPL.getAccessibilityActionLabel(mAction);
437389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen        }
438389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen    }
439389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen
440021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver    /**
441021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver     * Class with information if a node is a collection.
442021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver     * <p>
443021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver     * A collection of items has rows and columns and may be hierarchical.
444021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver     * For example, a horizontal list is a collection with one column, as
445021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver     * many rows as the list items, and is not hierarchical; A table is a
446021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver     * collection with several rows, several columns, and is not hierarchical;
447021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver     * A vertical tree is a hierarchical collection with one column and
448021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver     * as many rows as the first level children.
449021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver     * </p>
450021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver     */
451fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen    public static class CollectionInfoCompat {
452a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        /** Selection mode where items are not selectable. */
453a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public static final int SELECTION_MODE_NONE = 0;
454a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
455a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        /** Selection mode where a single item may be selected. */
456a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public static final int SELECTION_MODE_SINGLE = 1;
457a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
458a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        /** Selection mode where multiple items may be selected. */
459a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public static final int SELECTION_MODE_MULTIPLE = 2;
460a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
461a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        final Object mInfo;
462a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
463a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        /**
464a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar         * Returns a cached instance if such is available otherwise a new one.
465a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar         *
466021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @param rowCount The number of rows.
467021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @param columnCount The number of columns.
468021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @param hierarchical Whether the collection is hierarchical.
469021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @param selectionMode The collection's selection mode, one of:
470021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *            <ul>
471021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *            <li>{@link #SELECTION_MODE_NONE}
472021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *            <li>{@link #SELECTION_MODE_SINGLE}
473021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *            <li>{@link #SELECTION_MODE_MULTIPLE}
474021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *            </ul>
475021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *
476a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar         * @return An instance.
477a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar         */
478a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public static CollectionInfoCompat obtain(int rowCount, int columnCount,
479a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar                boolean hierarchical, int selectionMode) {
480a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return new CollectionInfoCompat(IMPL.obtainCollectionInfo(rowCount, columnCount,
481a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar                    hierarchical, selectionMode));
482a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
483fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
484021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver        /**
485021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * Returns a cached instance if such is available otherwise a new one.
486021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *
487021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @param rowCount The number of rows.
488021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @param columnCount The number of columns.
489021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @param hierarchical Whether the collection is hierarchical.
490021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *
491021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @return An instance.
492021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         */
49377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public static CollectionInfoCompat obtain(int rowCount, int columnCount,
49477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid                boolean hierarchical) {
49577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return new CollectionInfoCompat(IMPL.obtainCollectionInfo(rowCount, columnCount,
49677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid                    hierarchical));
49777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
49877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
499552766fa685c63ad760c92239faaba12e6ad51f1Aurimas Liutikas        CollectionInfoCompat(Object info) {
500fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen            mInfo = info;
501fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        }
502fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
503021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver        /**
504021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * Gets the number of columns.
505021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *
506021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @return The column count.
507021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         */
508fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        public int getColumnCount() {
509a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return IMPL.getCollectionInfoColumnCount(mInfo);
510fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        }
511fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
512021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver        /**
513021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * Gets the number of rows.
514021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *
515021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @return The row count.
516021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         */
517fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        public int getRowCount() {
518a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return IMPL.getCollectionInfoRowCount(mInfo);
519fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        }
520fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
521021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver        /**
522021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * Gets if the collection is a hierarchically ordered.
523021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *
524021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @return Whether the collection is hierarchical.
525021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         */
526fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        public boolean isHierarchical() {
527a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return IMPL.isCollectionInfoHierarchical(mInfo);
528fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        }
52977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
530021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver        /**
531021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * Gets the collection's selection mode.
532021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *
533021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @return The collection's selection mode, one of:
534021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *         <ul>
535021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *         <li>{@link #SELECTION_MODE_NONE}
536021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *         <li>{@link #SELECTION_MODE_SINGLE}
537021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *         <li>{@link #SELECTION_MODE_MULTIPLE}
538021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *         </ul>
539021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         */
54077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public int getSelectionMode() {
54177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return IMPL.getCollectionInfoSelectionMode(mInfo);
54277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
543fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen    }
544fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
545021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver    /**
546021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver     * Class with information if a node is a collection item.
547021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver     * <p>
548021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver     * A collection item is contained in a collection, it starts at
549021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver     * a given row and column in the collection, and spans one or
550021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver     * more rows and columns. For example, a header of two related
551021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver     * table columns starts at the first row and the first column,
552021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver     * spans one row and two columns.
553021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver     * </p>
554021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver     */
555fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen    public static class CollectionItemInfoCompat {
556a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
557552766fa685c63ad760c92239faaba12e6ad51f1Aurimas Liutikas        final Object mInfo;
558fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
559a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        /**
560a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar         * Returns a cached instance if such is available otherwise a new one.
561a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar         *
562021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @param rowIndex The row index at which the item is located.
563021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @param rowSpan The number of rows the item spans.
564021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @param columnIndex The column index at which the item is located.
565021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @param columnSpan The number of columns the item spans.
566021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @param heading Whether the item is a heading.
567021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @param selected Whether the item is selected.
568a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar         * @return An instance.
569a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar         */
570a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public static CollectionItemInfoCompat obtain(int rowIndex, int rowSpan,
571a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar                int columnIndex, int columnSpan, boolean heading, boolean selected) {
572a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return new CollectionItemInfoCompat(IMPL.obtainCollectionItemInfo(rowIndex, rowSpan,
573a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar                    columnIndex, columnSpan, heading, selected));
574a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
575a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
576021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver        /**
577021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * Returns a cached instance if such is available otherwise a new one.
578021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *
579021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @param rowIndex The row index at which the item is located.
580021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @param rowSpan The number of rows the item spans.
581021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @param columnIndex The column index at which the item is located.
582021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @param columnSpan The number of columns the item spans.
583021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @param heading Whether the item is a heading.
584021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @return An instance.
585021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         */
58677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public static CollectionItemInfoCompat obtain(int rowIndex, int rowSpan,
58777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid                int columnIndex, int columnSpan, boolean heading) {
58877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return new CollectionItemInfoCompat(IMPL.obtainCollectionItemInfo(rowIndex, rowSpan,
58977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid                    columnIndex, columnSpan, heading));
59077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
59177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
592552766fa685c63ad760c92239faaba12e6ad51f1Aurimas Liutikas        CollectionItemInfoCompat(Object info) {
593fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen            mInfo = info;
594fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        }
595fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
596021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver        /**
597021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * Gets the column index at which the item is located.
598021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *
599021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @return The column index.
600021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         */
601fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        public int getColumnIndex() {
602a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return IMPL.getCollectionItemColumnIndex(mInfo);
603fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        }
604fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
605021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver        /**
606021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * Gets the number of columns the item spans.
607021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *
608021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @return The column span.
609021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         */
610fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        public int getColumnSpan() {
611a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return IMPL.getCollectionItemColumnSpan(mInfo);
612fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        }
613fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
614021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver        /**
615021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * Gets the row index at which the item is located.
616021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *
617021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @return The row index.
618021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         */
619fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        public int getRowIndex() {
620a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return IMPL.getCollectionItemRowIndex(mInfo);
621fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        }
622fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
623021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver        /**
624021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * Gets the number of rows the item spans.
625021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *
626021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @return The row span.
627021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         */
628fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        public int getRowSpan() {
629a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return IMPL.getCollectionItemRowSpan(mInfo);
630fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        }
631fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
632021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver        /**
633021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * Gets if the collection item is a heading. For example, section
634021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * heading, table header, etc.
635021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *
636021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @return If the item is a heading.
637021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         */
638fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        public boolean isHeading() {
639a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return IMPL.isCollectionItemHeading(mInfo);
640a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
641a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
642021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver        /**
643021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * Gets if the collection item is selected.
644021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *
645021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @return If the item is selected.
646021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         */
647a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public boolean isSelected() {
648a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return IMPL.isCollectionItemSelected(mInfo);
649fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        }
650fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen    }
651fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
652021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver    /**
653021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver     * Class with information if a node is a range.
654021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver     */
655fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen    public static class RangeInfoCompat {
656fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        /** Range type: integer. */
657fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        public static final int RANGE_TYPE_INT = 0;
658fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        /** Range type: float. */
659fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        public static final int RANGE_TYPE_FLOAT = 1;
660fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        /** Range type: percent with values from zero to one.*/
661fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        public static final int RANGE_TYPE_PERCENT = 2;
662fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
663021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver        /**
664021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * Obtains a cached instance if such is available otherwise a new one.
665021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *
666021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @param type The type of the range.
667021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @param min The min value.
668021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @param max The max value.
669021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @param current The current value.
670021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @return The instance
671021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         */
67277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public static RangeInfoCompat obtain(int type, float min, float max, float current) {
67377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return new RangeInfoCompat(IMPL.obtainRangeInfo(type, min, max, current));
67477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
67577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
676552766fa685c63ad760c92239faaba12e6ad51f1Aurimas Liutikas        final Object mInfo;
677fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
678552766fa685c63ad760c92239faaba12e6ad51f1Aurimas Liutikas        RangeInfoCompat(Object info) {
679fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen            mInfo = info;
680fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        }
681fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
682021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver        /**
683021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * Gets the current value.
684021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *
685021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @return The current value.
686021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         */
687fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        public float getCurrent() {
688fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen            return AccessibilityNodeInfoCompatKitKat.RangeInfo.getCurrent(mInfo);
689fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        }
690fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
691021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver        /**
692021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * Gets the max value.
693021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *
694021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @return The max value.
695021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         */
696fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        public float getMax() {
697fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen            return AccessibilityNodeInfoCompatKitKat.RangeInfo.getMax(mInfo);
698fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        }
699fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
700021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver        /**
701021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * Gets the min value.
702021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *
703021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @return The min value.
704021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         */
705fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        public float getMin() {
706fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen            return AccessibilityNodeInfoCompatKitKat.RangeInfo.getMin(mInfo);
707fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        }
708fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
709021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver        /**
710021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * Gets the range type.
711021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *
712021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @return The range type.
713021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         *
714021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @see #RANGE_TYPE_INT
715021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @see #RANGE_TYPE_FLOAT
716021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         * @see #RANGE_TYPE_PERCENT
717021b7ee8bec074bbb2f8da250293b35cc3d68175Phil Weaver         */
718fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        public int getType() {
719fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen            return AccessibilityNodeInfoCompatKitKat.RangeInfo.getType(mInfo);
720fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        }
721fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen    }
722fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
72377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid    interface AccessibilityNodeInfoImpl {
72477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object newAccessibilityAction(int actionId, CharSequence label);
72577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object obtain();
72677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object obtain(View source);
72777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object obtain(Object info);
72877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object obtain(View root, int virtualDescendantId);
72977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setSource(Object info, View source);
73077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setSource(Object info, View root, int virtualDescendantId);
73177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object findFocus(Object info, int focus);
73277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object focusSearch(Object info, int direction);
73377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        int getWindowId(Object info);
73477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        int getChildCount(Object info);
73577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object getChild(Object info, int index);
73677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void addChild(Object info, View child);
73777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void addChild(Object info, View child, int virtualDescendantId);
73877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean removeChild(Object info, View child);
73977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean removeChild(Object info, View root, int virtualDescendantId);
74077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        int getActions(Object info);
74177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void addAction(Object info, int action);
74277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void addAction(Object info, Object action);
74377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean removeAction(Object info, Object action);
74477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        int getAccessibilityActionId(Object action);
74577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        CharSequence getAccessibilityActionLabel(Object action);
74677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean performAction(Object info, int action);
74777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean performAction(Object info, int action, Bundle arguments);
74877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setMovementGranularities(Object info, int granularities);
74977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        int getMovementGranularities(Object info);
75077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        List<Object> findAccessibilityNodeInfosByText(Object info, String text);
75177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object getParent(Object info);
75277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setParent(Object info, View root, int virtualDescendantId);
75377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setParent(Object info, View parent);
75477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void getBoundsInParent(Object info, Rect outBounds);
75577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setBoundsInParent(Object info, Rect bounds);
75677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void getBoundsInScreen(Object info, Rect outBounds);
75777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setBoundsInScreen(Object info, Rect bounds);
75877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean isCheckable(Object info);
75977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setCheckable(Object info, boolean checkable);
76077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean isChecked(Object info);
76177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setChecked(Object info, boolean checked);
76277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean isFocusable(Object info);
76377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setFocusable(Object info, boolean focusable);
76477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean isFocused(Object info);
76577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setFocused(Object info, boolean focused);
76677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean isVisibleToUser(Object info);
76777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setVisibleToUser(Object info, boolean visibleToUser);
76877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean isAccessibilityFocused(Object info);
76977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setAccessibilityFocused(Object info, boolean focused);
77077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean isSelected(Object info);
77177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setSelected(Object info, boolean selected);
77277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean isClickable(Object info);
77377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setClickable(Object info, boolean clickable);
77477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean isLongClickable(Object info);
77577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setLongClickable(Object info, boolean longClickable);
77677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean isEnabled(Object info);
77777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setEnabled(Object info, boolean enabled);
77877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean isPassword(Object info);
77977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setPassword(Object info, boolean password);
78077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean isScrollable(Object info);
78177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setScrollable(Object info, boolean scrollable);
78277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        CharSequence getPackageName(Object info);
78377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setPackageName(Object info, CharSequence packageName);
78477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        CharSequence getClassName(Object info);
78577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setClassName(Object info, CharSequence className);
78677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        CharSequence getText(Object info);
78777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setText(Object info, CharSequence text);
78877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        CharSequence getContentDescription(Object info);
78977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setContentDescription(Object info, CharSequence contentDescription);
79077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void recycle(Object info);
79177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        String getViewIdResourceName(Object info);
79277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setViewIdResourceName(Object info, String viewId);
79377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        int getLiveRegion(Object info);
79477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setLiveRegion(Object info, int mode);
79577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object getCollectionInfo(Object info);
79677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setCollectionInfo(Object info, Object collectionInfo);
79777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object getCollectionItemInfo(Object info);
79877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setCollectionItemInfo(Object info, Object collectionItemInfo);
79977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object getRangeInfo(Object info);
80077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setRangeInfo(Object info, Object rangeInfo);
80177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        List<Object> getActionList(Object info);
80277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object obtainCollectionInfo(int rowCount, int columnCount, boolean hierarchical,
803a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar                int selectionMode);
80477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object obtainCollectionInfo(int rowCount, int columnCount, boolean hierarchical);
80577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        int getCollectionInfoColumnCount(Object info);
80677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        int getCollectionInfoRowCount(Object info);
80777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean isCollectionInfoHierarchical(Object info);
80877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        int getCollectionInfoSelectionMode(Object info);
80977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object obtainCollectionItemInfo(int rowIndex, int rowSpan, int columnIndex,
810a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar                int columnSpan, boolean heading, boolean selected);
81177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object obtainCollectionItemInfo(int rowIndex, int rowSpan, int columnIndex,
81277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid                int columnSpan, boolean heading);
81377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        int getCollectionItemColumnIndex(Object info);
81477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        int getCollectionItemColumnSpan(Object info);
81577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        int getCollectionItemRowIndex(Object info);
81677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        int getCollectionItemRowSpan(Object info);
81777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean isCollectionItemHeading(Object info);
81877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean isCollectionItemSelected(Object info);
81977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object obtainRangeInfo(int type, float min, float max, float current);
82077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object getTraversalBefore(Object info);
82177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setTraversalBefore(Object info, View view);
82277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setTraversalBefore(Object info, View root, int virtualDescendantId);
82377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object getTraversalAfter(Object info);
82477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setTraversalAfter(Object info, View view);
82577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setTraversalAfter(Object info, View root, int virtualDescendantId);
82677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setContentInvalid(Object info, boolean contentInvalid);
82777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean isContentInvalid(Object info);
82877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setError(Object info, CharSequence error);
82977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        CharSequence getError(Object info);
83077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setLabelFor(Object info, View labeled);
83177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setLabelFor(Object info, View root, int virtualDescendantId);
83277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object getLabelFor(Object info);
83377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setLabeledBy(Object info, View labeled);
83477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setLabeledBy(Object info, View root, int virtualDescendantId);
83577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object getLabeledBy(Object info);
83677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean canOpenPopup(Object info);
83777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setCanOpenPopup(Object info, boolean opensPopup);
83877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        List<Object> findAccessibilityNodeInfosByViewId(Object info, String viewId);
83977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Bundle getExtras(Object info);
84077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        int getInputType(Object info);
84177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setInputType(Object info, int inputType);
84277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setMaxTextLength(Object info, int max);
84377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        int getMaxTextLength(Object info);
84477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setTextSelection(Object info, int start, int end);
84577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        int getTextSelectionStart(Object info);
84677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        int getTextSelectionEnd(Object info);
84777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object getWindow(Object info);
84877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean isDismissable(Object info);
84977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setDismissable(Object info, boolean dismissable);
85077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean isEditable(Object info);
85177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setEditable(Object info, boolean editable);
85277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        int getDrawingOrder(Object info);
85377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setDrawingOrder(Object info, int drawingOrderInParent);
85477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean isImportantForAccessibility(Object info);
85577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setImportantForAccessibility(Object info, boolean importantForAccessibility);
85677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean isMultiLine(Object info);
85777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setMultiLine(Object info, boolean multiLine);
85877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean refresh(Object info);
85977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        CharSequence getRoleDescription(Object info);
86077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setRoleDescription(Object info, CharSequence roleDescription);
86177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object getActionScrollToPosition();
86277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object getActionSetProgress();
86377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        boolean isContextClickable(Object info);
86477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        void setContextClickable(Object info, boolean contextClickable);
86577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object getActionShowOnScreen();
86677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object getActionScrollUp();
86777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object getActionScrollDown();
86877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object getActionScrollLeft();
86977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object getActionScrollRight();
87077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        Object getActionContextClick();
8719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
8729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
8739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    static class AccessibilityNodeInfoStubImpl implements AccessibilityNodeInfoImpl {
87470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
87584ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        public Object newAccessibilityAction(int actionId, CharSequence label) {
87684ef4490e42b960ea375630f9cc37246af9c571bSvetoslav            return null;
87784ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        }
87884ef4490e42b960ea375630f9cc37246af9c571bSvetoslav
87984ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        @Override
8809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain() {
8819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
8829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
8839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
88470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
8859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain(View source) {
8869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
8879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
8889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
88970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
89070e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object obtain(View root, int virtualDescendantId) {
89170e96ebf69f91da84681a6263b3862c63d53ab11alanv            return null;
89270e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
89370e96ebf69f91da84681a6263b3862c63d53ab11alanv
89470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
8959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain(Object info) {
8969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
8979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
8989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
89970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
9009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void addAction(Object info, int action) {
9019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
9029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
9039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
90470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
90584ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        public void addAction(Object info, Object action) {
90684ef4490e42b960ea375630f9cc37246af9c571bSvetoslav
90784ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        }
90884ef4490e42b960ea375630f9cc37246af9c571bSvetoslav
90984ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        @Override
9108aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public boolean removeAction(Object info, Object action) {
9118aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return false;
9128aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
9138aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
9148aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
91584ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        public int getAccessibilityActionId(Object action) {
91684ef4490e42b960ea375630f9cc37246af9c571bSvetoslav            return 0;
91784ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        }
91884ef4490e42b960ea375630f9cc37246af9c571bSvetoslav
91984ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        @Override
92084ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        public CharSequence getAccessibilityActionLabel(Object action) {
92184ef4490e42b960ea375630f9cc37246af9c571bSvetoslav            return null;
92284ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        }
92384ef4490e42b960ea375630f9cc37246af9c571bSvetoslav
92484ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        @Override
9259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void addChild(Object info, View child) {
9269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
9279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
9289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
92970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
9303a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        public void addChild(Object info, View child, int virtualDescendantId) {
9313a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov
9323a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        }
9333a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov
93470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
9358aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public boolean removeChild(Object info, View child) {
9368aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return false;
9378aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
9388aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
9398aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
9408aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public boolean removeChild(Object info, View root, int virtualDescendantId) {
9418aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return false;
9428aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
9438aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
9448aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
9459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public List<Object> findAccessibilityNodeInfosByText(Object info, String text) {
946f9c2277244722eca88c784b9cfdcc78df7f94781Svetoslav Ganov            return Collections.emptyList();
9479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
9489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
94970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
9509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getActions(Object info) {
9519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return 0;
9529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
9539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
95470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
9559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void getBoundsInParent(Object info, Rect outBounds) {
9569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
9579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
9589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
95970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
9609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void getBoundsInScreen(Object info, Rect outBounds) {
9619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
9629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
9639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
96470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
96570e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object getChild(Object info, int index) {
9669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
9679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
9689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
96970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
9709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getChildCount(Object info) {
9719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return 0;
9729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
9739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
97470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
9759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getClassName(Object info) {
9769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
9779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
9789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
97970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
9809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getContentDescription(Object info) {
9819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
9829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
9839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
98470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
9859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getPackageName(Object info) {
9869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
9879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
9889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
98970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
99070e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object getParent(Object info) {
9919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
9929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
9939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
99470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
9959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getText(Object info) {
9969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
9979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
9989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
99970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
10009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getWindowId(Object info) {
10019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return 0;
10029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
10039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
100470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
10059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isCheckable(Object info) {
10069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
10079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
10089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
100970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
10109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isChecked(Object info) {
10119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
10129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
10139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
101470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
10159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isClickable(Object info) {
10169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
10179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
10189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
101970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
10209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isEnabled(Object info) {
10219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
10229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
10239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
102470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
10259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isFocusable(Object info) {
10269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
10279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
10289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
102970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
10309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isFocused(Object info) {
10319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
10329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
10339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
103470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
103570e96ebf69f91da84681a6263b3862c63d53ab11alanv        public boolean isVisibleToUser(Object info) {
103670e96ebf69f91da84681a6263b3862c63d53ab11alanv            return false;
103770e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
103870e96ebf69f91da84681a6263b3862c63d53ab11alanv
103970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
104070e96ebf69f91da84681a6263b3862c63d53ab11alanv        public boolean isAccessibilityFocused(Object info) {
104170e96ebf69f91da84681a6263b3862c63d53ab11alanv            return false;
104270e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
104370e96ebf69f91da84681a6263b3862c63d53ab11alanv
104470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
10459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isLongClickable(Object info) {
10469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
10479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
10489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
104970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
10509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isPassword(Object info) {
10519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
10529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
10539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
105470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
10559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isScrollable(Object info) {
10569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
10579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
10589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
105970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
10609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isSelected(Object info) {
10619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
10629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
10639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
106470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
10659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean performAction(Object info, int action) {
10669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
10679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
10689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
106970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
107070e96ebf69f91da84681a6263b3862c63d53ab11alanv        public boolean performAction(Object info, int action, Bundle arguments) {
107170e96ebf69f91da84681a6263b3862c63d53ab11alanv            return false;
107270e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
107370e96ebf69f91da84681a6263b3862c63d53ab11alanv
107470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
107570e96ebf69f91da84681a6263b3862c63d53ab11alanv        public void setMovementGranularities(Object info, int granularities) {
107670e96ebf69f91da84681a6263b3862c63d53ab11alanv
107770e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
107870e96ebf69f91da84681a6263b3862c63d53ab11alanv
107970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
108070e96ebf69f91da84681a6263b3862c63d53ab11alanv        public int getMovementGranularities(Object info) {
108170e96ebf69f91da84681a6263b3862c63d53ab11alanv            return 0;
108270e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
108370e96ebf69f91da84681a6263b3862c63d53ab11alanv
108470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
10859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setBoundsInParent(Object info, Rect bounds) {
10869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
10879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
10889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
108970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
10909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setBoundsInScreen(Object info, Rect bounds) {
10919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
10929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
10939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
109470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
10959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setCheckable(Object info, boolean checkable) {
10969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
10979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
10989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
109970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
11009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setChecked(Object info, boolean checked) {
11019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
11039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
110470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
11059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setClassName(Object info, CharSequence className) {
11069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
11089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
110970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
11109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setClickable(Object info, boolean clickable) {
11119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
11139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
111470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
11159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setContentDescription(Object info, CharSequence contentDescription) {
11169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
11189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
111970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
11209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setEnabled(Object info, boolean enabled) {
11219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
11239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
112470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
11259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setFocusable(Object info, boolean focusable) {
11269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
11289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
112970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
11309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setFocused(Object info, boolean focused) {
11319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
11339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
113470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
113570e96ebf69f91da84681a6263b3862c63d53ab11alanv        public void setVisibleToUser(Object info, boolean visibleToUser) {
113670e96ebf69f91da84681a6263b3862c63d53ab11alanv
113770e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
113870e96ebf69f91da84681a6263b3862c63d53ab11alanv
113970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
114070e96ebf69f91da84681a6263b3862c63d53ab11alanv        public void setAccessibilityFocused(Object info, boolean focused) {
114170e96ebf69f91da84681a6263b3862c63d53ab11alanv
114270e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
114370e96ebf69f91da84681a6263b3862c63d53ab11alanv
114470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
11459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setLongClickable(Object info, boolean longClickable) {
11469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
11489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
114970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
11509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setPackageName(Object info, CharSequence packageName) {
11519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
11539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
115470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
11559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setParent(Object info, View parent) {
11569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
11589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
115970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
11609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setPassword(Object info, boolean password) {
11619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
11639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
116470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
11659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setScrollable(Object info, boolean scrollable) {
11669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
11689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
116970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
11709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setSelected(Object info, boolean selected) {
11719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
11739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
117470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
11759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setSource(Object info, View source) {
11769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
11789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
117970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
11803a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        public void setSource(Object info, View root, int virtualDescendantId) {
11813a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov
11823a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        }
11833a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov
118470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
118570e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object findFocus(Object info, int focus) {
118670e96ebf69f91da84681a6263b3862c63d53ab11alanv            return null;
118770e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
118870e96ebf69f91da84681a6263b3862c63d53ab11alanv
118970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
119070e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object focusSearch(Object info, int direction) {
119170e96ebf69f91da84681a6263b3862c63d53ab11alanv            return null;
119270e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
119370e96ebf69f91da84681a6263b3862c63d53ab11alanv
119470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
11959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setText(Object info, CharSequence text) {
11969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
11989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
119970e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
12009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void recycle(Object info) {
12019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
12029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
120370e96ebf69f91da84681a6263b3862c63d53ab11alanv
120470e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
120570e96ebf69f91da84681a6263b3862c63d53ab11alanv        public void setParent(Object info, View root, int virtualDescendantId) {
120670e96ebf69f91da84681a6263b3862c63d53ab11alanv
120770e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
12080fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
12090fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        @Override
1210071eca0f490d88fc51cea8f739780c7c92b920c3Svetoslav        public String getViewIdResourceName(Object info) {
12110fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            return null;
12120fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        }
12130fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
12140fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        @Override
1215071eca0f490d88fc51cea8f739780c7c92b920c3Svetoslav        public void setViewIdResourceName(Object info, String viewId) {
12160fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
12170fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        }
1218086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette
1219086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette        @Override
1220086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette        public int getLiveRegion(Object info) {
1221086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette            return ViewCompat.ACCESSIBILITY_LIVE_REGION_NONE;
1222086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette        }
1223086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette
1224086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette        @Override
1225086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette        public void setLiveRegion(Object info, int mode) {
1226086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette            // No-op
1227086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette        }
1228fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
1229fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        @Override
1230fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        public Object getCollectionInfo(Object info) {
1231fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen            return null;
1232fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        }
1233fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
1234fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        @Override
1235a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public void setCollectionInfo(Object info, Object collectionInfo) {
1236a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
1237a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
1238a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
1239fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        public Object getCollectionItemInfo(Object info) {
1240fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen            return null;
1241fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        }
1242fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
1243fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        @Override
1244a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public void setCollectionItemInfo(Object info, Object collectionItemInfo) {
1245a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
1246a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
1247a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
1248fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        public Object getRangeInfo(Object info) {
1249fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen            return null;
1250fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        }
1251389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen
1252389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen        @Override
12538aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public void setRangeInfo(Object info, Object rangeInfo) {
12548aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
12558aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
12568aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
1257389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen        public List<Object> getActionList(Object info) {
1258389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen            return null;
1259389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen        }
1260389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen
1261389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen        @Override
1262a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public Object obtainCollectionInfo(int rowCount, int columnCount, boolean hierarchical,
1263a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar                int selectionMode) {
1264a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return null;
1265a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
1266a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
1267a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
126877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public Object obtainCollectionInfo(int rowCount, int columnCount, boolean hierarchical) {
126977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return null;
127077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
127177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
127277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
1273a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public int getCollectionInfoColumnCount(Object info) {
1274a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return 0;
1275a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
1276a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
1277a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
1278a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public int getCollectionInfoRowCount(Object info) {
1279a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return 0;
1280a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
1281a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
1282a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
1283a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public boolean isCollectionInfoHierarchical(Object info) {
1284a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return false;
1285a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
1286a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
1287a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
1288a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public Object obtainCollectionItemInfo(int rowIndex, int rowSpan, int columnIndex,
1289a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar                int columnSpan, boolean heading, boolean selected) {
1290a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return null;
1291a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
1292a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
1293a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
129477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public Object obtainCollectionItemInfo(int rowIndex, int rowSpan, int columnIndex,
129577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid                int columnSpan, boolean heading) {
129677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return null;
129777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
129877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
129977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
1300a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public int getCollectionItemColumnIndex(Object info) {
1301a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return 0;
1302a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
1303a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
1304a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
1305a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public int getCollectionItemColumnSpan(Object info) {
1306a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return 0;
1307a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
1308a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
1309a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
1310a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public int getCollectionItemRowIndex(Object info) {
1311a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return 0;
1312a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
1313a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
1314a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
1315a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public int getCollectionItemRowSpan(Object info) {
1316a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return 0;
1317a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
1318a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
1319a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
1320a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public boolean isCollectionItemHeading(Object info) {
1321a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return false;
1322a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
1323a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
1324a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
1325a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public boolean isCollectionItemSelected(Object info) {
1326a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return false;
1327a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
1328acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov
1329acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        @Override
133077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public Object obtainRangeInfo(int type, float min, float max, float current) {
133177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return null;
133277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
133377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
133477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
13358aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public Object getTraversalBefore(Object info) {
1336acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov            return null;
1337acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        }
1338acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov
1339acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        @Override
1340acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        public void setTraversalBefore(Object info, View view) {
1341acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        }
1342acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov
1343acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        @Override
1344acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        public void setTraversalBefore(Object info, View root, int virtualDescendantId) {
1345acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        }
1346acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov
1347acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        @Override
13488aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public Object getTraversalAfter(Object info) {
1349acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov            return null;
1350acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        }
1351acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov
1352acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        @Override
1353acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        public void setTraversalAfter(Object info, View view) {
1354acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        }
1355acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov
1356acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        @Override
1357acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        public void setTraversalAfter(Object info, View root, int virtualDescendantId) {
1358acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        }
1359c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes
1360c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        @Override
1361c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        public void setContentInvalid(Object info, boolean contentInvalid) {
1362c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        }
1363c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes
1364c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        @Override
1365c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        public boolean isContentInvalid(Object info) {
1366c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes            return false;
1367c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        }
1368c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes
1369c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        @Override
1370c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        public void setError(Object info, CharSequence error) {
1371c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        }
1372c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes
1373c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        @Override
1374c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        public CharSequence getError(Object info) {
1375c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes            return null;
1376c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        }
1377c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes
1378c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        @Override
1379c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        public void setLabelFor(Object info, View labeled) {
1380c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        }
1381c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes
1382c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        @Override
1383c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        public void setLabelFor(Object info, View root, int virtualDescendantId) {
1384c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        }
13858aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
13868aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
13878aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public Object getLabelFor(Object info) {
13888aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return null;
13898aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
13908aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
13918aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
13928aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public void setLabeledBy(Object info, View labeled) {
13938aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
13948aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
13958aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
13968aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public void setLabeledBy(Object info, View root, int virtualDescendantId) {
13978aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
13988aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
13998aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
14008aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public Object getLabeledBy(Object info){
14018aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return null;
14028aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
14038aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
14048aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
14058aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public boolean canOpenPopup(Object info) {
14068aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return false;
14078aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
14088aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
14098aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
14108aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public void setCanOpenPopup(Object info, boolean opensPopup) {
14118aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
14128aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
14138aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
14148aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public List<Object> findAccessibilityNodeInfosByViewId(Object info, String viewId) {
14158aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return  Collections.emptyList();
14168aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
14178aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
14188aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
14198aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public Bundle getExtras(Object info) {
14208aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return new Bundle();
14218aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
14228aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
14238aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
14248aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public int getInputType(Object info) {
14258aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return InputType.TYPE_NULL;
14268aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
14278aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
14288aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
14298aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public void setInputType(Object info, int inputType) {
14308aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
14318aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
14328aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
14338aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public void setMaxTextLength(Object info, int max) {
14348aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
14358aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
14368aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
14378aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public int getMaxTextLength(Object info) {
14388aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return -1;
14398aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
14408aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
14418aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
14428aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public void setTextSelection(Object info, int start, int end) {
14438aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
14448aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
14458aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
14468aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public int getTextSelectionStart(Object info) {
14478aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return -1;
14488aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
14498aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
14508aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
14518aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public int getTextSelectionEnd(Object info) {
14528aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return -1;
14538aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
14548aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
14558aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
14568aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public Object getWindow(Object info) {
14578aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return null;
14588aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
14598aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
14608aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
14618aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public boolean isDismissable(Object info) {
14628aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return false;
14638aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
14648aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
14658aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
14668aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public void setDismissable(Object info, boolean dismissable) {
14678aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
14688aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
14698aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
14708aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public boolean isEditable(Object info) {
14718aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return false;
14728aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
14738aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
14748aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
14758aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public void setEditable(Object info, boolean editable) {
14768aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
14778aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
14788aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
14798aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public boolean isMultiLine(Object info) {
14808aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return false;
14818aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
14828aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
14838aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
14848aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public void setMultiLine(Object info, boolean multiLine) {
14858aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
14868aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
14878aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
14888aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public boolean refresh(Object info) {
14898aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return false;
14908aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
1491f0d984600125413628899bfc849bab102bc2228eSteven Dao
1492f0d984600125413628899bfc849bab102bc2228eSteven Dao        @Override
1493f0d984600125413628899bfc849bab102bc2228eSteven Dao        public CharSequence getRoleDescription(Object info) {
1494f0d984600125413628899bfc849bab102bc2228eSteven Dao            return null;
1495f0d984600125413628899bfc849bab102bc2228eSteven Dao        }
1496f0d984600125413628899bfc849bab102bc2228eSteven Dao
1497f0d984600125413628899bfc849bab102bc2228eSteven Dao        @Override
1498f0d984600125413628899bfc849bab102bc2228eSteven Dao        public void setRoleDescription(Object info, CharSequence roleDescription) {
1499f0d984600125413628899bfc849bab102bc2228eSteven Dao        }
1500cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver
1501cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        @Override
150277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public Object getActionScrollToPosition() {
150377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return null;
150477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
150577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
150677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
150777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public Object getActionSetProgress() {
150877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return null;
150977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
151077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
151177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
151277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public boolean isContextClickable(Object info) {
151377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return false;
151477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
151577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
151677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
151777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public void setContextClickable(Object info, boolean contextClickable) {
151877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            // Do nothing.
151977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
152077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
152177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
152277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public Object getActionShowOnScreen() {
152377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return null;
152477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
152577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
152677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
152777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public Object getActionScrollUp() {
152877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return null;
152977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
153077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
153177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
153277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public Object getActionScrollDown() {
153377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return null;
153477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
153577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
153677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
153777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public Object getActionScrollLeft() {
153877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return null;
153977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
154077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
154177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
154277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public Object getActionScrollRight() {
154377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return null;
154477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
154577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
154677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
154777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public Object getActionContextClick() {
154877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return null;
154977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
155077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
155177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
155277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public int getCollectionInfoSelectionMode(Object info) {
155377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return 0;
155477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
155577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
155677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
1557cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        public int getDrawingOrder(Object info) {
1558cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver            return 0;
1559cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        }
1560cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver
1561cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        @Override
1562cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        public void setDrawingOrder(Object info, int drawingOrderInParent) {
1563cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        }
1564cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver
1565cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        @Override
1566cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        public boolean isImportantForAccessibility(Object info) {
1567cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver            return true;
1568cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        }
1569cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver
1570cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        @Override
1571cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        public void setImportantForAccessibility(Object info, boolean importantForAccessibility) {
1572cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        }
15739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
15749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
15759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    static class AccessibilityNodeInfoIcsImpl extends AccessibilityNodeInfoStubImpl {
15769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
15779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain() {
15789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.obtain();
15799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
15809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
15819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
15829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain(View source) {
15839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.obtain(source);
15849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
15859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
15869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
15879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain(Object info) {
15889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.obtain(info);
15899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
15909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
15919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
15929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void addAction(Object info, int action) {
15939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.addAction(info, action);
15949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
15959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
15969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
15979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void addChild(Object info, View child) {
15989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.addChild(info, child);
15999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
16009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
16029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public List<Object> findAccessibilityNodeInfosByText(Object info, String text) {
16039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.findAccessibilityNodeInfosByText(info, text);
16049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
16059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
16079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getActions(Object info) {
16089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.getActions(info);
16099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
16109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
16129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void getBoundsInParent(Object info, Rect outBounds) {
16139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.getBoundsInParent(info, outBounds);
16149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
16159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
16179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void getBoundsInScreen(Object info, Rect outBounds) {
16189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.getBoundsInScreen(info, outBounds);
16199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
16209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
162270e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object getChild(Object info, int index) {
162370e96ebf69f91da84681a6263b3862c63d53ab11alanv            return AccessibilityNodeInfoCompatIcs.getChild(info, index);
16249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
16259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
16279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getChildCount(Object info) {
16289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.getChildCount(info);
16299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
16309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
16329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getClassName(Object info) {
16339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.getClassName(info);
16349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
16359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
16379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getContentDescription(Object info) {
16389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.getContentDescription(info);
16399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
16409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
16429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getPackageName(Object info) {
16439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.getPackageName(info);
16449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
16459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
164770e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object getParent(Object info) {
164870e96ebf69f91da84681a6263b3862c63d53ab11alanv            return AccessibilityNodeInfoCompatIcs.getParent(info);
16499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
16509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
16529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getText(Object info) {
16539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.getText(info);
16549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
16559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
16579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getWindowId(Object info) {
16589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.getWindowId(info);
16599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
16609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
16629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isCheckable(Object info) {
16639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isCheckable(info);
16649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
16659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
16679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isChecked(Object info) {
16689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isChecked(info);
16699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
16709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
16729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isClickable(Object info) {
16739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isClickable(info);
16749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
16759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
16779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isEnabled(Object info) {
16789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isEnabled(info);
16799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
16809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
16829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isFocusable(Object info) {
16839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isFocusable(info);
16849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
16859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
16879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isFocused(Object info) {
16889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isFocused(info);
16899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
16909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
16929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isLongClickable(Object info) {
16939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isLongClickable(info);
16949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
16959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
16979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isPassword(Object info) {
16989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isPassword(info);
16999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
17029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isScrollable(Object info) {
17039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isScrollable(info);
17049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
17079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isSelected(Object info) {
17089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isSelected(info);
17099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
17129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean performAction(Object info, int action) {
17139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.performAction(info, action);
17149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
17179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setBoundsInParent(Object info, Rect bounds) {
17189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setBoundsInParent(info, bounds);
17199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
17229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setBoundsInScreen(Object info, Rect bounds) {
17239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setBoundsInScreen(info, bounds);
17249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
17279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setCheckable(Object info, boolean checkable) {
17289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setCheckable(info, checkable);
17299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
17329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setChecked(Object info, boolean checked) {
17339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setChecked(info, checked);
17349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
17379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setClassName(Object info, CharSequence className) {
17389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setClassName(info, className);
17399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
17429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setClickable(Object info, boolean clickable) {
17439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setClickable(info, clickable);
17449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
17479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setContentDescription(Object info, CharSequence contentDescription) {
17489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setContentDescription(info, contentDescription);
17499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
17529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setEnabled(Object info, boolean enabled) {
17539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setEnabled(info, enabled);
17549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
17579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setFocusable(Object info, boolean focusable) {
17589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setFocusable(info, focusable);
17599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
17629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setFocused(Object info, boolean focused) {
17639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setFocused(info, focused);
17649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
17679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setLongClickable(Object info, boolean longClickable) {
17689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setLongClickable(info, longClickable);
17699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
17729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setPackageName(Object info, CharSequence packageName) {
17739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setPackageName(info, packageName);
17749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
17779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setParent(Object info, View parent) {
17789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setParent(info, parent);
17799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
17829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setPassword(Object info, boolean password) {
17839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setPassword(info, password);
17849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
17879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setScrollable(Object info, boolean scrollable) {
17889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setScrollable(info, scrollable);
17899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
17929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setSelected(Object info, boolean selected) {
17939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setSelected(info, selected);
17949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
17979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setSource(Object info, View source) {
17989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setSource(info, source);
17999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
18009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
18019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
18029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setText(Object info, CharSequence text) {
18039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setText(info, text);
18049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
18059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
18069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
18079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void recycle(Object info) {
18089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.recycle(info);
18099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
18109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
18119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
18123a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov    static class AccessibilityNodeInfoJellybeanImpl extends AccessibilityNodeInfoIcsImpl {
18133a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        @Override
181470e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object obtain(View root, int virtualDescendantId) {
181570e96ebf69f91da84681a6263b3862c63d53ab11alanv            return AccessibilityNodeInfoCompatJellyBean.obtain(root, virtualDescendantId);
181670e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
181770e96ebf69f91da84681a6263b3862c63d53ab11alanv
181870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
181970e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object findFocus(Object info, int focus) {
182070e96ebf69f91da84681a6263b3862c63d53ab11alanv            return AccessibilityNodeInfoCompatJellyBean.findFocus(info, focus);
182170e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
182270e96ebf69f91da84681a6263b3862c63d53ab11alanv
182370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
182470e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object focusSearch(Object info, int direction) {
182570e96ebf69f91da84681a6263b3862c63d53ab11alanv            return AccessibilityNodeInfoCompatJellyBean.focusSearch(info, direction);
182670e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
182770e96ebf69f91da84681a6263b3862c63d53ab11alanv
182870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
18293a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        public void addChild(Object info, View child, int virtualDescendantId) {
18303a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov            AccessibilityNodeInfoCompatJellyBean.addChild(info, child, virtualDescendantId);
18313a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        }
18323a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov
18333a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        @Override
18343a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        public void setSource(Object info, View root, int virtualDescendantId) {
18353a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov            AccessibilityNodeInfoCompatJellyBean.setSource(info, root, virtualDescendantId);
18363a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        }
183770e96ebf69f91da84681a6263b3862c63d53ab11alanv
183870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
183970e96ebf69f91da84681a6263b3862c63d53ab11alanv        public boolean isVisibleToUser(Object info) {
184070e96ebf69f91da84681a6263b3862c63d53ab11alanv            return AccessibilityNodeInfoCompatJellyBean.isVisibleToUser(info);
184170e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
184270e96ebf69f91da84681a6263b3862c63d53ab11alanv
184370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
184470e96ebf69f91da84681a6263b3862c63d53ab11alanv        public void setVisibleToUser(Object info, boolean visibleToUser) {
184570e96ebf69f91da84681a6263b3862c63d53ab11alanv            AccessibilityNodeInfoCompatJellyBean.setVisibleToUser(info, visibleToUser);
184670e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
184770e96ebf69f91da84681a6263b3862c63d53ab11alanv
184870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
184970e96ebf69f91da84681a6263b3862c63d53ab11alanv        public boolean isAccessibilityFocused(Object info) {
185070e96ebf69f91da84681a6263b3862c63d53ab11alanv            return AccessibilityNodeInfoCompatJellyBean.isAccessibilityFocused(info);
185170e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
185270e96ebf69f91da84681a6263b3862c63d53ab11alanv
185370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
185470e96ebf69f91da84681a6263b3862c63d53ab11alanv        public void setAccessibilityFocused(Object info, boolean focused) {
185570e96ebf69f91da84681a6263b3862c63d53ab11alanv            AccessibilityNodeInfoCompatJellyBean.setAccesibilityFocused(info, focused);
185670e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
185770e96ebf69f91da84681a6263b3862c63d53ab11alanv
185870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
185970e96ebf69f91da84681a6263b3862c63d53ab11alanv        public boolean performAction(Object info, int action, Bundle arguments) {
186070e96ebf69f91da84681a6263b3862c63d53ab11alanv            return AccessibilityNodeInfoCompatJellyBean.performAction(info, action, arguments);
186170e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
186270e96ebf69f91da84681a6263b3862c63d53ab11alanv
186370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
186470e96ebf69f91da84681a6263b3862c63d53ab11alanv        public void setMovementGranularities(Object info, int granularities) {
186570e96ebf69f91da84681a6263b3862c63d53ab11alanv            AccessibilityNodeInfoCompatJellyBean.setMovementGranularities(info, granularities);
186670e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
186770e96ebf69f91da84681a6263b3862c63d53ab11alanv
186870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
186970e96ebf69f91da84681a6263b3862c63d53ab11alanv        public int getMovementGranularities(Object info) {
187070e96ebf69f91da84681a6263b3862c63d53ab11alanv            return AccessibilityNodeInfoCompatJellyBean.getMovementGranularities(info);
187170e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
187270e96ebf69f91da84681a6263b3862c63d53ab11alanv
187370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
187470e96ebf69f91da84681a6263b3862c63d53ab11alanv        public void setParent(Object info, View root, int virtualDescendantId) {
187570e96ebf69f91da84681a6263b3862c63d53ab11alanv            AccessibilityNodeInfoCompatJellyBean.setParent(info, root, virtualDescendantId);
187670e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
18773a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov    }
18783a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov
18798aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    static class AccessibilityNodeInfoJellybeanMr1Impl extends AccessibilityNodeInfoJellybeanImpl {
18808aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
18818aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
18828aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public void setLabelFor(Object info, View labeled) {
18838aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            AccessibilityNodeInfoCompatJellybeanMr1.setLabelFor(info, labeled);
18848aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
18858aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
18868aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
18878aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public void setLabelFor(Object info, View root, int virtualDescendantId) {
18888aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            AccessibilityNodeInfoCompatJellybeanMr1.setLabelFor(info, root, virtualDescendantId);
18898aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
18908aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
18918aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
18928aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public Object getLabelFor(Object info) {
18938aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return AccessibilityNodeInfoCompatJellybeanMr1.getLabelFor(info);
18948aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
18958aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
18968aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
18978aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public void setLabeledBy(Object info, View labeled) {
18988aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            AccessibilityNodeInfoCompatJellybeanMr1.setLabeledBy(info, labeled);
18998aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
19008aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
19018aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
19028aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public void setLabeledBy(Object info, View root, int virtualDescendantId) {
19038aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            AccessibilityNodeInfoCompatJellybeanMr1.setLabeledBy(info, root, virtualDescendantId);
19048aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
19058aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
19068aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
19078aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public Object getLabeledBy(Object info) {
19088aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return AccessibilityNodeInfoCompatJellybeanMr1.getLabeledBy(info);
19098aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
19108aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
19118aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
19128aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    static class AccessibilityNodeInfoJellybeanMr2Impl extends
19138aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            AccessibilityNodeInfoJellybeanMr1Impl {
19140fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
19150fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        @Override
1916071eca0f490d88fc51cea8f739780c7c92b920c3Svetoslav        public String getViewIdResourceName(Object info) {
19170fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            return AccessibilityNodeInfoCompatJellybeanMr2.getViewIdResourceName(info);
19180fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        }
19190fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
19200fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        @Override
1921071eca0f490d88fc51cea8f739780c7c92b920c3Svetoslav        public void setViewIdResourceName(Object info, String viewId) {
19220fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            AccessibilityNodeInfoCompatJellybeanMr2.setViewIdResourceName(info, viewId);
19230fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        }
19248aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
19258aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
19268aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public List<Object> findAccessibilityNodeInfosByViewId(Object info, String viewId) {
19278aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return AccessibilityNodeInfoCompatJellybeanMr2.findAccessibilityNodeInfosByViewId(info,
19288aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov                    viewId);
19298aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
19308aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
19318aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
19328aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public void setTextSelection(Object info, int start, int end) {
19338aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            AccessibilityNodeInfoCompatJellybeanMr2.setTextSelection(info, start, end);
19348aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
19358aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
19368aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
19378aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public int getTextSelectionStart(Object info) {
19388aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return AccessibilityNodeInfoCompatJellybeanMr2.getTextSelectionStart(info);
19398aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
19408aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
19418aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
19428aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public int getTextSelectionEnd(Object info) {
19438aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return AccessibilityNodeInfoCompatJellybeanMr2.getTextSelectionEnd(info);
19448aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
19458aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
19468aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
19478aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public boolean isEditable(Object info) {
19488aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return AccessibilityNodeInfoCompatJellybeanMr2.isEditable(info);
19498aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
19508aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
19518aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
19528aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public void setEditable(Object info, boolean editable) {
19538aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            AccessibilityNodeInfoCompatJellybeanMr2.setEditable(info, editable);
19548aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
19558aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
19568aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
19578aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public boolean refresh(Object info) {
19588aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return AccessibilityNodeInfoCompatJellybeanMr2.refresh(info);
19598aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
19600fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    }
19610fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
1962086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette    static class AccessibilityNodeInfoKitKatImpl extends AccessibilityNodeInfoJellybeanMr2Impl {
1963086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette        @Override
1964086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette        public int getLiveRegion(Object info) {
1965086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette            return AccessibilityNodeInfoCompatKitKat.getLiveRegion(info);
1966086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette        }
1967086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette
1968086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette        @Override
1969086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette        public void setLiveRegion(Object info, int mode) {
1970086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette            AccessibilityNodeInfoCompatKitKat.setLiveRegion(info, mode);
1971086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette        }
1972fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
1973fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        @Override
1974fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        public Object getCollectionInfo(Object info) {
1975fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen            return AccessibilityNodeInfoCompatKitKat.getCollectionInfo(info);
1976fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        }
1977fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
1978fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        @Override
1979a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public void setCollectionInfo(Object info, Object collectionInfo) {
1980a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            AccessibilityNodeInfoCompatKitKat.setCollectionInfo(info, collectionInfo);
1981a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
1982a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
1983a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
1984a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public Object obtainCollectionInfo(int rowCount, int columnCount,
1985a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar                boolean hierarchical, int selectionMode) {
1986a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return AccessibilityNodeInfoCompatKitKat.obtainCollectionInfo(rowCount, columnCount,
1987a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar                    hierarchical, selectionMode);
1988a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
1989a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
1990a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
199177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public Object obtainCollectionInfo(int rowCount, int columnCount, boolean hierarchical) {
199277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return AccessibilityNodeInfoCompatKitKat.obtainCollectionInfo(rowCount, columnCount,
199377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid                    hierarchical);
199477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
199577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
199677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
1997a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public Object obtainCollectionItemInfo(int rowIndex, int rowSpan, int columnIndex,
1998a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar                int columnSpan, boolean heading, boolean selected) {
1999a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return AccessibilityNodeInfoCompatKitKat
2000a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar                    .obtainCollectionItemInfo(rowIndex, rowSpan, columnIndex, columnSpan, heading);
2001a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
2002a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
2003a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
200477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public Object obtainCollectionItemInfo(int rowIndex, int rowSpan, int columnIndex,
200577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid                int columnSpan, boolean heading) {
200677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return AccessibilityNodeInfoCompatKitKat
200777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid                    .obtainCollectionItemInfo(rowIndex, rowSpan, columnIndex, columnSpan, heading);
200877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
200977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
201077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
2011a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public int getCollectionInfoColumnCount(Object info) {
2012a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return AccessibilityNodeInfoCompatKitKat.CollectionInfo.getColumnCount(info);
2013a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
2014a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
2015a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
2016a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public int getCollectionInfoRowCount(Object info) {
2017a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return AccessibilityNodeInfoCompatKitKat.CollectionInfo.getRowCount(info);
2018a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
2019a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
2020a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
2021a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public boolean isCollectionInfoHierarchical(Object info) {
2022a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return AccessibilityNodeInfoCompatKitKat.CollectionInfo.isHierarchical(info);
2023a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
2024a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
2025a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
2026fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        public Object getCollectionItemInfo(Object info) {
2027fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen            return AccessibilityNodeInfoCompatKitKat.getCollectionItemInfo(info);
2028fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        }
2029fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
2030fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        @Override
2031fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        public Object getRangeInfo(Object info) {
2032fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen            return AccessibilityNodeInfoCompatKitKat.getRangeInfo(info);
2033fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        }
2034a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
2035a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
20368aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public void setRangeInfo(Object info, Object rangeInfo) {
20378aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            AccessibilityNodeInfoCompatKitKat.setRangeInfo(info, rangeInfo);
20388aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
20398aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
20408aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
2041a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public int getCollectionItemColumnIndex(Object info) {
2042a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return AccessibilityNodeInfoCompatKitKat.CollectionItemInfo.getColumnIndex(info);
2043a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
2044a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
2045a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
2046a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public int getCollectionItemColumnSpan(Object info) {
2047a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return AccessibilityNodeInfoCompatKitKat.CollectionItemInfo.getColumnSpan(info);
2048a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
2049a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
2050a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
2051a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public int getCollectionItemRowIndex(Object info) {
2052a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return AccessibilityNodeInfoCompatKitKat.CollectionItemInfo.getRowIndex(info);
2053a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
2054a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
2055a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
2056a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public int getCollectionItemRowSpan(Object info) {
2057a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return AccessibilityNodeInfoCompatKitKat.CollectionItemInfo.getRowSpan(info);
2058a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
2059a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
2060a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
2061a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public boolean isCollectionItemHeading(Object info) {
2062a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return AccessibilityNodeInfoCompatKitKat.CollectionItemInfo.isHeading(info);
2063a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
2064a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
2065a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
2066a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public void setCollectionItemInfo(Object info, Object collectionItemInfo) {
2067a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            AccessibilityNodeInfoCompatKitKat.setCollectionItemInfo(info, collectionItemInfo);
2068a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
2069c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes
2070c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        @Override
207177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public Object obtainRangeInfo(int type, float min, float max, float current) {
207277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return AccessibilityNodeInfoCompatKitKat.obtainRangeInfo(type, min, max, current);
207377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
207477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
207577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
2076c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        public void setContentInvalid(Object info, boolean contentInvalid) {
2077c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes            AccessibilityNodeInfoCompatKitKat.setContentInvalid(info, contentInvalid);
2078c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        }
2079c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes
2080c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        @Override
2081c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        public boolean isContentInvalid(Object info) {
2082c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes            return AccessibilityNodeInfoCompatKitKat.isContentInvalid(info);
2083c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        }
20848aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
20858aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
20868aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public boolean canOpenPopup(Object info) {
20878aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return AccessibilityNodeInfoCompatKitKat.canOpenPopup(info);
20888aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
20898aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
20908aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
20918aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public void setCanOpenPopup(Object info, boolean opensPopup) {
20928aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            AccessibilityNodeInfoCompatKitKat.setCanOpenPopup(info, opensPopup);
20938aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
20948aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
20958aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
20968aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public Bundle getExtras(Object info) {
20978aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return AccessibilityNodeInfoCompatKitKat.getExtras(info);
20988aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
20998aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
21008aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
21018aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public int getInputType(Object info) {
21028aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return AccessibilityNodeInfoCompatKitKat.getInputType(info);
21038aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
21048aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
21058aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
21068aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public void setInputType(Object info, int inputType) {
21078aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            AccessibilityNodeInfoCompatKitKat.setInputType(info, inputType);
21088aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
21098aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
21108aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
21118aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public boolean isDismissable(Object info) {
21128aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return AccessibilityNodeInfoCompatKitKat.isDismissable(info);
21138aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
21148aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
21158aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
21168aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public void setDismissable(Object info, boolean dismissable) {
21178aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            AccessibilityNodeInfoCompatKitKat.setDismissable(info, dismissable);
21188aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
21198aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
21208aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
21218aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public boolean isMultiLine(Object info) {
21228aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return AccessibilityNodeInfoCompatKitKat.isMultiLine(info);
21238aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
21248aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
21258aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
21268aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public void setMultiLine(Object info, boolean multiLine) {
21278aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            AccessibilityNodeInfoCompatKitKat.setMultiLine(info, multiLine);
21288aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
2129f0d984600125413628899bfc849bab102bc2228eSteven Dao
2130f0d984600125413628899bfc849bab102bc2228eSteven Dao        @Override
2131f0d984600125413628899bfc849bab102bc2228eSteven Dao        public CharSequence getRoleDescription(Object info) {
2132f0d984600125413628899bfc849bab102bc2228eSteven Dao            return AccessibilityNodeInfoCompatKitKat.getRoleDescription(info);
2133f0d984600125413628899bfc849bab102bc2228eSteven Dao        }
2134f0d984600125413628899bfc849bab102bc2228eSteven Dao
2135f0d984600125413628899bfc849bab102bc2228eSteven Dao        @Override
2136f0d984600125413628899bfc849bab102bc2228eSteven Dao        public void setRoleDescription(Object info, CharSequence roleDescription) {
2137f0d984600125413628899bfc849bab102bc2228eSteven Dao            AccessibilityNodeInfoCompatKitKat.setRoleDescription(info, roleDescription);
2138f0d984600125413628899bfc849bab102bc2228eSteven Dao        }
2139086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette    }
2140086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette
2141389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen    static class AccessibilityNodeInfoApi21Impl extends AccessibilityNodeInfoKitKatImpl {
2142389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen        @Override
214384ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        public Object newAccessibilityAction(int actionId, CharSequence label) {
214484ef4490e42b960ea375630f9cc37246af9c571bSvetoslav            return AccessibilityNodeInfoCompatApi21.newAccessibilityAction(actionId, label);
214584ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        }
214684ef4490e42b960ea375630f9cc37246af9c571bSvetoslav
214784ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        @Override
2148389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen        public List<Object> getActionList(Object info) {
2149389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen            return AccessibilityNodeInfoCompatApi21.getActionList(info);
2150389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen        }
2151389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen
2152389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen        @Override
2153a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public Object obtainCollectionInfo(int rowCount, int columnCount, boolean hierarchical,
2154a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar                int selectionMode) {
2155a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return AccessibilityNodeInfoCompatApi21.obtainCollectionInfo(rowCount, columnCount,
2156a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar                    hierarchical, selectionMode);
2157a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
2158a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
2159a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
216084ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        public void addAction(Object info, Object action) {
216184ef4490e42b960ea375630f9cc37246af9c571bSvetoslav            AccessibilityNodeInfoCompatApi21.addAction(info, action);
216284ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        }
216384ef4490e42b960ea375630f9cc37246af9c571bSvetoslav
216484ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        @Override
21658aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public boolean removeAction(Object info, Object action) {
21668aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return AccessibilityNodeInfoCompatApi21.removeAction(info, action);
21678aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
21688aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
21698aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
217084ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        public int getAccessibilityActionId(Object action) {
217184ef4490e42b960ea375630f9cc37246af9c571bSvetoslav            return AccessibilityNodeInfoCompatApi21.getAccessibilityActionId(action);
217284ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        }
217384ef4490e42b960ea375630f9cc37246af9c571bSvetoslav
217484ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        @Override
217584ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        public CharSequence getAccessibilityActionLabel(Object action) {
217684ef4490e42b960ea375630f9cc37246af9c571bSvetoslav            return AccessibilityNodeInfoCompatApi21.getAccessibilityActionLabel(action);
2177389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen        }
2178a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
2179a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
2180a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public Object obtainCollectionItemInfo(int rowIndex, int rowSpan, int columnIndex,
2181a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar                int columnSpan, boolean heading, boolean selected) {
2182a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return AccessibilityNodeInfoCompatApi21.obtainCollectionItemInfo(rowIndex, rowSpan,
2183a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar                    columnIndex, columnSpan, heading, selected);
2184a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
2185a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
2186a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        @Override
2187a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        public boolean isCollectionItemSelected(Object info) {
2188a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar            return AccessibilityNodeInfoCompatApi21.CollectionItemInfo.isSelected(info);
2189a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        }
2190c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes
2191c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        @Override
2192c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        public CharSequence getError(Object info) {
2193c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes            return AccessibilityNodeInfoCompatApi21.getError(info);
2194c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        }
2195c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes
2196c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        @Override
2197c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        public void setError(Object info, CharSequence error) {
2198c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes            AccessibilityNodeInfoCompatApi21.setError(info, error);
2199c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        }
2200c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes
2201c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        @Override
22028aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public void setMaxTextLength(Object info, int max) {
22038aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            AccessibilityNodeInfoCompatApi21.setMaxTextLength(info, max);
2204c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        }
2205c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes
2206c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        @Override
22078aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public int getMaxTextLength(Object info) {
22088aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return AccessibilityNodeInfoCompatApi21.getMaxTextLength(info);
22098aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
22108aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
22118aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
22128aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public Object getWindow(Object info) {
22138aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return AccessibilityNodeInfoCompatApi21.getWindow(info);
22148aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
22158aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
22168aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
22178aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public boolean removeChild(Object info, View child) {
22188aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return AccessibilityNodeInfoCompatApi21.removeChild(info, child);
22198aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
22208aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
22218aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        @Override
22228aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public boolean removeChild(Object info, View root, int virtualDescendantId) {
22238aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return AccessibilityNodeInfoCompatApi21.removeChild(info, root, virtualDescendantId);
2224c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        }
222577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
222677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
222777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public int getCollectionInfoSelectionMode(Object info) {
222877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return AccessibilityNodeInfoCompatApi21.CollectionInfo.getSelectionMode(info);
222977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
2230389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen    }
2231389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen
2232acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov    static class AccessibilityNodeInfoApi22Impl extends AccessibilityNodeInfoApi21Impl {
2233acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        @Override
22348aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public Object getTraversalBefore(Object info) {
22358aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return AccessibilityNodeInfoCompatApi22.getTraversalBefore(info);
2236acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        }
2237acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov
2238acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        @Override
2239acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        public void setTraversalBefore(Object info, View view) {
2240acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov            AccessibilityNodeInfoCompatApi22.setTraversalBefore(info, view);
2241acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        }
2242acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov
2243acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        @Override
2244acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        public void setTraversalBefore(Object info, View root, int virtualDescendantId) {
2245acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov            AccessibilityNodeInfoCompatApi22.setTraversalBefore(info, root, virtualDescendantId);
2246acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        }
2247acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov
2248acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        @Override
22498aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        public Object getTraversalAfter(Object info) {
22508aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return AccessibilityNodeInfoCompatApi22.getTraversalAfter(info);
2251acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        }
2252acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov
2253acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        @Override
2254acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        public void setTraversalAfter(Object info, View view) {
2255acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov            AccessibilityNodeInfoCompatApi22.setTraversalAfter(info, view);
2256acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        }
2257acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov
2258acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        @Override
2259acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        public void setTraversalAfter(Object info, View root, int virtualDescendantId) {
2260acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov            AccessibilityNodeInfoCompatApi22.setTraversalAfter(info, root, virtualDescendantId);
2261acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        }
2262acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov    }
2263acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov
226477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid    static class AccessibilityNodeInfoApi23Impl extends AccessibilityNodeInfoApi22Impl {
226577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
226677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public Object getActionScrollToPosition() {
226777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return AccessibilityNodeInfoCompatApi23.getActionScrollToPosition();
226877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
226977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
227077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
227177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public Object getActionShowOnScreen() {
227277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return AccessibilityNodeInfoCompatApi23.getActionShowOnScreen();
227377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
227477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
227577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
227677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public Object getActionScrollUp() {
227777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return AccessibilityNodeInfoCompatApi23.getActionScrollUp();
227877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
227977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
228077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
228177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public Object getActionScrollDown() {
228277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return AccessibilityNodeInfoCompatApi23.getActionScrollDown();
228377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
228477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
228577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
228677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public Object getActionScrollLeft() {
228777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return AccessibilityNodeInfoCompatApi23.getActionScrollLeft();
228877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
228977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
229077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
229177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public Object getActionScrollRight() {
229277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return AccessibilityNodeInfoCompatApi23.getActionScrollRight();
229377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
229477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
229577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
229677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public Object getActionContextClick() {
229777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return AccessibilityNodeInfoCompatApi23.getActionContextClick();
229877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
229977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
230077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
230177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public boolean isContextClickable(Object info) {
230277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return AccessibilityNodeInfoCompatApi23.isContextClickable(info);
230377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
230477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
230577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
230677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public void setContextClickable(Object info, boolean contextClickable) {
230777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            AccessibilityNodeInfoCompatApi23.setContextClickable(info, contextClickable);
230877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
230977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid    }
231077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
231177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid    static class AccessibilityNodeInfoApi24Impl extends AccessibilityNodeInfoApi23Impl {
231277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        @Override
231377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        public Object getActionSetProgress() {
231477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            return AccessibilityNodeInfoCompatApi24.getActionSetProgress();
231577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        }
231677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
2317cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        @Override
2318cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        public int getDrawingOrder(Object info) {
2319cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver            return AccessibilityNodeInfoCompatApi24.getDrawingOrder(info);
2320cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        }
2321cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver
2322cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        @Override
2323cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        public void setDrawingOrder(Object info, int drawingOrderInParent) {
2324cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver            AccessibilityNodeInfoCompatApi24.setDrawingOrder(info, drawingOrderInParent);
2325cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        }
2326cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver
2327cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        @Override
2328cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        public boolean isImportantForAccessibility(Object info) {
2329cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver            return AccessibilityNodeInfoCompatApi24.isImportantForAccessibility(info);
2330cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        }
2331cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver
2332cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        @Override
2333cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        public void setImportantForAccessibility(Object info, boolean importantForAccessibility) {
2334cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver            AccessibilityNodeInfoCompatApi24.setImportantForAccessibility(
2335cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver                    info, importantForAccessibility);
2336cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        }
2337cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver
2338cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver    }
2339cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver
23409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    static {
2341cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        if (Build.VERSION.SDK_INT >= 24) {
2342cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver            IMPL = new AccessibilityNodeInfoApi24Impl();
234377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        } else if (Build.VERSION.SDK_INT >= 23) {
234477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            IMPL = new AccessibilityNodeInfoApi23Impl();
2345cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        } else if (Build.VERSION.SDK_INT >= 22) {
2346acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov            IMPL = new AccessibilityNodeInfoApi22Impl();
2347acbc0ab18c9acc81e311fbeb31d9849153d54e3cMaxim Bogatov        } else if (Build.VERSION.SDK_INT >= 21) {
2348389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen            IMPL = new AccessibilityNodeInfoApi21Impl();
2349389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen        } else if (Build.VERSION.SDK_INT >= 19) { // KitKat
2350086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette            IMPL = new AccessibilityNodeInfoKitKatImpl();
2351086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette        } else if (Build.VERSION.SDK_INT >= 18) { // JellyBean MR2
23520fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            IMPL = new AccessibilityNodeInfoJellybeanMr2Impl();
23538aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        } else if (Build.VERSION.SDK_INT >= 17) { // JellyBean MR1
23548aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            IMPL = new AccessibilityNodeInfoJellybeanMr1Impl();
23550fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        } else if (Build.VERSION.SDK_INT >= 16) { // JellyBean
23563a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov            IMPL = new AccessibilityNodeInfoJellybeanImpl();
23573a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        } else if (Build.VERSION.SDK_INT >= 14) { // ICS
23589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            IMPL = new AccessibilityNodeInfoIcsImpl();
23599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        } else {
23609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            IMPL = new AccessibilityNodeInfoStubImpl();
23619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
23629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
23639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2364552766fa685c63ad760c92239faaba12e6ad51f1Aurimas Liutikas    static final AccessibilityNodeInfoImpl IMPL;
23659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
23669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    private final Object mInfo;
23679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
23680fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    // Actions introduced in IceCreamSandwich
23699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
23709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
23719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Action that focuses the node.
23729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
23739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static final int ACTION_FOCUS = 0x00000001;
23749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
23759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
23769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Action that unfocuses the node.
23779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
23789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static final int ACTION_CLEAR_FOCUS = 0x00000002;
23799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
23809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
23819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Action that selects the node.
23829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
23839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static final int ACTION_SELECT = 0x00000004;
23849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
23859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
23869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Action that unselects the node.
23879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
23889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static final int ACTION_CLEAR_SELECTION = 0x00000008;
23899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2390c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov    /**
239170e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Action that clicks on the node info.
239270e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
239370e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int ACTION_CLICK = 0x00000010;
239470e96ebf69f91da84681a6263b3862c63d53ab11alanv
239570e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
239670e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Action that long clicks on the node.
239770e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
239870e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int ACTION_LONG_CLICK = 0x00000020;
239970e96ebf69f91da84681a6263b3862c63d53ab11alanv
24000fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    // Actions introduced in JellyBean
24010fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
240270e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
240370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Action that gives accessibility focus to the node.
240470e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
240570e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int ACTION_ACCESSIBILITY_FOCUS = 0x00000040;
240670e96ebf69f91da84681a6263b3862c63d53ab11alanv
240770e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
240870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Action that clears accessibility focus of the node.
240970e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
241070e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int ACTION_CLEAR_ACCESSIBILITY_FOCUS = 0x00000080;
241170e96ebf69f91da84681a6263b3862c63d53ab11alanv
241270e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
241370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Action that requests to go to the next entity in this node's text
241470e96ebf69f91da84681a6263b3862c63d53ab11alanv     * at a given movement granularity. For example, move to the next character,
241570e96ebf69f91da84681a6263b3862c63d53ab11alanv     * word, etc.
241670e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
24170fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * <strong>Arguments:</strong> {@link #ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT}<,
24180fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * {@link #ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN}<br>
24190fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * <strong>Example:</strong> Move to the previous character and do not extend selection.
242070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <code><pre><p>
242170e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   Bundle arguments = new Bundle();
242270e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT,
242370e96ebf69f91da84681a6263b3862c63d53ab11alanv     *           AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
24240fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *   arguments.putBoolean(AccessibilityNodeInfo.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN,
24250fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *           false);
242670e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   info.performAction(AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
242770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </code></pre></p>
242870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
242970e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
24300fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * @see #ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT
24310fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * @see #ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN
24320fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *
243370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #setMovementGranularities(int)
243470e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #getMovementGranularities()
243570e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
243670e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #MOVEMENT_GRANULARITY_CHARACTER
243770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #MOVEMENT_GRANULARITY_WORD
243870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #MOVEMENT_GRANULARITY_LINE
243970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #MOVEMENT_GRANULARITY_PARAGRAPH
244070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #MOVEMENT_GRANULARITY_PAGE
244170e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
244270e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int ACTION_NEXT_AT_MOVEMENT_GRANULARITY = 0x00000100;
244370e96ebf69f91da84681a6263b3862c63d53ab11alanv
244470e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
244570e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Action that requests to go to the previous entity in this node's text
244670e96ebf69f91da84681a6263b3862c63d53ab11alanv     * at a given movement granularity. For example, move to the next character,
244770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * word, etc.
244870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
24490fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * <strong>Arguments:</strong> {@link #ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT}<,
24500fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * {@link #ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN}<br>
24510fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * <strong>Example:</strong> Move to the next character and do not extend selection.
245270e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <code><pre><p>
245370e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   Bundle arguments = new Bundle();
245470e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT,
245570e96ebf69f91da84681a6263b3862c63d53ab11alanv     *           AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
24560fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *   arguments.putBoolean(AccessibilityNodeInfo.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN,
24570fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *           false);
245870e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   info.performAction(AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY,
245970e96ebf69f91da84681a6263b3862c63d53ab11alanv     *           arguments);
246070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </code></pre></p>
246170e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
246270e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
24630fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * @see #ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT
24640fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * @see #ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN
24650fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *
246670e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #setMovementGranularities(int)
246770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #getMovementGranularities()
246870e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
246970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #MOVEMENT_GRANULARITY_CHARACTER
247070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #MOVEMENT_GRANULARITY_WORD
247170e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #MOVEMENT_GRANULARITY_LINE
247270e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #MOVEMENT_GRANULARITY_PARAGRAPH
247370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #MOVEMENT_GRANULARITY_PAGE
247470e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
247570e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY = 0x00000200;
247670e96ebf69f91da84681a6263b3862c63d53ab11alanv
247770e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
247870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Action to move to the next HTML element of a given type. For example, move
247970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * to the BUTTON, INPUT, TABLE, etc.
248070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
248170e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <strong>Arguments:</strong> {@link #ACTION_ARGUMENT_HTML_ELEMENT_STRING}<br>
248270e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <strong>Example:</strong>
248370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <code><pre><p>
248470e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   Bundle arguments = new Bundle();
248570e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   arguments.putString(AccessibilityNodeInfo.ACTION_ARGUMENT_HTML_ELEMENT_STRING, "BUTTON");
248670e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   info.performAction(AccessibilityNodeInfo.ACTION_NEXT_HTML_ELEMENT, arguments);
248770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </code></pre></p>
248870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
248970e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
249070e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int ACTION_NEXT_HTML_ELEMENT = 0x00000400;
249170e96ebf69f91da84681a6263b3862c63d53ab11alanv
249270e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
249370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Action to move to the previous HTML element of a given type. For example, move
249470e96ebf69f91da84681a6263b3862c63d53ab11alanv     * to the BUTTON, INPUT, TABLE, etc.
249570e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
249670e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <strong>Arguments:</strong> {@link #ACTION_ARGUMENT_HTML_ELEMENT_STRING}<br>
249770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <strong>Example:</strong>
249870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <code><pre><p>
249970e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   Bundle arguments = new Bundle();
250070e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   arguments.putString(AccessibilityNodeInfo.ACTION_ARGUMENT_HTML_ELEMENT_STRING, "BUTTON");
250170e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   info.performAction(AccessibilityNodeInfo.ACTION_PREVIOUS_HTML_ELEMENT, arguments);
250270e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </code></pre></p>
250370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
250470e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
250570e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int ACTION_PREVIOUS_HTML_ELEMENT = 0x00000800;
250670e96ebf69f91da84681a6263b3862c63d53ab11alanv
250770e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
250870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Action to scroll the node content forward.
250970e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
251070e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int ACTION_SCROLL_FORWARD = 0x00001000;
251170e96ebf69f91da84681a6263b3862c63d53ab11alanv
251270e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
251370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Action to scroll the node content backward.
251470e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
251570e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int ACTION_SCROLL_BACKWARD = 0x00002000;
251670e96ebf69f91da84681a6263b3862c63d53ab11alanv
25170fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    // Actions introduced in JellyBeanMr2
25180fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
25190fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    /**
25200fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * Action to copy the current selection to the clipboard.
25210fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     */
25220fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    public static final int ACTION_COPY = 0x00004000;
25230fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
25240fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    /**
25250fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * Action to paste the current clipboard content.
25260fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     */
25270fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    public static final int ACTION_PASTE = 0x00008000;
25280fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
25290fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    /**
25300fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * Action to cut the current selection and place it to the clipboard.
25310fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     */
25320fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    public static final int ACTION_CUT = 0x00010000;
25330fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
25340fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    /**
25350fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * Action to set the selection. Performing this action with no arguments
25360fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * clears the selection.
25370fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * <p>
25380fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * <strong>Arguments:</strong> {@link #ACTION_ARGUMENT_SELECTION_START_INT},
25390fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * {@link #ACTION_ARGUMENT_SELECTION_END_INT}<br>
25400fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * <strong>Example:</strong>
25410fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * <code><pre><p>
25420fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *   Bundle arguments = new Bundle();
25430fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *   arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_START_INT, 1);
25440fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *   arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_END_INT, 2);
25450fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *   info.performAction(AccessibilityNodeInfo.ACTION_SET_SELECTION, arguments);
25460fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * </code></pre></p>
25470fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * </p>
25480fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *
25490fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * @see #ACTION_ARGUMENT_SELECTION_START_INT
25500fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * @see #ACTION_ARGUMENT_SELECTION_END_INT
25510fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     */
25520fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    public static final int ACTION_SET_SELECTION = 0x00020000;
25530fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
25548d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu    /**
255587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette     * Action to expand an expandable node.
255687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette     */
255787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette    public static final int ACTION_EXPAND = 0x00040000;
255887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
255987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette    /**
256087ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette     * Action to collapse an expandable node.
256187ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette     */
256287ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette    public static final int ACTION_COLLAPSE = 0x00080000;
256387ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
256487ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette    /**
256587ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette     * Action to dismiss a dismissable node.
256687ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette     */
256787ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette    public static final int ACTION_DISMISS = 0x00100000;
256887ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette
256987ffd04b400433d9cda4556544d9c832b9a69685Alan Viverette    /**
25708d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu     * Action that sets the text of the node. Performing the action without argument, using <code>
25718d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu     * null</code> or empty {@link CharSequence} will clear the text. This action will also put the
25728d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu     * cursor at the end of text.
25738d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu     * <p>
25748d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu     * <strong>Arguments:</strong> {@link #ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE}<br>
25758d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu     * <strong>Example:</strong>
25768d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu     * <code><pre><p>
25778d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu     *   Bundle arguments = new Bundle();
25788d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu     *   arguments.putCharSequence(AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE,
25798d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu     *       "android");
25808d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu     *   info.performAction(AccessibilityNodeInfo.ACTION_SET_TEXT, arguments);
25818d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu     * </code></pre></p>
25828d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu     */
25838d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu    public static final int ACTION_SET_TEXT = 0x00200000;
25848d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu
25850fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    // Action arguments
25860fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
258770e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
258870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Argument for which movement granularity to be used when traversing the node text.
258970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
259070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <strong>Type:</strong> int<br>
259170e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <strong>Actions:</strong> {@link #ACTION_NEXT_AT_MOVEMENT_GRANULARITY},
259270e96ebf69f91da84681a6263b3862c63d53ab11alanv     * {@link #ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY}
259370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
259470e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
259570e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final String ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT =
259670e96ebf69f91da84681a6263b3862c63d53ab11alanv        "ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT";
259770e96ebf69f91da84681a6263b3862c63d53ab11alanv
259870e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
259970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Argument for which HTML element to get moving to the next/previous HTML element.
260070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
260170e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <strong>Type:</strong> String<br>
260270e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <strong>Actions:</strong> {@link #ACTION_NEXT_HTML_ELEMENT},
260370e96ebf69f91da84681a6263b3862c63d53ab11alanv     *         {@link #ACTION_PREVIOUS_HTML_ELEMENT}
260470e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
260570e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
260670e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final String ACTION_ARGUMENT_HTML_ELEMENT_STRING =
260770e96ebf69f91da84681a6263b3862c63d53ab11alanv        "ACTION_ARGUMENT_HTML_ELEMENT_STRING";
260870e96ebf69f91da84681a6263b3862c63d53ab11alanv
260970e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
26100fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * Argument for whether when moving at granularity to extend the selection
26110fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * or to move it otherwise.
26120fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * <p>
26130fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * <strong>Type:</strong> boolean<br>
26140fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * <strong>Actions:</strong> {@link #ACTION_NEXT_AT_MOVEMENT_GRANULARITY},
26150fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * {@link #ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY}
26160fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * </p>
26170fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *
26180fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * @see #ACTION_NEXT_AT_MOVEMENT_GRANULARITY
26190fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * @see #ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
26200fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     */
26210fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    public static final String ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN =
26220fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            "ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN";
26230fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
26240fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    /**
26250fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * Argument for specifying the selection start.
26260fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * <p>
26270fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * <strong>Type:</strong> int<br>
26280fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * <strong>Actions:</strong> {@link #ACTION_SET_SELECTION}
26290fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * </p>
26300fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *
26310fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * @see #ACTION_SET_SELECTION
26320fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     */
26330fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    public static final String ACTION_ARGUMENT_SELECTION_START_INT =
26340fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            "ACTION_ARGUMENT_SELECTION_START_INT";
26350fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
26360fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    /**
26370fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * Argument for specifying the selection end.
26380fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * <p>
26390fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * <strong>Type:</strong> int<br>
26400fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * <strong>Actions:</strong> {@link #ACTION_SET_SELECTION}
26410fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * </p>
26420fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *
26430fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * @see #ACTION_SET_SELECTION
26440fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     */
26450fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    public static final String ACTION_ARGUMENT_SELECTION_END_INT =
26460fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            "ACTION_ARGUMENT_SELECTION_END_INT";
26470fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
26488d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu    /**
26498d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu     * Argument for specifying the text content to set
26508d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu     * <p>
26518d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu     * <strong>Type:</strong> CharSequence<br>
26528d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu     * <strong>Actions:</strong> {@link #ACTION_SET_TEXT}
26538d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu     * </p>
26548d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu     *
26558d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu     * @see #ACTION_SET_TEXT
26568d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu     */
26578d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu    public static final String ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE =
26588d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu            "ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE";
26598d8799de4d4f9eb4877e5724673271662e97a3cbGuang Zhu
266077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid    /**
266177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * Argument for specifying the collection row to make visible on screen.
266277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * <p>
266377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * <strong>Type:</strong> int<br>
266477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * <strong>Actions:</strong>
266577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * <ul>
266677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     *     <li>{@link AccessibilityActionCompat#ACTION_SCROLL_TO_POSITION}</li>
266777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * </ul>
266877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     *
266977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * @see AccessibilityActionCompat#ACTION_SCROLL_TO_POSITION
267077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     */
267177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid    public static final String ACTION_ARGUMENT_ROW_INT =
267277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            "android.view.accessibility.action.ARGUMENT_ROW_INT";
267377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
267477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid    /**
267577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * Argument for specifying the collection column to make visible on screen.
267677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * <p>
267777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * <strong>Type:</strong> int<br>
267877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * <strong>Actions:</strong>
267977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * <ul>
268077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     *     <li>{@link AccessibilityActionCompat#ACTION_SCROLL_TO_POSITION}</li>
268177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * </ul>
268277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     *
268377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * @see AccessibilityActionCompat#ACTION_SCROLL_TO_POSITION
268477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     */
268577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid    public static final String ACTION_ARGUMENT_COLUMN_INT =
268677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            "android.view.accessibility.action.ARGUMENT_COLUMN_INT";
268777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
268877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid    /**
268977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * Argument for specifying the progress value to set.
269077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * <p>
269177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * <strong>Type:</strong> float<br>
269277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * <strong>Actions:</strong>
269377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * <ul>
269477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     *     <li>{@link AccessibilityActionCompat#ACTION_SET_PROGRESS}</li>
269577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * </ul>
269677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     *
269777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * @see AccessibilityActionCompat#ACTION_SET_PROGRESS
269877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     */
269977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid    public static final String ACTION_ARGUMENT_PROGRESS_VALUE =
270077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid            "android.view.accessibility.action.ARGUMENT_PROGRESS_VALUE";
270177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
27020fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    // Focus types
27030fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
27040fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    /**
270570e96ebf69f91da84681a6263b3862c63d53ab11alanv     * The input focus.
270670e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
270770e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int FOCUS_INPUT = 1;
270870e96ebf69f91da84681a6263b3862c63d53ab11alanv
270970e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
271070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * The accessibility focus.
271170e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
271270e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int FOCUS_ACCESSIBILITY = 2;
271370e96ebf69f91da84681a6263b3862c63d53ab11alanv
271470e96ebf69f91da84681a6263b3862c63d53ab11alanv    // Movement granularities
271570e96ebf69f91da84681a6263b3862c63d53ab11alanv
271670e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
271770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Movement granularity bit for traversing the text of a node by character.
271870e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
271970e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int MOVEMENT_GRANULARITY_CHARACTER = 0x00000001;
272070e96ebf69f91da84681a6263b3862c63d53ab11alanv
272170e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
272270e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Movement granularity bit for traversing the text of a node by word.
272370e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
272470e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int MOVEMENT_GRANULARITY_WORD = 0x00000002;
272570e96ebf69f91da84681a6263b3862c63d53ab11alanv
272670e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
272770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Movement granularity bit for traversing the text of a node by line.
272870e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
272970e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int MOVEMENT_GRANULARITY_LINE = 0x00000004;
273070e96ebf69f91da84681a6263b3862c63d53ab11alanv
273170e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
273270e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Movement granularity bit for traversing the text of a node by paragraph.
273370e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
273470e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int MOVEMENT_GRANULARITY_PARAGRAPH = 0x00000008;
273570e96ebf69f91da84681a6263b3862c63d53ab11alanv
273670e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
273770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Movement granularity bit for traversing the text of a node by page.
273870e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
273970e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int MOVEMENT_GRANULARITY_PAGE = 0x00000010;
274070e96ebf69f91da84681a6263b3862c63d53ab11alanv
274170e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
2742c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov     * Creates a wrapper for info implementation.
2743c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov     *
2744c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov     * @param object The info to wrap.
2745c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov     * @return A wrapper for if the object is not null, null otherwise.
2746c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov     */
2747c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov    static AccessibilityNodeInfoCompat wrapNonNullInstance(Object object) {
2748c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov        if (object != null) {
2749c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov            return new AccessibilityNodeInfoCompat(object);
2750c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov        }
2751c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov        return null;
2752c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov    }
2753c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov
2754956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov    /**
2755956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov     * Creates a new instance wrapping an
2756956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov     * {@link android.view.accessibility.AccessibilityNodeInfo}.
2757956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov     *
2758956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov     * @param info The info.
27599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
27609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public AccessibilityNodeInfoCompat(Object info) {
27619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        mInfo = info;
27629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
27639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
27649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
2765956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov     * @return The wrapped {@link android.view.accessibility.AccessibilityNodeInfo}.
27669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
2767956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov    public Object getInfo() {
27689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return mInfo;
27699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
27709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
27719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
27729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Returns a cached instance if such is available otherwise a new one and
27739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * sets the source.
27749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
27759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return An instance.
27769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @see #setSource(View)
27779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
27789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static AccessibilityNodeInfoCompat obtain(View source) {
277970e96ebf69f91da84681a6263b3862c63d53ab11alanv        return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.obtain(source));
278070e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
278170e96ebf69f91da84681a6263b3862c63d53ab11alanv
278270e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
278370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Returns a cached instance if such is available otherwise a new one
278470e96ebf69f91da84681a6263b3862c63d53ab11alanv     * and sets the source.
278570e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
278670e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @param root The root of the virtual subtree.
278770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @param virtualDescendantId The id of the virtual descendant.
278870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @return An instance.
278970e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
279070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #setSource(View, int)
279170e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
279270e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static AccessibilityNodeInfoCompat obtain(View root, int virtualDescendantId) {
279370e96ebf69f91da84681a6263b3862c63d53ab11alanv        return AccessibilityNodeInfoCompat.wrapNonNullInstance(
279470e96ebf69f91da84681a6263b3862c63d53ab11alanv                IMPL.obtain(root, virtualDescendantId));
27959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
27969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
27979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
27989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Returns a cached instance if such is available otherwise a new one.
27999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
28009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return An instance.
28019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
28029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static AccessibilityNodeInfoCompat obtain() {
280370e96ebf69f91da84681a6263b3862c63d53ab11alanv        return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.obtain());
28049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
28059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
28069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
28079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Returns a cached instance if such is available or a new one is create.
28089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * The returned instance is initialized from the given <code>info</code>.
28099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
28109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param info The other info.
28119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return An instance.
28129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
28139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static AccessibilityNodeInfoCompat obtain(AccessibilityNodeInfoCompat info) {
281470e96ebf69f91da84681a6263b3862c63d53ab11alanv        return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.obtain(info.mInfo));
28159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
28169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
28179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
28189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the source.
28199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
28209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param source The info source.
28219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
28229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setSource(View source) {
28239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setSource(mInfo, source);
28249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
28259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
28269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
28273a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * Sets the source to be a virtual descendant of the given <code>root</code>.
28283a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * If <code>virtualDescendantId</code> is {@link View#NO_ID} the root
28293a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * is set as the source.
28303a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * <p>
28313a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * A virtual descendant is an imaginary View that is reported as a part of the view
28323a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * hierarchy for accessibility purposes. This enables custom views that draw complex
28333a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * content to report themselves as a tree of virtual views, thus conveying their
28343a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * logical structure.
28353a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * </p>
28363a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * <p>
28373a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     *   <strong>Note:</strong> Cannot be called from an
28383a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     *   {@link android.accessibilityservice.AccessibilityService}.
28393a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     *   This class is made immutable before being delivered to an AccessibilityService.
28403a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * </p>
28413a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     *
28423a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * @param root The root of the virtual subtree.
28433a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * @param virtualDescendantId The id of the virtual descendant.
28443a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     */
28453a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov    public void setSource(View root, int virtualDescendantId) {
28463a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        IMPL.setSource(mInfo, root, virtualDescendantId);
28473a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov    }
28483a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov
28493a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov    /**
285070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Find the view that has the specified focus type. The search starts from
285170e96ebf69f91da84681a6263b3862c63d53ab11alanv     * the view represented by this node info.
285270e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
285370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @param focus The focus to find. One of {@link #FOCUS_INPUT} or
285470e96ebf69f91da84681a6263b3862c63d53ab11alanv     *         {@link #FOCUS_ACCESSIBILITY}.
285570e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @return The node info of the focused view or null.
285670e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
285770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #FOCUS_INPUT
285870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #FOCUS_ACCESSIBILITY
285970e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
286070e96ebf69f91da84681a6263b3862c63d53ab11alanv    public AccessibilityNodeInfoCompat findFocus(int focus) {
286170e96ebf69f91da84681a6263b3862c63d53ab11alanv        return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.findFocus(mInfo, focus));
286270e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
286370e96ebf69f91da84681a6263b3862c63d53ab11alanv
286470e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
286570e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Searches for the nearest view in the specified direction that can take
286676ca3a4abf437c04003bacff72491409f8898a18Svetoslav Ganov     * input focus.
286770e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
286870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @param direction The direction. Can be one of:
286970e96ebf69f91da84681a6263b3862c63d53ab11alanv     *     {@link View#FOCUS_DOWN},
287070e96ebf69f91da84681a6263b3862c63d53ab11alanv     *     {@link View#FOCUS_UP},
287170e96ebf69f91da84681a6263b3862c63d53ab11alanv     *     {@link View#FOCUS_LEFT},
287270e96ebf69f91da84681a6263b3862c63d53ab11alanv     *     {@link View#FOCUS_RIGHT},
287370e96ebf69f91da84681a6263b3862c63d53ab11alanv     *     {@link View#FOCUS_FORWARD},
287476ca3a4abf437c04003bacff72491409f8898a18Svetoslav Ganov     *     {@link View#FOCUS_BACKWARD}.
287570e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
287670e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @return The node info for the view that can take accessibility focus.
287770e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
287870e96ebf69f91da84681a6263b3862c63d53ab11alanv    public AccessibilityNodeInfoCompat focusSearch(int direction) {
287970e96ebf69f91da84681a6263b3862c63d53ab11alanv        return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.focusSearch(mInfo, direction));
288070e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
288170e96ebf69f91da84681a6263b3862c63d53ab11alanv
288270e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
28839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the id of the window from which the info comes from.
28849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
28859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The window id.
28869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
28879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public int getWindowId() {
28889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.getWindowId(mInfo);
28899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
28909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
28919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
28929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the number of children.
28939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
28949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The child count.
28959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
28969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public int getChildCount() {
28979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.getChildCount(mInfo);
28989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
28999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
29009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
29019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Get the child at given index.
29029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
29039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> It is a client responsibility to recycle the
29049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * received info by calling {@link AccessibilityNodeInfoCompat#recycle()} to
29059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * avoid creating of multiple instances.
29069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
29079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
29089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param index The child index.
29099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The child node.
29109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called outside of an
29119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *             AccessibilityService.
29129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
29139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public AccessibilityNodeInfoCompat getChild(int index) {
291470e96ebf69f91da84681a6263b3862c63d53ab11alanv        return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.getChild(mInfo, index));
29159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
29169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
29179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
29189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Adds a child.
29199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
29209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
29219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
29229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
29239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
29249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
29259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param child The child.
29269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
29279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
29289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void addChild(View child) {
29299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.addChild(mInfo, child);
29309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
29319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
29329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
29333a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * Adds a virtual child which is a descendant of the given <code>root</code>.
29343a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * If <code>virtualDescendantId</code> is {@link View#NO_ID} the root
29353a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * is added as a child.
29363a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * <p>
29373a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * A virtual descendant is an imaginary View that is reported as a part of the view
29383a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * hierarchy for accessibility purposes. This enables custom views that draw complex
29393a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * content to report them selves as a tree of virtual views, thus conveying their
29403a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * logical structure.
29413a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * </p>
29423a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     *
29433a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * @param root The root of the virtual subtree.
29443a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * @param virtualDescendantId The id of the virtual child.
29453a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     */
29463a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov    public void addChild(View root, int virtualDescendantId) {
29473a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        IMPL.addChild(mInfo, root, virtualDescendantId);
29483a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov    }
29493a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov
29503a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov    /**
29518aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Removes a child. If the child was not previously added to the node,
29528aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * calling this method has no effect.
29538aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
29548aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <strong>Note:</strong> Cannot be called from an
29558aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * {@link android.accessibilityservice.AccessibilityService}.
29568aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * This class is made immutable before being delivered to an AccessibilityService.
29578aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * </p>
29588aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
29598aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @param child The child.
29608aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @return true if the child was present
29618aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
29628aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @throws IllegalStateException If called from an AccessibilityService.
29638aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
29648aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public boolean removeChild(View child) {
29658aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        return IMPL.removeChild(mInfo, child);
29668aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
29678aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
29688aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
29698aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Removes a virtual child which is a descendant of the given
29708aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <code>root</code>. If the child was not previously added to the node,
29718aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * calling this method has no effect.
29728aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
29738aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @param root The root of the virtual subtree.
29748aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @param virtualDescendantId The id of the virtual child.
29758aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @return true if the child was present
29768aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @see #addChild(View, int)
29778aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
29788aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public boolean removeChild(View root, int virtualDescendantId) {
29798aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        return IMPL.removeChild(mInfo, root, virtualDescendantId);
29808aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
29818aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
29828aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
29839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the actions that can be performed on the node.
29849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
29859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The bit mask of with actions.
29869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @see android.view.accessibility.AccessibilityNodeInfo#ACTION_FOCUS
29879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @see android.view.accessibility.AccessibilityNodeInfo#ACTION_CLEAR_FOCUS
29889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @see android.view.accessibility.AccessibilityNodeInfo#ACTION_SELECT
29899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @see android.view.accessibility.AccessibilityNodeInfo#ACTION_CLEAR_SELECTION
29909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
29919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public int getActions() {
29929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.getActions(mInfo);
29939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
29949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
29959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
29969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Adds an action that can be performed on the node.
29979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
29989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
29999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
30009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
30019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
30029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
30039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param action The action.
30049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
30059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
30069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void addAction(int action) {
30079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.addAction(mInfo, action);
30089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
30099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
30109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
301184ef4490e42b960ea375630f9cc37246af9c571bSvetoslav     * Adds an action that can be performed on the node.
301284ef4490e42b960ea375630f9cc37246af9c571bSvetoslav     * <p>
301384ef4490e42b960ea375630f9cc37246af9c571bSvetoslav     * <strong>Note:</strong> Cannot be called from an
301484ef4490e42b960ea375630f9cc37246af9c571bSvetoslav     * {@link android.accessibilityservice.AccessibilityService}. This class is
301584ef4490e42b960ea375630f9cc37246af9c571bSvetoslav     * made immutable before being delivered to an AccessibilityService.
301684ef4490e42b960ea375630f9cc37246af9c571bSvetoslav     * </p>
301784ef4490e42b960ea375630f9cc37246af9c571bSvetoslav     *
301884ef4490e42b960ea375630f9cc37246af9c571bSvetoslav     * @param action The action.
301984ef4490e42b960ea375630f9cc37246af9c571bSvetoslav     * @throws IllegalStateException If called from an AccessibilityService.
302084ef4490e42b960ea375630f9cc37246af9c571bSvetoslav     */
302184ef4490e42b960ea375630f9cc37246af9c571bSvetoslav    public void addAction(AccessibilityActionCompat action) {
302284ef4490e42b960ea375630f9cc37246af9c571bSvetoslav        IMPL.addAction(mInfo, action.mAction);
302384ef4490e42b960ea375630f9cc37246af9c571bSvetoslav    }
302484ef4490e42b960ea375630f9cc37246af9c571bSvetoslav
302584ef4490e42b960ea375630f9cc37246af9c571bSvetoslav    /**
30268aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Removes an action that can be performed on the node. If the action was
30278aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * not already added to the node, calling this method has no effect.
30288aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
30298aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   <strong>Note:</strong> Cannot be called from an
30308aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   {@link android.accessibilityservice.AccessibilityService}.
30318aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   This class is made immutable before being delivered to an AccessibilityService.
30328aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * </p>
30338aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
30348aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @param action The action to be removed.
30358aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @return The action removed from the list of actions.
30368aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
30378aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @throws IllegalStateException If called from an AccessibilityService.
30388aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
30398aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public boolean removeAction(AccessibilityActionCompat action) {
30408aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        return IMPL.removeAction(mInfo, action.mAction);
30418aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
30428aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
30438aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
30449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Performs an action on the node.
30459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
30469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> An action can be performed only if the request is
30479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made from an {@link android.accessibilityservice.AccessibilityService}.
30489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
30499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
30509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param action The action to perform.
30519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the action was performed.
30529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called outside of an
30539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *             AccessibilityService.
30549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
30559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean performAction(int action) {
30569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.performAction(mInfo, action);
30579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
30589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
30599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
306070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Performs an action on the node.
306170e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
306270e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   <strong>Note:</strong> An action can be performed only if the request is made
306370e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   from an {@link android.accessibilityservice.AccessibilityService}.
306470e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
306570e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
306670e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @param action The action to perform.
306770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @param arguments A bundle with additional arguments.
306870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @return True if the action was performed.
306970e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
307070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @throws IllegalStateException If called outside of an AccessibilityService.
307170e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
307270e96ebf69f91da84681a6263b3862c63d53ab11alanv    public boolean performAction(int action, Bundle arguments) {
307370e96ebf69f91da84681a6263b3862c63d53ab11alanv        return IMPL.performAction(mInfo, action, arguments);
307470e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
307570e96ebf69f91da84681a6263b3862c63d53ab11alanv
307670e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
307770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Sets the movement granularities for traversing the text of this node.
307870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
307970e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   <strong>Note:</strong> Cannot be called from an
308070e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   {@link android.accessibilityservice.AccessibilityService}.
308170e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   This class is made immutable before being delivered to an AccessibilityService.
308270e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
308370e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
308470e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @param granularities The bit mask with granularities.
308570e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
308670e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @throws IllegalStateException If called from an AccessibilityService.
308770e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
308870e96ebf69f91da84681a6263b3862c63d53ab11alanv    public void setMovementGranularities(int granularities) {
308970e96ebf69f91da84681a6263b3862c63d53ab11alanv        IMPL.setMovementGranularities(mInfo, granularities);
309070e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
309170e96ebf69f91da84681a6263b3862c63d53ab11alanv
309270e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
309370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Gets the movement granularities for traversing the text of this node.
309470e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
309570e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @return The bit mask with granularities.
309670e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
309770e96ebf69f91da84681a6263b3862c63d53ab11alanv    public int getMovementGranularities() {
309870e96ebf69f91da84681a6263b3862c63d53ab11alanv        return IMPL.getMovementGranularities(mInfo);
309970e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
310070e96ebf69f91da84681a6263b3862c63d53ab11alanv
310170e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
31029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Finds {@link android.view.accessibility.AccessibilityNodeInfo}s by text. The match
31039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * is case insensitive containment. The search is relative to this info i.e. this
31049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * info is the root of the traversed tree.
31059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
31069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> It is a client responsibility to recycle the
31079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * received info by calling {@link android.view.accessibility.AccessibilityNodeInfo#recycle()}
31089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * to avoid creating of multiple instances.
31099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
31109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
31119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param text The searched text.
31129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return A list of node info.
31139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
31149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public List<AccessibilityNodeInfoCompat> findAccessibilityNodeInfosByText(String text) {
31159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        List<AccessibilityNodeInfoCompat> result = new ArrayList<AccessibilityNodeInfoCompat>();
31169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        List<Object> infos = IMPL.findAccessibilityNodeInfosByText(mInfo, text);
31179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        final int infoCount = infos.size();
31189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        for (int i = 0; i < infoCount; i++) {
31199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            Object info = infos.get(i);
31209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            result.add(new AccessibilityNodeInfoCompat(info));
31219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
31229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return result;
31239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
31249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
31259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
31269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the parent.
31279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
31289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> It is a client responsibility to recycle the
31299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * received info by calling {@link android.view.accessibility.AccessibilityNodeInfo#recycle()}
31309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * to avoid creating of multiple instances.
31319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
31329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
31339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The parent.
31349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
31359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public AccessibilityNodeInfoCompat getParent() {
313670e96ebf69f91da84681a6263b3862c63d53ab11alanv        return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.getParent(mInfo));
31379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
31389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
31399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
31409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the parent.
31419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
31429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
31439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
31449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
31459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
31469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
31479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param parent The parent.
31489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
31499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
31509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setParent(View parent) {
31519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setParent(mInfo, parent);
31529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
31539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
31549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
315570e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Sets the parent to be a virtual descendant of the given <code>root</code>.
315670e96ebf69f91da84681a6263b3862c63d53ab11alanv     * If <code>virtualDescendantId</code> equals to {@link View#NO_ID} the root
315770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * is set as the parent.
315870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
315970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * A virtual descendant is an imaginary View that is reported as a part of the view
316070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * hierarchy for accessibility purposes. This enables custom views that draw complex
316170e96ebf69f91da84681a6263b3862c63d53ab11alanv     * content to report them selves as a tree of virtual views, thus conveying their
316270e96ebf69f91da84681a6263b3862c63d53ab11alanv     * logical structure.
316370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
316470e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
316570e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   <strong>Note:</strong> Cannot be called from an
316670e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   {@link android.accessibilityservice.AccessibilityService}.
316770e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   This class is made immutable before being delivered to an AccessibilityService.
316870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
316970e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
317070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @param root The root of the virtual subtree.
317170e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @param virtualDescendantId The id of the virtual descendant.
317270e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
317370e96ebf69f91da84681a6263b3862c63d53ab11alanv    public void setParent(View root, int virtualDescendantId) {
317470e96ebf69f91da84681a6263b3862c63d53ab11alanv        IMPL.setParent(mInfo, root, virtualDescendantId);
317570e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
317670e96ebf69f91da84681a6263b3862c63d53ab11alanv
317770e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
31789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the node bounds in parent coordinates.
31799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
31809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param outBounds The output node bounds.
31819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
31829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void getBoundsInParent(Rect outBounds) {
31839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.getBoundsInParent(mInfo, outBounds);
31849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
31859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
31869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
31879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the node bounds in parent coordinates.
31889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
31899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
31909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
31919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
31929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
31939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
31949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param bounds The node bounds.
31959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *@throws IllegalStateException If called from an AccessibilityService.
31969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
31979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setBoundsInParent(Rect bounds) {
31989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setBoundsInParent(mInfo, bounds);
31999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
32009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
32019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
32029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the node bounds in screen coordinates.
32039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
32049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param outBounds The output node bounds.
32059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
32069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void getBoundsInScreen(Rect outBounds) {
32079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.getBoundsInScreen(mInfo, outBounds);
32089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
32099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
32109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
32119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the node bounds in screen coordinates.
32129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
32139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
32149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
32159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
32169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
32179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
32189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param bounds The node bounds.
32199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
32209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
32219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setBoundsInScreen(Rect bounds) {
32223a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        IMPL.setBoundsInScreen(mInfo, bounds);
32239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
32249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
32259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
32269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is checkable.
32279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
32289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is checkable.
32299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
32309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isCheckable() {
32319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isCheckable(mInfo);
32329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
32339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
32349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
32359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is checkable.
32369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
32379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
32389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
32399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
32409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
32419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
32429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param checkable True if the node is checkable.
32439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
32449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
32459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setCheckable(boolean checkable) {
32469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setCheckable(mInfo, checkable);
32479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
32489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
32499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
32509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is checked.
32519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
32529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is checked.
32539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
32549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isChecked() {
32559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isChecked(mInfo);
32569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
32579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
32589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
32599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is checked.
32609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
32619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
32629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
32639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
32649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
32659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
32669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param checked True if the node is checked.
32679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
32689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
32699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setChecked(boolean checked) {
32709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setChecked(mInfo, checked);
32719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
32729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
32739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
32749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is focusable.
32759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
32769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is focusable.
32779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
32789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isFocusable() {
32799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isFocusable(mInfo);
32809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
32819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
32829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
32839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is focusable.
32849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
32859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
32869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
32879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
32889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
32899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
32909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param focusable True if the node is focusable.
32919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
32929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
32939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setFocusable(boolean focusable) {
32949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setFocusable(mInfo, focusable);
32959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
32969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
32979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
32989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is focused.
32999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
33009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is focused.
33019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
33029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isFocused() {
33039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isFocused(mInfo);
33049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
33059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
33069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
33079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is focused.
33089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
33099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
33109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
33119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
33129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
33139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
33149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param focused True if the node is focused.
33159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
33169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
33179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setFocused(boolean focused) {
33189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setFocused(mInfo, focused);
33199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
33209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
33219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
332270e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Sets whether this node is visible to the user.
332370e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
332470e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @return Whether the node is visible to the user.
332570e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
332670e96ebf69f91da84681a6263b3862c63d53ab11alanv    public boolean isVisibleToUser() {
332770e96ebf69f91da84681a6263b3862c63d53ab11alanv        return IMPL.isVisibleToUser(mInfo);
332870e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
332970e96ebf69f91da84681a6263b3862c63d53ab11alanv
333070e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
333170e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Sets whether this node is visible to the user.
333270e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
333370e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   <strong>Note:</strong> Cannot be called from an
333470e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   {@link android.accessibilityservice.AccessibilityService}.
333570e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   This class is made immutable before being delivered to an AccessibilityService.
333670e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
333770e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
333870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @param visibleToUser Whether the node is visible to the user.
333970e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
334070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @throws IllegalStateException If called from an AccessibilityService.
334170e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
334270e96ebf69f91da84681a6263b3862c63d53ab11alanv    public void setVisibleToUser(boolean visibleToUser) {
334370e96ebf69f91da84681a6263b3862c63d53ab11alanv        IMPL.setVisibleToUser(mInfo, visibleToUser);
334470e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
334570e96ebf69f91da84681a6263b3862c63d53ab11alanv
334670e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
334770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Gets whether this node is accessibility focused.
334870e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
334970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @return True if the node is accessibility focused.
335070e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
335170e96ebf69f91da84681a6263b3862c63d53ab11alanv    public boolean isAccessibilityFocused() {
335270e96ebf69f91da84681a6263b3862c63d53ab11alanv        return IMPL.isAccessibilityFocused(mInfo);
335370e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
335470e96ebf69f91da84681a6263b3862c63d53ab11alanv
335570e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
335670e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Sets whether this node is accessibility focused.
335770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
335870e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   <strong>Note:</strong> Cannot be called from an
335970e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   {@link android.accessibilityservice.AccessibilityService}.
336070e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   This class is made immutable before being delivered to an AccessibilityService.
336170e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
336270e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
336370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @param focused True if the node is accessibility focused.
336470e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
336570e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @throws IllegalStateException If called from an AccessibilityService.
336670e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
336770e96ebf69f91da84681a6263b3862c63d53ab11alanv    public void setAccessibilityFocused(boolean focused) {
336870e96ebf69f91da84681a6263b3862c63d53ab11alanv        IMPL.setAccessibilityFocused(mInfo, focused);
336970e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
337070e96ebf69f91da84681a6263b3862c63d53ab11alanv
337170e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
33729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is selected.
33739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
33749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is selected.
33759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
33769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isSelected() {
33779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isSelected(mInfo);
33789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
33799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
33809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
33819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is selected.
33829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
33839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
33849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
33859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
33869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
33879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
33889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param selected True if the node is selected.
33899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
33909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
33919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setSelected(boolean selected) {
33929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setSelected(mInfo, selected);
33939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
33949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
33959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
33969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is clickable.
33979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
33989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is clickable.
33999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
34009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isClickable() {
34019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isClickable(mInfo);
34029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
34039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
34049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
34059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is clickable.
34069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
34079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
34089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
34099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
34109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
34119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
34129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param clickable True if the node is clickable.
34139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
34149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
34159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setClickable(boolean clickable) {
34169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setClickable(mInfo, clickable);
34179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
34189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
34199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
34209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is long clickable.
34219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
34229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is long clickable.
34239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
34249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isLongClickable() {
34259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isLongClickable(mInfo);
34269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
34279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
34289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
34299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is long clickable.
34309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
34319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
34329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
34339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
34349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
34359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
34369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param longClickable True if the node is long clickable.
34379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
34389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
34399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setLongClickable(boolean longClickable) {
34409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setLongClickable(mInfo, longClickable);
34419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
34429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
34439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
34449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is enabled.
34459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
34469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is enabled.
34479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
34489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isEnabled() {
34499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isEnabled(mInfo);
34509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
34519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
34529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
34539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is enabled.
34549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
34559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
34569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
34579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
34589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
34599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
34609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param enabled True if the node is enabled.
34619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
34629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
34639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setEnabled(boolean enabled) {
34649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setEnabled(mInfo, enabled);
34659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
34669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
34679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
34689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is a password.
34699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
34709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is a password.
34719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
34729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isPassword() {
34739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isPassword(mInfo);
34749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
34759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
34769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
34779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is a password.
34789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
34799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
34809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
34819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
34829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
34839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
34849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param password True if the node is a password.
34859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
34869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
34879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setPassword(boolean password) {
34889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setPassword(mInfo, password);
34899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
34909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
34919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
34929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets if the node is scrollable.
34939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
34949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is scrollable, false otherwise.
34959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
34969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isScrollable() {
34979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isScrollable(mInfo);
34989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
34999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
35009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
35019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets if the node is scrollable.
35029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
35039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
35049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
35059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
35069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
35079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
35089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param scrollable True if the node is scrollable, false otherwise.
35099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
35109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
35119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setScrollable(boolean scrollable) {
35129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setScrollable(mInfo, scrollable);
35139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
35149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
35159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
3516cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     * Returns whether the node originates from a view considered important for accessibility.
3517cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     *
3518cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     * @return {@code true} if the node originates from a view considered important for
3519cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     *         accessibility, {@code false} otherwise
3520cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     *
3521cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     * @see View#isImportantForAccessibility()
3522cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     */
3523cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver    public boolean isImportantForAccessibility() {
3524cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        return IMPL.isImportantForAccessibility(mInfo);
3525cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver    }
3526cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver
3527cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver    /**
3528cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     * Sets whether the node is considered important for accessibility.
3529cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     * <p>
3530cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     *   <strong>Note:</strong> Cannot be called from an
3531cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     *   {@link android.accessibilityservice.AccessibilityService}.
3532cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     *   This class is made immutable before being delivered to an AccessibilityService.
3533cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     * </p>
3534cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     *
3535cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     * @param important {@code true} if the node is considered important for accessibility,
3536cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     *                  {@code false} otherwise
3537cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     */
3538cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver    public void setImportantForAccessibility(boolean important) {
3539cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        IMPL.setImportantForAccessibility(mInfo, important);
3540cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver    }
3541cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver
3542cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver    /**
35439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the package this node comes from.
35449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
35459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The package name.
35469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
35479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public CharSequence getPackageName() {
35489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.getPackageName(mInfo);
35499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
35509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
35519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
35529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the package this node comes from.
35539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
35549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
35559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
35569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
35579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
35589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
35599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param packageName The package name.
35609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
35619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
35629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setPackageName(CharSequence packageName) {
35639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setPackageName(mInfo, packageName);
35649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
35659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
35669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
35679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the class this node comes from.
35689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
35699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The class name.
35709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
35719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public CharSequence getClassName() {
35729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.getClassName(mInfo);
35739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
35749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
35759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
35769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the class this node comes from.
35779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
35789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
35799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
35809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
35819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
35829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
35839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param className The class name.
35849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
35859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
35869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setClassName(CharSequence className) {
35879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setClassName(mInfo, className);
35889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
35899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
35909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
35919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the text of this node.
35929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
35939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The text.
35949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
35959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public CharSequence getText() {
35969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.getText(mInfo);
35979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
35989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
35999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
36009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the text of this node.
36019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
36029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
36039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
36049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
36059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
36069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
36079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param text The text.
36089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
36099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
36109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setText(CharSequence text) {
36119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setText(mInfo, text);
36129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
36139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
36149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
36159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the content description of this node.
36169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
36179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The content description.
36189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
36199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public CharSequence getContentDescription() {
36209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.getContentDescription(mInfo);
36219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
36229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
36239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
36249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the content description of this node.
36259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
36269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
36279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
36289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
36299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
36309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
36319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param contentDescription The content description.
36329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
36339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
36349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setContentDescription(CharSequence contentDescription) {
36359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setContentDescription(mInfo, contentDescription);
36369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
36379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
36389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
36399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Return an instance back to be reused.
36409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
36419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> You must not touch the object after calling this function.
36429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
36439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If the info is already recycled.
36449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
36459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void recycle() {
36469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.recycle(mInfo);
36479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
36489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
36490fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    /**
36500fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * Sets the fully qualified resource name of the source view's id.
36510fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *
36520fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * <p>
36530fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *   <strong>Note:</strong> Cannot be called from an
36540fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *   {@link android.accessibilityservice.AccessibilityService}.
36550fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *   This class is made immutable before being delivered to an AccessibilityService.
36560fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * </p>
36570fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *
36580fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * @param viewId The id resource name.
36590fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     */
3660071eca0f490d88fc51cea8f739780c7c92b920c3Svetoslav    public void setViewIdResourceName(String viewId) {
36610fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        IMPL.setViewIdResourceName(mInfo, viewId);
36620fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    }
36630fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
36640fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    /**
36650fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * Gets the fully qualified resource name of the source view's id.
36660fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *
36670fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * <p>
36680fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *   <strong>Note:</strong> The primary usage of this API is for UI test automation
36690fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *   and in order to report the source view id of an {@link AccessibilityNodeInfoCompat}
36700fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *   the client has to set the {@link AccessibilityServiceInfoCompat#FLAG_REPORT_VIEW_IDS}
36710fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *   flag when configuring his {@link android.accessibilityservice.AccessibilityService}.
36720fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * </p>
36730fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     *
36740fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     * @return The id resource name.
36750fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav     */
3676071eca0f490d88fc51cea8f739780c7c92b920c3Svetoslav    public String getViewIdResourceName() {
36770fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        return IMPL.getViewIdResourceName(mInfo);
36780fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    }
36790fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
3680086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette    /**
3681086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     * Gets the node's live region mode.
3682086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     * <p>
3683086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     * A live region is a node that contains information that is important for
3684086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     * the user and when it changes the user should be notified. For example,
3685086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     * in a login screen with a TextView that displays an "incorrect password"
3686086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     * notification, that view should be marked as a live region with mode
3687086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     * {@link ViewCompat#ACCESSIBILITY_LIVE_REGION_POLITE}.
3688086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     * <p>
3689086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     * It is the responsibility of the accessibility service to monitor
3690086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     * {@link AccessibilityEventCompat#TYPE_WINDOW_CONTENT_CHANGED} events
3691086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     * indicating changes to live region nodes and their children.
3692086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     *
3693086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     * @return The live region mode, or
3694086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     *         {@link ViewCompat#ACCESSIBILITY_LIVE_REGION_NONE} if the view is
3695086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     *         not a live region.
3696086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     * @see ViewCompat#getAccessibilityLiveRegion(View)
3697086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     */
3698086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette    public int getLiveRegion() {
3699086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette        return IMPL.getLiveRegion(mInfo);
3700086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette    }
3701086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette
3702086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette    /**
3703086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     * Sets the node's live region mode.
3704086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     * <p>
3705086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     * <strong>Note:</strong> Cannot be called from an
3706086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     * {@link android.accessibilityservice.AccessibilityService}. This class is
3707086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     * made immutable before being delivered to an AccessibilityService.
3708086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     *
3709086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     * @param mode The live region mode, or
3710086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     *        {@link ViewCompat#ACCESSIBILITY_LIVE_REGION_NONE} if the view is
3711086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     *        not a live region.
3712086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     * @see ViewCompat#setAccessibilityLiveRegion(View, int)
3713086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette     */
3714086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette    public void setLiveRegion(int mode) {
3715086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette        IMPL.setLiveRegion(mInfo, mode);
3716086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette    }
3717086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette
3718fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen    /**
3719cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     * Get the drawing order of the view corresponding it this node.
3720cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     * <p>
3721cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     * Drawing order is determined only within the node's parent, so this index is only relative
3722cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     * to its siblings.
3723cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     * <p>
3724cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     * In some cases, the drawing order is essentially simultaneous, so it is possible for two
3725cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     * siblings to return the same value. It is also possible that values will be skipped.
3726cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     *
3727cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     * @return The drawing position of the view corresponding to this node relative to its siblings.
3728cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     */
3729cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver    public int getDrawingOrder() {
3730cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        return IMPL.getDrawingOrder(mInfo);
3731cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver    }
3732cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver
3733cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver    /**
3734cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     * Set the drawing order of the view corresponding it this node.
3735cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     *
3736cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     * <p>
3737cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     *   <strong>Note:</strong> Cannot be called from an
3738cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     *   {@link android.accessibilityservice.AccessibilityService}.
3739cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     *   This class is made immutable before being delivered to an AccessibilityService.
3740cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     * </p>
3741cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     * @param drawingOrderInParent
3742cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     * @throws IllegalStateException If called from an AccessibilityService.
3743cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver     */
3744cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver    public void setDrawingOrder(int drawingOrderInParent) {
3745cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver        IMPL.setDrawingOrder(mInfo, drawingOrderInParent);
3746cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver    }
3747cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver
3748cb9d97140aa503f64fcc8c0da5dcdd5e96e380f1Phil Weaver    /**
3749fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen     * Gets the collection info if the node is a collection. A collection
3750fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen     * child is always a collection item.
3751fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen     *
3752fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen     * @return The collection info.
3753fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen     */
3754fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen    public CollectionInfoCompat getCollectionInfo() {
3755fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        Object info = IMPL.getCollectionInfo(mInfo);
3756fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        if (info == null) return null;
3757fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        return new CollectionInfoCompat(info);
3758fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen    }
3759fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
3760a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar    public void setCollectionInfo(Object collectionInfo) {
3761a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        IMPL.setCollectionInfo(mInfo, ((CollectionInfoCompat) collectionInfo).mInfo);
3762a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar    }
3763a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
3764a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar    public void setCollectionItemInfo(Object collectionItemInfo) {
3765a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar        IMPL.setCollectionItemInfo(mInfo, ((CollectionItemInfoCompat) collectionItemInfo).mInfo);
3766a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar    }
3767a910619e83d0052e1d81aa5fe532821a2f99d76cYigit Boyar
3768fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen    /**
3769fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen     * Gets the collection item info if the node is a collection item. A collection
3770fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen     * item is always a child of a collection.
3771fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen     *
3772fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen     * @return The collection item info.
3773fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen     */
3774fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen    public CollectionItemInfoCompat getCollectionItemInfo() {
3775fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        Object info = IMPL.getCollectionItemInfo(mInfo);
3776fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        if (info == null) return null;
3777fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        return new CollectionItemInfoCompat(info);
3778fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen    }
3779fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
3780fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen    /**
3781fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen     * Gets the range info if this node is a range.
3782fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen     *
3783fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen     * @return The range.
3784fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen     */
3785fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen    public RangeInfoCompat getRangeInfo() {
3786fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        Object info = IMPL.getRangeInfo(mInfo);
3787fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        if (info == null) return null;
3788fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen        return new RangeInfoCompat(info);
3789fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen    }
3790fbfefc40581dd94616359c796b4cc03969b22a10Kristian Monsen
3791389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen    /**
37928aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Sets the range info if this node is a range.
37938aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
37948aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   <strong>Note:</strong> Cannot be called from an
37958aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   {@link android.accessibilityservice.AccessibilityService}.
37968aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   This class is made immutable before being delivered to an AccessibilityService.
37978aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * </p>
37988aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
37998aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @param rangeInfo The range info.
38008aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
38018aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public void setRangeInfo(RangeInfoCompat rangeInfo) {
38028aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        IMPL.setRangeInfo(mInfo, rangeInfo.mInfo);
38038aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
38048aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
38058aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
3806389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen     * Gets the actions that can be performed on the node.
3807389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen     *
3808389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen     * @return A list of AccessibilityActions.
3809389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen     */
3810389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen    public List<AccessibilityActionCompat> getActionList() {
3811389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen        List<Object> actions = IMPL.getActionList(mInfo);
3812cd85b06ae9fe64f4fc360b97a9af8896c193c403Kristian Monsen        if (actions != null) {
3813cd85b06ae9fe64f4fc360b97a9af8896c193c403Kristian Monsen            List<AccessibilityActionCompat> result = new ArrayList<AccessibilityActionCompat>();
3814cd85b06ae9fe64f4fc360b97a9af8896c193c403Kristian Monsen            final int actionCount = actions.size();
3815cd85b06ae9fe64f4fc360b97a9af8896c193c403Kristian Monsen            for (int i = 0; i < actionCount; i++) {
3816cd85b06ae9fe64f4fc360b97a9af8896c193c403Kristian Monsen                Object action = actions.get(i);
3817cd85b06ae9fe64f4fc360b97a9af8896c193c403Kristian Monsen                result.add(new AccessibilityActionCompat(action));
3818cd85b06ae9fe64f4fc360b97a9af8896c193c403Kristian Monsen            }
3819cd85b06ae9fe64f4fc360b97a9af8896c193c403Kristian Monsen            return result;
3820cd85b06ae9fe64f4fc360b97a9af8896c193c403Kristian Monsen        } else {
3821cd85b06ae9fe64f4fc360b97a9af8896c193c403Kristian Monsen            return Collections.<AccessibilityActionCompat>emptyList();
3822389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen        }
3823389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen    }
3824389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen
3825c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes    /**
3826c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * Sets if the content of this node is invalid. For example,
3827c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * a date is not well-formed.
3828c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * <p>
3829c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     *   <strong>Note:</strong> Cannot be called from an
3830c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     *   {@link android.accessibilityservice.AccessibilityService}.
3831c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     *   This class is made immutable before being delivered to an AccessibilityService.
3832c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * </p>
3833c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     *
3834c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * @param contentInvalid If the node content is invalid.
3835c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     */
3836c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes    public void setContentInvalid(boolean contentInvalid) {
3837c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        IMPL.setContentInvalid(mInfo, contentInvalid);
3838c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes    }
3839c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes
3840c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes    /**
3841c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * Gets if the content of this node is invalid. For example,
3842c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * a date is not well-formed.
3843c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     *
3844c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * @return If the node content is invalid.
3845c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     */
3846c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes    public boolean isContentInvalid() {
3847c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        return IMPL.isContentInvalid(mInfo);
3848c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes    }
3849c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes
3850c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes    /**
385177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * Gets whether this node is context clickable.
385277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     *
385377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * @return True if the node is context clickable.
385477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     */
385577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid    public boolean isContextClickable() {
385677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        return IMPL.isContextClickable(mInfo);
385777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid    }
385877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
385977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid    /**
386077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * Sets whether this node is context clickable.
386177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * <p>
386277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * <strong>Note:</strong> Cannot be called from an
386377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * {@link android.accessibilityservice.AccessibilityService}. This class is made immutable
386477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * before being delivered to an AccessibilityService.
386577df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * </p>
386677df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     *
386777df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * @param contextClickable True if the node is context clickable.
386877df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     * @throws IllegalStateException If called from an AccessibilityService.
386977df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid     */
387077df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid    public void setContextClickable(boolean contextClickable) {
387177df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid        IMPL.setContextClickable(mInfo, contextClickable);
387277df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid    }
387377df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid
387477df76ce4466b7a3739fbbe53c2ac99d976b113eAbhinav Baid    /**
3875c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * Sets the error text of this node.
3876c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * <p>
3877c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     *   <strong>Note:</strong> Cannot be called from an
3878c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     *   {@link android.accessibilityservice.AccessibilityService}.
3879c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     *   This class is made immutable before being delivered to an AccessibilityService.
3880c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * </p>
3881c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     *
3882c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * @param error The error text.
3883c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     *
3884c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * @throws IllegalStateException If called from an AccessibilityService.
3885c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     */
3886c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes    public void setError(CharSequence error) {
3887c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        IMPL.setError(mInfo, error);
3888c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes    }
3889c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes
3890c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes    /**
3891c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * Gets the error text of this node.
3892c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     *
3893c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * @return The error text.
3894c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     */
3895c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes    public CharSequence getError() {
3896c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        return IMPL.getError(mInfo);
3897c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes    }
3898c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes
3899c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes    /**
3900c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * Sets the view for which the view represented by this info serves as a
3901c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * label for accessibility purposes.
3902c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     *
3903c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * @param labeled The view for which this info serves as a label.
3904c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     */
3905c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes    public void setLabelFor(View labeled) {
3906c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        IMPL.setLabelFor(mInfo, labeled);
3907c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes    }
3908c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes
3909c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes    /**
3910c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * Sets the view for which the view represented by this info serves as a
3911c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * label for accessibility purposes. If <code>virtualDescendantId</code>
3912c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * is {@link View#NO_ID} the root is set as the labeled.
3913c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * <p>
3914c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * A virtual descendant is an imaginary View that is reported as a part of the view
3915c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * hierarchy for accessibility purposes. This enables custom views that draw complex
3916c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * content to report themselves as a tree of virtual views, thus conveying their
3917c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * logical structure.
3918c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * </p>
3919c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     *
3920c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * @param root The root whose virtual descendant serves as a label.
3921c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     * @param virtualDescendantId The id of the virtual descendant.
3922c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes     */
3923c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes    public void setLabelFor(View root, int virtualDescendantId) {
3924c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes        IMPL.setLabelFor(mInfo, root, virtualDescendantId);
3925c5b63021dfda1dd155775a0b4845c5ca3c70b1b0Chris Banes    }
3926389a2e54dda92632fc0004c17323ae4e5a249277Kristian Monsen
39278aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
39288aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Gets the node info for which the view represented by this info serves as
39298aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * a label for accessibility purposes.
39308aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
39318aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   <strong>Note:</strong> It is a client responsibility to recycle the
39328aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *     received info by calling {@link AccessibilityNodeInfoCompat#recycle()}
39338aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *     to avoid creating of multiple instances.
39348aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * </p>
39358aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
39368aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @return The labeled info.
39378aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
39388aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public AccessibilityNodeInfoCompat getLabelFor() {
39398aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.getLabelFor(mInfo));
39408aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
39418aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
39428aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
39438aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Sets the view which serves as the label of the view represented by
39448aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * this info for accessibility purposes.
39458aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
39468aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @param label The view that labels this node's source.
39478aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
39488aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public void setLabeledBy(View label) {
39498aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        IMPL.setLabeledBy(mInfo, label);
39508aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
39518aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
39528aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
39538aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Sets the view which serves as the label of the view represented by
39548aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * this info for accessibility purposes. If <code>virtualDescendantId</code>
39558aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * is {@link View#NO_ID} the root is set as the label.
39568aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
39578aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * A virtual descendant is an imaginary View that is reported as a part of the view
39588aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * hierarchy for accessibility purposes. This enables custom views that draw complex
39598aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * content to report themselves as a tree of virtual views, thus conveying their
39608aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * logical structure.
39618aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * </p>
39628aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
39638aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   <strong>Note:</strong> Cannot be called from an
39648aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   {@link android.accessibilityservice.AccessibilityService}.
39658aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   This class is made immutable before being delivered to an AccessibilityService.
39668aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * </p>
39678aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
39688aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @param root The root whose virtual descendant labels this node's source.
39698aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @param virtualDescendantId The id of the virtual descendant.
39708aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
39718aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public void setLabeledBy(View root, int virtualDescendantId) {
39728aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        IMPL.setLabeledBy(mInfo, root, virtualDescendantId);
39738aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
39748aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
39758aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
39768aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Gets the node info which serves as the label of the view represented by
39778aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * this info for accessibility purposes.
39788aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
39798aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   <strong>Note:</strong> It is a client responsibility to recycle the
39808aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *     received info by calling {@link AccessibilityNodeInfoCompat#recycle()}
39818aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *     to avoid creating of multiple instances.
39828aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * </p>
39838aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
39848aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @return The label.
39858aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
39868aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public AccessibilityNodeInfoCompat getLabeledBy() {
39878aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.getLabeledBy(mInfo));
39888aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
39898aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
39908aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
39918aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Gets if this node opens a popup or a dialog.
39928aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
39938aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @return If the the node opens a popup.
39948aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
39958aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public boolean canOpenPopup() {
39968aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        return IMPL.canOpenPopup(mInfo);
39978aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
39988aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
39998aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
40008aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Sets if this node opens a popup or a dialog.
40018aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
40028aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   <strong>Note:</strong> Cannot be called from an
40038aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   {@link android.accessibilityservice.AccessibilityService}.
40048aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   This class is made immutable before being delivered to an AccessibilityService.
40058aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * </p>
40068aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
40078aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @param opensPopup If the the node opens a popup.
40088aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
40098aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public void setCanOpenPopup(boolean opensPopup) {
40108aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        IMPL.setCanOpenPopup(mInfo, opensPopup);
40118aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
40128aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
40138aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
40148aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Finds {@link AccessibilityNodeInfoCompat}s by the fully qualified view id's resource
40158aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * name where a fully qualified id is of the from "package:id/id_resource_name".
40168aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * For example, if the target application's package is "foo.bar" and the id
40178aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * resource name is "baz", the fully qualified resource id is "foo.bar:id/baz".
40188aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
40198aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
40208aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   <strong>Note:</strong> It is a client responsibility to recycle the
40218aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *     received info by calling {@link AccessibilityNodeInfoCompat#recycle()}
40228aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *     to avoid creating of multiple instances.
40238aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * </p>
40248aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
40258aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   <strong>Note:</strong> The primary usage of this API is for UI test automation
40268aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   and in order to report the fully qualified view id if an
40278aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   {@link AccessibilityNodeInfoCompat} the client has to set the
40288aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   {@link android.accessibilityservice.AccessibilityServiceInfo#FLAG_REPORT_VIEW_IDS}
40298aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   flag when configuring his {@link android.accessibilityservice.AccessibilityService}.
40308aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * </p>
40318aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
40328aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @param viewId The fully qualified resource name of the view id to find.
40338aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @return A list of node info.
40348aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
40358aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public List<AccessibilityNodeInfoCompat> findAccessibilityNodeInfosByViewId(String viewId) {
40368aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        List<Object> nodes = IMPL.findAccessibilityNodeInfosByViewId(mInfo, viewId);
40378aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        if (nodes != null) {
40388aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            List<AccessibilityNodeInfoCompat> result = new ArrayList<AccessibilityNodeInfoCompat>();
40398aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            for (Object node : nodes) {
40408aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov                result.add(new AccessibilityNodeInfoCompat(node));
40418aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            }
40428aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return result;
40438aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        } else {
40448aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov            return Collections.emptyList();
40458aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        }
40468aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
40478aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
40488aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
40498aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Gets an optional bundle with extra data. The bundle
40508aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * is lazily created and never <code>null</code>.
40518aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
40528aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <strong>Note:</strong> It is recommended to use the package
40538aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * name of your application as a prefix for the keys to avoid
40548aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * collisions which may confuse an accessibility service if the
40558aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * same key has different meaning when emitted from different
40568aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * applications.
40578aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * </p>
40588aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
40598aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @return The bundle.
40608aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
40618aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public Bundle getExtras() {
40628aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        return IMPL.getExtras(mInfo);
40638aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
40648aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
40658aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
40668aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Gets the input type of the source as defined by {@link InputType}.
40678aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
40688aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @return The input type.
40698aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
40708aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public int getInputType() {
40718aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        return IMPL.getInputType(mInfo);
40728aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
40738aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
40748aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
40758aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Sets the input type of the source as defined by {@link InputType}.
40768aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
40778aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   <strong>Note:</strong> Cannot be called from an
40788aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   {@link android.accessibilityservice.AccessibilityService}.
40798aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   This class is made immutable before being delivered to an
40808aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   AccessibilityService.
40818aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * </p>
40828aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
40838aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @param inputType The input type.
40848aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
40858aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @throws IllegalStateException If called from an AccessibilityService.
40868aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
40878aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public void setInputType(int inputType) {
40888aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        IMPL.setInputType(mInfo, inputType);
40898aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
40908aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
40918aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
40928aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Sets the maximum text length, or -1 for no limit.
40938aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
40948aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Typically used to indicate that an editable text field has a limit on
40958aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * the number of characters entered.
40968aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
40978aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <strong>Note:</strong> Cannot be called from an
40988aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * {@link android.accessibilityservice.AccessibilityService}.
40998aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * This class is made immutable before being delivered to an AccessibilityService.
41008aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
41018aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @param max The maximum text length.
41028aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @see #getMaxTextLength()
41038aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
41048aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @throws IllegalStateException If called from an AccessibilityService.
41058aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
41068aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public void setMaxTextLength(int max) {
41078aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        IMPL.setMaxTextLength(mInfo, max);
41088aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
41098aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
41108aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
41118aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Returns the maximum text length for this node.
41128aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
41138aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @return The maximum text length, or -1 for no limit.
41148aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @see #setMaxTextLength(int)
41158aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
41168aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public int getMaxTextLength() {
41178aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        return IMPL.getMaxTextLength(mInfo);
41188aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
41198aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
41208aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
41218aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Sets the text selection start and end.
41228aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
41238aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   <strong>Note:</strong> Cannot be called from an
41248aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   {@link android.accessibilityservice.AccessibilityService}.
41258aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   This class is made immutable before being delivered to an AccessibilityService.
41268aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * </p>
41278aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
41288aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @param start The text selection start.
41298aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @param end The text selection end.
41308aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
41318aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @throws IllegalStateException If called from an AccessibilityService.
41328aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
41338aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public void setTextSelection(int start, int end) {
41348aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        IMPL.setTextSelection(mInfo, start, end);
41358aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
41368aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
41378aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
41388aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Gets the text selection start.
41398aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
41408aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @return The text selection start if there is selection or -1.
41418aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
41428aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public int getTextSelectionStart() {
41438aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        return IMPL.getTextSelectionStart(mInfo);
41448aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
41458aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
41468aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
41478aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Gets the text selection end.
41488aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
41498aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @return The text selection end if there is selection or -1.
41508aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
41518aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public int getTextSelectionEnd() {
41528aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        return IMPL.getTextSelectionEnd(mInfo);
41538aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
41548aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
41558aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
41568aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Gets the node before which this one is visited during traversal. A screen-reader
41578aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * must visit the content of this node before the content of the one it precedes.
41588aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
41598aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @return The succeeding node if such or <code>null</code>.
41608aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
41618aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @see #setTraversalBefore(android.view.View)
41628aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @see #setTraversalBefore(android.view.View, int)
41638aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
41648aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public AccessibilityNodeInfoCompat getTraversalBefore() {
41658aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.getTraversalBefore(mInfo));
41668aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
41678aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
41688aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
41698aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Sets the view before whose node this one should be visited during traversal. A
41708aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * screen-reader must visit the content of this node before the content of the one
41718aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * it precedes.
41728aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
41738aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   <strong>Note:</strong> Cannot be called from an
41748aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   {@link android.accessibilityservice.AccessibilityService}.
41758aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   This class is made immutable before being delivered to an AccessibilityService.
41768aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * </p>
41778aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
41788aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @param view The view providing the preceding node.
41798aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
41808aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @see #getTraversalBefore()
41818aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
41828aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public void setTraversalBefore(View view) {
41838aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        IMPL.setTraversalBefore(mInfo, view);
41848aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
41858aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
41868aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
41878aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Sets the node before which this one is visited during traversal. A screen-reader
41888aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * must visit the content of this node before the content of the one it precedes.
41898aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * The successor is a virtual descendant of the given <code>root</code>. If
41908aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <code>virtualDescendantId</code> equals to {@link View#NO_ID} the root is set
41918aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * as the successor.
41928aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
41938aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * A virtual descendant is an imaginary View that is reported as a part of the view
41948aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * hierarchy for accessibility purposes. This enables custom views that draw complex
41958aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * content to report them selves as a tree of virtual views, thus conveying their
41968aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * logical structure.
41978aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * </p>
41988aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
41998aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   <strong>Note:</strong> Cannot be called from an
42008aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   {@link android.accessibilityservice.AccessibilityService}.
42018aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   This class is made immutable before being delivered to an AccessibilityService.
42028aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * </p>
42038aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
42048aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @param root The root of the virtual subtree.
42058aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @param virtualDescendantId The id of the virtual descendant.
42068aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
42078aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public void setTraversalBefore(View root, int virtualDescendantId) {
42088aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        IMPL.setTraversalBefore(mInfo, root, virtualDescendantId);
42098aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
42108aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
42118aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
42128aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Gets the node after which this one is visited in accessibility traversal.
42138aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * A screen-reader must visit the content of the other node before the content
42148aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * of this one.
42158aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
42168aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @return The succeeding node if such or <code>null</code>.
42178aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
42188aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @see #setTraversalAfter(android.view.View)
42198aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @see #setTraversalAfter(android.view.View, int)
42208aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
42218aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public AccessibilityNodeInfoCompat getTraversalAfter() {
42228aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.getTraversalAfter(mInfo));
42238aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
42248aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
42258aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
42268aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Sets the view whose node is visited after this one in accessibility traversal.
42278aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * A screen-reader must visit the content of the other node before the content
42288aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * of this one.
42298aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
42308aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   <strong>Note:</strong> Cannot be called from an
42318aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   {@link android.accessibilityservice.AccessibilityService}.
42328aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   This class is made immutable before being delivered to an AccessibilityService.
42338aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * </p>
42348aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
42358aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @param view The previous view.
42368aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
42378aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @see #getTraversalAfter()
42388aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
42398aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public void setTraversalAfter(View view) {
42408aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        IMPL.setTraversalAfter(mInfo, view);
42418aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
42428aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
42438aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
42448aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Sets the node after which this one is visited in accessibility traversal.
42458aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * A screen-reader must visit the content of the other node before the content
42468aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * of this one. If <code>virtualDescendantId</code> equals to {@link View#NO_ID}
42478aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * the root is set as the predecessor.
42488aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
42498aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * A virtual descendant is an imaginary View that is reported as a part of the view
42508aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * hierarchy for accessibility purposes. This enables custom views that draw complex
42518aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * content to report them selves as a tree of virtual views, thus conveying their
42528aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * logical structure.
42538aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * </p>
42548aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
42558aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   <strong>Note:</strong> Cannot be called from an
42568aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   {@link android.accessibilityservice.AccessibilityService}.
42578aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   This class is made immutable before being delivered to an AccessibilityService.
42588aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * </p>
42598aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
42608aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @param root The root of the virtual subtree.
42618aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @param virtualDescendantId The id of the virtual descendant.
42628aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
42638aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public void setTraversalAfter(View root, int virtualDescendantId) {
42648aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        IMPL.setTraversalAfter(mInfo, root, virtualDescendantId);
42658aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
42668aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
42678aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
42688aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Gets the window to which this node belongs.
42698aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
42708aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @return The window.
42718aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
42728aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @see android.accessibilityservice.AccessibilityService#getWindows()
42738aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
42748aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public AccessibilityWindowInfoCompat getWindow() {
42758aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        return AccessibilityWindowInfoCompat.wrapNonNullInstance(IMPL.getWindow(mInfo));
42768aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
42778aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
42788aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
42798aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Gets if the node can be dismissed.
42808aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
42818aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @return If the node can be dismissed.
42828aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
42838aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public boolean isDismissable() {
42848aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        return IMPL.isDismissable(mInfo);
42858aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
42868aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
42878aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
42888aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Sets if the node can be dismissed.
42898aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
42908aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   <strong>Note:</strong> Cannot be called from an
42918aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   {@link android.accessibilityservice.AccessibilityService}.
42928aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   This class is made immutable before being delivered to an AccessibilityService.
42938aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * </p>
42948aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
42958aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @param dismissable If the node can be dismissed.
42968aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
42978aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public void setDismissable(boolean dismissable) {
42988aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        IMPL.setDismissable(mInfo, dismissable);
42998aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
43008aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
43018aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
43028aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Gets if the node is editable.
43038aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
43048aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @return True if the node is editable, false otherwise.
43058aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
43068aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public boolean isEditable() {
43078aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        return IMPL.isEditable(mInfo);
43088aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
43098aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
43108aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
43118aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Sets whether this node is editable.
43128aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
43138aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   <strong>Note:</strong> Cannot be called from an
43148aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   {@link android.accessibilityservice.AccessibilityService}.
43158aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   This class is made immutable before being delivered to an AccessibilityService.
43168aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * </p>
43178aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
43188aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @param editable True if the node is editable.
43198aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
43208aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @throws IllegalStateException If called from an AccessibilityService.
43218aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
43228aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public void setEditable(boolean editable) {
43238aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        IMPL.setEditable(mInfo, editable);
43248aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
43258aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
43268aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
43278aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Gets if the node is a multi line editable text.
43288aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
43298aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @return True if the node is multi line.
43308aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
43318aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public boolean isMultiLine() {
43328aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        return IMPL.isMultiLine(mInfo);
43338aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
43348aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
43358aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
43368aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Sets if the node is a multi line editable text.
43378aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
43388aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   <strong>Note:</strong> Cannot be called from an
43398aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   {@link android.accessibilityservice.AccessibilityService}.
43408aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *   This class is made immutable before being delivered to an AccessibilityService.
43418aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * </p>
43428aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     *
43438aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @param multiLine True if the node is multi line.
43448aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
43458aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public void setMultiLine(boolean multiLine) {
43468aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        IMPL.setMultiLine(mInfo, multiLine);
43478aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
43488aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
43498aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    /**
43508aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * Refreshes this info with the latest state of the view it represents.
43518aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <p>
43528aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * <strong>Note:</strong> If this method returns false this info is obsolete
43538aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * since it represents a view that is no longer in the view tree and should
43548aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * be recycled.
43558aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * </p>
43568aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     * @return Whether the refresh succeeded.
43578aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov     */
43588aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    public boolean refresh() {
43598aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov        return IMPL.refresh(mInfo);
43608aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov    }
43618aaf50bd7d713dafc358e6215111e7b0a43ecc82Maxim Bogatov
4362f0d984600125413628899bfc849bab102bc2228eSteven Dao    /**
4363f0d984600125413628899bfc849bab102bc2228eSteven Dao     * Gets the custom role description.
4364f0d984600125413628899bfc849bab102bc2228eSteven Dao     * @return The role description.
4365f0d984600125413628899bfc849bab102bc2228eSteven Dao     */
4366f0d984600125413628899bfc849bab102bc2228eSteven Dao    public @Nullable CharSequence getRoleDescription() {
4367f0d984600125413628899bfc849bab102bc2228eSteven Dao        return IMPL.getRoleDescription(mInfo);
4368f0d984600125413628899bfc849bab102bc2228eSteven Dao    }
4369f0d984600125413628899bfc849bab102bc2228eSteven Dao
4370f0d984600125413628899bfc849bab102bc2228eSteven Dao    /**
4371f0d984600125413628899bfc849bab102bc2228eSteven Dao     * Sets the custom role description.
4372f0d984600125413628899bfc849bab102bc2228eSteven Dao     *
4373f0d984600125413628899bfc849bab102bc2228eSteven Dao     * <p>
4374f0d984600125413628899bfc849bab102bc2228eSteven Dao     *   The role description allows you to customize the name for the view's semantic
4375f0d984600125413628899bfc849bab102bc2228eSteven Dao     *   role. For example, if you create a custom subclass of {@link android.view.View}
4376f0d984600125413628899bfc849bab102bc2228eSteven Dao     *   to display a menu bar, you could assign it the role description of "menu bar".
4377f0d984600125413628899bfc849bab102bc2228eSteven Dao     * </p>
4378f0d984600125413628899bfc849bab102bc2228eSteven Dao     * <p>
4379f0d984600125413628899bfc849bab102bc2228eSteven Dao     *   <strong>Warning:</strong> For consistency with other applications, you should
4380f0d984600125413628899bfc849bab102bc2228eSteven Dao     *   not use the role description to force accessibility services to describe
4381f0d984600125413628899bfc849bab102bc2228eSteven Dao     *   standard views (such as buttons or checkboxes) using specific wording. For
4382f0d984600125413628899bfc849bab102bc2228eSteven Dao     *   example, you should not set a role description of "check box" or "tick box" for
4383f0d984600125413628899bfc849bab102bc2228eSteven Dao     *   a standard {@link android.widget.CheckBox}. Instead let accessibility services
4384f0d984600125413628899bfc849bab102bc2228eSteven Dao     *   decide what feedback to provide.
4385f0d984600125413628899bfc849bab102bc2228eSteven Dao     * </p>
4386f0d984600125413628899bfc849bab102bc2228eSteven Dao     * <p>
4387f0d984600125413628899bfc849bab102bc2228eSteven Dao     *   <strong>Note:</strong> Cannot be called from an
4388f0d984600125413628899bfc849bab102bc2228eSteven Dao     *   {@link android.accessibilityservice.AccessibilityService}.
4389f0d984600125413628899bfc849bab102bc2228eSteven Dao     *   This class is made immutable before being delivered to an AccessibilityService.
4390f0d984600125413628899bfc849bab102bc2228eSteven Dao     * </p>
4391f0d984600125413628899bfc849bab102bc2228eSteven Dao     *
4392f0d984600125413628899bfc849bab102bc2228eSteven Dao     * @param roleDescription The role description.
4393f0d984600125413628899bfc849bab102bc2228eSteven Dao     */
4394f0d984600125413628899bfc849bab102bc2228eSteven Dao    public void setRoleDescription(@Nullable CharSequence roleDescription) {
4395f0d984600125413628899bfc849bab102bc2228eSteven Dao        IMPL.setRoleDescription(mInfo, roleDescription);
4396f0d984600125413628899bfc849bab102bc2228eSteven Dao    }
4397f0d984600125413628899bfc849bab102bc2228eSteven Dao
43989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    @Override
43999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public int hashCode() {
44009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return (mInfo == null) ? 0 : mInfo.hashCode();
44019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
44029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
44039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    @Override
44049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean equals(Object obj) {
44059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        if (this == obj) {
44069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return true;
44079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
44089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        if (obj == null) {
44099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
44109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
44119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        if (getClass() != obj.getClass()) {
44129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
44139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
44149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        AccessibilityNodeInfoCompat other = (AccessibilityNodeInfoCompat) obj;
44159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        if (mInfo == null) {
44169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            if (other.mInfo != null) {
44179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov                return false;
44189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            }
44199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        } else if (!mInfo.equals(other.mInfo)) {
44209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
44219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
44229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return true;
44239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
44240fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
44250fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    @Override
44260fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    public String toString() {
44270fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        StringBuilder builder = new StringBuilder();
44280fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        builder.append(super.toString());
44290fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
44300fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        Rect bounds = new Rect();
44310fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
44320fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        getBoundsInParent(bounds);
44330fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        builder.append("; boundsInParent: " + bounds);
44340fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
44350fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        getBoundsInScreen(bounds);
44360fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        builder.append("; boundsInScreen: " + bounds);
44370fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
44380fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        builder.append("; packageName: ").append(getPackageName());
44390fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        builder.append("; className: ").append(getClassName());
44400fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        builder.append("; text: ").append(getText());
44410fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        builder.append("; contentDescription: ").append(getContentDescription());
44420fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        builder.append("; viewId: ").append(getViewIdResourceName());
44430fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
44440fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        builder.append("; checkable: ").append(isCheckable());
44450fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        builder.append("; checked: ").append(isChecked());
44460fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        builder.append("; focusable: ").append(isFocusable());
44470fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        builder.append("; focused: ").append(isFocused());
44480fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        builder.append("; selected: ").append(isSelected());
44490fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        builder.append("; clickable: ").append(isClickable());
44500fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        builder.append("; longClickable: ").append(isLongClickable());
44510fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        builder.append("; enabled: ").append(isEnabled());
44520fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        builder.append("; password: ").append(isPassword());
44530fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        builder.append("; scrollable: " + isScrollable());
44540fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
44550fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        builder.append("; [");
44560fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        for (int actionBits = getActions(); actionBits != 0;) {
44570fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            final int action = 1 << Integer.numberOfTrailingZeros(actionBits);
44580fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            actionBits &= ~action;
44590fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            builder.append(getActionSymbolicName(action));
44600fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            if (actionBits != 0) {
44610fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav                builder.append(", ");
44620fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            }
44630fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        }
44640fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        builder.append("]");
44650fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
44660fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        return builder.toString();
44670fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    }
44680fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav
44690fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    private static String getActionSymbolicName(int action) {
44700fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        switch (action) {
44710fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            case ACTION_FOCUS:
44720fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav                return "ACTION_FOCUS";
44730fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            case ACTION_CLEAR_FOCUS:
44740fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav                return "ACTION_CLEAR_FOCUS";
44750fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            case ACTION_SELECT:
44760fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav                return "ACTION_SELECT";
44770fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            case ACTION_CLEAR_SELECTION:
44780fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav                return "ACTION_CLEAR_SELECTION";
44790fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            case ACTION_CLICK:
44800fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav                return "ACTION_CLICK";
44810fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            case ACTION_LONG_CLICK:
44820fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav                return "ACTION_LONG_CLICK";
44830fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            case ACTION_ACCESSIBILITY_FOCUS:
44840fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav                return "ACTION_ACCESSIBILITY_FOCUS";
44850fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            case ACTION_CLEAR_ACCESSIBILITY_FOCUS:
44860fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav                return "ACTION_CLEAR_ACCESSIBILITY_FOCUS";
44870fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            case ACTION_NEXT_AT_MOVEMENT_GRANULARITY:
44880fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav                return "ACTION_NEXT_AT_MOVEMENT_GRANULARITY";
44890fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            case ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY:
44900fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav                return "ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY";
44910fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            case ACTION_NEXT_HTML_ELEMENT:
44920fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav                return "ACTION_NEXT_HTML_ELEMENT";
44930fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            case ACTION_PREVIOUS_HTML_ELEMENT:
44940fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav                return "ACTION_PREVIOUS_HTML_ELEMENT";
44950fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            case ACTION_SCROLL_FORWARD:
44960fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav                return "ACTION_SCROLL_FORWARD";
44970fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            case ACTION_SCROLL_BACKWARD:
44980fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav                return "ACTION_SCROLL_BACKWARD";
44990fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            case ACTION_CUT:
45000fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav                return "ACTION_CUT";
45010fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            case ACTION_COPY:
45020fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav                return "ACTION_COPY";
45030fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            case ACTION_PASTE:
45040fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav                return "ACTION_PASTE";
45050fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            case ACTION_SET_SELECTION:
45060fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav                return "ACTION_SET_SELECTION";
45070fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav            default:
45080fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav                return"ACTION_UNKNOWN";
45090fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav        }
45100fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav    }
45119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov}
4512