Keep candidates in radio button picker UI ordered

We will use the order from candidate list.

Change-Id: I3f5bfb9d603d6c926fddd4711e2899df10cb72ac
Fix: 37542504
Test: make RunSettingsRoboTests
diff --git a/src/com/android/settings/widget/RadioButtonPickerFragment.java b/src/com/android/settings/widget/RadioButtonPickerFragment.java
index 2444539..6854793 100644
--- a/src/com/android/settings/widget/RadioButtonPickerFragment.java
+++ b/src/com/android/settings/widget/RadioButtonPickerFragment.java
@@ -118,7 +118,7 @@
             String key, CandidateInfo info, String defaultKey, String systemDefaultKey) {
     }
 
-    @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+    @VisibleForTesting
     public void updateCandidates() {
         mCandidates.clear();
         final List<? extends CandidateInfo> candidateList = getCandidates();
@@ -139,16 +139,18 @@
             nonePref.setOnClickListener(this);
             screen.addPreference(nonePref);
         }
-        for (Map.Entry<String, CandidateInfo> app : mCandidates.entrySet()) {
-            RadioButtonPreference pref = new RadioButtonPreference(getPrefContext());
-            bindPreference(pref, app.getKey(), app.getValue(), defaultKey);
-            bindPreferenceExtra(pref, app.getKey(), app.getValue(), defaultKey, systemDefaultKey);
-            screen.addPreference(pref);
+        if (candidateList != null) {
+            for (CandidateInfo info : candidateList) {
+                RadioButtonPreference pref = new RadioButtonPreference(getPrefContext());
+                bindPreference(pref, info.getKey(), info, defaultKey);
+                bindPreferenceExtra(pref, info.getKey(), info, defaultKey, systemDefaultKey);
+                screen.addPreference(pref);
+            }
         }
         mayCheckOnlyRadioButton();
     }
 
-    @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+    @VisibleForTesting
     public RadioButtonPreference bindPreference(RadioButtonPreference pref,
             String key, CandidateInfo info, String defaultKey) {
         pref.setTitle(info.loadLabel());
@@ -162,7 +164,7 @@
         return pref;
     }
 
-    @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+    @VisibleForTesting
     public void updateCheckedState(String selectedKey) {
         final PreferenceScreen screen = getPreferenceScreen();
         if (screen != null) {
@@ -180,7 +182,7 @@
         }
     }
 
-    @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+    @VisibleForTesting
     public void mayCheckOnlyRadioButton() {
         final PreferenceScreen screen = getPreferenceScreen();
         // If there is only 1 thing on screen, select it.