summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSvetoslav Ganov <svetoslavganov@google.com>2012-09-06 19:57:00 -0700
committerSvetoslav Ganov <svetoslavganov@google.com>2012-09-06 19:57:05 -0700
commita90927629881f0faf54c1003ebd38c27a730045e (patch)
tree7520daf6c6043a890a13f8e1eb9c5488eb0b544c
parentf92b57ca8beb231e06a792db88ef3a4605901a7d (diff)
downloadframeworks_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.java28
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,