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