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

Commit 8588b331 authored by Selim Cinek's avatar Selim Cinek Committed by Android Git Automerger
Browse files

am f8acd1d8: Merge "Adapted the behavior when unlocking with fingerprint is...

am f8acd1d8: Merge "Adapted the behavior when unlocking with fingerprint is not allowed" into mnc-dev

* commit 'f8acd1d8':
  Adapted the behavior when unlocking with fingerprint is not allowed
parents 67b4db0c f8acd1d8
Loading
Loading
Loading
Loading
+29 −4
Original line number Diff line number Diff line
@@ -112,7 +112,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
    private static final int MSG_DEVICE_PROVISIONED = 308;
    private static final int MSG_DPM_STATE_CHANGED = 309;
    private static final int MSG_USER_SWITCHING = 310;
    private static final int MSG_KEYGUARD_VISIBILITY_CHANGED = 312;
    private static final int MSG_KEYGUARD_VISIBILITY_CHANGED = 311;
    private static final int MSG_KEYGUARD_RESET = 312;
    private static final int MSG_BOOT_COMPLETED = 313;
    private static final int MSG_USER_SWITCH_COMPLETE = 314;
    private static final int MSG_USER_INFO_CHANGED = 317;
@@ -136,6 +137,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
    private boolean mKeyguardIsVisible;
    private boolean mBouncer;
    private boolean mBootCompleted;
    private boolean mUserHasAuthenticatedSinceBoot;

    // Device provisioning state
    private boolean mDeviceProvisioned;
@@ -195,6 +197,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
                case MSG_KEYGUARD_VISIBILITY_CHANGED:
                    handleKeyguardVisibilityChanged(msg.arg1);
                    break;
                case MSG_KEYGUARD_RESET:
                    handleKeyguardReset();
                    break;
                case MSG_KEYGUARD_BOUNCER_CHANGED:
                    handleKeyguardBouncerChanged(msg.arg1);
                    break;
@@ -498,7 +503,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
    }

    public boolean getUserCanSkipBouncer(int userId) {
        return getUserHasTrust(userId) || mUserFingerprintAuthenticated.get(userId);
        return getUserHasTrust(userId) || (mUserFingerprintAuthenticated.get(userId)
                && isUnlockingWithFingerprintAllowed());
    }

    public boolean getUserHasTrust(int userId) {
@@ -509,6 +515,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
        return mUserTrustIsManaged.get(userId) && !isTrustDisabled(userId);
    }

    public boolean isUnlockingWithFingerprintAllowed() {
        return mUserHasAuthenticatedSinceBoot;
    }

    static class DisplayClientState {
        public int clientGeneration;
        public boolean clearing;
@@ -883,14 +893,15 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
    }

    private boolean shouldListenForFingerprint() {
        return mKeyguardIsVisible && !mSwitchingUser
                && mTrustManager.hasUserAuthenticatedSinceBoot(ActivityManager.getCurrentUser());
        return mKeyguardIsVisible && !mSwitchingUser;
    }

    private void startListeningForFingerprint() {
        if (DEBUG) Log.v(TAG, "startListeningForFingerprint()");
        int userId = ActivityManager.getCurrentUser();
        if (isUnlockWithFingerPrintPossible(userId)) {
            mUserHasAuthenticatedSinceBoot = mTrustManager.hasUserAuthenticatedSinceBoot(
                    ActivityManager.getCurrentUser());
            if (mFingerprintCancelSignal != null) {
                mFingerprintCancelSignal.cancel();
            }
@@ -1183,6 +1194,16 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
        updateFingerprintListeningState();
    }

    /**
     * Handle {@link #MSG_KEYGUARD_RESET}
     */
    private void handleKeyguardReset() {
        if (DEBUG) Log.d(TAG, "handleKeyguardReset");
        if (!isUnlockingWithFingerprintAllowed()) {
            updateFingerprintListeningState();
        }
    }

    /**
     * Handle {@link #MSG_KEYGUARD_BOUNCER_CHANGED}
     * @see #sendKeyguardBouncerChanged(boolean)
@@ -1296,6 +1317,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
        message.sendToTarget();
    }

    public void sendKeyguardReset() {
        mHandler.obtainMessage(MSG_KEYGUARD_RESET).sendToTarget();
    }

    /**
     * @see #handleKeyguardBouncerChanged(int)
     */
+3 −1
Original line number Diff line number Diff line
@@ -461,7 +461,9 @@ public class KeyguardViewMediator extends SystemUI {
        @Override
        public void onFingerprintAuthenticated(int userId, boolean wakeAndUnlocking) {
            if (mStatusBarKeyguardViewManager.isBouncerShowing()) {
                if (mUpdateMonitor.isUnlockingWithFingerprintAllowed()) {
                    mStatusBarKeyguardViewManager.notifyKeyguardAuthenticated();
                }
            } else {
                if (wakeAndUnlocking) {
                    mWakeAndUnlocking = true;
+6 −0
Original line number Diff line number Diff line
@@ -659,6 +659,9 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL

        @Override
        public void onFingerprintHelp(int msgId, String helpString) {
            if (!KeyguardUpdateMonitor.getInstance(mContext).isUnlockingWithFingerprintAllowed()) {
                return;
            }
            mLockIcon.setTransientFpError(true);
            mIndicationController.showTransientIndication(helpString,
                    getResources().getColor(R.color.system_warning_color, null));
@@ -668,6 +671,9 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL

        @Override
        public void onFingerprintError(int msgId, String errString) {
            if (!KeyguardUpdateMonitor.getInstance(mContext).isUnlockingWithFingerprintAllowed()) {
                return;
            }
            // TODO: Go to bouncer if this is "too many attempts" (lockout) error.
            mIndicationController.showTransientIndication(errString,
                    getResources().getColor(R.color.system_warning_color, null));
+4 −3
Original line number Diff line number Diff line
@@ -224,13 +224,14 @@ public class LockIcon extends KeyguardAffordanceView {
    }

    private int getState() {
        boolean fingerprintRunning =
                KeyguardUpdateMonitor.getInstance(mContext).isFingerprintDetectionRunning();
        KeyguardUpdateMonitor updateMonitor = KeyguardUpdateMonitor.getInstance(mContext);
        boolean fingerprintRunning = updateMonitor.isFingerprintDetectionRunning();
        boolean unlockingAllowed = updateMonitor.isUnlockingWithFingerprintAllowed();
        if (mUnlockMethodCache.canSkipBouncer()) {
            return STATE_LOCK_OPEN;
        } else if (mTransientFpError) {
            return STATE_FINGERPRINT_ERROR;
        } else if (fingerprintRunning) {
        } else if (fingerprintRunning && unlockingAllowed) {
            return STATE_FINGERPRINT;
        } else if (mUnlockMethodCache.isFaceUnlockRunning()) {
            return STATE_FACE_UNLOCK;
+1 −0
Original line number Diff line number Diff line
@@ -150,6 +150,7 @@ public class StatusBarKeyguardViewManager {
            } else {
                showBouncerOrKeyguard();
            }
            KeyguardUpdateMonitor.getInstance(mContext).sendKeyguardReset();
            updateStates();
        }
    }
Loading