Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6c546f73 authored by Sally Yuen's avatar Sally Yuen Committed by Automerger Merge Worker
Browse files

Merge "Check for text when adding CollectionInfo and CollectionItemInfo" into...

Merge "Check for text when adding CollectionInfo and CollectionItemInfo" into rvc-dev am: 38752980 am: 9f924154

Change-Id: I6bd22c8ab440c6b637b525febb3f6199a4528ac4
parents 7bc7a10f 9f924154
Loading
Loading
Loading
Loading
+12 −7
Original line number Diff line number Diff line
@@ -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