Keep candidates in radio button picker UI ordered

We will use the order from candidate list.

Change-Id: I3f5bfb9d603d6c926fddd4711e2899df10cb72ac
Fix: 37542504
Test: make RunSettingsRoboTests
This commit is contained in:
Fan Zhang
2017-06-19 13:34:39 -07:00
parent 1a74eefb54
commit a9fd6ed8ed

View File

@@ -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<? extends CandidateInfo> candidateList = getCandidates();
@@ -139,16 +139,18 @@ public abstract class RadioButtonPickerFragment extends InstrumentedPreferenceFr
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 @@ 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.