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