Skip to content

Commit 83cdb02

Browse files
sganovAndroid (Google) Code Review
authored andcommitted
Merge "Add accessibility scroll actions to TabWidget" into jb-mr1-dev
2 parents 303309c + 6053088 commit 83cdb02

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

core/java/android/widget/TabWidget.java

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import android.graphics.Rect;
2525
import android.graphics.drawable.Drawable;
2626
import android.os.Build;
27+
import android.os.Bundle;
2728
import android.util.AttributeSet;
2829
import android.view.View;
2930
import android.view.View.OnFocusChangeListener;
@@ -434,6 +435,42 @@ public void sendAccessibilityEventUnchecked(AccessibilityEvent event) {
434435
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
435436
super.onInitializeAccessibilityNodeInfo(info);
436437
info.setClassName(TabWidget.class.getName());
438+
439+
final int tabCount = getTabCount();
440+
441+
if (tabCount > 1) {
442+
if (mSelectedTab > 0) {
443+
info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD);
444+
info.setScrollable(true);
445+
}
446+
447+
if (mSelectedTab < (tabCount - 1)) {
448+
info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD);
449+
info.setScrollable(true);
450+
}
451+
}
452+
}
453+
454+
@Override
455+
public boolean performAccessibilityAction(int action, Bundle arguments) {
456+
final int tabCount = getTabCount();
457+
458+
switch (action) {
459+
case AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD:
460+
if ((tabCount > 1) && (mSelectedTab > 0)) {
461+
focusCurrentTab(mSelectedTab - 1);
462+
return true;
463+
}
464+
return false;
465+
case AccessibilityNodeInfo.ACTION_SCROLL_FORWARD:
466+
if ((tabCount > 1) && (mSelectedTab < (tabCount - 1))) {
467+
focusCurrentTab(mSelectedTab + 1);
468+
return true;
469+
}
470+
return false;
471+
}
472+
473+
return super.performAccessibilityAction(action, arguments);
437474
}
438475

439476
/**

0 commit comments

Comments
 (0)