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

Commit 1caa9d56 authored by Kevin Chyn's avatar Kevin Chyn Committed by Automerger Merge Worker
Browse files

Merge changes I96fe9587,Ie51b121b into sc-dev am: 8ce6b9fb

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13538916

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I4e47c96c8744d62b83df0146b1022c3e4e6e121a
parents 3418adf6 8ce6b9fb
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -686,7 +686,8 @@ public final class AuthSession implements IBinder.DeathRecipient {
     * @return true if this AuthSession is finished, e.g. should be set to null
     */
    boolean onCancelAuthSession(boolean force) {
        final boolean authStarted = mState == STATE_AUTH_STARTED
        final boolean authStarted = mState == STATE_AUTH_CALLED
                || mState == STATE_AUTH_STARTED
                || mState == STATE_AUTH_STARTED_UI_SHOWING;

        if (authStarted && !force) {
+5 −0
Original line number Diff line number Diff line
@@ -311,4 +311,9 @@ public abstract class AuthenticationClient<T> extends AcquisitionClient<T>
    public int getProtoEnum() {
        return BiometricsProto.CM_AUTHENTICATE;
    }

    @Override
    public boolean interruptsPrecedingClients() {
        return true;
    }
}
+8 −2
Original line number Diff line number Diff line
@@ -82,11 +82,17 @@ public abstract class BaseClientMonitor extends LoggableMonitor
    @NonNull protected Callback mCallback;

    /**
     * Returns a ClientMonitorEnum constant defined in biometrics.proto
     * @return
     * @return A ClientMonitorEnum constant defined in biometrics.proto
     */
    public abstract int getProtoEnum();

    /**
     * @return True if the ClientMonitor should cancel any current and pending interruptable clients
     */
    public boolean interruptsPrecedingClients() {
        return false;
    }

    /**
     * @param context    system_server context
     * @param token      a unique token for the client
+16 −10
Original line number Diff line number Diff line
@@ -475,8 +475,10 @@ public class BiometricScheduler {
     */
    public void scheduleClientMonitor(@NonNull BaseClientMonitor clientMonitor,
            @Nullable BaseClientMonitor.Callback clientCallback) {
        // Mark any interruptable pending clients as canceling. Once they reach the head of the
        // queue, the scheduler will send ERROR_CANCELED and skip the operation.
        // If the incoming operation should interrupt preceding clients, mark any interruptable
        // pending clients as canceling. Once they reach the head of the queue, the scheduler will
        // send ERROR_CANCELED and skip the operation.
        if (clientMonitor.interruptsPrecedingClients()) {
            for (Operation operation : mPendingOperations) {
                if (operation.mClientMonitor instanceof Interruptable
                        && operation.mState != Operation.STATE_WAITING_IN_QUEUE_CANCELING) {
@@ -485,13 +487,17 @@ public class BiometricScheduler {
                    operation.mState = Operation.STATE_WAITING_IN_QUEUE_CANCELING;
                }
            }
        }

        mPendingOperations.add(new Operation(clientMonitor, clientCallback));
        Slog.d(getTag(), "[Added] " + clientMonitor
                + ", new queue size: " + mPendingOperations.size());

        // If the current operation is cancellable, start the cancellation process.
        if (mCurrentOperation != null && mCurrentOperation.mClientMonitor instanceof Interruptable
        // If the new operation should interrupt preceding clients, and if the current operation is
        // cancellable, start the cancellation process.
        if (clientMonitor.interruptsPrecedingClients()
                && mCurrentOperation != null
                && mCurrentOperation.mClientMonitor instanceof Interruptable
                && mCurrentOperation.mState == Operation.STATE_STARTED) {
            Slog.d(getTag(), "[Cancelling Interruptable]: " + mCurrentOperation);
            cancelInternal(mCurrentOperation);
+5 −0
Original line number Diff line number Diff line
@@ -113,4 +113,9 @@ public abstract class EnrollClient<T> extends AcquisitionClient<T> {
    public int getProtoEnum() {
        return BiometricsProto.CM_ENROLL;
    }

    @Override
    public boolean interruptsPrecedingClients() {
        return true;
    }
}
Loading