Change Display summary to sleep timeout description.
Bug: 29579542
Fixes: 29579542
Change-Id: I4e122bd6972fde933229768cba86302eb4d3f7c6
Test: Added Robo test, manually tested
diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java
index 67a4b15..33ce5ad 100644
--- a/src/com/android/settings/DisplaySettings.java
+++ b/src/com/android/settings/DisplaySettings.java
@@ -289,31 +289,36 @@
private void updateTimeoutPreferenceDescription(long currentTimeout) {
TimeoutListPreference preference = mScreenTimeoutPreference;
+ final CharSequence[] entries = preference.getEntries();
+ final CharSequence[] values = preference.getEntryValues();
String summary;
if (preference.isDisabledByAdmin()) {
summary = getString(R.string.disabled_by_policy_title);
- } else if (currentTimeout < 0) {
- // Unsupported value
- summary = "";
} else {
- final CharSequence[] entries = preference.getEntries();
- final CharSequence[] values = preference.getEntryValues();
- if (entries == null || entries.length == 0) {
- summary = "";
- } else {
- int best = 0;
- for (int i = 0; i < values.length; i++) {
- long timeout = Long.parseLong(values[i].toString());
- if (currentTimeout >= timeout) {
- best = i;
- }
- }
- summary = getString(R.string.screen_timeout_summary, entries[best]);
- }
+ CharSequence timeoutDescription = getTimeoutDescription(
+ currentTimeout, entries, values);
+ summary = timeoutDescription == null ? ""
+ : getString(R.string.screen_timeout_summary, timeoutDescription);
}
preference.setSummary(summary);
}
+ private static CharSequence getTimeoutDescription(
+ long currentTimeout, CharSequence[] entries, CharSequence[] values) {
+ if (currentTimeout < 0 || entries == null || values == null
+ || values.length != entries.length) {
+ return null;
+ }
+
+ for (int i = 0; i < values.length; i++) {
+ long timeout = Long.parseLong(values[i].toString());
+ if (currentTimeout == timeout) {
+ return entries[i];
+ }
+ }
+ return null;
+ }
+
@Override
public void onResume() {
super.onResume();
@@ -472,11 +477,17 @@
}
private void updateSummary() {
- boolean auto = Settings.System.getInt(mContext.getContentResolver(),
- SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_AUTOMATIC)
- == SCREEN_BRIGHTNESS_MODE_AUTOMATIC;
- mLoader.setSummary(this, mContext.getString(auto ? R.string.display_summary_on
- : R.string.display_summary_off));
+ final long currentTimeout = Settings.System.getLong(mContext.getContentResolver(),
+ SCREEN_OFF_TIMEOUT, FALLBACK_SCREEN_TIMEOUT_VALUE);
+ final CharSequence[] entries =
+ mContext.getResources().getTextArray(R.array.screen_timeout_entries);
+ final CharSequence[] values =
+ mContext.getResources().getTextArray(R.array.screen_timeout_values);
+ final CharSequence timeoutDescription = getTimeoutDescription(
+ currentTimeout, entries, values);
+ final String summary = timeoutDescription == null ? ""
+ : mContext.getString(R.string.display_summary, timeoutDescription);
+ mLoader.setSummary(this, summary);
}
}