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; 189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport android.view.View; 209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport android.view.View.AccessibilityDelegate; 219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport android.view.ViewGroup; 229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport android.view.accessibility.AccessibilityEvent; 239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport android.view.accessibility.AccessibilityNodeInfo; 249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov/** 269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * ICS specific AccessibilityDelegate API implementation. 279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovclass AccessibilityDelegateCompatIcs { 299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public interface AccessibilityDelegateBridge { 319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean dispatchPopulateAccessibilityEvent(View host, AccessibilityEvent event); 329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event); 339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void onInitializeAccessibilityNodeInfo(View host, Object info); 349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void onPopulateAccessibilityEvent(View host, AccessibilityEvent event); 359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean onRequestSendAccessibilityEvent(ViewGroup host, View child, 369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityEvent event); 379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void sendAccessibilityEvent(View host, int eventType); 389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void sendAccessibilityEventUnchecked(View host, AccessibilityEvent event); 399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static Object newAccessibilityDelegateDefaultImpl() { 429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return new AccessibilityDelegate(); 439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static Object newAccessibilityDelegateBridge(final AccessibilityDelegateBridge bridge) { 469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return new AccessibilityDelegate() { 479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean dispatchPopulateAccessibilityEvent(View host, AccessibilityEvent event) { 499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return bridge.dispatchPopulateAccessibilityEvent(host, event); 509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) { 549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov bridge.onInitializeAccessibilityEvent(host, event); 559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) { 599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov bridge.onInitializeAccessibilityNodeInfo(host, info); 609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void onPopulateAccessibilityEvent(View host, AccessibilityEvent event) { 649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov bridge.onPopulateAccessibilityEvent(host, event); 659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean onRequestSendAccessibilityEvent(ViewGroup host, View child, 699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityEvent event) { 709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return bridge.onRequestSendAccessibilityEvent(host, child, event); 719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void sendAccessibilityEvent(View host, int eventType) { 759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov bridge.sendAccessibilityEvent(host, eventType); 769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void sendAccessibilityEventUnchecked(View host, AccessibilityEvent event) { 809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov bridge.sendAccessibilityEventUnchecked(host, event); 819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov }; 839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static boolean dispatchPopulateAccessibilityEvent(Object delegate, View host, 869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityEvent event) { 879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return ((AccessibilityDelegate) delegate).dispatchPopulateAccessibilityEvent(host, event); 889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static void onInitializeAccessibilityEvent(Object delegate, View host, 919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityEvent event) { 929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov ((AccessibilityDelegate) delegate).onInitializeAccessibilityEvent(host, event); 939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static void onInitializeAccessibilityNodeInfo(Object delegate, View host, Object info) { 969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov ((AccessibilityDelegate) delegate).onInitializeAccessibilityNodeInfo(host, 979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov (AccessibilityNodeInfo) info); 989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 1009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static void onPopulateAccessibilityEvent(Object delegate, View host, 1019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityEvent event) { 1029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov ((AccessibilityDelegate) delegate).onPopulateAccessibilityEvent(host, event); 1039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 1059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static boolean onRequestSendAccessibilityEvent(Object delegate, ViewGroup host, 1069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov View child, AccessibilityEvent event) { 1079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return ((AccessibilityDelegate) delegate).onRequestSendAccessibilityEvent(host, child, 1089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov event); 1099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 1119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static void sendAccessibilityEvent(Object delegate, View host, int eventType) { 1129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov ((AccessibilityDelegate) delegate).sendAccessibilityEvent(host, eventType); 1139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 1159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static void sendAccessibilityEventUnchecked(Object delegate, View host, 1169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityEvent event) { 1179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov ((AccessibilityDelegate) delegate).sendAccessibilityEventUnchecked(host, event); 1189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov} 120