summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorSally Yuen <sallyyuen@google.com>2020-04-07 17:06:04 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-04-07 17:06:04 +0000
commit387529809d540b1035d4994e46a10b4a50503dc3 (patch)
treeabea104ea81e3d08262a8288bac6e2f998595b29 /core/java/android
parent5d3fc109ec14a45b2ad8e00656e4cda38b077819 (diff)
parent5a5c74f350f98c9083572b7006f85973a86cf62c (diff)
Merge "Check for text when adding CollectionInfo and CollectionItemInfo" into rvc-dev
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/widget/RadioGroup.java19
1 files changed, 12 insertions, 7 deletions
diff --git a/core/java/android/widget/RadioGroup.java b/core/java/android/widget/RadioGroup.java
index 71ccb595278b..849488d42bcf 100644
--- a/core/java/android/widget/RadioGroup.java
+++ b/core/java/android/widget/RadioGroup.java
@@ -22,6 +22,7 @@ import android.annotation.Nullable;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
import android.content.res.TypedArray;
+import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
@@ -484,21 +485,21 @@ public class RadioGroup extends LinearLayout {
super.onInitializeAccessibilityNodeInfo(info);
if (this.getOrientation() == HORIZONTAL) {
info.setCollectionInfo(AccessibilityNodeInfo.CollectionInfo.obtain(1,
- getVisibleChildCount(), false,
+ getVisibleChildWithTextCount(), false,
AccessibilityNodeInfo.CollectionInfo.SELECTION_MODE_SINGLE));
} else {
info.setCollectionInfo(
- AccessibilityNodeInfo.CollectionInfo.obtain(getVisibleChildCount(),
+ AccessibilityNodeInfo.CollectionInfo.obtain(getVisibleChildWithTextCount(),
1, false,
AccessibilityNodeInfo.CollectionInfo.SELECTION_MODE_SINGLE));
}
}
- private int getVisibleChildCount() {
+ private int getVisibleChildWithTextCount() {
int count = 0;
for (int i = 0; i < getChildCount(); i++) {
if (this.getChildAt(i) instanceof RadioButton) {
- if (((RadioButton) this.getChildAt(i)).getVisibility() == VISIBLE) {
+ if (isVisibleWithText((RadioButton) this.getChildAt(i))) {
count++;
}
}
@@ -513,15 +514,19 @@ public class RadioGroup extends LinearLayout {
int index = 0;
for (int i = 0; i < getChildCount(); i++) {
if (this.getChildAt(i) instanceof RadioButton) {
- RadioButton radioButton = (RadioButton) this.getChildAt(i);
- if (radioButton == child) {
+ RadioButton button = (RadioButton) this.getChildAt(i);
+ if (button == child) {
return index;
}
- if (radioButton.getVisibility() == VISIBLE) {
+ if (isVisibleWithText(button)) {
index++;
}
}
}
return -1;
}
+
+ private boolean isVisibleWithText(RadioButton button) {
+ return button.getVisibility() == VISIBLE && !TextUtils.isEmpty(button.getText());
+ }
} \ No newline at end of file