Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f7c5d0e4 authored by Jim Miller's avatar Jim Miller
Browse files

Fix 2535700: Add support for enforcing password quality

Change-Id: I945eea1a3869f48d636ed0c1172063f7bc57e889
parent cd8aed8c
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.accounts.AccountManagerFuture;
import android.accounts.AuthenticatorException;
import android.accounts.OperationCanceledException;
import android.app.AlertDialog;
import android.app.admin.DevicePolicyManager;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
@@ -281,8 +282,8 @@ public class LockPatternKeyguardView extends KeyguardViewBase {
                if (DEBUG) Log.d(TAG,
                    "reportFailedPatternAttempt: #" + failedAttempts +
                    " (enableFallback=" + mEnableFallback + ")");
                final boolean usingLockPattern = mLockPatternUtils.getPasswordMode()
                        == LockPatternUtils.MODE_PATTERN;
                final boolean usingLockPattern = mLockPatternUtils.getKeyguardStoredPasswordQuality()
                        == DevicePolicyManager.PASSWORD_QUALITY_SOMETHING;
                if (usingLockPattern && mEnableFallback && failedAttempts ==
                        (LockPatternUtils.FAILED_ATTEMPTS_BEFORE_RESET
                                - LockPatternUtils.FAILED_ATTEMPTS_BEFORE_TIMEOUT)) {
@@ -639,8 +640,7 @@ public class LockPatternKeyguardView extends KeyguardViewBase {
        final IccCard.State simState = mUpdateMonitor.getSimState();
        if (stuckOnLockScreenBecauseSimMissing() || (simState == IccCard.State.PUK_REQUIRED)) {
            return Mode.LockScreen;
        } else if (isSecure()
                && mLockPatternUtils.getPasswordMode() == LockPatternUtils.MODE_PATTERN) {
        } else if (isSecure()) {
            return Mode.UnlockScreen;
        } else {
            return Mode.LockScreen;
@@ -656,13 +656,15 @@ public class LockPatternKeyguardView extends KeyguardViewBase {
        if (simState == IccCard.State.PIN_REQUIRED || simState == IccCard.State.PUK_REQUIRED) {
            currentMode = UnlockMode.SimPin;
        } else {
            final int mode = mLockPatternUtils.getPasswordMode();
            final int mode = mLockPatternUtils.getKeyguardStoredPasswordQuality();
            switch (mode) {
                case LockPatternUtils.MODE_PIN:
                case LockPatternUtils.MODE_PASSWORD:
                case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC:
                case DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC:
                case DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC:
                    currentMode = UnlockMode.Password;
                    break;
                case LockPatternUtils.MODE_PATTERN:
                case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
                case DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED:
                    // "forgot pattern" button is only available in the pattern mode...
                    if (mForgotPattern || mLockPatternUtils.isPermanentlyLocked()) {
                        currentMode = UnlockMode.Account;
+5 −1
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.internal.policy.impl;

import android.app.admin.DevicePolicyManager;
import android.content.Context;
import android.content.res.Configuration;
import android.graphics.Rect;
@@ -85,7 +86,10 @@ public class PasswordUnlockScreen extends LinearLayout implements KeyguardScreen
            layoutInflater.inflate(R.layout.keyguard_screen_password_landscape, this, true);
        }

        boolean isAlpha = lockPatternUtils.getPasswordMode() == LockPatternUtils.MODE_PASSWORD;
        final int quality = lockPatternUtils.getKeyguardStoredPasswordQuality();
        final boolean isAlpha = DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC == quality
                || DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC == quality;

        mKeyboardView = (PasswordEntryKeyboardView) findViewById(R.id.keyboard);
        mPasswordEntry = (EditText) findViewById(R.id.passwordEntry);
        mPasswordEntry.setOnEditorActionListener(this);