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

Commit 162d52df authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Animate launches from lockscreen" into sc-dev am: 33fae67f

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

Change-Id: I2dd6a605f587f298d5b4b7f482b8112850a6210c
parents b13d0038 33fae67f
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -87,7 +87,9 @@ public interface ActivityStarter {

    interface OnDismissAction {
        /**
         * @return {@code true} if the dismiss should be deferred
         * @return {@code true} if the dismiss should be deferred. When returning true, make sure to
         *         call {@link com.android.keyguard.ViewMediatorCallback#readyForKeyguardDone()}
         *         *after* returning to start hiding the keyguard.
         */
        boolean onDismiss();
    }
+10 −5
Original line number Diff line number Diff line
@@ -1655,7 +1655,8 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable,
     * Hide the keyguard and let {@code runner} handle the animation.
     *
     * This method should typically be called after {@link ViewMediatorCallback#keyguardDonePending}
     * was called, when we are ready to hide the keyguard.
     * was called, when we are ready to hide the keyguard. It will do nothing if we were not
     * expecting the keyguard to go away when called.
     */
    public void hideWithAnimation(IRemoteAnimationRunner runner) {
        if (!mKeyguardDonePending) {
@@ -2022,6 +2023,7 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable,
            }

            mHiding = false;
            mKeyguardExitAnimationRunner = null;
            mWakeAndUnlocking = false;
            mPendingLock = false;
            setShowingLocked(true);
@@ -2157,6 +2159,8 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable,
                return;
            }
            mHiding = false;
            IRemoteAnimationRunner runner = mKeyguardExitAnimationRunner;
            mKeyguardExitAnimationRunner = null;

            if (mWakeAndUnlocking && mDrawnCallback != null) {

@@ -2177,9 +2181,6 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable,
            LatencyTracker.getInstance(mContext)
                    .onActionEnd(LatencyTracker.ACTION_LOCKSCREEN_UNLOCK);

            IRemoteAnimationRunner runner = mKeyguardExitAnimationRunner;
            mKeyguardExitAnimationRunner = null;

            if (KeyguardService.sEnableRemoteKeyguardGoingAwayAnimation && runner != null
                    && finishedCallback != null) {
                // Wrap finishedCallback to clean up the keyguard state once the animation is done.
@@ -2187,7 +2188,11 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable,
                        new IRemoteAnimationFinishedCallback() {
                            @Override
                            public void onAnimationFinished() throws RemoteException {
                                try {
                                    finishedCallback.onAnimationFinished();
                                } catch (RemoteException e) {
                                    Slog.w(TAG, "Failed to call onAnimationFinished", e);
                                }
                                onKeyguardExitFinished();
                                mKeyguardViewControllerLazy.get().hide(0 /* startTime */,
                                        0 /* fadeoutDuration */);
+10 −1
Original line number Diff line number Diff line
@@ -288,10 +288,19 @@ public class KeyguardBouncer {

    public void showWithDismissAction(OnDismissAction r, Runnable cancelAction) {
        ensureView();
        mKeyguardViewController.setOnDismissAction(r, cancelAction);
        setDismissAction(r, cancelAction);
        show(false /* resetSecuritySelection */);
    }

    /**
     * Set the actions to run when the keyguard is dismissed or when the dismiss is cancelled. Those
     * actions will still be run even if this bouncer is not shown, for instance when authenticating
     * with an alternate authenticator like the UDFPS.
     */
    public void setDismissAction(OnDismissAction r, Runnable cancelAction) {
        mKeyguardViewController.setOnDismissAction(r, cancelAction);
    }

    public void hide(boolean destroyView) {
        if (isShowing()) {
            SysUiStatsLog.write(SysUiStatsLog.KEYGUARD_BOUNCER_STATE_CHANGED,
+0 −5
Original line number Diff line number Diff line
@@ -3586,11 +3586,6 @@ public class NotificationPanelViewController extends PanelViewController {
     * security view of the bouncer.
     */
    public void onBouncerPreHideAnimation() {
        mKeyguardStatusViewController.setKeyguardStatusViewVisibility(
                mBarState,
                true /* keyguardFadingAway */,
                false /* goingToFullShade */,
                mBarState);
        if (mKeyguardQsUserSwitchController != null) {
            mKeyguardQsUserSwitchController.setKeyguardQsUserSwitchVisibility(
                    mBarState,
+3 −12
Original line number Diff line number Diff line
@@ -2096,13 +2096,10 @@ public class StatusBar extends SystemUI implements DemoMode,
            return true;
        }

        // If we are locked, only animate if remote unlock animations are enabled and we can dismiss
        // the lock screen without challenging the user. We also don't animate non-activity
        // launches as they can break the animation.
        // If we are locked, only animate if remote unlock animations are enabled. We also don't
        // animate non-activity launches as they can break the animation.
        // TODO(b/184121838): Support non activity launches on the lockscreen.
        return isActivityIntent
                && KeyguardService.sEnableRemoteKeyguardGoingAwayAnimation
                && mKeyguardStateController.canDismissLockScreen();
        return isActivityIntent && KeyguardService.sEnableRemoteKeyguardGoingAwayAnimation;
    }

    @Override
@@ -2112,12 +2109,6 @@ public class StatusBar extends SystemUI implements DemoMode,

    @Override
    public void hideKeyguardWithAnimation(IRemoteAnimationRunner runner) {
        if (!mKeyguardStateController.canDismissLockScreen()) {
            Log.wtf(TAG,
                    "Unable to hide keyguard with animation as the keyguard can't be dismissed");
            return;
        }

        // We post to the main thread for 2 reasons:
        //   1. KeyguardViewMediator is not thread-safe.
        //   2. To ensure that ViewMediatorCallback#keyguardDonePending is called before
Loading