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

Unverified Commit 9a7dc3fa authored by Mohammed Althaf T's avatar Mohammed Althaf T 😊 Committed by Michael Bestas
Browse files

Keyguard: Allow user configurable fingerprint wake-and-unlock

Change-Id: I471908cfa27a54e0075394eed348cb15386f62ce
parent a56ccf3a
Loading
Loading
Loading
Loading
+36 −3
Original line number Diff line number Diff line
@@ -117,6 +117,8 @@ import com.android.systemui.util.Assert;

import com.google.android.collect.Lists;

import lineageos.providers.LineageSettings;

import java.io.PrintWriter;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
@@ -307,6 +309,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
            mCallbacks = Lists.newArrayList();
    private ContentObserver mDeviceProvisionedObserver;
    private ContentObserver mTimeFormatChangeObserver;
    private ContentObserver mSettingsChangeObserver;

    private boolean mSwitchingUser;

@@ -336,7 +339,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
    private SensorPrivacyManager mSensorPrivacyManager;
    private final ActiveUnlockConfig mActiveUnlockConfig;

    private final boolean mFingerprintWakeAndUnlock;
    private boolean mFingerprintWakeAndUnlock;

    /**
     * Short delay before restarting fingerprint authentication after a successful try. This should
@@ -1887,8 +1890,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
        mTelephonyListenerManager = telephonyListenerManager;
        mDeviceProvisioned = isDeviceProvisionedInSettingsDb();
        mStrongAuthTracker = new StrongAuthTracker(context, this::notifyStrongAuthStateChanged);
        mFingerprintWakeAndUnlock = mContext.getResources().getBoolean(
                com.android.systemui.R.bool.config_fingerprintWakeAndUnlock);
        mBackgroundExecutor = backgroundExecutor;
        mBroadcastDispatcher = broadcastDispatcher;
        mInteractionJankMonitor = interactionJankMonitor;
@@ -1903,6 +1904,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
        mActiveUnlockConfig = activeUnlockConfiguration;
        mActiveUnlockConfig.setKeyguardUpdateMonitor(this);

        updateFingerprintSettings();

        mHandler = new Handler(mainLooper) {
            @Override
            public void handleMessage(Message msg) {
@@ -2172,6 +2175,32 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
        mContext.getContentResolver().registerContentObserver(
                Settings.System.getUriFor(Settings.System.TIME_12_24),
                false, mTimeFormatChangeObserver, UserHandle.USER_ALL);

        mSettingsChangeObserver = new ContentObserver(mHandler) {
            @Override
            public void onChange(boolean selfChange) {
                updateFingerprintSettings();
            }
        };
        mContext.getContentResolver().registerContentObserver(
                LineageSettings.System.getUriFor(LineageSettings.System.FINGERPRINT_WAKE_UNLOCK),
                false, mSettingsChangeObserver, UserHandle.USER_ALL);
    }

    private void updateFingerprintSettings() {
        boolean defFingerprintSettings = mContext.getResources().getBoolean(
                com.android.systemui.R.bool.config_fingerprintWakeAndUnlock);
        if (defFingerprintSettings) {
            mFingerprintWakeAndUnlock = LineageSettings.System.getIntForUser(
                    mContext.getContentResolver(), LineageSettings.System.FINGERPRINT_WAKE_UNLOCK,
                    1, UserHandle.USER_CURRENT) == 1;
        } else {
            mFingerprintWakeAndUnlock = defFingerprintSettings;
            // if its false, the device meant to be used like that, disable toggle with 2.
            LineageSettings.System.putIntForUser(mContext.getContentResolver(),
                    LineageSettings.System.FINGERPRINT_WAKE_UNLOCK,
                    2, UserHandle.USER_CURRENT);
        }
    }

    private void updateFaceEnrolled(int userId) {
@@ -3739,6 +3768,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
            mContext.getContentResolver().unregisterContentObserver(mTimeFormatChangeObserver);
        }

        if (mSettingsChangeObserver != null) {
            mContext.getContentResolver().unregisterContentObserver(mSettingsChangeObserver);
        }

        try {
            ActivityManager.getService().unregisterUserSwitchObserver(mUserSwitchObserver);
        } catch (RemoteException e) {