Merge "Add accessibility scroll actions to TabWidget" into jb-mr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
83cdb021eb
@@ -24,6 +24,7 @@ import android.graphics.Canvas;
|
|||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnFocusChangeListener;
|
import android.view.View.OnFocusChangeListener;
|
||||||
@@ -434,6 +435,42 @@ public class TabWidget extends LinearLayout implements OnFocusChangeListener {
|
|||||||
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
|
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
|
||||||
super.onInitializeAccessibilityNodeInfo(info);
|
super.onInitializeAccessibilityNodeInfo(info);
|
||||||
info.setClassName(TabWidget.class.getName());
|
info.setClassName(TabWidget.class.getName());
|
||||||
|
|
||||||
|
final int tabCount = getTabCount();
|
||||||
|
|
||||||
|
if (tabCount > 1) {
|
||||||
|
if (mSelectedTab > 0) {
|
||||||
|
info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD);
|
||||||
|
info.setScrollable(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mSelectedTab < (tabCount - 1)) {
|
||||||
|
info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD);
|
||||||
|
info.setScrollable(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean performAccessibilityAction(int action, Bundle arguments) {
|
||||||
|
final int tabCount = getTabCount();
|
||||||
|
|
||||||
|
switch (action) {
|
||||||
|
case AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD:
|
||||||
|
if ((tabCount > 1) && (mSelectedTab > 0)) {
|
||||||
|
focusCurrentTab(mSelectedTab - 1);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case AccessibilityNodeInfo.ACTION_SCROLL_FORWARD:
|
||||||
|
if ((tabCount > 1) && (mSelectedTab < (tabCount - 1))) {
|
||||||
|
focusCurrentTab(mSelectedTab + 1);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return super.performAccessibilityAction(action, arguments);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user