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