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;