AccessibilityDelegateCompatJellyBean.java revision 956b013dfda37760b0232ed6d448900a546d2903
1956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov/*
2956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov * Copyright (C) 2012 The Android Open Source Project
3956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov *
4956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov * Licensed under the Apache License, Version 2.0 (the "License");
5956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov * you may not use this file except in compliance with the License.
6956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov * You may obtain a copy of the License at
7956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov *
8956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov *      http://www.apache.org/licenses/LICENSE-2.0
9956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov *
10956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov * Unless required by applicable law or agreed to in writing, software
11956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov * distributed under the License is distributed on an "AS IS" BASIS,
12956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov * See the License for the specific language governing permissions and
14956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov * limitations under the License.
15956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov */
16956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov
17956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganovpackage android.support.v4.view;
18956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov
19956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganovimport android.view.View;
20956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganovimport android.view.View.AccessibilityDelegate;
21956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganovimport android.view.ViewGroup;
22956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganovimport android.view.accessibility.AccessibilityEvent;
23956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganovimport android.view.accessibility.AccessibilityNodeInfo;
24956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganovimport android.view.accessibility.AccessibilityNodeProvider;
25956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov
26956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov/**
27956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov * JellyBean specific AccessibilityDelegate API implementation.
28956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov */
29956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganovclass AccessibilityDelegateCompatJellyBean {
30956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov
31956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov    public interface AccessibilityDelegateBridgeJellyBean {
32956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov        public boolean dispatchPopulateAccessibilityEvent(View host, AccessibilityEvent event);
33956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov        public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event);
34956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov        public void onInitializeAccessibilityNodeInfo(View host, Object info);
35956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov        public void onPopulateAccessibilityEvent(View host, AccessibilityEvent event);
36956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov        public boolean onRequestSendAccessibilityEvent(ViewGroup host, View child,
37956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            AccessibilityEvent event);
38956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov        public void sendAccessibilityEvent(View host, int eventType);
39956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov        public void sendAccessibilityEventUnchecked(View host, AccessibilityEvent event);
40956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov        public Object getAccessibilityNodeProvider(View host);
41956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov    }
42956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov
43956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov    public static Object newAccessibilityDelegateBridge(
44956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            final AccessibilityDelegateBridgeJellyBean bridge) {
45956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov        return new AccessibilityDelegate() {
46956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            @Override
47956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            public boolean dispatchPopulateAccessibilityEvent(View host, AccessibilityEvent event) {
48956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov                return bridge.dispatchPopulateAccessibilityEvent(host, event);
49956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            }
50956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov
51956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            @Override
52956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) {
53956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov                bridge.onInitializeAccessibilityEvent(host, event);
54956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            }
55956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov
56956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            @Override
57956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
58956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov                bridge.onInitializeAccessibilityNodeInfo(host, info);
59956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            }
60956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov
61956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            @Override
62956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            public void onPopulateAccessibilityEvent(View host, AccessibilityEvent event) {
63956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov                bridge.onPopulateAccessibilityEvent(host, event);
64956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            }
65956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov
66956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            @Override
67956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            public boolean onRequestSendAccessibilityEvent(ViewGroup host, View child,
68956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov                    AccessibilityEvent event) {
69956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov                return bridge.onRequestSendAccessibilityEvent(host, child, event);
70956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            }
71956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov
72956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            @Override
73956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            public void sendAccessibilityEvent(View host, int eventType) {
74956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov                bridge.sendAccessibilityEvent(host, eventType);
75956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            }
76956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov
77956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            @Override
78956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            public void sendAccessibilityEventUnchecked(View host, AccessibilityEvent event) {
79956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov                bridge.sendAccessibilityEventUnchecked(host, event);
80956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            }
81956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov
82956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            @Override
83956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            public AccessibilityNodeProvider getAccessibilityNodeProvider(View host) {
84956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov                return (AccessibilityNodeProvider) bridge.getAccessibilityNodeProvider(host);
85956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            }
86956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov        };
87956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov    }
88956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov
89956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov    public static Object getAccessibilityNodeProvider(Object delegate,
90956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov            View host) {
91956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov        return ((AccessibilityDelegate) delegate).getAccessibilityNodeProvider(host);
92956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov    }
93956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov}
94