summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSvetoslav Ganov <svetoslavganov@google.com>2012-05-08 12:52:57 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-05-08 12:52:57 -0700
commit59f3f5853cd05103b5a83f5ddbe584a5270a9c6b (patch)
tree85f404479128d642454f0c82c8d5200611a71387
parent8a2fe26873f73a7a422cadf9e5ccfd7c68bbd9ca (diff)
parent8eeefefc8451c97745add2b4d508116aaffbcb22 (diff)
downloadframeworks_base-59f3f5853cd05103b5a83f5ddbe584a5270a9c6b.zip
frameworks_base-59f3f5853cd05103b5a83f5ddbe584a5270a9c6b.tar.gz
frameworks_base-59f3f5853cd05103b5a83f5ddbe584a5270a9c6b.tar.bz2
Merge "Add performAccessibilityAction to AccessibilityDelegate." into jb-dev
-rw-r--r--api/current.txt1
-rw-r--r--core/java/android/view/View.java39
2 files changed, 40 insertions, 0 deletions
diff --git a/api/current.txt b/api/current.txt
index 2e5a09e..bb4430b 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -24380,6 +24380,7 @@ package android.view {
method public void onInitializeAccessibilityNodeInfo(android.view.View, android.view.accessibility.AccessibilityNodeInfo);
method public void onPopulateAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
method public boolean onRequestSendAccessibilityEvent(android.view.ViewGroup, android.view.View, android.view.accessibility.AccessibilityEvent);
+ method public boolean performAccessibilityAction(android.view.View, int, android.os.Bundle);
method public void sendAccessibilityEvent(android.view.View, int);
method public void sendAccessibilityEventUnchecked(android.view.View, android.view.accessibility.AccessibilityEvent);
}
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 8053238..5032fe0 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -6511,12 +6511,31 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
/**
* Performs the specified accessibility action on the view. For
* possible accessibility actions look at {@link AccessibilityNodeInfo}.
+ * <p>
+ * If an {@link AccessibilityDelegate} has been specified via calling
+ * {@link #setAccessibilityDelegate(AccessibilityDelegate)} its
+ * {@link AccessibilityDelegate#performAccessibilityAction(View, int, Bundle)}
+ * is responsible for handling this call.
+ * </p>
*
* @param action The action to perform.
* @param arguments Optional action arguments.
* @return Whether the action was performed.
*/
public boolean performAccessibilityAction(int action, Bundle arguments) {
+ if (mAccessibilityDelegate != null) {
+ return mAccessibilityDelegate.performAccessibilityAction(this, action, arguments);
+ } else {
+ return performAccessibilityActionInternal(action, arguments);
+ }
+ }
+
+ /**
+ * @see #performAccessibilityAction(int, Bundle)
+ *
+ * Note: Called from the default {@link AccessibilityDelegate}.
+ */
+ boolean performAccessibilityActionInternal(int action, Bundle arguments) {
switch (action) {
case AccessibilityNodeInfo.ACTION_CLICK: {
if (isClickable()) {
@@ -17460,6 +17479,26 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
}
/**
+ * Performs the specified accessibility action on the view. For
+ * possible accessibility actions look at {@link AccessibilityNodeInfo}.
+ * <p>
+ * The default implementation behaves as
+ * {@link View#performAccessibilityAction(int, Bundle)
+ * View#performAccessibilityAction(int, Bundle)} for the case of
+ * no accessibility delegate been set.
+ * </p>
+ *
+ * @param action The action to perform.
+ * @return Whether the action was performed.
+ *
+ * @see View#performAccessibilityAction(int, Bundle)
+ * View#performAccessibilityAction(int, Bundle)
+ */
+ public boolean performAccessibilityAction(View host, int action, Bundle args) {
+ return host.performAccessibilityActionInternal(action, args);
+ }
+
+ /**
* Sends an accessibility event. This method behaves exactly as
* {@link #sendAccessibilityEvent(View, int)} but takes as an argument an
* empty {@link AccessibilityEvent} and does not perform a check whether