Select max timeout, if it's in the timeout list

Bug: 10192592
Change-Id: I21ec208abf0c8659233cdb5219d9b226528aa1d4
This commit is contained in:
Amith Yamasani
2013-08-16 16:35:54 -07:00
parent 53083ab2bb
commit 78b8265b17

View File

@@ -109,7 +109,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
com.android.internal.R.bool.config_dreamsSupported) == false) {
getPreferenceScreen().removePreference(mScreenSaverPreference);
}
mScreenTimeoutPreference = (ListPreference) findPreference(KEY_SCREEN_TIMEOUT);
final long currentTimeout = Settings.System.getLong(resolver, SCREEN_OFF_TIMEOUT,
FALLBACK_SCREEN_TIMEOUT_VALUE);
@@ -193,13 +193,18 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
}
}
if (revisedEntries.size() != entries.length || revisedValues.size() != values.length) {
final int userPreference = Integer.parseInt(screenTimeoutPreference.getValue());
screenTimeoutPreference.setEntries(
revisedEntries.toArray(new CharSequence[revisedEntries.size()]));
screenTimeoutPreference.setEntryValues(
revisedValues.toArray(new CharSequence[revisedValues.size()]));
final int userPreference = Integer.parseInt(screenTimeoutPreference.getValue());
if (userPreference <= maxTimeout) {
screenTimeoutPreference.setValue(String.valueOf(userPreference));
} else if (revisedValues.size() > 0
&& Long.parseLong(revisedValues.get(revisedValues.size() - 1).toString())
== maxTimeout) {
// If the last one happens to be the same as the max timeout, select that
screenTimeoutPreference.setValue(String.valueOf(maxTimeout));
} else {
// There will be no highlighted selection since nothing in the list matches
// maxTimeout. The user can still select anything less than maxTimeout.