diff options
author | Alan Viverette <alanv@google.com> | 2015-01-07 16:05:02 -0800 |
---|---|---|
committer | Alan Viverette <alanv@google.com> | 2015-01-07 16:05:02 -0800 |
commit | a54956a0bc611b1e9b3914edc7a604b59688f6b7 (patch) | |
tree | 34f8b45684a39064b717170990243b36a2ea35f9 /core/java/android/widget/Switch.java | |
parent | 235312d64b704315d37e99c133ffa817c47dfc14 (diff) | |
download | frameworks_base-a54956a0bc611b1e9b3914edc7a604b59688f6b7.zip frameworks_base-a54956a0bc611b1e9b3914edc7a604b59688f6b7.tar.gz frameworks_base-a54956a0bc611b1e9b3914edc7a604b59688f6b7.tar.bz2 |
Fix accessibility delegation
Ensures that delegate code is run last. Previously, calling the super
method from an accessibility delegate set on a widget would only run
code in the widget's parent. Next, the delegate code would run. Finally,
the widget's code would run. As a result, the widget code would override
any data supplied by the delegate.
By moving all overridden code to internal methods, we ensure that the
call chain for super includes the widget's parent code followed by the
widget's code. The delegate code will always run last.
BUG: 17641433
Change-Id: Ib9d403156c1fc4fb04f65f3c126d1277a44b3740
Diffstat (limited to 'core/java/android/widget/Switch.java')
-rw-r--r-- | core/java/android/widget/Switch.java | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/core/java/android/widget/Switch.java b/core/java/android/widget/Switch.java index 7a22224..13d6b42 100644 --- a/core/java/android/widget/Switch.java +++ b/core/java/android/widget/Switch.java @@ -665,9 +665,10 @@ public class Switch extends CompoundButton { } } + /** @hide */ @Override - public void onPopulateAccessibilityEvent(AccessibilityEvent event) { - super.onPopulateAccessibilityEvent(event); + public void onPopulateAccessibilityEventInternal(AccessibilityEvent event) { + super.onPopulateAccessibilityEventInternal(event); final CharSequence text = isChecked() ? mTextOn : mTextOff; if (text != null) { @@ -1180,15 +1181,17 @@ public class Switch extends CompoundButton { } } + /** @hide */ @Override - public void onInitializeAccessibilityEvent(AccessibilityEvent event) { - super.onInitializeAccessibilityEvent(event); + public void onInitializeAccessibilityEventInternal(AccessibilityEvent event) { + super.onInitializeAccessibilityEventInternal(event); event.setClassName(Switch.class.getName()); } + /** @hide */ @Override - public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { - super.onInitializeAccessibilityNodeInfo(info); + public void onInitializeAccessibilityNodeInfoInternal(AccessibilityNodeInfo info) { + super.onInitializeAccessibilityNodeInfoInternal(info); info.setClassName(Switch.class.getName()); CharSequence switchText = isChecked() ? mTextOn : mTextOff; if (!TextUtils.isEmpty(switchText)) { |