diff --git a/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java b/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java index b322dab2579..7e3b676a4bc 100644 --- a/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java +++ b/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java @@ -126,6 +126,7 @@ public abstract class DefaultAppPickerFragment extends InstrumentedPreferenceFra pref.setOnClickListener(this); screen.addPreference(pref); } + mayCheckOnlyRadioButton(); } @Override @@ -163,6 +164,18 @@ public abstract class DefaultAppPickerFragment extends InstrumentedPreferenceFra } } + @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 4f560c99ef2..6c44bd51da7 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 @@ public class DefaultAppPickerFragmentTest { 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;