diff options
| author | Svetoslav Ganov <svetoslavganov@google.com> | 2012-05-16 17:33:19 -0700 |
|---|---|---|
| committer | Svetoslav Ganov <svetoslavganov@google.com> | 2012-05-16 17:51:52 -0700 |
| commit | fb1e80a247221ee7e8f5c5deba04812021d9d07e (patch) | |
| tree | f6afc41c876037c65680fcd4ee997e3d34ceb335 /core/java/android/widget/ScrollView.java | |
| parent | 6387c8a9cb52e6b7bb1a0fb40ee3b66c00ad6697 (diff) | |
Exposing some accessiblity actions only for enabled views.
1. Some accessibility actions should not be performed on disabled
views. For example, scrolling should not be permitted while
accessibility focus should be. Made a quick pass over the
actions we expose now.
Change-Id: I36626dfbc0d2f480309a910f58f1de64e9e05675
Diffstat (limited to 'core/java/android/widget/ScrollView.java')
| -rw-r--r-- | core/java/android/widget/ScrollView.java | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/core/java/android/widget/ScrollView.java b/core/java/android/widget/ScrollView.java index a499743bcb8d..2a20c56c943d 100644 --- a/core/java/android/widget/ScrollView.java +++ b/core/java/android/widget/ScrollView.java @@ -745,6 +745,9 @@ public class ScrollView extends FrameLayout { if (super.performAccessibilityAction(action, arguments)) { return true; } + if (!isEnabled()) { + return false; + } switch (action) { case AccessibilityNodeInfo.ACTION_SCROLL_FORWARD: { final int viewportHeight = getHeight() - mPaddingBottom - mPaddingTop; @@ -770,14 +773,16 @@ public class ScrollView extends FrameLayout { public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); info.setClassName(ScrollView.class.getName()); - final int scrollRange = getScrollRange(); - if (scrollRange > 0) { - info.setScrollable(true); - if (mScrollY > 0) { - info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD); - } - if (mScrollY < scrollRange) { - info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD); + if (isEnabled()) { + final int scrollRange = getScrollRange(); + if (scrollRange > 0) { + info.setScrollable(true); + if (mScrollY > 0) { + info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD); + } + if (mScrollY < scrollRange) { + info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD); + } } } } |
