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

Commit 7f24e84c authored by Lucas Dupin's avatar Lucas Dupin Committed by Android (Google) Code Review
Browse files

Merge "Play padlock animation after solving challenge"

parents 45830716 fbe69ea4
Loading
Loading
Loading
Loading
+0 −10
Original line number Diff line number Diff line
@@ -93,7 +93,6 @@ public class KeyguardBouncer {
    private int mBouncerPromptReason;
    private boolean mIsAnimatingAway;
    private boolean mIsScrimmed;
    private ViewGroup mLockIconContainer;

    public KeyguardBouncer(Context context, ViewMediatorCallback callback,
            LockPatternUtils lockPatternUtils, ViewGroup container,
@@ -190,10 +189,6 @@ public class KeyguardBouncer {
        return mIsScrimmed;
    }

    public ViewGroup getLockIconContainer() {
        return mRoot == null || mRoot.getVisibility() != View.VISIBLE ? null : mLockIconContainer;
    }

    /**
     * This method must be called at the end of the bouncer animation when
     * the translation is performed manually by the user, otherwise FalsingManager
@@ -374,11 +369,6 @@ public class KeyguardBouncer {

    private void showPrimarySecurityScreen() {
        mKeyguardView.showPrimarySecurityScreen();
        KeyguardSecurityView keyguardSecurityView = mKeyguardView.getCurrentSecurityView();
        if (keyguardSecurityView != null) {
            mLockIconContainer = ((ViewGroup) keyguardSecurityView)
                    .findViewById(R.id.lock_icon_container);
        }
    }

    /**
+16 −4
Original line number Diff line number Diff line
@@ -105,6 +105,7 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange
    private boolean mShowingLaunchAffordance;
    private boolean mKeyguardJustShown;
    private boolean mUpdatePending;
    private boolean mBouncerPreHideAnimation;

    private final KeyguardMonitor.Callback mKeyguardMonitorCallback =
            new KeyguardMonitor.Callback() {
@@ -125,11 +126,14 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange

                @Override
                public void onKeyguardFadingAwayChanged() {
                    if (!mKeyguardMonitor.isKeyguardFadingAway() && mBlockUpdates) {
                    if (!mKeyguardMonitor.isKeyguardFadingAway()) {
                        mBouncerPreHideAnimation = false;
                        if (mBlockUpdates) {
                            mBlockUpdates = false;
                            update(true /* force */);
                        }
                    }
                }
            };
    private final DockManager.DockEventListener mDockEventListener =
            new DockManager.DockEventListener() {
@@ -464,6 +468,14 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange
        }
    }

    /**
     * Animate padlock opening when bouncer challenge is solved.
     */
    public void onBouncerPreHideAnimation() {
        mBouncerPreHideAnimation = true;
        update();
    }

    @Retention(RetentionPolicy.SOURCE)
    @IntDef({ERROR, UNLOCK, LOCK, SCANNING})
    @interface LockAnimIndex {}
@@ -511,7 +523,7 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange

    private int getState() {
        KeyguardUpdateMonitor updateMonitor = Dependency.get(KeyguardUpdateMonitor.class);
        if ((mUnlockMethodCache.canSkipBouncer() || !mKeyguardShowing
        if ((mUnlockMethodCache.canSkipBouncer() || !mKeyguardShowing || mBouncerPreHideAnimation
                || mKeyguardMonitor.isKeyguardGoingAway()) && !mSimLocked) {
            return STATE_LOCK_OPEN;
        } else if (mTransientBiometricsError) {
+8 −0
Original line number Diff line number Diff line
@@ -4538,6 +4538,14 @@ public class StatusBar extends SystemUI implements DemoMode,
        return isBouncerShowing() && mStatusBarKeyguardViewManager.bouncerNeedsScrimming();
    }

    /**
     * When {@link KeyguardBouncer} starts to be dismissed, playing its animation.
     */
    public void onBouncerPreHideAnimation() {
        mNotificationPanel.onBouncerPreHideAnimation();
        mStatusBarWindow.onBouncerPreHideAnimation();
    }

    /**
     * @return a PackageManger for userId or if userId is < 0 (USER_ALL etc) then
     *         return PackageManager for mContext
+5 −4
Original line number Diff line number Diff line
@@ -279,14 +279,15 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
                        0 /* delay */);
            } else {
                final long duration;
                final int delay;
                if (needsBypassFading()) {
                    duration = KeyguardBypassController.BYPASS_PANEL_FADE_DURATION;
                    delay = 0;
                } else {
                    duration = AppearAnimationUtils.DEFAULT_APPEAR_DURATION / 2;
                    delay = 120;
                }
                CrossFadeHelper.fadeOut(mLockIconContainer,
                        duration /* duration */,
                        0 /* delay */, null /* runnable */);
                CrossFadeHelper.fadeOut(mLockIconContainer, duration, delay, null /* runnable */);
            }
        }
    }
@@ -516,7 +517,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
    public void startPreHideAnimation(Runnable finishRunnable) {
        if (mBouncer.isShowing()) {
            mBouncer.startPreHideAnimation(finishRunnable);
            mNotificationPanelView.onBouncerPreHideAnimation();
            mStatusBar.onBouncerPreHideAnimation();
        } else if (finishRunnable != null) {
            finishRunnable.run();
        }
+9 −0
Original line number Diff line number Diff line
@@ -527,6 +527,15 @@ public class StatusBarWindowView extends FrameLayout {
        }
    }

    /**
     * When {@link KeyguardBouncer} starts to be dismissed and starts to play its animation.
     */
    public void onBouncerPreHideAnimation() {
        if (mLockIcon != null) {
            mLockIcon.onBouncerPreHideAnimation();
        }
    }

    public class LayoutParams extends FrameLayout.LayoutParams {

        public boolean ignoreRightInset;