Adding an improve face matching settings option for Face Unlock
Adding an option which will launch a version of setup where faces can be added to the current gallery. It requires the user to first confirm their password before launching addToSetup. Patch 3 - Updated for renaming of FackLockTutorial to SetupIntro. Now it is called every time regardless of it it's showing the tutorial and a flag is passed in to determine whether or not SetupIntro shows the tutorial. Patch 4 - Removed 'Setup Complete' toast at the end of screen lock setups since it was primarily for Face Unlock and the congratulations screen removes the need for it. Change-Id: Idc5f960809d992ec7bbce59ef1e13b95ef7cce45
This commit is contained in:
@@ -637,6 +637,9 @@
|
||||
|
||||
<!-- Security Settings --><skip />
|
||||
|
||||
<!-- Security settings screen when using face unlock, setting option name to start an activity that allows the user to improve accuracy by adding additional enrollment faces -->
|
||||
<string name="biometric_weak_improve_matching_title">Improve face matching</string>
|
||||
|
||||
<!-- Security settings screen, setting option name to change screen timeout -->
|
||||
<string name="lock_after_timeout">Automatically lock</string>
|
||||
<!-- Security settings screen, setting option summary to change screen timeout -->
|
||||
|
@@ -26,6 +26,10 @@
|
||||
android:summary="@string/unlock_set_unlock_mode_biometric_weak"
|
||||
android:persistent="false"/>
|
||||
|
||||
<PreferenceScreen
|
||||
android:key="biometric_weak_improve_matching"
|
||||
android:title="@string/biometric_weak_improve_matching_title"/>
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="visiblepattern"
|
||||
android:title="@string/lockpattern_settings_enable_visible_pattern_title"/>
|
||||
|
@@ -276,7 +276,7 @@ public class ChooseLockGeneric extends PreferenceActivity {
|
||||
KEY_UNLOCK_SET_PATTERN.equals(key) || KEY_UNLOCK_SET_PIN.equals(key);
|
||||
}
|
||||
|
||||
private Intent getBiometricSensorIntent(int quality) {
|
||||
private Intent getBiometricSensorIntent() {
|
||||
Intent fallBackIntent = new Intent().setClass(getActivity(), ChooseLockGeneric.class);
|
||||
fallBackIntent.putExtra(LockPatternUtils.LOCKSCREEN_BIOMETRIC_WEAK_FALLBACK, true);
|
||||
fallBackIntent.putExtra(CONFIRM_CREDENTIALS, false);
|
||||
@@ -286,9 +286,8 @@ public class ChooseLockGeneric extends PreferenceActivity {
|
||||
boolean showTutorial = ALWAY_SHOW_TUTORIAL ||
|
||||
!mChooseLockSettingsHelper.utils().isBiometricWeakEverChosen();
|
||||
Intent intent = new Intent();
|
||||
intent.setClassName("com.android.facelock", showTutorial
|
||||
? "com.android.facelock.FaceLockTutorial"
|
||||
: "com.android.facelock.SetupFaceLock");
|
||||
intent.setClassName("com.android.facelock", "com.android.facelock.SetupIntro");
|
||||
intent.putExtra("showTutorial", showTutorial);
|
||||
PendingIntent pending = PendingIntent.getActivity(getActivity(), 0, fallBackIntent, 0);
|
||||
intent.putExtra("PendingIntent", pending);
|
||||
return intent;
|
||||
@@ -352,7 +351,7 @@ public class ChooseLockGeneric extends PreferenceActivity {
|
||||
startActivity(intent);
|
||||
}
|
||||
} else if (quality == DevicePolicyManager.PASSWORD_QUALITY_BIOMETRIC_WEAK) {
|
||||
Intent intent = getBiometricSensorIntent(quality);
|
||||
Intent intent = getBiometricSensorIntent();
|
||||
startActivity(intent);
|
||||
} else if (quality == DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED) {
|
||||
mChooseLockSettingsHelper.utils().clearLock(false);
|
||||
|
@@ -44,7 +44,6 @@ import android.view.inputmethod.EditorInfo;
|
||||
import android.widget.Button;
|
||||
import android.widget.TextView;
|
||||
import android.widget.TextView.OnEditorActionListener;
|
||||
import android.widget.Toast;
|
||||
|
||||
public class ChooseLockPassword extends PreferenceActivity {
|
||||
public static final String PASSWORD_MIN_KEY = "lockscreen.password_min";
|
||||
@@ -388,7 +387,6 @@ public class ChooseLockPassword extends PreferenceActivity {
|
||||
LockPatternUtils.LOCKSCREEN_BIOMETRIC_WEAK_FALLBACK, false);
|
||||
mLockPatternUtils.clearLock(isFallback);
|
||||
mLockPatternUtils.saveLockPassword(pin, mRequestedQuality, isFallback);
|
||||
Toast.makeText(getActivity(), R.string.lock_setup, Toast.LENGTH_SHORT).show();
|
||||
getActivity().finish();
|
||||
} else {
|
||||
updateStage(Stage.ConfirmWrong);
|
||||
|
@@ -35,7 +35,6 @@ import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
@@ -513,8 +512,6 @@ public class ChooseLockPattern extends PreferenceActivity {
|
||||
utils.saveLockPattern(mChosenPattern, isFallback);
|
||||
utils.setLockPatternEnabled(true);
|
||||
|
||||
Toast.makeText(getActivity(), R.string.lock_setup, Toast.LENGTH_SHORT).show();
|
||||
|
||||
if (lockVirgin) {
|
||||
utils.setVisiblePatternEnabled(true);
|
||||
utils.setTactileFeedbackEnabled(false);
|
||||
|
@@ -19,6 +19,7 @@ package com.android.settings;
|
||||
|
||||
import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.Context;
|
||||
@@ -50,12 +51,15 @@ public class SecuritySettings extends SettingsPreferenceFragment
|
||||
|
||||
// Lock Settings
|
||||
private static final String KEY_UNLOCK_SET_OR_CHANGE = "unlock_set_or_change";
|
||||
private static final String KEY_BIOMETRIC_WEAK_IMPROVE_MATCHING =
|
||||
"biometric_weak_improve_matching";
|
||||
private static final String KEY_LOCK_ENABLED = "lockenabled";
|
||||
private static final String KEY_VISIBLE_PATTERN = "visiblepattern";
|
||||
private static final String KEY_TACTILE_FEEDBACK_ENABLED = "unlock_tactile_feedback";
|
||||
private static final String KEY_SECURITY_CATEGORY = "security_category";
|
||||
private static final String KEY_LOCK_AFTER_TIMEOUT = "lock_after_timeout";
|
||||
private static final int SET_OR_CHANGE_LOCK_METHOD_REQUEST = 123;
|
||||
private static final int CONFIRM_EXISTING_FOR_BIOMETRIC_IMPROVE_REQUEST = 124;
|
||||
|
||||
// Misc Settings
|
||||
private static final String KEY_SIM_LOCK = "sim_lock";
|
||||
@@ -326,6 +330,13 @@ public class SecuritySettings extends SettingsPreferenceFragment
|
||||
if (KEY_UNLOCK_SET_OR_CHANGE.equals(key)) {
|
||||
startFragment(this, "com.android.settings.ChooseLockGeneric$ChooseLockGenericFragment",
|
||||
SET_OR_CHANGE_LOCK_METHOD_REQUEST, null);
|
||||
} else if (KEY_BIOMETRIC_WEAK_IMPROVE_MATCHING.equals(key)) {
|
||||
ChooseLockSettingsHelper helper =
|
||||
new ChooseLockSettingsHelper(this.getActivity(), this);
|
||||
if (!helper.launchConfirmationActivity(
|
||||
CONFIRM_EXISTING_FOR_BIOMETRIC_IMPROVE_REQUEST, null, null)) {
|
||||
startBiometricWeakImprove(); // no password set, so no need to confirm
|
||||
}
|
||||
} else if (KEY_LOCK_ENABLED.equals(key)) {
|
||||
lockPatternUtils.setLockPatternEnabled(isToggled(preference));
|
||||
} else if (KEY_VISIBLE_PATTERN.equals(key)) {
|
||||
@@ -360,6 +371,11 @@ public class SecuritySettings extends SettingsPreferenceFragment
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (requestCode == CONFIRM_EXISTING_FOR_BIOMETRIC_IMPROVE_REQUEST &&
|
||||
resultCode == Activity.RESULT_OK) {
|
||||
startBiometricWeakImprove();
|
||||
return;
|
||||
}
|
||||
createPreferenceHierarchy();
|
||||
}
|
||||
|
||||
@@ -376,4 +392,10 @@ public class SecuritySettings extends SettingsPreferenceFragment
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public void startBiometricWeakImprove(){
|
||||
Intent intent = new Intent();
|
||||
intent.setClassName("com.android.facelock", "com.android.facelock.AddToSetup");
|
||||
startActivity(intent);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user