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
This commit is contained in:
Jim Miller
2012-01-06 18:28:09 -08:00
parent a98c353f8b
commit 071742d838
6 changed files with 29 additions and 0 deletions

View File

@@ -2226,6 +2226,8 @@
<string name="lockpattern_settings_enable_visible_pattern_title">Make pattern visible</string> <string name="lockpattern_settings_enable_visible_pattern_title">Make pattern visible</string>
<!-- Security & location settings screen, setting check box title. This setting controls whether tactile feedback will be produced when the user draws the pattern.--> <!-- Security & location settings screen, setting check box title. This setting controls whether tactile feedback will be produced when the user draws the pattern.-->
<string name="lockpattern_settings_enable_tactile_feedback_title">Vibrate on touch</string> <string name="lockpattern_settings_enable_tactile_feedback_title">Vibrate on touch</string>
<!-- Security & location settings screen, setting check box title. This controls whether the device locks immediately when the power button is pressed. [CHAR LIMIT=28]-->
<string name="lockpattern_settings_enable_power_button_instantly_locks">Power button instantly locks</string>
<!-- Security & location settings screen, setting option name when user has never set an unlock pattern --> <!-- Security & location settings screen, setting option name when user has never set an unlock pattern -->
<string name="lockpattern_settings_choose_lock_pattern">Set unlock pattern</string> <string name="lockpattern_settings_choose_lock_pattern">Set unlock pattern</string>
<!-- Security & location settings screen, setting option name when user has previously set an unlock pattern and wants to change to a new pattern --> <!-- Security & location settings screen, setting option name when user has previously set an unlock pattern and wants to change to a new pattern -->

View File

@@ -42,6 +42,10 @@
android:entryValues="@array/lock_after_timeout_values" android:entryValues="@array/lock_after_timeout_values"
android:persistent="false"/> android:persistent="false"/>
<CheckBoxPreference
android:key="power_button_instantly_locks"
android:title="@string/lockpattern_settings_enable_power_button_instantly_locks"/>
<CheckBoxPreference <CheckBoxPreference
android:key="unlock_tactile_feedback" android:key="unlock_tactile_feedback"
android:title="@string/lockpattern_settings_enable_tactile_feedback_title"/> android:title="@string/lockpattern_settings_enable_tactile_feedback_title"/>

View File

@@ -34,6 +34,10 @@
android:entryValues="@array/lock_after_timeout_values" android:entryValues="@array/lock_after_timeout_values"
android:persistent="false"/> android:persistent="false"/>
<CheckBoxPreference
android:key="power_button_instantly_locks"
android:title="@string/lockpattern_settings_enable_power_button_instantly_locks"/>
<PreferenceScreen <PreferenceScreen
android:fragment="com.android.settings.OwnerInfoSettings" android:fragment="com.android.settings.OwnerInfoSettings"
android:key="owner_info_settings" android:key="owner_info_settings"

View File

@@ -38,6 +38,10 @@
android:entryValues="@array/lock_after_timeout_values" android:entryValues="@array/lock_after_timeout_values"
android:persistent="false"/> android:persistent="false"/>
<CheckBoxPreference
android:key="power_button_instantly_locks"
android:title="@string/lockpattern_settings_enable_power_button_instantly_locks"/>
<CheckBoxPreference <CheckBoxPreference
android:key="unlock_tactile_feedback" android:key="unlock_tactile_feedback"
android:title="@string/lockpattern_settings_enable_tactile_feedback_title"/> android:title="@string/lockpattern_settings_enable_tactile_feedback_title"/>

View File

@@ -34,6 +34,10 @@
android:entryValues="@array/lock_after_timeout_values" android:entryValues="@array/lock_after_timeout_values"
android:persistent="false"/> android:persistent="false"/>
<CheckBoxPreference
android:key="power_button_instantly_locks"
android:title="@string/lockpattern_settings_enable_power_button_instantly_locks"/>
<CheckBoxPreference <CheckBoxPreference
android:key="unlock_tactile_feedback" android:key="unlock_tactile_feedback"
android:title="@string/lockpattern_settings_enable_tactile_feedback_title"/> android:title="@string/lockpattern_settings_enable_tactile_feedback_title"/>

View File

@@ -66,6 +66,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
private static final String KEY_SHOW_PASSWORD = "show_password"; private static final String KEY_SHOW_PASSWORD = "show_password";
private static final String KEY_RESET_CREDENTIALS = "reset_credentials"; 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_TOGGLE_INSTALL_APPLICATIONS = "toggle_install_applications";
private static final String KEY_POWER_INSTANTLY_LOCKS = "power_button_instantly_locks";
DevicePolicyManager mDPM; DevicePolicyManager mDPM;
@@ -82,6 +83,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
private CheckBoxPreference mToggleAppInstallation; private CheckBoxPreference mToggleAppInstallation;
private DialogInterface mWarnInstallApps; private DialogInterface mWarnInstallApps;
private CheckBoxPreference mPowerButtonInstantlyLocks;
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
@@ -156,6 +158,10 @@ public class SecuritySettings extends SettingsPreferenceFragment
// visible pattern // visible pattern
mVisiblePattern = (CheckBoxPreference) root.findPreference(KEY_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 // don't display visible pattern if biometric and backup is not pattern
if (resid == R.xml.security_settings_biometric_weak && if (resid == R.xml.security_settings_biometric_weak &&
mLockPatternUtils.getKeyguardStoredPasswordQuality() != mLockPatternUtils.getKeyguardStoredPasswordQuality() !=
@@ -322,6 +328,9 @@ public class SecuritySettings extends SettingsPreferenceFragment
if (mTactileFeedback != null) { if (mTactileFeedback != null) {
mTactileFeedback.setChecked(lockPatternUtils.isTactileFeedbackEnabled()); mTactileFeedback.setChecked(lockPatternUtils.isTactileFeedbackEnabled());
} }
if (mPowerButtonInstantlyLocks != null) {
mPowerButtonInstantlyLocks.setChecked(lockPatternUtils.getPowerButtonInstantlyLocks());
}
mShowPassword.setChecked(Settings.System.getInt(getContentResolver(), mShowPassword.setChecked(Settings.System.getInt(getContentResolver(),
Settings.System.TEXT_SHOW_PASSWORD, 1) != 0); Settings.System.TEXT_SHOW_PASSWORD, 1) != 0);
@@ -351,6 +360,8 @@ public class SecuritySettings extends SettingsPreferenceFragment
lockPatternUtils.setVisiblePatternEnabled(isToggled(preference)); lockPatternUtils.setVisiblePatternEnabled(isToggled(preference));
} else if (KEY_TACTILE_FEEDBACK_ENABLED.equals(key)) { } else if (KEY_TACTILE_FEEDBACK_ENABLED.equals(key)) {
lockPatternUtils.setTactileFeedbackEnabled(isToggled(preference)); lockPatternUtils.setTactileFeedbackEnabled(isToggled(preference));
} else if (KEY_POWER_INSTANTLY_LOCKS.equals(key)) {
lockPatternUtils.setPowerButtonInstantlyLocks(isToggled(preference));
} else if (preference == mShowPassword) { } else if (preference == mShowPassword) {
Settings.System.putInt(getContentResolver(), Settings.System.TEXT_SHOW_PASSWORD, Settings.System.putInt(getContentResolver(), Settings.System.TEXT_SHOW_PASSWORD,
mShowPassword.isChecked() ? 1 : 0); mShowPassword.isChecked() ? 1 : 0);