Checke radio on default app screen if there's 1 option only
Change-Id: Ib091eb033ce541dc6a6d97ef45a15a5eb957e405
Fix: 34746591
Test: make RunSettingsRoboTests -j40
diff --git a/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java b/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
index b322dab..7e3b676 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
@@ -126,6 +126,7 @@
pref.setOnClickListener(this);
screen.addPreference(pref);
}
+ mayCheckOnlyRadioButton();
}
@Override
@@ -163,6 +164,18 @@
}
}
+ @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+ void mayCheckOnlyRadioButton() {
+ final PreferenceScreen screen = getPreferenceScreen();
+ // If there is only 1 thing on screen, select it.
+ if (screen != null && screen.getPreferenceCount() == 1) {
+ final Preference onlyPref = screen.getPreference(0);
+ if (onlyPref instanceof RadioButtonPreference) {
+ ((RadioButtonPreference) onlyPref).setChecked(true);
+ }
+ }
+ }
+
protected boolean shouldShowItemNone() {
return false;
}
diff --git a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragmentTest.java b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragmentTest.java
index 4f560c9..6c44bd5 100644
--- a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragmentTest.java
@@ -106,6 +106,18 @@
mFragment.onRadioButtonClicked(pref);
}
+ @Test
+ public void displaySingleOption_shouldSelectRadioButton() {
+ final RadioButtonPreference pref =
+ new RadioButtonPreference(RuntimeEnvironment.application);
+ when(mScreen.getPreferenceCount()).thenReturn(1);
+ when(mScreen.getPreference(0)).thenReturn(pref);
+
+ mFragment.mayCheckOnlyRadioButton();
+
+ assertThat(pref.isChecked()).isTrue();
+ }
+
public static class TestFragment extends DefaultAppPickerFragment {
boolean setDefaultAppKeyCalled;