diff options
author | Dave Mankoff <mankoff@google.com> | 2020-09-22 00:24:04 +0000 |
---|---|---|
committer | Dave Mankoff <mankoff@google.com> | 2020-09-22 13:24:51 +0000 |
commit | b00c929394cb6bce158265af9606a8eb5a79e47a (patch) | |
tree | 7f5e2b1426f55b3b2707a9d518e8214fa2094b87 /packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java | |
parent | 7a481c318e9ab58ef06aa88514554b55078499dc (diff) |
Revert "9/N Clean Up Keyguard Class Structure"
Revert submission 12585643-b166448040-keyguard-message-area
Reason for revert: http://b/169081305 & http://b/169020145
Reverted Changes:
I6fa05012c:4/N Setup Controller fo KeyguardSecurityContainer....
Iecf265744:5/N Add KeyguardSecurityViewFlipperController.
I90ab99b2f:6/N Add Controller for KeyguardPatternView
I4b74eddd1:7/N controllers for remaining Keyguard Password Vi...
I805286374:8/N Remove View Injection from KeyguardMessageArea...
I362755980:9/N Clean Up Keyguard Class Structure
Change-Id: Ic62f199a51a15d8384450b8f181f3c5a0b988d7f
Fixes: 169081305
Fixes: 169020145
Diffstat (limited to 'packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java')
-rw-r--r-- | packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java | 80 |
1 files changed, 62 insertions, 18 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java index 64676e55b038..2c7dce6e4302 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java @@ -50,6 +50,9 @@ import com.android.systemui.shared.system.SysUiStatsLog; import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.util.ViewController; +import java.util.ArrayList; +import java.util.List; + import javax.inject.Inject; /** Controller for {@link KeyguardSecurityContainer} */ @@ -68,6 +71,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard private final UiEventLogger mUiEventLogger; private final KeyguardStateController mKeyguardStateController; private final KeyguardSecurityViewFlipperController mSecurityViewFlipperController; + private final List<KeyguardInputViewController> mChildren = new ArrayList<>(); private SecurityCallback mSecurityCallback; private SecurityMode mCurrentSecurityMode = SecurityMode.Invalid; @@ -133,6 +137,28 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard } }; + // The following is used to ignore callbacks from SecurityViews that are no longer current + // (e.g. face unlock). This avoids unwanted asynchronous events from messing with the + // state for the current security method. + private KeyguardSecurityCallback mNullCallback = new KeyguardSecurityCallback() { + @Override + public void userActivity() { } + @Override + public void reportUnlockAttempt(int userId, boolean success, int timeoutMs) { } + @Override + public boolean isVerifyUnlockOnly() { + return false; + } + @Override + public void dismiss(boolean securityVerified, int targetUserId) { } + @Override + public void dismiss(boolean authenticated, int targetId, + boolean bypassSecondaryLockScreen) { } + @Override + public void onUserInput() { } + @Override + public void reset() {} + }; private SwipeListener mSwipeListener = new SwipeListener() { @Override @@ -163,6 +189,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard mUiEventLogger = uiEventLogger; mKeyguardStateController = keyguardStateController; mSecurityViewFlipperController = securityViewFlipperController; + view.setLockPatternUtils(mLockPatternUtils); mAdminSecondaryLockScreenController = adminSecondaryLockScreenControllerFactory.create( mKeyguardSecurityCallback); } @@ -186,7 +213,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard public void onPause() { mAdminSecondaryLockScreenController.hide(); if (mCurrentSecurityMode != SecurityMode.None) { - getCurrentSecurityController().onPause(); + getSecurityView(mCurrentSecurityMode).onPause(); } mView.onPause(); } @@ -210,13 +237,13 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard if (reason != PROMPT_REASON_NONE) { Log.i(TAG, "Strong auth required, reason: " + reason); } - getCurrentSecurityController().showPromptReason(reason); + getSecurityView(mCurrentSecurityMode).showPromptReason(reason); } } public void showMessage(CharSequence message, ColorStateList colorState) { if (mCurrentSecurityMode != SecurityMode.None) { - getCurrentSecurityController().showMessage(message, colorState); + getSecurityView(mCurrentSecurityMode).showMessage(message, colorState); } } @@ -240,7 +267,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard @Override public void onResume(int reason) { if (mCurrentSecurityMode != SecurityMode.None) { - getCurrentSecurityController().onResume(reason); + getSecurityView(mCurrentSecurityMode).onResume(reason); } mView.onResume( mSecurityModel.getSecurityMode(KeyguardUpdateMonitor.getCurrentUser()), @@ -249,7 +276,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard public void startAppearAnimation() { if (mCurrentSecurityMode != SecurityMode.None) { - getCurrentSecurityController().startAppearAnimation(); + getSecurityView(mCurrentSecurityMode).startAppearAnimation(); } } @@ -257,7 +284,8 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard mView.startDisappearAnimation(getCurrentSecurityMode()); if (mCurrentSecurityMode != SecurityMode.None) { - return getCurrentSecurityController().startDisappearAnimation(onFinishRunnable); + return getSecurityView(mCurrentSecurityMode).startDisappearAnimation( + onFinishRunnable); } return false; @@ -265,7 +293,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard public void onStartingToHide() { if (mCurrentSecurityMode != SecurityMode.None) { - getCurrentSecurityController().onStartingToHide(); + getSecurityView(mCurrentSecurityMode).onStartingToHide(); } } @@ -362,7 +390,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard } public boolean needsInput() { - return getCurrentSecurityController().needsInput(); + return mSecurityViewFlipperController.needsInput(); } /** @@ -379,19 +407,21 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard return; } - KeyguardInputViewController<KeyguardInputView> oldView = getCurrentSecurityController(); + KeyguardInputViewController oldView = getSecurityView(mCurrentSecurityMode); + KeyguardInputViewController newView = getSecurityView(securityMode); // Emulate Activity life cycle if (oldView != null) { oldView.onPause(); + oldView.setKeyguardCallback(mNullCallback); // ignore requests from old view } - - KeyguardInputViewController<KeyguardInputView> newView = changeSecurityMode(securityMode); if (newView != null) { newView.onResume(KeyguardSecurityView.VIEW_REVEALED); + newView.setKeyguardCallback(mKeyguardSecurityCallback); mSecurityViewFlipperController.show(newView); } + mCurrentSecurityMode = securityMode; mSecurityCallback.onSecurityModeChanged( securityMode, newView != null && newView.needsInput()); } @@ -440,14 +470,28 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard } } - private KeyguardInputViewController<KeyguardInputView> getCurrentSecurityController() { - return mSecurityViewFlipperController - .getSecurityView(mCurrentSecurityMode, mKeyguardSecurityCallback); + @Override + public void setKeyguardCallback(KeyguardSecurityCallback callback) { + // no-op. This should never be reset. } - private KeyguardInputViewController<KeyguardInputView> changeSecurityMode( - SecurityMode securityMode) { - mCurrentSecurityMode = securityMode; - return getCurrentSecurityController(); + @Override + public void setLockPatternUtils(LockPatternUtils utils) { + // We already have one of these. + } + + @Override + public KeyguardSecurityCallback getCallback() { + return mView.getCallback(); + } + + @Override + public void showUsabilityHint() { + mView.showUsabilityHint(); + } + + private KeyguardInputViewController getSecurityView(SecurityMode securityMode) { + return mSecurityViewFlipperController + .getSecurityView(securityMode, mKeyguardSecurityCallback); } } |