<!-- 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 -->
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"/>
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);
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;
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);
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";
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);
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
-import android.widget.Toast;
import java.util.ArrayList;
import java.util.Collections;
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);
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;
// 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";
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)) {
@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();
}
}
return true;
}
+
+ public void startBiometricWeakImprove(){
+ Intent intent = new Intent();
+ intent.setClassName("com.android.facelock", "com.android.facelock.AddToSetup");
+ startActivity(intent);
+ }
}