Loading packages/SystemUI/src/com/android/keyguard/KeyguardAbsKeyInputViewController.java +1 −0 Original line number Diff line number Diff line Loading @@ -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 Loading packages/SystemUI/src/com/android/keyguard/KeyguardInputViewController.java +23 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading packages/SystemUI/src/com/android/keyguard/KeyguardPatternViewController.java +1 −0 Original line number Diff line number Diff line Loading @@ -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 Loading packages/SystemUI/src/com/android/keyguard/KeyguardSecurityCallback.java +5 −0 Original line number Diff line number Diff line Loading @@ -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. Loading packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java +15 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 Loading Loading @@ -178,6 +180,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard @Override public void onUserInput() { mBouncerMessageInteractor.onPrimaryBouncerUserInput(); mKeyguardFaceAuthInteractor.onPrimaryBouncerUserInput(); mUpdateMonitor.cancelFaceAuth(); } Loading Loading @@ -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() Loading Loading @@ -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; Loading @@ -418,6 +430,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard mViewMediatorCallback = viewMediatorCallback; mAudioManager = audioManager; mKeyguardFaceAuthInteractor = keyguardFaceAuthInteractor; mBouncerMessageInteractor = bouncerMessageInteractor; } @Override Loading @@ -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 Loading
packages/SystemUI/src/com/android/keyguard/KeyguardAbsKeyInputViewController.java +1 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
packages/SystemUI/src/com/android/keyguard/KeyguardInputViewController.java +23 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading
packages/SystemUI/src/com/android/keyguard/KeyguardPatternViewController.java +1 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
packages/SystemUI/src/com/android/keyguard/KeyguardSecurityCallback.java +5 −0 Original line number Diff line number Diff line Loading @@ -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. Loading
packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java +15 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 Loading Loading @@ -178,6 +180,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard @Override public void onUserInput() { mBouncerMessageInteractor.onPrimaryBouncerUserInput(); mKeyguardFaceAuthInteractor.onPrimaryBouncerUserInput(); mUpdateMonitor.cancelFaceAuth(); } Loading Loading @@ -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() Loading Loading @@ -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; Loading @@ -418,6 +430,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard mViewMediatorCallback = viewMediatorCallback; mAudioManager = audioManager; mKeyguardFaceAuthInteractor = keyguardFaceAuthInteractor; mBouncerMessageInteractor = bouncerMessageInteractor; } @Override Loading @@ -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