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

Commit 4366b00f authored by Jeff Pu's avatar Jeff Pu Committed by Automerger Merge Worker
Browse files

Merge "Avoid likely deadlock in the calltree under alarm manager" into udc-dev am: 73f41157

parents bd8671c1 73f41157
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -24,6 +24,8 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Handler;
import android.os.Looper;
import android.os.SystemClock;
import android.util.Slog;
import android.util.SparseBooleanArray;
@@ -69,6 +71,7 @@ public class LockoutFrameworkImpl implements LockoutTracker {
    private final SparseIntArray mFailedAttempts;
    private final AlarmManager mAlarmManager;
    private final LockoutReceiver mLockoutReceiver;
    private final Handler mHandler;

    public LockoutFrameworkImpl(Context context, LockoutResetCallback lockoutResetCallback) {
        mContext = context;
@@ -77,6 +80,7 @@ public class LockoutFrameworkImpl implements LockoutTracker {
        mFailedAttempts = new SparseIntArray();
        mAlarmManager = context.getSystemService(AlarmManager.class);
        mLockoutReceiver = new LockoutReceiver();
        mHandler = new Handler(Looper.getMainLooper());

        context.registerReceiver(mLockoutReceiver, new IntentFilter(ACTION_LOCKOUT_RESET),
                RESET_FINGERPRINT_LOCKOUT, null /* handler */, Context.RECEIVER_EXPORTED);
@@ -127,9 +131,11 @@ public class LockoutFrameworkImpl implements LockoutTracker {
    }

    private void scheduleLockoutResetForUser(int userId) {
        mHandler.post(() -> {
            mAlarmManager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                SystemClock.elapsedRealtime() + FAIL_LOCKOUT_TIMEOUT_MS,
                getLockoutResetIntentForUser(userId));
        });
    }

    private PendingIntent getLockoutResetIntentForUser(int userId) {