From 071742d838f9b0c312af309c87eaf2c444aeeab8 Mon Sep 17 00:00:00 2001 From: Jim Miller Date: Fri, 6 Jan 2012 18:28:09 -0800 Subject: Fix 4560303: Add setting to lock later when power button pressed This adds a feature to delay locking the device when the power button is pressed. This fixes a use case where the user wants to turn off the display (e.g. to save power) but doesn't want to lock the device. Change-Id: I711a81c3e79f7accdc1d9cb217b7806a0b8fcf63 --- res/values/strings.xml | 2 ++ res/xml/security_settings_biometric_weak.xml | 4 ++++ res/xml/security_settings_password.xml | 4 ++++ res/xml/security_settings_pattern.xml | 4 ++++ res/xml/security_settings_pin.xml | 4 ++++ src/com/android/settings/SecuritySettings.java | 11 +++++++++++ 6 files changed, 29 insertions(+) diff --git a/res/values/strings.xml b/res/values/strings.xml index 9a2912207..90b1446fc 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -2226,6 +2226,8 @@ Make pattern visible Vibrate on touch + + Power button instantly locks Set unlock pattern diff --git a/res/xml/security_settings_biometric_weak.xml b/res/xml/security_settings_biometric_weak.xml index 7d832e44a..080fbc9a5 100644 --- a/res/xml/security_settings_biometric_weak.xml +++ b/res/xml/security_settings_biometric_weak.xml @@ -42,6 +42,10 @@ android:entryValues="@array/lock_after_timeout_values" android:persistent="false"/> + + diff --git a/res/xml/security_settings_password.xml b/res/xml/security_settings_password.xml index 9ddc18e8a..0e9c71d5a 100644 --- a/res/xml/security_settings_password.xml +++ b/res/xml/security_settings_password.xml @@ -34,6 +34,10 @@ android:entryValues="@array/lock_after_timeout_values" android:persistent="false"/> + + + + diff --git a/res/xml/security_settings_pin.xml b/res/xml/security_settings_pin.xml index 0c8ff974d..4562a9a91 100644 --- a/res/xml/security_settings_pin.xml +++ b/res/xml/security_settings_pin.xml @@ -34,6 +34,10 @@ android:entryValues="@array/lock_after_timeout_values" android:persistent="false"/> + + diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java index 7ca58152c..adf8c3776 100644 --- a/src/com/android/settings/SecuritySettings.java +++ b/src/com/android/settings/SecuritySettings.java @@ -66,6 +66,7 @@ public class SecuritySettings extends SettingsPreferenceFragment private static final String KEY_SHOW_PASSWORD = "show_password"; private static final String KEY_RESET_CREDENTIALS = "reset_credentials"; private static final String KEY_TOGGLE_INSTALL_APPLICATIONS = "toggle_install_applications"; + private static final String KEY_POWER_INSTANTLY_LOCKS = "power_button_instantly_locks"; DevicePolicyManager mDPM; @@ -82,6 +83,7 @@ public class SecuritySettings extends SettingsPreferenceFragment private CheckBoxPreference mToggleAppInstallation; private DialogInterface mWarnInstallApps; + private CheckBoxPreference mPowerButtonInstantlyLocks; @Override public void onCreate(Bundle savedInstanceState) { @@ -156,6 +158,10 @@ public class SecuritySettings extends SettingsPreferenceFragment // visible pattern mVisiblePattern = (CheckBoxPreference) root.findPreference(KEY_VISIBLE_PATTERN); + // lock instantly on power key press + mPowerButtonInstantlyLocks = (CheckBoxPreference) root.findPreference( + KEY_POWER_INSTANTLY_LOCKS); + // don't display visible pattern if biometric and backup is not pattern if (resid == R.xml.security_settings_biometric_weak && mLockPatternUtils.getKeyguardStoredPasswordQuality() != @@ -322,6 +328,9 @@ public class SecuritySettings extends SettingsPreferenceFragment if (mTactileFeedback != null) { mTactileFeedback.setChecked(lockPatternUtils.isTactileFeedbackEnabled()); } + if (mPowerButtonInstantlyLocks != null) { + mPowerButtonInstantlyLocks.setChecked(lockPatternUtils.getPowerButtonInstantlyLocks()); + } mShowPassword.setChecked(Settings.System.getInt(getContentResolver(), Settings.System.TEXT_SHOW_PASSWORD, 1) != 0); @@ -351,6 +360,8 @@ public class SecuritySettings extends SettingsPreferenceFragment lockPatternUtils.setVisiblePatternEnabled(isToggled(preference)); } else if (KEY_TACTILE_FEEDBACK_ENABLED.equals(key)) { lockPatternUtils.setTactileFeedbackEnabled(isToggled(preference)); + } else if (KEY_POWER_INSTANTLY_LOCKS.equals(key)) { + lockPatternUtils.setPowerButtonInstantlyLocks(isToggled(preference)); } else if (preference == mShowPassword) { Settings.System.putInt(getContentResolver(), Settings.System.TEXT_SHOW_PASSWORD, mShowPassword.isChecked() ? 1 : 0); -- cgit v1.2.3