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

Commit a0fd823d authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add BouncerMessageViewBinder and wire-up BouncerMessageInteractor across sysui"

parents d76d62ea 7deb05f0
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -140,6 +140,7 @@ public abstract class KeyguardAbsKeyInputViewController<T extends KeyguardAbsKey
        long elapsedRealtime = SystemClock.elapsedRealtime();
        long secondsInFuture = (long) Math.ceil(
                (elapsedRealtimeDeadline - elapsedRealtime) / 1000.0);
        getKeyguardSecurityCallback().onAttemptLockoutStart(secondsInFuture);
        mCountdownTimer = new CountDownTimer(secondsInFuture * 1000, 1000) {

            @Override
+23 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.keyguard;

import android.annotation.CallSuper;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.res.ColorStateList;
import android.content.res.Resources;
@@ -33,6 +34,10 @@ import com.android.systemui.classifier.FalsingCollector;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.flags.Flags;
import com.android.systemui.keyguard.bouncer.domain.interactor.BouncerMessageInteractor;
import com.android.systemui.keyguard.bouncer.ui.BouncerMessageView;
import com.android.systemui.keyguard.ui.binder.BouncerMessageViewBinder;
import com.android.systemui.log.BouncerLogger;
import com.android.systemui.statusbar.policy.DevicePostureController;
import com.android.systemui.util.ViewController;
import com.android.systemui.util.concurrency.DelayableExecutor;
@@ -168,6 +173,24 @@ public abstract class KeyguardInputViewController<T extends KeyguardInputView>
    /** Determines the message to show in the bouncer when it first appears. */
    protected abstract int getInitialMessageResId();

    /**
     * Binds the {@link KeyguardInputView#getBouncerMessageView()} view with the provided context.
     */
    public void bindMessageView(
            @NonNull BouncerMessageInteractor bouncerMessageInteractor,
            KeyguardMessageAreaController.Factory messageAreaControllerFactory,
            BouncerLogger bouncerLogger,
            FeatureFlags featureFlags) {
        BouncerMessageView bouncerMessageView = (BouncerMessageView) mView.getBouncerMessageView();
        if (bouncerMessageView != null) {
            BouncerMessageViewBinder.bind(bouncerMessageView,
                    bouncerMessageInteractor,
                    messageAreaControllerFactory,
                    bouncerLogger,
                    featureFlags);
        }
    }

    /** Factory for a {@link KeyguardInputViewController}. */
    public static class Factory {
        private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
+1 −0
Original line number Diff line number Diff line
@@ -365,6 +365,7 @@ public class KeyguardPatternViewController
        final long elapsedRealtime = SystemClock.elapsedRealtime();
        final long secondsInFuture = (long) Math.ceil(
                (elapsedRealtimeDeadline - elapsedRealtime) / 1000.0);
        getKeyguardSecurityCallback().onAttemptLockoutStart(secondsInFuture);
        mCountdownTimer = new CountDownTimer(secondsInFuture * 1000, 1000) {

            @Override
+5 −0
Original line number Diff line number Diff line
@@ -87,6 +87,11 @@ public interface KeyguardSecurityCallback {
    default void onUserInput() {
    }

    /**
     * Invoked when the auth input is disabled for specified number of seconds.
     * @param seconds Number of seconds for which the auth input is disabled.
     */
    default void onAttemptLockoutStart(long seconds) {}

    /**
     * Dismisses keyguard and go to unlocked state.
+15 −1
Original line number Diff line number Diff line
@@ -74,6 +74,7 @@ import com.android.systemui.classifier.FalsingA11yDelegate;
import com.android.systemui.classifier.FalsingCollector;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.flags.Flags;
import com.android.systemui.keyguard.bouncer.domain.interactor.BouncerMessageInteractor;
import com.android.systemui.keyguard.domain.interactor.KeyguardFaceAuthInteractor;
import com.android.systemui.log.SessionTracker;
import com.android.systemui.plugins.ActivityStarter;
@@ -116,6 +117,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
    private final Optional<SideFpsController> mSideFpsController;
    private final FalsingA11yDelegate mFalsingA11yDelegate;
    private final KeyguardFaceAuthInteractor mKeyguardFaceAuthInteractor;
    private final BouncerMessageInteractor mBouncerMessageInteractor;
    private int mTranslationY;
    // Whether the volume keys should be handled by keyguard. If true, then
    // they will be handled here for specific media types such as music, otherwise
@@ -178,6 +180,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard

        @Override
        public void onUserInput() {
            mBouncerMessageInteractor.onPrimaryBouncerUserInput();
            mKeyguardFaceAuthInteractor.onPrimaryBouncerUserInput();
            mUpdateMonitor.cancelFaceAuth();
        }
@@ -206,8 +209,16 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
            return false;
        }

        @Override
        public void onAttemptLockoutStart(long seconds) {
            mBouncerMessageInteractor.onPrimaryAuthLockedOut(seconds);
        }

        @Override
        public void reportUnlockAttempt(int userId, boolean success, int timeoutMs) {
            if (timeoutMs == 0 && !success) {
                mBouncerMessageInteractor.onPrimaryAuthIncorrectAttempt();
            }
            int bouncerSide = SysUiStatsLog.KEYGUARD_BOUNCER_PASSWORD_ENTERED__SIDE__DEFAULT;
            if (mView.isSidedSecurityMode()) {
                bouncerSide = mView.isSecurityLeftAligned()
@@ -392,7 +403,8 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
            TelephonyManager telephonyManager,
            ViewMediatorCallback viewMediatorCallback,
            AudioManager audioManager,
            KeyguardFaceAuthInteractor keyguardFaceAuthInteractor
            KeyguardFaceAuthInteractor keyguardFaceAuthInteractor,
            BouncerMessageInteractor bouncerMessageInteractor
    ) {
        super(view);
        mLockPatternUtils = lockPatternUtils;
@@ -418,6 +430,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
        mViewMediatorCallback = viewMediatorCallback;
        mAudioManager = audioManager;
        mKeyguardFaceAuthInteractor = keyguardFaceAuthInteractor;
        mBouncerMessageInteractor = bouncerMessageInteractor;
    }

    @Override
@@ -438,6 +451,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
        // Update ViewMediator with the current input method requirements
        mViewMediatorCallback.setNeedsInput(needsInput());
        mView.setOnKeyListener(mOnKeyListener);

        showPrimarySecurityScreen(false);
    }

Loading