From a9fd6ed8ed4f6757d148c12d2d9ec1cbd8dc54bf Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Mon, 19 Jun 2017 13:34:39 -0700 Subject: [PATCH] Keep candidates in radio button picker UI ordered We will use the order from candidate list. Change-Id: I3f5bfb9d603d6c926fddd4711e2899df10cb72ac Fix: 37542504 Test: make RunSettingsRoboTests --- .../widget/RadioButtonPickerFragment.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/com/android/settings/widget/RadioButtonPickerFragment.java b/src/com/android/settings/widget/RadioButtonPickerFragment.java index 24445395969..68547934c5c 100644 --- a/src/com/android/settings/widget/RadioButtonPickerFragment.java +++ b/src/com/android/settings/widget/RadioButtonPickerFragment.java @@ -118,7 +118,7 @@ public abstract class RadioButtonPickerFragment extends InstrumentedPreferenceFr String key, CandidateInfo info, String defaultKey, String systemDefaultKey) { } - @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) + @VisibleForTesting public void updateCandidates() { mCandidates.clear(); final List candidateList = getCandidates(); @@ -139,16 +139,18 @@ public abstract class RadioButtonPickerFragment extends InstrumentedPreferenceFr nonePref.setOnClickListener(this); screen.addPreference(nonePref); } - for (Map.Entry 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 @@ public abstract class RadioButtonPickerFragment extends InstrumentedPreferenceFr return pref; } - @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) + @VisibleForTesting public void updateCheckedState(String selectedKey) { final PreferenceScreen screen = getPreferenceScreen(); if (screen != null) { @@ -180,7 +182,7 @@ public abstract class RadioButtonPickerFragment extends InstrumentedPreferenceFr } } - @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) + @VisibleForTesting public void mayCheckOnlyRadioButton() { final PreferenceScreen screen = getPreferenceScreen(); // If there is only 1 thing on screen, select it.