/* * Copyright (C) 2012 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.inputmethod.compat; import android.view.View; import android.view.ViewParent; import android.view.accessibility.AccessibilityEvent; import java.lang.reflect.Method; public class ViewParentCompatUtils { private static final Method METHOD_requestSendAccessibilityEvent = CompatUtils.getMethod( ViewParent.class, "requestSendAccessibilityEvent", View.class, AccessibilityEvent.class); /** * Called by a child to request from its parent to send an {@link AccessibilityEvent}. * The child has already populated a record for itself in the event and is delegating * to its parent to send the event. The parent can optionally add a record for itself. *
* Note: An accessibility event is fired by an individual view which populates the * event with a record for its state and requests from its parent to perform * the sending. The parent can optionally add a record for itself before * dispatching the request to its parent. A parent can also choose not to * respect the request for sending the event. The accessibility event is sent * by the topmost view in the view tree.
* * @param child The child which requests sending the event. * @param event The event to be sent. * @return True if the event was sent. */ public static boolean requestSendAccessibilityEvent( ViewParent receiver, View child, AccessibilityEvent event) { return (Boolean) CompatUtils.invoke( receiver, false, METHOD_requestSendAccessibilityEvent, child, event); } }