diff options
2 files changed, 25 insertions, 2 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/core/AbstractPreferenceController.java b/packages/SettingsLib/src/com/android/settingslib/core/AbstractPreferenceController.java index 566e03756c4c..660521ea2fc4 100644 --- a/packages/SettingsLib/src/com/android/settingslib/core/AbstractPreferenceController.java +++ b/packages/SettingsLib/src/com/android/settingslib/core/AbstractPreferenceController.java @@ -37,7 +37,16 @@ public abstract class AbstractPreferenceController { * Updates the current status of preference (summary, switch state, etc) */ public void updateState(Preference preference) { - + if (preference == null) { + return; + } + final CharSequence summary = getSummary(); + if (summary == null) { + // Default getSummary returns null. If subclass didn't override this, there is nothing + // we need to do. + return; + } + preference.setSummary(summary); } /** diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/AbstractPreferenceControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/AbstractPreferenceControllerTest.java index 8767923b2b39..393fd029e6da 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/AbstractPreferenceControllerTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/AbstractPreferenceControllerTest.java @@ -82,8 +82,17 @@ public class AbstractPreferenceControllerTest { assertThat(mPreference.isVisible()).isFalse(); } - private class TestPrefController extends AbstractPreferenceController { + @Test + public void updateState_hasSummary_shouldSetSummary() { + mTestPrefController.updateState(mPreference); + + assertThat(mPreference.getSummary()).isEqualTo(TestPrefController.TEST_SUMMARY); + } + + private static class TestPrefController extends AbstractPreferenceController { private static final String KEY_PREF = "test_pref"; + private static final CharSequence TEST_SUMMARY = "Test"; + public boolean isAvailable; public TestPrefController(Context context) { @@ -104,6 +113,11 @@ public class AbstractPreferenceControllerTest { public String getPreferenceKey() { return KEY_PREF; } + + @Override + public CharSequence getSummary() { + return TEST_SUMMARY; + } } } |