13a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov/*
23a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * Copyright (C) 2012 The Android Open Source Project
33a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov *
43a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * Licensed under the Apache License, Version 2.0 (the "License");
53a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * you may not use this file except in compliance with the License.
63a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * You may obtain a copy of the License at
73a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov *
83a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov *      http://www.apache.org/licenses/LICENSE-2.0
93a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov *
103a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * Unless required by applicable law or agreed to in writing, software
113a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * distributed under the License is distributed on an "AS IS" BASIS,
123a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
133a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * See the License for the specific language governing permissions and
143a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * limitations under the License.
153a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov */
163a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov
173a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganovpackage android.support.v4.view.accessibility;
183a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov
1970e96ebf69f91da84681a6263b3862c63d53ab11alanvimport android.os.Bundle;
203a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganovimport android.view.View;
213a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganovimport android.view.accessibility.AccessibilityNodeInfo;
223a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov
233a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov/**
243a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * JellyBean specific AccessibilityNodeInfo API implementation.
253a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov */
263a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganovclass AccessibilityNodeInfoCompatJellyBean {
273a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov
2870e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static void addChild(Object info, View child, int virtualDescendantId) {
2970e96ebf69f91da84681a6263b3862c63d53ab11alanv        ((AccessibilityNodeInfo) info).addChild(child, virtualDescendantId);
3070e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
313a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov
3270e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static void setSource(Object info, View root, int virtualDescendantId) {
3370e96ebf69f91da84681a6263b3862c63d53ab11alanv        ((AccessibilityNodeInfo) info).setSource(root, virtualDescendantId);
3470e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
3570e96ebf69f91da84681a6263b3862c63d53ab11alanv
3670e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static boolean isVisibleToUser(Object info) {
3770e96ebf69f91da84681a6263b3862c63d53ab11alanv        return ((AccessibilityNodeInfo) info).isVisibleToUser();
3870e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
3970e96ebf69f91da84681a6263b3862c63d53ab11alanv
4070e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static void setVisibleToUser(Object info, boolean visibleToUser) {
4170e96ebf69f91da84681a6263b3862c63d53ab11alanv        ((AccessibilityNodeInfo) info).setVisibleToUser(visibleToUser);
4270e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
4370e96ebf69f91da84681a6263b3862c63d53ab11alanv
4470e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static boolean performAction(Object info, int action, Bundle arguments) {
4570e96ebf69f91da84681a6263b3862c63d53ab11alanv        return ((AccessibilityNodeInfo) info).performAction(action, arguments);
4670e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
4770e96ebf69f91da84681a6263b3862c63d53ab11alanv
4870e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static void setMovementGranularities(Object info, int granularities) {
4970e96ebf69f91da84681a6263b3862c63d53ab11alanv        ((AccessibilityNodeInfo) info).setMovementGranularities(granularities);
5070e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
5170e96ebf69f91da84681a6263b3862c63d53ab11alanv
5270e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static int getMovementGranularities(Object info) {
5370e96ebf69f91da84681a6263b3862c63d53ab11alanv        return ((AccessibilityNodeInfo) info).getMovementGranularities();
5470e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
5570e96ebf69f91da84681a6263b3862c63d53ab11alanv
5670e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static Object obtain(View root, int virtualDescendantId) {
5770e96ebf69f91da84681a6263b3862c63d53ab11alanv        return AccessibilityNodeInfo.obtain(root, virtualDescendantId);
5870e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
5970e96ebf69f91da84681a6263b3862c63d53ab11alanv
6070e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static Object findFocus(Object info, int focus) {
6170e96ebf69f91da84681a6263b3862c63d53ab11alanv        return ((AccessibilityNodeInfo) info).findFocus(focus);
6270e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
6370e96ebf69f91da84681a6263b3862c63d53ab11alanv
6470e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static Object focusSearch(Object info, int direction) {
6570e96ebf69f91da84681a6263b3862c63d53ab11alanv        return ((AccessibilityNodeInfo) info).focusSearch(direction);
6670e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
6770e96ebf69f91da84681a6263b3862c63d53ab11alanv
6870e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static void setParent(Object info, View root, int virtualDescendantId) {
6970e96ebf69f91da84681a6263b3862c63d53ab11alanv        ((AccessibilityNodeInfo) info).setParent(root, virtualDescendantId);
7070e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
7170e96ebf69f91da84681a6263b3862c63d53ab11alanv
7270e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static boolean isAccessibilityFocused(Object info) {
7370e96ebf69f91da84681a6263b3862c63d53ab11alanv        return ((AccessibilityNodeInfo) info).isAccessibilityFocused();
7470e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
7570e96ebf69f91da84681a6263b3862c63d53ab11alanv
7670e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static void setAccesibilityFocused(Object info, boolean focused) {
7770e96ebf69f91da84681a6263b3862c63d53ab11alanv        ((AccessibilityNodeInfo) info).setAccessibilityFocused(focused);
7870e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
793a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov}
80