diff options
author | Svetoslav Ganov <svetoslavganov@google.com> | 2012-09-06 19:57:00 -0700 |
---|---|---|
committer | Svetoslav Ganov <svetoslavganov@google.com> | 2012-09-06 19:57:05 -0700 |
commit | a90927629881f0faf54c1003ebd38c27a730045e (patch) | |
tree | 7520daf6c6043a890a13f8e1eb9c5488eb0b544c | |
parent | f92b57ca8beb231e06a792db88ef3a4605901a7d (diff) | |
download | frameworks_base-a90927629881f0faf54c1003ebd38c27a730045e.zip frameworks_base-a90927629881f0faf54c1003ebd38c27a730045e.tar.gz frameworks_base-a90927629881f0faf54c1003ebd38c27a730045e.tar.bz2 |
Adding accessibility check in the node provider of NumberPicker.
1. The node provide in number picker was sending accessibility events
without checking whether accessibility is enabled leading to a
crash if accessibility is disable when the event is sent.
bug:7095330
Change-Id: I2e14b757003b4db58922cf6e20ea8e119770e567
-rw-r--r-- | core/java/android/widget/NumberPicker.java | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/core/java/android/widget/NumberPicker.java b/core/java/android/widget/NumberPicker.java index eabcb80..dbc777e 100644 --- a/core/java/android/widget/NumberPicker.java +++ b/core/java/android/widget/NumberPicker.java @@ -2305,22 +2305,26 @@ public class NumberPicker extends LinearLayout { } private void sendAccessibilityEventForVirtualText(int eventType) { - AccessibilityEvent event = AccessibilityEvent.obtain(eventType); - mInputText.onInitializeAccessibilityEvent(event); - mInputText.onPopulateAccessibilityEvent(event); - event.setSource(NumberPicker.this, VIRTUAL_VIEW_ID_INPUT); - requestSendAccessibilityEvent(NumberPicker.this, event); + if (AccessibilityManager.getInstance(mContext).isEnabled()) { + AccessibilityEvent event = AccessibilityEvent.obtain(eventType); + mInputText.onInitializeAccessibilityEvent(event); + mInputText.onPopulateAccessibilityEvent(event); + event.setSource(NumberPicker.this, VIRTUAL_VIEW_ID_INPUT); + requestSendAccessibilityEvent(NumberPicker.this, event); + } } private void sendAccessibilityEventForVirtualButton(int virtualViewId, int eventType, String text) { - AccessibilityEvent event = AccessibilityEvent.obtain(eventType); - event.setClassName(Button.class.getName()); - event.setPackageName(mContext.getPackageName()); - event.getText().add(text); - event.setEnabled(NumberPicker.this.isEnabled()); - event.setSource(NumberPicker.this, virtualViewId); - requestSendAccessibilityEvent(NumberPicker.this, event); + if (AccessibilityManager.getInstance(mContext).isEnabled()) { + AccessibilityEvent event = AccessibilityEvent.obtain(eventType); + event.setClassName(Button.class.getName()); + event.setPackageName(mContext.getPackageName()); + event.getText().add(text); + event.setEnabled(NumberPicker.this.isEnabled()); + event.setSource(NumberPicker.this, virtualViewId); + requestSendAccessibilityEvent(NumberPicker.this, event); + } } private void findAccessibilityNodeInfosByTextInChild(String searchedLowerCase, |