diff --git a/app/src/main/java/se/ajpanton/statusbartweak/shell/ui/LayoutFragment.java b/app/src/main/java/se/ajpanton/statusbartweak/shell/ui/LayoutFragment.java index 74e8b03..3c1dd7f 100644 --- a/app/src/main/java/se/ajpanton/statusbartweak/shell/ui/LayoutFragment.java +++ b/app/src/main/java/se/ajpanton/statusbartweak/shell/ui/LayoutFragment.java @@ -17,6 +17,7 @@ import android.view.inputmethod.EditorInfo; import android.widget.CheckBox; import android.widget.EditText; import android.widget.LinearLayout; +import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.TextView; @@ -859,15 +860,30 @@ public final class LayoutFragment extends Fragment { } private int resolveLeftSideId(RadioGroup group) { - int id = group.getChildCount() > 0 ? group.getChildAt(0).getId() : View.NO_ID; + int id = sideButtonId(group, 0); return id != View.NO_ID ? id : 0; } private int resolveRightSideId(RadioGroup group) { - int id = group.getChildCount() > 1 ? group.getChildAt(1).getId() : View.NO_ID; + int id = sideButtonId(group, 1); return id != View.NO_ID ? id : resolveLeftSideId(group); } + private int sideButtonId(RadioGroup group, int radioIndex) { + int seen = 0; + for (int i = 0; i < group.getChildCount(); i++) { + View child = group.getChildAt(i); + if (!(child instanceof RadioButton)) { + continue; + } + if (seen == radioIndex) { + return child.getId(); + } + seen++; + } + return View.NO_ID; + } + private void setNumericText(EditText input, int value) { if (input == null) { return; diff --git a/app/src/main/java/se/ajpanton/statusbartweak/shell/ui/LockedSceneLayoutFragment.java b/app/src/main/java/se/ajpanton/statusbartweak/shell/ui/LockedSceneLayoutFragment.java index 956e450..59425fb 100644 --- a/app/src/main/java/se/ajpanton/statusbartweak/shell/ui/LockedSceneLayoutFragment.java +++ b/app/src/main/java/se/ajpanton/statusbartweak/shell/ui/LockedSceneLayoutFragment.java @@ -10,6 +10,7 @@ import android.view.ViewGroup; import android.widget.CheckBox; import android.widget.EditText; import android.widget.LinearLayout; +import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.ScrollView; import android.widget.TextView; @@ -775,7 +776,7 @@ abstract class LockedSceneLayoutFragment extends Fragment { private int firstSideId(RadioGroup group, int rightId) { for (int i = 0; i < group.getChildCount(); i++) { View child = group.getChildAt(i); - if (child.getId() != rightId) { + if (child instanceof RadioButton && child.getId() != rightId) { return child.getId(); } }