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

Commit ccbaa26a authored by Roman Birg's avatar Roman Birg Committed by Gerrit Code Review
Browse files

Fingerprint: don't report as active without any fp's



Don't report fingerprint as enabled until we have a fingerprint enrolled

Ref: CYNGNOS-1117

Change-Id: I65f98d320d07ba6309d918cb02d415797fc2be4f
Signed-off-by: default avatarRoman Birg <roman@cyngn.com>
parent e9e04893
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -156,14 +156,13 @@ public class FingerprintManager {
    };

    /**
     * Determine whether the user has at least one fingerprint enrolled and enabled.
     * Determine whether the user has at least one fingerprint enrolled.
     *
     * @return true if at least one is enrolled and enabled
     * @return true if at least one is enrolled
     */
    public boolean enrolledAndEnabled() {
    public boolean userEnrolled() {
        ContentResolver res = mContext.getContentResolver();
        return Settings.Secure.getInt(res, "fingerprint_enabled", 0) != 0
                && FingerprintUtils.getFingerprintsForUser(res, getCurrentUserId()).size() > 0;
        return FingerprintUtils.getFingerprintsForUser(res, getCurrentUserId()).size() > 0;
    }

    /**
+18 −8
Original line number Diff line number Diff line
@@ -614,7 +614,7 @@ public class KeyguardViewMediator extends SystemUI {

        @Override
        public void onScreenTurnedOff(int why) {
            if (mLockPatternUtils.usingFingerprint()) {
            if (isFingerprintActive()) {
                synchronized (KeyguardViewMediator.this) {
                    mHandler.removeMessages(KEYGUARD_FINGERPRINT_AUTH);
                    mHandler.obtainMessage(KEYGUARD_FINGERPRINT_AUTH, 0, 0).sendToTarget();
@@ -635,7 +635,7 @@ public class KeyguardViewMediator extends SystemUI {

        @Override
        public void onScreenTurnedOn() {
            if (mLockPatternUtils.usingFingerprint()) {
            if (isFingerprintActive()) {
                synchronized (KeyguardViewMediator.this) {
                    FingerprintManager fpm = (FingerprintManager)
                            mContext.getSystemService(Context.FINGERPRINT_SERVICE);
@@ -695,7 +695,7 @@ public class KeyguardViewMediator extends SystemUI {
        @Override
        public void onKeyguardVisibilityChanged(boolean showing) {
            super.onKeyguardVisibilityChanged(showing);
            if (mLockPatternUtils.usingFingerprint()) {
            if (isFingerprintActive()) {
                synchronized (KeyguardViewMediator.this) {
                    mUpdateMonitor.setFingerprintListening(showing);
                }
@@ -741,7 +741,7 @@ public class KeyguardViewMediator extends SystemUI {
        @Override
        public void keyguardGone() {
            mKeyguardDisplayManager.hide();
            if (mLockPatternUtils.usingFingerprint()) {
            if (isFingerprintActive()) {
                synchronized (KeyguardViewMediator.this) {
                    if (mFingerprintWakeUnlock) {
                        if (DBG_FINGERPRINT) {
@@ -904,7 +904,7 @@ public class KeyguardViewMediator extends SystemUI {
            // camera while preventing unwanted input.
            final boolean lockImmediately =
                mLockPatternUtils.getPowerButtonInstantlyLocks() || !mLockPatternUtils.isSecure()
                    || mLockPatternUtils.usingFingerprint();
                    || isFingerprintActive();

            notifyScreenOffLocked();

@@ -1593,7 +1593,7 @@ public class KeyguardViewMediator extends SystemUI {
        }

        if (authenticated) {
            if (mLockPatternUtils.usingFingerprint()) {
            if (isFingerprintActive()) {
                KeyguardStats.sendUnlockEvent(mContext,
                        mUpdateMonitor.isFingerprintRecognized(),
                        mUpdateMonitor.getFailedFingerprintUnlockAttempts());
@@ -1974,7 +1974,7 @@ public class KeyguardViewMediator extends SystemUI {
    private void startFingerAuthIfUsingFingerprint() {
        synchronized (KeyguardViewMediator.this) {
            if (DBG_FINGERPRINT) Log.i(TAG, "startFingerAuthIfUsingFingerprint()");
            if (mLockPatternUtils.usingFingerprint()) {
            if (isFingerprintActive()) {
                if (mFingerprintWakeUnlock) {
                    Log.w(TAG, "fingerprint unlock mode, not authenticating");
                    return;
@@ -2007,7 +2007,7 @@ public class KeyguardViewMediator extends SystemUI {

    private void stopAuthenticatingFingerprint() {
        synchronized (KeyguardViewMediator.this) {
            if (mLockPatternUtils.usingFingerprint()) {
            if (isFingerprintActive()) {
                if (DBG_FINGERPRINT) {
                    Log.i(TAG, "stopAuthenticatingFingerprint()");
                }
@@ -2019,4 +2019,14 @@ public class KeyguardViewMediator extends SystemUI {
        }
    }

    private boolean isFingerprintActive() {
        return isFingerprintActive(mContext, mLockPatternUtils);
    }

    public static boolean isFingerprintActive(Context context, LockPatternUtils lockPatternUtils) {
        FingerprintManager fp = (FingerprintManager)
                context.getSystemService(Context.FINGERPRINT_SERVICE);
        return fp != null && fp.userEnrolled() && lockPatternUtils.usingFingerprint();
    }

}
+2 −0
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.KeyguardUpdateMonitorCallback;
import com.android.systemui.R;
import com.android.systemui.cm.UserContentObserver;
import com.android.systemui.keyguard.KeyguardViewMediator;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.KeyguardAffordanceView;
import com.android.systemui.statusbar.KeyguardIndicationController;
@@ -533,6 +534,7 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
        if (mUnlockMethodCache.isFaceUnlockRunning()) {
            iconRes = com.android.internal.R.drawable.ic_account_circle;
        } else if (mUnlockMethodCache.isFingerUnlockRunning()
                && KeyguardViewMediator.isFingerprintActive(mContext, mLockPatternUtils)
                && !KeyguardUpdateMonitor.getInstance(mContext).isMaxFingerprintAttemptsReached()) {
            iconRes = R.drawable.ic_fingerprint;
        } else if (mUnlockMethodCache.isCurrentlyInsecure()) {