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

Commit 8ae1be12 authored by Jim Miller's avatar Jim Miller
Browse files

Disable fingerprint when remotely reset by DPM

When the device is lost or stolen, it's safer to
fall back to strong authentication (pin, pattern or
password).  This disables fingerprint like we do with
trust agents.

Fixes bug 21620081

Change-Id: I7bbe54be3721b2f160b783daeb3acbe434705046
parent 881cd155
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -548,6 +548,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {

    private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            final String action = intent.getAction();
            if (DEBUG) Log.d(TAG, "received broadcast " + action);
@@ -599,6 +600,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {

    private final BroadcastReceiver mBroadcastAllReceiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            final String action = intent.getAction();
            if (AlarmManager.ACTION_NEXT_ALARM_CLOCK_CHANGED.equals(action)) {
@@ -713,6 +715,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
            return new SimData(state, slotId, subId);
        }

        @Override
        public String toString() {
            return "SimData{state=" + simState + ",slotId=" + slotId + ",subId=" + subId + "}";
        }
@@ -895,7 +898,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
    }

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

    private void startListeningForFingerprint() {
+6 −0
Original line number Diff line number Diff line
@@ -579,8 +579,14 @@ public class TrustManagerService extends SystemService {
    private void clearUserHasAuthenticated(int userId) {
        if (userId == UserHandle.USER_ALL) {
            mUserHasAuthenticated.clear();
            synchronized (mUserHasAuthenticatedSinceBoot) {
                mUserHasAuthenticatedSinceBoot.clear();
            }
        } else {
            mUserHasAuthenticated.put(userId, false);
            synchronized (mUserHasAuthenticatedSinceBoot) {
                mUserHasAuthenticatedSinceBoot.put(userId, false);
            }
        }
    }