diff --git a/res/values/strings.xml b/res/values/strings.xml
index 4839b68e4ff..d105d784c1d 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1287,9 +1287,9 @@
Now you can use your fingerprint to unlock your phone or verify it\u2019s you, like when you sign in to apps or approve a purchase
- Unlock only when screen is on
+ Touch to unlock anytime
- The screen must be on before you can unlock with your fingerprint. This makes accidental unlocking less likely.
+ Touch the sensor to unlock, even when the screen is off. This makes accidental unlocking more likely.
Screen, Unlock
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsRequireScreenOnToAuthPreferenceController.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsRequireScreenOnToAuthPreferenceController.java
index 5b183c1433f..65070833e09 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsRequireScreenOnToAuthPreferenceController.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsRequireScreenOnToAuthPreferenceController.java
@@ -51,21 +51,26 @@ public class FingerprintSettingsRequireScreenOnToAuthPreferenceController
} else if (getRestrictingAdmin() != null) {
return false;
}
- int defaultValue = mContext.getResources().getBoolean(
- com.android.internal.R.bool.config_requireScreenOnToAuthEnabled) ? 1 : 0;
-
- return Settings.Secure.getIntForUser(
+ int toReturn = Settings.Secure.getIntForUser(
mContext.getContentResolver(),
- Settings.Secure.SFPS_REQUIRE_SCREEN_ON_TO_AUTH_ENABLED,
- defaultValue,
- getUserHandle()) != 0;
+ Settings.Secure.SFPS_PERFORMANT_AUTH_ENABLED,
+ -1,
+ getUserHandle());
+ if (toReturn == -1) {
+ toReturn = mContext.getResources().getBoolean(
+ com.android.internal.R.bool.config_requireScreenOnToAuthEnabled) ? 1 : 0;
+ Settings.Secure.putIntForUser(mContext.getContentResolver(),
+ Settings.Secure.SFPS_PERFORMANT_AUTH_ENABLED, toReturn, getUserHandle());
+ }
+
+ return toReturn == 1;
}
@Override
public boolean setChecked(boolean isChecked) {
Settings.Secure.putIntForUser(
mContext.getContentResolver(),
- Settings.Secure.SFPS_REQUIRE_SCREEN_ON_TO_AUTH_ENABLED,
+ Settings.Secure.SFPS_PERFORMANT_AUTH_ENABLED,
isChecked ? 1 : 0,
getUserHandle());
return true;
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsRequireScreenOnToAuthPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsRequireScreenOnToAuthPreferenceControllerTest.java
index ff74d59782a..b6df62eeff7 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsRequireScreenOnToAuthPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsRequireScreenOnToAuthPreferenceControllerTest.java
@@ -81,12 +81,12 @@ public class FingerprintSettingsRequireScreenOnToAuthPreferenceControllerTest {
@Test
public void onPreferenceChange_settingIsUpdated() {
boolean state = Settings.Secure.getInt(mContext.getContentResolver(),
- Settings.Secure.SFPS_REQUIRE_SCREEN_ON_TO_AUTH_ENABLED, 1) != 0;
+ Settings.Secure.SFPS_PERFORMANT_AUTH_ENABLED, 1) != 0;
assertThat(mController.isChecked()).isFalse();
assertThat(mController.onPreferenceChange(mPreference, !state)).isTrue();
boolean newState = Settings.Secure.getInt(mContext.getContentResolver(),
- Settings.Secure.SFPS_REQUIRE_SCREEN_ON_TO_AUTH_ENABLED, 1) != 0;
+ Settings.Secure.SFPS_PERFORMANT_AUTH_ENABLED, 1) != 0;
assertThat(newState).isEqualTo(!state);
}